Reboot Jan 10 2009

I’ve designed and built a brand new personal site here at ejdraper.com, and have moved over this blog - all url’s from crazycool.co.uk now point to ejdraper.com/blog, and the blog integrates with the rest of my personal site, which also includes a bit about me, my portfolio of work, my code and a lifestream on the homepage aggregating content from this blog, GitHub, Flickr, Delicious and Twitter.

As part of the migration I’ve created a new feed with FeedBurner, at http://feeds.feedburner.com/ejdraper. I’ve left the old crazycool feed running too though, and pointed it at the new site, so those of you subscribed should continue to receive the latest articles, but if you get chance it may be worth switching your subscriptions to the new feed to ensure that it always works in future.

For those interested, this new site runs on Merb, and is hosted using Apache and Passenger. The blog portion still runs on Feather, however it runs as a slice inside the main ejdraper.com app. I’ve spent a fair bit of time recently on bringing the Feather codebase up to speed to make it work with the latest Merb/DM, to finish up slices support, fix some of the bigger bugs, and to make it more stable and reliable. Soon enough I’ll be wrapping up the latest code into a 0.5 gem release, so watch this space!

Any comments on the new site and design will be welcome, and I’m going to be more blogging a lot more regularly from here on out!

Comments

Can you hear me now? Oct 29 2008

So this blog has been a little bit up and down recently, partly because the Feather installation is overdue an update, and partly because the server could do with being rebuilt, but I figured that rather than me finding out the site has been down for a day and then manually booting it, there must be an automated way of picking up these issues and restarting the site. Sure enough, there is!

God is a great gem that allows Ruby scripts to be written to describe the configuration, settings and scenarios required for monitoring a particular process, and to outline the steps to take when certain conditions are met. I was able to knock up a script to reboot the app server for this blog whenever it doesn’t get a 200 response back from the main index, and I think that’ll do the trick nicely!

So if you see this blog is down, just give it a minute or so - God is on the case and will fix the issue shortly :-) Thanks Mojombo!

Comments

Rename Oct 23 2008

So I’ve decided to rename my GitHub account, from http://github.com/eldiablo to http://github.com/edraper. If you’re using or working against feather-plugins or merb-manage then you’ll need to reset your remote location for doing a git pull or whatever. Not sure if you’ve forked whether that’ll continue to work, probably best to check and rebase against the repo at the new url. Any questions let me know and I’ll try to help you out if it’s screwed something up.

And just for fun, here is a video of me scoring a great free kick with the brilliant Jimmy Bullard for Fulham against Arsenal.

Comments

Ready to Rumble Oct 20 2008

Wow, so what a 48 hours it was doing the Rails Rumble! Really great to get something up and running in two days. Me and my boy Mike really got it hooked up and came up with something pretty cool we think.

Likis is a language wiki designed to encourage collaboration and contribution to build an extensive language resource, to help people learn languages. It allows wiki-style editing of language pages, phrases and words, and it also includes audio pronunciations, so you can upload a recording of a specific foreign language word or phrase to help others!

Check it out, and let us know what you think! Now I need to get some sleep…

Comments

Advent 4211 Netbook Jul 30 2008

Yesterday I picked up an Advent 4211 netbook. It’s exactly the same hardware as the MSI Wind, only it’s a re-branded, cheaper version. It’s a really cool piece of kit, and I thought I’d stick some unboxing pics up for all to see. You can check them out on Flickr here.

So I’m waiting on a few other bits to arrive (another stick of RAM, a replacement wifi card, and an external DVD reader), and then this weekend I’m going to attempt to switch out Windows XP on this bad boy and replace it with Mac OS X (using this guide). That’ll make it a really cheap, ultra portable Macbook, for coding on the go. Awesome!

Comments

Lesser Known Classics #2: Queens of the Stone Age - Songs for the Deaf Jul 26 2008

This is the second post in my series on classic albums that perhaps don’t get the recognition they deserve. The first in the series was about Rufio’s masterpiece, MCMLXXXV.

