sambroblog. A Blog. With words. And maybe pictures.

3May/101

iPad dealbreaker…

So. I was entertaining the notion of buying an iPad at some point shortly after they come out in Australia. Buying one would ensure two things happen. First, I would be able to parade it around and demonstrate what an awesome early-adopter I am. Second, I would then know for sure whether or not the iPad was worth purchasing, or if it isn't. Seriously, that's how good Apple is at marketing, they build product images that completely blur the line between the rational - "I want to buy this because it serves a functional purpose that will enhance my day to day life in some way", and the emotional - "LOOK AT THE CURVES ON THAT SUCKER! I HAVE TO OWN ONE SO OTHER PEOPLE WILL SEE HOW TRENDY AND CUTTING EDGE I AM". Kudos to the scheming geniuses locked away in the Apple HQ of Cupertino, California.

However! After reading about the iPad 3G launch, a rather crucial detail caught my attention that I hadn't thought about at all before. Only the 3G version will have proper GPS functionality available. What? No. I don't like this at all.

I was never planning on purchasing a 3G model. I would really rather not be paying for two data plans when I'm not even close to using the data bundled into my phone contract. My plan was actually to wait until I can jailbreak my iPad and my iPhone, then run one of those awesome MiFi apps you can get on the iPhone to tether my phone to the iPad. This would essentially be 3G connectivity anyway, since I always have my phone with me. Power drain doesn't really concern me, I wouldn't be using my iPad a huge amount out and about. Further, if I'm carrying the iPad around, chances are I'll have a little case for it. If I have a case, I could be carrying around a little extra battery for the iPhone to juice it up if I'm out more than I usually am on any given day.

Sure, I already own an iPhone 3GS that has GPS functionality. This isn't good enough though. If I'm going to fork out the money for a device that doesn't really solve any needs, rather it just creates new ones and fulfills them, then I expect this evolutionary device to be future-proofed. What if I want to wire it into my car? What if I want to check-in to my local cafe using Foursquare while I catch up on the latest news I'm reading on the iPad already? What if I'm just using the device and suddenly have a need to find out where the hell I am on Google Maps?

"But Sam!", I hear you saying, "You can just whip out your trusty iPhone!". Sure, this is true. Coming back to a point I made earlier though, the iPad is a sensation more than it is a necessity. I don't need an iPad. I can read news articles fine on my iPhone. I haven't tried Kindle on the iPhone, but I'm pretty sure I could read a book fine on the iPhone too. My iPhone is a phone, which I could not live without. If I'm going to fork out the money for an iPad, I expect it to be as convenient as humanly possible. Otherwise, I'm just paying 700$ for a high-tech paperweight.

At this point I'm not considering an iPad at all, until I see where the unofficial app developer community goes with it. Ideally, there will need to be an app on the iPad that tricks the iPad OS into thinking it has a GPS sensor (much like there's an app that tricks the iPhone OS into thinking it is connected to WiFi when it's connected to 3G), when the GPS sensor is asked to geolocate, it would connect to my WiFI-tethered iPhone and use the phones GPS sensor to get this information. This, hand-in-hand with the MiFi app I mentioned earlier, would be a complete solution to my woes. I'd then be able to buy a WiFi iPad and have all the same functionality that is offered with the iPad 3G variant, at less cost.

Anything less than this and I'm not going to purchase an iPad. That is all.

Tagged as: , , , , 1 Comment
31Mar/101

Internet Explorer 9…. wow?

Okay, so you'll never make a IE convert out of me. I think I speak for the web developer community as a whole when I give Internet Explorer and Microsoft a great big middle finger salute.

HOWEVER! After downloading the Internet Explorer 9 Platform Preview, I got the shock of my life. An Internet Explorer that is taking a DECENT effort in supporting web standards that are almost as old as myself?! Could this be?!

Seriously, their new SVG implementation is amazing. HTML5 support. Hardware accelerated Javascript processing and DOM rendering. CSS3? BORDER-RADIUS SUPPORT?! This is certainly not the Internet Explorer I've come to love to hate.

