Monday 19 November 2012

The neverending awesomeness of Indiepop Eyespy

Days have past, hundreds have died elsewhere in the world, but still I keep on hammering away at my keyboard. I keep on pushing, keep on fighting for something I believe in, something I've fought for for years, and that is Indie Eyespy.

Here try this
London Indiepop Eyespy

What you've got there may look pretty basic, but under the hood I've pushed the envelope of my skills. Its got html, JavaScript, php and MySQL.

It even looks pretty good when you view the source.

The list of bands and band members comes from a database that's 5 Normal Form, so the same person can be worth more points depending on what band they're in.

Now I just need to add a few more bands, and use the magic of CSS3 to make it look pretty.

And also do something slightly different for dealing with scenesters, promoters and DJs who aren't necessarily in any bands.

And then maybe I can work on adding a highscore table, and maybe a page to add new bands and band members, and then a special thing that looks up how many listeners each band has on last.fm and splits them into divisions based on how popular they are.

Thursday 15 November 2012

Order of the day


I've given some thought to what order to have the bands on the London Indiepop Eyespy website, this is another form over function problem.

Its got to be easy to use, easy to find the scensters that users want to claim points for.

This suggests alphabetical order for all the bands. This wouldn't be a problem if there were only two pages of bands. But if we're listing band members, that would be less than ten bands in total.

Besides, from my experience with the Skilmo site, people don't really want to work through a long list of bands, it puts people off using the site, their attention wanders and I've lost a scenester.

Back in the dusty days of Glasgow Indie Eyespy, the hundred or so bands of the Glasgow indie scene were split into about half a dozen divisions based on popularity, so in the premiership you'd find Franz Ferdinand, the Belles, the Obscuras, the Mogwai, in the first division you'd find the Felt Tips, The Plimptons, Wake The President etc. Scenesters could intuitively know where to look for the bands.

Which divisions the bands were in was a carefully calculated algorithm based on last.fm, technorati and MySpace data, but those vectors aren't really appropriate this decade for the twenty or so London Indiepop bands.

Sure I could work out some kind of popularity rankings, but having bands in divisions doesn't look nice if all the band members are listed. Alternatively, the site could list the bands and then expand to list the members once you've clicked on the name, but that's not very satisfactory.

I'm having real doubts about the viability of the website at this stage, I can't envisage people using it.

Doubts aside, if we look at the sort of sites I'm hoping to ape, like Last.fm and Songkick, they don't have alphabetical lists of bands, they intuitively know what band names you want to see, they don't have lists that you have to wade through.

So, with the tools I have available, what would Phil Cowans and Gideon Bullock do? What would Russ Garrett do?

Something like this?

Wednesday 14 November 2012

Getting all Fifth Normal Form on your ass


I've been reading up on database normalisation and thinking about how the London Indiepop Eyespy website would work.

Data normalisation is incredibly interesting, but not quite as important as what the site looks like, form dictates function here.

In the original pub game of indie eyespy, you'd spot a band member then look up how many point they are worth.

There's Stuart Murdoch from Belle and Sebastian, four points!

As many of the bands are quite obscure, it would be less likely that you'd know the names of band members, but you could still get points for identifying the person.
There's wassisname the drummer from Camera Obscura, would be worth the same as correctly remembering his name was Lee. Although, if playing indie eyespy competitively with friends, the person who get his name would claim the points.

So here we have the dilema for a website, what should it list:-

  • Check boxes for each band member by name for each band
  • Check boxes for numbered members for each band
  • Text box for number of members spotted and leave the rest to banter

With the limitless possibilities of computing power, I'm tempted to go for option one, and make life easier for folk who can't remember names

As bands evolved and lineups changed so did the way points were allocated, for example spotting Gav from Camera Obscura would get you three points, but if you instead noted it was Gav the bass player from Stabiliser, it would be five points. However, you couldn't then claim eight points for identifying him as playing in both bands. You only get points for one person once.

So the website would need a way of dealing with the same person in many bands.

With the Skilmo website, this sort of problem was easily resolved when it processed the checklist page, each skill was only logged once, for example tunisian crochet only counted once if you clicked it in both the textile arts category and the crochet category because the program ignored categories when logging stuff.

But with indie eyespy, because of the different points values this isn't possible, and rather awesomely, this is precisely in what 5th Normal Form is about in database normalisation theory.

On the database side of things I'd need three tables:-

  • List of people and their nominal point values
  • List of bands and their points values
  • List of which people are in which bands

Then every time the website is accessed a list is constructed by SQL of bands and their members and points values.

Then with PHP an html page is generated which displays this list, with form checkboxes and also generates so neat JavaScript which greys out people who play in different bands when you select them.

Then submitting this form should post a list of people and their points values.

The next page would get a list of the people in the database, and run through the posted data, tote up the score, and log the score.

That seems to work in my head.

Of course the list of names will be normalised with id numbers to cover for there being more than one person with the same name, and same with the list of bands.

The list of bands also needs a status column for whether a band is currently active, on haitus or split up. Cos, of course, active bands are worth more points than bands that are on haitus, but not as much as a band who split up in 1989.

