Pears: Create your own pattern library

At work, we have what we call our module library, which is an interface with which to browse (and edit) the snippets of code and style (we call them modules) that we use to make up our site. They’re not templates, as such, but rather starting points for the blocks with which we build our pages.

Dan Cederhom of Simplebits has just announced his release of a WordPress theme that you can use to create your own pattern library.

It’s called Pears.

He’s hosting it on github, so you can tweak/improve it as you will.

Posted in Tools, User Interface, Wordpress | Leave a comment

Steve Lacy: What Larry Page really needs to do to return Google to its startup roots

Here’s a good read.

Posted in Link | Leave a comment

Best of Swiss Web 2011

A big congratulations to my good friends at L//P for absolutely pwning the Best of Swiss Web awards, yet again!

Three gold, three silver, and two bronze, but also taking the title of Master of Swiss Web 2011 for Migipedia!

Brilliant work, guys! And keep up the good work!!

Catch the noise on Twitter (#bosw)

Posted in Commentary | 1 Comment

JavaScript Decision Tree tool

My goal has been to make a JavaScript Decision Tree tool as a new content module for our next site redesign.

It needs to work such that the same piece of JavaScript can be utilised without modification for any decision tree tool we build on the site, with a very simply-defined markup structure,

So I’ve been self-administering repeated doses of headdesk/facepalm over the last couple of days, but I came back today after a Friday lunch (you know what I mean) and found a solution. It’s not pretty, with at least two nested ‘for’ loops, but it works.

I’ve created a JSFiddle of it, so you can take a look at it, modify it, laugh at it, etc.
Open it in JSFiddle or see it embedded below:

Posted in Coding, JavaScript | 2 Comments

Don’t make me steal

If you like to watch movies and TV series’ on demand; if you want to watch them whenever and wherever you want; if you’re frustrated with advertisements and anti-piracy messages when you hire DVDs and go to the cinema; if you want a decent and fair model for the downloading/distribution of digital content, then sign this manifesto now:

Don’t Make Me Steal

Pierre and Jordi, with the help of many others, have put this together, and it looks good and solid and well worth your support. Go sign it now.

Posted in Commentary | Leave a comment

Last.fm

A year or so ago, Last.fm started charging for their service. I was pretty gutted, since I had been listening to Last.fm radio pretty much all day. Sure, it’s okay to charge something for a decent service—and Last.fm is very decent—but what really got up my nose was that they were only charging people who were listening outside of the US, UK and Germany. What’s up with that? The internet is a global market—geography means nothing on the internet.

So I stopped listening.

Anyway, twelve months later and I’ve kinda got over it, so this morning I paid up and became a subscriber. Ah, it’s good to listen to my favourite tracks again :)

Last.fm really is a great service. And as if my battery doesn’t last long enough as it is, I downloaded Mobbler to my Nokia E90. Mobbler is—as the name might suggest—a mobile scrobbler. It’ll scrobble music you play with the Nokia music player, but more importantly, it will stream Last.fm radio.

So, if you haven’t already done so, sign up to Last.fm to track your listening, share your taste in music, discover new artists and check out my profile.

Oh, and I’ve added my listening history to the blog sidebar :)

Posted in Commentary | Leave a comment

Getting XML data into Symfony, automatically.

The problem

We have a complex XML file with many different node types, etc. supplied by a third party via a URL reference.
There’s an initial dump, and then an incremental update every couple of weeks, with additions, deletions and updates.

What I’d like to be able to do is to drive a symfony app with this data.

Some thoughts so far

I’m a symfony noob.

Getting the data

I could manually transform the XML into YAML to create the schema and the initial data load, and then build the app. But I don’t want to have to do this manually for the regular updates. Ideally, I’d like to use the symfony ORM to handle all the transactions, rather than a completely separate (outside symfony) script.

… and some images

The XML also contains URIs for remotely hosted images, and I’d like to be able to automagically pull these down to the local app file system and rewrite the references.

Anything that will help us to get started in the right direction would be greatly appreciated.

Posted in Coding, Tools | 4 Comments

Redesigning a corporate web environment

The Challenge

