Topic: Open Source

Pathfinder’s Mike Laurence wins Hack-a-thon for iPhone app

app-lighthouse-body-1

This year's Day of Mobile had a number of interesting tracks, including the ever popular hack-a-thon.

In the hack-a-thon, developers worked alone or in teams to build applications that targeted any one of the mobile platforms (iPhone, Blackberry, Android, Palm, Windows Phone) and presented their applications to the attendees to win prizes.

Our own Mike Laurence, who won the in in the open source category for developing an iPhone application for the Lighthouse issue tracking service. In three hours.

How? By using our recently released Core Resource Framework, a local/remote resource management framework that accelerates the creation of API clients, our soon to be released DynamicCell project, and integrating with the Lighthouse API. Pretty sweet.

I talked to Mike about it afterwards, and here's what he had to say:

"Three hours is a pretty short time to develop an application, but this was a good chance to test out the Core Resource framework. I've been working on the framework itself for the last five months or so; for the hackathon I decided to see if I could actually make a working app in 3 hours. I ended up creating a Lighthouse account (bug tracking website) for the project, and because Lighthouse has a nice API, that's what I used as my source. I did get an app up and running in 3 hours, which was pretty exciting. It even looked decent, due to the other open source project I announced (DynamicCell.")

The Core Resources framework is available now, and look for an announcement on the DynamicCell project in the next week or so.

We're building a fair number of iPhone and iPad applications now, and it's great so have someone like Mike on the team and contributing back to the community.

What is the ideal Senior Developer skillset?

IMGP3922

We're currently in the process of interviewing candidates for 1-2 Senior, and 2-3 junior level Rails Developers, and I'm wondering about the skills that are most critical, and how best to identify the best candidates.

My normal interview process flows like this:

  1. Quick Phone screen evaluating basic development skills, background, availability, personality
  2. Basic coding problem (less than 1hr to complete)
  3. Phone call to review coding problem, 'how would you handle X?' questions, etc
  4. On site interview targeting: Communication, Communication, Communication, (and tech)
  5. Final decision

Independent of the language they will be working with, I've found decent success with having candidates answer some standard dev questions, solve a basic coding problem, and demonstrate their ability to whiteboard a design.

The problem is that it doesn't scale. When we've opened up positions in the past, either Senior or Junior, there have been so many applications that its hard to contact them all. This leads to a reshuffling of the tasks and matching criteria, in an attempt to identify the 'best' matches, and 'filter out' the others.  So instead of calling each candidate first, we might simply reply to them with the details of the coding assignment. I've seen 40 people send the "I'm an extremely hard worker, very interested in your position and would do anything to join your wonderful company" cover letter and resume, and then get whittled down to only 10 candidates that actually submit the assignment.  (Note to applicants: 'showing up' is an important first step!)

I came across an interesting post titled '11 tips on hiring a rails developer' which mentioned some 'filtering' criteria to identify the best candidates

You can read the full description of each one, but there are a few of these that I wanted to highlight:

  1. Don't use Monster.com or recruitment agencies.
  2. Poach Talent from other companies!
  3. Don't hire someone that doesn't know Rails at all.
  4. Look for open source contributions.
  5. A personal Rails blog is required.
  6. A university degree is not important.
  7. Be wary of holes in proficiency.
  8. Avoid brand-name superstars.
  9. Hire perpetually.
  10. Have a company Rails blog
  11. Special compensation.

So each of these tips is meant as a heuristic or proxy of the true underlying ability. Any time you are making generalizations you are going to miss out on a few exceptions, but hopefully you end up with what you are looking for.