This post is about the Queens of the Stone Age album, Songs for the Deaf. Now it’d be hard to argue that QotSA are “lesser known” – they are a huge, well recognized band within the rock world, and have been making great music for a little over ten years now. Songs for the Deaf itself got critical and commercial acclaim, and achieved gold status. However, it seems that truly classic albums rarely leave the rock and roll consciousness, and are used as a milestone to compare other albums too – and Songs for the Deaf, unfortunately, doesn’t appear to be held in that regard. I think it should be.

Unlike the Rufio album in the first post I made, I can’t honestly say I think each and every song on the album is a winner – the difference here is that there are a number of mind blowingly brilliant songs that just makes the entire album a classic, and all of the songs seamlessly flow into each other, making the whole thing an audio experience to behold.

The superb opening song (“You Think I Aint Worth A Dollar But I Feel Like A MIllionaire”) sets up the entire record. Beginning with sound effects of someone entering a car, and continuing with the car radio DJ introducing the album – “I need a saga – what’s the saga? It’s Songs for the Deaf. You can’t even hear it”. The album is indeed an epic saga, and “Songs for the Deaf” alludes to QotSA’s comical, zany nature that shows throughout all of their work.

Of course, this album is special as Dave Grohl did the guest drums, and immediately after the DJ introduction, a heavy drum beat sets up a hard rocking opening song that really buzzes. With a great rhythm, the song just feels right. The guitar work on this track is brilliant too, and it’s one of those songs that you can imagine must be an absolute riot to play live on stage.

Immediately following this breathtaking opening is the first single from the album, “No One Knows”. Again with a great drum beat laid down by the mastermind Mr Grohl, it’s very catchy, and very cool. Not too heavy, but it was a great vehicle for the album, and the kind of song that gets stuck in your head for days at a time. Another single, “First It Giveth” follows, a lot heavier than “No One Knows”, and while not as catchy, it’s another winner. More big drums, and this time with a more impressive bass line – it also incorporates acoustic elements for the bridges in the song, which gives the song a stop-start melody that’s more than a little interesting.

“A Song For The Dead” follows that track, and again revolves around an incredible drum beat, and some brilliant guitar work. While a lot of the tracks on this album follow the same pattern (and why not, when you have Josh Homme on the axe, and Dave Grohl on drums?), it never seems to be overly repetitive. This song builds up and builds up as it progresses, and reaches epic proportions towards the end of the fifth minute, as it slides into an epic guitar frenzy with the same guitar and drum melody that opened the track, this time on steroids. By the time the song is done (it’s almost six minutes long), you feel drained.

What follows almost feels like a bit of a rest and relaxation period for the album, after the frenetic opening. It’s not that the following songs are bad, they just simply couldn’t keep up with the album’s first four tracks. Luckily though, the album again switches it up a notch when we get to the best track on the album (and one of my favourite songs of all time) – “Go With The Flow”. Contrary to some of the other, mammoth tracks on the record, this weighs in at just over three minutes. However this is perhaps the only area that the track comes up short, as it delivers in every other department. Once again tying musical mischief together are the guitar and drums, setting the stage for a fairly heavy track, but one that still feels melodic. “I can go, with the flow” sings Homme, and it’s obvious by this point that he’s right. The entire album is about flow, and about the songs tying together to form something that is bigger than the sum of its parts. It is in fact this song that seems to define the album for me, being a reference point for all of the brilliant aspects that it incorporates. Special mention must also be made for the amazing video that was put out for this video as this song too was a single. The video is a dark, comic-like affair, that seems to take place on a hellish highway. It’s not particularly subtle in the end, but the video and song work together better than any I’ve ever seen.

It’s true that the rest of the album doesn’t feel as good from here on out – but I think that is almost certainly down to the quality of the songs that precede the final ones, the ending songs themselves are easy to listen to and do a great job of supporting the real star tracks on this record. It’s worth mentioning the closing “Mosquito Song” though, which is a fantastic way to end the record, favouring a slower, quieter acoustic sound over the heavy drums and guitar that laid to waste the first 50 minutes. It puts the excesses in perspective, and frames the entire album as a classic.

