Friday, May 11, 2007

I Am Domestic

When I enter the word domestic into the handy dictionary dashboard widget that gracefully swoops onto my screen every time I press <F12>, I am presented with two disparate definitions:

1. Of or relating to the running of a home
2. Not foreign or international

The full definitions are actually a bit more verbose, but I like leaving 2 simply as a definition of what domestic does not mean. As it happens, it is about definition 2 which I wish to write in this post.

For whatever reason, most of my travelling exploits have taken place in far away lands. These are places which people gleefully leave every day to come to America and work jobs at which we slightly-less-recent immigrants turn up our noses. For the most part I have loved these destinations. A small sampling of my pictures from one such adventure can be viewed in this gallery. This year, however, everything was different. This year I boarded a plane that did not fly over any vast oceans or cross any potentially hostile borders (you can never be too sure these days). This year I went to a younger version of the Old World. I went to the East Coast.

Somehow I got away with calling myself American for 26 years having never laid eyes on such staples of Americana as Washington, D.C. and New York City. I am convinced that someone would have stopped me before I hit 27. Now, that will not be necessary. The trip was loads of fun. I travelled alone, but was practically always accompanied by one or more friends. Friends who experienced a severe mental lapse (hopefully temporary) and decided to move from, say, La Jolla, CA to New York, NY. OK maybe that picture doesn't do the entire East Coast justice. In fact, I found both D.C. and Boston to be exceptionally beautiful cities.

In D.C. I was able to see a truckload of important gumment sites and monuments. I also spent a lovely afternoon in the Smithsonian National Air and Space Museum. Working with Brian and Chris in the Polimetrix D.C. office was entirely enjoyable. In New York I hung out with my friends Kristi, Peter, Scott, and William. I went to Times Square and saw a production of Rent on Broadway. In Boston I checked out MIT and Harvard and I attended a Red Sox game in Fenway Park. Really, I could not have asked for more from a ten day jaunt (three of which I was working).

Check out my photos from the trip to see how I spent my time.

A huge thanks to Brian, Kristi, Peter and the Schwer family, Scott, and Courtyard by Marriott for your unconditional hospitality.

posted by David Shoemaker @ 9:27 PM   3 comments

Thursday, March 08, 2007

PyCon 2007

Polimetrix, Inc. was well represented at PyCon this year. Since MrShoe.org's readership includes both pythonistas and non-pythonistas, I should explain that PyCon is the annual community-organized conference for the Python programming language. This year Jamie, Christian, Ryan, Brad, and I all attended. We had a great time. Here are some highlights.

Jamie and I gave a talk entitled Scaling Python for High-Load Web Sites. The talk was both well attended and well received. Some prominent pythonistas have shown their approval. The slides were also posted to reddit and a number of people del.icio.us'd them. We also had some very interesting conversations in the halls with fellow pythonistas who have dealt with some of the problems we covered in the talk. All in all it was a worthwhile experience and I enjoyed it.

Hanging out in the Web Dudes Pad with Bob Brewer, Chad Whitacre, Ian Bicking, and others was a lot of fun. It was great just to meet those guys. Together we reached python enlightenment. I learned that Chad can make just about any conversation entertaining. Bob, I vote the Web Dudes Pad becomes an instant PyCon tradition.

Some of my favorite talks included Ivan Krstic's keynote about the OLPC project and Interactive Parallel and Distributed Computing with IPython, by Brian Granger.

Playing poker at 4am with jamwt and dowski was also fun.

Here's hoping it's not in Texas (near Dallas) next year

posted by David Shoemaker @ 9:10 PM   3 comments

Wednesday, January 10, 2007

I need one NOW

Yesterday I made the trip up to San Francisco to join my friend Nick Murray and his dad Mike at Macworld Expo. The expo consists of hundreds of booths showcasing third party Mac-related products and one huge central display by Apple itself. Most of the third party products were unremarkable at best: a relatively pedestrian smorgasbord of iPod covers and speakers. Apple, however, managed to make quite the splash.

Let's not beat around the bush. I have yet to to recover from the prodigious world-rocking meted out by the iPhone demo. Never before have I witnessed such life changing potential contained within a compact exemplar of consumer electronics masterpiece. In order to emphasize my dire impatience for the iPhone's release I have crafted this crude count down clock.

I will refine the clock's accuracy when the exact release date is announced.

posted by David Shoemaker @ 9:42 PM   2 comments

Tuesday, May 16, 2006

It's May?!

Time is flying, MrShoe.org patrons.

I planned on dedicating a post to PyCon 2006, at which Polimetrix was represented by three brilliant Pythonistas (myself included). Unfortunately, the excitement of PyCon has all but disappeared around here by now. I do remember that the PyPy guys had a lot of cool stuff to say, and that the Eve Online presentation inspired me to look harder at Stackless Python and greenlets. I even remember deciding to write a distributed version of Sol in Python using one of these technologies.

Alas, none of these plans have seen the light of day due to other contraints on my schedule. What constraints, you ask?

Well, work always takes up way more time than one would like. Ryan moved up here to work at Google, so we've spent a lot of time looking for three-bedroom housing in the Palo Alto area, to no avail. He's on the couch, for now. The Sharks have kept me busy in front of our new TV with their big push going into the playoffs. Unfortunately, I've lost all confidence in them after the last few games. It was a good run, at any rate.

I've also been working on a new super-secret project that will be making its way to MrShoe.org soon. I'd tell you about it, but it is super-secret.

So I have been up to more than just negelcting my web site, albeit not too much more.

