Thursday, September 24, 2009

Microsoft Launch Party Video = Definition of "cringe"

This is worse than watching Basil Faulty (of the Faulty Towers) in terms of cringe. Leave a comment if you survive past the first 30 seconds. If this how M$ will market Windows 7 -- then it is dooommmeed.

Wednesday, September 02, 2009

Interesting XCode Feature (OSX IDE)

Most modern compilers perform some level of static analysis in order to check for potential issues in the code (typically for bugs like attempting to access variables that have not been properly initialised).

XCode in its latest incarnation now offers a rather interesting 'graphical representation' of how the errors will be caused/triggered.

See the screen shots (courtesy Apple Dev. Doc.) -- with the blue lines generated by XCode in the IDE. These features are great for experienced developers, but absolutely fantastic when one is just starting to learn how to program. I also like the clearer messages that the tool is now showing -- this is a great advance compared to the typical cryptic messages that 'gcc' generates. A list of the improvements in terms of how errors are now reported is available at the following page: . If all goes well for LLVM/CLang -- the days of GCC may be numbered. Who knows ... C language may even be useful for teaching computer programming -- rather than its current purpose, which is to scare half the students out of computer science/IT.

Tuesday, September 01, 2009

64-bit Operating Systems....

The latest incarnation of the OSX(10.6) now supports a full 64-bit kernel. Is this the future? Should developers jump on the bandwagon and be 64-bit all the way?

The short answer: for 2009 (and very likely till well into 2012) -- 32-bit will be fine. For normal desktop computing use, 32-bit will be sufficient for the next decade or so unless MS-Office and the browsers start gaining a ridiculous amount of volume in the near future and want to be contestants on "The Biggest Loser". My guess is that we are starting to hit certain cognitive limitations (of the human), and new features will be incremental adjustments, rather than massive bloat.

So, why the fuss about 64-bit? The 32-bit kernel is limited to 4Gb of addressable memory -- and we are starting to get machines with a lot more memory now. But, the real issue with needing 64-bit is with how the kernel actually manages memory.

All operating systems break-up available RAM into pages (OSX has 4 kilobyte pages). In order to manage these pages, the operating system actually uses a 64 byte (in OSX) data structure to hold some information about the page. So, if you have 4Gb of RAM -- then the kernel needs 64Mb of space for the memory management data structures.

The issue starts showing up when you have 32Gb of RAM .. you start needing nearly 0.5Gb just for memory management. 64Gb server .. will mean that the kernel now needs 1Gb for memory management data structures. This is the underlying driver for operating systems moving to the 64-bit land -- much more than anything much else. When you bring in virtual memory (the space on say a solid state hard-disk), these newer kernels start to make much more sense.

Will 64-bit applications run faster? The benchmarks on the raw CPU performance say so -- but, for real-world applications (Office, Browser, Photoshop), there will be no discernable difference. Certain types of mathematical computations may run a bit faster -- but then again a 32-bit GPU will perform some mathematical operations a lot faster than any CPU ever will, so not a great comparision.