Archive for the ‘development’ Category

Steve Krug on Usability

Wednesday, January 6th, 2010


Steve Krug, author of “Don’t Make Me Think” talks about usability. There is so much here that I resonate with. I created this post so that I can CONSTANTLY refer back to it. via 37Signals.

Jeffery Zeldman on Web Standards

Thursday, April 9th, 2009

Jeffery Zeldman is the king of web standards. He, and a few others, have done so much to make life on the world wide web more enjoyable for designers and developers. This video gives you the chance to hear from him in person.

Zeldman’s Designing with Web Standards is a must read if you do work on the web. Also, he, and Eric Meyer put on an excellent conference in four cities every year called An Event Apart.

An Event Apart

Thursday, August 21st, 2008

I had the opportunity to attend An Event Apart in San Francisco earlier this week. This was my second time attending this conference; I went to the Chicago version last year. This year, just like last, did not disappoint. An Event Apart is this beautiful marriage of philosophy, design, development, and fun. I always come away feeling inspired, which is good because that’s one of the main reasons you attend something like this. While it’s impossible to cover everything, and I could never do the speakers justice, I thought I would address some high points.

One of the simple things about An Event Apart that I love is that it’s a “single track” conference. You don’t ever find yourself consulting some elaborate matrix of speakers and rooms in some caffeine-induced sleep-deprived craze only to realize that you have to run, no sprint, half a mile because you’re on the wrong side of the building. Inevitably during multi-track conferences you pick wrong and miss that one talk that all the cool kids are blogging about. An Event Apart makes it simple. Because of the single track nature of the conference you might worry that you won’t resonate with some of the speakers. Seeing as the crowd is pretty evenly split between designers and developers how could they possibly meet everybody’s needs? Somehow they do. During one talk you may find yourself poring over CSS or javascript snippets. In another talk you could be listening to Miles Davis or staring at a beautiful spread from Wired magazine. It’s all wonderful and somehow none of the speakers seem to disappoint.

Another great thing about An Event Apart is the food. At last year’s event in Chicago as well as this year the food was exceptional. No box lunches with crappy sandwiches and stale chips here. It’s like eating a nice meal at a nice restaurant. The other thing about food that I really appreciate is that they supply both breakfast and lunch, and both are great. How they have such great food, great speakers, and keep the price extremely reasonable is beyond me.

So, now for the part of this post were I fail miserably to cover all of the wonderful moments and one-liners from all of the speakers.

Zeldman (@zeldman) provided the bookends for the conference opening with his talk on “Understanding Web Design” and his closing “A Critique Apart” (he critiqued audience members websites). Zeldman is always very entertaining. He has a great sense of humor and really gets the crowd going. The main thrust of his opening talk was what he calls “Empathetic Web Design”, basically design that begins, and ends, with the user. This was something that really resonated with me and also seeped into a lot of other talks during the conference. “Being able to put yourself in the user’s shoes is more important than standards compliance.” It was great stuff.

Eric Meyer (@meyerweb) delivered wonderful (and timely for me) talks on CSS frameworks, reset stylesheets, and debug stylesheets. I got a lot of helpful tips from his talks that will directly influence future development decisions I make.

Jason Santa Maria (@jasonsantamaria) gave a brilliant talk titled “Storytelling By Design”. This was one of those talks that as a developer I was initially skeptical of but still came away feeling very inspired. He also walked through some of the thoughts behind his recent blog redesign which I found very enlightening.

Luke Wroblewski’s talk on “Web Application Hierarchy” was great and packed full of advice for people building web applications. Luke has done lots of research on web form design and layout. In fact he wrote a book on it. The great thing about Luke’s recommendations is that he backs them up with eye-tracking studies that prove them out. He recommends laying out pages so that users can process information “straight down”. He mentioned simple (you might think obvious) things like not hiding required elements. He talked about putting things into simple hierarchies that give users page “anchors” to which they can return.

Heather Champ’s (@hchamp) talk on “Shepherding Passionate Communities” was very interesting. She had lots of great (and scary) stories from Flickr. This was one of those talks that was on the edge of my interests but I still found lots of good nuggets. She talked about leading your users by example which really got me thinking about the products I currently work on and how I might “lead by example”.

Liz Danzico (@bobulate) used jazz as her illustration for talking about “The Framework Age”. This talk was one of my faves. It really challenged me to think differently about the web applications I build. How can we provide frameworks that allow our users to “improvise”? I also thought her talk had some interesting implications when thinking about managing software development teams as well. She also had a great line, “Be exquisite in your simplicity”.

Dan Cederholm (@simplebits) gave a great A-Z talk on bulletproof web design. It was filled with lots of great tips that I can hopefully apply to some upcoming work (as soon as I can toss IE 6).

Jeremy Keith’s (@adactio) talk on “Patterns in the Process” had lots of great stuff. I was especially interested in the section on user testing. I have felt a desire to get in front of users sooner with a lot of the work that I do. Jeremy’s talk reinforced this for me. He talked about his company Clearleft’s product Silverback which helps folks conduct quick and simple user testing on a Mac.

