Saturday, April 7, 2012

Spring Break - Niagara Falls, Washington DC

For Spring Break, we did a family excursion to Washington DC with waypoints of Niagara Falls and Watkins Glen.

Prep work:
Navigation: My two year old Garmin GPS did not have maps of Canada and it would cost $60 to buy an expanded map, so I bought a new Garmin nĂ¼vi™ 1690 with US/Canada coverage instead.

Registering it and upgrading the maps was a horrible experience.  Theoretically it can be registered manually using any browser by typing in the serial number, but the Garmin web site did browser version sniffing (more than simple User Agent string detection so spoofing failed) and refused to go to the registration page unless I was running a Windows or a Mac machine.  I finally gave up and powered up an old Mac Mini and went through their whole rigmarole. [rolls eyes]

I downloaded updated maps, but the updates would not go into the onboard memory, so I bought a 4GB microSD card.  The Garmin software would not load the updated maps directly into the microSD card, I had to download and run their host-based map software, download the maps to my Mac, and then use the Mac software to download the map pieces to the Garmin.  It was extremely slow and annoying.  To top it all off, I suspect it was not using the map pieces off the SD card during our trip based on missing information, e.g. it did not know about the Flight 93 National Memorial. [rolls eyes]

Hotel reservations:
  • Embassy Suites in Niagara Falls, Ontario, Canada.  Our northern neighbours have the best view of the falls, and we wanted to see the falls at night.  The hotel was chosen because of location, location, location (and I was able to trade in all my accumulated points for a night).
  • Hampton Inn in Horsehead (Elmira), NY.  This was picked fairly arbitrarily to be reasonably close to Watkins Glen and on the way between Niagara Falls and Washington DC.
  • Hawthorn Suites in Alexandria, VA.  This was "home base" for our DC daily adventures. Since it was a suite, it was much more comfortable than a simple hotel room.  This was an excellent choice, as it turned out.
    1. Hot breakfast (scrambled eggs, mystery meat, waffles) plus fruit, cereal, juice, coffee, etc.
    2. Roomy suite with a generous living/dining area and a kitchenette.
    3. "Manager's Reception" at night was actually supper (we had burgers, tacos, and loaded baked potatoes while we were there).
    4. Free shuttle to and from the Van Dorn metro station.
March 31
We launched the expedition at 6:50AM, an excellent start time for us.  At Port Huron, we used the Garmin to find a Speedway gas station, using the Google Search feature.  Unfortunately, it was closed.  Quite closed.  Fortunately, we found another one nearby that was open.

We made it to the Embassy Suites about 2:00PM. Shuttle parking threw us on check-in, we were (naively) expecting self-parking.  There was two choices: valet parking for $30 or semi-valet parking for $20 (a valet parked the car off-site with a shuttle to pick it back up again).  We scrambled to get the right bags, etc. out of the car, but we did score an undefended luggage cart and moved into our room OK.

The falls are walking distance from the hotel, which was nice. It is all uphill on the way back.

We did the tour behind the falls: it was very expense for a ho-hum experience. Definitely a "do once." Maybe.  There was a movie shoot going on overlooking the Horseshoe Falls. We saw a couple of takes, but it is like watching paint dry.

We went out to see lighted falls about 8:30PM. No lights due to Earth Hour.  I looked out the hotel window about 9:30PM and the lights were on. We went back out but only to the upper level, by then we were running out of ambition to climb the hill from the lower level back to the hotel.

April 1
We crossed back over the border and drove down to Horsehead, NY.  The Hampton Inn there was very nice. From Horsehead, it is 18 miles to Watkins Glen. After settling in at the hotel, we drove around the Watkins Glen park to get the lay of the land. The trail through the canyon closed yet for clean up and repairs. Bummer, but we knew about that. It was raining off and on, mostly on.

The GPS is giving me the silent treatment. I figure Griping Gertie is pissed because I switched to English June and Aussie Andrea.  I had to reboot the GPS to get her to talk to me again.  For the rest of the trip, we stuck to Gertie. [rolls eyes]

April 2
In Elmira and surrounding countryside, we saw a lot of Mark Twain signs, so we did a little research and discovered Samuel Langhorne Clemens was buried in Elmira so we visited his grave site.

After that, we headed for Watkins Glen, with a preliminary stop at Montour Falls - She-qua-ga (tumbling waters).  The Montour Falls were really spectacular.  That is one advantage of scoping things out the night before - finding the unexpected.

