DigitallyCreated
Blog

The state of affairs

Finally, this semester is over. Its been a long, long, semester and I'm glad that its finally finished, exams and all. As usual, I'll write up a review of the semester, but this isn't the blog for it.

Now that I've had my two 24" screens for a couple of weeks, I can formulate a proper opinion on them. Were they worth the two grand I spent on them? Absolutely. There is nothing quite like being able to work on code on one massive screen, only to have the multitude of supporting windows that I also use on the other massive screen. Highly recommended for those that can stomach the price.

It was requested of me by a peer that I illustrate the supreme coding environment that two 24" screens provides. Here is a picture showing Visual Studio (with two panels of code), MSDN and a uni project requirements PDF all open simultaneously. Don't mind all the mess on my desk (that was good watermelon and ginger beer).

The screens are so bright that they literally light up my room. I almost don't need any other lights on in the room. That said, they can be a little glaring if you don't have some other supplemental light on.

The first thing that annoyed me was the lack of a taskbar on the second screen. I wanted all the windows on the second screen to be on their own taskbar rather than junking up the single one on the main screen. A quick search later and Ultramon solved my problems. Highly recommended for those with two screens.

However, not is all sweet smelling roses in the 24" garden. One of the screens seems to have a bit of light leakage on the right edge. My last screen had tonnes of light leakage and as such it wasn't really an issue. This screen, however, has no light leakage except for this tiny bit which makes it all the more obvious and annoying. It doesn't affect standard work but during movies with dark scenes it is particularly obvious. It only affects one screen out of my two.

So, I submitted a warranty claim with Dell to try and get it replaced, fully expecting to be rebuffed. To my extreme pleasure, I was called within a day of the report and told they will send me a replacement and I can send my existing screen back with the courier that brings the replacement. Hats off to Dell. Exemplary performance. I will recommend Dell to anyone who asks me now.

But enough raving about the screens. Now that exams are over, I am planning to put a lot of time into my web development business. We are currently developing a CMS for use in a few clients' websites. Its written in PHP 5 in a fully object-oriented manner and is turning out nicely.

Aurora (the CMS) will power the next version of DigitallyCreated.net. The next version? Yes, this design, although nice, is getting a bit tired and as such I've developed a new design from the ground up that, when the correct components from Aurora are done, I will replace this current website with. Expect a much more robust blogging system with comments when that's released. Closer to the time, I may release some screenshots.

People may say that Microsoft has grown stagnant, and certainly some sectors haven't been doing as well as was expected (Vista for example). But, as I've always said, if there's one thing that Microsoft can do right, its development tools.
They've gone and released a new web platform called Silverlight. At first glance, it seems to be a Flash-y sort of thing, but when you look closer it seems (to me at least) to be more of a platform than a media presentation format.

However, its got one main failing point at this time. It doesn't work in Opera. Works in Firefox and IE, but not Opera. Sorry guys, but until its pervasive, its not going to take off. And they realise that. Their current plan seems to be to release an Opera version "soon" (I'm hoping with the final version of Silverlight 1.1 which is in Alpha currently). At least they are bothering, which is new for Microsoft and Opera (*cough* fix all the Windows Live services while you're at it *cough*).

Silverlight seems to be a good place that Microsoft can finally use XAML. I always thought that XAML didn't seem to be particularly useful in the Visual Studio - C# world (I haven't actually used it though, so I very well might be wrong, so take that with a handful of salt). But for a web application, XAML seems to be perfect. Check out the short tutorials on the Silverlight website to see what I mean.

Another indication that Microsoft have still got the smarts, so to speak, is the new Popfly mashup creator/website creator/community that they've created, built on Silverlight. I was raving for hours after I saw this. The coolest thing about Popfly is its mashup creator. You literally drag "blocks" onto a drawing surface and join them with lines to join together services like Virtual Earth and Flickr. Its insane.