Of course, I can easily dismiss all of this with the simple statement "5 f*****g years too late, chump". However I can't bring myself to do so, when I am continually reminded of the fact that this family of browsers still makes up a stupid amount of the market today. Yes, IE share is slipping, but I truly wonder if we'll ever see that glorious day where IE drops below 40-50% market share. If the migration of standard consumer PCs ensures that we see a good portion of users running on IE9 rather than the joke we've come to call IE7, or the slightly less humerous joke we've come to call IE8 ... well, that's certainly the lesser of two evils isn't it?

Unfortunately, from what I've read, IE9 probably won't be around for another year or so. So in the meantime, I'll continue to burn baby animals on the IE altar, hoping the gods of Microsoft will hear my pleas for my mortal webapplication to function correctly in their worthless POS software (I ain't talking about no point of sale here either).

Hopefully in that time they'll improve their laughable ACID3 score. Then again, maybe not. Best not to make people too happy, might start putting their faith in you or something ...

31Mar/102

Dillinger Escape Plan – Option Paralysis

Option Paralysis

Dillinger Escape Plan - Option Paralysis

After listening to Dillinger Escape Plan's latest album, Option Paralysis, on repeat for the past week, I felt it necessary to write my own little review of it. Here goes.

Yeah. They still got it.

Seriously. This album kills. There seems to be some comments made by some *real* reviewers that feel Dillinger hasn't really expanded much musically. That has to be the dumbest thing I've heard. From the brutal crescendo in the second half of "Good Neighbour", to the explosive intro from "Crystal Mornings", to the piano/synth driven "Widower", to the pop-friendly "Parasitic Twins", and then back to crazy headbang-able goodness on "Chinese Whispers" - this is not a rehash of previous Dillinger material.

Really though, when has Dillinger ever sounded like previous-Dillinger? They exploded on the scene with Calculating Infinity, which was pure jazz/metal-genre-crossover-wankery, then proceeded to release Miss Machine 5 years later, which contained blatant pop songs like "Unretrofied" with works of musical voodoo like "Panasonic Youth". 3 years later, Ire Works is released; again with radio friendly ditties like "Black Bubblegum" and "Milk Lizard" sharing the same track list as scorching metal magic like "Party Smasher". Clearly, this is a band that doesn't give a shit what their fans or critics have to say about their style or direction.

Anyway, I digress. Option Paralysis is another genre-defying masterpiece delivered by a band who makes their ridiculous blend of jazz, metal, punk and pop look so easy a child with no limbs, eyes or ears could do it. Sadly, exploding onto the scene and setting the stage with Farewell, Mona Lisa is going to scare most people away. That's fine, they can listen to their Lady GaGa and continue to tell all their friends how their musical tastes span "kinda just like anything really".

Ben Weinman continues to outdo himself when it comes to guitar work on Dillinger albums, this album is definitely no exception. The new drummer Billy Rymer is some kind of acoustic DEMON who looked like 17 when I saw him playing with Dillinger live the February of last year. Honestly, I can't help but wonder if Billy is Chris Pennie's evil clone that just didn't grow as old or bald.

Of special note on this album is Greg Puciato, who I now refer to as Greg Patton. Yes, I just likened Greg Puciato to the one and only Mike Patton. You only need to listen all the way through Option Paralysis once to understand why. His range of screams is impressive yes, but it's when he breaks into soft crooning and falsetto vocals (sometimes in the same breath like in Room Full of Eyes, that moment is my all-time fav on this album) that you truly understand how impressive his vocal skills have become.

Great album. Buy it, kgo.

Seeing these guys live at the end of May. I am preparing my mind, body and soul to get TOTALLY DESTROYED in the mosh supporting one of my all-time favourite bands. Cannot wait!

Filed under: Music, Personal 2 Comments
10Mar/101

How to access Facebook API from Chrome Extension

So following on from my previous post, I decided I wanted to try two new things at once: Facebook API and a foray into developing a Google Chrome extension. With the notification API that will (hopefully) twig on in other major browsers, I'm writing an extension that will display a desktop notification when a Facebook notification is received. All that will be required is for Chrome to be running.

