Sunday, November 27, 2005

Booch--a Software Engineering "primer"

I came across this interesting piece while looking for something else on the web. This is a talkGrady Booch gave at the Software Technology Conference in 1995. This is a handy little treatise on software engineering. I especially like the "five habits of a successful project."

Wednesday, November 23, 2005

Thermal keypad snooping

This falls under the "things I wish I didn't know" category (right along with the fact that the guys on Mythbusters built a functional rocket propelled missle in three days using civil war era technology)

This is an article about how to use a thermal camera to determine the combination on a keypad style lock (i.e, on a safe). Pretty scary that this is possible using such a simple technique.

Why do we love rounded corners?

I fancy myself a graphics design snob. Not that I can design worth a dime, but I know what looks good and what will work. Here's an interesting article on why we love rounded corners in design.

..rounded corners clearly hint to what is inside ofand part of this cluster of information and what isn't. When designers use solid colors it adds another level of reinforcement of context: the illusion of weight and volume.

Evaluation: Moving from Java to Ruby on Rails

As somebody who's also moving from Java to Ruby on Rails, I found this analysis useful (Evaluation: Moving from Java to Ruby on Rails). The potential problem areas are certainly there. And while you can debate the advantages of RoR vs J2EE, there's a long list, and they can't all be struck down.

The productivity increase (and code footprint decrease) was basically staggering. We undertook a full analysis of the consequences of shifting our development from our Java stack to a Ruby on Rails platform. Ultimately we decided to shift from Java to Ruby on Rails.

Probably the most important advantage I see is that RoR makes 80% of your job much simpler. After all these years, we just don't need to be writing accessor and mutator methods on Beans and then trying to wire them into some persistence framework. If nothing else, RoR (probably along with some slick IDE that hasn't yet appeared) can be the defacto standard for writing typical CRUD apps.

Sunday, November 20, 2005

Cut glass in circles with ordinary scissors?

I was reading an old 1950's "how to" magic book for kids that described a trick that required a small round piece of glass. It suggested that I could make such a piece of glass by cutting the glass into a circle with ordinary scissors. How? By doing the cutting in a sink filled with water. A quick search on google and sure enough, some interesting information on the subject.

Friday, November 18, 2005

How to be a programmer

Some well grounded, pragmatic advice on How to be a programmer.

Laser etched Powerbook!

I've always been a fan of vi (the text editor of Unix fame). It's great that vi is alive and well after all these years. Thus it's appropriate that all this monder technology (laser engraver, powerbook, OSX) is involved here:
Laser etched Powerbook!: "I didn't really plan using a $20,000 laser cutter on my 17' Powerbook to etch a 19th-century engraving of a tarsier, a nocturnal mammal related to the lemur (also the vi book cover image, from O'Reilly), but it seemed like it had to done. The results are stunning - photos and more...

Thursday, November 17, 2005

The Web 2.0 Workgroup

The term "Web 2.0" is kind of nauseating, but it certainly does capture the essence of a new breed of tools, techniques, applications and businesses out there today. (I think typified by 37Signals). If you're into that sort of thing, this is an excellent starting point: The Web 2.0 Workgroup.

The (Solaris) Observation Deck

I ran into this Bryan Cantrill's blog (The Observation Deck) about a year ago. It's a fantastic story telling adventure of Bryan's involvement in Solaris and especially DTrace. Facinating stuff. Unfortunately, I don't use Solaris anymore. But if you do, Bryan's blog is worth a look..

Wednesday, November 16, 2005

Atari 800 XE Laptop

Very nicely done Atari 800 XE laptop computer. :)

Getting started with RSS

This is a great tutorial on how to get started with RSS. I recently removed from my RSS subscriptions I read through Google Reader. I don't have time to plow through hundreds of items per day. Now, after scanning this RSS guide, I realize I can plug the digg RSS feed into my personalized Google homepage and see the top several items from that page right along side the other news.