For example, (as shown on the Popfly website), you can create a Virtual Earth map that shows the location of the people who made the latest posts on Twitter. You basically drag a Twitter block (a literal cube object) onto the design surface, drag on a Virtual Earth block and join them together with a line. However, you find that Twitter provides the user's location as a name (eg Melbourne, Australia) and Virtual Earth requires latitude and longitude. So you drag on a block that converts from location name to latitude and longitude (called GeoNames). You join Twitter to GeoNames and then GeoNames to Virtual Earth with lines, tell Virtual Earth to get its coordinates from GeoNames and bam, you've got a VE map with Twitter users on it. Popfly handles all the AJAX, Javascript, Silverlight etc for you.

You can create your own blocks as well. There is a Visual Studio plugin you can download that helps you with this. You can then share these blocks on the little community thing that Popfly's got. Don't like what someone's shared? You can easily copy it, edit it and reshare the updated version!

If you need to dig a bit deeper into the code, say in the web site developer tool, or in the mashup creator, you can. And its even got Intellisense code prompting. In a web browser. Insane.

Popfly's only in Alpha so its still a little rough around the edges. But its remarkably stable. I haven't fiddled with it all yet, but what I have used has been remarkably smooth and polished. The alpha is still only in invitation only mode, but I was lucky enough to get an invite. If you hurry up, you might get one too. To see the really awesome presentation of Popfly check out their page here (you need Silverlight installed to view the movie).

Just to put a downer on all this new-found excitement, Apple released a PC version of their Mac Safari browser. Why do I hate this? Because its another damn browser I've got to now test for, me being a web developer. I've already got enough to tear my hair out with, what with Opera, Firefox and IE 6 and 7, since bloody people seem to not want to update to version IE7 (go find some statistics and see). The Inquirer has a nice article that explains why Apple dumped this pile on us and its not because they love us.

What probably makes my hackles stand on end the worst, is the fact that they tout it as the fastest browser. In fact, in typical Apple fashion, its not, but they insist on preaching to their zealot ("my life for Apple!") masses that it is. "Huh?" you say, "I've seen benchmarks that prove that it is the fastest!". Those benchmarks are probably wrong. Turns out that Safari's Javascript onload event fires before all the loading is done (unlike all other browsers who only fire onload when everything is loaded). Therefore, all the Javascript benchmarks record Safari as finishing loading before it actually does. Of course, Apple doesn't tell you that, do they? Here's the hard evidence from the guy that did the original browser benchmark.

Hell, now that I've got all annoyed with Apple, I might as well focus some rage on their zealot fanboys. A perfectly innocent ZDNet blogger wrote that the new MacOS X that is coming soon isn't too different from Vista. Although I don't agree with everything that she said (especially the part about Coverflow looking like a rip off of Flip3D), she made a lot of good points. However, she was literally threatened and abused into backing down by angry Apple zealots. She was literally told that she should "find a new career", that she "should be running a car wash in Frezno", and one of the zealots was going to complain to her manager to get her fired.

This sort of thing, people, is completely unacceptable. The Internet is not a place where you can threaten and abuse people. Its a place where you can present your viewpoint. Its okay that someone else has a different opinion to you. Its not okay to insult and threaten those other people. These people are one of the reasons why I dislike Apple. I don't want to be painted with the same brush as these spineless cowards who didn't even leave their real email address when they posted their insults so that Mary Jo (the blogger) could respond to them rationally. Here's a good rule of thumb for the zealots: if you want people to join up with Apple, try to act in a mature manner. If you need to hide your real name and email address, what you are saying is not appropriate.

Cooling down now, I am aware however, that this vocal minority of users is just that: a minority. There are plenty of rational people with Macs. My favourite lecturer has a Mac, one of my best friends has a Mac and some of my uni mates have Macs. I still am interested in Apple's progress and activities. Hell, maybe one day I'll get a Mac. But that day is not now nor in the foreseeable future at this point.

