Archive for December, 2006


Another scene from my life with Owen

I told Owen today that a musician named James Brown had died. He sat quietly for a moment, then came over to give me a hug.

“His music is still alive, Papa.”


Another scene from my life with Kiara

Me: People keep talking about how cool it is that Mac laptops wake immediately from sleep, and I never understood the big deal. I mean, our older Macs have done that forever. But after having just waited a minute and a half for my brand-new Windows laptop to wake up, now I get it.

Her: It’s because PCs are such big boozers.

Java, Open Source

Eclipse Mylar

Coté pointed to Mylar a couple weeks ago and I gave it a shot. So far, so good.

Mylar is a sort of overlay on the Eclipse UI that lets you focus on and manage tasks. This is something I’ve struggled with for what seems like forever: how to manage my to-do list without breaking my workflow. Basecamp was never a good fit. Remember the Milk is a great little web app, but after a few months I found myself going there less and less, especially as I used Bugzilla more and more to drive my daily development work. Over the years I keep coming back to paper, but I kept feeling like bigger-picture to-do items got lost. For some reason I never became a GTD geek.

Mylar lets you manage personal tasks as well as those in a bug-tracking system. If I used it for nothing else, it would be the really nice face that it puts on Bugzilla, whose default web interface is pretty much crap. While working in Eclipse, all the bugs assigned to me are right there, accessible at a glance. I’m notified of any incoming bugs without having to switch context. This is what IDEs are for.

But the genius in Mylar is how it focuses the UI on the task at hand, hiding from view everything but the files you’re working on. If you’re editing a Java file, it shows only the relevant methods. Just not having to scroll up and down all the time looking for a particular file saves time. Or if it doesn’t save time, it saves frustration. Best of all, Mylar keeps track of what you are working on for a given task, so when you come back to a task, all the context is right there and you can focus in quickly. This context can even be committed back as an attachment to the bug-tracking system, to be shared with others. Cool! It can also support interaction with your version control system, but I haven’t played with that yet.
Mylar is not nearly so great for JSP as Java, but that could be because I’m using the MyEclipse JSP editor instead of the Web Tools Platform‘s. I’ll figure that out when it becomes painful enough.

Each feature in Mylar is small, but together they add up to a compelling overall experience. Since I’m already a to-do list kind of guy, it wasn’t that hard to make the transition to task-driven development, so I felt at home in Mylar right away. Try it!

Personal, Uncategorized

Storm in Seattle

Show you how up on things I am. Seattle got pounded by a hell of a wind storm last week and is just now getting power back. Uh, Chris? Check in.

Java, JavaScript, PHP, Programming, Ruby

Java 6 and support for dynamic languages

Java SE 6 was released last week. How many of us are now running 2 major versions behind? :)

There are a few goodies in this release, including performance gains and better debugging and monitoring, but the one I’ve been waiting for is JSR 223, explicit support for “scripting” languages. I first got excited about this JSR when it seemed that the reference implementation would be PHP. At the time I did most of my work in PHP, and I was excited about bridging the languages. Instead Java 6 ships with Rhino, a JavaScript interpreter written in Java, but that’s just fine if not better. There’s a longer list at anyway, including PHP on the JVM.

Why does this matter? I believe that the future of Java is not so much Java-the-language as Java-the-platform. I have felt this from the day I first encountered Jython (four years ago already?). Encounters since then with JRuby, Rhino, and Scala have only made my convictions firmer. Recent actions from Sun (and the JCP) lead me to believe that more than a few people there there recognize that if the JVM is one of Java’s core strengths, then the Java platform has a future somewhat distinct from the language. Sun hired two lead JRuby developers (locals Charles Nutter and Thomas Enebo). With JSR 223 and now JSR 292 (“Supporting Dynamically Typed Languages on the Java Platform”), which I believe we can expect in Java 7, it will be taken a significant step further. As Danny Coward points out in a recent interview, JSR 292 introduces the first bytecode in the JVM that is not used by Java. To me, this is a fairly clear endorsement of non-Java languages as part of a broader Java platform.

Microsoft is doing the same thing, by the way. Sure, much was made of multiple languages running on the .NET Common Language Runtime when it was first announced, but I have the distinct impression that C# is very much the canonical language for .NET development. But a few things have happened in the past year that tell me this is changing: Microsoft hired Jim Hugunin, lead developer of IronPython, a Python implementation for .NET (Hugunin is also the creator of Jython), then released IronPython for ASP.NET They’ve also been working with Zend to make the PHP experience better on IIS, including writing FastCGI for IIS 7.

