Brandon Aaskov

Too Many Hobbies

​I like to code, mostly in javascript. I like to skydive, mostly from up high. I like to meet people, mostly nice ones.

Producers

When I was driving across the country, hours alone in the car, I was thinking of how would like to set up a workplace culture if I had control over it. I realized after listening to The Lean Startup that most of my ideas were already pre-discovered by Eric Ries, though he had many more to add. However, one concept wasn't covered. 

When it comes to agency-style work, I agreed with Eric in that teams should be limited to about 5 people to a team to keep them small and nimble. For a team of designers/developers, there should be one Project Manager and one "Producer" as well. Producers in Hollywood are there to just get shit done. Make calls, harass people, get things delivered and organized, etc. These people make life wonderful. Designers and developers should be innovating and creating, not getting bogged down with where to get documentation for Adobe Site Catalyst version 15 for javascript. And that's exactly what a Web Producer would do: get those things taken care of so others don't have to worry about it. This person doesn't even need to come with pre-existing relationships with these companies since a good Producer will find a way to get the answers regardless.

There are certain people that are just born to do that kind of work. They're so good at it that it boggles the mind at times. As a developer, I can honestly say that I'd rather spend time implementing something instead of trying to find where the hell a "developer portal" is and how I get access.

Delegating My Life (Part 1): Squarespace

It dawned on me recently that I should blog more. Okay, it wasn't a recent realization, but one that's been plaguing me time and again for years.

The problem is, I don't want to create/maintain for that. I just want to write the words and be done. That's probably one of the reasons Twitter is so successful - you don't even get design options.

I've always been fond of Squarespace, primarily because they funded The Totally Rad Show, one of my all-time favorite web series. I realized that their slick tools and good templates are worth the $12/month to just not have to think or worry about that crap. And I can get back to making content.

It's a strange thing to admit that there's some aspect of web development that someone else is better suited to do, but that's the case. If I met a film director and she said "I'm not good at editing so I like to have someone else do it" I would probably reply with "well, obviously." So I've accepted the same concept.

Movies While Working

I have long since been a proponent of watching movies while working. Like... since high school. Now, not everyone understands or agrees with this approach. In fact, many will criticize it, as my bosses have throughout the years. I strongly believe that we're of a different generation, where our ADD needs to be occupied and fueled for productive output.

I don't always watch movies while working - writing emails while a movie is playing is hard for me, not because of the movie, but because of the audio. I can't listen to music and craft an email at the same time either. If you're the type who has considered watching movies while working, I have some tips:

  1. Choose a movie you've seen several times. If you can quote this movie extensively or practically play it in your head, that's the kind of movie you should choose. Otherwise, you'll be paying direct attention to it and the idea is to have it as a background feature.
  2. Choose a movie that's not too heavy on action. For instance, if I try to have Mission Impossible 3 playing in the background, it quickly becomes apparent that it wasn't the right choice. That movie (while awesome) offers hardly any times between totally amazing action scenes.
  3. Be prepared to put it on mute or pause it... a lot. Any time I have to get on a conference call, write an email or read something to fully comprehend it, I have to mute the audio at the very least. In fact, I paused the video I've been watching 4 times since starting this article. I can be in a coffee shop, library, airport, etc. and not be bothered by the background noise, probably because most of it I can't make out. When the audio is blasting into my ears, I have to shut it down to focus. Your mileage may vary. Given this, don't be surprised if it takes an entire day to play a 2 hour movie (I started this hour and 20 minute movie at 3pm and it's now 7pm and I still have 10 minutes left of it).
  4. Know when to cut your losses. As I explained with the MI:3 example above, not all movies work well for this kind of activity. Furthermore, some days just prove to not be the kind of day where having a movie playing is the right choice. Know when to realize that you're not getting anything done and just turn the thing off.

