Saturday, September 23, 2006

StumbleUpon for fun and profit

For the past few months, I've created a couple of websites made purely for putting adsense adverts on. My first site was a bit of an experiment, and has been pretty successful (for what I wanted anyway - I doubt others would class it as a success) by making a quid or two a day in advertising which is exactly what I wanted.

So I thought I'd start a new site to get some more money as its so easy. As is often the trouble though, getting it noticed and getting people to visit it can be a problem. With the first site I traded a link or two, sneaked a link into Wikipedia here and there etc. Its only getting between about 50-100 unique visitors a day which is pretty crappy really, but the click through rate is amazingly high (we're looking at anything in the region of 5-25%!) so it works.

But with the new site I've not really done what I did before. I was getting a small dribble of search engine traffic, but it was only about 10 uiques a day. So I decided to submit it StumbleUpon to try and get some more traffic. That was a day or two ago now - today I checked on the site's webalizer stats and was pretty damn surprised by what I saw:


As you can see, thats some pretty mental growth in hits. Yesterday I got 1277 uniques; so far in the first half an hour of today I've got about 40 uniques which works out at about 1900 uniques multiplied up. But is this ethical? Well who knows - I'd argue that its more of a "grey hat" method - I'm not gaming the system, the site is genuine and there is no hidden tricks or anything.

I've got no idea how long this will last - will it just dribble off into nothing after a day or two, or will it carry on? I'll post an update on this blog at some point in the future when something interesting happens!

Update: I have blogged about the outcome and side effects of a StumbleUpon "stumbling".

Tuesday, September 19, 2006

RSS Sucks. Do we need a new alternative?

Near enough every blog you visit, every web site you visit, pretty much anything you visit on the net these days is advertising their own RSS feed.

Anyone would think people actually use RSS!

Ok so there are the hardcore bloggers, maybe a few professionals who are super-keen on keeping up to date with the goings on in their industry, but how many common or garden internet users actually care about RSS? According to a Yahoo! whitepaper, only 12% of internet users are even aware of it, and only 4% actually having knowingly used it - i.e. have actually subscribed to a feed.

I will be the first to admit that RSS is damn great for what it was designed for - sites like My Yahoo! or My MSN where news content is "syndicated" - i.e. news sources are pulled together from various sources onto one page. According to that whitepaper 27% of internet users take advantage of such sites. Thats great - RSS is doing its job and people don't even know about it.

But why are people still saying that RSS is "about to go mainstream" and how it is going to "revolutionise the net"? I am totally unconvinced it ever will, and here is why:

  1. Crap software. There are loads of RSS readers out there and 99% of them are shite copies of the basic "three pane" email client view. What is the benefit of using them? What compelling reason do they offer other than maybe sorting, searching etc? To be fair there are some interesting things like RSS screensavers, but then you can actually use them or the screensaver turns off!
  2. Information Overload. People are already complaining that their lives are plagued by too many emails that they will never get the chance to read. How will having 50, hell even just 10, RSS feeds all sitting there full of even more cruft for you to read through help with the constant nagging voice in the back of your head telling you to "check your emails", other than changing it to tell you to check your feeds now too?
  3. Its dull! So you can sit there and read about things from your favourite author or website in a plain, boring three pane email client ripoff like we used to do (and maybe still do) with usenet and ancient BBSs in the "old days". Or maybe like me, you like going to the bloody websites! I like to visit the site and really "get" the whole experience of the visit as intended by the author - they spent a lot of money or time (or both) creating the site to best reflect their personality, their style, their content, their ethos - damn it I want to experience it! We are at a point in the internet where a genuine "multimedia" (I hate that word!) experience is coming of age with embedded music, videos, interactive animations, and stunningly attractive (yet still accessible!) web pages, but people think that we would rather just ignore all this and read a boring text RSS feed? Madness!
  4. If its not dull, its full of HTML! So I said that sometimes its dull - some people have addressed that problem by using HTML in their feeds. For obvious reasons sending the HTML along with your content sucks. So you can either have dull and boring text in your feeds, or you can have partially formatted feeds with limited HTML capabilities that breaks a lot of software and devices trying to use the content!
Clearly there is no sense in boring RSS readers. However, one of the main arguments I have heard from RSS users (some of those 4%!) is "It [RSS] saves me time instead of visiting all those sites!" - fair enough, but with Firefox you can open all of the sites simultaneously into separate tabs with a single click if you have book marked them...

