I am not the only person pondering what mobile platform to get.
Though as I blogged already, I'll be going with Maemo.
I have devices that run both Android (OpenMoko Freerunner) and Maemo (N810). With new devices now available that run newer versions of Android and Maemo, I was trying to decide which one I would get (the WAF will not allow both).
The Google Maps Navigation announcement really made me want the new Motorola Milestone phone. That is a sweet app.
However, after reading Harald Welte's summary of Android Mythbusters and Comparing Freedom on Maemo and Android Android does not seem like the platform I want. If reviews of the just now shipping N900 are positive, that will be my choice.
If you typically send patches to mail lists then Felipe Contreras' git send-email tricks blog post is definitely worth reading.
Dave Jones is a genius. Using mutt and your editor to highlight your coding errors -- he should have patented that one!
As an emacs user, I knew the butterfly command. I just don't find it that useful.
In the C/C++ programming language, data can be given the volatile qualifier. Typically, people think this is sufficient to prevent code ordering problems. Well, volatile does not do that.
Linus provided a great explanation of the problem on the lkml today. Definitely worth reading. Also, you should read Linux Kernel Memory Barriers from the kernel documentation.
Update 2007-10-14: Also check out the LWN article The Trouble with Volatile.
If you've heard of pointer aliasing but have not fully understood what it means, read this great explanation by Krister.
When you are programming it is often convenient to have 32-bit values that, when displayed in hex (base-16), spell words (e.g, 0xdeadbeef). These values are useful for signifying specific conditions either within a program's resident memory or in persistent storage.
I found a cool list of words that were pragmatically generated and expanded to include l337 spellings.
Ulrich Drepper has a blog entry about using the environment variable MALLOC_PERTURB_ to aid in the detection of typical memory usage bugs in programs.
Using this debugging feature is as simple as setting the environment variable and running the program you want to test. No recompiling required. Sweet!