I realize this kind of activity just fuels the prediction of Idiocracy (a great choice for playing in the background if you've already seen it once or twice). People could blame this on ADD, but I think we've just grown up in an environment where we're constantly inundated with media. For us to conform to an environment that strips that all away makes things incredibly difficult.

Not all jobs are conducive to this. If you're a coder, like me, then you're off to a good start. If you swing a hammer for a living, I would stick to listening to the radio blasting from that fancy DeWalt boombox that also charges batteries.

Mötley Crüe and Neil Strauss

The first Neil Strauss book I read was The Game, and that was before its infamy thanks to Mystery and The Pickup Artist. It was an Amazon recommendation, and a good one at that. Before anyone judges what they think that book is about, they should read it. Neil is an fantastic writer, and has a way with words that makes true life accounts both compelling and remarkable. Life tends to have its amazing moments, and Neil captures and delivers it eloquently. Okay, so with that said, I've been reading the Mötley Crüe book called "The Dirt: Confessions of the World's Most Notorious Rock Band" and one page in it delivers on its promise. And then continues to do so page after page. This was an era that I missed out on (not necessarily a bad thing), but I never really, truly understood what a rock and roll life was until this book.

Given that its members were high school dropouts, thieves, beggars, drunks and junkies, it's a wonder they ever achieved what they had. Nikki Sixx created most of the bands songs/lyrics for their early albums, and until I saw a picture of lyrics scribbled onto a stained and torn scrap piece of paper did I realize how short I had sold the band. Don't get me wrong, a lot of the lyrics are around partying, drugs and sex, but that's what rock and roll is. But Nikki's angst comes through from time to time, with lyrics like:

But in the season of wither We'll stand and deliver Be strong and laugh and shout

For some reason, I love those lines. Those were the original lyrics, but the last line was later changed to "Be strong... and rock hard." Rather unfortunate change, but at least I now know the original. If I had less sense (or perhaps was younger and more impetuous) I'd probably get that tattooed somewhere... and then regret it.

Overriding Click Through Behavior of DFP Ads In HTML5

When working on a project at Brightcove the other day, we hit a fairly common issue. When tapping the video ad playing back in the HTML5 player within an iOS app, the app would move the web view for the ad, but there as no navigation to get back to the app. Typically, the trick with this (at least in terms of Brightcove) is to override the click through behavior, and call a openURI on the Brightcove core package. However, in this case, we weren't sure what Google would support. It turns out, not much. They currently don't support HTML5 players in iOS apps, only their native SDK. That seems crazy to me, so hopefully they change their tune soon.

We discovered they're currently using window.open to get to the ad's click through. Using a plugin, we captured the tap/click of the ad, and we pass the ad tag URL up via postMessage to our application. The player sits inside an iframe, so the plugin includes our javascript at that level, requiring the use of postMessage to get it back to the parent application. If you're using a non-Brightcove player, and you're not using an iframe, you won't have to worry about using postMessage. At that point, we use the Brightcove SDK to open the URL in a modal web view that has navigation for the user to get back to the app.

So, though Google doesn't support it right now, we found a way to make this work. All we need is Google to say "we'll use window.open for the foreseeable future" and we'll be good to go. For now, I've created a gist of the workaround for anyone that needs it. If you're using this for Brightcove, and you've never used javascript plugins, you can get a pretty good idea of how they work from looking at the plugin in that gist.

Adobe Premiere: Slow Audio Playback

I was working on an edit in Premiere (5.5), and I had created a little audio track in Garageband to use for the video. I converted it to a WAV just to be on the safe side, imported it and tested it. No problems. Then I dragged it to the timeline and it sounded like it was playing back through Macaulay Culkin's Talkboy from Home Alone 2 (if you didn't get that reference, it sounded like slowed down playback). I couldn't figure it out and after much Googling and getting nowhere, I discovered that all of my audio sounded like that in the timeline. I closed Garageband, and it played back fine. There must have been some audio issue with drivers or who knows what - I don't care, because now it's working. I'm posting this just to help others in the future.

How To Make Your App Hated