So what makes this a classic? It just seems to have it all – it sounds great, it feels great, and it has lasted the test of time – this album is now six years old, and still seems as fresh as the day I first popped it into my CD player. That surely is the true test of a classic – does it still sound as great as day one? The answer here is yes.

So what of QotSA now? They’ve had some interesting stuff happen over the last few years, with band members coming and going – but Josh Homme is still at the helm, and while the follow-up to “Songs for the Deaf”, “Lullabies to Paralyze” wasn’t up to the same standard, the more recent effort, “Era Vulgaris” comes a lot closer. It is unlikely to be a classic, but includes some really brilliant tracks, such as the first single “Sick Sick Sick”, and “3’s and 7’s”. I guess it’s a shame sometimes for a band to have such an amazing album as “Songs for the Deaf” in the middle of their career – it must make going back to the studio afterwards incredibly difficult.

If you don’t have “Songs for the Deaf”, pick it up immediately.

Comments

Meebo + Fluid Jul 6 2008

Much like my boy Mike, I’ve grown tired of Adium too. The app itself is great, but unfortunately the connection with MSN seems to be rather flakey. So I tried out Meebo, and it rocks. I’m using Fluid so that I can have it open in it’s own window. The only thing lacking was IM notifications for when the Meebo window doesn’t have the focus – or should I say, the only thing that WAS lacking? I’ve written a basic user script for Meebo on Fluid that’ll display the name of any user talking to you on the dock badge for the Meebo Fluid instance, and the message they have sent will be displayed as a Growl notification. You can check out the script here.

The script itself is rather simple, and just piggybacks on the fact that Meebo changes the document title when the window doesn’t have the focus, and someone sends you an IM. Meebo will cycle through the name of the user talking, and the message they have sent, in the window title. The script simply regularly checks for changes to the window title, and then splits out the user, and their message, so as to display the user on the dock badge, and the user/message as a Growl notification. Once you focus on the Meebo window, Meebo ensures that the title returns to the default, and the notifications stop.

Hopefully this will be of use to others too, and if anyone is able to take it and improve it further, I’d like to hear about it!

Comments

What's up Proc? Jul 6 2008

So it’s awesome Ruby snippet time, and in particular I’m going to look at the ability to evaluate statements against a block, specifically to find out where the particular block came from.

The “eval” command not only takes in the command to be executed, but can also optionally take in a binding to run against. This means that instead of evaluating a command against the current, local binding, a specific binding can be used, and for our example, we are going to use the binding on a Proc object, to allow us to evaluate a statement as if it was running within the block itself.

Let’s setup a module that allows us simply to register a block to an array:

module TestApp
  class << self
    # Adds a block to our global array
    def add_block(&block)
      @@blocks ||= []
      @@blocks << block
    end

    # This just returns our block array so we can iterate through it
    def blocks
      @@blocks
    end
  end
end

Within this same file (let’s call it test1.rb), we can also register a test block. The execution of the block isn’t really important, so let’s just do:

TestApp::add_block { puts "test1" }

Now let’s setup a second script (called test2.rb) that’ll also register a block, and that will iterate through the blocks and use the “eval” command to show where each block originated from:

# Reference our first script
require File.join(File.dirname(__FILE__), "test1")

# Add a second block
TestApp::add_block { puts "test2" }

# For each block we have, run a statement that will return the "__FILE__"
# variable for each block, against the blocks own binding
TestApp::blocks.each do |blk|
  puts "Block from: #{eval('__FILE__', blk.binding)}" 
end

If we run the test2.rb script now, we should see output similar to the following:

Block from: ./test1.rb
Block from: test2.rb

