Finally: a Windows-based RSS reader that I enjoy using

I have two requirements in an RSS reader:

  1. display RSS feeds in a manner that is pleasing to the eye (reading loads of feeds is hard work, man);
  2. use the space bar to both scroll down or go to next unread if there is no more item to scroll.

Most Mac-based RSS readers seem to work this way, but I thought that I was out of luck at work in MS-land. A quick bit of googling turned up a program called GreatNews. It has six different display styles (I’m using “newspaper”), renders RSS quite nicely indeed, thankyooverymuch, and is freeware. Oh, and the space bar does what I want it too. I’m a happy RSS bunny again.

And the winner is…

In my quest to find a finance package for the Mac, I finally capitulated and bought a (genuine) copy of Virtual PC 7 from eBay. I just don’t have the time to learn a new software package’s way of working – I’ve got my work cut out just getting the accounts up to date!

Respect to those who’ve made the jump to Moneydance and other packages; I guess I’m not that brave.

Recording streaming audio using Radiopod on Mac OS X

Ben Hammersley wrote a little perl script – Radiopod – a while ago. It uses mplayer and the lame mp3 encoder to create mp3s of RealAudio streams, which are then usable on iPods and other portable mp3 players.

I had a bit of a nightmare getting set up on OS X, though. At first I tried installing mplayer and lame using Fink; this didn’t work, so I switched to Darwin Ports. This was fine for lame, but the DP version of mplayer didn’t play ball with downloaded RealPlayer codecs.

I then googled and stumbled upon this blog entry where the author describes how to set up lame and mplayer on OS X, for use with his own shell script.

Anyway, there it is: install the ffmpegx version of mplayer and all will be well. I can now listen to Gilles Peterson and Hotpot Radio (Mr. Scruff & Treva Whateva) on my iPod. Yay!

An aside: one of the limitations of Radiopod was that the start or end time couldn’t be after midnight. This is a bit of a limitation, as most of the shows I timeshift are late-night ones. I modded the script to take a duration option (in seconds), which the script then uses instead of the duration it calculates from the start and end times anyway. If I pull my finger out, I may submit my patch back to SourceForge.

Tom Coates: Native to a web of data

  • Design and Web 2.0: it’s all about the rounded corners and gradients ;)
  • Blogger may have started the trend
  • Outline
    • What is the web changing into?
    • What can you / should you build on it?
    • Architectural principles of Web 2.0
  • Web 2.0?
    • Buzzword, conference, new way of thinking
    • Web 2.0 means so many things to so many people though
  • Let’s concentrate on a “web of connected stuff”
    • Web at the moment – data silos
    • Now and in the future:
    • A web of data sources, services for exploring and manipulating data, aways that users can act together
    • Web of pages -> web of mashups – > a web of data
  • Mashups
    • two disparate data sources, made more useful by being combined with eachother
    • A network effect of services
    • Build on top of what’s already there
    • What you build enhances what’s already there
  • Consequences
    • Massive creative possibilities
    • Accel. innovation
    • Competitive services++
    • Componentised services++
    • Money to be made
    • Use APIs to drive people to your stuff
    • Amazon is the prime example
    • Better service with less centralised development
    • Use syndicated content as a platform
    • Turn API into a pay-for service
    • It’s no good to be a web isolationist these days ;)
  • Choosing what to build
    • What can I build that will make the whole web better?
    • Add value to the aggregate web
  • Architectural principles
    • Data sources
    • Std ways of representing data
    • IDs and URLs
    • Mechanisms for distributing data
    • Ways to interact with/enhance data
    • Financial/legal stuff
    • hackdiary.com‚ Xtech2005
  • Good URLs should:
    • be permanent references to resources
    • have a 1-to-1 correlation with concepts
    • use directories to represent hierarchy
    • not reflect the underlying technology
    • reflect the structure of the data
    • be predictable / guessable / hackable
    • be as human-readable as possible
    • be – or expose – identifiers
  • Core types of page:
    • Destination page
    • A core first-order concept and its subordinate info.
    • List view page
      • A slice of your data used to navigate between first-order concepts
    • Manipulation interface
    • Interface for batch manipulation of first-order concepts