We walked the Watkins Glen rim trail, which was very neat.  The rim trail has several good overlooks, including a bridge across the chasm.  It would have been neater to walk the canyon trail.  On the positive side, it was sunshiny, warm, and we had the whole park almost to ourselves. During the summer, it gets pretty busy.

After the Glenn, we beat feet for our hotel in Alexandria, VA, arriving just before 7:30PM.  By the time we were checked in, we missed "Manager's Reception".  The "Manager's Reception" turned out to be a lot more than we expected: basically a light supper, including drinks.

April 3
For the Metro, we did day passes ($9 per head, unlimited travel from 9:30AM till closing).  This was a little more expensive than a direct ticket to DC, but a lot less hassle and gave us flexibility that we used to visit the National Cathedral and the Zoo.

We walked the mall for 6 hours. We went from the Smithsonian Metro stop to the Capital building, Union station (way overrated), and then back along the mall.  On the mall we saw the World War II memorial,  Washington Monument, White House (total bust), Lincoln Monument, FDR Memorial, and the Jefferson Memorial. The weather was great; sunny and pleasant.

The White House was a total bust because there was Something Important™ going on, so security had a major area behind the White House closed off (including part of The Ellipse).  We saw the front of the White House, but nothing of the back (which is the more publicised side).

April 4
Wednesday, we started out for the Mall, but changed our plans on the Metro and went instead to the National Cathedral.  The concept was to make a side trip there before we were all footsore from a day of Mall walking. The Cathedral was very interesting and impressive.  It was a bit of an uphill hike, but it was down on the way back so it all evened out.

The kids were pretty excited about the Zoo, so we agreed to duck in and check it out on the way back to the Metro.  Well, that turned into spending the the whole day there. It is a very nice zoo and the kids thoroughly enjoyed it.  We hit almost all the displays, leaving as it was closing for the night.

The weather mostly overcast but no rain - perfect weather for a day in the zoo.

April 5
We were originally scheduled to head home.  We had seen the monuments of the Mall, but we had not gone inside any of the museums, so we extended our stay another night.

We first hit the Museum of Natural History.  It was interesting, but very busy.  The gemstone collection was especially busy.  We ended up seeing the Hope Diamond, but none of the other gem displays because of the press of people.  That was a little disappointing.

Next we went to the National Archives.  It took a very long time to get in.  What was frustrating was the line would move nicely, then stall for an extended period of time.  When we got close to the door (after an extended "stall"), a security guard explained people were using their smartphones to buy a tour reservation for $1.50, bypassing (and stalling) the exterior line.  Once we got inside the building, the line for the Rotunda moved pretty quickly.  It looked just like the picture on the National Archives web site, except there are a lot more people clustered around the display cabinets in real life.

It was interesting to see the actual documents, but the experience was marred by the long wait, the crush of people, and the dim light combined with the faded documents (the Declaration of Independence was unreadable).  As a result, I was unable to fully appreciate and savour the experience.

We spent the rest of the day at the Smithsonian Air and Space Museum.  That was a great experience. I went all geek on my family and they even enjoyed it.  We saw most of the exhibits, but not in the depth that they deserved.  Next time...

April 6
On Friday we checked out of the hotel and drove to Arlington National Cemetery.  We got there in time to see the Changing of the Guard ceremony.  We went through the Lee House, saw the Kennedy grave sites, and then walked to the Marine War Memorial (Iwo Jima Memorial).  While walking to the Marine memorial, we watched a caisson procession, which was sad but beautiful.

After Arlington, we headed home.  On the way, we saw signs for the Flight 93 National Memorial so we did a little detour to see it.  The detour was pretty spectacular, a very nice drive through the scenic Allegheny Mountains.  Our feckless GPS had no clue about the the memorial and park roads, despite my updating the maps before we left. [rolls eyes]


The only other event on the drive home was driving past a bad car fire.  The car was fully engulfed in flames.  The highway was five lanes wide (counting the shoulders) so we were able to safely pass on the left shoulder, but not without some excitement.

Monday, December 26, 2011

Old Science Fiction: How well did they predict the future?

I've been reading my way through Project Gutenberg's Science Fiction bookshelf.  Much, maybe most, of the stories are short stories from the 1950s and 1960s. What stands out for me is that the big stuff has not happened and how much the mundane parts of our lives have changed.