Derek Featherstone (@feather) gave a talk titled “Accessibility Beyond Compliance”. I have heard Derek speak a couple of times now. Every time I leave feeling touched and very convicted. Derek does a wonderful job of showing you how problematic the web can be for people with disabilities. However, he goes on to show you how often very simple things like making sure the “focus” makes sense can go long way.

Mr. Microformats, Tantek Çelik’s (@t) talk was good as well. He walked through a mock “startup” scenario and how at each step in the company’s growth and development microformats might play a part. It was really cool to see how simple semantic structures can enable new levels of tooling and instrumentation on the web. All of which often provide superior user experiences.

Kelly Goto delivered a very challenging talk on agile development. This talk really got me thinking. She talked about the difficulties for small teams trying to focus on multiple things and how it’s desirable to be singularly focused. She is a huge proponent of Scrum development. After her talk I think I should probably look into that a bit more.

Probably the highlight of the entire conference (for me anyway) was Jeff Veen (@veen). He was just incredibly inspiring. His talk was titled “Designing the Next Generation of Web Apps”. Jeff was on the team at Adaptive Path responsible for Measure Map which was purchased by Google (team and product). His team was responsible for Google Analytics. His talk covered some of the challenges faced by modern web applications related to data visualization. He talked about letting the user know what is “actionable” and “not making them think” as Steve Krug would say. At the same time he talked about “Enabling the user to find their own story”. His talk seemed to really resonate with Liz Danzico’s “improv” talk.

Check out some photos from the event (I’ll probably upload some later) on the Flickr Group.

If you love the web, design, css hackery, and brilliant people you should attend one of these. In fact there is still one more An Event Apart this year in Chicago. Enjoy.

LinkedIn & Grails

Thursday, June 12th, 2008

The LinkedIn Blog has the first in what is promised to be a series of post about their use of Grails.

Grails + IntelliJ Setup on OS X

Thursday, April 3rd, 2008

The following is a set of instructions for setting up your Grails development environment on OS X Leopard. This is probably not of much use to anyone else, but at least I’ll have it captured for myself.

Download & Setup Groovy

You’ll need to grab the latest version of Groovy here (1.5.4 at the time of writing). Once you extract the zip file (Safari probably did that for you), move the extracted Groovy folder to the /usr/local folder. Here’s the command I used from a terminal window (you’ll probably be prompted for your password):

sudo mv groovy-1.5.4/ /usr/local/

You’ll need to make sure that the JAVA_HOME environment variable is set. You can add this to your .profile file if it’s not already there. I use TextMate as my editor of choice so I issued this command in the terminal window:

mate ~/.profile

Once you have that file open, add the following line:

export JAVA_HOME=/Library/Java/Home

While editing your .profile file you also need to add the GROOVY_HOME environment variable:

export GROOVY_HOME=/usr/local/groovy-1.5.4

In your .profile file you also need to add $GROOVY_HOME/bin to your PATH. So the last line in your .profile file should look something like this:

export PATH=$GROOVY_HOME/bin:$PATH

At this point you need to execute your .profile file to pick up your latest changes. You can do that with the following command:

. ~/.profile

You should be able to test your Groovy install by running the following command:

groovy -version

It should report something like this:

Groovy Version: 1.5.4 JVM: 1.5.0_13-119

Download & Setup Grails

Download the latest version of Grails here (1.0.2 as of this writing). Once you extract the zip file (or tar.gz), move the extracted Grails folder to the /usr/local folder:

sudo mv grails-1.0.2/ /usr/local/

Edit your .profile file again adding the GRAILS_HOME environment variable:

export GRAILS_HOME=/usr/local/grails-1.0.2

Add $GRAILS_HOME/bin to your PATH. The last line of your .profile file should now look something like:

export PATH=$GROOVY_HOME/bin:$GRAILS_HOME/bin:$PATH

Execute your .profile file to pick up your changes:

. ~/.profile

At this point you should have a working Grails setup. You can test it out using the following command:

grails

If everything is working you should get a help message similar to the following:

Welcome to Grails 1.0.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /usr/local/grails-1.0.2

No script name specified. Use 'grails help' for more info

The Grails installation notes mention the possibly of needing to issue a chmod +X on the grails executable, but I didn’t find this to be necessary. You’re mileage may vary. If you do run into errors you may want to check out the Grails install page. In that case, you may just want to bale on this blog altogether and go somewhere else.

You could stop at this point if you just wanted to kick it old school and use a text editor to write code, but we shall press on.

Install Intellij IDEA Plugin

From inside IntelliJ you’ll need to grab the latest version of the JetGroovy plugin (1.5.15312). Once you install the plugin you’ll have to restart IntelliJ for the changes to take effect. You’ll need to tell the JetGroovy plugin where to find Groovy & Grails. Unfortunately the plugin seems unable to use the environment variables. To set these values Select “Groovy & Grails” under “Settings” and enter the proper path values.

At this point you should be able to create a new project within IntelliJ with a “Grails Application” module.

When you create the new project IntelliJ will run all of the necessary commands to properly setup your new Grails app. Once created you should be able to create a new “Grails Application” “Run Configuration” for your application and your off to the races.

My work here is done.