Monthly Archive for July, 2007

Of Nouns and Verbs

As the site develops we’ve been putting a lot of thought into how to architect things in a suitably general way - to build a playground for users with a set of objects they can play with, and a consistent set of actions they can perform. We found the following approach to be one rather nice way of thinking about it (cue monster diagram which Wordpress refuses to format nicely):

VERB \NOUN STASH (save / collect / organize) STALK (watch / observe / subscribe to) CHAT ABOUT WRITE ABOUT TAG BUY / DOWNLOAD UPLOAD / create
MUSIC / artist / label Save music for download queue; make playlists; organise music library Watch for new releases and events by artist or label; who’s listening to an artist/release/track? Bitch about music Review releases; Interview/profile artists; write music news Categorise music (genres?) Buy music! or download unlimited music if subscriber Upload your own tracks; create mixes and playlists
WORDS Bookmark content; compile your own editorial selections See who’s chatting about a piece Bitch about someone’s news/review/etc   Categorise writing; tell us what it’s about   Upload your own content
CHATS Organise your chat history; bookmark chats Get alerts about new posts in a chat     Categorise chats; tell us what they’re about   Start a chat! Participate!
PEOPLE Friends list; create user groups Get alerts on what friends are up to! Bitch about that guy/gal Profile / interview / write a testimonial about someone Categorize your friends (?)   Sign up! Invite friends!
EVENTS / venues / locations Bookmark events; add to your calendar Watch for new events at a venue / near to a location; Look for new attendees of an event Bitch about that band you saw the other night Review / preview events Categorise events Buy tickets; download flyers Add your own events
PICTURES Make photo galleries   Bitch about that pic your mate took Attach photos to content Tell us what photos are of; tag your friends Download photos and cover art Upload your photos and art

Obviously some of these things are a while off in terms of development - but this should give eager loudplayers an idea of what to expect!

From a software architecture standpoint, I found this an interesting exercise too. On a data modelling / OOD level, our Nouns correspond roughly with classes or data types, and our Verbs with interfaces / method signatures. Of course in practise it’s not quite as simple as the diagram’s layout suggests. But thinking about things in this way does help to identify a useful set of shared interfaces. Rather than keep tacking on additional, distinct modules of functionality (let’s throw in an events section!), we’d like to add nouns and verbs to our playground.

On the user interface level, too, this kind of analysis helped to clarify thinking on how to present a structured, consistent user interface, and how to structure navigation. We have a lot of work to do on this front too, but I feel we’re making great progress. John, our graphic designer and Tim our new recruit and go-to man for UI development, have been battling valiantly with photoshop, css, rails helpers, partials and view code. The task has been to build a suitably general and standardized way of presenting different types of object across the site - music, words, chats, people, artists and so on, all need representing consistently at different sizes and in different contexts, together with icons and links for the actions users can perform on them. It’s been frustrating at times but I think we’re beggining to nail it, and it’ll pay large dividends in the future in simplifying and providing structure for further UI development.

Log rotation with Rails and cronolog

Some problems doing log rotation on Rails’ production.log:

  • The built-in rotation feature of the Logger class doesn’t play nice with concurrent fastcgi processes
  • Rails doesn’t appear to support the more advanced Log4r library, despite claiming to in a few places. In particular benchmarking seems to break it
  • Using logrotate proves annoying as you need to kill the fastcgi processes after rotating the logs

The solution appears to be relatively simple though - just use the standard logger, but pass it a pipe to cronolog rather than a filename. Don’t know why this wasn’t documented anywhere! So in environment.rb, or environments/production.rb say, something like:

# Use cronolog for log rotation
cronolog_io = IO.popen(
    'cronolog /space/log/%Y/%m/%d/production.log', 'w')
config.logger = Logger.new(cronolog_io)

We no longer support IE6

As a web developer who’s been through a lot of pain in the last 5 years trying to support this backwards browser, I have to say this was rather a relief. We’ve previously attempted to get everything functional, if not feature-complete in IE6, but after the latest round of changes we just didn’t feel it was worth the considerable additional effort. IE6 users will now see a politely-worded message:

You appear to be using Internet Explorer 6. While Playlouder might work OK for you, it’s not supported by us, and there will probably be a few problems. For a better browsing experience, why not upgrade to Internet Explorer 7, or get Firefox. Either of these will ensure a great improvement in your experience of the Playlouder site, and should improve your general internet experience and computer security too!

We didn’t take the decision lightly - but we feel it’s the way forward. Google analytics tell us that around 60% of Playlouder users (loudplayers?) are accessing the site from Windows, and of those 60% using IE6. So that’s a sizable 36% chunk of our audience we’re asking to upgrade. Why?

  • IE6 is, to put it politely, extremely backwards and its lack of standards support is unrivaled by any other widely-deployed browser
  • With IE6 users now in the minority, the web needs compelling sites to start requiring an upgrade for IE6 users, to really spur upgrades and push that figure down even further
  • We’re already requiring invites for new sign-ups, and feel that the upgrade isn’t too much of an extra step for users who’ve already had the motivation to seek an invite
  • We’re not forcing any ideology on users - while I’d personally prefer they use Firefox, I’d be equally happy if they carry on using what appears to be their preferred browser (IE), provided they upgrade to the latest version. IE7 is easily available and people need to be told that the older version just won’t cut it on the web any more.
  • The additional development costs just aren’t worth it for us at this stage - especially bearing in mind that given another year or so IE6 should be consigned to the dustbin of browser history.

