Friday, March 29, 2013

2 Alarm Walking (and/or Running)

Of late, I have found myself struggling to establish an exercise routine. Work and being wiped out at the end of the day are making it hard to get motivated. What I needed, I decided, was a fresh experiment. That's how I came up with 2 Alarm Walking.

The enemy, I've decided, is over-thinking exercise. The usual internal dialog goes like this: "I know, I'll exercise later when I've got my work done." Then later I say, "oh, now it's too late to exercise, I'll do it tomorrow nice and early." Wash, rinse and repeat. The solution: take thinking out of the equation.

Here's who I've done that: I've set two alarms on my phone, one at 1:57pm and one at 2:15pm. When the first goes off, I've got exactly 3 minutes to pause what I'm doing, and step away from my desk. I then start walking down the main road more or less in front of my house. Approximately 15 minutes later, the second alarm goes off. At this point, I blindly turn around and walk home. Always the same route, always the same time. No thinking involved.

After trying this for a week or two now, I've been relatively pleased with the results. I haven't been able to get in a walk every day, but I'm definitely getting a jolt of fresh air and exercise a lot more often than before. I find that for the first half of my walk I'm usually pretty zoned out. That's not really a bad thing, as I'm trying to make this an automatic behavior. By the end of the walk though, the creative juices have started to flow again and I'm getting back to my desk refreshed for another burst of work.

While I've been walking, I think this strategy would work just as well for running. Sure, a 30 minute running isn't as ideal as say an hour, but just being able to do something has to count, right?

I'm tempted to push the concept a little further and add a randomized component to it. For example, have the alarm goes off at a random time of the day to insure that my brain is totally surprised about when this burst of activity is going to come. Luckily, I have really poor time awareness, so 1:57pm pretty much shows up randomly to me every day.

What do you do to help you exercise when time doesn't allow?

Sometimes, Try As You Might, The Universe Won't Let You Fail

Here, give this story a listen, and tell me that sometimes the Universe isn't on your side?

And when you're done, you can go listen to the hero of the story rap on YouTube. Impressive stuff all around.

Thursday, March 28, 2013

Why Must Google Continue To Kill Things I Love?

First it was Google Reader and now this: Google purchased Frommer's (yay!) and has announced they are no longer publishing the guidebooks in print (boo!). I found this out thanks to the excellent Amateur Traveler Podcast.

This decision really hurts, as my travel guidebook of choice is Frommers. In fact, I just recently teased apart the fact that I prefer Frommers to Fodors, and was planning to never purchase the latter again if possible.

When I travel, I try to scale back what I bring as much as possible. I leave the full laptop at home, and carry a compact netbook. There were times when I traveled with multiple paperback books, and now I just rely on my cell phone to act as my eReader. I bring fewer clothes, and the minimum amount of camera and "office gear." But, I won't leave home without my guidebook, and if it at possible, I make it a Frommers.

A good guidebook has let me explore a city with almost no preparation, and when plans change it lets me quickly re-calibrate my itinerary on the fly with relative ease. It provides sane restaurant choices when the options are either too plentiful or too sparse. The books usually contain important customs worth knowing, and tips for getting around. When I leave my hotel room, the guide book comes with. Nearly every time I leave it at the hotel, I regret doing so.

I assume that Google will make the Frommer's content available electronically. In theory, I should be celebrating; one less item to carry! But I'm not. The print edition provides me with a few critical features:

  • Larger screen size. The open book allows for a much larger viewport than my cell phone screen.
  • Instant access. I can quickly open up the book to a bookmarked page versus clumsily trying to navigate my cell phone.
  • Infinite battery life. This is the main area the print book wins out on, it never needs to be recharged. After a long day of use, I don't have to worry that a dead battery will keep me from being able to use it (and say, find out how to get back to my hotel room).

If Google's plan is to somehow harvest the data from the Frommer's books and close down the brand, or equally pathetic, just stick to publishing basic eBook versions of their guides, then I'll remain unimpressed.

On the other hand, if Google can re-think and re-energize what a guidebook can be then they'll have my attention. If they can develop a user interface that is comfortable to use on a cell phone and is far more than a glorified PDF; if they can make the guidebook update itself on a continuous basis so the data is fresh and reliable (but do the update when plugged in at night, so it doesn't destroy battery usage); if the guidebook can be smart enough to customize itself as to how I use it (oh look, he wants to see nature related stuff, no problem, here you go) then this ceasing of print editions will be quite sensible. Better to leave dead-tree versions of guidebooks to publishers who can't bother to innovate.

Please Google, go the innovation route.

Update: Hurray! The Frommer's print edition is *not* going to be headed the way of the Dodo. It's been saved by its namesake. Now, if only Google could make a similar announcement about Google Reader my universe would return completely to normal.

Monday, March 25, 2013

Two Resources for a More Festive Holiday Season - Whenever I have a programming question, I find more often than not,t's been answered on Stack Overflow. Stack Overflow is a site where individuals post questions, answers are given, and then scored as to their quality. The result is that the best answer is shown at the top, but all answers are shown. Turns out, there's a site using the same engine, but for Jewish topics. And of course, there are lots of questions relating to Passover. If you're looking for a resource to spice up your seders and get people talking, look no further than this site. You're sure to find some fun and tricky questions to get people thinking.

Omer Learning Project - We're doing the Omer Learning project again this year. Sign up, and follow along as we count each day of the Omer and learn study a bit of Jewish Knowledge. This year's topic: Mishlei (The Book of Proverbs). Why not follow along and get a daily dose of wisdom?

Two Ways I Know Passover Has Arrived

