Archive for the 'Technical' Category
16:24:03 up 365 days, 14:56
Wednesday, October 29th, 2008
You know what that means? Uptime reports today this server has been running for exactly 1 year uninterrupted.
A small milestone, but a nice one nonetheless. Thanks to Slicehost for some seriously great hosting! Clearly, I have been 100% satisfied over the past year. They were recently bought by Rackspace, but I’m sure they’ll continue to have great service.
You may also notice the Mac OSXness. Well, I’ve been waiting for the next MacBook Pro upgrade, and since Apple released some new ones last month, I decided I’d pick one up, and here I am, the proud owner of a 15″ machined-aluminium shiny-screened MacBook Pro. I think I’ll write more on it later, but in short, angered reports of glossy screens stabbing eyeballs and blinding users have been greatly exaggerated. This thing rocks
A lot has happened in the past year, but the server kept on rockin through it all. Here’s hopin it lasts to 730!
Zenphoto 1.2 is out!
Saturday, August 16th, 2008
I just finished the release of Zenphoto 1.2, another great package from the ZP team. You can read all about it on the Zenphoto.org news page, or go download it now.
My contribution (the first large one in a while) was the move/copy/rename interface in the Edit screens of the administrator’s control panel. It allows you to move, copy, or rename any image or album without losing any data associated with the item. This is a welcome new feature and was one of the biggest complaints we heard from users, and hopefully it satisfies that need well. Let me know what you think.
I’m really impressed with how far Zenphoto has come since 1.1. We now have full translation support and a half-dozen included major languages with more to come, a full plugin system, automated setup, video and audio support, tagging, RSS feeds, password protected private albums… the list goes on.
I’d like to personally thank the Zenphoto team for all their hard work in continuing the improvement and usefulness of their software, all while keeping it true to the Zenphoto philosophy of being simple, useful, and flexible. Great work!
Linux, take 14 (Ubuntu 7.10 Review)
Friday, February 15th, 2008
I’ve had an on-and-off relationship with Linux for the past 10 years. It all started with RedHat 5.2, which I got on a CD that came with a book (because it would have taken 3 days to download on the old 56k modem, and I thought the book was a good way to start). Now, just to clarify, I was thirteen at the time.
Read the rest of this entry »
Static vs. Dynamic Typing
Friday, January 25th, 2008
Every good programmer probably has to write about their opinion on this subject once in their lifetime, so here’s my take
As part of my consulting gig I work on “Enterprise Java” code. I just had to write this line after receiving two separate exceptions on the matter (types obfuscated to protect the guilty (and they are oh so guilty… I won’t get into that)):
String somenumber = (String) ((TypeAttribute) TypeCache.getTypeFromCache("Thingie") .getAttribute("someNumber")).getValue((Thingie) object);
You’re a freaking computer! Figure it out for me!
Also, xkcd, as always, says it the best.
It’s revealing to be a Java programmer every 2 weeks, and a Ruby and Flex developer the next 2 weeks, with PHP and JavaScript by night. I understand everything about why static typing is good and proper, but today, when computers (and compilers especially) are powerful and intelligent, I think the computer should do what a computer is great for, namely figuring out extremely complex yet orderly relationships between types of things, leaving the programmer to focus on much more important stuff.
When I’m coding in Java, it takes me 50 lines of rudimentary logic and typecasting muck in a new inline comparator class to do something as simple as sorting custom objects.
In Ruby it’s a one-liner. I don’t care how much less efficient that is for the computer (and it’s not), that is worth its weight in gold in programmer time and code elegance.
I enjoy dynamically typed languages, and any good programmer knows that it’s programmers having fun that makes good software, not programmers spending 50% of their time dealing with code that gets in their way. What kills me most is that computers are really good at automatically doing the stuff that’s not fun–that is in fact what they’re designed to do–and there are people who have fun making that stuff fast, so why don’t we just let them?
New camera! Olympus E-510
Thursday, August 9th, 2007
I was waiting for the UPS truck all day today, and it finally came at 6 PM with my new camera. I was jumping around like a little kid on Christmas, which was probably scary for my roommate and his girlfriend to watch, but I couldn’t help it.
My previous camera was an Olympus E-300, but it was sadly stolen from my (accidentally) unlocked car about a year and a half ago. I never saw it again. Since then I’ve used my dad’s Olympus E-500, and it’s served me very well.
After Olympus released their new model E-510, I was pretty convinced it was the next step for me. It has 10 MP of resolution (not that anyone ever needs that), Sensor-shift Image Stabilization (works with all lenses), and Live View. In addition, it pretty much does away with noise concerns at high ISO, which was a problem with the E-500 and below. In fact, noise at ISO 1600 (the highest sensitivity) looks an awful lot like nice film grain, as you can see in this shot.
It came with two lenses, and while you can get the camera with just the wide-angle 14-42mm f/3.5-5.6, it’d be dumb to pass up a 40-150mm f/4-5.6 (80-300mm in 35mm equivalent terms) telephoto for only $100 more. Both are excellent lenses, despite the fact that they’re a little more plastic than their previous models, and the telephoto is a slightly slower (the clean high-ISO and Image Stabilization makes up for it). They’re sharp, have surprisingly nice bokeh, and are darn small and light (hence the plastic). You’ve never seen a 300mm equivalent telephoto zoom that’s as small as this one. A very portable package all in all.
Other than all that technical stuff, it takes beautiful photos! You can see them above, and if you view the whole post, and in this zenphoto album here. I’m going to Yosemite next week for a family camping trip, and I plan to take lots more. I’ll be sure to post them afterward.
Ubuntu 7.04 Feisty Fawn
Thursday, April 19th, 2007
I’ve recently gone back to booting Linux every other day or so when I don’t have any pressing graphical or… er… “gaming work” to do. It’s been really slick, especially on my new hardware (nVidia graphics cards are SO much easier than ATi/AMD, sadly. C’mon AMD, open-source those drivers).
Ubuntu 7.04, Feisty Fawn was released today right on schedule, and it’s the closest thing yet to a usable desktop Linux OS. It’s still in the nerd camp for some reasons, but I’d go so far as to say my mom could use it (hi mom!) without too much trouble, and that’s saying a lot.
There’s a great review up here, and also great news that Java EE5 and the Java 6 JDK will be included in the main Ubuntu repositories! I’m glad to see Java integrating cleanly with Linux and under an open-source license. I remember just a few years ago when it was hard to even run a Java app on Linux, and now it’s just an apt-get away.
And if you want to impress your friends, check out Beryl, also newly in the main repository. It allows for insanely cool 3D effects and multiple desktops on a spinning cube, which is surprisingly useful and a helpful visualization concept as well as being an absolutely SWEET effect. I’ll post some screenshots a little later.
What are you waiting for? If you’ve interested in Linux and what it can do (a lot, now), grab an Ubuntu live-cd and see if you like it. [Note: if you can't get into the main Ubuntu site because their servers are swamped, try this list of torrents]
Google Calendar and Mozilla Thunderbird
Sunday, April 15th, 2007
It seems there’s finally a way to integrate Thunderbird/Sunbird/Lightning (the Mozilla Calendar project) with Google Calendar in both directions, using the Provider plugin. There’s a great tutorial on it here that worked perfectly for me.
The Calendar project (Lightning) still has a ways to go before it can compete with Google Calendar in usability and user interface quality — a canonical example might be the “Add task” pane, which scared me to death when I opened it…

It’s a generic form interface of course, but man is it cluttered and complex. Adding a task is usually needs only one line of text — “File my taxes by April 16th” (a reminder for all you Americans
, or “Go to the store and get milk.”
Less often you add a deadline or date, and even that could be extracted from one line of text, making the interface both simple and powerful. Google does this for adding calendar events and it works marvelously.
Rarely do I complexify my tasks beyond that, so I don’t want to always be forced to look through all these options! Even clicking the “<< Less” button (you might have noticed) leaves all the fields above the description box, and the dual date fields are enough opportunity for confusion.
Obviously there’s a lot of power once an interface like this is learned, but I believe it’s possible to keep all the power of a complex interface while simplifying it following principles of good interface design. On this screen, if the title field was larger than the rest and bolded to signify it’s the most important bit of information, I would be much happier, as my eye would be led to where it needs to go most often and for the best reason. Suddenly the purpose of the interface becomes obvious, all the secondary options get a secondary appearance and thought, and it becomes much less confusing. Simple. And there are dozens more simplifications and improvements that could be made to every interface that looks like this.
I only care now because the Google Calendar link means I’ll be trying to use Thunderbird/Lightning for my main calendar now, so the interface better be on the same level or I’m going back to the web!
Any thoughts? What would you do to this screen?
Athlon X2 Prices cut! Go buy some AMD!
Monday, April 9th, 2007
I just bought an X2 5200, and now it’s $50 less! How disappointing. Prices were cut sometimes almost in half today as AMD struggles to compete against Intel’s Core 2 Duo, arguably the better processor by a small margin.
I said this in my review of my new processor on Newegg — no one will ever notice a difference between the Athlon X2 and the Core 2 Duo in even the most strenuous computing tasks. Games will still play wonderfully (that mostly depends on the graphics card anyway), any OS will love the blazingly fast dual cores, and the biggest performance bottleneck will still be the quantity and speed of your memory!
Whether the processor is AMD or Intel makes only a slight unnoticeable difference, so I see a great advantage in supporting the underdog. Here’s why.
Competition from AMD very likely caused the C2D’s existence: the Athlon and Athlon XP’s lead in the market for several years and made Intel basically abandon the megahertz race (and NetBurst’s idiotic long pipelines in the process), then AMD was first to the punch with dual cores, which Intel had to counter and do better. The competition probably made all that development much faster and much stronger, and we have more powerful computers than ever because of it.
As a consumer, and not a microprocessor engineer, the best thing I can do to support this competition and the ensuing innovation is to help keep AMD alive and be proud of it. They’ve always given me quality stable systems, from my K6-2 (333MHz), to my K6-3 (550MHz), to my Athlon XP’s (first 1.4 GHz 1700+, then 2GHz 2600+), and now my Athlon 64 X2 5200. Even this very server is powered by four 2GHz Opteron 270 cores (thanks Slicehost!).
I see no reason to add a measly 10% of performance to any system if it only supports monopoly and stifles competition. Intel will always survive, trust me, but if you want to force them to make even better processors, support AMD. The lowered prices are in, and it should be a no-brainer when the top-of-the-line dual-core chip is only $249. Jump on it.









