Monthly Archive for August, 2003

The Beginner’s Guide to Learning the 2-letter [Scrabble] Words

The Beginner's Guide to Learning the 2-letter [Scrabble] Words

This is just what I needed! I know probably 50 of the 2 letter words already, but I certainly didn't know which ones take an S, much less how many of them can take an A.

Links To comments now viewable.

Links To is a little more than three months old now, and for all that time the only way to read my comments on the links is to either subscribe to the Links To RSS feed, or to view the source of the web page and read the comments. But today, I finally got around to implementing a better solution.

Just hover your mouse over the links in the Links To column, and my comments should pop up in a nice transparent yellow box (code thanks to NSLog();). Unless you're using Mac IE, in which case they pop up as a tooltip that gets truncated after a hundred or so characters.

Actually, I've only tested it in Safari, Mozilla/Camino, and Mac IE so far -- Windows testing will have to wait until Monday Tuesday (a holiday! hot damn!).

So, I ask you all: is this a usable way to display that text?

iTunes/iPod desired feature: Skip count and last skipped.

While the "play count" and "last played" features of iTunes and my iPod are very useful for telling me which of my 10,000 songs I really like and obsessively listen to, they really don't help at all when I'm trying to figure out which songs I don't like. While iPod 2.0's ability to rate songs on-the-go helps track down songs that made my ears bleed, it doesn't help much with songs I just get bored of and don't particularly notice either way. And if you tell me that song ratings should do the trick, let's see you try to listen to 10,000 songs and rate them all.

So I know what songs I listen to obsessively, and I know what songs make my ears bleed, and I've rated maybe 25% of my music, but that still leaves a pretty big gap in the data I have about my listening habits. It seems like the solution for this is obvious, and this is definitely one of the top 5 features I'd like to see in iTunes 5/iPod 2.5: Skip count and last skipped.

I don't know about you, but it seems like a smart playlist of songs where last played is newer than last skipped would be a pretty good indication of what songs I actually like listening to. And as soon as I skip a song, it'd be kicked out of that playlist.

While I could write a "skip and count" applescript that would implement a tiny portion of this functionality in the same way that play counts were implemented before iTunes 3, it really needs to be in the app and on the iPod to realize its full potential.

As usual, iTunes feedback goes here and iPod feedback goes here.

Taco Bell cashes in on recall fervor

Taco Bell cashes in on recall fervor

Okay, this is just insanity, but in this case, it's probably going to be about as accurate as the "real" polls. There's just too much going on to actually try to predict what's going to happen, I think. Also, someone ought to try instant run-off polls, to see if it would provide any data in support of instant run-off voting.

Berkeley Blogs is back.

So Berkeley Blogs.org, the Berkeley blog directory that I maintain, kind of went away for a little while, but now it's back and better than before. Now Berkeley Bloggers can and submit their own link, and edit their entry, and include a short description of themselves or their site. This is great because it makes it massively easier for me to maintain the list, and makes it easier for Berkeley Bloggers to get listed, too.

So if you've got anything to do with Berkeley, past or present, (and you want to be listed in the directory), head on over to Berkeley Blogs.org and hit "Add Link." And if you've got any questions or suggestions, let me know.

Subject: NeXTCube Serial Number AA001032 (”Burning Cube” — any relation to Burning Man?)

Subject: NeXTCube Serial Number AA001032 ("Burning Cube" -- any relation to Burning Man?)

This is a great story -- I've actually read it before, but man it's funny. Also, that picture of the cube funeral pyre is now my desktop background at work. =)

Thing I hate about Java #3621

Now don't get me wrong: Java's stack traces are really useful, and I'd far rather see something like

Exception in thread "main" java.lang.NullPointerException
        at Shuffles.main(Shuffles.java:18)

than see something like

Segmentation Fault (core dumped)

But it's just the "Segmentation Fault" half that sucks. The "core dumped" half, on the other hand, is something I really wish java would do. Just finding a stack trace in the logs tells me where something went wrong, but when you have innumerable combinations of clicks and data, "where" isn't always good enough. Without some extra information about what data caused the exception, sometimes it can be really damn hard to fix.

Ideally, java would be able to print a stack trace and dump core. If the problem the stack trace pointed at wasn't glaringly obvious (which it is, most of the time), then I could load up the core and figure out what exactly about the data was bad, and attempt to determine if it was just some transient error (which it seems to be, more often than not). It seems like java's reflection or serialization abilities are powerful enough that it could dump a lot of state information (and call it "core") and allow you to poke at it later. But it just doesn't seem like something anyone realizes they could use.

New words in the Oxford Dictionary of English 2003-08-21(Includes the word blog!) (PDF)

New words in the Oxford Dictionary of English 2003-08-21(Includes the word blog!) (PDF)

Okay, I admit that this is really word-geeky, but this thing is really fascinating. But of particular note, in my opinion, is inclusion of the word "blog." I'm still reading, though, so there may be other cool things in there, too.

Georgy Tells Why She Should Be California Gov (/. interview)

Georgy Tells Why She Should Be California Gov (/. interview)

Okay, this interview just made me want to vote for her even more. Her answer to the vi/emacs question proves that she's a girl after my own heart, and while I was disappointed that she didn't have an answer for the dselect question, the question itself did make me laugh out loud.

Thing I hate about Java #2384

I can't even put into words how crazy it makes me that java doesn't require { }'s around its control blocks.

if ( bool )
     if ( bool2) 
          something();
     else 
          somethingelse();
else
     shootme();

That's completely valid and perfectly awful in java. I'm regularly looking at a lot of new java code at work, and every time I come across that it takes me a few extra seconds to read it. And the people who wrote the code seem awfully fond of that six-character saving construction. They also don't always indent it usefully, so I frequently find myself reading the wrong else at first glance. Also, without the { }'s, how is my editor supposed to highlight the matching curly to help me see where a block is?

While I completely understand the argument that control structures take a single statement, and a single statement can either be a semicolon terminated line or a block containing multiple statements, that doesn't make it right. Look how much easier this is to read:

if ( bool ) {
     if ( bool2) {
          something();
     } else { 
          somethingelse();
     }
} else { 
     shootme();
}

Arguably, the problem I'm having is actually that people just didn't indent their code well, and not that they didn't use curlies. Python doesn't require curlies, and its control structures tend to be reasonable readable thanks to forced indentation. While Java never could have gotten away with adding forced indentation (very few C programmers ever would have tried java in the first place, then), it probably could have gotten away with requiring curlies, and that would have helped enforce a little extra readability.

I'm so glad perl requires { }'s in that context. Perl's something() if bool; construction is also pretty kickass, and much better thanks to its lack of an "else." But then again, perl also has elsif, which is a fairly questionable design decision in the control structure domain.