Eggs! Shira informs me that we've got through 36 of them since she started cooking last night, and she's far from done cooking. When I kvetched about having to peel apples for the second time, she responded: "Do you have any idea how many times I've had to whip eggs?!" I stopped kvetching.

David and I sat down to our traditional breadless meal. At the lunch before the first seder you aren't supposed to eat bread or matzo. The meal has become a standing tradition for my brother and I, which always includes: potato chips, sour cream and onion dip, tuna and cheese. This year we got creative and added green olives. It's a simple meal, but the simplicity helps underscore the big event coming tonight. More importantly, it shows that you can turn anything into a warm and pleasant tradition.

I suppose a third way I know Passover is here is that I spent all last weekend cleaning. But, I'd rather forget all that.

A White Passover

The Jewish calendar is a moving target. Christmas is always on December 25th, whereas Chanukah, Passover and the rest of the holidays are floating around. But, they don't float randomly. On the contrary, the calendar is built around Passover because of one specific verse in the bible:

The feast of unleavened bread shalt thou keep; seven days thou shalt eat unleavened bread, as I commanded thee, at the time appointed in the month Abib--for in it thou camest out from Egypt; and none shall appear before Me empty;

Abib, I've been told, means spring.

It's Passover, and spring. So why the heck is it snowing outside? And not an insignificant amount:

For the first time in two years, snow measured more than an inch at Ronald Reagan Washington National Airport. The last time this much snow fell at the airport was Jan. 26, 2011.

Still, it is awfully pretty outside.

Friday, March 22, 2013

Still Not Switching To Distributed Version Control

If Joel Spolsky says it, I (almost always) believe it. He's a brilliant programmer and a terrific writer. But just because he tells me I should love Distributed Version Control doesn't mean I can. In his most recent article he says:

For those of you that have been living under a rock, the single biggest change in developers’ lives in the last decade (besides Stack Overflow, natch) is Distributed Version Control. DVCS is such an important improvement over the previous generation of centralized version control (Subversion, CVS, etc.) that it’s a required upgrade, even though it’s honestly a bit harder to use.

Digging deeper, back in 2010, he said:

With distributed version control, the distributed part is actually not the most interesting part.

The interesting part is that these systems think in terms of changes, not in terms of versions.

That’s a very zen-like thing to say, I know. Traditional version control thinks: OK, I have version 1. And now I have version 2. And now I have version 3.

And distributed version control thinks, I had nothing. And then I got these changes. And then I got these other changes.
When you manage changes instead of managing versions, merging works better, and therefore, you can branch any time your organizational goals require it, because merging back will be a piece of cake.
This is too important to miss out on. This is possibly the biggest advance in software development technology in the ten years I’ve been writing articles here.

Or, to put it another way, I’d go back to C++ before I gave up on Mercurial.

If you are using Subversion, stop it. Just stop. Subversion = Leeches. Mercurial and Git = Antibiotics. We have better technology now.

Seriously, how can I keep using Subversion after reading the above? The only catch is, I've experimented with git I'm completely underwhelmed. Yes, it technically works, but:

  1. I have to give up the Unix style notion of managing files in version control. Using Subversion I can cat, mv and cp files just like I would from the command line.
  2. I have to give up notion of partial checkouts. When someone has committed 3 gigs of videos to a directory, it sure is nice not to have to check them out.
  3. I have to give up the simple everything's a file model, where tags and branches are managed by creating copies of files and directories.
  4. I have to give up my incremental version numbers. I love the simplicity of being able to attach a version number to a software release, and being able to roll back to that anytime to see what's what
  5. I've yet to run into a nightmare merging scenario alluded to above. Before I start work on any customer's project I create and often use a bugfix branch. And before I deploy, I merge that bugfix branch back in. It's a system that's been working well for years, and wouldn't develop without it.

I'm not saying that git and other DVCS aren't fantastic for some applications. I'm usually operating in lone-wolf mode, with only a few other folks accessing a repository. With a larger team, or better yet, multiple teams, DVCS's benefits may be a no-brainer.

Using git reminded me of the early days of Enterprise JavaBeans. The technology was so cool, and so fancy. Just the word "Enterprise" made it sound like you had hit the big time. So we opted for the whole kit and caboodle: session beans, entity beans, Weblogic container, multiple servers; the whole deal. What we found out, very much the hard way, was that the system was terribly slow and terribly bloated. The only true benefit of our solution was that we were buzzword compliant. PHP + MySQL would have run circles around that ridiculous setup. We had successfully solved all sorts of problems we didn't have (ones that a large enterprise might have, perhaps?), and neglected the ones that really mattered (delivering pages quickly and querying a small database efficiently).

I suppose it all boils down to: use the right tool for the right job.

Thursday, March 21, 2013

Don't Try This At Your Seder


I think someone is sorely misinformed and in for a shock when they attend their first Seder.

5 Places to Stash $20

