Wikipedia

By Jacob Cohen | August 22, 2008

This xkcd comic says it all: http://xkcd.com/214/.

I originally went to Wikipedia to look up barrow, because I had read something about someone being buried in a barrow, and I thought, you know, it’s time to find out exactly what that is. I then found out what I was really looking for was tumulus, so I took a look at that page. This page mentioned Pahoehoe, a type of lava I remembered from a show I watched on volcanoes. From there, my browser tab list grew almost exponentially.

Topics: General | No Comments »

Source Control and Private Branches

By Jacob Cohen | August 21, 2008

Jeff Atwood wrote a blog entry today extolling the virtues of early and often checkins to source control. I agree with this, though I think there are a variety of ways to accomplish it.

Recently I have become fond of using a combination of Git and Perforce. The Perforce depot provides the centralized, managed source control system that lets me coordinate my code with other developers. Git provides the quick personal versioning and branching convenience that I use every day to manipulate my code base on my own machine.

Why do I need both of these? Perforce supports branching too. But then I have to set up the branch, and switching between branches is not an especially quick task. If I want to quickly work on something off a different branch, I have to painstakingly store everything I’m currently working on into the branch I’m on, then switch, open files, check those back in, then switch back.

With Git, I do all of my branching and switching locally. Everything starts from the p4/master branch which is the version Perforce is tracking. I can then easily create several parallel branches on top of this that let me modify different things without stomping all over my own changes.

Since the Git repository is local, more akin to rcs than to centralized SCM products, I can check in as often as I want without having to worry about integration with other code. I typically check in to my Git repository about as often as I save the file in my editor.

Since multiple people on my team use this approach, we can actually pull changes across from each others’ Git repositories without having to go through Perforce. This behavior of Git is similar to SCM products like arch, where changes are defined by the checksum of their contents. Thus, if I pull a change from a co-worker, and apply it to my local copy, and later pull down that same change from Perforce, everything is happy and there are no conflicts because it is the same change.

So I typically work within my own codebase for about a day or two at a time, using Git furiously to keep track of all my fine-grained changes to the code. Then I use Git to compare my repository to what is in the Perforce depot, and create a Perforce change specification representing all of the changes I have made (typically at the user story or feature level).

Topics: General | 1 Comment »

SmugMug Customer Service is Great

By Jacob Cohen | August 19, 2008

I haven’t actually had to use it yet, but the more I use customer service features of other web sites, the more I appreciate the promise and guarantee of “an e-mail response within an hour” from SmugMug.

How many times have you sent in feedback, or a request, or a complaint, to a web site, and get some sort of response like “Thank you. Due to the high volume of requests we receive, we can’t respond to each request personally.”

Really? Are they really receiving that many requests? If so, they’re either doing very poorly, or very well. In either case, they should probably dedicate some more of their attention to their customers.

Topics: General | No Comments »

Laugh Tracks Suck

By Jacob Cohen | August 19, 2008

Why do television producers feel the need to add a laugh track to some sitcoms these days?

Take the show Two and a Half Men for example. This show’s format seems to be nothing but one-liners separated by pauses for laughter from the laugh track. You know, you don’t have to try to make every single line of a character’s dialog funny, or to make every conversation between two characters some sort of forced lunge/riposte/counterriposte exchange, with pauses inserted for the laugh track between each line.

Even worse, a show like The Big Bang Theory would be really funny in its own right, but they have for some reason included an obnoxious laugh track. The show’s premise is solid, and the characters are well-acted (well, Sheldon is at least), but once you notice that laugh track, it’s almost impossible to un-notice it, and it really detracts from the enjoyment of the show.

Perhaps sitcom writers should take a cue from the longest running sitcom of all time, The Simpsons. A laugh track is not needed or wanted to help viewers enjoy the program. Worse, it often actively detracts from enjoyment once the viewer notices it (which is hard to avoid - laugh tracks have a very different sound from normal audience laughter).

Topics: General | No Comments »

KVM Switches

By Jacob Cohen | August 12, 2008

Why do they have to suck? I have owned three different brands and four different styles of KVM switches in the past eight years or so, and all of them have had major shortcomings. The only reason I continue using them is that there is nothing better out there.

Why does it have to be this way? Why can’t they build a KVM switch that does what it’s built to do, and does it well?

Why, in this day and age, is it so difficult to find a KVM switch that supports resolutions higher than 1280×1024?

If I were going into business as a KVM switch manufacturer, I would start by identifying some traits that are important to the KVM customer, such as:

These are pretty basic requirements. It may seem like this is asking a lot, but it’s not. This is the only reason this device exists.

I can’t even count the number of times I’ve hit the switch button to discover the other computer has switched into something like 640×480 resolution because it lost detection of my monitor type. This is inexcusable. I would expect a $5 switch that simply physically disconnects and reconnects the wires from one port to another internally to have this behavior. I would not expect a $150 switch full of electronics that requires its own wall power adaptor to have this behavior.

And while we’re at it, why not design a KVM switch that has a remote switch? Perhaps on a six foot cable, so that the KVM switch and its thick cabling can be placed somewhere convenient near the computers it connects to, and the switch can be on your desk where you can reach it.

In his book, The Inmates are Running the Asylum, Alan Cooper creates a metaphor of a dancing bear to represent the acceptance of hard-to-use software simply because there’s nothing better. Everyone is amazed simply because the bear is dancing, and ignores the fact that it is a terrible dancer. If this metaphor could be extended to computer hardware, I’d heartily submit the KVM switch for consideration.

Topics: General | 2 Comments »

