Spotify: music that's free as in beer… Free invites!

Spotify Logo
Spotify Logo

Spotify is a free, legal, ad-supported way to stream music. Their catalogue of music is HUGE and whilst there is no native-linux client there are very comprehensive instructions for how to run it under wine on their own site (this is very easy too, no hacking around).

At the moment, the service is in beta and you need to be invited to join it, or pay for one of the premium services. However, for a limited time, if you’re in the UK you can use this link to sign up: tinyurl.com/spotifylink. There are native clients for Windows and Mac OSX… perhaps with a little bit of lobbying a native Linux client will be released too.

MySQL Data Types

I couldn’t find a nice table with all the data types and the limits associated with them in it, so I thought I’d trawl the web for each individual one and make one. This table is by no means exhaustive, but it does contain most of the common ones and will be updated as I need to use more of them for WebLex it also assumes that mysql 4.1 or greater is being used. Else some default values might be incorrect.

Data Type What can it hold?
INT/INTEGER An integer in the range -2147483648 to 2147483647. Or, if set to unsigned the range is 0 to 4294967295.
TINYINT An integer in the range -128 to 127. Or, if set to unsigned the range is 0 to 255.
SMALLINT An integer in the range -32768 to 32767. Or, if set to unsigned the range is 0 to 65535.
MEDIUMINT An integer in the range -8388608 to 8388607. Or, if set to unsigned the range is 0 to 16777215.
BIGINT An integer in the range -9223372036854775808 to 9223372036854775807. Or, if set to unsigned the range is 0 to 18446744073709551615.
TEXT Contains text upto a maximum length of 65535 characters.
TINYEXT Contains text upto a maximum length of 255 characters.
MEDIUMTEXT Contains text upto a maximum length of 16777215 characters.
LONGTEXT Contains text upto a maximum length of 4294967295 characters.
ENUM(‘x’,’y’,’z’,…) Can only have a value as specified, by you, in the list of values in brackets. In this case it could only take ‘x’, ‘y’, or ‘z’. It can also take NULL or the special “” error value specified when the table is created. You can specify a maximum of 65535 values for an ENUM to take.
SET(‘x’,’y’,’z’,…) Very similar to ENUM except that more than one value can be assigned, so data could be both ‘x’ and ‘y’, or ‘y’ AND ‘z’. However, only 64 different values can be specified in a set.
CHAR(x) Holds x characters, where 0≤x≤255. The default value of x (i.e. if just “CHAR” is used) is 1. If a value is entered that is less than x characters long, it will be appended with spaces until it is x characters long. However, upon retrieval, these spaces will be removed automatically.
VARCHAR(x) Similar to char, except x is considered an “upto” value. Values are stored using only as many characters as they contain, plus an extra byte recording the length of the value. Any trailing spaces are removed from the value when it is stored in the database.

New Year, New Name, New Blog, New Post…

Well, it’s 2009 and I’ve abandoned my old username and website and decided to start using my real name… why? Why not? Ok, firstly, and perhaps most shockingly, it would appear that the British education system is not capable of raising a nation of people who can spell, or in many cases even pronounce, the word ‘vicious’. It’s a major headache if you have to give your e-mail address to someone over the phone…

Secondly, my e-mail address is about to start appearing on CVs and vicious doesn’t send out quite the right image (I hope!). I’ll slowly be moving everything over to this site, but until then the old one will stay online.

I also intend to post more regular updates about the progress of Lex here.