electronic museum

Entries categorized as ‘programming’

Why am I learning this stuff?

July 30, 2007 · 5 Comments

As I mentioned on a previous post, I smuggled my PC on holiday and had a go at learning Ruby on Rails. I’m not going to spend much time talking about what I think. Needless to say, I had fun starting from knowledge = nil and gently climbing up the learning curve towards knowledge = 0.1. And yes, Ruby is obviously very cool.

After two weeks of having a go at this stuff on an evening, I thought I’d sit back and re-assess exactly what I was doing, and why.

The lowdown is this:

> I’m an average programmer (possibly slightly above average because of my extreme / anally retentive progamming neatness) in ASP/VbScript
> There was a day when I did this as part of my day job, but not any longer. Now, I just send emails a lot.
> I have been able to solve most web application problems the world has thrown at me.
> I know well that VBScript/ASP has a limited lifespan, won’t be supported by MS for much longer and is laughed about in “real” developer circles.
> I accepted a looong time ago, grudgingly, that I’ll never know everything about everything. Maybe.

So apart from having a nice time learning something (and there’s a lot to be said for that without needing another reason), what exactly am I doing, trying to learn this new – completely new – way of coding?

Well, I have aspirations to retire any day now, and want to wake on a morning and know that I’ve truly made it by having to swim ashore to do my weekly shop. I intend to make this happen either with an extraordinary spate of deeply cunning crime or by building a web business that is so completely cool that no-one else will be able to touch me. The web business seems more sensible (for now at least) and I’ve got enough ideas to keep knocking them out faster than I need to. And here’s the crux. Bring on the graph…

Technical learning graph

[I love a graph almost as much as I love a diagram]

Here’s what’s going on. Up the X is technical proficiency from zero at the bottom to frightening at the top. Along the Y axis is time. Now think about me and my knowledge of VbScript. It’s up there – granted after a couple of years worth of hard slog – but I can do stuff in it, so my technical proficiency is pretty high. My knowledge might actually still be increasing so the line should be off-horizontal but there is also a threshold implied by its flatness.

Next up in this case is Ruby, but it could be any serious web development framework/language. When I started leaning Ruby, I knew nothing, but you’d hope my proficiency would increase with time. So there’s a gradient to it, which is me learning.

Now, there are also two thresholds which I have called the Production threshold and the Prototyping threshold. The Prototyping threshold is the point at which I’d feel confident enough to knock out some alpha versions, do some user testing, play about with the look and feel. I’d probably still be using an Access database under the hood though, and the code would be terrible. In other words, if I got more than three visitors my application would probably emit a funny smell and die on its arse. The Production threshold is the place that serious developers want to be (actually, really serious ones want to be at the Geek threshold which isn’t shown here. You know the people I mean…)

What I’m coming to realise is that I’ll probably never now be the person who writes production-level code – instead, I’ll pay, bribe or beg someone else to do it. So for my particular purposes the Production threshold and anything beyond is an academically interesting thing but actually nothing more than that. Instead, I’m only ever going to knock out experiments and demonstrations for ideas which other people can then take and make production-level. I don’t actually care how fast, well compiled, transportable, modern or supported my prototyping language of choice is. In the slightest.

The time it takes to get me to Point A is the only thing I’m interested in. And because that green Ruby line has a gradient to it, the time to Point A is unfortunately not zero (bring on the Matrix – “I know Ruby…”). The time to get to the Prototyping threshold for VbScript has already passed. I’m there, I’ve learnt it.

Uncomfortable though it is, I’m therefore going to dump Ruby. She’s very fine, but I’ve got too much to do, and not enough time to do it. VbScript will have to do…

Categories: experimental · innovation · mashup · programming · web2.0

Holiday…and no tech

July 6, 2007 · 3 Comments

Holiday. Hurrah.I’m off on holiday tomorrow. Just, er, popping down to the country retreat for a couple of weeks, dahling…

Only thing is, the place hasn’t got broadband – in fact it’s got little tech at all (no TV – hurrah!) (no mobile coverage – double hurrah!), which is in many ways a complete relief.

In other ways I’ll be like a crackhead derived of his fix.