Some of the "big stuff"[1] that has not happened:
  • Space travel between planets and solar systems[2].
  • Atomic powered rockets. And airplanes. And cars. And toasters (see next).
  • Ubiquitous, essentially free power, typically atomic. Mass to energy converters are popular in the stories. Fission/fusion reactors are extremely small and safe in the stories.
  • Flying cars.
  • Moving walkways.
What is really interesting is how many things that are written into the scenarios as "normal life" at the time the stories were written have changed:
  • The cold war (USA vs. USSR) is active.
  • Phones had wires and operators (and rotary dials). They typically had a video feed as well.  While video is available today it is not prevalent for everyday use (no thanks, I don't need to see my boss).
  • Smoking. Smoking. Smoking in spaceships(!). More smoking.
  • Computers are huge.
  • Typewriters, telegraphs, etc.
  • Phone booths.
Misses:
  • The concept of a cell phone is totally absent.
  • Data transfer between computers (e.g. the internet).
  • The computer power and size of todays computers is so much greater than the power of the (huge) computers envisioned is so far different as to be effectively a miss.
  • A recurring theme is that, due to the automated production of goods, it will be the duty for people to consume products in order to keep employment from collapsing.
  • Other planets in our solar system (primary Mars and Venus) are habitable and often have existing intelligent life forms.
My conclusion: speculating is fun, but the things that you think will be real in 20-50 years will still be will-o-wisps. On the other hand, a lot of the things you take for granted will be so different that it will make your grandkids laugh at you.

[1] Only considering things that don't violate known laws of physics.
[2] Well OK, interstellar travel either violates known laws of physics, or requires discovery of new laws of physics.

Monday, August 15, 2011

Serial wrap test using bash

And now, for something entirely different...

Doing a simple wrap test on a serial port should be a no-brainer in bash, but I could not find all the pieces in one place, so I assembled the pieces into a short bash script. This is not very stressful and, I am sure, could be improved, but it gets the basic job done: send a string, verify it wrapped and was received correctly, rinse and repeat.

Tip: View page source to get a better formatted copy.

#!/bin/bash # # Serial wrap test # PORT=$1 LOOPS=0 TIMEOUTS=0 MISCOMPARES=0 # Receive the wrapped string # \param $1 - port device # \param $2 - length of string that we should receive # # It works without knowing the length, but knowing the length # helps re-synchronize. # function receive { unset recv read -n $2 recv < $1 echo ${recv} > $3 } stty -F ${PORT} sane speed 115200 > /dev/null while [ true ] ; do send=`date +"%c %N"` receive ${PORT} ${#send} $$.tmp & sleep 0.1 # Block ourselves to let the receive run echo ${send} > ${PORT} sleep 0.5 # let the send complete if [ -f $$.tmp ] ; then recv=`cat $$.tmp` rm $$.tmp if [ "${send}" != "${recv}" ] ; then echo -e "\n${send} != ${recv}" let "MISCOMPARES += 1" fi else let "TIMEOUTS += 1" echo -e "\nTimeout" fi let "LOOPS += 1" echo -ne "Loops ${LOOPS} Timeouts ${TIMEOUTS} Miscompares ${MISCOMPARES}\r" done

Saturday, April 23, 2011

The Statistical Singleton Falicy

The generalization of applying statistics to an individual could be called the statistical singleton fallacy: people (almost universally) inappropriately apply statistics to individuals. Statistics are only valid over populations (in the general sense). As the number of "things" in a population diminishes to 1, the confidence interval goes to 100%, i.e. you can not apply statistical conclusions to a singleton.

A simple graphic illustration of this is smoking. A smoker's probability of dying of a smoking-related disease before age 65 is 15.6%[1]. However, my probability of dying of a smoking-related disease (assuming I smoked) is either 0% (I don't die of a smoking-related disease) or 100% (I die).

People don't understand why some people smoke when there is such clear evidence of the increased probability of death due to smoking-related disease. Well, for each smoker, the probability is either 0% or 100%. If the smoker believes his probability is 0%, he will continue to smoke. If he believes his probability is 100%, he is a hypochondriac.

Thus, smokers either believe they are untouchable or they are crazy.

This is why it is so hard to sell "it's good for you" things... they are almost invariably statistically good for a large population, but can make no guarantees of "goodness" when applied to a singleton.