I think what they really mean is, "I get notification if there is a new post at a website without having to visit it." - OK, now we are talking!

Maybe what we really need is a new, lightweight alternative to RSS - something where the entire article is not pumped into a RSS file, and where there is specific and strict consistent use of attributes to better allow for machine reading and where it is actually viable to use this sort of thing on a mobile phone or a PDA? All this new format would need to do is provide details of new content (i.e. title, short description, date etc), and where it came from/is available using a URI, so a user can still subscribe to a feed and simply get small, efficient "pings" from a website when it has been updated. It doesn't even need to be XML!

Friday, September 15, 2006

World to Matt: "Dont Exercise!"

Maybe the world is trying to tell me something. It seems for the past few weeks everything has been happening to try and stop me from exercising.

For starters, a few weeks ago I had an operation which meant that for a few days I could barely even standup let alone get to the gym. And because I was in so much pain, even just walking around the shops and stuff was a struggle so I just sat around doing nothing except grimacing and calculating when I was ready to take the next round of medication.

So anyway after a couple of weeks I was well enough to start going to the gym again. This went well for about 4 visits spread out over the last week or two. Yesterday I tried to get in and the barrier refused to move to let me in when I swiped my card. Sometimes it does this so I tried again - same thing. Slightly embarrassed I asked the guys on the desk what was going on and it turned out my gym membership had run out the day before. Because I don't know where I am going to end up living or working any time soon I decided to wait before renewing the membership - I dont want to pay £700 for the year then find out I am living and working miles and miles away. Apparently I cant even use the gym on a pro-rata basis either, so no more gym for me for the time being.

So anyway we get to today. Quite a nice day - sun is out but not too much, its warm but not too hot. "I know," I thought to myself "I'll get the old bike out and go for a ride!". So, after pumping up the tyres, I am back on a bike for the first time in years. It was actually kinda fun in a way - nice and calm and relaxing. I did a quick circuit around my local area and was on my way back when - right as I was turning right across a fairly busy road - the chain snapped. It didn't come off, or slip - it fucking snapped. So no more cycling for me either!

Oh and whilst I was writing this blog I just found out I got onto the graduate scheme I applied for at one of the world's best know IT companies so yay!

Wednesday, September 13, 2006

Inside a PG-40 ink cartridge - easily refillable?

We recently got a new multifunction printer - the ones with the built in scanner which can do photocopies. It is a Canon MP150 - its a really good printer and does great copies, but it seems to use up ink pretty quickly. There doesn't seem to be any 3rd party cheap alternative replacement cartridges available for it though.

With our previous printer (also a Canon) you could just squirt some replacement ink into the cartridge where it would mate with the print head inside the cartridge tray in the printer. But because the cartridges for the MP150 have the print head integrated, they cant be refilled as simply, and they are more expensive too!

So it was time to look inside and see what was possible!

Ok so here we go - one empty PG-40 cartridge just so we all know what we are looking at:


The casing is made of PPE plastic, and is easily cut with a simple hacksaw. I decided to try and cut a cross section down through the middle of the cartridge to see what sort of ink reservoir we were dealing with:




As you can kind of see in the second picture above, there is a foam filled void taking up most of the cartridge with no internal compartments or bracing. The lighter grey rectangle is a small patch covering the wells down to the print head. Based on this it would seem like it would be possible to refil this cartridge by simply drilling a hole anywhere on the top and sticking the ink in through there.

However, upon closer inspection of the top light-grey coloured lid I discovered what appears to be a small vent, or perhaps the original filling hole. Unfortuneately I cut right through it but you can see quite clearly where it was on the picture below:


As it turns out, this hole is directly above the "a" of "cartridge" on the label so its easy to find. Its a pretty narrow hole, perhaps less than 0.5mm so unless you have a hyperdermic needly it might be awkward to refil using this hole. However, it would make a good pilot hole if you are planning to drill into the cartridge - an alternative place to drill would be on the small "dimple" visble towards the right of the above image.

One word of warning though - if you are drilling beware of swarf. I got a lot of it when cutting this thing open so there will be some when drilling, which may eventually work its way down through the foam to the print head.

