Brilla.org

Web

An IE6 bug dissected: iFrames, IE7.js, and more dumb things Microsoft

by Jon on Jan.20, 2010, under Web, Work

We don’t do markup or CSS. We take the code you give us and chop it up with some XSLT, so that it wraps on top of our XML-based content management system beautifully. (If you are still tuning in then you’re definitely a web developer on the hunt for a bug fix… keep reading)

There’s the IE6 problem. It renders everything that should be beautiful to look like absolute ass. Thankfully, that ain’t our problem.

But, for times when it is your problem, someone smarter than me came up with a brilliant solution to this. IE7.js a workaround to get IE6 to play nicely like it should. Just drop it in and it does the rest. Done and done.

Recently a client delivered some XHTML/CSS making use of IE7.js. Done and done; set it and forget it.

So we did. Nobody actually checked out their finished site in IE6 — frankly, because no one with a right mind actually uses that browser.

But, the client’s clients do. They started getting emails that everything was ugly in that awful broken old excuse for a browser.

Henceforth, the IE6 problem became my problem.

So what changed? Assuming we kept all that intact in the process (we did), why then, would a demo page with bogus content look fine, but once it’s filled out with living, breathing pages and news stories, does everything blow up?

JavaScript error. Hm:  ‘v’ is null or not an object.

v is null or not an object

A little Googling reveals a possible culprit. Apparently, IE7.js starts acting up when frames are involved. Our CMS solution does make unabashed use of iframes.

So, I make the code changes mentioned in that message. Save, dump cache, and hit F5. A new error message appears:

Internet Explorer cannot open the Internet site http://…

Operation aborted.

Internet Explorer cannot open the Internet site ... / Operation aborted

Seriously? After that, my web page defaults to a yucky The page cannot be displayed screen. Ick.

More Googling and I find myself skeptically glossing over a page on MSDN. And there she is:

2. Adding the defer boolean attribute to the script block (this defers execution of the script content until parsing is complete)

I’d heard of this ‘defer’ thing before. It’s a stupid IE-only attribute that instructs the browser to not load the script until the page is done rendering. Think of it as one big $(document).ready().

So I add ” defer” to my opening <script> tag. Error messages gone. Blank screens gone. Page is no longer looking yucko in IE6, it renders like it should. Everything just works™.

In conclusion (TL, DR)

If your IE7.js is acting a fool on you, put defer to work:

<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript" defer="defer"></script>
<![endif]-->

Set it, and forget it.

Comments Off :, , , , , more...

Superstar

by Jon on Jan.17, 2010, under Personal, Web

To my friends on Twitter and FourSquare, it’s no secret that I’m a karaoke fanatic. I have been good and hooked on it for about a year now, and what started as a fun activity after improv classes at Jet City has snowballed into a welcome addiction. It’s wildly popular up here in Seattle, and seems to be a universal hit with fellow web geeks across the country.

But I have not seen much dialogue on how to partake in this time-honored bar sport. How do you make the most of your four minutes of fame?

Break it On Down

A good karaoke performance is a balance of many things: talent, enthusiasm, inebriation, savvy song choice, energy level, planning, improvisation, crowd interaction, and personal delivery, to name a few. There’s a million ways to do it right, and really only a couple ways to blow it.

At the end of the day, we are all looking for a karaoke “win.” Those kickass performances where you slip into another world for three and a half minutes, oblivious to the bar scene around you. You quit looking at the words; you are rocking out solely for you. Suddenly the applause from the crowd yanks you out of that trance-like state, reminding you that you are, in fact, in a bar with friendly strangers.

Oh.

It’s a beautiful thing when it happens. And now, with that American Idol moment out of the way, I present to you: insights I’ve developed in scoring karaoke “wins.”

Love This Bar

First thing’s first: every bar has its niche crowd and atmosphere. The artsy/theatrical group, or country western, or gay bar, or college crowd, etc. You might be a regular in these tribes, or you may be a visitor. Either way, it’s good to consider their preferences: which songs they’ve heard a million times, and which songs are completely foreign to them.

Sizing up the karaoke songbook will be full of hints about this place and the people inside of it. So pick up that musty blue binder and let’s have a look.

I Choose You, Baby

Trust your gut when looking for your karaoke jam. Go with songs that feel right in the songbook; they always come out right on stage. The good ones will jump out at you and seem like an obvious choice.

If intuition isn’t your strong suit, here’s a few guidelines I try to stick to:

Shoot for originality. We’ve all heard Don’t Stop Believin’ and F**k Her Gently a few bajillion times. Anything from Rock Band is becoming forgettable, too. Which overlooked gem can you breathe new life into? Challenge yourself.

Share the love. Empirically, duets kill. Try on (I’ve Had the) Time of My Life.