Step 1 was to play around with Chrome extensions. I haven't worked with plugins/extensions in any other browser, but I have to say.... Google NAILED this. It's so intuitive and straightforward. So easy to debug, so much power. I love you Google.

Anyway. Step 2 was where things got interesting - connecting to Facebook via the Javascript API and Facebook Connect. This proved to be quite complex. Facebook Connect has this fascination with the whole cross domain communication channel (XD for shortness) nonsense. Basically, this requirements essentially means to use the Javascript API you need to be hosting it on a standard web server to be able to add the xd_receiver.html file in a public-facing area where Facebook can see it.

After digging around the site for a while, I came across their fancy new Open Source Javascript SDK, I couldn't help but notice this didn't make a mention of the XD setup anywhere, so I assumed perhaps I might be able to work with this system better. As it happens, my suspicions were correct. The new JS library has some crazy voodoo magic set up so that an XD file isn't required, there's some kind of "XD proxy" running on the Facebook servers which will send login session data along the line to the JS library, using either document.postMessage or some Flash workaround thingy (not really sure how that works, don't particularly care.)

I immediately tried to use it in a Chrome extension, but alas! There was a few issues. I came up with workarounds for both though.

Issue #1 - the API does the following in the constructor:


_domain: {
api : window.location.protocol + '//api.facebook.com/',
cdn : (window.location.protocol == 'https:'
? 'https://s-static.ak.fbcdn.net/'
: 'http://static.ak.fbcdn.net/'),
www : window.location.protocol + '//www.facebook.com/'
},

Great! That would be fantastic if our chrome extension was running on http, but the protocol when running from options or background.html pages is "chrome-extension://". So when the API went to make with the server side communications, it was trying to remote to chrome-extension://api.facebook.com, which of course is not really gonna work.

My solution to this was to just fudge it by putting the following snippet in before using the FB lib anywhere:


FB._domain = {
api : 'https://api.facebook.com/',
cdn : 'https://s-static.ak.fbcdn.net/',
www : 'https://www.facebook.com/'
};

With that change, the API won't have any more tantrums when trying to phone home. Easy!

Issue #2 - Facebook Connect is still broken.

This one was the biggie. Essentially, even though the new API does some cool hocus pocus with XD, it's still referencing the "origin domain" in the request, this original domain is of course just going to be the extension URL, which is not terribly useful, as Facebook will freak out when it gets a request coming from an invalid URL. I tried fudging the origin to a valid domain (dodgy I know, I was getting desperate). Interestingly, Facebook was fine with this, but of course when the request came back to the browser and the XD proxy tries to postMessage() the session data back, the browser freaks out as it looks like an XSS attack.

There might be other ways around this drama, but I opted for what I feel to be a fairly elegant solution.

Essentially, I opted to "pretend" I'm something of a desktop application trying to authenticate with Facebook application (which is true in a sense, I suppose). This Developer Wiki page gave me some insight into how to authenticate my application with the FB user the old-fashioned way.

The idea is this: popup the login/app-authenticate page manually with a special URL, setting the return URL to a random dummy Facebook page they have running for desktop app clients: http://www.facebook.com/connect/login_success.html. When the user visits the login page, once they have logged in and allowed the app access (or if they are already logged in and have already allowed the app), they are redirected to a page that has the session data in the querystring encoded in JSON. Login achieved.

So I set about doing this in my extension, simple enough to start with:


var win = window.open("http://www.facebook.com/login.php?api_key=&connect_display=popup&v=1.0&next=http://www.facebook.com/connect/login_success.html&cancel_url=http://www.facebook.com/connect/login_failure.html&fbconnect=true&return_session=true&session_key_only=true", "fbconnect", "width=400,height=400");

Great! If I was a *real* desktop application and I was running a Webkit/IE/whatever browser instance as some kind of evil overlord, I could just detect when the browser redirects to login_sucess.html, grab the querystring, parse the session data out of it, and be on my merry way! I'm running in a browser though, so how about I just access the child window that I opened with window.open, access the location.search property and parse that? "NO", says the magical little pixies living inside the browser, "That would be against my strict Same Origin Policy (SOP, kinda like ... sop story, teehee)!!!".

Fair enough. There was an easy enough workaround though, I just embedded a content script via the Extension to sniff out the session data when it became available, and send it to the main extension. Like so:

Add the trigger for the content script to the extension manifest.json file:


"content_scripts": [
{
"matches": ["http://www.facebook.com/connect/login_success.html*"],
"js": ["prototype.js", "intercept_session.js"]
}
],

I threw prototype in there just for convenience sake, as you'll see in the next step.

Then intercept_session.js looks like this:

var params = window.location.search.toQueryParams();

if(!params.session) return;
var session = JSON.parse(params.session);

chrome.extension.sendRequest({message: "setSession", session: session}, function() {
window.close();
});

What this code does is parse the querystring (using Prototype), then check if the session data is present. If it is, parse the JSON into the session object and send it off to the extension Background Page via the extension message passing system to be saved.

The background page simply has this:


var session = null;
if(localStorage.session)
{
session = JSON.parse(localStorage.session);
}

chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if(!request.message)
return;

switch(request.message)
{
case "setSession":
{
localStorage.session = JSON.stringify(request.session);
session = request.session;
sendResponse();
break;
}
case "getSession":
{
sendResponse(session);
break;
}
}
});

