Older blog entries for rupert (starting at number 32)


Lots of work on alice, my speech controlled MP3 player for the car. More than one application can use the speech service simultaneously, and this functionality is handled by a small server-app that clients (like the MP3 player), connect to. I'd originally written the server to use a threaded model, with threads exchanging data via a globally scoped hash table, but performance was horrible, and the aquisition and release of locks was a nightmare to manage.

So I started over, and rewrote the server from scratch using the select module. It was actually trickier than I thought it'd be, but paid off in terms of performance. The server has gone from taking up 99% of the CPU time (Intel Celeron 466) when idle, to using 0.5% of it on the same CPU when serving a substantial load. I'm impressed!


My brother returns from the Army tomorrow, for a couple of weeks. It'll be very interesting to hear his news, and see how much he's changed. I need to go and pick up Yule decorations at some point. It seems as if interesting things could be done with light-ropes, especially in conjunction with some X-10 hardware for control. It's a pity that there doesn't seem to be a way to do per-light addressing in the rope. If that was possible, you could take a column of closely packed light ropes, and potentially use it as a crude display device!


My brother expressed an interest in military aviation, so a week or two ago, I took him over to the Western Aerospace Museum in Oakland. We spent a couple of enjoyable hours wandering among their collection of Navy jets. He was really excited to be able to get up close with the museum's F-14A Tomcat, and see how things worked on it. I spent some time doing museum restoration on a variety of USAF and Navy jets in Southern California a year or so ago, so it's neat to see that he shares the same interest.


I'm thinking of taking my parents up to the St. Francis for high tea this year. It seems like a pleasant way to end on a good note a year that has had more downs than ups for everyone.

--- Rupert

An awful, grey day. AA Flight 587 would be a tragedy in any case, but is doubly so because it happened so shortly after 9/11, and crashed in a neighborhood that's already lost so many firefighters and police officers. Many condolences to all of the families who lost someone today, and all of the folks in Queens/Rockaway and at American Airlines.


... is almost done. Carpet is evil stuff to cut, and bathroom caulk is horrifying stuff to work with, since I'd never used a caulking gun before, and ended up getting covered in it. On the upside, the place is starting to really come together, and feel like home. I can't wait to have a big housewarming party.


For some reason, the SBC/PacBell DSL modem arrived, and I didn't touch it for two weeks. I finally took it out of the box, and spent a couple of hours making it work, which roughly divided into an hour of setup, using my trusty PowerMac 9500 with 2 ether cards for fw/dhcp/nat/ip masq via the very cool IPNetRouter program made by Sustainable Softworks. The second hour was spent sifting through my drive, and extracting all of the crap that the impolite SBC/PacBell DSL install software had placed on my system. Can anyone enlighten me as to why DSL providers must use the horrid PPPoE protocol, instead of simply provisioning the modem for n number of MAC addresses and using a DHCP server cluster? In the end, it all worked though, and a benchmark revealed that I was getting 1.2 - 1.3 Mbps down, and 500- 600 kbps up, which was nice.

I want this day to be over.

--- Rupert

This greatly amused me. From a CNN news story today:

http://www.cnn.com/2001/TECH/ptech/10/25/xp. london.launch/index.html

October 25, 2001 Posted: 1:19 PM EDT (1719 GMT)
By Graham Jones CNN

(CNN) -- Microsoft has launched its new Windows XP operating system.
The system promises fewer computer crashes and will allow users to delete data from their hard drive.

Data deletion, wow! The great new feature in operating systems that the world has waited thirty years for with bated breath! Go Bill, go!

25 Oct 2001 (updated 25 Oct 2001 at 18:54 UTC) »
It seems that October is a particularly popular month for birthdays. Happy birthday to all of my fellow Advogatoers - -- criswell,TheCorruptor, deekayen,dto,ion who share the month with me :-) I turned 22 yesterday. Time really flies. It was only yesterday that I was in 7th grade! My folks had me over for an unofficial birthday dinner, and cooked up some barbequeued salmon, which was great. The big official dinner is Friday, and there should be a lot more friends and family showing up. I just wish Oliver (my brother) could make it, but he's stationed down with the Army in Texas, and won't be back until December. My dad gave me some ties for my birthday, and a free visit to a financial planner.