It’s tough to anticipate, but know that you are susceptible to speed bumps:

  • A 45-second introduction is a long time for dancing, drinking, and/or microphone banter.
  • Do you actually know all of the words to OutKast’s So Fresh, So Clean? (Should that stop you? :)
  • Super-high vocal pitches might pose an issue. Or, it might pose an opportunity.
  • You may have been listening to the squeaky-clean radio edit of your song, and not the KJ’s uncensored counterpart. Or vice-versa.

These don’t always make themselves known before just _happening_. Still, be aware that they will trip you up from time to time. This is part of the magic of performing.

Play to the crowd. Are you eyeing a table of cute ladies? Throw down some Usher or Justin Timberlake. Is your crowd predominately college and, well, drunk? Sweet Caroline is sure to please, so beat them to the punch.

But also, spite them. Even the honky-tonkiest country western folks need a breather from hokey Nashville narratives. Try singing R&B songs about erections; that’ll give them something to talk about.

Ultimately my picks are usually a function of my own mood, and the collective bar mood. It’s more of a gut reaction than a decision. I lean toward songs that either add to the bar’s energy, or try pushing it into a fun new direction.

To that end, the best thing a karaoke singer can do is deliver a performance that the audience didn’t know they were itching for.

Go toss your song into the rotation. And while we’re waiting…

Instrumental 16 Measures: a Brief Interlude of Karaoke Etiquette

Be nice to the KJ. He’s busy, so don’t hound him about how soon you’re up to sing. Toss him a few bucks when you put your song in. At the right venues, a tip will bump you up in the song rotation.

Try to be supportive. Even the one-trick pony. Even the drunk girl squad. Even the outrageously bad singers. This is their “Hello, World!” program of sorts. Clap & give a well-timed “whoo!” Friends and new best friends (strangers) are as good as gold in the karaoke arena.

Liquid courage helps get a lot of people up to the karaoke mic. But watch your booze intake before you go all Courtney Love on us.

And while I’m thinking about it, don’t ever make the mistake of—

Crap, they just called your name. I think you’re up, so go kill it!

Time to Kick Out the Jams!

Fear not. Once you’re on stage, the world is your drunken, merry oyster. So go nuts. That’s my way of saying, “dance like no one’s watching” and also, “don’t be afraid of being a complete lunatic.” Turns out, people are into that sort of thing.

Know your tools, too. Do a super high energy song plainly seated from the bar stool. Or grab the mic stand and rock some air guitar. Or hump it. Hell, leave the stage and get the dance party moving. Just watch out for tables.

Get your crowd involved. Point the mic their way if they’re singing along. Start the clap!

Know your song? Experiment with a few creative notes, or throw a joke into the lyrics.

Be aware that the microphone’s proximity to your mouth will vastly change how IN YOUR FACE your voice is.

Have as much fun as you possibly can. Musicals are only interesting because everyone seems to be really enjoying the spontaneous bursts into song and dance. Karaoke’s kind of the same way.

These are just ideas. The only real way to kill it is to commit. Whatever you get up there to do, do it. Focus everything you’ve got on giving everything you’ve got. Inadvertently, you’ll take care of the rest.

The Story Never Ends, It Goes On, and On…

Don’t stop now; you done did it. Once you feel comfortable crooning and slaying your old favorite, you might dip your toes into other avenues of singing antics:

The Mash-Up: Singing another song’s lyrics on top of the karaoke song happening on the screen. Weezer’s got a fine mashup specimen: MGMT’s Kids with Gaga’s Poker Face. Mashup is particularly tough because you have to consciously ignore all the words flashing up on the screen. It’ll confuse the audience at first: heads will twirl to shoot a “wha?” look to their friends. But soon enough, they’ll start bobbing along and pointing at you once it connects. If that Weezer vid and acts like Girl Talk prove anything, it’s that a little cross-pollination can lead to some really interesting results. Try out your own combo.

The Alter-Ego: Becoming somebody completely different on stage. This sincerely awesome spin was revealed to me while taking improv comedy classes, aptly dubbed ‘characteroke.’ Our hilarious male instructor took the stage to howl out a scornful, haunting rendition of Alanis Morisette’s Uninvited. I still have nightmares of that performance, but I spent the entire song was laughing uncontrollably. There is such rich, creative potential in putting completely new twists on old songs. Bold choices and improvisation will be handsomely rewarded.

The Suicide: The ultimate in feats of karaoke strength! Drop in a song you are uncomfortably unfamiliar with, get up there and wing it! You will be pleasantly surprised with the results. Either, audience members will sympathize with your pain and laugh with you, providing generous applause for your risky undertaking. Or, even better, you might get up there and just kill it. Either way, it’s win win. Very fun in group settings, when everyone is picking eachother’s songs for the night.