Starting with the most controversial first, (#5) while I like the idea of giving a strong preference to someone that has a rails blog, and loves  Ruby, Rails, and Web Development enough to be opinionated and spend their own time ranting about it, I'm not sure I could make it a filtering criteria. Doesn't that seem a bit strong?

I feel the same about (#4) Open Source contribution. I think its great if they have it, but I'm not sure I would reject any candidates that haven't contributed to open source.

While I've met many systems administrators that (#6) don't have a degree, and are very good at their craft, I haven't really encountered many solid developers that don't have a degree. That's not to say they aren't out there, I'm just saying I've never encountered them, and I'm reluctant to use it as a filter. Do you think that there are many strong Rails developers out there without degrees? (I don't care if they have a CS degree, but I think I prefer that they have some kind of degree)

As it relates to (#1) and (#11), I know for sure that the economics of finding a candidate through your own network and contacts can be less expensive than the recruiter fees (assuming you find a decent candidate and don't waste a lot of your own time doing it), and if you are able to find someone directly, it frees up cash for such amenities as 'New Macbook Pro', 'RailsConf', and 'Fridge full of XXX'.

If I was in charge of everything

I really like what Andy Singleton describes regarding how his team at Assembla is organized and tackles Agile Development, and on the right project, I'd really like take his advice and try this one:

"Don’t interview. Just pay people to join a project, pull a task from the queue, and find out what they can do."

Anyways,  I'd be very interested in your thoughts regarding what makes for a Solid Rails developer, where you find them, how you keep them, and what you've learned.

(Oh, and if you know any passionate Rails Developers in the Chicago area, send them over!)

Blackbird takes the pain out of JavaScript logging

Blackbird screenshot

I'm excited to announce the arrival of Blackbird, an open-source JavaScript logging and profiling utility written by G. Scott Olson, a former colleague from my days at Orbitz Worldwide.

A previous iteration of Blackbird provided no-nonsense, cross-browser logging on a variety of projects within Orbitz. Since that iteration, known as jsLogger, Scott has re-written the code from the ground up; provided tons of useful new features, including custom namespacing and a spiffy new graphical interface; and released it under an MIT license.

Why, you might ask, in the age of Firebug, would anybody need a JavaScript logging utility? Simple:

  • Blackbird works in a wide variety of modern browsers. Write one style of log statement for every browser.
  • Blackbird can be deployed to production. By stubbing out its public API with empty functions, you can leave your log statements in production code. (I'm not endorsing this approach to code maintenance, just pointing out that Blackbird makes it easy.)
  • Blackbird does one thing and does it well. It's not a debugger, it's just a logger and profiler.
  • Blackbird doesn't interfere with Firebug's console.log utility, but it does improve on its interface. You can hide or show the Blackbird modal with a single, customizable keystroke. You can also choose from four levels of logging (debug, info, warning and error) and atomically toggle their visibility within the console.

The Blackbird project now lives at Google Code, where you can download it and learn about how to contribute.

Ext JS: License Troubles with Their Use of YUI?

extjsIn this little post, Eric Miraglia of the YUI team points out that Ext JS' recent change from LGPL to GPL and their inclusion of some YUI code without including the text of the YUI license (BSD) may violate the terms of that license.

I don't think this is a serious infraction, but it does point out how important good will and amicable relationships are between open source projects that violate one another's licensing terms all the time.

Adobe “Open Screen” is not “Open Source”


So Adobe is opening up their Flash platform via the Open Screen Project. Opening up in this case doesn't mean "Open Source," more like Open Spec. The spec for SWF has been published since 1998, but it came with onerous licensing restrictions. Adobe has now removed those licensing restrictions and promised to publish more API and protocol details.

Why is Adobe doing this? From their FAQ:

The Open Screen Project is working to enable a consistent runtime environment – taking advantage of Adobe® Flash® Player and, in the future, Adobe AIR™ – that will remove barriers for developers and designers as they publish content and applications across desktops and consumer devices, including phones, mobile Internet devices (MIDs), and set top boxes. The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. The consistent runtime environment will provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.

Some bloggers have speculated that this initiative is aimed at creating a Flash/AIR runtime on the iPhone. Maybe. But right now this thing looks more like an industry cooperative (not necessarily a bad thing) rather than a dynamic open source project.

Agile Business, Microsoft and the Threat of Cloud Computing

Competition is the keen cutting edge of business, always shaving away at costs.

-- Henry Ford

I've been working with Java and Microsoft technologies -- .NET most recently -- in one form or another for quite some time. My company, now headquartered in Chicago with an office in NYC, was actually founded in Seattle by a group of four developers that had met around developing an Exchange-based bulk email system to replace the sendmail-based ones that Microsoft was using at the time. In that span, despite all of the food fights about total cost of ownership (TCO), etc., I haven't seen any evidence that Linux, Windows, Mac, Java, .NET, etc., puts you at a significant business advantage one way or the other. Until now.

Continue reading »

Ext JS 2.1 Now GPL (was LGPL)

One thing I overlooked with the release of Ext JS 2.1 is that it is now GPL rather than LGPL. That means that if you build Ext JS 2.1 into your app, it would have to be GPL's if you planned to distribute it. (See this flame thread on the extjs forum).

Not a problem if you are providing a service, but if you are distributing the application, then you are GPL infected.

If we look at part of the GPL v2:

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Now IANAL, but if you distribute a stub application with at least 2 UI implementations that can be downloaded and installed separately, you might be OK. Another argument for designing your applications as service providers that can be accessed by multiple different clients. That way you can change UI frameworks as necessary, such as when your current framework changes open source licenses.

Continue reading »

Google Summer of Code 2008

Got an Open Source or Free software project? Want some young, eager college developers to give you a boost? Then you should check out the Google Summer of Code. The details:

Over the coming months we'll be working with open source and free software groups to select hundreds of student projects from thousands of applications. Then, during the summer, we'll distribute millions of dollars in stipends to the students cranking out the code. Our goal is to increase the world's supply of open source software while providing young programmers inspiring, meaningful summer jobs.

Since the first Google Summer of Code in 2005, the program has had remarkable success. Last year we connected 900 students with more than 130 open source mentoring groups, including such prominent organizations as Dojo, Python, Samba and Ubuntu. Several past students are still contributing to their projects and many are serving as mentors in this year's program. Meanwhile, similar programs are springing up all over, including the Finnish Summer Code Program, the GNOME Women's Summer Outreach Program, the Season of Usability, and game publisher NCSoft's Winter of Code.

This year's Google Summer of Code promises to be the most successful we've ever held. We've extended the program timeline to allow students and mentors to discuss applications before settling in to write them, and we're continuing last year's tradition of announcing accepted applicants early to allow students more time to bond with their project communities.

We look forward to applications from organizations and students eager to participate.  Applications for organizations open March 3 and close March 12; for students, applications open March 24 and close March 31.  Coding will run from May 26 through August 18.

Note the appropriate use of the semicolon in the second-to-last sentence. ;-) We're thinking of gettin us one of them thar summer of code students for one of our own Open Source projects: RSH.

Technorati Tags: , ,

Interview: Songbird developer evangelist Stephen Lau

Poweredbymozilla
After my enthusiastic support for the open-source Songbird media browser, I recently got the chance to sit down (virtually) with Stephen Lau, Songbird's developer evangelist. Stephen was full of thorough, informative answers about Songbird's technical underpinnings, business model, development methodology and roadmap to version 1.0.

Agile Ajax: For software that's still pretty far from a polished, commercial 1.0 version, Songbird has attracted a devoted following and an active user base. How and why do you think that's happened?

Stephen Lau: We owe it all to our fans! The users that have adopted Songbird have definitely put up with some growing pains as we get closer to our consumer 1.0 release, but they've done so because they see the value in having a completely open platform as a media player. They are the type of users who are early adopters, music geeks, tech geeks, etc. and as near as we can tell, Songbird's following has grown via word of mouth (blogs, reviews, etc.) from our users.

Continue reading »

New Year’s Resolutions 2008

As I've posted before, I'm pretty leery of prognostication. My colleageus Noel and Dietrich have already made their predictions for 2008, anyway (here and here) so who am I to join the fray? Instead, let me dust off another hoary device and share my programming resolutions for 2008.

Continue reading »

Another Brain Fart on Why Open Source is Bad

Every so often, someone scrawls a manifesto about why closed source is good and open source is bad. Usually the parties involved are technical ignoramuses (like in this Economist article) or industry hatchet men. But Jaron Lanier should know better. He isn't a hatchet man and is far from a technical ignoramus, yet he engages in the same sort of sloppy thinking that characterizes those other brain-stain graffiti artists.

His article for Discover Magazine, entitled Long Live Closed-Source Software!, is a case study in bad examples in the service of a simple argument. His argument goes as follows:

  1. Open Source == Linux
  2. Linux is a derivative if qualitatively better version of the closed-source UNIX.
  3. Therefore the open source movement can only produce derivative works, and nothing as breathtakingly revolutionary as the iPhone.

He goes on to speculate about some of the causes for this failing, likening closed source to cell walls that help organisms differentiate and speciate. Open source, by contrast, is like the primordial goo.

Continue reading »

Coming soon: Songbird 0.4

The Songbird team is working hard to push out a 0.4 release by the end of the year. This Mozilla-based media player still has long way to go before it'll be ready for prime time. But incremental improvements from one developer prerelease to the next keep me excited about the possibilities. Changes for 0.4 include the concept of display panes: "standard integration points to attach Songbird add-ons to." Songbird's XUL-based rendering engine allows plugin authors to completely rewire the application interface, but display panes simplify that process by dividing UI real estate into predefined zones. Plugin authors will still be able to build their own layouts, but in most cases they'll probably prefer to wire up the standard display panes; that's just usability 101.

When I first posted about Songbird a couple of months ago, I hoped that it would eventually become the player of choice for users with very large (100gb+) media collections - users like me. Trolling Bugzilla, I can see the database engineers are hard at work figuring out how to optimize performance for power users as well as typical users. One possible approach: tuning the SQLite search algorithms based on user profile and library size. After years of struggling with iTunes's terrible scalability problem, I'm eager for an alternative. Songbird's search functionality is still extremely slow compared to other, more mature applications. But I'm buoyed by the knowledge that Songbird's developer community includes folks who aren't interested exclusively in casual users with a few hundred (ore even a few thousand) tracks.

After my original post, commentators suggested I give Amarok and foobar2000 a shot. But given that the former is a Linux/Unix project and the latter is Windows-only, I remain unconvinced. Songbird may not emerge from the demoware stage for a while, but the possibility of an open-source, cross-platform media player still gets me excited.

In addition to scalability, I was looking forward to better tools for the construction of mixtape-style playlists. Voila, the Songbird Blogs bring news of the Now Playing add-on, which allows you to construct a playlist in the right sidebar display pane while keeping your library visible. Compared to the iTunes interface, in which it's impossible to view both a playlist and your media library at the same time, this is an awesome feature.

I've been chatting with Songbird's Stephen Lau about the project and hope to publish an interview with him to coincide with the 0.4 release. Watch this space.

Technorati Tags

Songbird 0.3: Why aren’t Ajax folks more geeked about “the Firefox of media players”?

Songbird, the open-source, Mozilla-based media player, received its 0.3 "developer pre-release" on Oct. 30. The UI hasn't changed much since the 0.2.5 "developer preview," but things continue to evolve under the hood. Better yet, the documentation and demos keep getting better. Check out the developer center for information about using XUL to build add-ons or using the JavaScript API to integrate your webapp with Songbird's media player.

If you've yet to experience Songbird, a little background is in order. The project is run by Pioneers of the Inevitable, a Bay Area company founded by veterans of Winamp and the Yahoo! Music Engine. Building on Mozilla's XULRunner platform and the VLC media player, Songbird aims to unite a web browser, a media jukebox and an online media player into a skinnable, extensible, open-source application. At this stage, the app is a long way from challenging the likes of Windows Media Player, let alone iTunes. But as it grows, it promises to cultivate the same kind of fervent user and developer communities as Firefox, Thunderbird and other Mozilla projects.

Picture_1

I first became aware of Songbird via a Boing Boing post. I'm surprised it hasn't generated more noise in the various Ajax feeds and news sources. With all the excitement about specialized browsers and desktop webapps, from Mozilla Prism to Google Gears and Adobe AIR, it seems like Songbird would be earning a lot of buzz. Maybe I'm just not hanging out at the right water coolers.

As an Ajax developer and huge music nerd, I'm looking forward to playing with the JavaScript API. It promises seamless integration between webapps running in the Songbird browser and the media player itself. Imagine iTunes, but instead of a built-in browser that only supports the iTunes store, you've got a Firefox clone that plays well with music vendors, P2P networks, MP3 blogs and any other internet music resource. Visit a music mag, for instance, and see all of its featured downloads automatically show up as a playlist in the media player (as in the Hype Machine example above). Visit an online music store and experience an iTunes-esque purchase experience. Indie-music brands such as eMusic and the aforementioned Hype Machine have already gotten on board. To see Songbird's API in action, compare these sites in Firefox and Songbird.

Songbird's add-on ecosystem is cool, too, especially for long-time Firefox developers. They can adapt existing add-ons with just a few tweaks. (GreaseMonkey, for instance, has already been ported.) But Songbird's API allows for more radical innovation than Firefox's add-ons. Instead of simply adding context menus and pop-up dialogues, you can rewire the entire UI of the media player. One example on the developer site shows how to replace the single play/pause button with individual play, pause and stop buttons. That's a trivial example, but a telling one.

I'm already salivating about the cool stuff I'll be able to do with add-ons:

Tag-parsing madness

Imagine Doug's AppleScripts for iTunes ported to XUL. Like a lot of people, I'm obsessive about my meta tags, and I can't wait to use JavaScript regexes to bend them to my will en masse. I'm also hoping that Songbird will record all of its meta data in the music files themselves instead of socking some of it away in the music library. With iTunes, if you decide to rebuild your library in another player - or even in a different iTunes installation - you lose things like star ratings and play counts. It's a real bummer.

Huge libraries

The flat XML database in iTunes scales horribly. Get above about 100 gigs of music and performance slows to a crawl. This problem has only gotten worse with the bloat of Cover Flow, Quicktime integration and all the other features I don't need. I have 450 gigs, most of it ripped from my huge CD collection, and I've had to separate it into four separate libraries (using Libra) just to get decent performance. That sort of defeats the whole "any song at any time" promise of the MP3 era. Enter SQL Lite, which is how Songbird stores its own media library. I've got high hopes that a relational-database back end coupled with open-source how-to will make Songbird the media player of choice for folks with enormous libraries.

Interface freedom

iTunes and its Smart Playlists are all about endless, automated mixes. But I'm an old-school mix-tape guy. At the end of each year, all of my friends usually get a four-CD retrospective of the year's best tracks as compiled by me. But with iTunes, it's excruciating to build a "source" list of possible tracks for these multi-disc epics, then slot the tracks into individual discs and experiment with sequence. You can only view one playlist at a time, so every time you decide to move a track from one playlist to another, it's a multi-step operation. Imagine an interface where I could see my "source" list and all of my target lists at once, and where drag-and-drop defaulted to a "move" operation rather than a "copy" operation. With XUL and JavaScript, I'll be able to build any specialized interface I want and swap it in for Songbird's default UI.

Sure, most of my needs are pretty specialized, but I hardly think they're unique. And that's the point of an extensible, open-source player. You're free to build the features YOU want to see and share them with others like you. That's a lot more productive than griping over at the iLounge forums about iTunes's shortcomings.

I know Songbird isn't the only open-source, component-based music player out there, but it is the only one that's drawing on the power of the Mozilla Foundation. Firefox has shown how disruptive the Mozilla community can be in the browser market, which, like the music-player market, is dominated by a single product. Songbird may not topple iTunes any sooner than Firefox topples IE, but it should provide a powerful alternative and perhaps put some competitive pressure on the folks in Cupertino. It was extremely shrewd of Pioneers of the Inevitable to hitch their wagon to Mozilla's. I'm definitely going along for the ride.

Songbird links

Songbird posts

Technorati Tags

Switching Back and Forth

You'd expect that a blog post titled 7 reasons I switched back to PHP after 2 years on Rails would generate some controversy. Derek Sivers wrote just that on O'Reilly's Ruby blog last week, summarizing his experience as follows.

I spent two years trying to make Rails do something it wasn’t meant to do, then realized my old abandoned language (PHP, in my case) would do just fine if approached with my new Rails-gained wisdom.

The post has elicited a metric oodle of comments, many of which are of the form "But don't you know PHP is ugly?" or "Thanks for finally speaking the truth about that overrated Rails stuff", neither of which is really all that helpful.

I confess my first thought on seeing the headline was disappointment, couple with the knowledge that inevitably, I'm going to suggest using Rails for a project and somebody will come back with "But didn't that CDBaby guy switch back to PHP? Doesn't that prove Rails doesn't scale to the enterprise?" Sigh.

I think, though, that there's actually less here than meets the eye. I even think that Sivers' experience is actually a good thing. Even for Rails fans.

By Sivers' account, he wanted to replace the existing, somewhat messy PHP code at CDBaby.com from scratch, in Rails. After two calendar years (which doesn't seem to have been two years of continuous work on the project), they gave up. At that point Sivers went back to PHP and coded the whole thing up in two months.

Admittedly, to a hardcore Rails advocate like myself, the story sounds a little strange, almost like giving up your automobile and discovering you can walk to the grocery store at 200 MPH.

I'd be interested to get a little more detail on what the Rails issues were -- Sivers says things like

Jeremy could not have been more amazing, twisting the deep inner guts of Rails to make it do things it was never intended to do. But at every step, it seemed our needs clashed with Rails’ preferences.

and later,

I love SQL. I dream in queries. I think in tables. I was always fighting against Rails and its migrations hiding my beloved SQL from me.

So I suspect the problem was, on some level, a clash between the existing database structure of CDBaby and Rails' expectations for database structure (and maybe, to a lesser extent, the clash between how Sivers wanted to structure the program, and how Rails did). This actually isn't surprising. Rails has very strong opinions on what databases should look like, it'd be more surprising if an existing project matched those preferences exactly.

What's a little bit more surprising is what Sivers did when he went back to PHP.

It’s the most beautiful PHP I’ve ever written, all wonderfully MVC and DRY, and and I owe it all to Rails.

He took the best parts of Rails, jettisoned the parts that didn't fit his project, and applied the principles to the code that he built. The logic is in the right place, and as a result, the line of code count is an amazing 15% or so of the original. That must have taken a fair amount of discipline to do in PHP, but it clearly worked, so good for him.

I guess I'm supposed to be upset that he walked away from my team, but actually, I'm fine with it. It's easy for me to get caught up in the particular choice of technology, especially now when Rails is in my job title. But ultimately the point is to build solid programs that bring value to the clients and users.

Rails is great, but it just isn't designed to be the One True Framework for all people. It does contain ideas and design principles that are applicable to almost any piece of software. These ideas should be implemented all over the place -- that's how all our tools get better.

I mean, it's hard to see Sivers as writing some kind of slam on Rails, when the post contains the statement:

Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines.

Or closes with this:

All that being said, I’m looking forward to using Rails some day when I start a brand new project from scratch, with Rails in mind from the beginning.

Sounds good to me.

An Event Apart Chicago: Day 2

Tuesday saw the conclusion of An Event Apart Chicago 2007, the two-day web-development conference from the folks at A List Apart. Here's my sequel to yesterday's day-one overview. I'll be back Friday with analysis and afterthoughts.

Jeremy Keith, author of "Bulletproof Ajax" and "DOM Scripting," led the day. His topic? "Be Pure. Be Vigilant. Behave," wherein he outlined the concepts behind "Hijax," the application of progressive enhancement to Ajax functionality. A staunch proponent of unobtrusive JavaScript, Keith warned against throwing web standards out the door when developing Ajax functionality. His examples demonstrated how to separate behavior from content and presentation by abandoning such outmoded techniques as the javascript: URL pseudo-protocol. His most extensive example showed how to code a graphical widget for the assignment of star ratings so that it would degrade gracefully into a standard HTML select box in less capable browsers. After discussing the difficulty of making XHR functionality play nicely with bookmarks and the back button, Keith acknowledged that his parting message - when in doubt, leave XHR out - was a bit of a copout for the author of an Ajax manual.

Next up was Luke Wroblewski, a Yahoo product designer whose resume includes work on the original Mosaic web browser. Wroblewski covered "Best Practices for Form Design" using exhaustive research from his forthcoming book on the subject. In case study after case study, he demonstrated how simple choices in the design and deployment of HTML forms - from the widths and alignment of inputs and labels to the placement and visual differentiation of cancel and submit buttons - can cut the time it takes to complete them in half. Wroblewski's most persuasive argument, however, was conceptual rather than technical. He made a powerful case that because forms are barriers between users and the things they want to do - buy your product, join your site or begin creating content - you should make them as easy to get through as possible. This central thesis added considerable weight to his many practical how-tos.

Accessibility advocate Derek Featherstone closed off the morning with "Accessibility: Lost in Translation." Featherstone looked at how markup choices can make a site transparent to assistive devices - or render it totally opaque. Using real-world examples from Amazon and other sites, he demonstrated how screen-reading software actually parses markup. His live examples proved that the lack of semantic markup and the absence of ostensibly optional HTML attributes can render a site worthless for disabled users. Featherstone then went beyond the basics, explaining how source order - the sequence in which nodes appear in your markup - can be used to enhance accessibility. By placing your central content first, then positioning chrome above it with CSS and providing jump navigation to skip past inessential modules, you can achieve the presentation you want for typical users without shortchanging disabled ones. In another example, Featherstone examined the ways in which meaning can be encoded in the color and position of elements on the page - and how to replicate that meta-data in a way that disabled users can understand. As with many of the other speakers, Featherstone's examples argued persuasively for the continuing relevance of web standards.

After lunch, CSS expert Eric Meyer again took the stage, this time to explore "The State of CSS in an IE7 World." Using the recent release of Microsoft Internet Explorer 7 as a springboard, Meyer illustrated the concepts that have governed the changing of the browser guard for more than a decade. His overall premise was that developers need to use their own server logs to gauge when support for an older browser can safely be dropped for their site. For most of us, IE6 isn't going away anytime soon, so we need to get creative if we want to harness advanced functionality. To that end, Meyer delved deeply into the details of IE7 techniques, filters and hacks. He praised the browser for the strides it makes over IE6's CSS engine in such areas as child selectors, adjacent sibling selectors and attribute selectors. His real-world examples demonstrated how such functionality adds power and elegance to our code. To cope with IE6's continuing market share, Meyer advocated the use of Dean Edwards's IE7 compatibility script, a JavaScript library that adds IE7 capabilities to older versions of the browser. The take-home message was that older browsers may take a long time to die out, but creative programming techniques can harness the future of CSS now.

The final two sessions for AEA Chicago 2007 were a little offbeat, which was a relief after 10 technical sessions in the previous 32 hours. In the highly anecdotal "Selling Design," ALA publisher Jeffrey Zeldman used stories from his own long career to illustrate best practices for handling difficult clients. His thesis was that collaborative work requires us to deal with a wide range of other people, so we should hone our ability to influence our collaborators - and pick good clients to begin with. Agency owner Jim Coudal closed things off wittily with "Dealing With the Both of You," a slide-free presentation about the crossover between personal projects and professional work-for-hire. Coudal assembled a number of satirical short films to drive home his point: Because most web developers are curious and easily bored, we should strive to marry passion with professionalism whether our clients are external or ourselves.

Launch: Pathfinder Newsletter

    Get a monthly update on best practices for delivering successful software.

    Subscribe via email


    Subscribe via RSS      RSS icon

Topics

Search

WordPress

Comments about this site: info@pathf.com