Day 5

Angel 1: What are the Zamansky's doing next to that bridge?

Angel 2: Maybe they're pondering if their lives have had any meaning in this world.

Angel 1: Do you think we should send Clarence to straighten them out? He seemed to do a good job
 the last time we had a troubled person on that bridge. He even earned his wings.

Angel 2: I don't know, maybe they're just trying to decide on where to go to dinner.

Yep there we were, on the bridge in Bedford, I mean Seneca Falls. The bridge and town that was purportedly used as a model for Frank Capra's "It's a Wonderful Life." But how did we get there? Maybe we should start at the beginning.

We left our intrepid adventurers last night in Palmyra. After posting, we went to look at the Joseph Smith farm and Sacred Grove, passing the Mormon Temple and Church along the way. This morning after breakfast with what appeared to be a number of "pilgrims" getting ready to worship, we set off.

Requisite pretty pictures here:

Passing through all the "port" towns, each with the canal neatly manicured. Straight banks and a narrow channel it's easy to forget that the whole project tied together a number of NY waterways. At points like in the above picture, it's much wider and the banks much more natural.

We stopped at a hotel in Newark NY for the facilities. Natan noticed this:
The sign instructs to flush up for liquid waste, down for solid. We decided not to ask. Tim, I don't know if you read this blog, but I think you had a story about this.

From there we moved from the canal path to the road. After a few miles on Bike Route 5, we ended up in Clyde. Ate at  "Brickoven" a restaurant that used to be an industrial bakery.

Perfect stop for lunch. The corned beef hash I had wasn't great -- tasted like canned. Maybe that's just coming off of the hash I had at the diner in Tonowanda which was truly exceptional. Everything else was terrific and the staff and clientèle as friendly as could be.

From there it was on route 414 until we got to Seneca Falls. We did some road riding on our first day, but this was our most extensive. We had some stretches of six foot shoulders, but some of three and some of none. Since the roads weren't that busy it wasn't too nerve wracking.

Interesting though, to see how motorists treat you. Most motorists made attempts to slow down and shift at least partly into the neighboring lane (where oncoming traffic sometimes made this impossible). Every now and then, however, a car would blow by right next to us.

I particularly noticed a three car caravan that whooshed passed us. The first and third cars were no surprise -- a big honkin SUV and a red sports car. The car in the middle was an ice cream truck -- you know the kind. The small ones that park on a street corner to dispense Good Humor Bars. Complete with those big SLOW
emblems on it. In all fairness to the SUV's most of them gave us wide berth.

Forty two miles after we started, we ended up in Seneca Falls. It's noted for a number of things including the women's rights movement. There are a number of plaques noting important achievements of women including Amelia Bloomer, Elizbeth Cady Stanton, and others.

We walked part of the town, passing the church where the first equal rights amendment was proposed:

The Cayuga - Seneca canal:

And a neat sculpture garden:

After dinner, we walked back to our inn. So tired from the day, only 42 miles, but with a fair number of hills that we got a laugh out of this sign:

Only to realize that it was just poor typesetting:

Now back at the inn for a good night's sleep.

Today: 42 miles
Total: 177
Tomorrow: Syracuse

Brockport to Palmyra

Beautiful weather today, just like yesterday. Forgot to mention yesterday that Clarence Birdseye started his quick freezing experiments in Brockport.

Let's start with the requisite canal pics:

And a picture of my trusty steed:

We originally figured we'd get lunch at Rochester -- about 18 miles into the ride. If we felt good, we'd try to push on to Pittsford. We were pretty excited when we saw:

Of course, the entire canal path in Rochester is in park so we rode right through without thinking about it.

At mile 25, we finally stopped for lunch.

Pittsford has a nice little park right on the canal. A Bike shop, a couple of other shops, and a few restaurants. We wanted to try the Crepe place, but long lines led us to a third day of medeteranian food. Not bad, and a pretty view of the canal. Besides, since we were eating outdoors, we didn't even have to lock up the bkes.

