On other news - clever population-count function, via pmk:
int f(unsigned x) { unsigned y=0; int j; for (j=0;j<32;j++) y += (x<<j) + (x>>32-j); return -y;}
Ghost in the Shell 2: Innocence
Minor quibble: call me squeamish if you will, but I could do without the extreme violence.
Even though my new baby seems to have a freshmeat page now, the announcement didn't make it to the front page. :(
Oh well. I'll be releasing a version 0.2 soon. Who knows, then...
I was planning to do much more before releasing it, including some major code cleanup, but then thought why not. So I just hacked a quick page, packed it as vulcan-0.1.tar.gz, and submitted to freshmeat. Release early, release often!
Pointless waste of bandwidth
Okay, so when did posting images to advogato's recentlog become socially acceptable? Anyway, here comes a screenshot of the personal project I've been working on. Please feel free to rate my diary down.
It's the 3D chess game from Star Tr^W^W^W "inspired" by a certain well-known science fiction TV show. It's sort of playable right now, but I still need to squish some bugs and improve the user interface a bit before it hits version 0.1 (and freshmeat).
After a couple of months with no serious coding (not counting what I've been doing for work, of course), it's good to be back. More info on the project I've been working on in the next few days.
Chess
While searching for ways to improve my playing, I recently discovered chess problems. The stuff is more addictive than Sudoku. Here is a nice collection of easy ones, for beginners like me.
My playing still sucks, though.
Read Wilson's Spin in one sitting last Saturday. It's that good.
Add this to your .emacs file:
(setq viper-mode t) (setq viper-inhibit-startup-message 't) (setq viper-expert-level '3) (require 'viper)
... and voila, vi key bindings! You'll still have to learn C-c C-x and a few other combinations to deal with things like buffers and windows, though, but they're easy to get used to. Try :help for more info. Better yet: find the manual (viper.dvi) and, if possible, print it out.
On other news: updated my personal page. Some local headlines are making me crankier than usual.
Bought myself The Little Schemer. My wife says it's the cutest thing ever.
On a somewhat related note
... hacked together some lazy streams. In C++. Here it is. It looks ghastly.
New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!