Again, pretty straightforward stuff. I'm using the groovy new HTML5 local storage to remember the session data even if the browser is closed. The message handler simply listening for a session to be passed to it. When a session is provided, it will save it to local storage and a local variable. The getSession functionality is so other areas of your chrome extension can retrieve the session as needed (for example if you have a popup and want to query FB from there or something). You could obviously use this session anywhere as needed.

And that's that! From here you can make API calls to your hearts content. There's obviously some important things left out here, stale checking of the session when the background page loads up for example. Also, requesting extended permissions is not covered here, but it's pretty much the same as how the login deal works anyway. You would just update the login_success.html intercept script to check if this was a response for extended permissions, and check the querystring to ensure the permissions were supplied.

I've cooked up a quick little demonstration of this stuffs. Click here to install a demo extension that will add a button to the right of your address bar, which will show some clickable icons of 5 of your friends in a popup. You can also see the code for this extension here.

Time for me to go finish this extension!

8Mar/100

Shiny Desktop Notifications from Google Chrome

So I was dicking around in Google Calendar the other day, updating settings and trolling for any cool new Labs stuff to enable... Anyway, I made some changes and clicked submit. I was provided with the ol' yellow InfoBar that asked me for permission to allow something to ... blah blah blah. I was a on a Google site and I have pretty much entrusted my soul to Google already - so I didn't bother reading it before clicking Allow.

Imagine my surprise when a sexy little desktop notification popped up in the bottom right of my screen! Intrigued, I did a bit of Googling, there's a couple of news posts about it, but nothing substantial... other than the design doc hosted on dev.chromium.org.

It's currently only available in the developer channel of Google Chrome. If you're running the dev channel, then check out the example below:


For those interested, that code that powers this little example can be found here.

Very cool stuff. There are so many places this would come in handy. Super Facebook notifications, anyone?

4Mar/100

I <3 Valve. Portal 2??

I stumbled across this announcement from The Escapist while surfing yesterday.

Valve released a random update to Portal via Steam a couple of days ago, the cute little radio at the start of the game now plays random sounds if you carry it with you to different locations in the game. The first room you take it in plays some morse code, other areas are actually SSTV transmissions. Some clever fellows have figured all this out and determined that the images direct them to a BBS, which, once logged into (using credentials hidden in the images from the game) spits out a heap of ASCII artwork and random stuff, as can be seen here.

The images look pretty cool, but I laughed pretty hard when I read one of the decoded "confidential" memos, which reads as follows:

CONFIDENTIAL
October 17th, 1976
Re: Human Enrichment & Testing Initiative, Resource Aquisitions

1. "Low Risk Human Resource Aquisitions"
a. Hoboes & Tramps
Lives spent wandering aimlessly, cowering before authority, and drinking concussive amounts of home-distilled potato alcohol make hoboes the perfect Human Enrichment test subjects. The hobo questions nothing, will follow orders if fed, and, like all hoboes, has a restless, wandering heart. (Note: The wandering heart of the hobo should not be confused with the Drifting Heart Syndrome, which several transients contracted during testing.)

