Archive for March, 2007
My Aversion to Java Explained
Tuesday, March 27th, 2007
I work on Java software for my day job, and now for my night job as well (don’t worry, that’s not Zenphoto). I learned Java in college, I’ve used it for years, I know it well, but I’ve never really liked it as a general rule; as in, I’ve never ever thought “Wow, Java would be really great for this project!” with any enthusiasm. Java has been the choice because of other reasons in every case—on one project, my team chose it because it was the one common language we all knew, so there was no learning curve. At work, I’m stuck with it because that’s what the “enterprise” software I customize is written in. Now in a new project I’m getting into, we’ve decided on it for scalability and a new web application framework called JSF, and it’s actually looking pretty good so far. But as I sit here learning JSF and the component framework I’m going to be working in, I came to a clear realization:
Nothing in Java is simple.
That’s the bad taste in my mouth. That’s the main thing that makes me dread opening NetBeans or Eclipse. The reason is stupid: I am a designer at heart, not a programmer. Programming is more visual for me; I try to see organization and elegance in the end user interface as well as in the code behind it, and Java pretty much obscures that notion of beautiful code entirely. It’s just not simple enough to be called that.
So what programming languages do I like? Well I’m a PHP programmer by preference, because very little gets in the way between me and the HTML. It’s inherently simple, because it gives you pretty much nothing to start with. Next on the list is JavaScript, which I like a lot, for many reasons. And after that, ironically, I guess it’s Java.
So I have a love-hate relationship with Java. On the one hand, it helps you do stuff you couldn’t ever do in a simpler language, it’s automatically cross-platform, it’s generally fast these days, and it’s easy to work with in the right IDE. On the other hand, it’s complex. So what? I can live with complex. It just annoys the heck out of me sometimes that I have to jump through so many hoops just to build an interface component. Sigh… in the long run, though, it’ll work better for it.
But one thing you can be darned sure of: Zenphoto will never be a Java application.
Review: Panasonic Lumix DMC-FX01
Friday, March 23rd, 2007
I’ve been in the market for a new camera after having my Olympus E-300 stolen out of my car a while back, and before going on a ski trip this year, I decided to just go grab one from Best Buy. I did minimal research before going, but I’m happy with what I got, so here’s my review.

