Older blog entries for titus (starting at number 65)

RIP: Hans Bethe

July 2nd, 1906 to March 6th, 2005.

Hans Bethe died last night at dinner, at the age of 98. He was one of the 20th century's greatest physicists; among his other accomplishments he received the Nobel Prize for describing the H --> He conversion that fueled our sun. Most physicists were probably surprised to learn that he was still alive; he was literally responsible for laying much of the groundwork in atomic and nuclear physics in the 1930s, and contributed immensely to many different areas of physics throughout the century.

He also collaborated closely with my father for almost 30 years. Some of their work is still moderately controversial (e.g. low mass black holes). He was hoping to live to see LIGO confirm some of their latest theories on neutron-star binary mergers, but that was not to be.

For many years (~1985-2000) he and my father travelled out to California to work at Caltech for a month each January. I got to know him a bit during those months, because he and often his wife Rose would stay with my father in the same apartment. He was always very mentally active, even as his physical abilities declined over the years. It was always tricky doing things like picking him up at the airport, because you wanted to be careful with this living legend! I knew that if I had an accident with him in the car, I'd be infamous throughout physics...

My friend Chris Adami has written a book called "Three Weeks with Hans Bethe and Gerry Brown", describing a short period in 1992 that Chris spent with Hans and my father. It captures Hans' intellectual depth and conversational style perfectly. I hope it will be published soon.

Hans is one of two or three people directly responsible for my entry into biology. He told me that when young scientists asked him what field he would go into were he starting in science now, he would emphatically respond "Biology!" He believed that biology would be the field with the next big achievements, and -- as always -- he was right.

I will miss him.


p.s. Wikipedia, as usual, is up to date...


Wrote another toy WSGI application tonight: wsgiFeedSuck.py. It wraps RSS feeds with a simple WSGI app that displays the titles and summaries.

You can try it out, for the nonce, in CGI mode: here.

I wrote wsgiFeedSuck to learn how to use Mark Pilgrim's excellent feedparser module. Astute examiners of the code will note that I use 'etag', 'modified', AND only check the feed every hour. Yay me ;).

The only real problem I have with the code is the lack of file locking around the shelving. O well. Suggestions welcome.


OK, I'm posting it. Happy? Damned voices, yammering away in my head...

(I do like the fact that Web-based darcs repositories are also Web sites in their own right. Very convenient when you don't want to do any work to "release" something.)


oubiwann, congrats on remembering to X out your password. I didn't, the first time I posted such a script ;).

chromatic, nice enthusiastic article on PostgreSQL. (I especially like the Oracle user's comment at the bottom: "but in our nice shiny expensive database, we've been using this for eons...")

avrietta, I couldn't agree more. At least about the steak. And maybe the single malts. But seriously, these jokers are running Wikipedia on non-ACID databases!? Whoo. You should beat up on me anyway, though, I like my tri-tip marinated. (I can't afford better cuts of meat.) But I do sear it. A few BBQs ago, I let a German cook the meat -- he kept on telling me it wasn't done, until finally I realized he was "searing" it all the way through. He'd already ruined it by then, but luckily he tasted good with the cajun BBQ sauce I like, so I didn't go hungry for long.

robocoder, your wedding site is down. You should use a co-loc. ;) Ummmm and you should also keep it updated...


Generating all L-tuples from a given alphabet

I had a muuuuuch longer diary entry written, but then I realized it was all shite and needed rewriting. Meanwhile, here's something that I thought was cute:

alphabet = ('A', 'C', 'G', 'T')

def rN(L, *args): """ Generate all L-tuples from the given alphabet. """ if L == 0: print args return

for letter in alphabet: rN(L-1, letter, *args)

For example, rN(2) gives this:

('A', 'A')
('C', 'A')
('G', 'A')
('T', 'A')
('A', 'C')
('C', 'C')
('G', 'C')
('T', 'C')
('A', 'G')
('C', 'G')
('G', 'G')
('T', 'G')
('A', 'T')
('C', 'T')
('G', 'T')
('T', 'T')

There are just *all sorts* of tricks you can do with Python's function passing semantics, ehh?

Rant of the Day

Why must people post sub-200k binaries via SourceForge's incredibly crufty load-balancing download system?!? It makes them difficult to download, IMO...


Selenium redux

When I asked about the Selenium web testing framework, the only reply I got was from one of the authors, Jason Huggins. He says the software works really well -- now I have to decide whether or not to believe him ;). He says it's getting some use in Plone-world, though, and Grig is going to try it out & (hopefully) let me know.