No Netvibes, no there.com, no TechCrunch (even if it does look crap), no Facebook (joky attitude starts to fade), no BoingBoing, no Google, no Upcoming, no gmail, no mashing, no….BLOG….

Right, sod this, I’m staying home.

Actually, it’s not as dark as all that. Two upsides:

1. I’m going to sneak in my laptop when my wife isn’t looking and see how far I can get with Ruby in the course of two weeks. If you believe the hype about how cool it is, you can probably assume I’ll have been bought out by Google by the time I get back.

2. There’s always the mobile web. Right…? Right…?

See you.

Categories: blogging · museum · programming · technology

Museum directory v2.0

July 3, 2007 · 3 Comments

In my previous post about the “museum directory” I built at UK Museums on the Web mashup day, I mentioned a museum address CSV file from the 24hr Museum which I planned to put use at a later date.

The original source I had contained *really* dodgy data and only about 380 institutions – I’d done some seriously horrible hacking to get it out of various APIs – but the new feed is derived from the 24hr Museum “Direct Data Entry” (DDE) system. This contains around 3,800 entries and is therefore much more interesting as a dataset.

24hr Museum have asked that I don’t expose the KML file at this time, so what you see is the museum directory as it was in version one but with more, and more accurate, data. Version 2 is pretty much the same code and approach as the original – read about how I did it here.

The new data set still didn’t contain geo references, so I had to re-hack the original postcode script to query the Google AJAX API on a running basis and write the lat/long back to the database. That hurt a bit – nearly 4,000 queries takes a long time, especially when postcodes weren’t found. This slightly manual approach, together with some discrepancies in the CSV I had to deal with by hand led me to add the disclaimer on the page about accuracy – nothing to do with the original data…

Anyway, enough tech rubbish. Go play with version two and let me know any ideas or thoughts you have. I’m already thinking about the next version which is gonna be a whole lot more exciting, functionality-wise…

Categories: conference · experimental · innovation · location based · mashup · museum · mw2007 · programming · technology · web2.0

Guest post on UK Web Focus

July 1, 2007 · Leave a Comment

Brian Kelly asked me to do a guest post on his UK Web Focus blog. You can read the post – “Go forth and mash” here.

Categories: experimental · mashup · programming · ukmw07 · web2.0

Google Mashup Editor: first impressions

June 30, 2007 · Leave a Comment

Unfinished shedI just got my alpha sign-in from Google for their Mashup Editor. Immediately, this ruined any good intentions I have for finishing off my shed but hey, every sane person is in bed at 7am on a Saturday morning, so it’s time in lieu as far as I’m concerned.

First impressions: true to Google style, they’re focussing on their developer base first and foremost and will probably worry about the GUI later. It’s sparse – essentially a code editor view and a couple of tabs for feeds and sandboxing. Compared to Yahoo! Pipes it’s very unimpressive to look at, but Pipes was always going to be a winner GUI solely on the basis of its innovative drag and drop interface.

Google Mashup Editor - editWhat’s more important, of course, is what it does..

At its heart, GME gives you access into a kind of metalanguage which is a mish-mash of html, javascript and the <gm: ***> namespace. It’s very reminiscent of the vague dabblings I’ve had with .Net. For instance, to define a repeating row based on some kind of input feed, you’d say:

    <tr repeat="true">
      <td><gm:text ref="atom:title"/></td>
      <td><gm:text ref="digg:diggCount"/></td>
    </tr>

As with any coding based environment, you make changes direct into the line editor, then save and preview – when you do this, the sandbox tab comes up and you get to see your creation. Or an error message…

Maps wikiThe samples are impressive and give some idea as to the range of ideas that can be implemented. The screen grab on the right for example is a “Maps wiki” which lets you add a point with comments and a rating onto a Google Map. You can see the GME code for this sample here. Not bad for 81 lines of code…

When you push publish, your application is pushed up onto the Google servers – interestingly, you can also choose to publish (and preview, while editing) as a Google Gadget which means anyone can embed the widget onto their personalised Google startpage. There’s a few mashups already online in the Google Mashup Gallery.