Remember all those Facebook games people played incessantly? Mafia Wars? Farmville? Countless other Zynga games? The first thing that comes to mind (unless you're 50+ and you just loooooove playing those games and telling all your friends about it), is how g-damn annoying it is to see your Facebook news feed littered with crap about these games and how someone needs 5 cows or some crap. Zynga never really took the hint - people will avoid playing your game if they think they can't have control over their feed. That's the epitome of our online personas, and they're almost as important as our real ones (more important for some people), so we tend to get pissed when someone speaks on our behalf. I know several people who won't use Spotify because they think it's "that app that constantly tells everyone what you're listening to."

And you know what? The people who say that are kind of right. Spotify does this by default, and one of the greatest things about Spotify is the social tie-in. But how do you use Spotify without having this annoyance of spamming your friends? There are ways to disable it, which many have including myself. Quick side note: if you're looking for ways to handle any popular app - even just basic usage - just google what you want and throw in "lifehacker" and you'll probably find your answer. For instance "lifehacker spotify disable facebook posts" were keywords that got me what I wanted.

But it shouldn't have to be that way. In fact, it doesn't. As it turns out, when you're leveraging Facebook for an app, whether that be for something like Spotify or something as simple as a login system for Groupon/LivingSocial/DealChicken, the developer has the ability to request what data they need. Need being the keyword. I can understand if an app wants to know your birthday, or your email so they can send you whatever you purchased (as is the case with DealChicken), but to ask for your friends list, their posts, as well as access to post on your behalf is crazy. It's the equivalent of asking someone if you can marry their daughter, but asking on the first date. "Get the hell out of here kid, before I shoot you!"

Actually, in defense of DealChicken, they give you the opportunity to allow that behavior or skip it, which is a huge improvement and I'm thankful someone started doing it.

I'd prefer not even getting asked in the first place, but one step at a time.

This brings me to the "pure evil" part of the post. Draw Something by OMGPOP. Another story of meteoric rise of popularity, and uses Facebook so that you may play games with your friends (similar to Scramble With Friends or Words With Friends, Zynga games that don't blast stuff to your wall - though they could at any moment).

Yesterday, I got the latest app update for Draw Something on my iPhone. They added some cool features, sure, but what I noticed first was that it was asking me for Facebook permissions again. This time, asking me to be able to post on my behalf. "Hell, no!" I thought, and denied the app. I was then informed that I can't play unless I sign into Facebook, which is when I quickly learned that to sign in and play, I need to adhere to their new "requirements." So I allowed it, but then went to Facebook, dug up my list of apps and revoked the permission instantly. And you can do that at any time with any app, but it's not obvious to most people. Plus, doesn't OMGPOP realize that it's people HATE THAT CRAP? (I put it in all caps to really emphasize the hate, not to make some wordplay off the company name.) What a great way to take your impressive success and just throw it away.

People don't decide to get these apps because they see it inundating their Facebook feed, they get the apps because word of mouth suggest they're fun. I saw someone post a drawing of Green Day on Facebook, it piqued my curiosity so I downloaded the app, and now I play it religiously. Let the viral rumor mill make your app popular, don't try to "make it viral" yourself. There's no such thing. Plus, in trying to do that, you'll probably cannibalize the entire thing.

For extra credit, check out the list of what app developers can ask you for. You'll be pretty surprised the amount of information you can inadvertently give away.

The 3-Month Subscription

I was watching an episode of the Totally Rad Show today, and saw another sponsor message for Netflix. I have Netflix already, so the only way that Netflix would apply to me is if I were to gift it. However, there was nothing in the sponsorship message about gift subscriptions, and I honestly thought until this moment that you had to buy a year subscription. For Valentine's Day, one of the gifts I got Casey was a 3-month subscription to Birchbox. It was the perfect length: long enough to make it a good gift and make a true trial run, but not so long that it was breaking the bank or perhaps even unwanted (what if she didn't even like it?). For a mere $30, I had a pretty neat gift to give.

If you have a subscription service, you should have a 3-month option. In an effort to prove typical companies not doing this, I found out that Hulu and Netflix both do, and that Spotify doesn't have any gift certificates in the States (weird). The 3-month subscription is the gift of the puppy dog sale. The puppy dog sale relates to giving someone a puppy for a short period of time and then making them give it back unless they purchase it. I mean, come on! The majority of people are going to keep a puppy. But they're cuter than most things. I can't remember now off the top of my head what car company did this, but years ago they had a promotion where you could test drive a car and take it home for the night. Sneaky sneaky. The 3-month gift subscription is genius because it gives someone long enough to get used to a service - accustomed to its features and offerings. When that service disappears, most people will step up and pay for their own subscription.

So, if you believe in Hulu, Netflix or Birchbox (or any others), give out a 3-month subscription. That's even cheap enough to do it randomly for a friend. Side note: I'm pretty excited about the Men's version of Birchbox.

Deprecating and the Line In the Sand

We now live in a world (well, I do anyway) where the majority of the APIs that we work with are ever-changing, because that's the nature of the web. This is a good thing. We get new API methods and features, tweaked and fixed old methods and... deprecated methods? (sad applause).  Deprecating is the politically correct way of saying "we're not supporting that anymore" without having to risk breaking existing implementations. It's reasonable, it's what we're used to, and we get it. But it doesn't have to be that way, as Github has proven. Entire API versions can be eliminated. There are several companies out there who build their entire service on top of Github's APIs, so for them to say "we're terminating the first two versions in favor of our latest" is ballsy. And awesome. While a feature might be deprecated, it still needs to have plenty of regression testing done so as not to break current customer implementations. That's a real problem. A big one. How can one every hope to evolve an API to suit the ever-changing needs of the world and also keep it from becoming severely bloated? Sure, you can try to be a goddamn wizard and see the future of what your customers will need 3-7 years down the road, but that's just unreasonable. So unreasonable I thought it was necessary to be blasphemous to drive my point home.

The customer mindset needs to change. We need to understand that things like this will change, those changes will likely cost money, but your application and the service providing the APIs will be all the better for it. It's like getting 120k mile maintenance done on your car. It's probably going to be pricey, it's kind of a pain in the butt, but it needs to be done. And considering how rapidly the web landscape changes, we shouldn't be shocked to have to do similar maintenance every 2 to 3 years.

However, there is a problem here. Let's say company XYZ (that almost comes up as often as foobar or Hello World) is using Github's APIs, but they're unaware of what version, how it's implemented, etc. They hired some agency to build their service way back when. Now Github is terminating those API versions, and company XYZ is about to have some serious issues. There needs to be a way to contact the owner of the API keys and inform them that their implementation is in jeopardy of breaking, and they need to be aware of the timeline they have before the **** hits the fan. This means that Github would need to setup some metrics to figure out how many customers, and more importantly who, are using these outdated API versions. At that point, they can reach out to them directly, and if necessary, help them resolve the issues personally. That's a bit of a loss leader for Github, so the hands-on help to resolve issues would probably be reserved for the bigger customers (understandable), but it goes a long way to the long-term health of both companies. Github would have customers using the latest and greatest, and now they don't have to support significantly old versions of their API, which would include a lot of engineering cycles. They can now focus their efforts on new features and optimizing what currently exists.

APIs aren't perfect, and won't be for quite some time, if ever. The web itself is extremely volatile (I think the HTML5 shift and SOPA are great examples there) and it's unfair of us to expect it to exist without change for such long periods of time. If we can all adopt the Github idea (and by "we", I mean the customers of the product), we can help move the web along at an even quicker pace.

Anyway, kudos to Github for doing the right thing.

Negroni

As previously stated, my goal with sewing is to eventually make a men's shirt. I need to work on my skills, obviously (I still suck at seams but I think that's mostly due to my laziness with pressing). However, the other problem I ran into was that several patterns for men are very... outdated (i.e. horrendous looking) and I don't have the skills to modify the pattern heavily to get it more contemporary. Enter the Negroni pattern from Colette. A few people have done this as part of the Male Pattern Boldness sewalong (a 17 part adventure, with part 16 going into detail about changes and tweaks for a good fit), and the results were good enough that I was convinced this would be the pattern I needed. No muslin on this one, not a fan of the fabric with this one, but it came out decently, and I like some of the details on this (stealing those ideas!). Just google Negroni pattern and I'm sure you'll see plenty of results.