In other news, Apple just released the MacBook today, which I plan on purchasing very soon. Exciting, no?

posted by David Shoemaker @ 11:55 AM   3 comments

Wednesday, January 11, 2006

Better Bashing

Bash is a big part of my life. I spend a huge part of my day interacting with my shell at the command prompt. For years now, Bash has been my shell of choice. That's not to say it's perfect, however. There have been a few nagging deficiencies in Bash that I have been meaning to remedy, and I finally got around to doing just that today. (Relevant config file contents are at the bottom of this post.)

One thing that's long annoyed me in Bash is that history searches only show the next match (whether forward or reverse, incremental or not). I want to be able to scroll back through all commands in my history that match a search. It turns out that there are a couple readline builtins that accomplish this: history-search-forward and history-search-backward. (See 'bind -l' for a list of readline commands, by the way.) They are not incremental, but they work well if you know the first few characters of the command, which is the common case for me. I bound these two commands to my up and down arrows using my .inputrc and now the arrow keys scroll through commands in my history that match the first few characters I type at the prompt. It's pretty handy.

The next feature I've always wanted in my shell is the equivalent of Ctrl-o and Ctrl-i in vim. Basically it's like the Back and Forward buttons on your web browser. Now, I know most of you are thinking that pushd and popd already get me there, but those commands behave somewhat differently. Read the Bash manual for details. What I want is to use cd to change directories, then use Ctrl-o and Ctrl-i to jump back and forward along my directory navigation history. I was going to somehow build this on top of pushd and popd, but I decided to just write my own system instead using a couple of arrays for the stacks. Here is the code, which I've included in my .bash_profile:

forward_size=0
back_size=0
declare -a back_dirs
declare -a forward_dirs

back_dir()
{
    if [ $back_size = 0 ]; then
        return;
    fi
    back_size=$((back_size-1));
    forward_dirs[$forward_size]=`pwd`;
    forward_size=$((forward_size+1));
    builtin cd ${back_dirs[$back_size]};
}

forward_dir()
{
    if [ $forward_size = 0 ]; then
        return;
    fi
    forward_size=$((forward_size-1));
    back_dirs[$back_size]=`pwd`;
    back_size=$((back_size+1));
    builtin cd ${forward_dirs[$forward_size]};
}

cd()
{
    wd=`pwd`;
    builtin cd "$@";
    if [ $? = "0" ]; then
        back_dirs[$back_size]=$wd;
        back_size=$((back_size+1));
        forward_size=0;
    fi
}

Using my new version of cd and binding my new functions back_dir and forward_dir to some keys (I ended up using Ctrl-f and Ctrl-b, also vi-inspired) I now have the behavior I was looking for. Here are the contents of my .inputrc:

$include /etc/inputrc
"\M-[B":   history-search-forward
"\M-[A":   history-search-backward
"\C-b":    "back_dir^M"
"\C-f":    "forward_dir^M"
"\M-i":    kill-whole-line

Note that I also bound Meta-i to kill-whole-line, which is too useful of a command to be unbound (yet it is unbound by default). There is probably a much simpler way of doing this, but this was easy enough and it works great. Try it out and let me know what you think.

posted by David Shoemaker @ 6:38 PM   8 comments

Monday, December 19, 2005

MAME Me

I hate to ruin the surprise, but I have a pretty good idea what my parents will be giving me for Christmas. I obtained this top-secret intelligence by placing the order myself.

I'm really excited about this year's gift. It's not really one single gift, but a bunch of parts that I'll need to construct the gift. The plan is to build a bona fide arcade cabinet which will house the necessary hardware to provide endless hours of classic gaming enjoyment for all.

Hopefully the end result will look something like this. With Brad's permission, Jamie and I plan on parking this beauty right in our office. This will undoubtedly increase the already high traffic to the Python Pit. Jamie and I are confident in our ability to defeat all challengers at Street Fighter 2.

All parts were ordered from Ulimarc Arcade Controls. Initially the cabinet will provide 2 joysticks with 6 buttons each, along with coin and start buttons for each player. The future holds plans to add a trackball and a spinner control. I plan on documenting the build process in the projects section of MrShoe.org, so check there for updates next month.

posted by David Shoemaker @ 12:12 PM   2 comments

Tuesday, November 29, 2005

Google Analytics

Those of you who store nightly caches of MrShoe.org for offline reading might have noticed a small addition while running a diff on the HTML. That small difference is a quick JavaScript call to Urchin. Fortunately for poor webmasters like me, Google recently purchased Urchin (and apparently is quickly erasing all traces of Urchin's existence). This is good news because Google now offers Urchin's software as Google Analytics for free, instead of Urchin's $199/month price point. I imagine this move has sparked a fair amount of Google-hating in the burgeoning web analytics market.

Along with using Webalizer on my Apache log files I have now been using Google Analytics for a couple weeks. I want to be up front about this, because I really am tracking every move of the innumerable masses that visit MrShoe.org every day. That's right, my friends in Windsor Park Estate, Singapore, I know who you are, and I know you can't get enough of MrShoe.org.

So far I have been very happy with the information Google Analytics provides and with the slick AJAXy user interface. One caveat is that they are experiencing massive load, which Google claims is the cause of some delays in data publishing. I've also heard that they are currently not allowing new account registration because they cannot keep up with the demand.

All this means that you can no longer peruse MrShoe.org undetected. Big brother is watching, and his name is mrshoe.

posted by David Shoemaker @ 2:15 PM   0 comments

%%%SIDEBAR%%%

Recent Blog Entries

Powered by Blogger