Bret Pettichord wrote a nice entry on Selenium, too, so maybe I should believe Jason...

Guido takes names

Rewriting Python from scratch: bad.

Language adoption by Apple

Paul Snively writes a longish e-mail to the OCaml mailing list about Apple's history with language research. Interesting stuff.

The Dial-Up Divide

Adam Rifkin writes on weblications in his Deeply Intertwingled blog. One thing that caught my eye was his description of Google Suggest's bandwidth usage: every time you hit a key, approx ~1 kb of data is transmitted from the Google server to you. I think this nicely illustrates the divide between dial-up and broadband: how well do you think this will work on dialup? ;)

Titus Is Testing Unicode Scriptmanagement

ObGoogle: found this. In the German, "Thesaurus Indogermanischer Text- und Sprachmaterialien". (No, that's not a real translation; it means "Thesaurus of Indogermanic Texts and Language Materials", or somesuch.)

Today's Resolution

I will not get spittingly furious at the incompetent, obtuse, inane, idiotic, dopey, lamebrained, thick, asinine, boorish, witless, half-baked, feeble-minded or doltish managerial practices of professors. At least not more than once a day.



Grig Gheorghiu pointed out Selenium, a Web testing framework. Does anyone have any experience with this? Please let me know... - thanks!


Ankh, I'm not sure what to make of your comment about turning on heels... ;) I've read parts of the Gormenghast trilogy, and I love the atmosphere that Mervyn Peake creates. What can I say, titus is my real name!

As far as whither XML... My Cartwheel/FamilyRelations software can communicate between client & server using an XMLish data format, and I recently extended it to save/load this format from disk. This way people can load analyses offline. The only real problem I ran into was that the files can contain large analyses & I ended up doing a Bad Thing and encapsulating the analyses as blobs within the XML data. Not sure what I else I could have done; using XML properly would have made the files 50 times larger.

I spent some time writing Java, Python, and C++ parsers for the format, but then realized that until I made the system more generally useful no one was going to care but me. So, I adhered to Rule Y and just built the libraries without writing a detailed spec. So no DTD, no spec, just an internal feature format that could be regularized were anyone interested. Which they're not ;).

I've spent more time on the RPC route in recent years, and am now stuck on the fence about the future. My next set of features could depend on XML-RPC to communicate data, but then the data can't be accessed without a server connection. This seems like a bad idea, but the overhead of writing the XML I/O functions also seems unnecessary at the moment.

But I'm sure that's more than you wanted to know...


Random Miscellany

Undefeatable spam. (Well, at least without real AI.)

Public posting of genome shotgun data can lead to the discovery of new species, sequenced unintentionally. Heh.

CatchUp! Record the refactoring of your API, then "play back" the refactoring on dependent applications. Very cool!

WaterBot. I don't get it.

Corollaries and Laws

My first rule of thumb (a.k.a. "law that I will force into every technical discussion, irrespective of relevance") is this:

Rule Z: A marshalling library isn't complete unless A = load(marshal(A))
A corollary is this:
Corollary Z_1: An analysis program isn't usable by other people unless it is possible to build a complete marshalling library for the output.
This is one of my bet bioinformatics peeves: people (or large institutions) who build otherwise useful programs that have an utterly nonregular output format, rendering these programs largely useless for pipelines.

Corollary Z_2: A list of tab-delimited lists is not a real file format.

'nuff said there. One day I hope to be inspired enough to write a rant about this; my title is already planned out: "You wouldn't use Excel as your database, so why are you using GFF?" (GFF is a simple tab-delimited format that everyone uses in bioinformatics.)

Another rule of thumb:

Rule Y: Premature standardization is the root of much evil.

Writing data export specs before you've talked about use cases with at least three other groups is one flagrant contravention. Solidifying APIs without actually developing a real application that uses them is another.

Prevayling Stochasticity

Via Max Ischenko, the Pyrasun rant about Prevayler is pretty wild. Mike Spille seems to have some serious objections to Prevayler, and after reading the interview with Klaus Wuestefeld I get a bad feeling about it, too. It's not like this guy Klaus needs any more publicity -- even (or especially?) bad publicity must feed his ego -- but there are some choice quotes in the interview:

Q. "Who are you?"
A. [ ... ] "That is, I'm an nonconformist. [sic]"
Q. "What would you say to those people who own this kind of application [SQL app], and want to migrate to OO using Prevayler?
A. " Initially, they will feel like Neo, floating on that water container, completely atrophic, for living their entire life inside a database bubble."
Q. "Have you ever been confined in an asylum?"
A. "In reality, I'm just a prophet."

Wow. Well, if attitude and arrogance equalled credibility, this guy would be even more credible than me.

OK, I lied, I didn't enjoy it that much ;). insom points out that Market Forces wasn't really very good. The memory has dimmed, but I do recall thinking about 50 pages into it that I shouldn't continue. (Rare, for me.) I finished the book anyway. Things perked up a bit towards the end, but I did feel pretty icky about most of the book. I think I was averaging over my memories of the Takeshi Kovacs books & Market Forces when I said I enjoyed it...

Any other British authors you can recommend, insom? We only get the pretty decent ones over here, and (as you can tell) I'm not really that discriminating in my reading ;).

But back to programming...

Patching wwwsearch/ClientForm to do my bidding: clear(). One more old task from December bites the dust.

ClientForm is pretty nifty, in a functionally hacky kind of way that I find typical of code that has to deal with the Web (prolly due to Postel's Law). It'd be nice to be able to do a round-trip, tho, where you can parse a form into an object and then spit the form back out. That gives you a pretty easy way to test the code, too...

I think I need to make this a "law":

a parsing library isn't complete unless the parse function f and the write function g can be chained indefinitely with no loss of information, e.g. g(f(A)) = g(f(g(f(A))))

Or, more broadly,

a marshalling library isn't complete unless A = load(marshal(A))

Not very pithy, but then I'm not a pithy kind of guy, unfortunately.


Richard Morgan's books

avrietta, I love Richard Morgan's books... Market Forces, the latest (due out in the US sometime soon) is not as good as the Takeshi Kovacs books, but I enjoyed it nonetheless. You might also be interested in Marc Matz's "Nocturne for a Dangerous Man", or at least the free association part of my brain thinks so.

I picked up the Market Forces book in Canada on a trip up to Vancouver. Vancouver is one of my favorite places to visit, because of the fantastic scenery, the great cuisine -- I've eaten at a number of places in the city area, and have always had a great meal -- and the British publishing scene. Everytime I go I come back with about $100 (CAN ;) of books by people like Jon Courtney Grimwood, Iain Banks, and Richard Morgan. I usually can't get these books in the US for at least a year after their publication in England, presumably for publisher-related reasons. The swine. Now that I've added three new Brit/Can fantasy authors to my "buy on sight" list -- R. Scott Bakker, Steve Erikson, and China Mieville -- I'm pretty upset about this situation. Hey, any Brit/Can people want to get involved in a book exchange program?


(This diary entry courtesy of synchronicity between avrietta's post on Richard Morgan, Ted Leung's post about the Guu restaurant in Vancouver, and my own late-night completion of "The Warrior-Prophet", R. Scott Bakker's latest.)

p.s. There's a pretty darn good Native American restaurant in Vancouver that my then-girlfriend/now-wife and I visited when we were up in the area for ALIFE 8. Anyone know the name? The ambience was fantastic!

A Generic Python Blog Entry

Using decorators to make Python free-threading through bypassing the global interpreter lock doesn't require static typing, so why does Guido like the '@' notation?

Net, the game

Ohayou points out Net, a moderately addictive Flash game. It seems like there are a set of simple heuristics you can use to guarantee a minimum-move solution, though. This is because the map is constructed so that the correct solution is parsimonious. Not sure what to make of Ohayou's "best - 1" solution, although I guess I can imagine one way that might happen.


"When the going gets weird, the weird turn pro"

Hunter S. Thompson, the original Gonzo Journalist -- 1937 - 2005.


I respected his writing immensely & thought he was one of the few people capable of making sense of the crazy politics of the late 20th century. His masterwork is "Fear and Loathing on the Campaign Trail '72", and two other highly recommended books are "Hell's Angels" and "Fear and Loathing in Las Vegas". His collected letters are also very much worth reading.

Inveterate Doonesbury readers may know that "Duke" is modeled on HST.

I was planning on holding a projector party to show "Fear and Loathing in Las Vegas" and "Breakfast with Hunter" next weekend; looks like it'll have to be a memorial party instead. Sigh.


p.s. The Wikipedia is really on the ball, I have to say!

p.p.s. Wonder if Doonesbury will do a memorial cartoon?

56 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!