1. In your wallet. Back in my early teens (or least that's how I imagine it), I figured out that if I stashed $20.00 in an odd place in my wallet it would be there for me when I absolutely, positively needed it. Considering I'm still living in essentially the same financial manner (that is, a allowance based lifestyle),this technique is still a winner. Of course, when a bad guy steels your wallet, there goes your $20.

2. In the back or a spiral 3x5 notepad. I love my little notebook, and of late I've found that I can binder clip $20.00 in the back without adding any noticable bulk. The binder clip ends up serving as a bookmark once I get part way through using the pad. In this case, I've wrapped the $20.00 bill in a poem, so I've got cash and something to read on me at any time.

3. On your keychain. A about $1.00 a piece these little spy capsules are great. They'll fit a $20.00 bill perfectly, so as long as you've got your keys, you know you've got a little cash. Personally, I carry a Benadryl (damn you cats your allergic properties!) and some migraine medication for Shira in the one I have on my keychain.

4. In the bottom of an Altoids Tin. If you're going to carry around an Altoid's Tin full of goodies, it's super easy to put a $20.00 bill in the bottom. You'll still have plenty of room left for other chotchkies, though most won't be as useful as that skinny little piece of paper. You can find the full listing of what's in my Altoids Tin (my so called "Urban Survival Kit" here.

5. Duct Taped to the back of your phone case. I usually run with my phone, and like the idea of having a few bucks on me when I do. I cut out a small piece of notebook paper just a little bigger than a folded $20.00 bill and taped the whole mess to the back of my phone's holster. It's not much to look at, but you can't see anything when I'm wearing the phone.

Now as long as I don't lose my wallet, keys, notepad and phone all at once, I should be able to tackle most of life's challenges. Assuming that life's challenges can be solved with $20.00.

Where's your favorite place to stash a little extra cash?

Schleping While Running Hack

I was given a few important errands yesterday—return a movie to the library and drop off our taxes at a FedEx shipping box—and figured incorporating them into a jog around the neighborhood was the way to go. But I wasn't sure the best way to carry the items with a minimum of fuss (and flippty-flop from a loose backpack).

At the last second, I came up with the following: put the items my Sea to Summit packable backpack and then put my sweatshirt *over* the pack.

Here's a few attempts at showing how this setup looks:

The result was surprisingly comfortable. There was a little movement from the pack while running, but it was minimal; far less than if I had just tossed on a backpack and ran out the door.

Wednesday, March 20, 2013

Bird Song and Photography Wishes

I don't know if it's the daylight saving time switch, the hope that Spring is right around the corner or just the result of late night blog reading, but this morning the bird song on the way back from the bus stop was especially glorious. Here's a few seconds of audio:

Unfortunately, you can't hear the occasional burst of sound from a woodpecker off in the distance.

For days now I've had an urge to grab my DLSR with its telephoto lens and go hunting for bird snapshots. I'm convinced that the active birds, foliage free trees, and ability to get up close, would result in shots that look like they came from some exotic safari and not from a neighborhood walkabout. Alas, lack of time and a little concern that my fellow Arlington residents may think I'm up to no good, have kept me from trying this experiment.

But those are silly reasons. I've really got to give this experiment a go.

Update: What do you know, today is actually the first day of Spring. I suppose my comments about Spring being right around the corner were a bit off.

Tuesday, March 19, 2013

Library of Congress Images - Amazing Resource, But For What?

While reading this post, I was especially impressed that the author was able to juxtapose his modern photograph of Fort Bennett Park and one from the Civil War. Where, after all, does one get such historic photos? Why from the Library of Congress picture search, of course.

A search for Arlington VA brings up 1,418 images and many of them seem quite interesting. Here are few random ones:

And hundreds more. And those are just photos they have on file for my local area. I know they're useful for something - just not sure what yet. (School projects? Stock photos?)

One hack you can use to speed up browsing them. You can visit Google Images and search for keywords to access many of the images. For example, here's what I see when I search for arlington va

So what do you think all these images for useful for?

Next Door Nature Scaled Down - Fort Bennett Park

One of the best parts of Geocaching is that you're often introduced to little gems in your own backyard that you would never have discovered. This is exactly what happened when I decided to go hunting for cache GC2KXDA, titled "Well, well, well."

What I found at the site was, no surprise, an elaborately covered well along with signs telling the history of the area and even a Witness Tree. Poking around further I found a trail, which I would later find out is the Palisdes Trail. The trail is only about 500 meters long, but it was so quiet and woodsy I very much liked it. I felt like I was rudely interrupting the birds as I jogged along the trail disturbing them. How I wish I could have stopped, listened and learned. I even thought I saw a flash of red dash off in the distant trees, which in my mind's eye was a red fox (thankfully, not this one), but more likely was probably someone's fluffy cat.

The area I was exploring is known as Fort Bennett Park, and has some interesting history to accompany it.

All in all, the location is really wonderful and would make a fun place to come back and explore with a little one. I think it would also work great as a sit spot, a location you return to day after to day, to observe and learn about birds in the area. It's next door nature on a small scale, but a gem none the lees.

Here's a few snapshots to get the flavor of the area:

Monday, March 18, 2013

Review: 21 Ways To Create A Sales Stampede On The Internet

I have to admit, I was flattered when a team member at reached out to me to ask if I’d review 21 Ways to Create a Sales Stamped on the Internet by Jason “Wally” Waldron. I’m always on the lookout for resources I can pass on to folks I develop software for, and figured a book on marketing is just that kind of resource. A few days after I replied I was interested, the book showed up.

I’m going to have to be blunt here: I’m not a fan of the writing style of 21 Ways. It’s basically broken down into chunks as follows: first, there’s a super enticing headline (example: “Build Your Sales Funnel And Drip Money Into Your Bank Account For Life”). Then there’s a few paragraphs of chit chat, usually including an anecdote, and finally a couple of direct paragraphs for implementing the strategy alluded to in the title. I ended up finding it both wordy, as well as short on detail.

But here’s the thing: the advice given is actually remarkably good. Much of it that seems counter intuitive has taken me years to learn. For example, many of my customers are distraught to learn that the software they create can’t be somehow legally protected from having competitors. But as Waldron explains, and I’ve learned the hard way, that’s exactly the kind of market you want to avoid. Being part of an active and competitive marketplace is ideal because that’s where the customers already are.

I can’t tell you how many times I’ve climbed on my soapbox and given speeches to prospects and clients about the importance of providing actual value. Not some slick experience that looks valuable, but the real deal; something that solves a real problem. I was surprised and delighted to find that Waldron is on the same page with me here, and stresses that same point a number of times in 21 Ways.

I find that many marketing strategies seem to be based on trickery. If only you can trick Google to list your site first, and enough folks to opt in to your e-mail, then you’ll manage to trick enough people into buying your product to make a boat load of money. That’s obviously not the terminology that gets used, but more often than not, that seems to be the strategy. And while Waldron comes across as being a classic fast talking web marketer, he goes out of his way to advise strongly against this approach. SPAM, duplicate content and any other sort of shady activity has no place according to Waldron. The book makes it clear: you’ll win by providing value. You’ll be doing actual work (writing blog entries, creating an e-mail list, reaching out to customers, etc.). There may be short cuts you can take, but those are technical matters to make life easier. At the end of the day, you’re going to have to work for this.

Perhaps the strongest recommendation I can give to this book is that I found myself using some of the techniques. I was talking with a client about how he could improve on his conversions, and all that advice from Waldron about e-mail came bubbling up. Between the client and myself we developed an automated e-mail follow up strategy that is absolutely inspired by Waldron’s suggestions.

If you’re looking for detail, theory or don’t like a strong sales pitch, 21 Ways isn’t for you. But, if you’re new at all this and you want an approachable text to help you take action today, 21 Ways may be just what you need.

Another Case Of RSS Love

I was poking around the support site for my new laptop when I noticed a link to subscribe to driver updates:

I figured this would be handled over e-mail. I was wrong. Here's what I saw when I clicked the subscribe link:

That's right, an RSS feed. And that was one of my main points: RSS is a simple and powerful way to deliver a stream of information. By adding this feed to Reader, I have yet another bit of "news" in front of me that's just as relevant as political updates and local driving conditions. RSS lets me consume all this information in one consistent place.

Which leads me to wonder aloud: information is Google's business, but they want to reduce costs; why not phase out the UI of Google Reader but leave the underlying API for developers to tap into? That means fewer developers dedicated to a project they aren't excited about, but continued involvement in a massively powerful framework that drives all sorts of novel applications of the web.

Sunday, March 17, 2013

Gotcha of the Day: Handling requests to a long gone wiki

My friend George and I had a shared client with an interesting Search Engine Marketing opportunity. Years ago the site had hosted a wiki, but now those links were being sent to 404 pages. Something like:

George and I talked it through. What would be the best user experience for folks who followed those old links? Surely we could do better than a 404 page. Because the topic of the website hadn't changed over all these years, we decided that a clever approach would be to turn those Wiki requests into site searches. Users wouldn't see the old Wiki, but they'd be taken to relevant content on the site.

Implementing that solution from a technical perspective wasn't terrifically hard. The first step was to make a small script I called wiki_resolver.php. Here's the code:

 * A PHP file for handling old requests to the Wiki.

$query = str_replace('_', ' ',                      // [A]
                     substr($_SERVER['REQUEST_URI'], 6));
$qs    = http_build_query(array('q' => $query), 
                          false, '&');

header("Location: /search?$qs", true, 301);         // [B]

[A] turns the Wiki URL parameter into a search engine friendly string and [B] sends the user to the search page. Notice the 301 redirect, the preferred redirect for this scenario; that's thanks to George's attention to detail.

The second and final step was to redirect /wiki/ request to this script. I did this via my beloved Apache Rewrite Rules. The one line of code we needed to add to the .htaccess file was:

  RewriteRule ^wiki/(.*)        /tools/wiki_resolver.php    [L]

And that was it; requests to /wiki are now gracefully handled.

I love SEO solutions like this one that put human visitors first, and robot visitors second. With all the attention paid to pleasing Google and related services, it's often the actual visitors who are left out of the equation. Not this time.

Thursday, March 14, 2013

Google Reader is Dying, RSS Isn't

The Internet is once again melting down: Google has decided to close shop on Google Reader. People are not amused. I can kind of see why Google might think Reader wasn't worth their time. Feed readers have been around for a decade, which in Internet time is essentially forever, and they still haven't attracted mass appeal.

But consider this problem:

Let's say there are handful of sites that I get information from. For example, a popular news site, some dude's blog, a community site and a forum. How am I supposed to keep up with all this content?

I could manually visit each of them, but depending on how many sites I want to read, this will get old quick. Sites that don't update content regularly but when they do I'm eager to read it, suffer the most in this scenario. After checking for new content a few times and not seeing it, I'm probably not going back to that site again.

RSS and feed readers elegantly solve this problem. You put all the sites in one location, and visit that one location to find out what's new. A site that posts 10 times a day, and one that posts monthly, can be kept up with just as easily.

You could argue that over the years major players have surfaced that will do this aggregation for you. I don't need to visit 10 different pop culture sites when a single visit to Buzzfeed will do. And you could also argue that services like Twitter provide a stream of headlines that can replace a news feed. But both of these arguments miss the point. They leave the above problem unsolved. And in a world where everyone is a publisher, we've got more streams of content on the web today not less. Feed readers are more important than ever.

And to those who suggest the demise of Google Reader as a sign that RSS itself is dead, I'd have to disagree. RSS is a simple and powerful mechanism for sending around information. In many respects, it's a great equalizer: CNN, Twitter, the status of your printer, the contents of your fridge, can all be codified as RSS streams. I'd expect my Mom to care about RSS as much as I do about the pipes that live behind the walls in my house. We just want everything to work. And when her new TV starts showing her CNN headlines, the latest photo updates from my brother and articles from my blog, she'll be happy. She won't care or even know that the whole shebang is powered by RSS.

Google is stepping out of the market feed reader market and I say good for them. Before Google Reader there was a healthy ecosystem of entrepreneurs battling it out to see who could win the feed reader game. Google Reader squashed that. With them leaving the space, it should make room for the little guys to matter again. The problem of making it easy to track content from disparate sources is still there, and the person who solves it will win big time.

Adding a splash of (random) color to Cygwin's rxvt windows

While making myself at home on my new laptop I thought I'd try to tackle an Cygwin annoyance I regularly run into. My general practice is to have one rxvt window open that represents my local machine, and then one open for each remote system I'm ssh'd into. Within each rxvt instance I'm running screen. Even with screen I find that I can often lose track of which window is connected to which host and I have to Alt-tab through a whole mess of them before I can find the right window.

The solution I'm playing with: why not vary the rxvt background color so that I can quickly determine which window belongs to which host? I don't want to go through the trouble of predefining the colors and hosts, so instead I'm taking the lazy way out and picking a background color at random. A quick Google search shows this is not an original= idea.

Here's the script I came up with:


## Spawn an rxvt instance with a random background color

BGS='snow ghost GhostWhite WhiteSmoke Gainsboro
     floral OldLace Linen Mint MistyRose
     LightGray Sky LightSteelBlue
     PaleGreen Khaki LightYellow Beige Plum
     Thistle Seashell1 Bisque2 PeachPuff Azure1 SteelBlue1
     LightCyan1 Grey68'

count=`echo $BGS | tr ' ' '\n' | wc -l`
index=`expr $RANDOM % $count`
color=`echo $BGS | tr ' ' '\n' | head -$index | tail -1`

rxvt -background $color "$@"

You can tweak the colors selected by choosing from any of the standard color names. In the cold precise world of computers, I do love that someone took the time to name each shade of color with such care.

Wednesday, March 13, 2013

Song of the Day: Modern Love cover by Luciano Colman and Maxi Gonzalez

Not exactly sure why, but I'm absolutely loving this cover of David Bowie's Modern Love by Luciano Colman & Maxi Gonzalez. I've heard it on my soundcloud stream a few times and every time it starts to play I instinctively click over to the browser to press the the "Like" button even though I've already done so at least 3 times.

What do you think?

Batteries Not Include Or Needed. Pocket Games and Activities

I was reading through The Dangerous Book for Boys when a section on coin football triggered memories of killing time playing this distraction as a kid. The cool part about the game was that all you needed was 3 coins (quarters, if I recall) and a flat surface.

This got me thinking. Surely there must be a whole bunch of games and activities you can do using little more than the the contents of your pockets? And there definitely are. For starters, there's a whole bunch of well known pencil and paper games. But with a bit of creativity, there are even more things you can do.

I ran a bunch of Google searches and put together a list here. I hope to add to it as I can think of more activities.

Here's a preview of the list:

So, next time you're stuck in in an especially tight spot, hopefully one of these ideas will help get you out.

Have any activites/games you'd add to the list?

Tuesday, March 12, 2013

Your Distraction for the Day: Axis of Awesome's 4 Chord Song

Here's just about the most amazing on stage performance I've ever seen. (Note: there's a bit of cussing in it, so this isn't ideal for kids.) Watch and be amazed:

Via: Girls are Geeks

Review: Comet's Tale

I admit it, I'm not a dog lover. Sure, I see their utility, but I've never quite understood the appeal they have as pets. I suppose it's because all I ever hear about are the maintenance side of things; the person who has to rush home to let them out, or worry about where they are going to kennel them before they go on travel. Thanks to Comet's Tale, I've got a fresh perspective on the power of canine-human relations. What a story this was, I found that once I picked it up I couldn't put it down.

I consider myself very fortunate that I blindly picked up Comet's Tale and didn't read the back cover or prologue. Instead, I just dove in. What I found rocked my world every step of the way (poor Shira had to sit through me describing every chapter in the book on our runs). Briefly, the book follows Steven Wolf as he copes with a debilitating spine condition that leaves him less, and less able to function. At the same time, he adopts a retired racing greyhound. That's all I'm going to say about the plot, as I don't want to spoil any of it.

The story I can best compare this book to is The Blind Side. Both stories beat incredible odds, have unlikely heros and just leave you completely inspired. My guess is that some Hollywood producer will pick up this book, read it and find that they have to make it into a movie (but don't worry, the book is better than the movie). It's that kind of good.

Careful, though. The book is powerful enough that you may just find yourself with a dog in the house, or another one added to your family.

Monday, March 11, 2013

Soaking Up Some Weekend Sunshine

My mother-in-law was in for the weekend. After living here for over 10 years we finally took her to see the Marine Corp Memorial. It was perfect weather - 65 degrees and sunny. Even after a few visits to the memorial, I'm still moved by it.

In the afternoon, I took our 8 year old out for a bit of Geocaching in Lubber Run park. The park provided has a wonderful trail, stream and bit of woods. I didn't get the sense that it was very large, but it's still a gem to check out in Arlington.

We spent a good 30 minutes looking for the Excalibur cache in park, but finally had to give up looking. As we walked away from where I was certain the cache would be placed, I couldn't help but continue to search. Sure enough, I noticed one rock that looked a little out of place and found the cache. This turned out to be the best named and most cleverly camouflaged cache I've had the pleasure of finding. When you're ready for a tricky cache, go after this one.

It's so tempting to post a picture of the cache, but I'd rather not. I don't want to spoil it for folks who will go out and find it.

Friday, March 08, 2013

Gotcha of the Day: Creating a semi-automated cygwin install script

I love cygwin. Wouldn't last 24 hours without it. And the installer is very reliable and easy to use. The only headache I usually run into is when I setup a new laptop. I find that I'm constantly re-running cygwin to make sure I've got all the packages I need installed.

This time I had plan, though. I noted which packages I was going to need and using setup.exe carefully went through and selected each one. It took some time, but I figured I'd only have to do this once. Of course, once the download process began I lost my Internet connection and was going to have to repeat the process, including the annoying package selection step.

I figured there had to be a better way. And thanks to ServerFault, I now know there is. The basic strategy is to create a script that invokes setup.exe using command line arguments.

Below is the script I arrived at. At the top is a list of packages I want installed. It's safe to re-run this as often as I want, so adding new packages is easy: just add it to the list and re-run.



export PATH=$PATH:$C/cygwin/bin
pkgs=`echo $PACKAGES | tr ' ' ','`

./setup.exe -A -q -n -N -d -R 'C:\cygwin' \
          -s $mirror \
          -l 'c:\temp\packages' -P $pkgs

The process for setting up a new laptop then becomes:

  1. Install cygwin using the default settings
  2. As administrator run the above script. I did this by opening up a cmd window using Administrator privliges and then running:

It's not a fully automated process, but it's close enough.

Dealing With That Awful Touch Pad

I'm liking my new laptop but hating the touch pad. Specifically, I hate the buttons the touch pad.

But then it hit - why do I even need to use those buttons? Why can't I get clever and use a different approach?

My solution: map caps lock to the left mouse button.

This is trivial to do in autohotkey. I just added the following to the standard hotkey configuration I use:


The harder part is training my brain to actually use it. I initially set this up on my laptop that uses a mouse and a full keyboard. It's odd to control the keyboard click away from the mouse, but also weirdly satisfying. If nothing else, I'm psyched to be putting the caps lock key to a real use, rather than just disabling it.

This may just work.

If this works, I'll have to figure out a key to map the right mouse button to. Baby steps, though, baby steps.

Update: I'm really liking this setup. This approach may just be crazy enough to work. I've added Alt-Capslock as the method for accessing the right mouse click. It's actually pretty easy to type, and doesn't appear to conflict with anything. Here are the latest rules:


Thursday, March 07, 2013

One Last Rainy Day Activity

The Snowquester was a no show. And rather than having the chance to romp around in a winter wonderland, we got to watch rain and slush from our living room window. As the day was finishing up, our 8 year old and myself decided we'd do one last activity. It's one we've turned to in the past when we didn't want to anything too mentally taxing. Here's how it works: we grab whatever board games and objects are handy, and start stacking and building.

Before we knew it, was had some of structure with a train motif going. It didn't really matter, it just kept us both occupied.

Had we had more time, this would have been a fun exercise to take some macro photos of and experiment with making our own graphic novel. Or better yet, I could have just video taped him destroying the sucker and we could have examined it in slow motion.

Luckily, we didn't take it that seriously.

First Impressions: Windows 8

Almost 5 years ago I played with a Windows Phone—the Wing—and I observed how silly it was to have a Start Button and other desktop UI features crammed into a tiny phone interface. I was quite surprised then, this weekend to fire up my new laptop, hit the Windows key and have a Phone/Tablet like start screen come up rather than the usual start menu. Could it really be that rather than bringing the desktop to phones, Microsoft was bringing a phone UI to the desktop?

The short answer: yes. Welcome to Windows 8.

From the little research I've done, I've learned the following about Windows 8:

  • Windows is attempting to align their tablet, phone and desktop UI's by having a common launcher and app model across all their UIs.
  • The desktop experience is still very much available, but if you want the basic app universe you have on your phone, you can have that too.
  • Windows 8 is despised by all. Or at least by people who comment on Windows 8 tips articles.

For the second time in as many days, I'm going to respectfully disagree with the Internet. Windows 8 is not an abomination. Or at least, not because Microsoft dared to think outside the desktop model. As I've said in the past, thinking outside the desktop is a good thing. There's nothing magical about folders, windows and a start menus. They're just abstractions built on top of other abstractions.

My Mom is able to navigate her kindle easily enough. If she had that same basic app model in a laptop I think she'd find it very intuitive. Do I need a full screen weather app? Definitely not, but for her to be able to quickly press 'Weather' and get what she needs would be ideal for her. Sit someone down and try to explain how to use Windows 7 (left mouse click on the start bar - oh wait, what's a left mouse click? Let me explain ...), and then show them that they can hit the Windows button and press what they want on the screen, and I think you'll see that Windows 8 has real promise.

Is this Launcher Screen plus Apps a model useful for someone like myself, a professional programmer? Not yet. Of course, my dream UI isn't neccessarily the desktop UI either. I do most of my work at bash prompts and emacs. Back when I ran X-windows on a Linux box, I especially enjoyed using ratpoison, an almost mouseless window manager. Point is, Windows 8 isn't my dream, but neither is Windows 7. Or OS X, for that matter.

So yeah, I'm disoriented when I use Windows 8. Apparently I've got a number of shortcuts that involve the start menu thoroughly engrained in my muscle memory that I need to overcome. But I'm glad to be playing with the latest version of Windows, and I'm glad it's stretching the notion of what I consider normal. I bet if I get creative enough that Start Screen can turn out to be invaluable. In the mean time, I've been getting used to hitting Windows-D to jump me back into Desktop land when I get lost.

One other thing that jumped out at me: apparently Windows has dropped their fancy beveled edges on their windows. The result is lackluster chrome around each window. Perhaps this move is related to syncing up the UI experience among phones and tablets that can't render the fancier UI? Regardless, it seems pretty ugly and I'm surprised to see them regress in the looks department. Is it a deal breaker? Certainly not. But it's an odd choice none the less.

So what do you think? Are you in the camp that claims Windows 8 is "as bad as Vista?" Or are you loving it? What are your favorite tricks?

Wednesday, March 06, 2013

Uh, Where's the Snow?

So Snowquester is here. We've got school and work canceled. We're just missing one itty bitty thing. Snow.

So far, I've seen rain and slush. Snow, not so much.

Tuesday, March 05, 2013

Ditch remote work? Go for it Yahoo!

Apparently Yahoo is no longer allowing its employees to work remotely. And as you might imagine, the Internet is in a tizzy. There's quite a bit written saying this is a very bad idea.

I have to humbly disagree with the Internet on this one.

I say, go for it Yahoo!

Here are two reasons for my contrarian attitude:

  1. If companies want to succeed they need to demonstrate innovation. And that's not just innovation in the products they produce, but in their customer service and even HR practices. Is forcing people to show up at the office innovative? For most corporations, no. But for a tech company, I'd say so. Like many innovations, this is either an awful idea or just crazy enough to work.
  2. Yahoo! has its own problems to solve. If they've done their homework and decided that communication is lacking, then forcing people into the office may be just the jolt they need to cause change. Should this be a cue that remote work is dead? Obviously not. Your company's problems may call for extending remote work. Companies have to decide what's best for them, and not just drift from trend to trend.

Two caveats:

1. Had the memo been directed to just one part of the company (programmers, marketing staff, etc.) I'd be on the side of the web. But because it's a universal attempt to bring folks into the office, I think there's something to it.

2. If I was a remote worker and I got this memo, I'd almost certainly be looking for a new job. But that's OK - not every company's culture is a fit for every employee.


A few more thoughts about this topic:

  • I know nothing about the politics of Yahoo. It's quite possible that this move was as shallow, juvenile and poorly thought out as some suggest. I still stand by the notion that stopping all remote work can promote/represent a strong change in the culture of an organization.
  • One somewhat related policy that this reminds me of is the Topless Meeting approach that we ended up using at my last office job. A topless meeting is one where you aren't allowed to bring in a laptop or other device. We found that this dramatically refocused the meeting and meant that people were both physically and mentally present. At the same time, I've seen just as dramatic results introducing Instant Messaging to teams that weren't using it. All of a sudden, the technology provided a level of communication unheard of. So which is it, is technology bad or good for people and organization? This of course is a silly question. Technology is a tool that should be used or not used to reach a goal.
  • Complaining about lack of Remote Work is a bit like complaining about your organization not giving you a cell phone or laptop. On one level, those can provide a huge degree of flexibility (and act as a status symbol). On the other hand, they provide a level of connectedness that can make it tricky to ever really be away from the office. What a gift it can be to only be able to do work in the office.


Caught a few pics as a military helicopter flew by. Plenty of helicopter traffic, just one of the joys of living near DC.

Those are external fuel tanks, right?

First Impressions: Lenovo Ideapad P400 Touch

I've had my new Lenovo P400 for about 3 days now. If learn more or my opinion of it changes, I'll be sure to update this review.

First off, I had the most delightful buying experience purchasing the Lenovo P400 at Best Buy. I walked in, and was quickly greeted by a sales person. I told him the specs I was looking for and he showed me my options. The P400 stood out as having a touch screen, a backlit keyboard, a 1 terabyte drive and being $100 off. I played with it a bit, and the sales person even jumped through hoops so I could get Internet access on the device (so I could read reviews, naturally). When I asked the difference between Window 8 Basic and Professional, he rattled them off without missing a beat. When I decided to buy the laptop, he grabbed the box, charged me for it and had me on my way. No need to check out again at the front of the store. Best of all, I wasn't pressed into buying an extended warranty. He didn't even make mention of it. Heck, he even reassured me I could bring the laptop back within 30 days without a restocking fee.

Seriously, it was the most effortless laptop buying experience I've ever had.

The P400 booted up and Shira had no problem setting it up on our network. I had no problem installing Carbonite on the device, and am currently 8% through the process of transferring files from my now retired Dell Vostro. Carbonite promises me that in "a few days" all my files should be in place. In the mean time, I've been using it for casual surfing and getting a feel for the device and Windows 8.

Here are some first impressions of the device:

  • The touch pad is awful. I mean truly dreadful. Like almost bad enough that I'm tempted to package the whole thing up and return the laptop to the store. The problem is that Lenovo (IBM?) decided to ditch the separate left and right buttons found at the base of most touch pads and integrated them into the pad. You can use the pad as normal, or click where the buttons should be. This makes for a plasticy feel, noisy operation and one that lacks the physical edges to guide a touch typist. Worse than all that, I find that when I click a button the touch pad area often picks up slight movements in my fingers and moves the mouse just a tiny bit. Enough that it agitates me. Anyway, it's a hideous design. I assume that in another few days, I'll get used it. I'll be shocked if I ever decide I love it.
  • The keyboard is nothing special, though I do like the backlit feature. It does have a bit of a loose feel to it, which I don't love.
  • The touch pad seems to be setup as a space saving design, yet doesn't seem to save any space. The physical laptop appears to be bigger than my Asus. Which is OK, I use a netbook for when I travel and space is a real concern.
  • The touch screen is a nice addition. I don't really know when or how I'm going to use it. However, Windows 8 seems to be designed with tablets in mind, so having a device that can approximate one is a smart idea to me.
  • The device comes with Windows 8 which at times is very disorienting (compared to Windows 7). I actually had to Google Windows 8 Shutdown to find the Right Way to reboot the laptop. I'll have more to say on Windows 8, soon, I hope. I will say that I'm pleased that the device came with it.
  • I like the Home-End-PgUp-PgDn key layout. Itmatches up to my Asus, the other active laptop I'm using, which is a real bonus. I can't recall the last time I was using two laptops that had the same keyboard layout. That's a treat.
  • The laptop comes with Microsoft Security Essentials, my preferred anti-virus software, already installed. That's really handy.
  • There's seems to be a minimum of bloatware installed on the computer. I think they wanted to make Windows 8 shine, and so a minimum of crap has been pre-installed.

All in all, the laptop seems to be working well. I've yet to push it, but I'm impressed with how much laptop you can get for around $750. Provided I can learn to live with this touch pad, I think this is going to be an excellent platform to program on.

By the way, here's all the software I intend to install on this puppy. This should cover my programming and blogging needs:

Update 3/7/2013: The top row of keys contain both the function keys (F1, F2, etc.) as well as common short cuts (mute, volume up, volume down, etc.). Nothing too exciting there. But here's the part that's just rocked my world: usually the F keys are accessed by default, and the short cuts are accessed by holding down the Fn key. The P400 has this inverted! So, pressing F2 will lower the volume. To actually press F2 you need to hold down Fn and F2. While being a major break in tradition, and not very helpful to someone who uses key short cuts (F2 to rename files, anyone?), it's actually a way overdue move. Why should a bunch of seemingly esoteric keys (F1, F2, etc.) take precedence over something you'll actually use - like a mute key.

Update 3/12/2013: I noticed the laptop reported WiFi was unavailable a few times while the rest of the devices in my house were connected up just fine. Sometimes turning WiFi off and on fixed the issue, sometimes a reboot helped. I finally visited the Lenovo Support Site and installed the latest network drivers (Intel Wireless LAN Driver (2230N BGN) - Since then, I've had no further issues with WiFi being dropped. Whew, that was a close one.

Update 3/21/2013: A few days ago the mysterious WiFi issue popped up again. The laptop was able to connect to my home and cell phone WiFi hotspot, yet it was stuck with limited connectivity. I talked to Lenovo, and they said to call my ISP (Verizon Fios). They, in turn, said it was an issue with the laptop. In the end, rather than send in a 2 week old laptop to be repaired, I opted to return it to Best Buy. As promised, Best Buy returned the laptop without any hassle or fees. And thus ends my ownership of a Lenovo Ideapad P400.

Here's a few additional observations I've had:

  • Best Buy really did rock. The no hassle buy and return means that I'd very much like to buy from them again. The only downer is that they've changed their return policy to 15 days from 30. Ouch.
  • Specs wise, the P400 really is remarkable. Since returning it I've looked around at a variety of other options I've yet to find anything with the specs (i7 processor, 8gig RAM and touch screen) with such a good price and small footprint. I'll keep looking around, but I may just buy another one. Though that touch pad is annoying enough that I'm looking into all my options.
  • I used the touch screen a few times while browsing full screen. Using the touch screen is way slower than the keyboard. But, it's a lot more convienient to drag the screen around than use the touchpad to drag the scrollbar. There may be a use for touch screens on laptops after all.

Monday, March 04, 2013

Amazing imagery, Off the charts bravery

First off, a video about free skiing. The scenery is amazing, the moves breathtaking.

ONE LOVE - the movie from on Vimeo.

And then there's this video from National Geographic where George Steinmetz takes us through the process he uses to take aerial photographs. His preferred method: paragliding. It's amazing to think that he's gotten photos of places humans simply don't or can't go. Never before has so much adventure been had by a man who comes across as so down to Earth. It's definitely a talk worth listening to. And the photographs, well, wow. Just wow.


Friday, March 01, 2013

If I have a superpower, does that mean I get to wear a cape?

Check it out: What most schools don't teach. It's a whole lot of famous people (at least to us programmers, anyway) talking about the importance of learning to program:

Here's how I'd sum the topic:

Computer Science - it's not about computers, and it's not about science. Instead, computer science and programming in general is the study of problem solving. When you code, you are effectively solving a problem with such clarity that you're able to articulate it to a soulless computer. Learn to do that, and you're entire outlook on life will be different.

Debugging, building abstraction, breaking problems down, dealing with complexity. That's what coding is all about. Those skills are essential to every job, it's just that programmers have a language to express these ideas in.

Where should you start? If you want to makes games, tell stories or make other creations, go with scratch (even if you're an adult). Otherwise, you should pick a programming language that will help you solve a real problem you have. That might be autohotkey if you want to streamline your computer experience, Tasker if you want to make your Android phone do amazing things, or sed & awk if you need to tweak millions of lines of text. After you write your first useful program and you'll be hooked forever.

From there, learn the fundamentals. Two powerful ways to do this: HTDP and SICP. Just download Racket and you'll have everything you need to get started.

One final tip: if you want to learn to code, you only need to do two things: read tons of code, and write tons of code. The rest will take care of itself.

My only concern with the video: some poor kid is in for the shock of her life when she joins a startup and doesn't get free lunch or anything else. Nor is she going to have time to ride a scooter around the office because she's programming 17 hours a day. Other than that, great video.


More Destruction in the Hood

A little clear cutting isn't the only destruction we have going on near our home. The Navy Annex is being demolished, which is making for quite the spectacle.

These pictures, taken with my Galaxy S3, just don't do the destruction justice: