Monday, February 20, 2006

Going Free

It's been awhile since I last posted, mostly because I had to give the Powerbook back for the contract I was on, at which point, my personal laptop then up and died right thereafter. I've been contemplating buying another Mac, specifically, the MacBook Pro, but they've now been pushed back another 4 weeks. This works well because I didn't really have it in my budget right now to plop down another $2000+ on a system.

In the meantime, I've had a friend lend me an older Dell laptop, which I've now installed Ubuntu Linux. I have to say, I'm finding Ubuntu to fit my needs quite well. The only program that I truly miss is Microsoft Visio, but I didn't really have that on the Mac, either. I've download DIA, and have the Draw program that comes with Open Office, and I intend to give each of them the full run through, perhaps create some wireframe stencils for whichever one I find I prefer. Still, if I'm only missing 1 application from the Windows World, I think I'm doing pretty good. If I were doing full-time I/A work, I might find it a bit more difficult to concede on Visio, but I'm not right now, and I find Ubuntu is great for development and simple productivity apps.

Things I enjoy about Ubuntu:

  • Apt-Get and the Synaptic Package Manager. I've always wanted a nice, user-friendly version of Linux based on the Debian distro, primarily because I knew Apt-Get was the friendliest package manager for linux, and installing new apps on Linux is one of the areas that I always have had problems.
  • It behaves almost exactly like a slightly degraded version of OS X. Infact, it seems the Ubuntu crew borrows liberally from the Apple folks. There's a couple of small things that need to be fixed, primarily a short-cut / Windows key combinations, but they're somewhat minor, and I can forgive them given that the software is completely free.
  • Regular updates. There's a new version of Ubuntu out, roughly speaking, every 6 months. Given that I'm new to the system, I don't know how significant these updates are, but the committment to activity means I'm more comfortable adopting it knowing that they're working on bugs.
  • Plug and play, easy install. Installing Ubuntu was one of the easiest OS's I've ever installed, and quick, too. The only snag I ran into was buying a Linksys 802.11G wireless card. It wouldn't work, and I had to go with Netgear, which worked out great.
  • Ruby, and Rails, were both dead simple to install, and I'm back up and working on some personal content management projects with some software I had started on before my laptop took a dive.

Also, while I don't particularly care for the 'look and feel' of Open Office Writer, the Spreadsheet app in Open Office is generally good. And I've recently started using Writely to do most of my word processing (fantastic app!). All in all, I'm very happy with Ubuntu, and it's getting to the point where paying $2000 for a MacBook seems a little insane now that I've got a decent GUI wrapped around a linux distro, and it's not costing me a dime.

Mmmmm... Check it out .

Sunday, January 15, 2006

Becoming a Better Geek - A List of New Year Resolutions