I've been to JoAnn fabrics a few times now, and I find it pretty damn overwhelming. Plus, nothing seems to be organized in a way that makes it easy to find what I want. I'm just going to start ordering bed sheets online and using that or something. Anyway, today I visited Z Fabrics in downtown Portland at their new location. Not a big store by any means, and thus a limited selection of everything, but they make up for that with quality. They had some nice shirting fabrics, and I picked up some corduroy just to play around with and hopefully make the Osman tie out of, as well as some all-around machine needles. But lo and behold, they carry Colette patterns. They also carry some other contemporary patterns that are quite a bit more fashionable than the big guys, but I was hunting for that Negroni pattern, and I found it. It wasn't cheap  at $16, but that's the same as it's priced online and I didn't have to pay for shipping and got it immediately. So, obviously I snagged that one.

I'll definitely be frequenting Z Fabrics more. It's definitely more my style, and they offer some classes, which I'll almost definitely be taking. I can't wait to screw up several shirts over and over! I'll keep it simple and keep working on some basic projects for the time being, but now I have the pattern waiting in the wings for when it's time.

Dressing Nicely, On the Cheap

I've scoured many men's style-related blogs, and the one that sticks out the most is Dappered.com. Don't get me wrong - I love blogs like Esquire, Uncrate, The Effortless Gent, etc. but not all of us have the money to get a $1,400 pair of shoes.

