Lonely Cactus

A life of punk, code and apathy

Monday, July 30, 2007

Guile and Online Code Libraries

Havok Pennington has been talking up the ideal on the online desktop. Essentially, he sees the future of the desktop to be something like XBOX Live or Google Desktop, where private data is stored centrally and is available for use from any computer. Each computer becomes a thin client.

A couple of outlines of his argument can be found at this interview, and in his GUADEC presentation.

In broad terms, this is not a new idea, obviously. "The network is the computer" is the central idea behind, for example, telnet, X, Java, Google Desktop, and XBox Live. There are Java-based OS projects, Mozilla-based OS projects. What makes it interesting is that the Fedora kids now have enough components lying around to actually accomplish such an effort with their GNOME infrastructure. To paraphrase his argument, a Live CD and a network connection should be all that is required to access much of the functionality of your desktop machine. Preferences could be stored online so that the look, feel, and functionality of one's desktop can be reproduced at any machine.

Let me quote his GUADEC slides.

IMPLEMENTATION

SEARCH AND DESTROY everything that leaves my data stranded on a single computer.

INTEGRATE the best web applications with the desktop.

RETHINK the user experience to take advantage of live connections to friends on the net.

CHANGE THE DEFAULTS so naïve users taking no special action will create collaborative, backedup, online data rather than local files.


The Guile project, a GNU project scheme interpreter, is somethat that I play with sometimes. I started thinking about how this sort of idea can be fused with something like Guile. I think one way to touch base with this concept is in the Guile Module system. The Guile interpreter has a small subset of the language hard coded in the libguile, and then loads further functionality from a set of modules upon initialization. Some of these modules are C-code objects with Guile wrapper scripts. Some are pure Scheme.

It would, I believe, be quite trivial to convince libguile to seek out its modules from an online repository upon initialization instead of from the local drive.

A rough outline of the simplest TODO might be as follows.

1. Move the %load-path to a GConf variable instead of a hard-coded value, and change it into a URI instead of a standard file path. This would allow one to set a %load-path such as "http://foobar.com/guile/1.8/".

2. Incorporate Gnome-vfs into libguile so that module loading can use any URI-style location.

3. Update the /usr/bin/guile executable to allow it to run scripts stored by URI.

4. Maybe update /usr/bin/guile to preprocess a file to seek a %load-path before initializing Guile.

There would need to be a division between what "core" Guile and module-loadable guile should be.

This alone might be useful, but, there are some fun questions that couldn't be answered by this framework.

Sunshine

Shawn, Amy, and I ventured to the Arclight to see the Danny Boyle / Alex Garland film Sunshine.

I am always pleased when those on the clean and pretty side of the Orange Curtain risk life and limb to cross through the border control at La Mirada Gate and head to points north to meet me. I learned long ago that if I was to keep my O.C. friends, I was going to be the one that did the driving.

Since any sort of company is so infrequent, my house is usually in frightening shape. Even though Shawn and Amy were only going to be in the house twenty seconds or so to pick me up, I knew that one would want to use the bathroom. Cleaning that toxic waste dump took a couple of hours. Was the bathroom floor always supposed to be white?

The Arclight is a place that reminds you that Los Angeles is, in truth, not OC. A mere glance confirms that we have left the real world and are in a place that is categorically, even ontologically, different. Fashionistas, gutter punks, gays, trust fund kids, and muscleboys were all on display in the lobby of the Arclight.

Buying tickets from the supposedly automated kiosk outside was technological comedy. Our kiosk, possesed of the devil, clicked through the menus without assistance from us, and tried to refuse us entry into our movie of choice. While we subjugated it to our iron will, the people behind us likely though us idiots. Little did they know....

Sunshine was quite the movie. A crew of a ship carrying an immense bomb was destined for the dying sun. The crew hoped that the bomb would re-brighten the sun, to save the Earth from death. Unlike some sci-fi (say, The Chronicles of Riddick), this movie had enough logic to not piss me off, scientifically. Granted, the premise of using fissionable material to increase the rate of fusion was probably bogus. I recommend it on the whole. Don't expect the happiest of endings. I'm not giving much away when I tell you that some members of the crew aren't going to make it back alive.

Friday, July 20, 2007

Harry Potter VII

I've just finished reading the last and final Harry Potter book, Deathly Hallows.

I'm going to spoil it for everyone.

At the end...

Harry Potter, dead. Run over by a train at Liverpool Street Station.
Hermoine, dead. Choked on a liquorice candy.
Dumbledoor, resurrected, then killed again. Eaten by a grue.
Valdemort dies again a few more times.
Most everyone else, dead.

But at least Hagrid lives happily ever after. He moves into the old Valdemort place and plays county cricket. He looks smashing in white.

Tuesday, July 10, 2007

Super Secret Plan Update

1. Bike 56 miles at pace -- Nothing new. Doing 22 miles most days. 35 miles is longest ride so far. 63% complete.
2. Run 13.1 miles at pace -- Doing legit 3 mile runs. 23% complete.
3. Swim 1.2 miles at pace -- Max dist so far 120m laps. 6% complete.
4. Bench press 150 lb. -- Bench press 3x8@95. I'm going to use 3x8@95 as my 0% baseline percentage. 0%
5. 10 pull ups -- Lat pull 2x8@110. Need to get closer to my weight, 180lb, before I can even do a legit pullup. 0%
6. Learn some Arabic -- First class tonight. 0%
7. Learn some Chinese -- Santa Monica City College will have a class that starts in August.
8. Learn to box -- No progress
9. Get wicked tattoos -- No progress
10. Practice rock climbing -- No progress
11. Save $25,000 -- $4,000 so far. 16% complete.
12. Have sex with someone hot -- Had sex with a nice, very cool guy. Probably a 5 out of 10 on the hotness scale. 50%.

Total completion percentage: 12%.

Monday, July 02, 2007

Sanity

My last year at Megatech was hard. The United Nations was under the mistaken impression that the last 10% of Giant Robot would be the easiest. There were fewer hands to carry the load. It was grinding me down.

I don't thrive under such circumstances, not do I crumble. I manage. The quality remains acceptable, but, my generosity of spirit diminishes. It brings out my latent impatience and arrogance.

In retrospect, I could have been more professional. I complained about some team members to other team members. I'd sit in my cube and be angry instead of being efficient. I had no outside life, so vented about work to co-workers while at work. Bad karma.

I was depressed.

And now I am less depressed. The work here at Network 23 is easier and less time consuming, allowing me to focus on me.

I've been better, working the basic non-drug depression program
1. Eat well
2. Get exercise
3. Spend time with friends and family
4. Get 1 hour of sun every day
5. Get a full night's sleep
This time around, with less work and less driving, the basic plan is working. I feel good.

My depressive tendencies go hand in hand with a sort of mania, and this mania is part of the reason I've been successful. Before and after I'm depressed, I'll read and research and code and hack alone in my room in front of the computer.

But last week I let things slide a little: eating badly, exercising erratically. So by Sunday, I was feeling more like old Spike. I spent all day in my room researching XPath querying of XML trees and the underlying protocols of the Shoutcast and Icecast streaming servers. I rewired my computers, and fixed my home network. I read the manual for GStreamer. I entertained the idea of buying a vt420 so I could check the validity of my old NCurses code. It felt good.

It felt real good. But down that path lies destruction.