Comments In Code Aren't Evil. Bad Comments Are.

Jun
06
2009

I've been watching an exchange of articles over the last couple of days stemming from 10 Commandments for Creating Good Code. It's a pretty good list, but several people (including me) think he may have missed the mark with his take on code comments.

I posted a comment on the followup, but thought I'd take a few minutes to tinker with doing some video as a response as well. Steve Borsch suggested that I should start video blogging and I figured I'd give it a shot. So, here's the video version.

Mexican Burrito Bowl Recipe

May
25
2009
Mexican Burrito Bowl

I spent a good portion of the Memorial Day Weekend cooking. Lots of BBQ outside and a fair bit of time in the kitchen too. Quite a bit of what I made was actually experimental. Among those experiments was an attempt to do something about our Chipotle addiction (and the "methadone" of said addiction: QDoba) by coming up with a reasonable facsimile out of our own kitchen.

While not all of the experiments turned out like I wanted (the meatloaf had WAY too much Italian seasoning), the Chipotle analog turned out really good. So, I figured I'd share it with all of you.

We generally get the bowls (sans tortilla) when we go to either place. So, we started with the lime rice (the cilantro is optional and subject to whatever side of the cilantro wars your loyalties lie). Basic Basmati rice with lime juice worked out great.

On top of that, I threw together a black bean concoction with black beans, onions, garlic, tomatoes with chiles, and a splash of white wine.

Since I BBQ'ed a pork shoulder (see video below), we went with that for the meat, but clearly this recipe works just fine without it, making it a really decent thing to make if there's a mix of vegetarians and carnivores at a party or social dinner, without having to make 2 separate meals for the different groups.