Crucially, the cross-over between gadgets on the web and gadgets on your desktop is blurring (see Google’s “Google Desktop” gadget list, for example) so expect this to become a very interesting space to watch.

What’s important with all of this – and I think this is interestingly reminiscent of the (first days of the) web – is that you can “view source” on any of these apps: much like Pipes where you can clone anything that anyone else has done, the starting point is often “I’ll copy what person X has done and extend it so it works for me”. This is a new and welcome paradigm which keeps appearing – MIT Scratch which I reviewed briefly a while back has a similar approach: once you publish, your work is automatically available to others. This will ensure that beginners always have code samples to learn from, and ultimately grows creativity exponentially.

I’ve so far spent all my time writing this rather than playing, but my first impressions are that although graphically less impressive, the potential here is far greater than Yahoo! Pipes: being able to save data, edit at code level, embed javascripting, tweak CSS, publish as a Google Gadget, etc. – these feel like the beginnings of something very, very cool.

I’m still waiting for my Popfly account (c’mon Microsoft, catch up..) – hopefully will be able to report back soon.

Right, must go and do some more playing. Er, I mean, finish off my shed…

Categories: experimental · mashup · programming · technology · ugc · ukmw07 · web2.0

Hack day…er, and GBS

June 20, 2007 · Leave a Comment

I’m lurking in a particularly grim hotel in Leicester right now, just getting together some thoughts for Mashed Museum tomorrow. Unpleasantness aside, I have wifi (ouch, expensive), running water, and electric light. And the bar is still open so I may head down for a “lonely bloke in hotel” pint in a moment..

<off topic>
One thing which is really cheering me up is the incredible, remarkable and altogether life-changing thing which is Google Browse Sync. I’ve been a user for a while, but it’s only when you’re miles (sniff) from home in a prison-like hotel room that you realise how much time you normally spend farting around on your laptop for passwords, bookmarks, search history and all of that other browsing stuff. YES I know that Google are probably compiling some kind of dossier of my movements, YES I know that I should care about privacy or whatever, but this tiny Firefox app makes such an enormous difference to my life that I simply don’t care. Install it. Please.
</off topic>

Back to the point. The other thing which I’m marvelling at – and will continue to marvel at tomorrow, all day, is the amazing thing which has happened to the web with the introduction of open data and API’s. I’ve just written a couple of demonstrators which do very simple mashy stuff with Flickr and Google and I LOVE IT. It’s just fantastic being able to get at these huge resouces of content and do groovy, weird, unthoughtof things. Yahoo’s Hack Day was earlier in the week – it looks incredibly inspiring – Frankie went and I’m looking forward to talking to him and seeing how we can learn from what they did.

Here’s my bedtime prayer – that museums continue to take the journey that some have started – by not only consuming these data sources but also exposing their own data to others, and playing. The whole heart of the mashup thing is a sense of playfulness, of not quite knowing where it’s going, of just doing it because it might go somewhere interesting…

Categories: conference · experimental · hackdaylondon · museum · programming · technology · ukmw07 · web2.0

Mashed museum

June 19, 2007 · Leave a Comment

I’m getting very excited about the UK Museums on the Web spring school – this year Ross has asked me and Dan Z to help organise. We’ve come up with the concept of Mashed Museum. This will be a kind of hack day unconference type thing – a bunch of like minded museum tech types getting together and thinking about what the distributed web can do for us. Hopefully we’ll also get to build some stuff too – the whole idea is to show that this approach requires no funding and just a bit of time to produce interesting results.

We’re looking pretty much full for the day now but if you want to peruse the agenda (itself pretty experimental and subject to *cough* any user-generated input..) then I’ve published a Google Doc with details.

The conference itself is on the Friday – don’t forget to book and I look forward to seeing you there!

Categories: experimental · folksonomy · innovation · museum · programming · technology · ugc · ukmw07 · web2.0

Blurring the line some more

June 10, 2007 · 2 Comments

Adobe Apollo moved from developer preview to beta recently, and also changed its name to Adobe AIR.

