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.
Archive for the ‘web’ Category
Steve Krug on Usability
Wednesday, January 6th, 2010Jeffery Zeldman on Web Standards
Thursday, April 9th, 2009Jeffery 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, 2008I 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, 2008The LinkedIn Blog has the first in what is promised to be a series of post about their use of Grails.
WordPress 2.5
Tuesday, April 1st, 2008I finally got around to upgrading to the latest version of WordPress (2.5) tonight. It was pretty painless and well worth it. The folks at Happy Cog redesigned the admin interface and it’s much improved. After the upgrade I’m feeling like I need to go through and clean out a bunch of crap (themes & plugins) that DreamHost laid down during the initial install and setup. Anyway, if you’re a WordPress user you should check it out.
Misc SXSWi Stuff
Friday, March 14th, 2008Here are a couple of things that I stumbled upon this week in the aftermath of SXSWi. I’m not sure exactly where I found them. Probably through twitter or someone’s blog, but they somehow made it into delicious. Anyway, check them out.
One of the days I’m going to make it to SXSWi. I’m sure that by the time I do it will have become completely irrelevant.
Struts 2, “A Day in the Life of”
Thursday, March 13th, 2008As I mentioned, in my last post, we are evaluating web frameworks at the office. Seeing as all of our current web-app development is done using Struts 1, we thought it would only be fair if we first looked at Struts 2. I also mentioned in my previous post that we have some basic criteria by which we are evaluating these tools. This evaluation took place on Friday, February 29th, with two of my coworkers.In case you’re wondering, Struts 2 is a significant departure from Struts 1. In fact, it’s totally different. If you’ve ever used WebWork then you’ll be at home in Struts 2 because it’s basically WebWork renamed.How did it stack up against our criteria?
- 10 Minute Rule – Unfortunately Struts 2 failed miserably here, but it’s not all the framework’s fault. Because of some of our other evaluation criteria, namely “Convention over Configuration”, and “RESTful”, we had to use the current development version of Struts 2 (2.1.1 I believe), not the officially blessed version (2.0.11.1 at the time). This meant we had to download, and compile the source. In order to compile the source we had to have Maven. All of our tools are currently built using Ant, so we had to download Maven. Oh, and by the way when we used Maven to build Struts 2 it downloaded the entire Internet onto my workstation while resolving dependencies. We did however eventually get it built. Let’s just say it took a bit longer than 10 minutes to get compiled jars, not to mention running code. However, once we got past this initial hurdle we were able to use the REST showcase application (I’ll mention it more later) to get up and running quickly.Grade D (Maybe C)
- Convention Over Configuration – Once we got everything compiled and running Struts 2 really shined here. However, I should note that this is not necessarily stock behavior for Struts 2. We made use of the Codebehind plugin in order to achieve this (note, it’s also required for the RESTful stuff). Basically if you name things a certain way and put things in the proper places Struts 2 will “figure out” what to do. In our afternoon of playing it worked great. It may also be worth noting that the Codebehind plugin was yet another thing we had to download, and compile, thus further slaughtering the “10 Minute Rule”.Grade A
- Tool Support – This one is a bit of a no brainer. Struts 2 is all Java, we’re an all Java shop with a great IDE. So, we didn’t have any issues here. It’s probably worth noting that all of IDEA’s Struts specific features are geared for 1.x. However, I find most of those features pretty useless anyway, your mileage may vary.Grade A
- Developer Resources – Maybe it’s just me, but I thought that most of the Struts 2 documentation sucked. This probably has something to do with the fact that we were using developmental plugins and an edge version. I’m sure if I took more time to read I would have had a better experience, but as we were rushing to accomplish something in a day I didn’t find the docs much help. On final thing to note about documentation, when you are looking at plugins it can be very confusing as to what plugins do what, what requires what, how one is different from another, etc… it’s a bit of a mess. Seeing as this is Struts we’re talking about I’ve got to believe this stuff will keep getting better as more people move to Struts 2.Other things of value to note here, a simple Amazon search shows that there are a number of Struts 2 books (not sure if any of them cover RESTful stuff). Also, it’s an Apache product so there’s going to be conference coverage.Grade B
- RESTful – Once we got the REST plugin downloaded and compiled this was seamless. The REST plugin comes with a showcase application that serves as a good reference for getting up and running. Most of the RESTful stuff just happens. It’s really nice.Grade A
- Access to Java – Struts 2 is written in Java, it obviously runs in the JVM, nuff said.Grade A
Overall I was satisfied with Struts 2. Aside from the things already mentioned the only major concern I had was the constant feeling that “this ain’t quite ready for prime-time”. Again though that’s mainly because of the desire for “zero configuration” and “REST”. If those things are not requirements for your project, and you can use the current release version of Struts 2 you’ll probably have a decent experience.
Web Framework Evaluation
Tuesday, March 11th, 2008At work, sometime towards the end of this year, we’ll be moving our primary application to a different web framework. There are a number of reasons for doing this, some I’ll talk about here, others I won’t. Obviously in order to properly evaluate some of the tools we need to develop some basic criteria for the evaluation. None of this is set in stone, but here is my first cut (these are in no particular order):
- 10 Minute Rule (ok, maybe 30) – Given the current state of most modern web frameworks it seems to me that you should be able to do something of value quickly. While I understand that you probably won’t finish your application in an afternoon, you should be able to accomplish something measurable. If it takes you all day just to setup your environment, you fail. How long does it take you to write “Hello World”? This will provide a good idea of how quickly you’ll be able to iterate on things when you’re doing real work.
- Convention over Configuration – This concept has been popularized as of late by Ruby on Rails. The core idea here is that if you name things certain ways, put things in certain places, and in general, follow understood methods then you shouldn’t have to spend a bunch of time “telling” the framework where things are. If you have spent much time maintaining a large enterprise web application then you understand why this is important (if not important, then definitely desirable). Most of my recent experience has been with Struts 1, which has lots of “configuration” bloat. Define your actions in this xml file, put your reusable views over here in this xml file, map your domain objects in these xml files, prick your finger and put a drop of blood over here, blah, blah, blah. Not that I’m knocking Struts 1, because we have built some great stuff with it, but these days I think we can do better.
- Tool Support – We’re an all Java shop and all of our engineers have become pretty dependent on a good IDE. Whatever framework we decide to use needs to play nicely with our current development environment. Things like code completion are critical. Can you start, stop, and reload from within your development environment? How long does that take? Telling all of our developers to go back to using vi or emacs just ain’t going to cut it.
- Developer Resources – I want to make sure that whatever framework we choose has lots of resources available for our developers to consume. What is the documentation like? Are there books that you can buy from Amazon? Are there active mailing lists? Are there conferences that you can attend? Is there a local user’s group?
- RESTful – It’s my hope that whatever framework we choose will easily facilitate (if not mandate) RESTful development. I want a framework that will take out some of the guesswork that can be involved here.
- Access to Java – Seeing as all of our core technology is built using Java this is pretty important. We need the ability to reach back and execute Java code in our existing stack. This doesn’t have to rule out frameworks that are built using other languages, but it does mean that if we do look at other languages they’ll have to run in the JVM.
Garmin Forerunner 305
Friday, December 21st, 2007For my birthday back in October I received a Garmin Forerunner 305. The Forerunner is a GPS training device. It’s targeted at runners, cyclists, and other outdoor enthusiasts. It allows me to continually monitor distance, pace, elevation, and heart-rate information all “at a glance”. It’s really awesome, and pretty geeky.
I’ve found the Forerunner to be extremely freeing. It allows me to try new routes without having to worry about exactly how far I have been or when I might need to think about turning around. No more sweaty trips in my car attempting to figure out how far I’ve been. The pace information also helps keep me honest when it comes to training. I have a tendency to relax a bit too much.
Garmin ships an application called the “Training Center” along with the Forerunner which serves as a management console of sorts, and training log. The “Training Center” is not nearly as cool as the device itself; in fact it’s a bit underwhelming. However, it does support OS X, which is cool.
If the “Training Center” does not meet your needs then you can also make use of Garmin’s online tool Motion Based (for a small fee of course). I’ve played with Motion Based a bit, but have not yet found it compelling enough to actually pay for. It seems to me that Motion Based could be so much better than it is. Hopefully Garmin is looking at significantly retooling it.
Garmin is also making some strides related to development tool support for their products. Thus making it easier for 3rd party application developers to access device data and get it into other tools. Tonight I spent some time playing around with the Garmin Communicator Plugin, which allows you to interact with a Garmin device via javascript in your browser. It’s freakin’ awesome. I wish I had more time to play
Blue Beanie Day
Monday, November 26th, 2007Today was Blue Beanie Day on the web. I hope that you all donned your beanies, I know I did.