At a bit of a standstill right now. I'm still in the process of unpacking everything in my new place. I've been working more on the configuration manager (PrefMgr) on my alice car-computing application, however. And trying to work out how to make the Sphinx speech recognition module go through esound happily, rather than directly grabbing /dev/dsp as O_RDONLY. I also made some additions to mwsynth, my Python app that uses the pronounciation feature of the Merriam Webster dictionary to synthesize speech. It's now got an interactive shell interface, and includes the option to use either male or female speech (which mostly works, but it seems that MW hasn't gotten every word spoken by both a male and a female, so occasionally it deviates).

My neighbour up the street has a working 802.11 node. If I set up a second node, I think we can get fairly good coverage for the whole area, since both houses are on a hill, and have excellent LOS in all directions. Thinking about using an Orinco OR-1000 that a fellow on the BAWUG list is offering for sale.

My car is having coolant system problems. There's a leak somewhere, since both the radiator and coolant well seem to lose fluid over a 24 hour period. The temp gauge keeps on spiking, and the water in the coolant well seems to actually get hot and boil. Time to have it looked at professionally, I think. Possibly a gasket or a water pump, both which I'm told are expensive.

I went to Mountain View and saw fair and Zack this weekend. fair's house gets my vote as one of the finest places in the Bay Area to get quality hacking done. Fast DSL, comfortable couch, nice folks, and unlimited quantities of strong Earl Grey tea! I made lots of new additions to alice, the car computing software that I've been working on. The biggest addition is a new module called PrefMgr, that acts as the central source for retrieving and saving configuration data throughout the system. Right now there's a file called alice.config, which has UNIX style line separated name/value pairs in the form VARNAME=value. When the PrefMgr client starts, it reads the config data into a hash table in memory, then opens a socket connection back to the event distribution server (EDS), which is the central core of the application. When other clients connect to the EDS (like the speech i/o module, mp3 player, etc) they register with it by sending a service name. The EDS then passes this to the PrefMgr, which sends back a list of current configuration settings for the service. These are passed back to the client, which then continues loading, using the options given.

Ideally I'd like to hack up a little web-based interface that would allow the user to easily set and change available options, rather than having to manually edit the config file each time. I considered initially using the speech rec. system to do this, but rejected it as impractical, because most of the options are set-and-forget (IP addresses, log file locations..), and setting the options in this manner would be a bit tedious. 'Set the Ee Dee Ess Aye Pee to one two seven dot zero dot zero dot one..', and so on.

Every time I add to alice, it gets closer and closer to being an application server for voice controlled programs. I think I like that.

I found an interesting article on the social aspects of talking computer systems last week -- http: //www.tlc.utexas.edu/articles/barchas.html

It talks a little about the interesting stories of how some people came to be the very recognizable voice within automated systems. UTexas' Tex class scheduling system, AOL, and the Wildfire personal assistant are mentioned. This passage amused me:

...Now, the fan groups and fascination spawned by the Wildfire voice are an indication that Harnett and company have been successful in their task of making the computerized assistant seem real.

Some men have become preoccupied with Wildfire, calling the company to find out information about her, sending her Christmas cards and starting Web sites to speculate about what she looks like and how she acts in person. For this reason, Wildfire's identity is still a secret. She lives in the Boston area. She has a day job. She thinks the foofaraw over her voice is interesting but tries to keep it in perspective. "She's not the girlfriend of the lead engineer anymore," Harnett said, "but they're still on very good terms."...

I found the article in a serendipitous fashion. I was searching for "You've got Leprosy!" in Google (recent Simpsons quote that I wanted the sound-byte for), and it was the third result returned.