And the list of which people are in which bands needs a column indicating former band members. Because, as I'm sure you understand, spotting the original guitarist from Pocketbooks is worth more points than the current guitarist.

Tuesday 13 November 2012

The mind-boggling complexity of a London Indiepop Eyespy Website


After the frankly unremarkable failure of my last website, despite our best efforts, I'm unable to persuade people to sign up, I've decided to devote my labours towards creating a dynamic London Indie Eyepsy website.

I don't need to remind you that the basics of London Indiepop Eyespy involve awarding yourself point for spotting well-known Indiepop music scene people at gigs and concerts in London.

At first I figured it would just be a static list of bands and scenesters with check boxes and I could re-use the old php code from my skilmo website. I know where I am with php and a nice MySQL table.

But the more I think about it, the more mind-boggling it gets.

Part of the joy of the original game was that extra points could be gains using various multipliers, for example you get extra points if the person you've spotted is wearing a hipster stripy top, or if they're shopping in Lidl, or double points if you assault, sleep with or have sex with the spyee. There could be different point value for people depending on which band you identify the spyee with, for example, Dan Chapman from Pocketbooks may only be worth 2 points, but Dan Chapman from Hot Booth would be worth 5 points.

So, to do a dynamic check-list where extra lines appear for checking off several band members, or with the stripy top and sleeping with multipliers as more check boxes or radio buttons  this would use JavaScript, which looks straightforward. I've never used JavaScript before, but after a cursory glance at online tutorials it doesn't seem too challenging. A little challenging maybe, but not too much.

However, my mind boggles when I try to figure out how to create a webpage that behaves correctly with Dan Chapman. How do I make it so if you claim your points for seeing him in stripy top as Pocketbooks bass player, you then can't claim points for him as Knickers bass player, or Hot Booth, One Fathom Down. I'm going to need to use php to generate JavaScript that creates check boxes that behave as radio buttons across almost the entire length of the page.

Or maybe the check boxes remain as check boxes but become greyed out when you chose one or other of them.

Then again, maybe starting with a list of bands and scenesters is the wrong start point, and instead the site relies on a list of people, and their band affiliations is on a separate table.

I'm uncomfortable with this.

Even back in the pre-London days of Glasgow Indie Eyespy,  where the scene was much richer and more diverse, the game was pretty much a stalkers charter, where the proximity of creepiness and fun on the indie eyespy spectrum could be easily laughed off or obscured. In London Indie Eyespy, the scene is different, whilst Dan Chapman is a ubiquitous figure in the scene and a great example a few paragraphs above, actually mapping all the bands that various people called Emma are in so that anyone can stalk them in supermarkets makes me uncomfortable.

Imagine, if you will, that I recreated Facebook, not all of it, but your Facebook newsfeed and that of most of your friends, and I did without any input from you. Its clearly at the wrong end of the creepy/fun indie eyespy spectrum.

And so likewise creating a list of people and then mapping with bands they're in, and have previously been in, thats still drifting towards the awkward end of the spectrum. Especially on the lowest levels where playing on stage at The Wilmington Arms is a small step from playing in your bedroom.

Very easily someone could take it the wrong way and demand their details to be removed from the site. There's no way to take into account people's desire for privacy if you're starting from individuals rather than starting with bands.

Back in the early days of Last.fm and Songkick, there was correspondence online of bands complaining that they were listed on the sites despite having not signed up themselves, and it had to be patiently explained that if you're in a band with music to be listened to, then the listening experience belongs to the listener, whoever they maybe.

With Indiepop Eyespy, getting points for spotting Dan from Pocketbooks is one thing, but getting points for spotting Sandy in the supermarket is another matter entirely.

I was at a gig the other night, at Power Lunches, and I saw Katesby, she's a popular scenester. We go back a long way, about 420 miles and half a dozen years, but being a shy sort of chap, I didn't say hi or anything, I just lurked in a corner listening to the bands on stage and concentraing intently on my Samsung Galaxy S3 LTE. I just didn't feel comfortable saying hi, I don't think she saw me.

Maybe that makes me anti-social and a little bit creepy, or maybe its an inherent character trait that's made me the man I am today. Its the same thing I referred to the first paragraph of this blogpost, and its the inherent fallacy in constructing a London Indiepop Eyespy website.

Never the less, I'll have to go and read up and fifth normal form database normalization and see what works.

Saturday 10 November 2012

Your vote counts

So I've been working hard on my awesome internet startup websitey thing, adding new functionality and cool stuff.

I've now got pages for each photo that's been uploaded for each skill and you can upvote and downvote photos just like on Reddit. And its' kind of neat too cos on the left side of each photo it shows the top votes photos from the same person and other top voted photos for that skill.

So say you uploaded a photo of some awesome piece of knitting you'd done, and some awesome photo of an awesome bit of chainsaw carving you'd done, and an awesome photo of you looking awesome playing bass guitar in some band you were in five years ago. Then when folk were looking at your knitting photo, on the right there'd be pictures of other people's knitting and on the left would be photos of your other awesomey things.