This applies in spades to health-anything:

  • Individual's health: Lose weight and exercise - it's good for you... but then they advise you talk to your doctor first to make sure the exercise won't kill you before it becomes good for you.
  • Program's health: testing is not guaranteed to find any bugs - if it were, running testing a second and third time would always find more bugs.

[1] http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1646951/?page=3

Wednesday, January 5, 2011

I'm a "sled dog" developer

I have never been comfortable labeling myself a rockstar or ninja developer. Instead, I consider myself to be a sled dog developer.

The "rockstar ninja guru" epithets have a "lone hero" connotation for me, so I am happy to hear that that meme is worn out. The best developers are team players. Even when developers are "a team of one", they are still building with and on the works of others (languages, frameworks, libraries, OSes) and contributing back via Open Source software, email lists, knowledge bases, Q&A sites, blogging, etc.

There are two main qualities that are expected in sled dogs: endurance and speed.1 Sled dogs live to run the trail. They love to do Important ThingsTM like saving lives in a Great Race of Mercy, but they are just as happy running the Iditarod race.

Sled dogs work as teams. There is a lead dog, of course, but also point dogs, swing dogs, and the powerful wheel dogs filling out the team. These have different personalities and strengths, working together to make a team better than the individual components.

To a good sled dog, the worst thing in the world is not working hard, it is not running fast. What breaks his heart is being locked in a kennel and fed dog food.

[1] Sled dogs (Wikipedia)

Tuesday, September 28, 2010

The Three Ninety Percents: Open Source, Enterprise, and Great Software

The Graphing Calculator Story has a great quote in it.

It is a cliche in our business that the first 90 percent of the work is easy, the second 90 percent wears you down, and the last 90 percent — the attention to detail — makes a good product.

As a pretty good approximation, this explains the user experience of Open Source, Enterprise, and Apple software.

Open Source software often stops after the first 90 percent, the fun part, and does not go beyond that.

Enterprise software is characterized by someone (no longer with the company) having done the first 90 percent years ago. The curse of enterprise software is that the programmers only ever do the second 90 percent, the unfun stuff. Enterprise management is not interested in creating new software (the fun 90 percent) or spending the time and money to make a polished product (the last 90 percent).

There are a few companies, Apple being in the vanguard, which do all three 90 percents.

Saturday, January 9, 2010

One word: Discoverable

The following is my take on The Black Box Disease, an excellent blog post. It is a revised edit of my post on Hacker News.


The "transparent" vs. "opaque" abstraction distinction is excellent, but I submit it is an instance of a more important philosophy. The philosophy can be summarized in one word...

Discoverable.

Opaque abstractions are not discoverable: you cannot look inside to discover what makes the abstraction work. If the abstraction works, life is good. If When it breaks, you are forced to limp along with a broken mental model of the abstraction. With opaque abstractions, every time it breaks, you get "buyer's remorse."

Transparent abstractions are discoverable: if you need to (or want to), you can open the box and look inside. As long as your mental model matches the actual functioning of the abstraction, you don't need to open the box. More importantly, when your mental model vs. the abstraction breaks down, you can open the box and either fix your mental model (likely) or fix or enhance the box.

Now to expand "discoverable", think of Apple's products (I think Apple is the best company at implementing discoverable products). Why do they not provide a 2 inch thick printed manual with their products? Because they have a comprehensive Help file[1]? No, it is because their products are discoverable.

You don't have to know how to use every feature of the iPhone in order to get started, you just turn it on and make a phone call. All the useful features a new user needs are obvious and intuitive. Need to browse the web? OK, there is an icon that looks like it will browse the web. Hey, look, it worked. Need to do ______? Poke around, ask a friend, ask Google and you discover new and better ways of doing _____.

More importantly, the advanced features lie quietly in wait. They do not distract the new user, but they are discoverable as the new user becomes more sophisticated.

Not needing a manual is just a side benefit of being discoverable. The bonus for the user and Apple is that the user's delight in the product does not end after the turn it on for the first time. There is no "buyers remorse." Instead, they are discovering new features for months, sometimes years, which results in a long term stream of surprise and delight in the product.

[1] Windows and most Windows software attempts to make their products discoverable by...
  1. showing all possible options at once, making their product incomprehensible, and
  2. providing an incomprehensible help file that, if printed, would be 2" thick.