Category: Geek


New Site Layout

Okay, it’s finally out there, and I’m welcoming feedback. First, let me take care of the obvious.

# The redesign is not site-wide. It will be in its final incarnation, but for now I’m focusing efforts on the cover page. It’s just easier to make changes on one page rather than hundreds.
# It looks like crap in Opera. Sorry. Perhaps together we’ll figure out why Opera is appending page icons to every freaking link on the page.
# The HTML doesn’t validate. One thing at a time. :)

The new design really builds on what I’ve been learning about web design over the past year or so. There were really two main goals for this project: maintainability and simplicity. Our Story was rapidly outgrowing itself. The random photos on the sidebar were getting old. The Of Interest links felt like a hack. Chunks of static content were getting stale. Bits and pieces of the site were being overlooked and either got crufty or would break altogether. I wanted the redesign to be able to cope with more changes down the line rather than create more work. This involved (will continue to involve) quite a bit of choping and hacking on the back end.

One of the first things to go was Dean Allen’s wonderful Refer. Nothing against Dean, I just think I’ve calmed down a bit in terms of tracking who is visiting the site. Not too long ago, I was obsessing over every single inbound link to our site, trying to figure out who was talking about it, when, and how they got here. This gets old after a while–I’m chalking it up to personal growth. ;-) Beyond that, though, Refer has been the target of referrer-log spam campaigns. Keeping up with the spammers was too much of a headache, and I was loathe to give them free Pagerank, so Refer’s gone. It may come back as some other form, but probably not for the general public to peruse.

From an information architecture perspective, the site has taken on a particular paradigm that I’ve been thinking about. This paradigm focuses on the question of whether or not a site section has breadth or depth. If the section has breadth, it generally has a few spread-out pages at close to top-level URLs. The About section is a good example of this. There’s a description page, a templates page, and my résumé, and not much else. Site sections with depth, on the other hand, generally have an archive strategy that involves ordering entries by date or category or both. The Links section and the Blog both fit this criteria. For every site section that has depth, I’ve created a whole new blog in Movable Type. It sounds like a lot of overhead, but, if set up properly, can make routine updates a breeze. If there’s interest, I’ll maybe post more information on our site structure, but I’ll leave it at that for now.

As far as the layout of the pages is concerned, I’m focusing on the same simplicity that the previous design had, while expressing some (hopefully) more developed tastes in typography, whitespace, and balance. The sidebar is gone–I was tired of seeing relevant content marginalized into 200-some-odd pixels. If something’s worth displaying, it’s going in the center column. There’s a box for important annoucements on the home page (more of those, soon). Also worth noting is that I’m now ditching our random image rotation in favor of a more consistent photo presentation. The photo banner at the top of the page will be updated every couple of weeks or so with a new image that’s relevant to what’s happening now in our lives. You can even click the image for a description, and I’m playing with the idea of a timeline view.

Oh, and I think a cover page is a much cooler place for site summary information rather than a hokey Flash advertisement.

What do you think?

Forwardly Mobile

I finally got Fedora working. I really should be smacked next time I start on another Linux drama queen tirade. Fixing the network card problem was as easy as installing a generic NIC card I had around the house and reinstalling Fedora. “Yum” (Duke University’s answer to “apt-get”) is really brilliant: just type the name of the package you want to update and it just works. What’s that? MySQL doesn’t come default in my Fedora install? No problem: yum install *MySQL*. Done. What’s more, I finally got Alex King’s Photos to work. It is truly as cool as I anticipated. Photos acts as a sort of client-server iPhoto, with a comprehensive search tool for parsing all that jpg metadata. My wife and I can now copy our photos onto the server using a shared drive (via Samba, of course), add some details about the event that took place and the people there, and we suddenly have a queryable photo catalog available through our web browsers–no file sharing required. This is fantastic. Now if only Alex could find time to build in a ratings system so I can rate my photos as obsessively I do my music.

Speaking of, I can’t get over how iTunes has completely changed the way I experience music. Sounds like a tacky marketing cliché, I know, but every once in a while a bombshell product will come out of nowhere and answer a huge need that you didn’t consciously know you had. To date, I’ve collected 2,309 songs (11.54GB) in iTunes. And, I’ve rated over 85% of the songs in that library to to ensure that my precious hard drive capacity is used only by the songs that are worth listening to. Anything I rate 2 stars or lower is purged out of the library on a periodic basis to make room for more worthwhile listening. I’ve also gone through and grouped almost every song to which I don’t have a legitimate license in order to either buy them (in some cases by redeeming Pepsi caps) or delete them, depending on my listening habits.

Remember when all of this stuff was locked away in shoeboxes and on cassette tapes? When you had to spend time actually digging through the crap you didn’t want to find the few gems you wanted to view or listen to over and over again? Though the Semantic Web naysayers have solid arguments, it’s hard not to get carried away at the thought of loosely defined metadata for every bit of text and media our lives generate–metadata that’s cataloged and pivoted in new and interesting ways to help us recognize insightful patterns. Just the other day I was able to use Microsoft Money to print out a graph of Sarah’s income by month last year to point out–if this year follows the trend in 2003–that April and May will bring a significant amount of overtime at the clinic. That graph took less than five minutes to build. Imagine having that kind of insight on all kinds of data–like tying together your bank transaction information, your photos, your family calendar, your weight-loss trends, your TiVo viewing habits, and your music and lighting preferences into one central digital dashboard viewable through your television!

Woah, I think I need to take a nap.

Metadata is just kind of like that–it makes you think you can solve world hunger with a few extra bits of information and a database engine. I should know, my day job currently consists of working with the project team that manages our global customer data warehousing system. These people are performing miracles through well-thought-out information architecture. My day job also consists of learning the ins and outs of how my company does project management–an extraordinarily humbling experience–but more about that later.

Nothing Important

I just felt like noting that I installed Fedora Core 1 on my linux server in order to deal with the whole want-photos-but-can’t-have-it thing. This, in the hopes of getting the latest, shiniest version of PHP running without recompiling the kernel or Apache or something.

So, like, I burn the CDs and install the OS and do all the configuration–which sounds like it’s not a big deal, but it doing it all in my spare time means that I get it done in weekly hour-long increments. That ends up looking like this:

==

Week 1
Backup choice config files on the server
Week 2
Download images
Week 3
Ask a friend to burn images to CDs
Week 4
Install the OS

==

So, starting around Week 4 is when I have to deal without some amenities–like a print server or family intranet box or home file server. Mild irritations, all of them. What compounds the issue, though, is that the OS was not as easy an install as previous versions of RedHat Linux. I finish the install, start up the box and let it sit while I go to sleep.

A couple of nights later, I try to SSH into the box while I’m doing other stuff. It doesn’t work. Hm.

A couple of nights after that, I log in locally and try to do a sanity check: /etc/rc.d/init.d/network restart. Ah. The NIC card is crapping out. Must have fried it or something.

A few more days go by. I pop a network card from an old NAT box I had lying around and see if that works. It should–it’s a 3Com card, only the most ubiquitous brand of personal networking hardware in the 1990s. Restart the server. Same error–only for both cards this time. Hm.

Dig, dig, dig. Okay, there’s a Fedora bug with 3Com cards. Like, all of them. I try to work a suggested workaround, only to discover–sorry!–my preferred text editor isn’t available in Fedora. Not knowing any better, I tried using the echo command to recreate my modules.conf file. Copy the file to /etc and shutdown -r now. The server starts up, and the NIC cards are still bolloxed.

The other day Sarah got me talking about what it’s like to create information technology. I told her that the best analogy I could come up with is that it’s like dragging these Platonic ideals out of the atmosphere of my mind and into a grittier, substantial reality. Inevitably, compromises are made along the way and the product of these efforts often never quite as beautiful or perfect as they were in their abstraction.

This, though, is getting ridiculous. At this point, I have no love for an open source OS that neither recognizes the vast majority of desktop networking hardware, nor includes one of the most commonly-used text editors in the Unix world. Any distro suggestions would be helpful. Of utmost importance to me right now is the ability to navigate the command line quickly and easily, simple-to-use upgrading (like apt-get perhaps?), and all the file-serving, intranet hosting, print-sharing stuff I mentioned before.

Redesign Pending

It’s got a grip on you now. You dream in drop-shadows and unordered lists.

Today you went to the bridal shop with herself so she could order a bridesmaid’s dress. You spent your time alternating between sketching thumbails and picking out color schemes from the array of fabric around you.

It’s there, in the advertising you see as you drive north on 8th Avenue on the way home from church. You pick apart what works and what doesn’t and why. You spend your free time reading about typography–typography.

The nights are divided between hacking templates and considering the architectural implications of the word “banner” vs. the word “photo.”

It’s got a grip on you, and it won’t be long now.

Burned

From a link you’re pretty sure you found over at Mark’s site, you find Alex King’s blog. Alex King makes WordPress, among other things. The thing among the other things that catches your attention most is this thing called Photos. Photos is kinda like Picasa, only Picasa runs from the client, and you’ve wished for something that runs from the server, where you actually store your photos on the massive (and massively underused) hard drive that you bought at Best Buy because it was a great deal at the time. Anyway, you get excited about Photos because it runs on the server (noted earlier), is pretty much free, and is in a language you kinda understand. So, you attempt to install it.

You’re psyched, because installing PHP applications is often about as simple as copying files to your web server, fiddling with some configuration files, and launching them in your browser. You copy the files, fiddle with the configuration files and launch them in your browser. It doesn’t work. Photos requires something called GD 2.0 or later. You think to yourself that you’ve got a relatively recent version of Redhat. Surely this is a common problem. Surely it must be mentioned in the documentation, perhaps under Frequently Asked Questions. You look; it’s not. Somewhere in the distance, you think you hear somebody laughing at you. This leaves you somewhat–but not completely–daunted, but you’ve installed difficult software in Linux before. “Surely Google will have an answer.”

You follow the rabbit hole a little deeper and find the GD site. You scan over the content, hoping for a quick solution to the problem, but answer is not forthcoming. There are huge chunks of text littered with phrases like “Xpm color bitmap loading” and “clipping rectangle respected in freetype text output.” You take a deep breath and plunge a little deeper, trying to find the text most meaningful to you and take the steps required to install this software. Now, remember, you tell yourself, you saw those lovely Photos screenshots and you know that the much coveted Picasa 2.0 won’t launch until May, and it still won’t run from the server or be free. This is, indeed, worth the effort.

So you download GD. The rabbit hole goes deeper. You have to…config it. Uh, and then you have to write some shell scripts. Update your RPMs. You have to partition your drives and patch your kernel. Compile your binaries. Check your version dependencies. Probably do that once or twice. Okay, not really all of that, but a lot of it.

You go back to your browser, and it seems like it’s working, and now you’re totally stoked. But, just a couple of clicks away, you find that same GD 2.0 message thing again. So you say to yourself, “Self,”–you chuckle because you never get sick of that joke–”perhaps I should do some more reading at the GD site.” You do, only to be shocked and dismayed by the fact that GD 2.0 comes with the latest version of PHP. You’re feeling decidely more daunted and go searching for an easy way to install PHP 4.3.x via a Redhat 9 RPM file. The only plausible solution you find is this, and it still doesn’t work.

You consider patching your version of PHP with a fix available at the GD site, but your version of PHP is even older than that. You consider downloading the source code for the latest version of PHP and building it from scratch. Then you think better of it. Then you try it anyway, only to get an error 15 minutes into the build process. You cry a little. You know that the only possible way you’re going to get PHP 4.3 (mind you: in order to even have GD 2.0, in order to install Photos 4.01) is by installing the Fedora operating system. You consider the data you have saved on your Redhat 9 setup and all the headache you went through to tweak it to your current liking.

You go out for some drinks. You think about it in the car. You come home and do some reading about Fedora and download some ISO images. You stay up too late to write about it.

Then you go to bed.

PalmInfocenter

PalmInfocenter. The latest Palm OS news and reviews

MozillaZine

MozillaZine. Your source for Mozilla news and advocacy

Slashdot

Slashdot. News for nerds, stuff that matters

An iTunes RFE

Dear iTunes Developers–

iTunes rocks. Here’s a RFE that I hope will make it rock more.

Go to the iTunes Music Store, click on any album. Below is a list of songs in that album. For each of those songs is a whole set of columns (album, genre, artist, etc.). For a few of those columns, there is a little arrow that, when you click on it, will take you directly to the iTunes Music Store listing for that artist/album/whatever.

Go to your music library, click Browse. Click on any album. Below is a list of songs in that album. For each of those songs is a whole set of colums–but no arrows. It would be tremendously helpful for organizing and navigating if there were arrows in the same columns as there are in the iTMS. Those arrows should take you directly to all the songs you own under that artist/album/genre/etc.

Additionally, it would be cool to right-click a song in my library and find the iTMS listing for the song’s artist/album/genre. This is a feature that, I think, would mean *real money* for the iTMS. There are several songs in my library that are illegitimate in the eyes of the RIAA. I’ve been periodically “legitimizing” them by going to the Music Store and purchasing them. Such a feature would make this process easier. It also might encourage me to buy more music by my favorite artists.

Oh, and please support Windows 98. I want to buy my wife an iPod someday, but I don’t want to shell out $100 to Microsoft for a new operating system.

Thanks for making music fun. :)

–Ken

Is Mozilla Development Too Hard?

==

==

A couple of weeks ago, the Windows 2000 installation on my work laptop blew up. Not really sure why, but I thought it may have had to do with my wireless NIC driver (which I had only recently “upgraded” before it allegedly brought my system to a screeching blue screen halt). After fighting with the box all weekend–and thankfully managing to backup My Documents to my file server at home–I sheepishly called the helpdesk at work and asked them to send a technition. Three days later, I got my PC back with a brand new Windows 2000 image.

Having a new Windows installation is a bittersweet experience. On the one hand, the PC seems to have regained its youth, happily responding to every click and keypress with instant compliance. On the other, all of the shortcuts and clever applications you use to shorten your workflow are gone. Every process that was once only three steps now becomes 38 steps as you have to reinstall software, resolve dependencies, and establish shortcuts. Reinstalls, though, are also a great time for experimentation. As I reintegrate software into my daily workflow, I find it easier to try out new software that I otherwise would have ignored (why go looking for an alternative if you’re already happy with what you have?).

Most notably, I went looking for a new RSS reader. Previously, on a succinct, but glowing advertisement from Mark Pilgrim, I had been using FeedDemon. FeedDemon’s greatest feature–to me–is its ability to categorize news feeds. Not an astonishing development, nor programmatically difficult, but, at the time, finding a news reader that makes good sense of its categorization scheme was hard to find. FeedDemon also has some other interesting features, such as its ability to watch for keywords and alert you when those keywords occur in one of your news feeds. But, as the software’s development life cycle matures, some characteristics have started to wear on me. In particular, the user interface has taken cues from Microsoft’s Windows XP (which, in turn, seems to take its design cues from Fisher-Price toys), so the interface has taken on the bubbly, cartoon-like approach. Perhaps more frustrating, though, is that FeedDemon uses Internet Explorer’s engine to render web pages.

Because I lost my RSS subscription list (which I didn’t mind, I find periodic loss of my news feed list good for my mental health), I was free to choose any software to replace FeedDemon. At the outset, I wanted software that would integrate with my most favorite application in the world, Mozilla Firebird. I love tabbed browsing. I love popup blocking. I love the searchable history, the simple Bookmark interface, and the various plugins I use on a day-to-day basis. Every time I try to venture into the world of IE, I dearly miss these things. Not because I have this deep affinity for nerdy things (okay, well, I do, but it’s not really the reason)–it’s because these things help me get my work done quickly and efficiently. Naturally, I would want all of these things in my news reader browsing experience, too.

If you’ve been following Firebird development, and use an RSS news reader, you’ll know how disappointed I was with the results. There are currently three working-now news reader plugins for Mozilla (namely, NewsMonster, RSS Reader Panel, and Aggreg8). Three. Do you want to know how many there are that are built on top of the Internet Explorer engine? Almost 30. Now, I have my niggling annoyances with each of the three Mozilla plugins offerings, but my biggest complaint is: where is the choice? Depending on what you’re looking for, NewsMonster may be too feature-rich, RSS Reader Panel too simplistic, and Aggreg8 too incomplete. Then you’re stuck. “Go write your own.”

Which leads me to the question at hand: is Mozilla development too hard? I’m no programmer, but I’ve taken enough programming classes and read enough of Creating Applications with Mozilla to have a feel for what’s involved–what is it about the IE/.Net platform that makes dozens of developers choose it over Mozilla/XUL? Why haven’t more people taken up the challenge of developing the ultimate Mozilla RSS plugin? Is it because the IE/.Net developers write their code in evironments they already use at work? Is parsing the feeds just a lot easier with Microsoft’s tools? Does designing the UI make more sense in drag-and-drop tools than hand-coding XUL? Are web services clumsy on the Mozilla platform? At what point does XPCOM’s notoriously-complex interface come into play, if at all? What about the developers who are writing code for Mozilla? And the several other developers who have written over 100 great FIrebird extentions?

If I took the time to try and develop my own solution, I may be surprised to discover which of these questions point out difficulties in the Mozilla development lifecycle and which are irrelevant. But, when Ben Goodger issues the Mozilla & blogging communities a call to arms for blogging software (and even garners some nice incentive), to which almost nobody responds, I’ve got to wonder why.

h4. Further Thoughts (11/29/2003 @ 11:00 PM)

Some have given some feedback on the idea that Mozilla development might be too difficult.

Mike noted that IE is the standard development platform for Windows: all of the tools, widgets, and libraries are available to any developer who might want to tap into IE-as-a-platform. He also pointed out that Microsoft has a lot of incentive to make developing for .Net as easy as possible. The more successful IE/.Net is as a development platform, then the more assured Microsoft will be that they have a sustainable market for their operating system. If any other development tool is used for a product–particularly one that lends itself easily to cross-platform development–the less sure that Microsoft Windows will be a part of that product’s strategic future.

