2007-03-26: user-generated concepts

User Generated Content (UGC) is a hot topic - it seems everyone wants it. A bit like everyone wanted Blogging. They weren't quite sure what it was but they were pretty much convinced that businesses should be Blogging, so they told their IT section to order in some Blogging.

Or something.

So anyway UGC is the new black (one of them anyway), which seems to translate to "comments" a lot of the time... but hey, that's a step forward in many cases. It all helps and paves the way for the next thing.

Once in a while though you see something which just sets a different standard. A SXSW attendee - a user, in other words - decided that mere note-taking didn't cut it. So they sketched the speakers: Crazy Characters at SXSW | In The Garage | The nGen Works Blog.

Now that is what user-generated content should be like! Compelling, unusual and link-worthy. It reminds me of John Allsopp's WE05 remixes (admittedly calling John a WE05 'user' is pushing it a bit ;)).

Of course it's not exactly UGC if it's hosted on the user's own blog, rather it's meta content... but I like to point out cool moments of user engagement, even if just to remind us all to keep an open mind. The best ideas are probably things we won't even think of ourselves - the users can and will outdo us.

So if you want UGC as part of your product or business, look to the users for ideas on what form the UGC should take. You may suggest or set directions, but you shoudl be willing to accept direction as well.

Maybe the buzzword should be User Generated Concepts.

2007-03-22: disappearing content bug in opera 9

This is one for the "if you fix a problem, blog it" files.

I've been having a problem with a particular feature on a page I'm building at the moment. Basically I need to position a small div over the top of an image. The image can then change without needing to edit the content in the div.

To do it, I set the size of the container div then used absolute positioning to place the small div where I wanted it within those boundaries. To get it all to work the container is set to position: relative; and the small div is set to position: absolute; - something which is pretty common.

the problem

Screenshot of desired results
Screenshot 1: Desired result (and before scrolling in Opera 9).

Screenshot of problem after scrolling in Opera 9
Screenshot 2: After scrolling down and back in Opera, content disappears. The exact result varies; with other combinations of positioning the example div may also disappear immediately after the page loads (that is, it renders then disappears).

The problem occurs in Opera 9 on both PC and Mac. To see this in action, check out the example page.

the scenario

The large image and the red example div are enclosed in a container div. Initially, the container div was set to position: relative;; the red example div was set to position: absolute; and the large image had no specific setting.

the fix

To fix the problem in Opera, apply position: relative; to the large image as well. Some more testing is required to be sure, but I think the principle is to make sure there aren't any elements without explicitly handled positioning.

Again, see the example page for the real thing.

Update 2008.08.13: This bug does seem to be fixed in Opera 9.5x. Hurrah! :)

2007-03-03: barcamp liveblog: hack people, then code

We've just finished a session at BarCamp Sydney. I rocked up to see an empty board, so I proposed To hack code, first hack people.... The idea is that often it's not the code that creates barriers to success, it's the people involved. Perhaps they're resisting, perhaps they're not engaging with the process or they simply can't express what they want to achieve with technology.

Here's my take on some points the group came up with...

  • Don't hack code without a reason - find what the people want first, sort out the goals.
  • Be open to being wrong - if you push your agenda, you may discover that there's a good reason not to go down a certain path. Don't be so engrossed in your own agenda that you become inflexible.
  • If someone is resisting an idea or change, first understand why they are resisting. They may have an excellent reason, or they may simply be scared, or they may just need to understand the idea better.
  • To hack code, you must be able to empathise with people
  • Coders/geeks need to take their clients/users best interests to heart
  • Make people feel safe. Build trust with them, build rapport, then start working. People are often afraid that they're paying for something that won't do what they want.
  • Doctors need a good bedside manner, geeks need their own version - webside manner?
  • It is our responsibility to make things work, not the user's responsibility.
  • We must demystify technology - tell people what it will do, not how it's coded.
  • Simplify, don't dumb down.
  • Don't build for "everyone", build for your specific target market.
  • Geeks... we cannot avoid people! Get over it!

Blog Archive