This is a very, very exciting space – it gives much more flexibility for the creation of Rich Internet Apps. Rather than learning up on VB or other horriblenesses, AIR lets developers use skills they already have in Flash, Javascript and HTML to build applications both for the web and for desktop.

Crucially, Microsoft are competing in this space too, with Silverlight and an environment for developer/designers called Expression Blend.

Underlying the incredible complexity of pretty much anything you read about this stuff (not to mention the ever-changing silly names) are some core reasons why we should pay at least some attention.

First off, as mentioned above, you can use existing skills to build desktop apps, re-using the exact same builds for both environment but augmenting the experience when the environment allows. This means, for example that a collections search tool could be built for the web and also for desktop with pretty much the same code. In the desktop environment, though, you can extend the functionality so that you can drag and drop, save or open local files, etc.  I saw an example of this at the Future of Web Apps conference a while back with an application developed for eBay. It leveraged all the usual API stuff that eBay has opened up – you got search, saving, bidding etc within a very rich application-like environment, but you could also drag and drop or save results onto your desktop. There’s a review of the app on ZDnet if you’re interested…

Secondly, web application and the blurring of the line between various environments (ie. thin client computing, “cloud” processing, widgets) will increasingly expand in importance as practical considerations such as bandwith and platform are sorted. Windows Presentation Foundation – although yet another download for users at present – is being shipped with Microsoft Vista now, so expect this to become more and more important…

Thirdly, both of these solutions are programmatic at their core. This is coherent in that it continues along the line of separating content from presentation but it also gives unprecedented access into the underlying content structures. What is interesting about this is that it takes developers and designers along a converging path. Expression Blend, according to the guy I talked to at The Future of Web Apps, is pitched at both creatives and coders, which will be an enormous challenge for almost everyone. It’ll be very interesting to see how this convergence is dealt with into the future.

Categories: museum · programming · technology

Two bits of tech for museums to love

May 17, 2007 · 2 Comments

Two things got a load of coverage this week which should – for very different reasons – be getting us museum types excited.

First off, Google analytics launched a new version which is being rolled out for existing users. Seb Chan mentioned it on a recent post and also links to a couple of introductory articles about it. From my perspective, here are the immediate wins:

1. The dashboard…in true igoogle style, a new customisable view homepage. Choose which reports you want to promote and they appear here. Drag and drop them around. Ajax-tastic.

2. The emailable reports…say goodbye at long last to those *endless* emailed requests for stats from every last person in your organisation.. Just specify a searchterm, location, page, view, map or whatever, and – please stop salivating – choose the frequency you want to send it. The report arrives as an email with a beautiful PDF attachment. Bliss.

3. The map…oh God, the map…you can, like, zoom in and zoom in…and…

4. The entrance paths…a really intuitive way of getting to grips with where people go, where they’ve been and how they left

5. The navigation…ok, they could have done anything to this and it would have been a major improvement because it was terrible in the previous version…but such a relief that you can actually find reports now…

This is a seriously powerful tool. I have a few concerns about data protection and auditability, but these can be got over by using it in parallel with log-based stats. Analytics works well, looks great, your mum could implement it and it’s really, really, really, no, really free. The other analytics companies must be panicking, big time.

Bouncing manNext up is MIT’s Scratch which the BBC covered in detail so I won’t spend much time on it. There’s lots of great stuff going on here: a freely available tool for DIY content creation with loads of flexibility for sprite creation, programming logic, mouse movement etc. It’s positioned as a tool to teach kids programming but I think it’s going to appeal to a mass market wanting to knock out quick animations for sharing.

The thing that I think makes this stand apart is the way the desktop app lets you save not just to your local machine but also – with a single click – to upload to the Scratch web page. Here’s my really quite terrible bouncing man.

Although the future is undeniably in thin clients with all the processing power “in the cloud”, it’s great to see applications like this which talk seamlessly between desktop and web. The big players obviously think so too – that’s why Adobe Flex and widgets are such big news.
The other thing which is really important to note is that – just like Yahoo! Pipes – once you upload anything for public view, it also becomes available for anyone else to download and amend. This is a really interesting model for UGC which I think will increasingly become the norm.

Categories: community · content · metrics · museum · programming · technology · ugc · web2.0