Can I Get an Encore?

You should also know that there’s even more nerdy karaoke fun to be had these days.

My pals and fellow karaoke fiends Jeff and Scott just launched Bar Star last week. It’s a fun way to log your karaoke performances, and get reviews and comments from your friends. Also, track how you stack up against the people’s champ of karaoke. Current numbers tell me that I am 14% as awesome as Jeff is. The bastard. Let’s oust him, people.

And don’t forget to mark your calendars for Cog’aoke! at SXSW Interactive 2010, put on by the talented folks at Happy Cog. Web designers + karaoke + ???? = profit! I will be vying for a sliver of karaoke immortality, and you should, too.

Girls Just Wanna Have Fun

There are no rules except to enjoy yourself in the process. Find what works for you, and do that a bunch more times.

So I am interested to hear, what works for you? Leave your favorite jams and your own tips in the comments.

2 Comments :, more...

2010: The Year of the Better

by Jon on Dec.21, 2009, under General, Thinking, Web, Work

The last couple years have been about things cheap, fast, and accessible. Google and Wikipedia cemented themselves as de-facto brain extensions for anyone working on the web. Twitter became the 140 character venue for the A.D.D. blogger. Life hacks, lists of 46 best blanks to do blank. Even a broader sense of advertising: getting ripped in two weeks with one simple rule. Lose weight & get rich fast have been around for a while now, but you see what I’m getting at.

But there’s a new trend we’re seeing here. Lots of brilliant web thinkers (and even celebrities-turned-Twitter allstars) are turning a new leaf. Project52 insists we start blogging again and revive this mostly-dead medium. Guys like Anil, Merlin and Seth are beckoning us to reach a little deeper and put a lot of creative force and focus into what you produce. Derek dissects burnout beautifully. My buddy Jay has kindly asked all the hack get-rich-on-bullshit-content people to leave his internet alone. Rob Goodlatte preaches it. Even Mister Santa Maria’s new manifesto is fucking righteous.

I am thrilled to see a slow shift away from the hyper-multi-tasking life. From spreading ourselves so thin; we’ve done that. I feel like we as a small society of designers, developers and nerds, have proven to ourselves that we can juggle 528 things at once. But also, we’re going to start getting picky and turning away the 524 things we don’t want to do, and start focusing the handful of engaging projects where our passion lies.

THEN. Oh man. Big beautiful nasty things are going to start surfacing. Geeks being geeks for the sake of being geeks, and not just to fulfill a stakeholder’s wish or some bloated business objective, man. The Pictorys, and the Favrds (bless its little heart); the stuff EJS is talking about.

And, as I wrap up this post now, I see Jina writing on a very similar theme.

I have seen the future, people. It is lovely.

Comments Off more...

More Raging

by Jon on Dec.08, 2009, under Personal, Web, Work

Too much going on, gang. I can’t not blog.

Pleasantries first: since we last spoke, I have moved again. This will be fourth time in the last eighteen months, and should be my last for a while. Most notably, it solidifies that I’ll be in Seattle for a while. Good Christ, I love this city.

Learning. I’ve bought some fifteen books in the last two weeks. Design. Novels. Cocktail recipes. Big photo essays. A visual guide to dream interpretations. A few very trendy web-related topics (Ruby on Rails, Django, and mobile design). Follow along, if you want. It’s more fun if you participate too, though.

Work is blowing up right now in a big way. I built the site for Forbes’ #1 Fastest Growing Tech Company. But there’s more coming that I either don’t want to jinx, or can’t blog about yet. Lotta opportunity before me.

Part of me feels like I’m blowing up, too: quite literally, combusting. There is so much ambition, desire, and passion flowing through me. Sometimes I feel like my skin is going to rupture and just spew all of this energy all over the hardwood floor.

Thankfully, I blog instead.

1 Comment more...

Firefox 3 XMLHttpRequest Bug

by Jon on Jul.15, 2008, under Web

This one slipped right through the cracks.

We had a pretty big product go down for a coupple weeks due to this guy. In short, when Firefox 3 makes AJAX requests (XMLHttpRequest) and uses createDocument(), it sets the default character encoding to ISO-8859-1.

Which is fine, except for when you’ve got old, fragile code running that relies on its files to be in UTF-8. Then Firefox chokes, the XML file is returned as blank, and then pages show up empty. “No element found” errors popped up in many circumstances.

There’s a hackish JavaScript fix, though its reportedly ’10x slower.’ The best thing to do is check and clean things on the server side.

Check out the Bugzilla entry, and Encoding issue with XMLHttpRequest and Firefox 3 for a PHP function to clean up your encoding headers.

Comments Off :, , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...