I’ve been reading Programming in Lua lately, with my original intent to try using Lua to make Putty scriptable. It’s a pretty neat language. Quite high level for something that lightweight to embed in other programs.
Anyway, if I do this, it will be my first serious foray into Windows programming.
I’ve also done a fair amount of gardening lately. You can see more on Flickr. I’m really looking forward to getting that Canon 100mm macro lens so I can take more of the sort of photos of plants and bugs that I find interesting.
I plan to allocate a bit more of my time for writing, soon.
In January, I took a new job, working at Airwave (A division of Aruba Networks) on the Airwave Management Platform (AMP). We follow extreme programming methodology fairly closely (including pair programming), and I’m really enjoying it, though it makes for intense days. (But better intense than excessively long days.) It’s really good for learning stuff quickly and not getting stuck.
The new commute sucked. An hour each way by car, hour and a half by train (total, door-to-door).
So, after looking for a couple weeks, and hurriedly packing for a couple more, we moved at the end of February to a house in Sunnyvale. More space, and I’m only 2 miles from work. I can even walk to work in about 40 to 45 minutes, slowed down somewhat by the necessity of crossing the street excessively. We’re still unpacking.
January 8, 2009 – 8:05 pm
I built a new desktop PC for use at home, and I installed Ubuntu 8.04 on it. In anticipation of replacing the windows XP desktop with it, I’ve been playing with the evaluation license of VMware Workstation 6.5.
Somewhat annoyingly, VMware uses the lowest-common-denominator Linux sound API, OSS. Unfortunately, OSS, as typically implemented, only allows one application to have the sound device open at once. This might have been a acceptable design in 1995, but it sucks today.
However, as many people mention in several places on the web, you can use the ALSA-OSS emulation layer to give you the benefits of ALSA (such as multiple applications opening the audio device at once) with VMware. Almost all of them involve modifying the script which starts vmware to LD_PRELOAD the libaoss.so library. However, this seems to not work in the latest versions, since there are multiple levels of shell scripts which start the actual binary, and some of them modify the LD_PRELOAD environment variable. As far as I can discern, the “right” way is to add this line to /etc/vmware/config :
preload = “/usr/lib/libaoss.so”
And now, sound works just fine for me in VMware.
(Note, I did have to “sudo apt-get install alsa-oss” beforehand.)
December 6, 2008 – 10:09 pm
I’ve been reading the Java Virtual Machine spec and the book Inside the Java Virtual Machine. I’ve begun to write my own JVM implementation in C++, not for practical reasons, but just for the learning experience. So far it interprets most of a class file. This has been on hold for a few days. What’s somewhat interesting to me, but which I did not realize before, is that the JVM design is very much centered around the java model of classes, interfaces, methods, etc. Not that it’s stopped people from targeting a lot of languages to it in recent years.
I’m slowly heading back to my FPGA project. I haven’t set up FPGA design software again, nor have I been mucking about in Verilog, however I’ve started to thinking about the implementation of a basic stack machine again. I’m a little disinterested in Forth lately, so I may just code up a quick assembler for it and see what strikes my fancy after that. At the moment, I’ve been scrawling some ideas on paper and thinking about how to best map about 19 instructions into a 16 bit word to minimize decoding logic.
More than ever, I believe that understanding how compilers work is among the most important practical topics in computer science, once you get beyond the basics. I’m glad I took a “Programming Languages and Compilers” course in college, but it was just an intro really. To really understand what’s going on and to really have the ability to make new tools when your tools are insufficient, this is a subject you can’t gloss over. (Steve Yegge has a great rant about this.)
Mostly, I’ve just been cranking out solutions to Project Euler problems and reading books in my spare time.
November 20, 2008 – 9:30 pm
I’ve been doing a lot of Project Euler problems in my spare time, as a sort of relaxation and challenge at the same time. As of this evening, I’ve completed 25 of the 217 problems available so far. I’ve written a few hundred lines of code to solve the problems using Haskell, C, C++, Java, Javascript, and Python. Some of those are much more concise than others.
I highly recommend it to anyone who enjoys writing code and math (especially number theory). And I especially like my “language flavor of the moment” approach. It keeps you nimble. (Though, some problems just more difficult if your language of choice doesn’t have a built-in bignum implementation — fortunately Haskell and Python do.)