Okay, so I'm a little late with my resolutions, that's just because it's been a busy new year. Now that things have settled down a bit, I'm starting sift through my notes, reflect back on what went right, and what went wrong in 2005. 2005 was a disruptive year, I left not 1, not 2, but 3 different jobs. Never in my life have things felt so unstable, so insecure, and for a short while, I thought I might have to move to Nevada for a contract(fortunately, that wasn't the case). On the plus side, every job I left meant higher pay at the next one, and it has brought me closer to my real industry value. I still have a tendancy to undersell myself professionally, but that's partly because a small part of me refuses to believe that people will actually pay me to do what I'd likely to do for far less money if it meant doing something outside of the web.

If 2005 was a disruptive year, 2006 is definitely a rebuilding year. A new apartment, a new job, and a far greater sense of stability with much greater pay than ever before means that I can focus on creating more long-term value within myself. I definitely have my personal resolutions(start running again, cook more, Smart Home hacking, etc), but the goal with this posting is to share more professional minded goals. With that in mind, here's the short list:

1. Improved Communication Skills. As this technology stuff becomes more and more old hat, and tools continually get easier to learn and implement, the hard part seems to be focusing on improving my communication skills and applying them to my career. Primarily, I'm thinking in terms of group communication and presentations, having to talk intelligently in front of more than 5-10 people, and having to communicate in meaningful, or instructive ways. To that end, I've already joined a local Toastmasters group, and I can already see the benefits. Public speaking, or presentations in general, are one of the most difficult areas one has to improve, and I'd wager that a big reason for that is that most people have limited opportunity to practice. Toastmasters, while some may think of it as a perverse, self-obsessed, baby-boomer created self-improvement program, it does offers a lot of opportunity talking in front of groups, and a captive audience that is willing, nay, committed, to offering constructive feedback. I've only been to one session, but I can see it becoming slightly addictive as a research tool (you have to know what you're talking about) for play or work. In fact, I'm already scribing quite a few mini presentations.

2. Become Better Known as an Expert in My Field. I work in web development. Some may tie the title Information Architecture, Interaction Designer, or User Experience Developer to a lot of I do, but in my mind, a lot of those titles sound pretentious (if I hear the word Architect to describe one more field outside of those who actually design large buildings, my head is going to explode). If there's any title that I'm most comfortable with (outside of web developer), it would most likely be Interaction Designer. It fits within my interests, and can be applied to a wide variety of fields. In addition, I already work with, and know personally, quite a few top notch Information Architects, and I really have very little interest in competing for their positions. Plus, if the web of the late nineties and first few years of this century needed I/A's to organize the web's content, the popularization of AJAX, the Read/Write web, and the web as a platform surely needs people highly skilled in Interaction Design. To that end, I'm making sure I participate more, both in the online IxD and I/A communities, as well as professionally, at conferences and seminars. I'm also working with others, and have plans to create a series of workshops in the DC area, which I hope to be announcing in the coming months.

3. Learn Another Scripting Language. I had to learn J2EE (reluctantly so) for an old employer when our engineer left, and we still had a CMS to build, maintain, and enhance. I never much enjoyed it, and thus was never much good at it. I definitely dug on the UML diagramming, creating wireframes, abstracting layers, and generally building a technology product that could be reused and sold. But Java, and Struts, and always seemed a bit verbose, and very time consuming. Still, I love designing and building technology tools, products, and services, even if it's just for myself. That's why, when Ruby on Rails was released as an open source, rapid application development framework based on a Struts inspired MVC model, I dug right in. I'm now fairly well versed in Ruby, and Rails, and I plan to continue to develop in it as my primary tool (at least 1 major project planned right now). Still, it can't hurt to pick up another langauge, and since I'm dropping compiled languages (or, JIT ones), and less than ideal object oriented ones, Python seems a good backup. I'm choosing Python because it seems to have a sizable community, is more object oriented than PHP, has a couple of interesting frameworks and projects already underway, and seems to double as a nice "glue" language for system administrators, linux hackers, and Mac enthusiasts.

4. Contribute to an Open Source Project. As I left a company building in Java, and went to focus my professional skills on front-end developmont (CSS/XHTML/JavaScript), I gained a much clearer understanding of the benefits of open source. It's gotten to the point where other than a few exceptions, it's increasingly difficult to see myself ever going back to using proprietary, closed source applications. This phenomena is most pronounced when it comes to choosing a programming language. Java? No thanks. .Net, uh-uh. I want a quick, rapid development or prototyping environment that will allow me to focus on ideas, and that won't have me tied to a specific platform; one that will be supported by the community long after some company invents the Next Best Thing and stops supporting it. My first project will likely be an web RSS scraper built for myself with Python, XPath, and HTML Tidy to gather local events. After that, I'm going to start moving to Visio mockups & storyboards of Ajax interactions, and moving to develop, and freely release those interfaces to the community. Possibly by the end of the year moving towards wireframing and architecting interfaces for new Linux applications0.

5. Go Back to School. Due to family committments, as well as a less than ideal vision of what I wanted to do long-term, I never finished college. It still bugs me to this day. Fortunately, I'm in a position with a great new employer, where they are willing to help pay for me to go back to school. I'm also fortunate that in that I'm single, without children, with little to no debt, so I can readily afford the time to go back to school. My only difficulty is that I love learning, and I'd ideally like to go back for a double major in Economics and either, Human Computer Interaction, or Library Sciences. Of course, topping that off with an MBA would be grand, but as they say, one thing at a time. I would think a double major in Economics and Library Sciences would be fascinating, but my career is point more towards HCI, long-term.

p.s. #6 is to get back on a Mac! It's hard to be a professonal when you're working with a toy!

A Quick Pointer to a Great Music Writer

If you're looking for a passionate, interesting, wordy, and all around great blog on music, you could do a lot worse than this guy. Check out his list of the best music of 2005, and read up and listen to his compiled Christmas music from the last two years. This guy is a surefire way to find great new tunes.

Chris was also one of the people who introduced me to TWAS, simply some of the best music writing on the web.

Wednesday, December 28, 2005

I am a Schmuck

File this under "totally obvious".

I'm an anti-mouse kinda guy. I want to use the keyboard as much as possible. This is somewhat of a new trend for me, but I figure if I can use the keyboard accelerators, that's less time I have to spend reaching around and pointing all over with a mouse. In the end, for most tasks, I figure the keyboard will be quicker.

Well, it's always bothered me when cycling through a page using the Tab key, especially on forms, that if I accidently tabbed one field too far, I would either have to click on the right field, or tab all the way through the page again.

Well, today, curiosity got the best of me, and I decided to Google the "previous tab" shortcut stroke. Sure enough, it's there: Shift+Tab


I'm sure it's been there for years, as it is totally logical with Microsofts interface guidelines. I will now be much happier geek.

If only someone would create a version of Quicksilver for the PC, then I would be completely set. In the meantime, the Google Desktop will have to do.

Monday, December 26, 2005

DOM Scripting - Web Design with JavaScript and the Document Object Model -- By Jeremy Keith

I mentioned this book in a post the other day, but it really deserves it's own post. I just finished the book on Saturday, and I feel comfortable saying it's without a doubt, one most well written technology books I've ever had the pleasure to read.

I was skeptical at first, up until now, I felt the same as Dave Shea (CSS extraordinaire) in the forward:

"JavaScript? No way. It's inaccessible, you know. Relying on it will make your site unusable, too. It's the root of many an evil pop-up window. I mean, it probably even kicked your dog when no one was looking...."

"... Or so I thought..."

"... In fact, the sate of DOM Scripting at the moment reminds me of where CSS was in 2002. Up to that point, CSS had been considered this quirky little web display language that no one used for anything more than font styling."

Well, in 2002 I took to the leadership at my then current company, and laid the ground work for us to transition towards CSS layouts. It was, I believe, a good decision and has been a feather in my cap for every job I've applied for since.

Since 2002, much like Mr. Shea, I've avoided the use of JavaScript in my work. I thought of it as a hack, and admittedly, in many cases and implementations I've seen, still do. Mr. Keith, however, lays a great foundation for how to go about implementing JavaScript. In one of the most methodical, almost anal retentive, approaches I've seen applied to any programming book, Keith goes case by case instructing you how to go about using the trifecta of XHTML/CSS/JavaScript to create dynamic pages that also benefit from maintaining they're accessibility.

If you're an XHTML/CSS purist such as myself, who's strayed from JavaScript due to accessibilty and clientside benchmarks, DOM Scripting by Jeremy Keith is the perfect introduction to the language. It's a rare book that will easily double as an introductory text, as well as a proper reference for best practices and proper implementation. I also picked up the Oreilly JavaScript Rhino book at the same time, and I can't imagine working with DOM Scripting with both books at my side.

Seriously, I may sound as though I'm gushing a bit, but it may be the most accessible book I've read on technology. Mr. Keith obviously knows a large majority of his audience is designer oriented web developers who have avoided JavaScript due to it's programming nature. As such, he does a remarkable job describing technology in a very human language.

Go buy it!

Sunday, December 25, 2005

Local Giant -- Poor Usability Leads to a Poor Customer Experience (or why I love John Mackey)

I recently moved into a new apartment in the Columbia Heights area of Washington, DC. It's a great apartment, with a view overlooking the city, and a clear line of sight to the Washington Monument. No doubt about it, it's the best apartment I've lived in since I moved here 6 years ago.

One thing that came up recently, though, was grocery shopping. I've been fortunate to live within a 5 minute walk to a Whole Foods for the past 3 years, something I always appreciated. Nowadays, in my new apartment, I have two choices. I can walk 15 minutes to the new Columbia Heights Giant, or I can make a slightly longer jaunt down to my old stomping grounds and hit the Whole Foods in Logan Circle.

Well, yesterday, after deciding I needed a few more groceries for today, I decided to swing by the new Giant, which I really hadn't been to much since it opened. Plus, I figured, moving into the neighborhood, I had better get acquainted with it.

I have to say, it was one of the most unpleasant shopping experiences I've had in awhile. A quick list of bad encounters and other observations:

  • Store Entry. There's one entrance to the entire store, and it actually doubles as the stores only exit. To make matters worse, not only do you have street traffic coming in, but you also have people getting on/off the elevator. This leads to a high level of congestion, and carts clangin', etc. The paranoid part of me speculates that this was actually a conscious decision by management in order to more easily catch/trap shoplifters since store resides in an "up and coming" neighborhood.
  • Store Aisles. One thing Giant seems to take a bit of pride in promoting about the new store is the vast selection, and overall size. However, from a usability standpoint, they've created aisles with no mid-way breakpoint, and the signs hanging at the end of each aisle are hung fairly high, with a relatively small print (at least it seems small when reading from the other end of the aisle).
  • Employee Hiring: This is just one thing that I've noticed, and it's certainly not the fault of the employees, but it's worth noting in my opinion. One of the reasons I love shopping at WholeFoods is that they really seem to employ a sort of "behavorial hiring" practice. If you're not familiar with that term, it's pretty popular these days in the service industry, and it basically just means hiring people who are naturally well suited to customer service positions. I actually believe I'm one of those people, as any technical support position I've ever had, most of the success came because customers really enjoyed the natural people person approach. To bring this back to Giant, they seem to have no sense of what it means to hire customer focused employees. That's not to say that the Giant employees are all unpleasant to deal with, but none of them seem to enjoy interacting with customers, and it comes through.

The next few things are not so much a usability issue, per se, just small annoyances. However, they stick in my craw ;-) :

  • Floors are generally dirtier.
  • On prior visits I have seen customers snacking from the produce section, this last time I saw an employee stick her hand into the prepared food section to grab and eat a couple of french fries.
  • Bombarded with advertisements. Okay, look, I'm already in your store, I'm likely buying quite a bit of groceries, or at least as much as I believe I need. I don't need the Giant spokeswoman selling me additional goods through a recording on a loudspeaker as walk through the store.
Also, and this is again a personal issue, but as I walked through yesterday, I couldn't help but gain a sense that the entire experience was unnatural. The produce section is great, and varied, but they seemingly get produce that is likely not grown in the DC area, or even the east coast! How does it get here? Is it fresh? What sort of chemicals are they growing it with?

Simarly, walking out of the produce section, and into the meat section, everything's wrapped in skin tight plastic, in order to keep it as fresh as possible, as long as possible. No thanks, I'll take my meat as naturally as possible, and I'll likely buy it the day I need it, possibly up to two days in advance.

Finally, if you compare the aisles of your local WholeFoods or other organic markets against those of Giant/Safeway/(insert traditional supermarket), I think you'll notice something. In attempt to make sure product stands out as much as possible on already crowded shelves, the people who supply to Giant/Safeway/etc make these horribly bright and garish packages to sell they're goods. I've found on my last few trips to Giant, that this has actually made the whole experience that much more unpleasant. If I were one to be prone to random headaches, I'm pretty sure a trip to Giant would induce one.

All of this brings me to one last comment. The new Giant was built(half-assedly so) to compete with the likes of Whole Foods, and to a lesser(but growing) degree, Wegmans. I'm of the opinion now that Whole Foods is pretty much unstoppable, and here to stay. As someone who loves food, and believes that it has the power to not only sustain, but also heal, as well as bring friends and families together, I can only ask that John Mackey and the rest of Whole Foods continues forward in their success. While Giant has stumbled with their location in Columbia Heights, at least it was a stumble in the right direction. Something we probably all need to do a little more often.

Happy Holidays

Thursday, December 22, 2005

Google, AOL & speculation

Sitting here this last week, it seems there was some concern in the web community as to whether Google's purchase of a 5% stake in AOL was a misstep down an ultimately very damaging path. It's pretty well known that most tech savvy people are not fond of AOL (myself included), and that they seem to have a pretty good reputation of bringing the stock down on otherwise attractive companies.

I'm still not sure this was a good move by Google, on whole. It could turn out to be some curse that brings their stock down this year, and it would not surprise me.

However, Google made one blatantly aggressive move in this acquisition that has me extremely excited: they've requested that AOL Instant Messenger become compliant with GTalk. Combine this with the fact that Google has released the API for GTalk this past week, allowing for all sorts of mash ups with the application, and you have a foot hold for a lot of interesting mashups in the most mainstream of all I/M clients. What this means is, when mobile phone manufacturers start releasing their 3G compliant phones this coming year, we'll have mashups with the GTalk API that will allow us to use the wireless internet to make free calls on our cell phones, and not utilize any of our cell phone carrier minutes (i.e. Sprint Nextel, Cingular, etc).

This is very cool, and Google deserves a lot of credit for pushing this through. I think for Google, next year, GTalk will become they're killer application. Ideally, you should be able to connect from your cell phone, to any AIM or Gtalk client in the world, for free. Once that reaches the tipping point, you can be sure that the telecoms will slowly start to matter less and less. Will the FCC start to regulate VOIP and the internet? Let's hope not!

Wednesday, December 21, 2005

ARRRRGGGGHHHH!!!!! Editing in Dreamweaver using Tables!

Ack! I'm on smallish project for a larger client, and the site templates were just handed over to me today.... It's using a table based layout, and everything's been constructed using Dreamweaver...

If I'm not mistaken, it's going to be 2006 in less than 10 days -- it's been 4 years since I've had to do an implementation such as this...

I thought this battle was over?!

Question to figure out: How do you convince an organization with 4 designers, who do most of the HTML work, that it's time to move on and that they have to learn CSS?

I've successfully transitioned other companies that I've worked for in the past, but this one is inherently more beauracratic. I will consider it a major coup if I am able to transition this organization to pure CSS within the next 6 months. I would like to do it in less.

Oh, and if you haven't already, go pick up DOM Scripting - Web Design with JavaScript and the Document Object Model by Jeremy Keith. It's the best programming book I've read in quite some time, Mr. Keith does the single best simple introduction to a programming/scripting language that I've yet seen.