Top with salsa, sour cream, cheese, cilantro (again, skip it if appropriate), etc. and we ate it using chips as utensils (like we usually do with Chipotle). I won't pretend that it's a clone (because it's not), but it definitely fits that same niche and might work out if you've got a Chipotle craving.

Download the recipe as PDF

The Problem With Video Distribution

May
11
2009

Every TV in my house (and there are too many, by nearly any standard) is connected to at least one of the following:

  • A DirectTV Tivo
  • A Roku box
  • A Vudu box
  • A computer running Boxee.

Independent of each other, I would recommend each and every one of those devices to anyone interested in buying one. The problem is that no one of those is likely to actually give me or anyone else the actual mix of video entertainment that they’re after.

That’s because we’re in the middle of one of those nasty transitional phases of media. It’s nasty because it’s a much bigger shift than the last several in video distribution (broadcast to cable, VHS to DVD, etc). It’s nasty because

The things I want to watch are produced by a variety of entities. From independent movie producers to TV companies to online podcast producers to subsidized gov’t projects (BBC & CBC). And, where they’ve decided to distribute video outside of the existing cable/satellite/broadcast TV setup (not all of them have), they have chosen a seriously fractured approach.

If the content I watch is a serial video series produced by a traditional TV company, here’s the current situation.

If I use the Vudu box, I can watch a few old seasons of shows, a few that are a full season behind and that’s about it and each episode is $2.

The Roku box has a bunch of CBS stuff and lots of old shows (without extra charges on top of my Netflix subscription), but nothing to speak of from ABC, NBC, FX, FOX, HBO or AMC in that bundle. Lots of that stuff is available via the Amazon partnership, again at $2 an episode.

The Boxee is making valiant efforts, including working hard to get Hulu support. However, most of the TV on Boxee is actually coming in via web streaming and looks far better on a 9” netbook than in a 52” HDTV. Of course, the Boxee will also play anything that is downloaded via Bittorrent, in full HD, but NONE of the producers of this content will provide it that way, even *with* commercials embedded.

As an aside, if TV producers put up full-resolution video downloads (including a reasonable number of ads) via Bittorrent, I would be first in line and would ensure that the torrent was seeded for a good long while.

Anyway, the Boxee will also handle anything iTunes sells, for, again, $2 an episode. I detect a trend.

And, if these were the only options for TV, it’d be no big deal. However, for about $90 a month, I have 250+ channels (including HBO/SHO) and the Tivo capacity to record 6 channels simultaneously. While much of that content would be recorded with commercials, some (the aforementioned HBO/SHO shows), that content is delivered MUCH cheaper than $2 an episode.

Unfortunately, that lower price means I have to know that I will want to watch that content in advance of a specific “airing time” (a distinct legacy of the synchronous nature of over-the-air television). Imagine if, in order to get a copy of a musical album required setting your audio Tivo so it gets recorded on Thursday, when it’s “on”.

The problem with that is that nearly half of the shows I really enjoy are shows I discovered long after they originally aired, making the Tivo an inadequate solution.

Movies are a bit better, with most of the rentals at about the cost of what a DVD new release rental would be. I also have done my fair share of buying DVD’s on Amazon, watching them and selling them back on Amazon, which puts TV seasons WAY below $2 an episode and movies pretty cheap too.

As far as podcast/videocast/etc. content, there isn’t much of an edge to any of them. All but the Tivo have TED videos, for instance, and most have some form of “The Best of YouTube”. Of course, they all act like this is a major accomplishment, but whatever.

The real problem, as I see it, is that nearly all of the options for video delivery are distributor-focused. Boxee is the one exception (which is probably why it’s the one I’m most optimistic of) in that if you can give it an RSS feed with video files or torrents and I don’t have to care about who’s distributing it.

I wish this was a technical problem. I wish that this was about bandwidth or codecs. Instead, it’s about whether Viacom’s lawyers have worked out a deal with Amazon or Disney’s lawyers have worked out a deal with Vudu. And, in the mean time, my ideal scenario seems lifetimes away.

I’d absolutely love to be able to take the $200+ a month (between everything) I pay for video entertainment and just get access to watch stuff: old or new, TV or movie, but there’s no sign of it happening. I’m really getting sick of cobbling together a legal solution.

That’s because the illegal solution for exactly this desire is really easy. An installation of uTorrent and a list of TV shows you want gets you automatic delivery of shows to the directory of your choice, ready for Boxee to display in beautifully-encoded video on the big screen TV, complete with subtitles in the language of your choice, even if the original producer didn’t include them.

Please, content producers, quickly figure out how to solve this problem, because the grass is looking pretty lush and green on the other side. I’m not a broke college student and am willing to pay a fair price. However, $52 per season ($2 x 26 episodes without a seasonal discount) isn’t fair.

I’m far happier with my eMusic subscription (more like $0.30/track instead of $1+ for iTunes) and many of the $6.99 albums I buy on Amazon than I am with $15 for a CD. Note that I’m not a freeloader looking for a free buffet. I’d just like better options.

In the mean time, if you’re looking for a demo of any one of the half-solutions currently available, let me know.

My Toolkit for Powerpoint and Keynote Presentations

Mar
23
2009

Between technical brown bag sessions, project status meetings, and just plain putting together something to explain an approach or solution to a problem, I find myself in Powerpoint/Keynote more lately than in the past. I’ve been asked a variety of questions about those presentations where the answers are something I thought might be interesting to share.

Zeroth, I’m fully aware of the irony of an article like this not “practicing what it preaches”. Note that creating an engaging presentation full of lively slides is more work than quickly writing up a few points. This article is the latter because of the effort involved in the former when faced with my current work queue.

First, is that I do use both Powerpoint and Keynote and go back and forth, even on the same presentation. That’s due in large part to the fact that I don’t actually use either one when it comes time to fire up the projector. Rather, I use both (and quite a few other tools) as mechanisms for creating slides/graphs/infographics, etc.

The final result of the computer side of a presentation for me is actually a PDF. PDF turns out to be a great format for actually delivering the presentation. You can throw the PDF on a memory stick and it’s almost a universal certainty that you’ll be able to open it using whatever machine you’re expected to use.

Given the number of people I’ve seen show up with Keynote only to discover a PC, hard-wired to the projector, I think this is a sound strategy. Acrobat Reader handles full-screen just fine and also includes the only transition I ever use: fade. You don’t get the fancy “builds” where text comes flying in from the back of the room, does a little dance around your pie chart and then settles into your bullet point ranks. And, I’ll go on record that that’s a good thing.

So, basically, I use whatever makes sense to get a series of PNG slides that I turn into the final PDF presentation. However, before diving into how I build those slides…

Before Creating Slides

I think the most important presentation habit I picked up was to start working on the presentation somewhere other than *in* Powerpoint or Keynote. Both of those tools encourage a pattern that I think is the number one cause of the bullet-point onslaught.

What I see people do is File->New Presentation and they start by filling in the title and adding a new slide. That slide is always the Title/Bullet Points layout and they start filling in those boxes and just keep right on going.

If you start away from the presentation editor and organize your thoughts and ideas into the points you want to make, the things you want to convince your audience of, the things you want to be sure you communicate, etc.

This is where good old fashioned note-taking, outlining, and mind-mapping come in. Capture the ideas so you can cut out the crap that doesn’t belong. Even if you take a bunch of notes, throw them all away and go to Powerpoint “fresh”, your thinking will be clearer and the presentation better for it.

Slide Design

As I’ve been working on improving my own presentation techniques, reading books like Presentation Zen and slideology looking at the best of Slideshare, I’ve seen lots of “named” styles and varying sets of rules. Rather than getting hung up on the details of whether one of those sets of rules is “better” than another, I have boiled it down to my own guidelines/principles that are common to most such recommendations:

  1. The fewer words on a slide the better.
  2. The words on the slide shouldn’t be the same as the words you say.
  3. The slides are a side dish, not the entree.
    • The things I’ve actually got to say are what I’m there for, otherwise, why bother doing it in person?
  4. Let the slides deliver the joke.
    • When you’re nervous, the timing of humor can be difficult. If, however, you insert little jokes into the slides, as though your “assistant” was messing with you, etc. you can still use humor, without the stress of having to hit the punchline.
  5. A picture is worth a cup of coffee.
    • Whether it’s a graph or a photo of a screaming monkey, a picture will keep people awake and engaged more than text.

To those ends, I basically have a handful of slide layouts that I use, none of which are in the default layouts from EITHER Powerpoint or Keynote.

  • Basic Text – this is the headline font, smack in the middle of the page. More than about 5-6 words and this layout stops working.
  • Quote – this is the subheading font smack in the middle for quotes of 1-2 sentences. I avoid using this for anything but a quote.
  • Fullscreen image – this is usually just the default “blank” with the image dropped in.
  • Graph/Chart – again based on blank with just the graph itself and maybe a small caption. The graphs/diagrams need to be simple, but then they can be really useful.

That’s it. If I am concerned about people “catching up” later, I publish a different document or record the presentation. For URL’s and links to resources, etc. I’ve been leaning more and more on a handout that I give out at the end rather than trying to include that stuff directly in the slides and hoping people will note down the info.

Finding Images

So, where do I find images and how do I keep track of them? This tends to be one of the most common questions I get.

First is that I always save a copy of the page where I find an image online as a way of taking a snapshot of the permissions it was marked with when I downloaded it. To that end, I use the MHT format to save the entire page, including the photo itself, into one file, which I name according to a description of the photo.

All MHT is as a format is MIME-encoded HTML. That’s what is used for email attachments. So, don’t let anyone tell you that it’s a “Microsoft proprietary” format. It’s not. Internet Explorer, does, however, support it out of the box, while Firefox requires the UnMHT extension to be able to save or open the format.

Then, where to get the images. I get 90%+ of them from Flickr’s Creative Commons section. My site used to have an app that helped search through those, but it’s been down for a while and I’m not sure when/if I’ll put it back up. In the mean time, I actually use a simple bookmarklet that prompts for a term and then searches for photos based on that.

Flickr Search Bookmarklet

Put the following into a new bookmark as the URL, putting it all on one line.

javascript:Qr=prompt('Tag...','');if(Qr)location.href='http://www.flickr.com/search/?q='+escape(Qr)+'&l=commderiv&ss=0&ct=0&s=int&m=tags'

Thesaurus Search Bookmarklet

And, since it can be a trick to figure out which term to actually search for in order to get something you want on a slide, I’ve got a similar bookmarklet for a Thesaurus search.

javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Enter%20word%20to%20find%20in%20Merriam-Webster%20Thesaurus:',''))}if(Qr)location.href='http://www.merriam-webster.com/thesaurus/'+escape(Qr)+'%20'

I tend to cycle through those, fairly quickly coming up with stuff I can use. It generally works well to search for abstract terms like “fast”, “angry”, “calm”, etc. to get good slide material and tends to cut down on the tendency to have slides made up of images of the exact words you’re using, which feels weird to the audience.

Overall, this set of tools lets me work on multiple presentations at once, throw one together fairly quickly and has generally gotten me quite a few compliments when given in places where the bullet-point brigade is the norm. Hopefully, they can help you too.

Inappropriate Followup Marketing

Mar
19
2009

Today, I got 3 separate marketing emails that both completely wasted the opportunity that I offer them as a customer. In both cases, a different message would have almost certainly resulted in me spending money instead of just deleting them.

The first one was from Lenovo (formerly IBM), from whom I bought the ThinkPad laptop I’m using to write this post. What the email contained was a list of laptops from the mid-level to high end. Given that the existing laptop is 9 months into my normal 24 month replacement cycle, I’m a solid 15 months from buying a new laptop.

I am, however, ripe for some new accessories. I’ve been thinking about getting a docking station, just had my thumb drive die and would like a larger travel mouse. Given that they know EXACTLY which laptop I have, mentioning any one of those items would have had a pretty good chance of getting me to spend a little.

The second was from MacMall. I bought a Mac mini from them a couple of months ago for web testing and iPhone development. Guess what they’re ad was selling? The great deal they’re running on Mac mini’s. Exactly how many Mac mini’s does the average customer buy in a 2 month period? I have, however, contemplated whether I want to upgrade iLife from ‘08 (which I had from last year) to ‘09.

And, finally was the one from the car dealership. Back in December, I bought a 2006 Chrysler 300. The ad went on and on about their new promotion for people to lower their payments by trading their used car in on a new one (aside: these kinds of deals are usually done by getting you a loan where you owe more than the car is worth and not exactly the deals they sound like). They specifically mentioned trading in my “2006 Chrysler 300”, clearly an attempt at customizing the marketing message. But, I don’t WANT to trade this car in.

What approach would I have taken if I worked for the car dealer? Any of the following:

  • It’s been about 3 months since you bought that Chrysler 300. Keep it running smoothly by having our guys handle your scheduled maintenance. Because of the harsh MN winter, Chrysler’s recommendations mean you are probably due for an oil change. Schedule one today.
  • We hope you’re enjoying the car you bought from us a while back. We also know that a lot of households have more than one car and you may have been thinking of trading in your other car. Now’s a great time to do that because…
  • Now that the snow has melted, is that Chrysler 300 you bought back in December covered in salt and looking a little less shiny than it used to? Have the guys in our detailing shop clean it up and make it look just like it did when you bought it.

When you’ve got data available like exactly what I bought and when, combined with things like cars needing oil changes every 3000-5000 miles and knowing where I live, etc., you ought to be able to do some really specific targeting of your message, especially when we’re talking about email. However, given how nearly everything that gets sent out these days is embedding at the very least my name, you might as well make the entire message tailored to my situation.

Of course, if your marketing team doesn’t have access to that kind of data, I *ahem* know of some good people who can help with reporting, business intelligence and building web applications to help do a better job.

« Older Entries  

J Wynia

For better or worse, I'm the guy who runs things here. I'm a web consultant, software developer, writer and geek from Minneapolis, MN. This site is a fairly wide cross-section of the things I'm interested in and enjoy writing about.

Oh, and if you happen to be looking for hosting for your Subversion repositories or just web hosting in general, take a look at Dreamhost. It's what I use for Subversion and your signup helps me out.

Feeds and Links


www.flickr.com
This is a Flickr badge showing public photos from J Wynia. Make your own badge here.

Search


Pages

Archives

Computers Blog Directory
© 2003-2009 J Wynia. All original content is licensed under the terms of the Creative Commons Attribution license unless otherwise noted. Content from other sources is licensed under its original terms.