Hacking
The four day weekend was very productive. I got tons of
new work done on alice, my mobile computing application
server. Since finishing the core event distribution
server, I've moved on and have re-written
lcd_module, which handles output to the
CrystalFontz LCD
that I'm using, and
speechio_module, which handles
speech input from the
CMU Sphinx speech
recognition server. Now I'm in the middle of migrating
mp3_module, which handles MP3 playing, over from the
old, prototype version to the new one. Doing an almost
complete re-architecture has produced several nice
enhancements, including --
- Cleaner, better commented, more modular code
- Vastly improved speed and CPU usage (thanks to use of
select.poll() over threads)
- More flexible channels of communication between client
modules attached to the event distribution server. Data
sent from clients to the server takes the form
</i>destination_module: data_for_module</i>,
where
destination_module represents the name of the client module
that the data is intended to be used by, and
data_for_module is the module-specific data. The EDS uses
a lookup table of module names to route incoming data to
the appropriate client endpoint. Everything
was 'hardwired', previously.
- Use of a central configuration file (parseable via
ConfigParser), with individual sections for each module.
- Cookie-cutter event loops in clients, which speeds up
client development time enormously.
Writing
More for my own amusement than anything else, I've been
doing some traffic analysis of search requests on the
cluster of P2P networks known collectively as Gnutella.
I've been collecting a large number of (timestamp, source
IP, search term) tuples, and looking for patterns within
the data. Some of the metrics I'm looking at are:
- Per-IP / Per-network frequency of search terms over
different time periods.
- 'Top 100' most popular search terms on a per month
basis
- Correlation of search terms by approximate geographic location of source IP.
- Using data to build a weighted network that'll act as
a predictive data model for testing the probability of a
user (or network as a whole) searching for certain terms,
given an input set of terms from that IP/network.
Depending on how things go, I may write an essay on the
subject if the data proves interesting enough. Comments on
this, and references to similar work would be appreciated.
Post-Yule
At least I survived seeing family. It's never as bad as I
expect it'll be, and the food is always decent (my mom
makes amazing desserts!). And I got some decent gifts,
which included a large reference volume on military
aircraft, courtesy of my brother, and some much needed home
appliances from my Mom. However, I will never understand
the strange phenomenon of Holiday Ties, those ties which
include things like Snowmen, Reindeer, Large Bearded Fat
Men, etc. Is this a uniquely US phenomenon, or are the
Europeans also subject to this scourge?
Happy $holidays to all;
--- Rupert
update: 2001-12-27: fix CMU Sphinx URL.