b. Child Orphans and Foundlings
Deep-rooted abandonment issues leave most orphans highly susceptible to shame-based psychology (for a complete list of opportune moments to obliterate the esteem of test subjects, please consult training video M89-D, "You'd Perform This Test Better If You Had Parents"). Recent advances in the use of scorn, flattery used in an ironic context and naked contempt as motivational tools have yielded similarly profitable results.

c. Psychiatric Patients
Past experience shows these fellows are simply not shy at all about carrying on, disrupting tests and defecating just about anywhere that pleases them. Frankly, it's off-putting, and small wonder why Aperture-brand mental institutes are being phased out in favour of more orphanages.

d. Seniors
Frail, brittle hands make holding science devices difficult. Most were born before the advent of science, and can become confused and disoriented when asked to participate in relatively simple tests (teleportation, invisibility, adjusting esteem levels of orphan children).

LOL.

Anyway, it seems the images are possibly hinting towards a Portal 2 announcement soon. Also, some people have speculated that one of the images that references "GLaDOS v3.11" could be referencing the date March 11, when Gabe Newell is scheduled to receive his Pioneer award at the Game Developers Conference.

Exciting stuff, to say the least!

UPDATE: AHMAGAWD Portal now has a different ending in-game, as can be seen in this Youtube video. Cannot wait for March 11th announcement! What sucks is being Aussie and having to wait until March 12th...

Filed under: Games No Comments
1Mar/100

DILLINGER ESCAPE AWESOME

So, one of my all-time favourite bands, the almighty Dillinger Escape Plan, is releasing a new album titled "Option Paralysis". It's set to be released near the end of this month.

I've known about it for a couple of months, saw a couple of cool little vids on their Youtube channel. The soundbites of their tracking sessions sounded BRUTAL, I was already pumped after the little teasers they posted. Now they have a full track from the new album released - "Farewell, Mono Lisa". It sounds FANTASTIC, kind of like a blend between their Miss Machine and Ire Works stuff. After hearing some of Greg Puciato's clean vocals in his work with Spylacopa, I was really looking forward to hearing more of it with DEP. Looks like my wish was granted.

Cannot wait for this album to come out!

Filed under: Music, Personal No Comments
28Feb/100

IE6 – May you burn in the eternal fires of HELL

With web development being my primary focus, I'm constantly reminded of the pitiful existence of a browser who's name evokes a broad spectrum of emotions (mostly bad ones) in my fellow developers .... INTERNET EXPLORER 6.

One must wonder why. Why must a browser that is going on 8 and a half years old, superseded by no less than two newer versions in its product family, be installed on 20% of end users machines still? A browser with so many horrific DOM, CSS, and JS quirks that it eats up a grossly disproportioned amount of development time/money budget just making sure even the most basic of web apps works on this clunky piece of trash?

It's WELL past time for IE6 to slip into obscurity. Please. God.

Personally, when I develop websites, even basic ones with little to no JS, I target IE7+ now. I work in the smaller-scale end of the web market so I'm blessed with not usually needing to worry about larger organizations with a persnickety IT board who force ridiculous things like IE6-compatibility on me.

However, one of the organizations I work for has a contract for a fairly large government-initiative website. The website has been "completed" for a good year and a half now, with many further additions and changes since then. The initial contract *did* stipulate that the website should be presentable and operational on IE6, and it was. However as the website evolved and many things were added ad changed, little thought was given to IE6, as a result the site today is fairly broken in IE6.

My question is, where does the buck stop? Where should the line be drawn? Sure, maybe in the initial contract you stated the website would be compatible with IE6... But my belief is that unless your contract/maintenance agreement states something to the effect of: "IE6 will be supported, even when its obsolescence surpasses the point of ridiculous" then you should not be bound to sacrifice your soul on the altar of IE6.