As an alternative to drilling, you could try removing the top of the cartridge altogether. This seems to be fairly firmly glued down, but I think I've found a simple trick to pop the lid off if you have a vice or a g-clamp handy. There is a "lip" on the lid of the cartridge, try and get that between the jaws of a vice and then very gently tighten. When I tried this on half of the shell, it popped right off no problems - have a look at the video below for an example:



I haven't tried it with an intact cartridge but I suspect something similar will happen. Have fun!

Update: I have now tried it with a real cartridge and with good results!

Sunday, September 10, 2006

A simple solution to "Domain Kiting"?

Bob Parsons - president of GoDaddy.com - recently posted about what he has called "Domain Kiting". I personally wasn't familiar with this term prior to reading this post, or "Check Kiting" either but I guess its probably just an Americanism that hasn't made it over to the UK.

Anyway - this article outlines what domain kiting actually is in a fairly simple and easy to understand. I'm not going to go over it again here, if you don't know just go and read the article. Parsons claims in his article that domain kiting is "out of control" and "must be stopped", but he doesn't go into any detail about. From what I can infer from his post, it looks like he wants to lean on ICANN to try and get them to shut down particular registrars who appear to be responsible for - or are at least facilitating - this process. That's a fair enough point, but then you remember that Parsons runs his own registrar and is maybe just looking to take out some competition? :) Maybe I am being a bit harsh!

But anyway it got me thinking - surely there is a really simple way to solve this problem without resorting to oppressive actions from ICANN, who appear to be pretty unresponsive anyway.

Perhaps a better way to prevent this is to simply set a "block" on all cancelled domains, so they cant be reused for a short period?

For example, say a domain kiter registered the domain "domainkiting.com" with the intention of "kiting" it over and over and over:

  1. Kiter registers "domainkiting.com"
  2. Kiter cancels domain after 5 days and gets money back
  3. Registry puts a 30 day "block" on "domainkiting.com" preventing further registrations.
  4. Kiter cannot re-register domain for a month.
  5. Domain Kiting solved?
Maybe I am looking at this in a really really simplistic way - but that seems like such an obvious solution to me.

Tuesday, September 05, 2006

Matt - Come On Down!

I was idly flipping through channels trying to find a lunch time news bulletin the other day when I stumbled onto ITV, and something I'd not seen in a long, long time - The Price Is Right! It looks like they've finally retired poor Bruce Forsyth - not before time - and got Joe Pasquale in instead. The format is exactly the same as it always was though.

And I loved it.

Now, I dont usually go in for these sort of shows - I guess I like to think of myself as above this sort of thing, preferring to watch documentaries, the news (that was after all what I was trying to find), secretly pretending that I watch Big Brother purely as a science thing and all that sort of stuff. But watching The Price Is Right filled me with joy; when someone won something I was genuinely happy.

Needless to say I was pretty surprised with myself - so much so that I've been thinking about it for a few days now. What was the attraction? What did The Price Is Right have that managed to warm the heart of a die-hard cynic that other shows were lacking?