I’ve got this friend who is responsible for a corporate front-end web environment with almost a dozen browser-facing web applications. Pretty much all he can do at the moment is change static content in the antiquated and wildly inappropriate CMS. Changing anything significant requires implementation of an expensive one-off SDLC waterfall-type project with a business case, requirements-gathering, PM, BA, dedicated test-resource – the whole box and dice. These projects often under-deliver, with scope being reduced en route to avoid budget and deadline blowout.

He’s not happy with the way things are.

He’s got it into his head that it would be far better to create an easily-manageable front-end, with a unified, standardised UI under the control of his front-end web team. Key aspects are simplicity, speed, cost-efficiency, and trust – none of which can be used to describe the current state of affairs.

Some ideas

I was talking to my friend, and he said that at a high level, he’d like to abstract the various applications from the UI, where possible, by means of API/Web Services/etc. On the front-end would be a web application framework – He’s thinking Symfony or similar. He believes he has sufficient developer resource on his team to build/maintain/support this.

Some other ideas he’s been tossing around, in no particular order:

  • Source repository. (He doesn’t have one at the moment). svn or git? Stable trunk policy?
  • Continuous integration. (thanks Mike!)
  • Test-driven development.
  • Automated processes.
  • Security.
  • Content management.
  • Performance. Code-efficiency, caching, etc. (Although he’s heard it said that performance shouldn’t become an issue until performance becomes an issue)
  • The database. Does CouchDB lend itself to supporting a content-driven web application?
  • Will it blend scale?

More ideas…

… are welcome. He needs all the help he can get. While it’s all very bluesky (with pie) at the moment, he needs to turn it into a watertight, bulletproof, business case. And soon.

Posted in Commentary, Design, User Interface | 5 Comments

An update

It’s been a while since my last post.

During that while, I’ve returned reluctantly to New Zealand from an incredible 12 months in Switzerland. I was working for an outstanding company (Best Of Swiss Web 2009) on some outstanding projects.

I made some great friends, had some great times, learned to snowboard, lost nearly 15 kilograms, braved rubber bullets and tear gas on the 1st of May, and thoroughly enjoyed myself.

I’m now back in Auckland, and am three weeks into my new job as Web Development Manager at Vodafone. I’m part of a great team and am really hanging out to do great things on/with/through the web :)

Another thing I’m looking forward too is the next Auckland Web Meetup on the 2nd of July. It’ll be great to catch up with friends, eat pizza, drink an Epic, learn more and be inspired.

I’ve got a new mobile number (+64 21 623 923) and am making the most of my Nokia E90 (I know, it’s not an iPhone). I use Twibble as my Twitter client, and am continuously updating my location with Google Latitude. You can see my current location on the sidebar, along with a few feeds of Dan-generated content and links.

Posted in Commentary | 3 Comments

Empowered to say ‘No’

Seth Godin writes in his post License to stall about business-to-business sales. He explains that the majority of people you encounter are empowered to stall, to say ‘No’, since they are easier to train and are safer.

The reason this system evolved is straightforward: the yes people are rare in a typical organization, because they have responsibility and power. So they are busy and need to be protected.

I totally see how this works, but Iimmediately thought that this paradigm was equally relevant in the area of Customer Services.

How often is it that – unless we have a very trivial request – the first person we speak to will be able to help us right away? “I’ll just put you through to so-and-so”, or “I need to talk to my manager/supervisor. Can I call you back?” are par for the course.

I am becoming convinced that for any given company, having quality Customer Service is more important than the quality of their product or service. For a large established company, quality Customer Service seems to me to be more important than sales or acquiring new customers. And yet it seems that the larger the company, the poorer the customer service. They have huge outsourced, off-shore, standardised, systems that have you pushing every number on the keypad before you get through to the wrong department, who aren’t able to help you and aren’t able to transfer you to the appropriate person.

These systems are set up to be defensive – the goal is to reduce cost, which means getting rid of the customer as soon as possible. That is not customer service.

Oh, and customer service also includes website usability, IA and quality of your search tool; read Lance Wiggs’ experience with Dell.

I’ve still not heard back from Dell about the dead graphics adapter in my Inspiron notebook, either. But that’s another post.

Posted in Commentary | Leave a comment