What really strikes me about this, though, is that Microsoft’s tools cost money. The breathtaking $1,799.00 enterprise licensing fee for Visual Studio .NET 2003 is a decidedly high barrier for entry for hobbyist developers, who would rather turn to open source alternatives for their needs (such as Perl, Python, and a host of others). When it comes to user interface application development in Windows, though, MS tools are the de facto standard. Why? If Microsoft’s fees are so high, what is it that still compels developers to use these tools?

Mike asserts that the best applications will almost always come from the OS vendor. While I see the point he’s making, I can’t whole-heartedly agree. My browser and email client (by the way, have you seen the latest Mozilla Thunderbird?–it’s beautiful) are developed by the Mozilla Foundation. My MP3 player is developed by Apple. My FTP client and blog writing software are also third-party. There are MS alternatives to at least a few of these, but I think I’ve chosen the better software in each case.

Neil claims that Mozilla development isn’t too hard–he points to the 100+ extensions that have been written for Mozilla Firebird to prove it. I agree that the number of extensions is a testimony to the fantastic ability to enhance the browser through modular plugins. But, my issue is with the lack of developer interest in comparison to those that use Microsoft tools, particularly in this area of RSS aggregation. My biggest struggle with the issue is perhaps that syndication via XML is really the future of the web, and ten years from now we’ll laugh at how clumsily we implemented this strange new technology. Mozilla development for the “syndicated” web seems to be woefully absent, and I’m troubled that we might be missing the boat.

Dan points out the problem is not in the technology, but in developer awareness. I tend to want to agree here, and if this is the case, I should have asked “Is Mozilla Development Too Esoteric?”–not too difficult. I can attest that within a few hours of playing with XUL, I was able to get some widgets working and provide basic functionality behind them. Designing in XUL/CSS is as easy as designing websites, and JavaScript is a flexible, easy language to write in. So, I would assume that the problem isn’t technological, but sociopolitical. When Mozilla 1.0 came out just a few years ago, I thought the technology breakthrough was the browser. I downloaded it…and was disappointed. There was nothing new here but the same old ugly Netscape. What I didn’t see (as a browser end user) was that the entire browser itself was being rendered with the Gecko engine–a clever, intuitive application framework had been invented. I only became aware of this fact last year when I was researching cross-platform development tools for my Senior Project. Then I started to realize XUL’s potential.

I suspect a lot of people are still where I was a couple years ago–looking at Mozilla and saying, “what’s the big deal?”

As a final note, I’d like to say that I’m asking these questions because of my Mozilla advocacy and sincere curiosity. I want to see Mozilla succeed as a development platform because it means the applications I love most will continue to grow and mature. I’d like to see a dialog develop around this question of why Mozilla is often overlooked as a developmental tool and explore ways the community can improve Mozilla’s standing. Thoughts and rants are welcome. :)

h4. Even Further Thoughts (12/3/2003 @ 10:30 AM)

This thought occurred to me this morning: most of what makes a good developer product is the community efforts that spring up around them. I noticed this yesterday when I was doing a little VB coding for work.

I have this great application that I use to track tasks at work. It’s slick, it’s fast, and many, many hours went into keeping the UI out of my way when I’m entering data. I had come up with another tweak and, two iterations later, discovered that I needed to glean some advice from the VB developer community. So, I did what anyone else would do if they were looking up advice on Linux installs, dog breeds, or pie recipies: I used Google. A few clicks later, I had three different solutions to my problem.

Phil Wilson hinted that these kinds of development communities are conspicuously absent from XUL. If you want help for PHP coding, php.net will provide you an annotated manual with real code examples and a lively forum. The first thing Microsoft did as a “viral” marketing effort for ASP.Net was give away a free version of it’s IDE, write a free beginner’s guide (PDF), and start a development community forum. Both of these communities understand that garnering developer support is more than simply giving them the manual–it’s the two-way communication that enables programmers to connect with one another and hash out real-world issues. Sure there’s IRC and email, but experts don’t want to answer the same question over and over again. XUL needs a developer’s forum so programmers can connect with others, share experiences, drive awareness, and distribute knowledge to the community.

If a large part of the problem that XUL faces when competing with other UI technologies is truly social, a development forum should go a long way to help people discover and have their questions answered about XUL. Ideally, it would be sanctioned under the Mozilla Evangelism effort, but anyone who is Mozilla-savvy enough to know about XUL, knows how to build a good community forum, and is good at connecting with people should be able to build such a site. And, hey, URLs and web space are cheap, and forum software is free. Who will build it–will you?

Powered by WordPress and Motion by 85ideas.