Getting back from another Apple rant (sorry, its a habit I've got to get over), let me bring this massive blog to a close on a positive note. At the end of my presentation that I gave on Monday (which went brilliantly), the marker told me about a Google presentation video that talks about tagging as a concept and kindly sent me the link in an email. It sounds boring, but in fact it was an entertaining and facinating video to watch. I highly recommend it. Here's the link. Its long (about an hour) but well worth the watch.

Especially on a 24 inch screen.

Do you know what's awesome?

Do you know what's awesome?

Eclipse mints boxes

Yeah, that's pretty awesome. Especially the cinnamon flavoured ones.

But I bet it's not as awesome as this. Yeah. I'll let you go change your pants now.

As you can see, I got myself two 24" monitors for my 19th birthday (my parents chipped in a bit as well). They are very nice; when I sit in front of them they basically fill my entire view. They are so bright I don't even need my desk lamp on to see my keyboard.

I've only had them installed for a few hours, so I'll have to write again about how they perform in movies and games etc. The only quibble I've had with them so far, is that the colour on one screen is slightly different from the colour on the other. I've fiddled with the colour settings to minimise this, so it's okay now.

SDP Blog - Interaction Design

This is the final blog I am doing for my Software Development Practices subject. It is on a game, so you probably will find it less dry than the previous four blogs.

Cellfactor Revolution is a computer game that, in my opinion, has some serious interaction design flaws. For those that don’t know, Cellfactor is a free first person shooter game released by Ageia as a marketing tool to attract people to buy their hardware physics processors. Cellfactor is a heavily physics-based game, which means that you use physics (aka being able to move objects realistically in game) to kill other players. For example, you might use your psychic powers and push a stack of boxes onto another player to kill them. You might fire a dart into an enemy player which causes all objects that are not tied down to be drawn to that player, crushing him. It is intensely physics based and needs an Ageia PhysX card to be played properly, hence why it has been released free to attract people into buying Ageia’s hardware.

From an interaction perspective, Cellfactor uses the standard first person shooter (FPS) controls: WASD for movement and the mouse to look around and fire weapons. But Cellfactor introduces new the new physics abilities that confuse the standard key-bindings that a seasoned FPS player would use. Obviously, in an attempt to make it easier to play, the developers set the default key bindings for the physics push and pull abilities to Ctrl and spacebar. This is where the problems start.

As any regular FPS player probably knows, Ctrl and spacebar are normally bound to crouch and jump. So by changing the default controls, Cellfactor’s developers have either forced you to relearn controls (a difficult and frustrating process: an exaggeration would be to imagine trying to relearn how to type on a Dvorak keyboard), or forced you to change them manually to something else. That doesn’t sound too bad until you figure out that there aren’t another good two keys you can bind physics push and pull to. See, in Cellfactor, you don’t just push and pull. You combine those abilities with other key-presses like Alt and right-click to perform special physics abilities like physics shockwaves. I tried to bind push and pull to mouse 4 (the thumb button on the mouse) and the F key and found it a real hand-bender to try and press mouse 4 + right-click + alt during an in-game fire-fight. Note that if you are able to change yourself to use Ctrl and spacebar as push and pull then you don’t get these finger contortions, which is probably why they are set to be the defaults.

In Cellfactor, you can play as different classes of player: a psychic, a soldier, and a mechanised robot. This introduces another problem: each class has different key bindings. For example, using default controls, pressing F will cause you to hyperjump if you are the robot, but pressing F when you are the soldier causes you to throw a proximity mine. Trying to remember what key does what when you are using a certain class at the same time as trying to bend your fingers unnaturally to press mouse 4 + right-click + F at the same time as using WASD is as difficult as trying to parse and read this sentence.

The solution requires a rethink as to how the player should interact with the physics abilities. What I would do is to bind the separate physics abilities such as push, pull and each of the special physics abilities to a number key. The player could then press the number key of the ability he wants, for example key 3 for physics push, and then use the standard FPS left and right-click to prepare and “fire” it. It is standard behaviour in FPS games to change binding of the number keys to different weapons or abilities in different classes, which reduces the player class / key-binding issue since people are used to it already.

I’m surprised that these problems weren’t encountered during play-testing. Either the developers didn’t do enough testing (a possibility because of the restricted budget this free game probably had), or they decided that relearning the controls was an acceptable thing they were willing to force players to do. It is possible they tried my idea that I discussed above and found that it prevented the player from using the physics abilities as quickly as the currently implemented design (after learning it).

In the end, the interaction design problem behind Cellfactor only affects those too stubborn or those that find it too hard to relearn their controls. It would also affect those who switch between games, since having to mentally switch between Cellfactor controls and Counter-Strike controls all the time would be annoying and frustrating.

SDP Blog - Critique

This is the fourth blog I am doing for my Software Development Practices subject.

Eudora is an email client that I use to access my various email accounts via POP. It does the job admirably and I have been using it for years. Relatively recently, an update to Eudora added instant search functionality, presumably to combat all the other instant search products that have been hitting the market over the last few years. It was a good idea, as doing a normal search through your email tended to take a while.

The Eudora development team took the easy way out: they licensed a third party instant search product called X1 and integrated into Eudora. Unfortunately, this is where the good idea started to come apart. The fast search often does not find results, even though you know there are emails that would match your search parameters. This seems to happen mostly for newish messages, making me think that perhaps the X1 search engine is not having its search index updated in a timely manner. This is an annoying and misleading problem, since most users trust the output of their search request. If their result set is missing some emails, they probably won’t notice and will miss things.

I would probably blame this problem on a lack of testing. Eudora was late to the indexed-search party and perhaps the development team rushed the implementation and skimped on the testing just to get the product out of the door. Not a good move. My theory is lent credence by the fact that the Eudora team chose to integrate a third-party search solution rather than write their own, like every vendor seems to be doing currently. They needed a solution quickly, so instead of spending time writing their own, they used X1.

When specifying the requirements for the new indexed-search feature, the Eudora team probably forgot to define some clear quality requirements that should have specified the regularity at which the search index was to be updated, if indeed that is the problem. Of course, this is such a blatant problem that it really should have been picked up in the test phase. This indicates lax procedures behind the running of the software testing activities.

To fix these sorts of problems in the future, the Eudora team should be very careful and specify all quality requirements during the specification phase. This should be backed up by a more stringent test phase before the product goes live. The team should try not to rush the product out the door; in my opinion, its better late than critically broken.

Unfortunately, since Eudora is no longer being sold by Qualcomm (the company behind Eudora), this bug is probably not going to be fixed. Luckily, there is an option to turn off the indexed-search and use the old search. It may take a few seconds to return results, but at least it returns them all.

SDP Blog - Suggestions for Improvement

This is the third blog I am doing for my Software Development Practices subject.

Scintilla Text Editor, normally known as SciTE, is a light-weight text editor built for programmers and scripters. It supports syntax styling, bookmarks and some nice code editing tools such as block commenting (where you select an area of text and the editor will surround it with syntax-specific comment symbols such as /* and */).

The pain points that SciTE is probably trying to solve for its user base of programmers are:

  • Other simple text editing solutions (eg Notepad) do not support syntax styling
  • Other text editors that do have syntax styling do not allow the programmer to create a new style for a new syntax
  • Other text editors do not have tools for fixing indentation, doing automatic block commenting and changing file line-ending types
  • More comprehensive text editing solutions cost money and can suffer from feature bloat

SciTE’s main functions are:

  • The display of syntax styled source code files
  • Block commenting can be performed
  • Ability to read multiple line-ending formats (eg CR, LF, CRLF)
  • Able to fix incorrect indentation in source code files
  • Able to search (and replace) using regular expressions
  • Able to set bookmarks to certain lines

SciTE’s form is made up of the following:

  • Syntax styling properties are read from configuration files that are user-configurable
  • Syntax styling can be turned on and off or manually changed from one syntax to another
  • Runs on Windows and Linux
  • Displays multiple text files using tabs
  • Multiple windows can be opened if preferred
  • Code blocks can be “folded” (compacted into one line)
  • Displays code tips (small text pop-ups that describe a method’s arguments)

SciTE mostly solves the pain points that its users have. It is lightweight and has the bare necessities and a few niceties that any programmer or scripter wants in a text editor. It also provides an extreme level of customisability via its configuration files which let you create new syntax styling rules for languages that, perhaps, SciTE does not support by default. However, SciTE’s configuration files are where its worst failing is. Although allowing the user to change everything down to the position that the SciTE window will open at on start up, it does so through a very hostile interface: its own text editor.

Configuring an entire program via a text configuration file is difficult: you must learn the format and search through it manually, looking for the setting you want to change. If I were the one to write SciTE, I would have put effort into putting a real GUI behind the program’s configuration, especially the syntax styling. A similar editor to the one that the IDE Eclipse provides would be appropriate, where you can change keyword colours and tab settings. It would obviously need to be extended to allow the definition of a new syntax: a UI would need to be created to allow the setting of syntax rules like keywords and block delimiters.

Overall, SciTE does solve the pain points of its users. It does provide a lightweight text editor that has syntax styling and some code specific features like indentation fixing. Its configuration methods, however, leave a lot to be desired in terms of usability. It can be difficult to configure new syntaxes or change existing ones using SciTE’s text file based configuration approach.

SDP Blog - Vision Statements

This is the second blog I am doing for my Software Development Practices subject.

Visions statements are used to broadly state the goals and objectives of a project. Vision statements are distinct from mission statements in that they describe a vision for the future rather than focusing on the immediate.

There is a simple template you can fill out to help you focus your ideas into a vision statement. You need to answer these six sections:

  • For some audience...
    Who are the groups of people that your product is going to target?
    eg. PC gamers
  • Who have a problem...
    What seems to be the problem that these groups are having?
    eg. They do not have a real-time strategy game that allows large-scale strategy
  • Our product called x...
    What is the product's name and what category of solution does it lie in?
    eg. Supreme Commander is an RTS PC game
  • That solves the problem by...
    What is the main reason that would persuade these groups to use your solution?
    eg. It allows large-scale strategy games over huge maps with hundreds of units
  • Unlike...
    Who are your main competitors?
    eg. Company of Heroes
  • Our product is different because...
    How is your product better than your competitor's product?
    eg. Supreme Commander allows the player to focus on strategy rather than tactics

Once you’ve answered those questions, you can string your answers together and use some English grammar skills to make it sound smooth. To continue the example I used:

Supreme Commander is a real-time strategy game for PC gamers who want to play large-scale strategy games over huge maps with hundreds of units. Unlike Company of Heroes, Supreme Commander allows the player to focus on strategy rather than tactics.

You might want to see what a real-world company uses for a vision statement. McDonalds uses this:

McDonald's vision is to be the world's best quick service restaurant experience. Being the best means providing outstanding quality, service, cleanliness and value, so that we make every customer in every restaurant smile.

All your projects should have a vision statement. When evaluating your solution you can always refer back to the vision statement and see if it matches your original vision.

SDP Blog - Basic Software Review

This is a blog I have to do for my Software Development Practices subject. Its shorter than I'd like and hence not particularly comprehensive but I was forced to fit it on a single A4 page or lose marks.

Software Name: Opera
Version: 9.20
Date Released: April 11 2007
Developer: Opera Software ASA
URL: http://www.opera.com
Classification: Web browser

Opera is a little known and little used web browser. That doesn’t stop it from being a gem, however. It performs the same functions as the more popular browsers like Internet Explorer and Firefox: web browsing, downloads, favourites, history and so on. It supports tabbed browsing, which is the latest “rage” in the browser market, is quite compliant with web standards, and is very fast. In fact, according to howtocreate.co.uk, it beats Firefox and IE in almost every speed test (on Windows).

The Opera main window

The Opera main window

Obviously, I’m not going to bother telling you about the basics of the browser, since you’re probably viewing this blog using one. These days the main innovations with browsers are in the usability and speed area. I’ll instead highlight the main features and the strengths and weaknesses of Opera.

Opera takes great strides in making a browser more usable. Sure, it’s got all the standard features of today: tabbed browsing etc, but it innovates with new ways to interact with the browser. The main one is “mouse gestures”. Basically, you move your mouse in certain patterns while holding right-click and browser performs actions. For example, you can hold right-click and then move the mouse downwards then release the click, and you open a new tab. If you do that over a hyperlink on a webpage, you open it in a new tab. You can close a tab by moving the mouse down and then right. It takes a little time to learn the gestures, but once you’ve mastered them they becomes as essential as typing. It simply is a natural way to interact.

Speed Dial

Speed Dial

Another usability improvement Opera presents is the “Speed Dial” panel you view when you open a blank tab (see right). There are nine boxes you put your favourite websites into and the box will show a small preview of the specified website. When you click the box it opens the website in the tab. It sounds simple, but like all good usability features it’s so simple and easy to use it becomes transparent to the user.

There is one large feature that Opera lacks: a robust extension system like Firefox or, to an extent, Internet Explorer. If a feature is missing in Firefox, you can simply get an extension for it. For example, you can get mouse gestures in Firefox via an extension. Opera does not support extensions, which limits it a bit in the eyes of a power user.

As a result, I favour Firefox when developing webpages, because of its superb web developer tools via its extensions, and then I use Opera for everything else since it does it better. It is “Simply the Best Internet Experience”.

Advantages:

  • Fast
  • Mouse Gestures
  • Speed Dial

Disadvantages:

  • Doesn't support extensions

Overall Rating: Excellent

RSS Feeds Have Changed and LemonWire

I have converted the RSS feeds on this site into FeedBurner feeds. Please unsubscribe from your current feeds and resubscribe to get the new URLs. This change should allow me to track the feeds' usage, which could be fun. I've gone a little statistics crazy since the bandwidth stealing episode, so now everything is all statted up. Sweet.

This will be a short blog this time, since I've got a ridiculous amount of Uni work to do. Swinburne has taken away the swat vac week that everyone uses for study before exams. So I get a grand two days to study for one of my subjects. Thanks Swinburne! [sarcasm].

One of our assignments is to write a P2P filesharing system (yes, you read that correctly) by the end of the semester. My team has spent the last 2 or so weeks planning; we haven't even written a line of code yet. We've written two documents describing the two protocols we're going to use and 23 whiteboards of object design. A lot of other groups have already begun coding but I think that's a bad idea. If there is one thing that the PSD course has taught me it is that starting a project by hacking some code is a good way to screw it up, especially in object oriented programs. Plan first, cut code later.

This seems to me to be especially important when you are working in a group. There are four people working in my group (including me). Without an OO design, everyone is going to do their own little thing and its just going to become a complete mess. Now that our design is done we can split the work between us and write the code knowing exactly what services someone else's part of the program will provide to my part.

The assignment's subject gives no guidance on how to code effectively in a group, which is crap since its a difficult thing to do effectively. Luckily, a few of us have some experience with source control before from a previous subject and I use source control at work. I've set up a Subversion repository for us all to work from on my home server. Hopefully, we won't make a mess when we use it.

We've named the program "LemonWire". This name has two tricks behind it. The first is obvious: a play on the common LimeWire P2P filesharing system. The second is less obvious: it works with the program's catchphrase: "its a lemon". Sounds random? Its not. Normally, when you say something's a lemon you mean that its not very good. The catchphrase basically reflects our cynicism with the assignment, since all of us reckon its way to big to be given to us to do in half a semester especially when we're missing swat vac. That and the fact that its a P2P filesharing system operated from a console! Also, a whole bunch of its architectural decisions are bad ones because we were forced to comply with the assignment spec. A good example is the fact that the network has a central server whose primary function is to bootstrap clients into the network. That ought to be done by another client, not a server. It would make sense if the server also indexed shared files and performed searches, but it doesn't.

I may have sounded a little too cynical about our ability to complete the assignment in the last paragraph. Its true that it is much too big for an assignment, but I think if we all work hard on it, we have a good chance of completing it in time, thanks to our time spent planning. Wish us luck!

The next few blogs are going to be blogs that I have to write for my Software Development Practices subject. One of the requirements is that I put the blogs online, so I'm putting them here. They may be a little dry, but hey, maybe you'll learn something!

So much for a short blog.

Leave the gun. Take the Audioscrobbler.

Over the last week or so I have started scrobbling my music. What the hell is scrobbling? Audioscrobbling is where you submit the music you listen to, as you listen to it, to a central database where is it tracked. Doesn't sound so cool now, does it? That's probably why they called it audioscrobbling, not as-you-listen-music-tracking. :)

