Return of the Disappearing RAM Slot

Back in January, I experienced the dreaded Deaded Lower Ram Slot Problem on my 1.5ghz PowerBook.

Well, it seems to have happened again. Not sure exactly when it happened, but it may well have been right around the time I upgraded to 1.4.8. But it also has been running hot for long stretches of a time, lately - maybe that's the cause. Ugh, who knows?. Back you go to Apple for a new logic board, little PowerBook.

This all got me wondering how I could make my machine make an assertion at startup about how much memory it has. That in turn got me googling, which in short order produced a handy answer courtesy of one Matt Comi. Thanks, Matt.

And yes, I do need to get a new machine. I have needed one for months, but just can't bring myself to do it knowing that the Core2 Duos are just around the corner. Any day now, right?

JavaOne: Josh Bloch is my Hero

Josh Bloch has always been my favorite deity in the Java pantheon. He's never said or written anything that I didn't find shockingly reasonable. He's one of the few folks willing to get up and talk in pragmatic terms about the importance of good API design. He believes the compiler is his friend. He wants to help the compiler be your friend as well.

And to top it all off, he admits mistakes. At this year's 'puzzlers' quiz at JavaOne last week, he paused to offer everyone a big mea culpa for a design decision he made which later turned out to be wrong.*

How often do you see a THOUGHT LEADER do that? And in front of thousands of people, no less? I'm a fan for life.


* The mistake was that java.util.Arrays.asList() was updated to take varargs. This means it's now ok to pass an array of primitives to asList, but you will get a (perhaps) astonishing result: a List containing a single entry (your array of primitives).

Personally, I was always a bit dubious about the inclusion of varargs in Java, anyway...

JavaOne: It’s Done

Spent last week at JavaOne, spending some time now to blog a couple quick thoughts about it.

  • Overall, and as reported elsewhere, the energy level was quite a bit higher than in recent years. Attendance was quite good.
  • I saw an inordinate number of 'Java couples' strolling about with matching orange backpacks. About 30 by my count. Was this just me? Male & female checking out the latest on NetBeans and Ajax hand-in-hand or in an otherwise not very we're-just-co-workers kind of way.
  • Crowd control for the sessions sucked even worse than usual.
  • I guess scripting language support is the next big thing. Seems useful, but only to a point. The only use case I buy is to make it easier to provide applications with end-user scriptability. But now they're talking about VB. They're talking about inline XML. I am a little afraid.
  • Ajax was all the rage. This still just gets a big WTF from me.

If I were to hazard a guess as to W exactly that last F is, I would say this: Java is done. I don't mean that in a bad way. I mean that in the sense of all the big mountains having been climbed in J(2?)[S|E]E

They've finally cleaned up most all of the crap out of the language. They've cleaned the crap out of the persistence APIs. Actually, most all of the EE frameworks seem to be in pretty good shape now. We're finally starting to get mature development tools. Even Swing is becoming a viable way to write desktop applications.

The fact that a crock of hype like Ajax can be the hot thing at JavaOne speaks volumes to how far Java has come. The sense I get is that there just isn't that much to do to the Java platform. Maybe we don't need the JCP anymore, not because it's too slow, but because it's going to run out of useful work to do?

NOT_TRUE_OR_FALSE

A big thread on The Daily WTF has opened up on the topic of tri-state booleans. A majority of folks seem to be rushing to the defense of today's offender, who has introduced a constant named NOT_TRUE_OR_FALSE into his code. This kind of abuse is very common and has always driven me nuts.

There is one voice of reason (with a lame handle, "Dude Guy") amidst the madness, though:

This is just [the] good old problem of representing unknown information on a database, on which many people have written a fair amount, of which many, many more have read nothing. One classic problem: there is a difference between using a third value to represent "the real-world entity represented by this record has a value for this, but it is unknown," "the entity represented could have a value for this in the real world, but it actually happens not to have one," and "the real world is such that the entity described can't have a value for this." In short, people tend to systematically confuse data that represents facts about the real-world entities [with] questions and metadata about the completeness of the representation.

Thank you, Dude Guy, whoever you are.

The Short Tail

According to IMDB, these are the "10 Best Pictures" and "10 Best Popcorn Movies" of 2005. I'll bet you can't guess which list is which in 10 seconds or fewer.

For an added challenge, three movies in each list have been whited-out. Give up? Click-drag your mouse over the lists to reveal the hidden answers!

 10 Best Popcorn Movies10 Best Pictures
1 Harry Potter and the Goblet of Fire Harry Potter and the Goblet of Fire
2 King Kong Brokeback Mountain
3 Star Wars: Episode III King Kong
4 Batman Begins Sin City
5 Serenity Star Wars: Episode III
6 Sin City Serenity
7 Mr. & Mrs. Smith Batman Begins
8 Wedding Crashers Crash
9 War of the Worlds Walk the Line
10 The Chronicles of Narnia The Chronicles of Narnia

CoolPad Cool

Who carees about the new MacBooks? Check this puppy out:

Yeah, that's what I'm talkin' about! The best thirteen bucks I've spent in a while - a portable laptop pad that

  • helps keeps a powerbook cool
  • protects surface of the table and the PB's underside
  • provides a handy swivel motion
  • produces a slight tilt that i think is actually more comfortable for typing

End of Browser War II

David Bau wrote a good chunk of Internet Explorer but now even he is giving up on it. That's gotta be the last nail.