Cal Henderson – Building Flickr

“Ten reasons to love Web 2.0″

  • Flickr is awesome! It certainly is…
  • Web 2.0 – kinda awesome…
  • Flickr 2.0 is 2 years old on Tuesday!
  • About 2 million users – many passionate ones
  • The developers are passionate about what they do
  • Passionate developers make for passionate users
  • User wants vs user needs (recurring theme here…)
  • Don’t listen to your users – they say what they want but don’t really want them
  • Give them what they need and they’re more likely to be passionate

10 things:

1. Collaboration.

  • Flickr used to be a MMORPG, but became MMOPS (Massively Multiplayer Online Photo Sharing)
  • Putting photos on web sites isn’t new
  • The social network sharing is, though
  • Collaborative metadata
  • Add tags to my own photos, but also to my friends’

2. Aggregation

  • Slice the data in interesting ways
  • latest photos from everyone, from your contacts etc.
  • slice by tag, geo-location, “interestingness”

3. Open APIs

  • web services APIs – SOAP, REST, XML-RPC etc.
  • What’s the point? They needed it for Ajax-based apps. Eating. Own. Dogfood ;)
  • Do read-only stuff first: RSS etc
  • Do read-write later – provide API and data-storage, let others build the UI. E.g. Fastr – a game.
  • If you don’t provide an API and people want your stuff, people will screen-scrape instead.

4. Clean URLs

  • No need to expose the guts of the app anymore
  • Expose the logical structure from the POV of the user
  • mod_rewrite under Apache is the easiest way (maybe…)
  • URL hacking is an alpha-geek thing to do, but people do it.
  • They mustn’t change. If a URL links to a resource now, it should link to it forever.

5. Ajax

  • “remote scripting” / “remoting”
  • Could really be called ‘A’, as it’s not necessarily about XML or even JavaScript, just asynchronous requests.
  • All of the Ajax on Flickr uses the Flickr web service APIs

6. Unicode

  • i18n – comes first, l10n comes later

7. Desktop integration

  • All happens through the APIs
  • Not just desktop apps, browser apps too e.g. bookmarklets
  • Interaction via e-mail – great for uploading from mobile phones

8. Mobile

  • “next year – the year of the mobile” – said every year since year dot
  • Modern phones use decent browsers though, which supports XHTML-MP 1.0
  • Still limited by small screen size, so rethink the content and the interface, not just re-present the same content as the desktop browser site
  • Still limited by small screen size, so rethink the content and the interface, not just re-present the same content as the desktop browser site

9. Open data

  • Import and export of data
  • RSS gives me the latest 10, say, but doesn’t provide access to the entire dataset
  • The API lets them do this
  • The more you make it easy for people to leave, the more they’re inclined to stay

10. Open content

  • The data is owned by the user, not by the service provider
  • Various Creative Commons licenses can be applied to define how other may use your stuff

