Feb
29
2008

(If you don’t get the joke, read this. The industry-standard CPAN Perl library also hosts a bunch of Larry Wall witticisms, right next to The Perl Purity Test. There’s some real software over there, too. Oh, and I mean Peeps1, not peeps.)
1 OMG, my eyes!!!
Popularity: 3% [?]
Feb
28
2008
Molnau ousted by Senate
Transportation Commissioner Carol Molnau was ousted from her job today by the Minnesota Senate, and Gov. Tim Pawlenty announced that he had appointed her chief assistant to be acting commissioner. Molnau still holds her elected position as lieutenant governor.
Shared here, since Brian apparently thinks that nobody is paying attention to the 35-W collapse anymore.
Popularity: 2% [?]
Feb
28
2008
Inclusion of Iraq and Afghanistan Military Operations Funding with the Consolidated Appropriations
Project Vote Smart’s Synopsis:
Vote to adopt an amendment to the consolidated appropriations bill (HR 2764) to include $70.00 billion for military operations in Afghanistan and Iraq.
Official Title of Legislation:
S Amdt 3874 to HR 2764: To make emergency supplemental appropriations for the Department of Defense for the fiscal year ending September 30, 2008.
Highlights:
- Prohibits these funds from being used to enter into an agreement with the government of Iraq that would subject members of the Armed Forces of the United States to the jurisdiction of Iraq criminal courts or punishment under Iraq law (Division L, Title VI, Sec. 612).
Popularity: 2% [?]
Feb
25
2008
So, for long involved reasons, I’m dealing with hash tables again- and discovering (again) that I don’t like them. Hash tables are beloved by programmers who don’t know their sharp corners and failure modes. “They’re fast!” I hear people say, “Constant time insert, find, and remove- what’s not to like?” A lot, as it turns out. To the point where my default is use a balanced binary tree instead of a hash table unless analysis shows that a hash table is inevitablity better, and even then I’m cautious.
The problem with hash tables is those pesky little foot notes that tend to get glossed over when introducing them to fresh faced programmers who have yet to learn the wisdom of Tom Waits, that the large print giveth and the small print taketh away. This is exactly the case with hash tables- those glossed over foot notes will savage you in the tender bits sooner or later, and turn what is supposed to be a cheap operation into an expensive one. And watching out for them makes hash tables a much harder data structure to use than, for example, balanced binary trees. My hope here is to shed some light on these gotchas.
In addition, this is also a wonderfull demonstation of my point from previous blog posts that computer science theory- and in this case, straight up advanced mathematics- are important to the workaday programmer. What relevance does number theory and abstract algebra have for such a basic data structure as hash tables? Quite a lot, it turns out.
Continue Reading »
Popularity: 48% [?]
Feb
25
2008
Check out this article by Headius. He’s discovered that Ruby adopted some of the same broken threading structures that early Java did. And, lo! and behold that they are broken in the same way as Java was.
*headdesk*
This gets me to a point that Brian and I regularly gripe about on the phone: why is it that the software development industry, which has all these awesome ways of sharing what has previously been done, constantly finds itself reinventing the wheel? What’s even better is that these reinventors usually take a look at the wheel and go, “Y’know, this whole round wheel thing is great, but I’m going to make it a hexagon this time, so that we can get added stability.” There is then a huge amount of hype about how great the hexagonal wheel is, how you — yes, you! — could make millions of dollars by founding a hexagonal wheel start-up, and before too long there’s widespread industry adoption that will take major effort to reverse. And then, years later, people still don’t get why the hexagonal wheel is broke. The only good news about all of this is that it gives lots of fodder for bloggers to come in and constructively gripe…although I suppose that statement depends on your definition of “good news”.
Sometimes, there are revolutionary steps forward in software — major changes to the very way we think about development. Hype is not all bad. Conventional development (popularized by Rails) was one of these steps. However, if you’re setting out to build a library or a framework or (especially) a language, you should be building off what already exists, not re-inventing the wheel (and making it hexagonal this time).
Popularity: 10% [?]