Playlouder Beta Invites are Going Out…

We’re now pushing Playlouder beyond the few friends and family who have been helping us test, and giving members a few invites to hand out to their friends and family, who may not be so forgiving of our changing features and bugs. It’s a nervous moment.

To add to the tension, everyone in the UK (nearly) who gets an invite can sign up for a trial ISP account. Testing is all very well in a controlled environment, but you can never really tell what people will do left to their own devices.

Let’s see if it works.

A subtle Safari 2 bug, and parallel Safari installs

In case anyone else runs into this:

Safari 2 will not return any innerText for an element which is display: none. Safari 3, however, has fixed this bug, which made it hard to track down after the Safari 3 beta install replaced my old copy of Safari 2.

I’ve now gotten the two running in parallel though - follow the instructions here and follow to the letter, including all the renaming. I found that unless I copied the old backed-up Safari to /Applications with the name Safari.app, there were some nasty issues with other apps loading the Webkit framework from the wrong place. In particular Drosera wouldn’t start, trying to use the old Webkit framework that was copied into the bastardized Webkit install, even when I overrode its DYLD_FRAMEWORK_PATH manually to use Safari 3’s. No Drosera rather defeats the whole point of having Safari 3 for me, so yeah. Watch out!

BPI raids Company Network

Many will have seen the news, as reported by the BBC, The Register and others, that the BPI and Scottish Police have raided Honeywell after getting a tip off about music sharing on the company’s network.

Here’s the BPI’s press release.

Fact is, there is no licence that Honeywell could take on behalf of their employees which would have enabled them to enjoy music in the workplace. The music industry appears, despite all protestations to the contrary, to have given up on trying to sell music. I say appears, maybe it did try, but why publicise the raid rather than an offer of a truly compelling licence which would tie the music to the company network and which Honeywell could market to staff as part of a great welfare and entertainment package?

Instead Honeywell gets massive disruption and negative publicity, the BPI and the music industry gets seen as the people who always say no, and no new revenue flows back to the creators and producers. Lose, lose, lose.

Playlouder MSP participating in Music Tank seminar on file-sharing

This should be an interesting discussion, with a good cross-section of participants:

“The F Word: Monetising Filesharing - An Industry Solution”, brings together the leading proponents of the remuneration-for-access model - rightsholders and ISPs - to debate the issues and opportunities of licensing filesharing. It will seek to generate an outline of discussion points and next steps for the industries involved, which we hope will illuminate an exciting new dawn for recorded music. With UK recorded music sales suffering alongside an unfolding retail crisis, the think tank will focus on how filesharing can be monetised. (Full Copy below).

SPEAKERS:
Keynote: Fred Bolza - Broadcast Online Development Director, MCPS-PRS Alliance

Panel:
Richard Gooch - Director of Technology, IFPI
Paul Hitchman - Co-founder & MD, Playlouder MSP
Malcolm Hutty - Head of Public Affairs, The London Internet Exchange (Linx)
Jon Salmon - Head of Broadband Content & New Platforms, Tiscali

DIARY:
Date: 5th July ‘07
Venue: Bertorelli Restaurant & Bar, Frith Street, Soho, London
Time 18.30 - 21.00hrs

This think tank will focus on what is perhaps the single most pressing issue facing the recorded music industry today - how to finally run with something most of us or our kids do, license it and help it grow. Yes it’s the F word: Filesharing.

After all, for most music lovers, the passion, discovery and sharing of music is what it’s all about. And as any technologist will tell you, sharing information, and electronic files is what the internet was built for. But filesharing isn’t purely about downloading from various P2P and Bittorrent sites – people are bluetoothing tracks, using messenger, email and file transfer services, sideloading to mobile, sharing whole hard drives… and the list is set to grow.

We’re talking about fixing a growing disconnect between the traditional recordings industry and how increasing numbers of fans first come to sample and discover new music. This isn’t about CD doom-mongering – we expect CDs to be with us for some time yet, together with new forms of premium priced music. Rather a rebalancing of the relationship between the business and the fan, whereby fans are encouraged to do whatever they want with their music (or anyone else’s in fact) and artists and rightsholders are recompensed according to useage.

We’re talking about accepting the notion that the business can no longer control distribution and then attempting building a model around that. This will require a cooperative, inclusive approach across the digital music value chain – involving not just rightsholders and their representatives but ISPs, mobile phone companies, and MP3 and blank media manufacturers.

It’s also going to take some time. The opportunity needs to be properly valued and considered, issues will need to be resolved, and the music and technology industries will need to cooperate in a way that’s currently unprecedented. It’s a mini quantum leap from today’s business, but events this year suggest we may be approaching the sort out mindset necessary for this transition.

Let’s face it, 2007 is already looking like a strong contender for Year Zero as far as attitudes towards digital music go. The majors are finally beginning to give up on preventative DRM, giving music fans the convenience and interoperability they have come to expect from MP3s. And it’s become accepted wisdom that the decline in the recorded music market, both in the UK and across the world will only be partially offset by the digital download market, at least over the next few years. Even six months back the prevailing wisdom on these issues was considerably different, and a year ago it was almost diametrically opposed.

With cutbacks, falling revenue and mergers the order of the day at the majors, and indies feeling the squeeze as well, the time has come to act.

This event brings together the leading proponents of the remuneration-for-access model with rightsholdersand ISPs to debate the issues and opportunities of licensing filesharing. It will seek to generate an outline of discussion points and next steps for the industries involved, which we hope will illuminate an exciting new dawn for recorded music.