So what's the point of scrobbling your music? As you submit the tracks you listen to to the audioscrobbler main database, it watches and recommends other artists that you may like and lets you see statistics on your listening habits. You can listen to free online radio in the genre that you like best (determined by the system by looking at your listening habits).

So how do you go about audioscrobbling? They've made it pretty simple. Last.fm is the place where it is all centred. You download a client for your computer which installs plugins into your favourite music player. I use Winamp (it really whips the llama's arse!) to play and manage my music, so it installed a plugin for that. When you start your media player, it starts the Last.fm client software as well, which hides away in your system notification area. As you play your music, the plugin in Winamp will send what you are playing to the client software which will submit that to the main audioscrobbler database.

As you listen to your music you can tag the tracks with tags (short informative labels) which helps classify them. So for example, if you tag a track as "vocal trance" your tag gets added to the database of all the tags that everyone else has tagged that track with. The song could then (if Last.fm has it) be found on the "vocal trance" tag radio. You can also mark tracks as Loved or Banned and recommend them to to other Last.fm users. You do this through the client software or through the website if you're using that to listen to music.

Most of the functionality of the software can only be accessed via the website. The client is very weak, in my opinion. It lets you do standard operations such as play radio (by artist, or by tags), set tags, Love, Ban, and Recommend, but not much else. Its got a weak display that talks about the artist of the track being played and lists the track's play count, but compared to the website, it does nothing.

