This afternoon saw me up near Lincoln at the Petwood Hotel - home of the Dambusters and a delightful location for a wedding. Which was useful, as I was there because a couple of old university friends, Graham and Rosie, were getting married.
The bride looked lovely, Stef (the best man) was a bit nervous but recovered to give a good speech, and Graham took the ribbing with good grace.
I forgot to take my camera, so haven't any photos of the happy couple to share; and as I'd only received a late invite, I already had a ticket for tonight's Folk Festival and so had to leave early to rush back to Cambridge. I should still catch the Divine Comedy...
And not just a shiny new T350C. The entire company!
BBC NEWS | England | Lancashire | Russian buys up British car firm
It's a shame that the new owner isn't British, and a little worrying because he's only 24, and more importantly, Peter Wheeler - the previous owner - had done such a good job. Still, he's reported to be an enthusiast and seems quite ambitious; if the investment helps bring TVRs to a wider audience, presumably most importantly America, then it will take the company to the next level. I wish them luck.
When looking at these photos should I:
And isn't it spooky that when I happened upon this site, I was listening to Billy Bragg's Shirley?
The Smart Furniture Side Show has some interesting thoughts on some of the technology-enhanced furniture that could be coming in the future, and it isn't the usual Internet-enabled fridge!
I've revamped the way that "deleting" songs works on NewMusicRadio. Now the "deleted" songs are just added to a list of files to exclude, and the original files are left as-is.
This means that:
$deleteFilter
is deprecated because none of the mp3 files are actually harmed when "deleted"--ignore-length
switch on wget
anymorechmod g+w
because the script doesn't have to overwrite filesI've added a few lines of statistics output to my cron
script because I'm curious as to how many files drop off the list as "too old" each day, and how many new files are added. These are the extra find
and wc
lines.
The final big change is with the line:
find /home/tunes/downloads/ -name \*.mp3 -mtime +42 -exec rm {} \;
This deletes any mp3s older than 42 days in the directory /home/tunes/downloads/ (or any directories below that). In detail:
/home/tunes/downloads/
this is the directory where all my downloaded (mp3 blogs and Soulseek) mp3s live-name \*.mp3
find should only look for files called <something>.mp3-mtime +42
only look for files older than 42 days. The + is important, -42 means look for files younger than 42 days-exec rm {} \;
for each file found, perform an rm <filename>;
to delete itThere's still more to play with to link the mp3s downloaded from mp3 blogs to their source, but I think the bare bones of it are now working correctly.
The first CarPartArtwork has now been hung, in a small, exclusive gallery in Manchester. Andrew, the curator, has been kind enough to provide a picture of the artwork in situ.
After a gap longer than that between Stone Roses albums, William Shatner is back with more of his spoken-word/music fusion, and I wonder if it's all as compelling as this cover of Pulp's Common People posted up by Teaching The Indie Kids To Dance Again.
(Via Said The Gramophone)
Way back in June, a few of us went over to Frankfurt for the weekend to celebrate Stefan and Julia's marriage. We didn't go for the wedding itself, instead we were invited to their Polternabend.
The polternabend is a traditional German celebration before the wedding to bring good luck to the marriage. All the guests bring old crockery (or in our case new crockery bought from Woolworths in the middle of Frankfurt that morning) to smash. The noise and smashing of the crockery scares off bad spirits, although smashing glass brings bad luck. The bride-and-groom-to-be have to clear up all the broken pottery - quite a task when many of the guests come laden with baskets of old cups, plates, bowls... and even the odd basin!
Arriving in Frankfurt on the Thursday night meant we had some time to do a bit of sight-seeing. On the Friday we drove over to Heidelberg, a picturesque little town about an hour or so away, overlooked by an impressive castle. The best feature of the castle being the world's largest barrel in the cellar - you could be besieged for a long time before the 221,000 litres of wine it contained would run out!
The Friday evening saw us out drinking in the centre of Frankfurt before ending the night at the seemingly out of the way Vinyl Bar for some suitably German techno.
As a result we weren't up too early the next morning, but just had time to buy our Welsh(!) plates and wolf down a bratwürst from the Frankfurt market before heading over to help Stefan and Julia get things ready for the evening's festivities. Then it was a quick call back to the hotel to freshen up and back to Julia's parent's house for the crockery crushing.
The polternabend was fantastic fun. Once everyone was through smashing things, the party moved into the nearby church hall for a more recognisable celebration: cold lager flowing freely by the keg; buffet; and a DJ encouraging plenty of dancing. It seems that Nena's 99 Luftballons serves a similar purpose for the Germans as New York, New York does for the British - the song that pulls everyone onto the dancefloor in a mass group hug singalong and signals the end of the night. Or, given that it was approaching 6am, should that be the start of the morning?
Thinking back to that night has just reminded me of the impromptu (light-hearted) karaoke duel I had with one of the German guests when the DJ accidentally put on the instrumental version of Bohemian Rhapsody. Luckily it was about four in the morning, so the remaining attendees would be too inebriated to remember it properly...
Our flight back to the UK wasn't until the Sunday evening, so that gave us plenty of time to chill out and potter round Frankfurt. A lovely way to wind up a hectic, but immensely enjoyable trip.
I took some photos of the day in Heidelberg and our wander round Frankfurt, and there are pictures of the polternabend amongst the ones that Cassie took.
Despite being the car fanatic in the family, my little sister is outstripping me in the varieties of vehicles driven stakes. She owns both a car and a horsebox, and has just got her fork-lift truck licence! Thankfully, I'm still winning in the performance of vehicles driven side of things...
Probably. Find out how far up (or down) the rich-list you are with Channel 4's Rich-o-meter.
I, however, have had it significantly better. It's not hard to beat my current earning level, but I was surprised to see that even by today's standards I was well withing the top 3% when I worked at Microsoft.
(Via The Ministry Blog)
When writing code, it's always a good idea to remember that when things aren't behaving as you expect then the chances are you've done something wrong. Unfortunately, it's always tempting to try to explain it away as a bug in someone else's code, or that there's some other reason that lets you off the hook.
I try not to fall into that trap, but in my rush to get NewMusicRadio finished over the weekend I succumbed. I let myself think that the reason the cron job was taking most of the day to check a few websites was either NTL being flakey as usual, or that some of the MP3 blogs had some form of advanced wget detection script running which left connections hanging for ages.
Stupid Adrian. A brief look into it this morning shows there's some problem with using the --ignore-length
option of wget that results in neither wget nor the web server realising that the transfer has finished in some cases.
So, until I get some time to either work out how to stop the connections hanging, or code an alternative approach to deleting tracks, I've removed the --ignore-length
options from the example cron script so the delete functionality won't work.
There's been a lot of talk about MP3 blogs lately; I've followed newflux and sleeve notes for quite a while now, and there's a growing list of others in my blogroll.
Getting new music to listen to is always good, but the way my system was set up meant that listening to the MP3s required interrupting whatever music I was already listening to (and I'm always listening to something), and often I need a couple of listens to a track before it worms its way into my head.
For a while I've been meaning to write some code to get the latest MP3s from the RSS feeds and somehow insert them into my listening schedule for the day. Then I came across Jeffrey Veen's post about using wget
to download the MP3s. That took care of acquiring the tracks, but didn't give me an easy way to listen to them.
So, some experimenting and perl hacking later, I now have NewMusicRadio. There are two parts to this, and when combined they provide my own personal radio station of recent additions to my music collection and an assortment of new discoveries from Soulseek and the MP3 blogs I subscribe to.
First off is the cron
job script which runs each day - downloading the new tracks from an assortment of MP3 blogs, and generating the list of MP3s recently added to my collection. Jeff explained most of the wget options, and I've added two others:
-nv
This just cuts down on the amount of output generated to reduce the size of my cron logs--ignore-length
This tells wget
not to download a new copy of a file just because the sizes don't match. That allows me to overwrite files I don't like with a zero-byte file and wget
won't just get me another copy next time it runs. The chmod g+w
after each wget
is just because my cron job doesn't run as the same user as the CGI script that might want to "delete" an MP3; they are in the same group, so the chmod
makes sure the downloaded MP3s can be overwritten.Rather than give wget
a list of URLs for each MP3 blog, I'm running a different wget
for each blog so that I can filter the downloaded MP3s into a directory for that blog, just to help me keep track of which tracks I got from where.
Then I use find
to create a list of tracks which have been added in the past 42 days:
find /home/musicfiles/ -name \*.mp3 -mtime -42 -print > /home/musicfiles/recentfiles.txt
/home/musicfiles/
This is where all my MP3s live. When I buy a new CD, it gets ripped and the MP3s are put in /home/musicfiles/<artist>/<album>/<track_n.mp3> and everything I download with soulseek, or from an MP3 blog gets put into /home/musicfiles/downloads. This parameter tells find
where to look for updated files.-name \*.mp3
This option tells find
just to look for files called <something>.mp3. The \ is needed before the * to ensure the * isn't expanded by the shell and makes it to find
as a *-mtime -42
tells find
to only include files which were modified in the past 42 days (six weeks)-print
output the filenames which match> /home/musicfiles/recentfiles.txt
redirect the output into the file we'll give to the playlist generatorNow that I've got a load of MP3s and a list of which ones are new, I use a little perl script installed on my Apache webserver to pick random songs from the list and deliver them to my media player. Musicmatch seems to get the artist/title information when it's available, but Winamp just displays the URL the track is being streamed from, which isn't as useful.
When I point my web browser at the script, I get a form to fill in (see an example). Once I've chosen how many tracks I want in the playlist I can either listen to the playlist straight away - generating an m3u playlist which automatically fires up Musicmatch - or have a look at which tracks are chosen. The view playlist option looks like this; shows me which tracks are in the playlist; lets me listen to the playlist; and lets me delete songs that have been downloaded (as opposed to ripped from CD) if I decide I don't like them.
If anyone fancies having a play with it, I've made it available over here. I'd be interested in hearing any thoughts about it, or suggestions for improvement.
Of course, in my grand blogroll update I managed to forget some of the MP3 blogs I've started reading recently. So, better late than never, the following are added to the blogroll:
I've just revamped the list of blogs that I read. They're now split into rough categories, and I've added a load which have made it into my aggregator in the past few months.
The new additions, in no particular order are:
How cool would it be to turn your own house or garden into a concert venue?
If my place weren't such a tip at the minute, I'd think about having one in the back garden!
I wonder if you could do some sort of community streaming of it with BitTorrent to provide sufficient capacity for the initial stream to just be from a home with standard broadband...
Uborka is into its third phase of guest-blogging, where a theme is chosen for each week, and any of the past guest-bloggers can post about that theme.
The first theme is The Uborka Mix CD. Obviously I couldn't pass up the opportunity to choose a track, so go here to read about Freedom.
Okay, not really. I'm just most like the MP for Preston. Shame I didn't really enjoy my stay in Preston in the summer of 1993.
The Ministry of Information reports that there's a live webcast of the graduation ceremonies at my alma mater. If you tune in at 5pm today you can see who is graduating from my college, Furness. Pretty cool.
I think this is the last year that HRH Princess Alexandra will be presenting the degrees (it's true, I've shaken hands with royalty), as Sir Chris Bonington CBE will be taking over the role of Chancellor.
In days of not so old, when most people didn't stray far from where they were born, everybody could be the best. At something. You are the best baker; I am the best mechanic; she is a farmer, as is he - he is the best farmer, but she is the best singer; your brother is the fastest runner; my cousin is the best climber.
Everyone could find their niche, and make it theirs.
Then we all moved to the global village. Now there are far more people than there are things to be best at. Now there's always someone better than you. At everything.
Eric Sink parcels up everything I know about hiring (and then some) into this article on hiring for small ISVs.
Stupidly, I'd assumed that the as HTML forms are over a decade old, there wouldn't be any cross-browser compatibility issues. However, Firefox seems to do things slightly differently to IE and Safari, which meant that you couldn't lock images with them.
Thanks to Neil for pointing it out, and (hopefully) it's now fixed.
I was expecting to find it featured in Eurobad '74; and was a little reassured that some of the bathrooms that are there are worse.
I hope someone told this lady that that's the shower, and not the phone!
(via Good Experience)