Dappered fills that role showing you some nice, traditional looking options that you can pick up at Amazon, Target, Gap, etc. If you're not hell-bent on designer labels, and you want to dress a bit sharper but don't want to break the bank, Dappered can be a great guide. Plus, they frequently post about online and in-store sales that can really make some of the middle-tier options incredibly accessible and affordable.

Sewing, Like a Man

A few years ago I decided that I wanted to learn how to sew. It seemed like a really good skill to have for a variety of things. It basically started when I was watching White Collar and saw Matt Bomer wearing all these vests with notched lapels. To this day I still want one and have yet to find them - a buddy gave me his that needs to be tailored, but that's the only one I've seen. My cousin offered to teach me how to sew on some industrial-grade equipment, but I neglected to take him up on the offer like a fool. I suppose part of my apprehension was that it seemed... feminine. I've learned since then it's really not. If you take a look at the tailors on Savile Row, you'll see they're almost entirely men. About a month ago I started to get more serious about this new hobby, bought a sewing machine, and started to get some projects in mind. I researched sewing machines obsessively as I do with any gadget over $50. I wound up getting the Brother CS6000i, and so far it's been great. It's certainly not top of the line (which is really expensive, by the way), but it's not cheap either and should be able to carry me through all of the projects I want to do, though I have yet to test it on multiple layers of raw denim.

I dove in head first knowing nothing aside from what a bobbin looked like and where the needle was. Thankfully, the book that came with the machine as incredibly helpful and got me sewing a variety of stitches in under an hour. I had already picked up some muslin cotton just to screw around with. After doing that on and off for a couple of days, I started going through books.

For those that don't know me, this is how I operate: I find a hobby I want to get into, read as much as I can about it through blogs and books and get as much of the terminology and theory as I can in my head, then sit down and start to work. I may forget the details of some things, such as how to do a felled seam, but I know what it is, what it looks like and where to refer back to find it again.

Here's my library to date, just for sewing stuff:

There are plenty of repetitive sections in these books, particularly around tools to use, but each has their own place and is very helpful.

I quickly realized that I need to change my ultimate goal, and also realize that there will be a lot of trial and error to get to that point. The goal now is to create a shirt for myself. That said, there are a lot of things that go into that aside from knowing how to stitch straight and some various hems/seams. Things like interfacing, using a turning point, a tailor's ham, darting, pleating, etc. I know what these things are now, but implementing them is a different story. Time to start simple.

I hit up our local fabric store and got some flannel fabric and elastic, and a learn-to-sew pattern for making PJ pants. I spread out the task over a few days, and before long had a pair of flannel pajama pants. They're nothing fancy, and they're baggier than MC Hammer's pants, but they work and they're comfy. Working in a world where my output is 1s and 0s, it's nice to produce something that I can actually use and hold.

I'm going to make some more PJ pants for my girlfriend and little cousin, and this time work on altering the pattern to have a more tailored fit - that should be a fun experiment. At the same time, I'm going to work on altering off-the-rack garments (hemming jeans, pinch-and-pinning oversized shirts, etc.) to just build some basic skills. That Sew Everything Workshop book should help too, though most of the projects you see in books/blogs like that are for making tea cozies and baby blankets. I don't need that shit, but I suppose I can give it away.

So far, it's been a really rewarding hobby and one that can be done at any time of the day or night, which I can appreciate given that skydiving is so weather dependent. In terms of online/book resources, there's surprisingly little information out there. For instance, in the several articles I found about hemming jeans and keeping the original hem, I can't find out what color thread should be used. I think it's a dark thread to match the denim color, but I'm not positive. I'm going to post more about projects in the future, and maybe some of my trial and error that I go through to help others who are starting out.

 

Bespoke Suit

Ever since a couple of years ago during the Mad Men craze, I got pretty interested in men's clothing. And by that I don't mean Kid Robot t-shirts, but instead well fitting dress clothing. My job, by nature, doesn't require me to dress up, which I like. But there are times when I need/want to feel pretty. I admit it.

So, I looked into the suit thing. It quickly became apparent that suits were made for models, or off-the-rack suits anyway. Reading through sites like The Art of Manliness will tell you that, as will the numerous other sites you'll find in your research. Hell, you can just try one on and find that (assuming you're not a model, though if you were you probably have free suits anyway you lucky son of a bitch). So what's a guy to do?

Bespoke suits. A bespoke suit is a suit which is entirely customized for you. They take your measurements, they cut the fabric to those measurements, you go in for multiple fittings, and after several weeks you have a one-of-the-kind, entirely made for you suit. It's like a high-end wedding dress. But for dudes. And probably not white. Looking into bespoke suits will, before long, lead you to discovering about Saville Row, which is the epicenter of fine, high quality tailoring and the best bespoke suit money can buy. And holy hell, does that come at a price. You probably can't get a good suit on a typical day for less than $2,000. The average price ranges from about $2,000 to $5,000, though with some rare and hard to find fabrics, it can go far beyond that. Some deals here and there could get you one for around $1,200 to $1,500, but that's still a chunk of change. Imagine spilling something on that suit? I'd probably murder whoever was sitting next to me just on instinct, even if it wasn't there fault. That's like wearing a used car. A shitty used car, but a car nonetheless.

Then, digging around some more I found the concept of this online bespoke tailoring. Seemed too good to be true, until I found out that while London tailors are the best at their craft, Hong Kong tailors are nothing to scoff at. Typically, Hong Kong tailors will do tours of the US from time to time (once or twice a year) and setup shop in a local common area. I know that even way up here in Portland, ME, some of the best Hong Kong tailors will come by and setup in hotels (the conference rooms, not their own rooms... I think) and you can get measured and then several weeks later receive a suit.

Of course, with the advent of the interwebs, it was only a matter of time before someone figured out a way to make this work while you sit at home. The first of these services I tried was A Tailored Suit. I had my buddy measure me up for a shirt, which was about $100. You might think that's a lot for a shirt, but I can't stand swimmy arms, a loose-fitting back and/or a tight neck. Those are common themes when I shop for shirts. Do you know why? Because I'm not a damn model! I received the shirt a few weeks later with a hand written note from the owner (nice touch - I was impressed). The shirt fit very well and I was quite happy with it. The customizations were so vast, I picked some things I probably shouldn't have. I should have kept it basic, and I should have ponied up a few more dollars for a nicer fabric, but this was just a test run anyway. I even got a call from the same owner a couple weeks later to make sure everything fit okay. They offer two services: I could send it back for alterations or take it to a tailor for alterations and they'll comp me up to a certain amount of money. Thankfully, I didn't need any alterations and I was satisfied with my purchase. The upside here is that my measurements were now on file, and it would be a breeze to instantly order another shirt with the exact customizations I wanted. Considering that a shirt that fits decently typically costs me about $60, I wasn't bent out of shape at spending $100 to $150 for a shirt, plus I hate going out and shopping. Now that I know my sizes with clothes and what brands fit me, I'm in and out of stores in less than 5 minutes - I don't even try stuff on anymore.

Fast forward a couple of years. I've had my eye on a very similar service this entire time called Indochino. It started pretty soon after I ordered my first custom shirt from A Tailored Suit, and the website was high-polish (which I appreciated). I read some reviews, did some research and found that most people were generally happy except that a few people had to send their pants back for being way too short, but it all worked out in the end. Similar to A Tailored Suit, they give instructions so you can measure yourself at home, but A Tailored Suit will give you a credit (up to $25) if you use a local tailor for your measurements. Indochino does not, but states that at-home measurements are usually accurate and give the best results. Not sure if I buy that, but okay. Indochino does offer up to $75 for a local tailor if you need alterations after getting your order, and if need be, they will remake the suit entirely. That's pretty great.

Recently, a deal became available on Gilt City. The deal was for a suit from Indochino's Essentials collection for $339 (normally $379). The original price was already a great deal, but the Gilt City deal also included a shirt and a tie, so I was in. Plus, on top of that, my lovely cousin Sarah gave me a $50 gift card to Gilt which I promptly used to get in on this.

Tonight, I had my girlfriend size me up with some measuring tape (not the construction kind). We walked through each step of the measuring process, watching Indochino's videos along the way. If you're going to do this at home, make sure you wear your best fitting dress clothing (shirt, pants and shoes) before doing it. It was relatively painless, though tailors are clearly more seasoned at this and there was a lot of second guessing and wondering if we were doing it right. I put in the order for a classic navy suit, fancy-free white shirt (Indochino calls it their "utility" shirt) and a couple of ties (one of them being part of the deal, so I only ended up paying $39 for the extra tie).

And now all of my measurements are on file. Will it fit the first time? I'm not sure. Will it be of quality? Yeah, it probably will be. But if all goes well, and I'm hoping it does, I'll be able to just click and order another suit in less than a couple of minutes. The website process was slick as hell, so here's to hoping the rest of the process is the same. I'll write another post once it comes in (slated for around 4 weeks right now, which is backed up for them) and even show some pictures of how it fits me out of the box.

Another big thanks to Sarah for the gift card (making this whole thing even cheaper than expected) and Casey for putting up with my bitching during the measurements.

Roku

Right after Christmas, I took my Amazon gift cards (my family knows me well) and got myself a Roku box. I actually used Boxee on my Mac Mini for a while, which is great for playing pirated content (not that I do that), but didn't have a Hulu+ integration or Amazon Instant Videos. I was really looking for the latter since my PS3 and XBox 360 handle Hulu+ and Netflix already. I'm also a big Revision3 fan, and I know Boxee and Roku both support that "channel".

So, I took the plunge and tried out a new device. As I've gotten older, lazier, and gotten a massive TV, I decided I was sick of watching movies on my computer and dealing with a configuration that only I understood and could setup (my friend Kyle J. Norris understands all too well how bad this used to be for me).

First, it's small. The device is so crazy, super small for what it does. Which is great, because it's easy to hide. Roku offers three different boxes depending on your needs. I got the top of the line one because it wasn't that much more and I want to develop on it as well. Mine has a radio frequency (RF) remote, but I'm not sure if the other two offer this - it's unclear if they're all RF but only the high end one supports motion control, or if only the high end one is RF. Anyway, that makes it even better that it's easy to hide since you can control it without being in line-of-sight. Second, setup was painless. Once I tied it to my accounts (Hulu+, Netflix, Amazon, Vimeo) everything else was a breeze. I browsed some channels, and added some stuff I'll probably never watch.

The device is always on, which some people complain about. There's no off button, but when it's not being used it barely sips power so I wouldn't worry too much about that.

If you have a PS3, the Netflix and Hulu integrations are pretty much the same - nothing crazy there. If you have an XBox, then you probably don't realize the Hulu integrations are better on other devices. Ignorance is bliss. But what really sold me was the Amazon integration. Not necessarily because I'm a Prime member and can get things free like Teenage Mutant Ninja Turtles II: Secret of the Ooze, but because I can rent things easily. I've gotten to a point where I don't mind shelling out $1-$5 to rent something since I don't do it all that often. Most of what I watch I get through my subscription services, but when I want to watch Christmas Vacation and I don't own it, renting it for a couple of dollars is a great option. I realize that the Apple TV also lets you rent movies, but then you're anchored to that device or another Apple device (which doesn't actually bother me). What I don't like about the Apple TV is that it barely integrates with other third party apps.

The quality is great, by the way. The Roku 2 XS supports 1080p and when I'm watching Luther (my latest fix) on Netflix, New Girl on Hulu+ or renting an HD movie from Amazon, the quality is great. Reading reviews you'll see comments in regards to the quality of the stream, but I don't think people understand that their internet connection is likely to blame, or perhaps they don't understand how rendition switching works.

I have my Roku wired directly to my router. I like to hard-wire devices that can be, but it does come with WiFi built in. I actually used it in that mode for about a week and I honestly see no difference in quality. Only once in the past month have I seen the stream pause mid-movie to re-buffer, and I'm very satisfied with that rate.

Lastly, the Roku has a USB port for flash drives and external hard drives. I've read a few mixed things about support for codecs and containers, or even hard drive types. For instance, I read somewhere that hard drives that need their own power source (i.e. aren't powered off of USB) won't work. Mine is powered off of USB, so I didn't test that. What I did find, to my surprise, is that it played just about everything I wanted it to. Most of the content I was playing were HD rips of things in H.264 wrapped in an MKV container (if you don't know what that means, then this paragraph probably doesn't apply to you). It did take a long time to scan my drive, and going back up a folder and then back down caused it to re-scan, which is frustrating. However, it is about 500GB of movies, which may not be the case for most people. There are services like PlayOn that will allow you to stream videos like that from your PC, but I didn't test that out because... well, because I didn't care. I'm trying to simplify my setup, not complicate it.

In short, it's a great device to move you off of your computer, even if you're only using it to rent movies off of Amazon. It's inexpensive (relatively) for what you get, and it seems like publishers and content providers more readily provide their libraries to Roku than they do the Boxee box. Don't get me wrong, I love Boxee, but I think Roku hits the sweet spot for the consumer market.

TextMate: Shifting Right or Left Issue

Every so often I switch text editors (no vim or emacs for me, sorry) just because I want to try something different and see if I like it. I have always had TextMate, but I never used it seriously for developing. (I'm going to rant before getting to the issue I discovered, so read on if you're just looking for the solution). I was using Coda for the past couple of years because of it's nice GUI, simple FTP integration and Subversion integration. But then I stopped using Subversion in favor of Git (along with GitHub), and there's no support for that. And then I basically stopped using the FTP feature since I'd rather deploy projects in a more official way - even zipping the project and unzipping on the server works better. Then, I realized there was no way to use spaces instead of tabs, so it started shopping elsewhere.

Then I saw a nice little screencast by CSS Tricks going over some TextMate shortcuts via some extra bundles (Zen Coding, mHTML and mCSS). They were pretty cool, I started playing around, but most of all just started getting used to how insanely simple it all is (and that I can convert tabs to spaces easily and set my soft tabs to however many spaces I want). TextMate hasn't been worked on in years, and I have no idea why. Coda has been pretty stagnant too. Maybe something about these editors makes them not very fun to iterate on. I also tried out Espresso, but that's a bit too much GUI for my needs, though I like their browser where you can jump from method to method (not so great for all the anonymous functions in JS though). I used Aptana back in the day, but it was just too resource intensive for what I needed out of it, and I've never been a fan of Eclipse.

So, anyway, after watching that screencast I installed Zen Coding as it had some pretty cool stuff. But then I realized I couldn't indent or outdent code anymore (TextMate calls it Shift Right and Shift Left and uses the shortcuts cmd + ] and cmd + [ respectively). You can still use Shift Right and Shift Left from the menu, but the shortcuts didn't work. I found out this is because Zen Coding overrides those shortcuts for its own purposes. SHAME ON YOU ZEN CODING! Thankfully, it's easy to fix. Go to Bundles > Bundle Editor > Show Bundle Editor and find the Zen Coding section on the left-hand side. Twirl down that section and you'll see some of the shortcuts for the bundle. There are two you want to remove:

Once you remove the "Select Next Item" and "Select Previous Item" shortcuts (or remap them if you so desire), then you should be able to use the Shift Right and Shift Left shortcuts again.

jQuery's Change Event Not Firing

I hit this annoying issue where listening to jQuery's change() event would only fire when the input field I bound it to lost focus:

$('#search-form .term').change(function(){
  console.log('did this fire?');
});

You'd think that would fire when typing into the input field, but it doesn't (it's just a basic text input field by the way).

After some Googling and reading a bunch of stuff on Stack Overflow (god I love that site) and other sites, it seemed like this was a common problem with select elements in IE. Great. That doesn't help me. I tried using bind() and live() instead of the change() method, but that didn't work either:

$('#search-form .term').bind('change', function(){
  console.log('this only fires on losing focus');
});

$('#search-form .term').live('change', function(){
  console.log('this only fires on losing focus too');
});

Eventually, I found the answer. There are a bunch of different things you can pass in at the same to the bind method. What I found suggested the following:

'change keypress paste focus textInput input'

The answer on Stack Overflow suggests that it won't fire multiple times, but it definitely does. What I ended up going with was this:

$('#search-form .term').bind('input', function(){
  console.log('YAY!');
});

It works even when you paste content too. Hell, yes! Thank you Stack Overflow and the rest of the interweb. You can also grab the "gist" here: https://gist.github.com/1596867