I think its to do with the whole ethos of the show - the pretty crappy prizes (by today's standards) like some hair straighteners or an iron, the tongue in cheek yet almost ego-free presentation (kudos to Pasquale incidentally - he did a great job), and the rowdy shouting from the audience. Unlike other game shows like Who Wants To Be A Millionaire, The Weakest Link, The X-Factor etc etc, there was no greed - the contestants looked like they were just there for some fun and maybe leaving with a couple of hundred quid and a Barbecue or something if they were lucky on the games that required no real skill at all. There was something very endearing about it all. I'm actually looking for when its next on so I can make a point about watching it. I wish more of the trash we get on TV was like it - I dont want to see people desperately hoping to get rich and/or famous out of some show. Bring back all the other classics too - The Crystal Maze and You Bet, please come back!

Monday, September 04, 2006

The future of programming?

I came across this blog post on a blog called "Alarming Development" yesterday after spotting it on Digg or Reddit or something - probably Reddit considering what Digg has become, but thats a story for another day.

Anyway - I felt compelled to make a post about this person's thoughts. The general idea of the post is about how programming is currently in the "stone ages". Fair enough - there are probably a lot of ways that programming can be improved, but this guy's ideas are pretty silly.

Now I dont want to belittle this guy at all - some people are great musicians, great artists, or maybe great mathematicians. I dont claim to be a great programmer, but this guy looks like he isn't cut out to be a programmer. Lets have a look at some of his observations:

  1. "Programming is mentally overwhelming"
  2. Constant translation between mental models and code
  3. " We have no agreement on what the problems of programming are"
I think that here, his points 1 and 2 are intrinsically linked - for most programmers, there is little need to construct mental models of what the code means: the code means what the code means - and if its really complicated that is why we have comments to describe what is going on. When you are reading this writing now, do you need to construct some mental model of what I am saying, or are you just reading and understanding it? I dont know who this person is or what his background is, but I really dont think he is really suited for programming if he needs to put in so much mental effort to work out what code is doing. He goes on to say elsewhere that merely using ASCII is totally insufficient to adequately reflect the full semantics required for programming. I'd argue that this point is pretty silly - after all the entire English language can be covered by ASCII - our entire history and scientific and cultural knowledge can be distilled into ASCII if we really wanted, but this guy thinks that it is somehow not enough for programming? As for the 3rd point - well perhaps I agree. I cant say I've done any research into it either way, so I'll let that one slide for now.

Further on into the post he comes up with some ideas and goals about how programming can be improved. Most of them seem to be based around his own personal problem with not being comfortable thinking in an abstract way and how programming should be about usability (seriously - is maths about usability? is biology about usabulity? nuclear physics? Stuff is hard - get over it.), but this one is the real killer for me:
We tend to build code by combining and altering existing pieces of code. Copy & paste is ubiquitous, despite universal condemnation. In terms of clues, this is a smoking gun. I propose to decriminalize copy & paste, and to even elevate it into the central mechanism of programming.
Right. Ok. Copy and Paste the central mechanism of programming eh? Forget variables, assignment, loops etc - its all about Copy and Paste, baby!

But seriously - this guy has clearly missed the whole reuse mantra drummed into programmers right from the very beginning, particularly one of the main bloody points about object orientated languages. Copy and paste is not ubiquitous - its certainly present but it is far from ubiquitous. Code should be designed to be reused in modules/classes/objects/libraries etc. Do this properly and you dont even need to rely on sloppy and error-prone copy and paste.

The post started loosing credibility right away when it started talking about "reverse engineering code into mental models" (I guess he has never heard of comments) right at the start, by the time it got to the copy paste statement above I started to wonder if it was a troll! It seems like he has got a lot of attention - he seems to think it is a groundswell of support for his way of thinking but I fear that is more likely people just laughing if nothing else. Dont give up the day job mate, unless of course its programming!

Friday, September 01, 2006

XNA: A new start for C# and gaming?

So today Microsoft released a beta of their new XNA framework and development environmnet for developing games. Basically XNA is a C#-only, and essentially what was managed DirectX but just tarted up a bit, and importantly for some, will allow for decent homebrew development on the Xbox360.

I had a look at the game compeonent video on the XNA MSDN blog and I must say, I'm pretty interested in how this is going to turn out - the game components is a pretty logical way to do things considering the whole OO thing for .NET. Check out the 15 minute video - its pretty convincing stuff from a simple point of view. Unfortuneately, there aren't really any components available yet - I thought the ones in the video were kinda like "generic" ones included but they aren't which is pretty disappointing. But I am pretty sure this is going to really take off.

Easy-Peasy Game Engines?


Just thinking about it a bit, using the game components its going to be really easy to more or less "throw together" a game engine. Based on what I've seen so far it seems like this sort of thing will be pretty easy. Consider if you have these components to play with:
  • A component to load in and manage your meshes
  • A component to load in and manage your BSP maps or maybe some terrain (it wont matter to anything else which you chose because its all abstracted away)
  • A component to deal with input and player views (first/third person etc - again abstracted away so it wont matter)
  • A component to do the physics for it all without you even doing anything.
Suddenly you have the basis for an entire game engine right there in a really tightly integrated OO manner. All you'd need to do is stick in your game logic and sounds, gui etc and you are well on your way to having your game working.

At the moment there dont seem to be many components available, but I am sure that will change rapidly. Its pretty exciting in a way, and I'm not even into games that much!

I really liked the way .NET really "organised" everything with the class library and did away with so much boiler plate code - it looks like Microsoft have done the same thing with DirectX now. There seems to be a real stigma with performance for managed stuff, but I guess we'll see in time how fast or slow this really is.