So we can now differentiate between our blocks, by investigating the blocks own binding! Something to bear in mind is that obviously the paths shown are relative – if you were executing the test2.rb script using an absolute path (for example, “ruby /path/to/test2.rb”), you’d see that the absolute paths were shown instead. Either way, the information should be useful in determining the origin of a block.

Now you may be asking, what’s the use case for something like this? Our block registration code above does nothing useful, and in fact we don’t even execute the blocks themselves! Well, within Feather we use this code to find out which plugin registered a particular block – in this way, we can check at runtime (before executing the registered block) whether the plugin is active or not. If it isn’t, it won’t be executed, if it is, it will.

This is just one of those cool things you can do when you have a reference to a specific binding – there’d be nothing to stop you from interacting with the blocks bindings in other ways too.

Comments

Viva Las Vegas Jun 27 2008

So fellow Brit Peter Cooper mentioned on Twitter that he is getting married in September this year in Las Vegas. I said that my wife and I got married in Las Vegas last September, and he asked if I had any advice or tips to share. Unfortunately, 140 characters isn’t really enough :-)

We had an incredible time last year, and I wouldn’t have changed a thing. So for those like Peter who are planning or thinking of planning a wedding in Las Vegas, here are a few tips I can think of just from our experiences:

  • it’ll probably depend on where you are getting married (we had our ceremony at Caesars Palace, in the beautiful Venus Garden), but try to make sure that there is a dedicated wedding planner Stateside at your venue of choice that can deal with any queries over the phone or e-mail at any time. Having that peace of mind knowing that they will walk you through the process and answer any question you have within a day or two makes the whole thing a lot easier
  • if you’re getting wed at a casino hotel, make sure to remind them just how much you’re spending on the ceremony, and I’m sure they’ll see what they can do with regards to discounts for other services. For example, by getting married at Caesars Palace, owned by Harrahs, we were offered discounted rooms at any Harrahs casino hotels (such as Ballys, Paris, Caesars Palace etc) for us or anyone in our wedding party. Also see what else you can get included within the package, such as a honeymoon suite for the night of the wedding, free champagne in the room etc
  • even if you are planning a small reception do (we had 11 people including us), book ahead. By doing so, you can try to secure a private room in one of the many amazing restaurants Vegas has to offer, and you’ll find that having a private room isn’t too expensive in many places, providing you are able to commit to a set menu, or choose a set of meals ahead of time (so the restaurant roughly know how much your business will be worth!). We had our reception meal at a private room in Canaletto (within the Venetian hotel), and it had a private balcony overlooking the faux Venice Grand Canal within the hotel. It was absolutely beautiful, and while it was by far the most expensive meal I’ve ever paid for, every cent was worth it
  • you absolutely must ensure you are in Vegas at least two days before the wedding, preferably longer (we landed on the Sunday, and got married on the Thursday). This will ensure that you are able to get over jet lag, and get used to the hot and humid weather over there
  • on top of the above, it’s really worthwhile heading downtown to the courthouse to get your marriage license as soon as possible. You need to provide identification (such as a passport), and will need to pay a fee for the license (it was around $50 for us back in September last year). However you’ll need this done and dusted before the ceremony, and if you go as soon as possible, then if the courthouse is busy, you’ll leave yourself enough time to get the license without having to rush around
  • it sounds obvious, but plan every detail you can before you set foot in Vegas – don’t leave anything to sort out when you get there. You want the whole thing to be as stress free as possible, and if you have everything set in stone beforehand, it will be. Take printed paperwork for everything (e-mail confirmation of reception restaurant booking, for example), just in case
  • if you’ve got a room booked as part of the ceremony package for the wedding night, then when you check in on the day of the wedding (the grooms job, as the bride is busy elsewhere!), don’t be afraid to ask for an upgrade. At the very least, you’ll get a reasonable price on a fantastic better room (for a small upgrade price, we got a honeymoon suite on the 42nd floor of one of the amazing Caesars Palace towers, overlooking the Bellagio fountains and down the strip!). If you’re lucky, you may get a great upgrade on the house
  • budget for everything, and err on the side of caution. Remember tax, and gratuities. If you plan for every penny, and round up, as well as going for the most expensive scenario, then if it comes in cheaper, you’ll have a few extra bucks for the slots
  • pay extra for the video/DVD of the ceremony. It’s worth every cent (no matter how expensive) to be able to re-live the best day of your life over and over
  • on the day itself, take in every minute, and enjoy it all. It sounds simple, but I had it mentioned to me before the big day, and I tried to make sure that on the day itself, I stopped and took in every little detail as much as possible. It’s an amazing day, and it’ll be over before you know it, so make sure you enjoy it