We were making much better time than our first two days, but today was a tough one for Batya. She just felt weak all day. On top of that, porta-potties were at a premium. Throughout the trip, we've been surprised by the cleanliness of the porta-potties on the canal route. We've been equally surprised by the irregularity of their spacing. Some times they're at every lift bridge, some time much further apart. Today, there was nothing from shortly after we set out up until lunch. In the afternoon, Batya was ecstatic to find:

Other than the scenic ride, not too much today en route. We did see the lift bridge in Fairport. It's unique in that it has no right angles and that  the two banks are at different levels:

We also saw:

I'm also continually amazed at the design and engineering of the canal. We got to one of the locks just as it was about to go into action. Moving water from here:

To here, and then abck in just a couple of minutes.


We finished the day in Palmyra where the Mormons got their start. Known for it's "four corners" an intersection with a churh on each of the four corners.

All in all, a 50 mile day -- new touring best.

Total Miles: 135

Tomorrow we head off the canal and down to Seneca Falls.

Lockport to Brockport

Day 3. From Lockport to Brockport.

Lockport is "famous" for it's locks -- the two channel 5 step ones. Brockport is famous for it's... brocks?

After a reasonable nights sleep and breakfast at Hambleton House, our BnB, we were off.

 Here's one of the many lift bridges that cross the canal. Right now it's down. It's raised when a boat has to pass under. Back in the day, as there was much less road traffic, the bridges stayed in the raised position so boats and barges could pass. Stairways took pedestrians to the raised pathway to cross at any time. The bridge only had to be lowered when vehicular traffic had to cross.

The entire day was spent right along the canal providing for some very pleasant scenery:

And more lift bridges:

Crossing a canal aqueduct.

And here, this aqueduct is the only point at which a road passes under the canal.

And then to the northern most point of the canal:

About 22 or so miles in, we stopped at Albion for lunch. After riding around the historic downtown and seeing the cobblestone buildings, we stopped at a coffee shop  for lunch, picking up one of their famous SchnickleFritz cookies for a snack later on.

Here's another lift bridge -- in the up position this time.

This lift bridge was the sight of a circus stunt gone terribly awry.

Making it to Holley NY, we realized that we've actually covered a fair amount of ground:

This was at a park that had a really nice waterfall, but alas, I don't have a shot worthy of sharing.

From there five more miles to Brockport, the Victorian Inn, showers and dinner at a Greek restaurant.

Mileage for the day: 47
Total: 85

This beats both our touring one day total of 42 from McKeesport PA to Connelsville, PA and two day touring total: Mkeesport PA to Ohiopyle PA, 58 miles. It doesn't beat our top day which was 88 miles -- the NY Century (75 mile ride plus an extra 13 afterwards).

Tomorrow to Palmyra.

Erie Canal - Day 2

Surpassing our day 1 total of 1 mile wasn't going to be hard. We set out for breakfast. Rode down by the Niagara River and over the Rainbow Bridge. I was a little surprised not to find Asgard on the other side.

Back in New York, we continued on. Our first stretch was on Bike Route 5:

Paved but cragly and full of holes. Not very scenic either, at least not until we got closer to Tonowanda where we found the Seabee's memorial:

What else did we find in Tonowanda?

The Carousel Museum

Apparently, Carousel's were made in Tonowanda. One can learn all about them -- making the animals, the Wurlitzer organs, motors, construction, etc. Worth it if you're in the area.

After lunch at a local diner, the kind where everyone knows everyone and the hash is homemade and tasty, we finally found our way to the canal!!!!!!

We rode for miles along the canal with brief detours out to the road.

In this picture, all that green is actually on the canal. It's water chestnuts waiting to be harvested.

After a stop at the Amherst museum for bathrooms and a cold drink of water, we continued on. A few miles later,
we were in Lockport. Our destination for the night. Lockport is best known for having a two channel five step lock. One side has been replaced with a two step lock and the other is no longer functional but it's still pretty neat.

From there to our BnB:

Pizza and pasta for dinner, and now for a good night's sleep.

Total miles for the day: 37 for a grand total of 38.

Tomorrow: 42 miles to Brockport.