The website. That's where the functionality of audioscrobbling all comes together. Its a bit of a web 2.0 application, a community based app where users create the content. However, it is presented in a slish usable fashion and is actually useful, so don't blacklist it along with MySpace as an annoying, rubbishy "Web 2.0" application.

The website lets you view your statistics such as top artists listened to, play count, etc. But its best feature is its recommendations. By looking at your listening habits, the system will recommend you music to listen to. You can listen to specific tracks on the website (normally 30 second clips, but if the artist is feeling generous, the whole track) using a Flash object, or you can listen to a radio stream via a Flash object or via the client software.

You can do other Web 2.0 things like add friends, write journals, talk in forums, post in peoples' (and artists') shoutboxes. You can join groups of other users who have a similar taste in music and tune into that group's radio or talk with its members. I don't find I use those features much, other than the friends feature. Its pretty cool to be able to see what your mates are listening to right now and be able to recommend them tracks.

I find the most useful feature of the website is music discovery. It lets me find new artists to listen to and when I get bored of my current music collection I'll jump into a radio station and listen to that. I can view the artist I've found on the website and preview their music and see what artists are similar to them.

Audioscrobbling is an open protocol. You can write your own applications that use the data generated by their database, or you can write your own plugin or application to submit tracks listened to. Audioscrobbler.net has the protocol specifications and data feeds.