I wholeheartedly recommend Caesars Palace for the ceremony itself, as it was absolutely fantastic, and our wedding coordinator was brilliant. However there are a number of very classy casinos up and down the strip that I’m sure would provide similar services. It really comes down to personal preference, and finding “the place” that is right for both of you.

As for Vegas itself, and the experiences on offer, I can honestly say that the six days we were there for weren’t enough to even scratch the surface of what it has to offer. But the stuff that we did that we really enjoyed:

  • a tour out to the Grand Canyon. The flight out there didn’t agree with me, but I’d do the whole thing again to see the views – absolutely stunning. Worthwhile doing the incredible Skywalk there too
  • set aside at least one day to just walk up and down the strip, and look at the incredible variety in hotels and resorts. You can do some great shopping, and see all of the quirks of some of the major hotels (lions at MGM, NY hot dogs from New York New York, the pyramid at Luxor) by just braving the heat and taking a full days walk around. You won’t cover it all, but you’ll have a blast
  • gamble a little! Set aside a budget for slots or blackjack each day, and any money you win, can go toward a round of drinks! I’ll never forget putting $4 into a slot machine, and on the last quarter, turning out $120 in winnings. So long as you stick to your budget, it doesn’t matter if you win or lose – it’s all fun!
  • stop and watch the Bellagio fountains

I’m probably missing a load of stuff here, but off the top of my head, this was the most useful information I can think of. I can honestly say however that in my (almost) 23 years on this planet, my wedding day was the happiest day of all.

Comments

Call To Arms Jun 25 2008

So a quick Feather update: we’re now running against the latest stable versions of Merb (0.9.3) and DataMapper (0.9.1), which should make getting Feather up and running even easier. We’re also currently starting work on running against edge Merb, to try and implement merb-slices, so that Feather can be run as a slice within other apps, and so that Feather plugins themselves are slices in their own right. If you’d like to contribute to that effort, there is a “slices” branch for both core, and plugins. Just fork, hack away, and send me a pull request with your changes!

In other news, the official Merb blog is now running the best Merb blog in the world – that’s right, Feather! It’s great to see the blog running Feather, and we hope we can continue to improve it to make it even more useful for the Merb guys to be able to get out important Merb information and articles!

Also, I’ve been through the tickets on the Feather Lighthouse, and setup two milestones – 0.5, and 1.0. The idea is that 0.5 will aim for stability, and getting the work on slices up and running. Milestone 1.0 will be for trying to improve the distribution, setup and configuration of Feather to make it more user friendly.

There are currently a ton of feature requests and small bug fixes outstanding, that I’ve assigned to me on the LH tracker. I’m going to start to try to get through them, but if anyone out there fancies taking any of them on (a lot of them are great little ways to get into Feather development!), then just let me know, and I can re-assign the ticket to you. There’s no deadline on the 0.5 milestone just yet, but the more contributions we can get to knock off some of the outstanding items, the quicker we’ll hit the milestone! Consider this a call to arms :-)

Lastly, big shout out to some of the contributions coming in – after a mammoth merge session the other night, I rolled in great contributions from aflatter, sudothinker, jf, piclez and fujin. Apologies if I missed anyone else – ping me if I did, and I’ll give you the appropriate kudos.

Comments

Page 10 of 31 | Next page | Previous page