Erie Canal Day 1

Yesterday we started on a 12 day adventure. From Niagara Falls, Ont to Albany, mostly along the Erie Canal Tow path all by bike. A little more ambitious than our four day excursion outside of Pittsburgh last year.

Bright and early we set out -- at Penn Station by 6:00am. That's where we had our first scare -- the Amtrak agent said we couldn't bring out bikes. Amtrak policy say's otherwise (folding bikes that fold to within a certain size are allowed at any time according to their on line regulations. We also checked by calling). The agent checked and we were allowed to board.

 After a long day on the train including about an hour waiting for customs, we got off at Niagara Falls, Ontario. After checking in to the hotel, we went down to the falls. Had dinner at an OK middle eastern place -- good Schwarma, so-so falafel.

We then walked back to the hotel for the night.
Total milage: 1 (.5 from home to Penn Station and .5 from The Niagara Falls station to the hotel).

We did walk 2 to 3 miles though.

Circumnavigating the Island (mostly)

 Been a while since my last post but summer's coming so I think I'll have more time and energy. For today, a break from CS and Education issues and something on one of my other passions, bicycling.

Having not gone on a substantial ride for a while, yesterday, we decided to do a modified circumnavigation of NYC. Starting from home, we rode east over to first avenue. From there North...

 First stop, the UN. Here in front of the St. George and the Missile Dragon sculpture.

Typically NY, the first guy we asked to take our picture said no.

At 84th street, we made our way Carl Shurz park. A beautiful little park on NY's upper east side. Home to Gracie Mansion and a number of quiet spots. 
Here, along the  bike path, you can see the Triboro bridge (no, not the RFK bridge) in the background as well as the Hell Gate Bridge, that's the one in the background. It served as the model for the Sydney Harbour bridge in Australia. 

Unfortunately, the waterside path ends at about 120th street or so, so we turned into Harlem:

A Hariet Tubman monument 
and Hamilton Grange.

Up at 155th, you can get back by the river by the Harlem River Drive. You can see in the distance both the Highbridge aquaduct as well as the Highbridge water tower:

At the north end of the Harlem River Drive bike path is Swindler's Cove. One of the quietest, most beautiful secret nooks in Manhattan:

From there, up to Spuyten Dyuvil. Here from Inwood park with a view of the Henry Hudson Bridge:

Having reached our northmost point, we headed south. We of course had to stop at the Little Red Lighthouse by the Great Grey Bridge:

From here, it was a quick stop at Fairways and then home.

About 27 miles total on an amazingly beautiful day.

Next week we're thinking of riding across the GWB and into NJ.


I made chapati the other day. Based on a couple of recipe requests and the fact that this blog has been dormant for a while, I thought I'd post the recipe here.

 To start -- Chapati is an Indian flatbread. I guess what I made is technically Pulka but it's really easy to make and quite tasty.


  1. 2 cups whole wheat flour
  2. 1 cup water
  3. 1 tsp salt
Mix all the ingredients together to form a dough. Don't add too much water (I did this time) or it will be hard to roll the dough. Use a spoon at first but then use your hands. 

The dough should be soft and maybe just a little sticky:

Knead the dough for a few minutes then wrap in plastic wrap and rest for at least 15 minutes or up to a couple of hours.

Now, head a griddle or fry pan to medium high heat (I set the electric griddle to 400 degrees).

Separate the dough into eight pieces and roll them into balls.

Roll a ball out and place it on the griddle.

Cook for about a minute, then flip and cook for another minute.

Now the fun part -- take the bread and put it over an open burner:

This will cause the bread to puff up and parts will blacken.

Remove from flame and eat.

Sorting from the top and from the bottom

Sorting from the top and from the bottom

I've been meaning to write this post for a couple of weeks, but some times life just gets in the way.

I've always thought it important to arm students with as many different tools with which to attack problems as possible. As such, the courses I teach use a number of different languages, each highlighting a different paradigm and thought process. The hope is that by the end of the sequence, they can look at problems from many different angles.