For specs and in-depth testing, you can read the excellent review at dpreview.
After using this camera for a couple of months, I’ve come to like it very much, and especially some of it’s very unique features. To get right to the point, these are:
- 28mm wide-angle zoom lens
- Optical image-stabilization that actually works
- Leica-branded sharp optics
That’s it really. Those are its unique features. The rest is pretty run-of-the-mill. But let me explain why those three are so great and make this camera worth its weight in plastic. Read the rest of this entry »
Apple Marketing vs. Microsoft Marketing
Tuesday, March 20th, 2007
Just a pictorial comparison; draw your own conclusions…
That Microsoft ad was in the Powell Street BART station, which Apple used to own completely. Now it’s plastered with “Wow” ads that don’t make me say wow. The Apple store above was a block away, jam-packed with people. If that’s not good marketing I don’t know what is.
No comment on these, it’s just an interesting case study. Why would a company like Microsoft choose to have such bad marketing? Could they possibly do better, or is it not in their nature? Why does apple just “get it” and how would another company achieve the same? Why don’t they?
Built me a new system!
Monday, March 19th, 2007
I decided to go to Fry’s today and pick up parts for a new computer, mainly because of the RAM upgrade problems I’ve been having with the old one (I couldn’t put more than 512MB in it, any more would crash the system for some unknown reason).
I went all out, but didn’t break the bank too badly. Here are the specs:
- AMD Athlon 64 X2 5200+ (2.6 GHz) Dual-Core processor
- Gigabyte M55 NForce4 Socket AM2 motherboard
- 2 GB OCZ 800MHz DDR2 RAM
- Nvidia GeForce 7300GS 256MB Video card (so I’m not a hardcore gamer…)
- Thermaltake Matrix case, Thermaltake 400W Power supply
- And to top it off, a new wireless mouse, because it was on sale.
- (Plus existing hardware: Ethernet card, SB Live sound card (for MIDI keyboard support), 250GB/40GB hard drives, DVD±RW/DVD drives, etc.)
Basically the only reason this is a “new computer” and not a “CPU upgrade” is because I got a new case, in hopes that it would be quieter than the old vacuum cleaner. It is, so I’m happy. That and the RAM and CPU upgrade make it a workstation worth developing on, and the upgrade process (moving the drives) was fairly painless, with ye olde “move hard drive during XP upgrade install” method.
I have to say, the speed improvement going from the old system to this is very noticeable. It’s probably the RAM mostly, followed by the extra multitasking ability afforded by the dual-core processor. That boggles my mind, to have an actual dual-core in my own computer… my dream systems always had dual processors, and now here it is, nicely consolidated. Blows me away.
Okay, now to clean up all the packaging that’s strewn across my room… Whew!
Wordpress wp-cron.php and Bad Behavior Apache crash
Saturday, March 17th, 2007
Update: This is old info, and not correct anymore. The problem was a result of a bug in Apache2 (or Ubuntu’s version of it) in which apache processes swapped out to disk would not release, and would consume all memory and crash the server. After an ‘apt-get upgrade’ on 8/30/07, apache2 was upgraded to ‘2.0.55-4ubuntu2’ and the problem has disappeared. For users experiencing this issue, I recommend upgrading your version of apache to the latest.
I have just discovered the reason for the sporadic server crashes I’ve been seeing over the past month or so. The symptoms include: Server slowing to a crawl, Apache reaching max_clients and never releasing its connections, Apache processes getting “stuck” and never going away, and finally, all open requests are for Read the rest of this entry »wp-cron.php?check=[somelongnumber] (which you may find out through apache-status, which looks like this).
Zenphoto dynamic theme concept
Friday, March 16th, 2007
I started working on a Zenphoto theme to sort of mimic the performance of Google’s Picasa Web Albums service (which is very nice, and was recently upgraded to 1 GB of free storage, see my public albums there for a good example).
Picasa-Web made huge strides in the usability of online photo viewing, in my opinion. The main advantage was the quick loading of previous and next images when browsing an album in the one-image view (where most browsing takes place, or at least, where the user cares most about speed). It was all done in JavaScript and AJAX, of course, and images were even loaded in low-res (pixelated) first so you at least saw something if you were too fast for your connection.
The other real speed improvement came unexpected—simply using the ‘onMouseDown’ event instead of ‘onClick’ to trigger the image switch. It’s incredible how much faster the first feels. It’s like the transition happens before you even thought about it, as if it’s somehow reading your mind. I guess that just shows how ingrained it is that actions happen when we lift the mouse button. That probably makes sense for most actions, but for browsing a photo gallery I can see why instant action is preferred—it feels fast, very fast.
So without further ado, I give you an image page with dynamic image loading and navigation. Please, browse, take a look, and tell me what you think.
Things that still aren’t complete include:
- Comments, loading and submitting for each image.
- Navigating to a specific image (currently always goes to the first)
- Browser history/back/forward preservation
- Full-sized or larger-sized image view, with Light/thick/slimbox etc. perhaps
- Better theme design—should be a good one.
so don’t complain about them just yet.
It’s a proof-of-concept, to prove that it’s possible (and quite easy) to make dynamic and fun themes with Zenphoto. All the framework for processing images, iterating over objects, and page handling is done by Zenphoto, leaving the theme developer to focus on the javascript design, which is the fun part of course
Zenphoto also makes it easy to “fall back” to non-javascript behavior very easily (though this theme doesn’t show that).
I’ll work to complete this theme in the coming months, hopefully releasing it sometime soon in a more complete version. The code for the dynamic image navigation may also become a part of the Zenphoto core, at option to be turned on or off by the user. Themes wouldn’t even need to be changed to take advantage of it. Please, leave a comment, tell me what you think! Thanks.
The Birth of a Hummingbird
Thursday, March 15th, 2007
My girlfriend discovered the most amazing thing last month in a tree right outside her apartment window—it was a hummingbird nest! Not something you get to see every day when you step out your door, but she did for over a month! It all started with the mommy hummingbird just sitting in her nest incubating eggs…
The mother hummingbird sitting in her nest. 2/1/07
Keep reading for over a dozen pictures, including one of a baby hummingbird learning how to fly. It’s priceless, don’t miss out on this one. Read the rest of this entry »







