Here are a few links to sites that I frequent on a (semi-)regular basis or that are just interesting. To be expanded at whim.

## Brainfood

### Critical thinking

• Nizkor list of logical fallacies. A long list of invalid arguments, with examples.
• James Randi Educational Foundation. James Randi is a magician who's been active in promoting critical thinking and exposing paranormalists, faith healers and mediums. In the 1970s, he was a thorn in the side of spoonbender Uri Geller, by performing the same stunts through conjuring and sleight of hand (well, they both are, but only one admits it). JREF also has a \$1,000,000 paranormal challenge for proof of paranormal abilities. He's also done a number of TV shows, bits of which can be found on youtube. This one for example.
• The Skeptic Dictionary. An encyclopedia on logic and science and a critical look at things not so logical and scientific like new-age, the supernatural and pseudo-scientific theories like astrology, homeopathy, scientology and the like.
• The crackpot index. A useful, semi-serious guide to deciding whether a certain person's ideas are worth your time or not.
• An ESP experiment. Mind-reading by computer. Look closely and pick a card and try to figure out what happened. Also browse the explanations people have come up with; it's amazing how far people will go with miracle explanations even when the simplest (and correct) solution is readily available for people who pay attention.

### The evolution/creationism debate

For the last couple of hundred years, scientists have been investigating the workings and history of the universe. This has lead to incredible advances in just about everything. However, some (perhaps even most) of the discoveries made contradict ancient doctrines, which doesn't sit well with the supporters of those doctrines. This would be alright if they were on the fringes, but, at least in America, their voices carry weight.

Let's be clear: there is no controversy in the scientific community. Yes, the Earth is old, evolution has happened and continues to happen and the literal interpretation of the bible simply doesn't fit with what we've found out about reality. This is not to say they don't keep trying. I'm just a spectator on this, really, but I do try to follow some of the discussions. It's fascinating, really: one side has all the evidence from independent sources, which forms a uniform picture of how things are; the other side has a book, which they claim is correct even if reality disagrees (I'm not kidding, look at AiG's statement of faith, D6). It'd be funny if they didn't have a considerable influence in America.

• The Talk.Origins Archive. This is a large (very large) collection of articles often referenced by the scientific side in the E/C discussion. It's a great resource, but the size may be a little unwieldy. In particular, note the Index to Creationist Claims for points that have been refuted over and over again but keep coming back, and The Quote-mine Project, an index of quotes by scientists that are often misquoted or taken out of context by the creationists.
• Understanding evolution. This site explains what evolution is and what it isn't.
• The Wedge Strategy/Document. At some point, a group of creationists finally clued in on the fact that sticking to the literal Biblical view of it wasn't going to work, so they came up with something new: “Intelligent Design”. While they say it's a scientific alternative to evolution, what it really is, as the leaked Wedge Document shows, is a political campaign for trying to getting rid of, well, science and civil liberties, basically.
• Fundies Say The Darndest Things. A collection of things various creationists have uttered on various message boards. I know, it's like making fun of the crippled kid, but if you claim you know better than everyone else (and everything else, including reality itself) then you deserve to be ridiculed.
• cdk007's evolution videos. A series of videos on how evolution works and how it doesn't. You'll have to forgive the cheesy music, but for content these rule.

## Programming

### General programming

• C Coding Standards. Using a consistent and sensible coding style is important. Using a consistent style for indentation, naming and white-space use makes code more readable.
• Moar standards!. The fun thing about standards is that there are so many to choose from. This is a collection of them for a number of languages.
• How to write unmaintainable code. An assortment of simple rules that will see to it that no-one but you can modify it, thus increasing your job security! OK, so that's probably not the site's true intention. Quite the opposite, in fact. If you recognize too much of your code in these files, you might want to consider a few changes.
• Worse That Failure. Tutorial sites and books will often teach you how to program. Equally important is how not to program. The CodeSOD section of this site has examples of truly horrific pieces of code in different languages.
• Regular expression examples. Regexps are nice. They are also more than a little mystifying. This site explains the terms common to regexps and provides examples.
• http://htmlhelp.berlios.de/books/chm.php. You can file a great number of manuals in CHM (compressed HTML) here about shell commands and programming tools, like as, gcc, make, sed and a whole lot more.
• www.wotsit.org. Want to know the specifics of a certain file format? Then go here.

### GBA / NDS Programming