In my advanced placement classes, we recently studied sorting algorithms. It think the quicksort is a good example of a problem that can be looked at from multiple points of view.

In my experiences talking to teachers and students who cut there teeth using languages like Java, C, or C++, much of the discussion deals with the actual partitioning of the array. Comparing elements, swapping them and arriving in the middle. One might end up with something like this as a first cut:

1: public void qsort(int[] a,int l, int h)
2: {
3: if (l>=h)
4: return;
6: /* Just use lowest index as pivot for now */
7: int pivot = a[l];
8: int low=l;
9: int high=h;
11: /* partition the data set around the pivot value */
12: while (l<=h)
13: {
14: while (a[l]<pivot)
15: l++;
16: while (a[h]>pivot)
17: h--;
18: if (l<=h)
19: {
20: int tmp=a[l];
21: a[l]=a[h];
22: a[h]=tmp;
23: l++;
24: h--;
25: }
26: }
28: /* sort items below and above the pivot */
29: qsort(a,low,l-1);
30: qsort(a,l,high);
32: }

A fair amount of time and detail is spent dealing with the low level movement of data within the array . This is important – good stuff, but it takes the emphasis away from the higher level elegance of the algorithm.

The quicksort can be described as:

  1. If the size of the list is <= 1, return.
    1. Select a pivot element
    2. Generate the list L of items smaller than the pivot
    3. Generate the list H of items larger than the pivot
    4. the sorted list is qsort(L)+pivot+qsort(R)

Having seen some scheme in their intro class, our students have a tool with which we can describe the quicksort in terms much closer to the description (allowing for the fact that this doesn't deal with multiple values equal to the pivot correctly):

1: (define makefilter
2: (lambda (op x)
3: (lambda (n) (op x n))))
5: (define qsort
6: (lambda (l)
7: (cond ((null? l) '())
8: (else (append (qsort (filter (makefilter > (car l)) l))
9: (list (car l))
10: (qsort (filter (makefilter < (car l)) l)))))))

This allows us to discuss the quicksort at a much higher level and focus on things like selecting a good pivot or the analysis of the run time. I believe this makes it much easier to really understand what's going on.

Having discussed it in this functional context, we can also look at the same thing in a scripting language such as python:

1: def qsort(l):
2: if len(l)<=1:
3: return l
4: else:
5: return qsort([x for x in l[1:] if x <= l[0]]) + [l[0]]+\
6: qsort([x for x in l[1:] if x > l[0]])

Again, the focus is on the algorithm, not the array or list manipulation.

Looking at the problem from both the more abstract side, which in this case functional languages allow, and the more concrete, as we did in Java gives our students more tools with which to attack problems.

Just some food for thought.

What's Next

Just a short follow up on the last post.

In thinking about how I frequently programs, once I have a plan, I work on one part of the project, and then ask myself "what's next?" That is, what is the next step towards completion.

It reminded me about a guest speaker we had a about a year and a half ago at one of our "professional development" days. For the past two years, our school has had "writing across the curriculum" as one of it's goals. While it's a laudable idea, I find the rationale for this goal to be poorly communicated to our faculty and the implementation weak at best.

Regardless, the guest speaker, William Zinsser, made a few good points.

The most important reason for most of us to write is to convey ideas or arguments. In short, communication. Many students have problems organizing and ordering their thoughts and as a result, their writing is all over the place. Zinsser simplified it to the following:

  1. What does the audience know?
  2. What do they need to know next?
That drives your next sentence. You continue this 1-2 punch until you've communicated your ideas.

This makes loads of sense, but here I was 40 years old and it was the first time I heard writing explained this way. What really struck me, however was that this concept wasn't new at all. Every ninth or tenth grader goes through this process time and time again.

Think about geometric proof. We have some given information and a conclusion we wish to prove. At each step along the way its:

  1. What do we know so far?
  2. What's the next step to get us closer to the conclusion?

Same idea.

The same can be said for program development.

Of course this makes tremendous sense since all thee things: writing, proof, and programming, are methods of communication.

Just something to think about.

Enter your email address:

Delivered by FeedBurner

Google Analytics Alternative