Joshua Schacter – del.icio.us: what we’ve learned

  • Browser inconsistencies
  • Scaling – SQL isn’t great under heavy load
  • Think beyond one web server, one db server
  • Abuse
  • “Idiots are a lot smarter than you”
  • Wait to see what breaks before you fix it
  • Apache
    • Know it inside out
    • Put a proxy in front that isn’t apache – helm? – to add throttling etc etc
    • Images on a separate server
    • RSS on a separate server
    • Use throttling – mod_throttle doesn’t work very well…
  • APIs
    • Built in from the start, because the developer needed it
    • Greatly encourages adoption
    • No lock-in – the user owns their data
    • No API key in del.icio.us – low barrier to entry
    • Hundreds of plugins have been created
    • Identifiers
    • Don’t expose the internal ID, especially if computer generated, or people will try and programmatically hammer & scrape the service.
  • Features
    • Don’t add features that exist elsewhere – e.g. messaging
    • Build features that people will actually use, not what they ask for (what they need, not what they want)
  • RSS
    • important – the native way to describe a list of links
    • put them everywhere you possibly can – (msk note: PWA needs RSS!)
    • Understand caching & headers, the “if not modified” header
    • del.icio.us has more RSS traffic than HTML & API traffic, due to poorly-written RSS readers…
  • URLs
    • make ‘em simple
    • hide your implementation
    • design them for the user, not the developer
  • Surprises – expect them
  • Passion
    • del.icio.us started from a text file of links – 25,000 entries
    • next step – a single-user db-backed system
    • then thought “maybe other people would like to use it too…” del.icio.us was born
    • don’t go looking for problems to solve – solve your own problems that you’re passionate about
  • Release
    • Don’t go closed beta, be open!
    • Get passionate users using your app quicker
  • Attention
    • “The daily popular”
    • Aggregation of attention works for small groups
    • Less useful when the population of the app grows larger
    • But…you can aggregate by tag
  • Spam
    • “attention theft”
    • “social software is that which gets spammed”
    • No top 10 on del.icio.us – not very interesting
    • If it were there, it would be a spam-magnet, people trying to get to the top of the list
    • Don’t provide feedback – let them think things are still working. No error messages to give the a clue that they’ve been rumbled.
  • Tags
    • It’s not about organisation, but about UI and recall by the user
    • Not all metadata is tags
    • There’s a bit of difficulty involved in adding a URL to del.icio.us, but not too much. Don’t make it too easy, nor too hard.
    • Beware librarians! Don’t try to impose a vocabulary/taxonomy.
  • Motivation
    • Make it useful for the user in itself
    • Make it so the users want to bring other users into the system – evangelism ;)
  • Effort
    • Don’t spend time building features that no-one will use!
  • Measurement
    • “Intuition is guesswork backed by numbers”
    • Measure the system itself
    • Measure behaviour rather than claims
  • Testing
    • User-acceptance testing
    • Test that it matches the users
    • Don’t assign people goals and make people do them
  • Language
    • Speak the user’s language
    • Bookmarks only make sense to Netscape/Firefox users – IE users speak “favorites”
  • Registration
    • Make as much functionality available without registration as possible
    • People are wary of spam & marketing
    • Short and sweet reg, then send back to whence they came…
  • Design grammar
    • emulate the structure of the web world out there – don’t deviate from established conventions too much
  • Morals
    • How users are treated
    • It’s users’ data, not yours
    • Many systems don’t allow account deletion – it’s good to allow people to jump ship if they want to.
    • Deleted data should be really deleted
  • Infection
    • zero-dollar promotion
    • totally word-of-mouth
    • RSS important
    • E-mail not so much – you don’t want to be seen as a spammer
    • “viral vectors” – umm? RSS, iCal etc etc? Bzzt.
  • Communities
    • There’s no community in del.icio.us in the traditional sense
    • Saves having flamewars etc.
    • Enable communities to use your system without providing an actual community

d.Construct wrap-up

[I'm writing this two days after the event, by the way...]

In no particular order, here’s my d.Construct 2005 wrap-up. It’s nothing short of electronic name-dropping, I’m afraid ;)

Oh and, amongst all the hob-nobbing, I learned a whole lot about Web 2.0. To quote Andy Budd, “It’s not a technology or technologies; it’s a state of mind” (or words to that effect).

Cory Doctorow: The Remix Economy

[Editor's note: the battery on laptop A had pretty much given up the ghost by this point, so I made a few choice notes on the wifi-less laptop B, which I offer below for your kind consideration...]

  • Alchemy vs Chemistry. The difference is that in Chemistry you tell other people what you’re doing.
  • The internet comes out of the scientific community.
  • Scientific norms – embedded in the internet – encourages reuse of other people’s work.
  • A permissions-based knowledge-based economy is alchemy. “You drink mercury, and then you die” :~|

Much of the reasoning was familiar to me and, in terms of media control by the entertainment industry, I’m completely in agreement. It was good for me, for the first time, to hear Cory speak though. I chatted to him afterwards about the ORG. Oh, and he gave me his business card! (It’s sad, I know, but it was a highlight of my day).

So, I’m not sure what it all means from the point of view of my employer, which makes a good chunk of its money by charging people money to read about what’s happening in the world of Physics. We don’t slap DRM on our stuff, though.