Preventing identity theft

Bank of America’s new idea for <a hre"http://money.cnn.com/2005/06/01/technology/online_banking/index.htm">preventing identity theft, presenting you with a photo that you provided every time they request your password, seems really smart to me. Needless to say, they’ll have to protect the photos to insure that they can’t be abused, but this idea seems fundamentally sound.

June 1, 2005

My life in books

At John’s request, I’ll play along with the book meme that’s floating around. Total number of books I’ve owned: I have no way of accurately estimating how many books I’ve owned. Right now we may have 300 books in the apartment, but we are pretty zealous about getting rid of anything we’re not sure we’ll read again in the future. No hoarding. Last book I bought: PHP 5 Objects, Patterns, and Practice by Matt Zandstra. Someone recommended it when I asked them about PHP books. Prior to that, Weber’s Real Grilling, by Jamie Purviance and Tim Turner. This was an impulse purchase, which I can now say is the best book on grilling ever, mainly because it confirms everything I already believed about how to grill a steak. Last book I read: I’m in the middle of Hibernate in Action, by Christian Bauer and Gavin King. Great book if you use Hibernate. Frankly, I really regret that I’ve been reading so many computer books lately. Last book I finished: Head First Design Patterns, by Elisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra. As mentioned previously, I really liked this book. I prefer a good novel or interesting nonfiction book anytime. Five books that mean a lot to me: ...

June 1, 2005

Rationalizing LAMP

Daniel Sabbah, the general manager of IBM’s Rational division, ticked some people off this week when he said that companies that LAMP tools are “primitive” and that companies that rely on them will have to grow up at some point. Ryan Tomayko blasts the hell out of him, and makes a lot of good points about the state of the art when it comes to building Web applications these days. I think that the truth lies somewhere in the middle. I think that Sabbah misses his mark when he says that scalability is the issue with LAMP, mainly because people think of scalability in terms of handling many users at once. Where they generally do fall down is scalability in terms of remaining comprehensible when the application gets big and complex. It’s not impossible to write big, complex applications in PHP, or Perl (or Python, I assume), but they don’t do much in terms of helping you get there. At my job, I work with PHP and Java. When I work with Java, I utilize a number of frameworks that enable me to write a clean, layered application that makes it easy to unit test everything (even Web components) in an automated fashion and reuse my code easily. I use an IDE (Eclipse) that lets me easily navigate and refactor my growing code base very efficiently. Java provides WAR files which enable me to easily package my applications so that all of the libraries that they depend on are included in the application itself, so I don’t run into versioning problems down the road. (I find this to be a huge problem in the Perl and PHP worlds, where libraries are centralized at the OS level in usual practice.) None of these problems are insurmountable. I am learning more and more about writing layered applications in PHP, and I’ve also implemented a unit testing regime. I know that you can keep all your PEAR modules at the application level if you want to. The truth is, though, that when you do those sorts of things you cut against the grain of the language and customs of the PHP world. The latest problem I’m running into is figuring out how to deal with transaction isoaltion in PHP. In the world of Java frameworks, much work has gone into making it possible not only to easily deal with database transactions, but to move the level of abstraction up one tier and isolate transactions that may span several databases or systems. Granted, few people need this functionality, but if you do need it, LAMP is probably not going to suit your needs. This, I feel, is what Sabbah was talking about. He just didn’t put it very well. ...

June 1, 2005

Hack PHP programmer beats computer science geniuses

My company is trying to get FogBugz 4.0 up and running on one of our servers, which happens to run a Linux distribution that’s not supported by Fog Creek Software right now. There’s also a limitation in the product, described here, wherein the maintenance script (written in PHP, naturally) can’t connect to your FogBugz instance if it’s running on a secure server. Well, I went in and replaced their code (which uses raw socket calls), with some code that uses the PEAR HTTP_Client package that handles SSL properly. That says something for the power of scripting languages, if nothing else. I was able to go in and work around a problem with their software just the same as if it were an open source package. I think our sysadmin is even going to send them the patch (not that they’ll use it). Anyway, it was easy to fix, our software works properly now, and I get to gloat a little bit. A good day over all. ...

May 31, 2005

Eclipse assimilates JBuilder

Borland is migrating JBuilder to the Eclipse platform. I wonder what features they’re going to add to make people want to pay extra for Borland’s offerings. I used to work for TogetherSoft and then Borland when they acquired TogetherSoft, and I found Eclipse (and IDEA) to be more usable than JBuilder or ControlCenter (TogetherSoft’s modeling-oriented IDE).

May 31, 2005

Pension crisis

Remember how I compared the Pension Benefit Guaranty Corporation to the FDIC and FSLIC? Well it looks like the pension defaults from United Airlines and others are going to precipitate something like the savings and loan crisis.

May 31, 2005

Chilling effect

Ed Felten has a great example of the chilling effect that the litigiousness of the copyright industry has on all sorts of creative expression.

May 28, 2005

Jakarta Commons

So today I needed to do something seemingly simple, compare two Sets. This functionality isn’t built into the Java class library, so rather than write my own I thought I would check out the Commons Collections. Sure enough, the functionality exists but when I downloaded the package, I was shocked to discover that the archive was over 4 megs and the JAR file you’re supposed to include in your own project is 547 kilobytes. That’s a lot of overhead to compare two collections, I’m writing my own method to take care of the problem. Update: this method is trivial to write. For some reason I had thought that some iteratiion was needed, but of course all you need to do is compare the sizes of the two sets and then use the containsAll() method that’s built into the Set interface. ...

May 27, 2005

The learning bottleneck

I still intend to write a rocking package to maintain this site using Ruby on Rails, but I find that I’ve encountered learning bottleneck. My copy of the pickaxe book sits gathering dust as I expand my knowledge of PHP to work on a reporting project, plow through Hibernate in Action (a great book that I’ll review later), and learn as much as I can about optimizing MySQL for performance. I can remember being in school and taking several classes at a time, but these days it just seems like I don’t have the energy to try to pick up so many things at once, especially when combined with getting my work done. On the other hand, I feel like I’m really getting good at developing applications in PHP. I foresee some crash improvement of my JavaScript is going to slip into the queue ahead of Ruby as well, so who knows how long my vanity project will have to wait. ...

May 27, 2005

DVD annoyances

Here’s how out of the loop I am. I was watching a DVD of the Bourne Supremacy last night and was shocked to discover that DVDs include previews that you can’t skip or fast forward through! People were probably getting outraged about that years ago.

May 27, 2005