On Creating Strong Passwords

By Jacob Cohen | July 29, 2008

It’s getting harder to generate secure passwords these days. Part of the problem is that, the stronger a password is, the harder it is for someone to remember. A password such as ‘F7c%el(9xfka$hsa’ is an extremely strong password, but probably almost impossible to remember unless you type it many many times a day for a long time.

Here are a couple of ways of creating strong passwords that are much easier to remember.

Topics: General | 4 Comments »

Airport Security for Parents

By Jacob Cohen | July 23, 2008

I’ve recently been following a thread on one of my company’s internal mailing lists about tips and tricks for air travel with small children or infants. One of the major stress points seems to be getting through security.

This is stressful because parents are usually traveling with a whole bunch of extra stuff, and have to somehow get all of this through the security checkpoint one-handed while dealing with an unhappy child. The TSA staff is often inconsistent on what sorts of liquids can be brought through the checkpoint, and the parents are stressed about keeping their kid happy and not irritating all of the people behind them in line by taking forever.

I think a solution to this would be to dedicate at least one, and probably some percentage of all available security gates to serving only people who are traveling with small children (e.g. young enough to need strollers or car seats or other similar bulky items). This would have many advantages.

First, the security checkpoint could be set up to cater to these travelers, with more room to get everything packed down and through the scanner. The TSA agents staffing the station could be trained specifically to the sorts of things parents are usually trying to bring through the checkpoint.

Also, since it would separate parents and children into a new line, it would take a lot of stress off of the parents trying to get through the checkpoint. Everyone behind them in line is in the same situation and would be understanding if they needed to take a little extra time to make it through security. However, since the line is comprised of *only* parents traveling with small children, there would be fewer people in line and the whole process would not take longer.

Topics: General | 5 Comments »

iTunes Store requires WiFi

By Jacob Cohen | July 17, 2008

To access the iTunes store from an iPhone, you need to be connected via WiFi. It won’t let you connect over the 3G internet connection.

This restriction baffles me. Why would they do this? The 3G internet connection is perfectly fast enough. You can connect to the App store over 3G. It seems like they are leaving a lot of business on the table.

As an example, if you are listening to a song on Pandora, wouldn’t it be useful to be able to buy that song immediately from iTunes without having to wait until you’re connected to a WiFi network? And there are several applications already (such as Shazam) that will identify a song if you hold your phone up to the speakers for a moment. Wouldn’t it be useful to be able to buy that song right away?

It may very well be that there is some valid business reason for this, but from a customer’s point of view, I can’t see it.

Topics: General | 1 Comment »

Rock Band Wish List

By Jacob Cohen | July 9, 2008

I’ve been playing a decent amount of Rock Band recently. I’ve been staying away from the vocals, but I can get through almost all of the songs it comes with on “hard” on bass, guitar, and drums. This game is a great way to build or maintain hand-eye coordination.

But it has left me wanting more. This game is in dire need of more songs available for download. The total catalog is only a few hundred songs. I’m sure it’s a pretty decent chunk of work to get a song, secure all the appropriate distribution rights, cut it up into its various parts, create the track information for each instrument on all of the different difficulty levels, etc, but it would definitely keep the game fun for a much longer time if the catalog of songs was larger.

In addition to more songs, I hope they are working on expanded instrument capabilities, particularly around the drum set, which comes with 4 drum pads and a kick drum pedal. I would love to see an expansion drum set that attaches a hi-hat pedal, a hi-hat drum pad, and drum pads for one or two cymbals. This would allow the four main drum pads to be used for snare, toms, and percussion without their assignments changing in the middle of a song like they do now. It would also allow for a more complete drumming experience, using both feet and a greater variety of drums.

For the guitar and bass instruments, it would be pretty fun to have the ability to use the microphone and add a backing-vocals track. Many of the songs that come with Rock Band have multi-part vocal tracks, but only the lead vocals are available to perform.

Topics: General | 1 Comment »

Disable Menu Items

By Jacob Cohen | July 5, 2008

In a recent post on his blog, Joel Spolsky writes that you should not “hide or disable menu items”. His alternative is to leave all of the menu options in place, and provide messaging to tell the user why an action can’t be completed.

I have to respectfully disagree with his assessment. I think that leaving menu items active all the time is actually harder to use and understand. It requires the user to spearfish through the menu and live in fear of clicking the “wrong” menu item that triggers a warning message. Worse, it actually makes it harder to understand what the various options do if they are always available. Take your typical application Edit menu, for example. Many of these will have Undo and Redo options available. If you leave these active all the time, it can even be confusing before the user tries to click. If you’ve just opened the application, what would Undo actually undo? If you haven’t undone any actions, what would Redo actually redo?

Now don’t get me wrong, I don’t think that hiding menu options that can’t be used is any better. Looking for an item in a menu and not seeing it where you expected it to be undermines your ability to get accustomed to how an application works. It derails your mental schema of how the application works, even if the application’s behavior hasn’t in fact changed at all.

I think the most reasonable way to handle this is to provide the “disabled menu item” design that almost all applications are already using. This can be augmented by visual aids to indicate why an option is not available. A subscript text to say something like “already at oldest change” under a disabled Undo option, or a subscript that says “nothing is selected” under a disabled Cut option.

But if that is not feasible, I think just leaving menu options disabled in the appropriate context is the best compromise. The confusion of seeing a disabled menu item to me is preferable to the uncertainty of not knowing whether clicking a menu option will actually do something, or just pop up a warning message telling me why I can’t do that right now.

Topics: General | No Comments »

« Previous Entries