I use an iPod to listen to music on the train to University, so naturally I wanted to scrobble the music I listened to on my iPod as well. I don't use iTunes (rubbish software) and instead use Winamp + ml_ipod, which made my life a little difficult trying to scrobble my iPod music. The plugin that ml_ipod has that does scrobbling isn't compatible with the Last.fm client software (the client software must be relatively new) so I couldn't use that. I have ended up using Audiopod+, a simple Java application that has a distinct "hacked together overnight" feel about it.

Its a bit of a pain to use: first you need to set it up. Launch it and set the preferences. Tick the two checkboxes to delete the playcounts after scrobbling and set it to only scrobble when you tell it to. Then you have to connect your iPod (make sure Winamp is closed), start Audiopod+ and set the path to your iPod database in the preferences. It probably won't find any music to scrobble. Close the app. Listen to some music, then connect the iPod again (making sure Winamp is closed). Start Audiopod+. It should detect the music you have played. You can then scrobble the tracks you want. Its messy and hacky, but it works.

Words of warning: note that because iPods only record the last date a track was played, if you listen to a track twice without scrobbling it you will only be able to scrobble it once. Also note that you should NOT scrobble any other music from any other source until you have scrobbled your iPod. The audioscrobbler database will not accept music submissions from a time previous to the time that the last track was scrobbled. So if you come home after listening to your iPod on the train, listen to a little music in Winamp (which gets scrobbled), then decide to scrobble your iPod music, you will not be able to. This is apparently a spam prevention mechanism.