Thankfully, IE6 was implicated in the hackings of some big corporations, with big names like Adobe and Google in the list, so its days are truly numbered now. Google Docs and Youtube are now displaying big ugly warning messages to IE6 users, urging them to upgrade. There are also movements like http://www.bringdownie6.com/ fighting the good fight.

IE6, may you die a painful, cancerous, leprous, acid-poured-down-the-throat-erous death.

Filed under: Uncategorized No Comments
23Feb/100

Time. Where art thou?

Rant time.

I wake up at 6:00am. Perhaps by some people's standards this isn't terribly early, but for a geek it's a pretty respectable hour to emerge from your bedroom coherent (well ... if you call bleary eyed staggering to the shower such a thing). I shower, walk around aimlessly trying to shake the cobwebs out of my caffeine-deprived brain, sometimes have some food, then it's out the door. I recently moved to the city so now I walk into work, as it's 2.5km away. Takes me about 30 minutes at a brisk walking pace. I need to be into work around 7am so I depart my humble abode @ 6:30ish.

I currently work a couple of different jobs and balance some contract work on the side. I do a couple of hours for one of the groups I work for in the morning, usually 7-9. Then it's off to my main job 'till 5:30pm. Luckily the two different companies I work for happen to be on the same street. Awesome right?

5:30pm rolls up, I walk home. Get home by 6:00pm. Now that contract work I mentioned before is fairly hefty, by rights I should be spending about 3 hours a day working on this stuff at home also. If I did that, I'd be working until 9:00pm. Now, to not wake up wanting to slit wrists, I should be going to bed by around 10:00pm right? Okay so, that leaves an hour free a day. Awesome. I didn't even factor dinner in there, which usually takes 30 mins if you cook it yourself (although I'm lucky as I have awesome housemates who cook dinner alot of nights).

And of course I've deliberately left out social outings here too. Anytime I decide to go out (even Fridays), I end up feeling the effects of the missed valuable sleep time.

In the words of oiled-up CGI-enhanced Gerard Butler ... THIS IS MADNESS. I can't keep this up!

The last couple of weeks I have actually had to put my main job on hold (it's on a contracting basis, even though it's fulltime, so I have that luxury thankfully) to prioritize the contract work as it has a fairly important massive deadline rolling up end of this month. I picked this work up last year and this deadline represents most of the remainder of the project, so getting it out of the way should be a huge load off my shoulders.

Despite all this though, I will admit I have a habit of not doing the contract work in the evenings when I should be, and I've cut my main job to half days more than a couple of times lately... I've just been so bloody TIRED. I'm still quite proud of where I am right now though. It wasn't that long ago that I shirked work obligations a lot.

Filed under: Personal No Comments
21Feb/100

Soundwave 2010

Well. It's Sunday evening and I've just about recovered from Soundwave 2010 yesterday.

I went with my younger brother and one of his mates. It's fast becoming a ritual that my little brother and I hit the festivals up together, as we share a similar music taste and it's a great .. you know ... "brother bonding session". I look forward to 2013, when he'll be of legal drinking age so we can knock back a couple of brews while we experience some great artists doing their thing, but I digress.

We got to the venue (RNA Showgrounds in the Valley) just about on-time, breezing through the queue to get in. Our luck abruptly ended there though, as I forgot to take some money out of an ATM on the way and we were slapped in the face with a 20 minute ATM queue just inside the Showgrounds.

With that done, we set off to Stage 5&6 for our first stint - watching the end of Adelle and then Rolo Tomassi. I didn't try hard enough to look Adelle up before going, if I had I would have done my best to get there on time, as the tail end of the set gave me a really good impression. Pretty sure they were totally off their faces, but I guess you need to be when you're a relatively unknown band opening for a major festival like Soundwave. The highlight of Adelle was definetely the guitarist making out with his guitar while he was playing. Good times.

Rolo Tomassi blew my mind, I had listened to them a bit before and my impression (which I used to sell to my bro) was that they are basically a synth driven Dillinger Escape Plan. They did not fall short of my expectations - amazing energy on stage and some pretty insane talent coming out of a group that looks to be in their early-early twenties. A couple of trashy little clips from my iPhone as follows, though these don't do a very impressive act any justice at all.

After this we moved on to Baroness in Stage 4. I'd never listened to Baroness before and didn't know what to expect. I was given a great introduction to a band I plan on adding to my library very soon. The mosh in Baroness went off, I got pushed into the circle pit by some kid and spent about 15 seconds in there before deciding I didn't want to wreck myself before I got to see Meshuggah. After this my little bro and his mate ran off into the mosh up the front and I followed like a sheep. The mosh up the front was crazy but lots and lots of fun.

After Baroness we left stage 4 in search of some foods. 18$ for 2 shitty little chicken wraps later, my brother and I were satiated, with me feeling a little ripped off and wanting to kill something. Oh well. Sustenance is sustenance right?

From here I had the terrible decision to make as to whether I'd watch ISIS play or see the Eagles of Death Metal. I've been pretty huge on EODM lately and have never found ISIS quite as engaging as other post-metal acts, so I opted for the sweet serenading of Jesse Hughes. The mix was pretty bad to begin with, which was pretty surprising seeing as they were playing the main stage... After the first song I could actually hear Jesse Hughes singing, which was good. They played a great set.

From EODM I went and caught the last couple of songs of Clutch back at Stage 4. I got to hear Electric Worry so I was happy with that. After hearing it though I kinda wished I caught their whole set, they're definitely a band I haven't given enough listen-time.

Once Clutch was over my little brothers friend conned us into catching Anvil, who were on Stage 4 right after Clutch. I was there for most of their set (ducked out for some water).... I think they're great musicians but I wasn't huge on their sound as a band. The drummer was off the chain, the bassist had great stage presence, and the guitarist was just a great frontman... Just all together they didn't impress me that much as they did individually as musicians.

Anyway. After Anvil came the band I pretty much bought my ticket for .... MESHUGGAH. We were up the front for Anvil so of course we stayed while they set up the stage for the shugz. I don't know what was going on, but they took about 10 minutes longer than they should have doing their sound-check... Either that or Anvil ended late. I dunno, but Meshuggah came out about 10 minutes after they were scheduled to start. No matter, it was well and truly worth the slightly extended wait. They played a crazy set. We were right up the front in the mosh and loving every second of it. The mosh was at its peak when they started playing Future Breed Machine. By that point security was pulling crowd surfers off us like some kind of human conveyor-belt. Good times.

The best part was that being right up the front (just behind the poor sucker pressed up against the fencing) and right in the middle, we could see Jens headbanging with his signature "I'LL EAT YOUR GUTS FOR BREAKFAST"-face, as pictured below:

After Meshuggah I was pretty wrecked, so we just chilled and listened to Anthrax and Trivium do their thing on Stage 4.

From there we went back to the main stage and sat in the grandstands while Jimmy Eat World played their ... music. Look I dunno, I didn't mind their ending song - their single "The Middle". The rest of it all sounded pretty much the same. I also got the distinct feeling the frontman didn't really have a clue what he was doing. Then again, they were playing between Jane's Addiction and Faith No More, which is a pretty daunting bill. They were probably also feeling the wrath from the crowd that their band name didn't begin with "My" and end with "Chemical Romance". Oh well.

Faith No More played a fantastic closing set. Mike Patton is as awesome as I hoped he would be live. By the end of the night he had "Brisvegas" feeling "Bristastic", "Brissexy", "Brisfabulous" and "Brisalicious". Though I'm not sure why he was telling us all to go hit up http://www.chatroulette.com, but he was very specific about it - repeating the web address 3 or 4 times. The definite highlight of the FnM set was Mike grabbing the cameras at the front of the stage a couple of different times; the first time to since right into the lens during Epic (I'm sure you can guess which part he was singing while he did this), the second time he felt the need to show us all his junk after waving the camera around like a man possessed. Mike's vocals were absolutely top form, as was to be expected I suppose!

All in all, a crazy day with lots of great performances. I'd say overall, Meshuggah was the most fun due to the crazy mosh and the fact that I was 5 meters away from MESHUGGAH. Rolo Tomassi played the best set as far as entertainment coming FROM the stage goes, they're definitely a band to keep an eye on.

Filed under: Personal No Comments