[[To fill later. In the mean time, see tonc's references]]

## Enter the tainment

Just random fun stuff.

### Webcomics

• Control Alt Delete. When gaming fandom goes too far. There is a long arc to the comic, but there are also side-shows like the Gamer Glossary.
• VGCats. Not updated that frequently anymore, but there's a sizable archive with nice stuff. For those who know Zelda Ocarina of Time, you may remember this.
• XKCD. “A webcomic of romance, sarcasm, math, and language”. Knowledge of geekery like math, science and gaming is technically not required, but it does help. Be sure to look at the alt-text for the images as well.

### Beasties

• Cute Overload. Everybody say it with me: Daaaawwwww. (Not to be confused with Daaaaah!!!)
• Stuff on my cat. Cats. With stuff on them.
• icanhascheezburger. I'm sooorry, I just can't help liking this.
• Daily Coyote. From the site's description: “Charlie [coyote] came into my life when he was just ten days old, orphaned after both his parents were killed. He lives with me and a tomcat in a one-room log cabin in Wyoming.” The home page will take a while to load, but the ongoing story and pictures are just marvelous.

### Misc

• The Evil Overlord List. The top 100 things I would never do if I were an Evil Overlord.
• Profession Jokes. Job-related humor and lots of it. I never even imagined that there were so many lightbulb jokes.
• Rinkworks computer stupidities. Basically the tech help shop of horrors.
• 1-player, 2 ship Ikaruga. For those who don't know, Ikaruga is a shooter on the Gamecube. A fuck-hard shooter. That anyone can control two ships and not get hammered left an right shows a skill-level that I just cannot relate to. Awesome.

1. Now I realize why I counld not access to http://www.gbadev.org in the pass. I can deal with this by useing proxy.
Thank you for your comments.(My English is not good. There may be some mistakes here.Please forgive me.)

2. Dear Cearn,
I have one question about GBA programming. why a *.elf file is made before a *.gba file made? what is the relationship between them? Thanks.

3. An ELF file is the general file format that GCC uses for tis binary output. The object files (.o) are also ELF files, but with a different extension. ELF file don't just contain the real bits of the program but also link-section information, function names, and a host of other things. If you compare the file sizes of an ELF and its GBA file, you'll see that the ELF is much bigger.

The GBA does not expect all that extra stuff and doesn't know what to do with it. In other words, it wouldn't run. The objcopy tool strips all the excess information.

I think there's a linker flag that strips the binary down to the raw bits and bytes, but I've never really examined what it does. Also, part of the extra information in the ELF file is debugger information, which could be helpful when running with gdb.

But I still have one question. As you said, part of the extra information in the ELF file is debugger information, which could be helpful when running with gdb. I remember that the "-g" option of GCC on Linux platform can produce extra debugging information. What is the different between these two commands "gcc -g -o file file.c" and "gcc -o file file.c" in Linux OS? Does the ELF file contain more debugging information if you add "-g" option when you complie the source codes?

Thank you so much.

5. To be honest, I'm not sure what -g does exactly for the object (and ELF) files, but it seems to do something. I do know what effect it has on the generated assembly: it adds .loc directives everywhere. These seem to carry the line number in the source code, presumably to be used for breakpoints. For more details you'll have to go to the manual I'm afraid.

6. Anyway, you help me much.

Maybe I have still have a lot of question to ask you in the future. :)
Please don't be annoyed with me for asking these questions which maybe you think so easy.

7. Cearn,
May be a bit off topic but was curious to see if you have an answer. "Functional Programming" appears to be making a good showing and supposedly, programs written in an FP language will run faster and cleaner than OO or procedural languages ( http://www.ddj.com/development-tools/212201710 ). Are there any FP languages for GBA development or is it even worth it? A more general question might be "what languages are available for GBA development?" Thanks!

8. I don't really have any experience with functional languages, so I may be of here, but I'll try to give some sort of answer.

First off, notice that the DDJ article says that FP languages may be better for some environments, not all. In particular, it's useful when you can parallelize and on multi-core systems (which the GBA isn't). According to wikipedia, FP tends actually slower except for heavy number crunching.

As for which languages are available for GBA programming, most of it is C/C++ and assembly, but there also DragonBASIC and from a cursory glance at Torlus' site, it seems that he's got some Forth, lua and an early Java there. How well these work I can't tell you, though. There's also a Pascal port and something called Catapult, but that's for official developers only.

Note that except C(++) and asm, everything is very old and as far as I know no longer actively supported.