Tuesday, November 15, 2005

The Art of Project Management

I just got wind of this book, The Art of Project Management and have to say that the sample chapters, Chapter 3: How to figure out what to do and Chapter 13: How to make things happen look excellent.

If you're a software guy and want to get into the mythical world of project management for fun and profit, read that Chapter 13 and internalize the fact that it's all about the priorities.. I discovered the prioritized list several years ago as a by-product of practicing Extreme Programming. The central tenant to all of my software project planning efforts has become the big visible chart that shows the group's priorities.

A few laws go along with this. "If it's not on the list, it ain't going to get done." "If it's at the bottom of the list, it probably ain't going to get done." "If it's at the top of the list, it's what you should be working on right now.."

Monday, November 14, 2005

Don't try this at home

Another post from a guy who seems a bit more sensible about building your own flamethrower. It reminded me of a site a while back where a guy documented his PVC-based flamethrower. The very best part of the latter link are the pictures torwards the bottom of the guy standing in his cul de sac trying out his new toy.

Google Analytics

Google continues to impress. Google is going to allow the average Joe to (easily) use the incredible store of data that Google collects on internet traffic to better position and use their internet space for profit. Google Analytics.

Pandora -- find music you'll like

I've had the conversation many times. "Oh you're a fan of Sonic Catastrophe? Well, you'd like Fandango's Revenge.." That is, somebody clues you into some music you like based on what you already listen to.

This website,, claims to do the same thing. Seems pretty accurate. Neat UI too.

Saturday, November 12, 2005

Physicist claims the universe is not 3D, it's only an illusion.

I was just listening to a podcast of this interview with Lawrence Krauss (of "The Physics of Star Trek" fame) that touched on this. Very interesting.

Physicist claims the universe is not 3D, it's only an illusion.: "The holographic principle is a new theory of quantum physics that claims that the universe is not in fact three dimensional at all."

Friday, November 11, 2005

Why Java (presumably) won't go anywhere soon

Why Java (presumably) won't go anywhere soon: "Michael Yuan is telling the world that Ruby on Rails won't replace Java for web-applications. And he's right. No, really. It's not. And here's the prime reason why..

This is interesting because right now I'm writing an architecture definition for a new system--and being careful to be implementation technology agnostic in that description. Why? Because I want management to buy off on the system, not the implementation choices--so I can be free to implement it using whatever technology I'd like. At the same time, I'm getting the team that will be doing the implementation excited about using Ruby on Rails.

The architecture documentation is overkill, I know, but has value both as an architecture definition, as well as a political tool ("look at how well thought out this project is.."). The reason to use rails is because when push comes to shove management won't really care how elegant the design is--they just want it delivered. When our back is against the wall I do not want individual developers off doing their own thing in PHP and a smattering of .NET. This is an attempt to let everybody win. I'll let you know how it goes..

Wednesday, November 09, 2005

Kind of defeats the purpose of mobile devices, eh?

Engadget just posted some of their favorite UK "Let's Keep Crime Down" campaign postings.

So the Home Office crime prevention department in the UK just launched this three-year “Let’s Keep Crime Down” campaign with a specific bend on consumer electronics and portables to, um, help reduce crime. So without further ado, may we present our picks for the best of “Let’s Keep Crime Down”...

Kind of defeats the purpose of using a mobile device, if you ask me..

Thanks, to customer support

I get regular "ticket closed" emails from one of the customer support systems we use here at work. The email includes a statement that says the issue was resolved or closed. It repeats the problem or request information that I entered, and it shows the resolution comments from the person who worked on the ticket.

There's just one thing missing--an option for me to say "thanks." Wouldn't it be nice if there was a URL in this type of email that would allow me to send a quick note to the tech who resolved my problem and say thanks?

Infamous software bugs

An interesting Wired article on History's Worst Software Bugs. I remember this event in particular, since I was sys admin on a small cluster of Unix machines at the time:

1988 -- Buffer overflow in Berkeley Unix finger daemon. The first internet worm (the so-called Morris Worm) infects between 2,000 and 6,000 computers in less than a day by taking advantage of a buffer overflow. The specific code is a function in the standard input/output library routine called gets() designed to get a line of text over the network. Unfortunately, gets() has no provision to limit its input, and an overly large input allows the worm to take over any machine to which it can connect.

Programmers respond by attempting to stamp out the gets() function in working code, but they refuse to remove it from the C programming language's standard input/output library, where it remains to this day.

Monday, November 07, 2005

Ruby on Rails with J2EE credibility

Coming from a J2EE background, this article, Ruby on Rails and J2EE: Is there room for both?, is perfect for me. It gives a high level comparison of the architectures of RoR vs J2EE applications. As somebody who intends to start using RoR and will need to convince some people that Rails is not just another web scripting trick of the week, this article will be useful. I can use the "Rails" side of the article to show how it works at a high level. This will head off the arguments that say it's not "real" enterprise class programming like J2EE.

The latest "Agile Web Development with Rails" gives a good treatment of many of the deployment issues with Rails apps. Combined with the above article, an architect can put together a systems architecture description that gives some credibility to Rails based applications in the workplace.

As an aside, according to Agile Web Development with Rails is #293 overall
and #6 in the Computers and Internet sales category. That's a little piece of ammo for those who say "we can't use Rails, nobody knows how to use it."

Sunday, November 06, 2005

Top 100 video games of all time

I'm not really a gamer, but when I saw that IGN had a list of the top 100 video games of all time I had to see how many of the titles I grew up with made the list. Looking at the dates of the titles on the list, most are from 1990 - 2000. Obviously the "golden age" of video games--which makes sense what with the NES and the rise of the PC in every home during that era.

Of course, I'm disappointed at the lack of early video games in the list. No Centipede, Dig Dug, Space Invaders, Frogger, Defender, QBert, Asteroids, Tempest, Donkey Kong, Missle Command, etc. These were the games that caused a revolution in software--since most of us who started writing code in the early 1980's did so to write games like the ones we saw in the arcade.

But then, I'm getting old..

Saturday, November 05, 2005

How to install Ruby on Rails on Windows

I've been burned twice by the odd permutations of instructions out there on how to install Ruby on Rails on Windows XP. The first time around I had some problems, and it took me quite a while to figure out the secret handshake. The second time around I had already forgot what I did the first time, and thus had to reinvent the entire ordeal.

As of this date/time, the secret of installing Ruby on Rails on Windows seems to be:

1. Install ruby182-15.exe
2. Open a command line and type "gem install rubygems-update"
3. Type "update_rubygems"
4. Type "gem install rails --include-dependencies"

The trick is to get the proper updated rubygems package--else you won't be able to get rails installed. Might be an easier way to do this stuff, but I couldn't figure it out..

Wednesday, November 02, 2005

Brilliant -- IE browsing from within a Firefox tab

This is a brilliant extension to Firefox that loads an Internet Explorer component in a Firefox tab. Now you can use those pesky "IE only" websites from within Firefox.


I've been a big proponent of Continuous Integration from the point I found Martin Fowler's write up on the subject five years ago. It's simply the right way to do it. Even for big projects, CI can be applied on subcomponents or--if you've got the courage and resources--on the entire project. It can be done, and it does have tremendous benefit. The nightly build/smoke test is one of the best values in best practices.

I'm glad to see that the folks at Mozilla have taken the time to detail their use of CI and made the tool they use, Tinderbox, publicly available. This is definitely worth looking into.

Tuesday, November 01, 2005

Here's the "beer" part of the blog..

When I used to home brew years ago, I always wanted to try all-grain brewing, but never got around to it. Here's a neat little experiement showing how to brew beer in a coffee pot. A good explaination of the process. I wonder if it works..