I’m kind of surprised that I haven’t written about this more here. I think I’ve avoided it because it seems so damn obvious. But it isn’t, not really. It may be obvious within the areas of the blogosphere where I spend time and in the local Ruby community. But in the real world of day-to-day Java development to which I subject myself, in which most are unaware even that Sun has open sourced Java (it’s a culture thing), much less that Java 6 has been released and what it includes, talk of languages other than Java is very strange and uncomfortable news. I still get polite nods and bemused or uncomprehending looks. Daily.

It also occurs to me that there are readers of this blog who do not live immersed in the world of Java and who have valid reasons for being unaware of recent events. :-)

A quick note. I put “scripting” in quotes above because labelling languages like Ruby and Python as “scripting languages” is unfair and indicative of the historically dismissive attitude that some programmers have held toward them. To sound au courant, you should know that the currently favored term is “dynamic” or “dynamically typed” to distinguish them from statically typed, early binding languages like Java. The wrinkle is that in JSR 223, those languages are used for scripting, playing second fiddle to Java. JSR 292 shifts this balance.

So there. Nothing earth-shattering, but now at least maybe you understand why I talk about JRuby a lot.

Blogging, Personal

More or less just to move the cats below the fold

I got a sales call last week, and since the email address that the salesperson had for me was an one, they checked the site before calling me. “I liked the story about the cat,” she said. “Cute.”

Oh god. One of the few times I fall into the cliché cat entries, and that’s what gets noticed.

It gets worse. At the Minnesota Government IT Symposium this past week, the wiki that I set up for the MnSCU Webmasters was highlighted in a presentation on “Learning 2.0,” along with my blog. Traffic from state IPs picked up noticeably. What have these new seen? My cat.
Truth be told, I’m neither embarrassed nor apologetic. I just think it’s funny.


Chocolate Crinkle Cookie Mistake

I got it in my head to make chocolate crinkle cookies with Owen this week. In a hurry, I just grabbed a recipe from the first hit on Google. Big mistake. That is a recipe created by someone who apparently feels that neither chocolate nor crinkles are important characteristics of a cookie that has both those words in its name.

The lesson? I should have just taken the time to call my mom and ask for her recipe. Calling mom? Hardly ever a mistake. Trusting random recipes off the web? So far, pretty much always the wrong move.


He loves that boy!

We have two cats, Niki and Takeshi. When our first son was born, Takeshi was indifferent. “What,” he seemed to be thinking, “is this lump in the way of my lap?” And he would sit in my lap anyway, baby or no baby. Niki, on the other hand, freaked out. For weeks he kept at least ten feet away, staring wide-eyed at this new, screaming, thing. As Owen got older and more interested in yanking cat tails, Takeshi casually stayed out of his way, while Niki kept letting himself get cornered so we’d have to intervene. He still feels ill-at-ease around Owen.

With Alec, our second son, Takeshi’s response has been pretty much the same casual indifference. Niki’s different this time, though. Niki still lets himself get cornered, but from day one has been very tolerant of the boy, letting Alec pet him in that way only a ten month old can get away with, even affectionately snuggling up next to him to sleep.

Sitting in the living room with Alec the other day, Kiara heard Niki jump off the kitchen counter. “Oh great,” she thought, “he got a cracker.” Niki is nuts for crackers. Thiry seconds later she heard him jump down again and went to investigate. She opened the door between the rooms, which had been open a crack. Sure enough, there he was on the kitchen floor, eating a cracker. Then she turned and saw Alec happily eating the cracker that Niki had brought to the door and pushed through to him before going back to get one for himself.

CSS, Design, JavaScript, Personal

24 Ways

In all my excitement about the return of the Perl Advent Calendar, and the LugRadio Advent Calendar (!), I completely forgot to check to see whether there would be a new 24 Ways this year. There is, chock full of all your web design goodness this advent season. Entries from the likes of Drew McLellan, Andy Budd, Rachel Andrew, Christian Heilmann… go check it out. (via)

JavaScript, Open Source

Firebug 1.0 beta

Not enough good things can be said about this. Joe Hewitt has released a public beta of Firebug 1.0 and announced that it will continue to be open source. Any donations he gets are well deserved. Firebug is amazing, and 1.0 just blows me away. It is an invaluable part of a web developer’s toolkit.

The network monitoring is a nice enough addition, because who doesn’t want to know more about how long files/pages take to download? But it goes one step further.

Firebug network monitor with image thumbnail

Hover over one of the lines to get not just the fully qualified URL for the request, but if the request is for an image, Firebug also displays any images requested, scaling them to thumbnails if necessary. A small touch that really makes a difference.

JavaScript debugging is better than ever. Conditional breakpoints (“break only if the variable has this value”), profiling… very nice indeed. HTML and CSS inspection and manipulation, Firebug Lite for using a Firebug console in browsers other thank Firefox… heaven.

I’m still putting it through its paces, but already the new version saved me a lot of time today during a big bug stomping session. Go get Firebug now.

Next »