My birthday is on Wednesday. I'll be 22. Ack! I feel really old, now. On my wishlist --- Lego Mindstorms, flat panels, a Dremel tool, one of those little blue Photon Lights from ThinkGeek, and some grab bags of toggle switches, LEDs, DC motors. And maybe a Cisco AiroNet 802.11b card too :-). And a BGSystems CerealBox (multi chan A/D converter w/RS-232 interface).

--- Rupert (rupe@arrow.yak.net)

11 Oct 2001 (updated 17 Oct 2001 at 01:10 UTC) »

I got on a plane for my Australia vacation 5 hours before the WTC attacks. Consequently, it was an strange, although still enjoyable vacation. Shortly after getting back to SF, I moved house.

Aaargh! Does anyone know how to configure multiple soundcards under Linux? I have two Creative AWE32 (ISAPnP) cards that I want to use simultaneously, each with a different /dev/dsp (/dev/dsp0, /dev/dsp1, perhaps?) I've looked high and low for this information, and can't find out how to do it. I'm currently running 2.2.14-6.1.1.


--- Rupert

A very sad day for me. A favourite great uncle of mine, Bill Scammell (obituary), died on September 5th in Adelaide, Australia. He was a great guy, a fine businessman and educator (former Chancellor of Adelaide University), and loved car racing. I have fond memories of driving around Adelaide in his Porsche, and managing to accidentally lock him out of the car radio. He'll be very much missed, and I'm sad that he passed on a mere two weeks before I was going to be in Adelaide to visit him and other relatives.

Many condolences to Pat Scammell, his wife, and my Dad, who was close to him also (though they don't read Advogato).

Rest in peace, Bill.

--- Rupert

I'm hoping that the readers of this entry can provide me with an opinion, regarding a design choice that I have to make before the first release of my car computer software (see previous entries).

I'm torn between providing (1) a limited range of high quality synthesized static voices, or (2) Using a much lower quality (on par with Macintalk) dynamically synthesized voice that will permit a far wider range of responses to be made. This isn't a rhetorical question, and I'd really appreciate hearing opinions (even a couple of sentences), if you could send them to rupe@metro.yak.net.

So close to a first release of this software... it's very exciting, and I'm happy that my Blade Runner car draws closer :-)


--- Rupert

mikeszcz was kind enough to make some comments on my last diary entry, concerning my car computer software, which I'll attempt to address here. I think it'll be at least a week, if not two before I do the first release of the software. It's at the point where it's relatively stable, but has quite a few performance issues. I also want to clean up the code a bit before releasing it into the wild, as it were. The app has its share of unused functions, inscrutable comments, and blocks of commented out code which should die a quick and peaceful death so as to not cause the potential user to lose all confidence in the app or its author... I also want to write up some decent documentation and installation instructions, since getting everything loaded is a bit hairy.

A little background on the project, and in the process, myself. I think that I was born about 150 years too early. I spent quite a bit of time jealously watching the Star Trek crew seamlessly interact with their highly intelligent ship computer. I've also always dreamed of having a vehicle with even a fraction of the capabilities of those seen in movies and TV shows like Blade Runner, Knightrider, Batman, The Fifth Element, and so on. I think every geek has at some point. I also work as a military aircraft restorer for the March Field Air Museum, and have spent quite a bit of time working on the SR-71A Blackbird (#975) there. The desire to incorporate elements of this futuristic technology (yes, I know that the SR-71 was created in the 50's) into a working vehicle seemed like a fun project, so I started working on this voice controlled computer system. I'm happy to see that other folks are pursuing the hardware side of things. Mark's Custom Kits makes beautiful functional Knightrider instrumentation and dash panels.

Having said this, you'll find the first version of software released to be disappointingly sparse. The design is highly modular, however, so adding new functionality should be surprisingly simple to do, and I expect new releases regularly.

If the software is successful (and stable!) enough, I'd like to investigate the possibility of starting a small business, writing custom modules and adding additional AI and personalization functionality for people who want to use and enjoy the system without spending months having to dig through the codebase themselves. The core system would always stay free and open, however.

Comments? Questions? Let me know...

--- Rupert

23 older entries...

New Advogato Features

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!