My Last.fm account is ratfink88 so if you want to give me a shout in my shoutbox go ahead. Add me as a friend and if you are a trance fan (especially vocal trance) recommend me some tracks.

"The Future's Bright. The Future's Audioscrobbler."

Tip: Check out the bottom of Last.fm for a random selection of Audioscrobbler quotes like the ones I used for the title of this blog and the last sentence. Some of them are gold.

Hotlinking and Bandwidth Stealing

You might have noticed this website went down for four days this week. That was because of a sudden jump in the bandwidth usage. Normally, I use around 100MB of bandwidth per month. Its not much, because this website's not that popular (yet). But, from the 5th of April, the website started eating 100MB of bandwidth per day. That meant within 5 days, I'd used 100% of my 500MB per month bandwidth quota.

Sure, I wouldn't mind at all if this website became popular and everyone started reading my blog, but unfortunately, developing 25 times more readers overnight was really too good to be true.

I investigated, using the statistics program that comes with cPanel as part of my hosting. Apparently, a lot of people were accessing the wallpapers section. It didn't seem to be any sort of malicious activity, since no single IP was repeatedly attacking any particular file.

I didn't have much time, what with uni work, so the site lay fallow with a "Bandwidth Exceeded" error message for four days. When I got some time, I took down the wallpapers page and gave myself some more bandwidth. (I own the hosting that DC.net is on, so I can do things like that.)

I went back to the statistics the next day, to see whether my situation had improved now that the wallpapers section had been taken down. According to the stats, the Yuna wallpaper had received 214 hits hitting a 404 File Not Found error in a single day. The stats also revealed the culprit. (Note the empty space on the page where my wallpaper, hotlinked directly from my site, had lain).

I had never really understood why some websites got really pissed off when people hotlinked their images, until now. For example, there was one time I tried to post on The Forums (a private forum that my old high school friends and I use to keep in contact) a funny image. I couldn't be bothered downloading it and uploading it to a free image provider like ImageShack, so I hotlinked it directly. It looked okay in my browser because my browser had the actual image cached. But everyone else saw something... very different (the link is to the Wikipedia article, not the actual image, I'm not cruel). Naturally, my friends were... upset.

It is simply amazing the amount of bandwidth a few hundred people downloading a 1MB wallpaper can use. It really illustrates the power, and the cost, of the web. It makes me wonder how hosting sites like ImageShack can exist. Advertising must really be lucrative.

My plan of action is to set up a hotlink blocker that redirects any website that hotlinks my wallpapers to a temporary image that politely asks them to sod off. You'll see the wallpaper section come back when that happens. Don't hold your breath, though.