The main problem with this cool websitey thing, is that I'm the only person to have uploaded any photos of anything so its just me gurning and things I've knitted out of Sainsburys carrier bags over the last five years.

Still, the website is here, anyone can sign up and upload photos, please do, cos I'm not quite sure if it works right.

To register on the site, you'll need to go to this page, check off some of the crafts, hobbies and skills what you can do, then come up with some user name, then from your profile page you'll be able to upload photos and stuff.

Let me know if you have any problems, if for some reason you get logged out randomly, and if you have a retina display device, let me know what it all looks like.

Cheers

Wednesday 7 November 2012

I am a female Goffin’s cockatoo

Thrilling progress is being made on my awesome internet start-up website thing.

This is the main page, this is my profile page and this is where you can register all the skills what you can do and open an account.

Elsewhere on the internet a parrot in captivity has started to manufacture its own tools. Its pretty awesome as we already knew that crows and jays could fashion tools out of bits of wire, but this is the first time its been seen in a parrot.

The bit that interests me most in the story is about Heidi, a female cockatoo in the same cage:-
Heidi, the bird in question, attempted to insert sticks into the enclosure, as she had seen Figaro do. She did not, however, adjust their sizes or attempt to manipulate them once they were on the same side of the wire mesh as the nut. Perhaps if she had been given more time to observe Figaro at work (he chased her off), she might have had a greater sense of how to use the sticks.
Me, I love watching people do things I can't do, and then having a go myself. Its just in my nature to want to try everything.

The past days and weeks have been fraught with the website. I've been learning how to do stuff in php, then once it works, I show it off to my nearest and dearest who just don't seem very impressed, and I don't understand why not.

For example, the checklist page was a huge list of all the skills on the database, I could image people slowly working through it checking off everything they could do, bias knitting, chainsaw carving, programming in FORTRAN, getting little stabs of joy when they learn about the existence of a new skill that they've never heard off before, like punch needle embroidery.

I couldn't understand why no one was registering on the site, why no one was working through the list of 300 or so skills?

Luckily, thanks to some good constructive feedback, I've changed the checklist page so all the skills are in categories, and you can just pick the one you're interested in. Rather than having to read through dozens of random ones that you're not interested in.

Its so obvious, but it didn't occur to me the first time round.

Me, I'm like Heidi, learning new skills. But I'm better than her, with a bit of practise I get better and get it right.

So, the next bit of the site that I'm working on is how it deals with images that have been uploaded by users. I'll let you know how I get on. Awesomeness all round!

Saturday 3 November 2012

On National Insurance and Child Benefit

There's recently been coverage in the media of a thing called 'The Living Wage', that is a wage upon which people can live comfortably, a somewhat higher wage than the current minimum wage. By a quirk of statistics, the Living Wage is within a few pence of what the take home amount of the minimum wage if it wasn't taxed. That is, if people on minimum wage didn't pay income tax, they'd be taking home the living wage.

Fiscally, I'm a big fan of raising the income tax threshold to £16,000 or so, enough to take the minimum wage earners out of the tax system. And then, with feelings of generousity, I'd raise the threshold to the median wage, so the poorest half of the UK paid no income tax, and the rest pay the rest of it, at whatever rate balances the books.

However, I'm not the chancellor, and I have doubts. There's the whole concept of National Insurance, which I still believe is an insurance scheme and not just a different name for tax. I feel that all earners, no matter what their income, should be paying national insurance, like putting away a little bit each pay day, for when they fall ill, or become unemployed or otherwise fall on hard times.

And here we land at the problem with Child Benefit. Within twelve months, those earning £50,000 or more will not receive Child Benefit. Whether or not this is fair depends entirely on whether that money comes from taxes or national insurance.

If its from the National Insurance Fund then it ought to be a universal benefit, paid for all children regardless of their parents' income. Imagine if you paid for insurance on your car or your house, and then when disaster strikes, the insurance company turned round and said, no, you can afford to repair or replace without the insurance money so we're not paying up. In which case, I imagine you would do your damnedest to ensure that the insurance company never received a penny from you.

But if Child Benefit is paid from tax, then fair enough, deprive the rich of it benefit, as they are paying for everyone else's services anyway, its part of the package, part of the deal you sign up to when choosing how closely you comply with a country's tax regime*. The tax rates vary regularly anyway so any gains or losses are transient rather than long term.

It appears that Child Benefit is not paid from the National Insurance Fund, and is administered by HM Revenue and Customs and so is paid from tax.

In order to hold views such as this I try to indulge tax avoidance as little as possible, I don't give money to charity, I don't use GiftAid, and I don't keep my savings in an ISA.

*Its widely believed that only the rich can take advantage of tax regimes in different countries to maximise their wealth. I believe this is untrue as I've worked for minimum wage in factories where the vast majority are workers who've travelled thousands of miles from far off lands to work for minimum wage and then send a proportion of their earnings back home to ensure their families have a higher quality of life. This is the same package as Sir Philip Green's wife living in Monaco receiving the benefits of the Arcadia group in the UK.