Category: article
You are viewing all posts from this category, beginning with the most recent.
grand canyon - river to rim
The call for “Hooaaahhht Coffeeeeee” went out at 4:30AM. It was already twilight in the East and it was time to pack up camp and get on the rafts for the final 3/4 mile of our journey. We had all come a long way on this trip. From the first night where everyone managed to find a place to sleep in private, this last night looked like a refugee camp. We didn’t have much room and everyone slept right next to everyone else. Here you can see everyone’s gear and a corner of what we at first called the “Miller plot” and then renamed to Miller Estate.

Here you can see the bridge that connects the Kaibab trail from the North to the South wall. We went a little further downstream to Phantom Ranch and crossed our own bridge.

The facts of the Phantom Ranch trail are as follows: Its a 10 mile hike from the river to the rim. It is a 1 mile vertical difference from the river to the rim. Now the mathematically inclined will say that is only a 10% grade. Not a problem… It was a challenge. They tell you to have two one liter water bottles and to fill them full at the bottom. there is a halfway stop called Indian Gardens with a water station and a 3 mile (from the top) stop with a water station and a 1.5 mile stop with a water station. We filled our water at every stop. You do drink a LOT of water on this hike. You are also advised to rest for 30 minutes at each stop if you are having difficulty.
We left the river at 7AM and were to Indian Gardens by 10:30. This is going well we thought. Unfortunately when you get to Indian Gardens you have only gone 1/4 of the vertical distance. We finally arrived at the rim at 3:30. We made a lot of extra stops on the last half of the hike. Jane did not drink enough water during the first half and was struggling a bit during the second part of the hike.

In fact with half a mile remaining she was completely pooped. We asked one of our fellow hikers to send Josh back to carry Jane’s pack the last half mile. Josh wins the good sport award for the day.

Now you might wonder is the hike worth it for all that work? Yes, absolutely you get to see the Canyon in a way that you just can’t imagine by looking down from the rim. Here you can see some of the trail we came up. But not all the way to the river that is hidden in the distance.

Pictures don’t do justice to the amazing beauty of this corner of the world. We are all really glad we did this trip. As I’m writing this from the comfort of the Sedona Hilton, I’m inspired by the message on my plastic Gin and Tonic glass which says that “Travel is not about getting from point A to B, Travel should renew your zest for life.” This trip has certainly done that.
down the colorado into the canyon
For three days we had a great raft trip with Wilderness River Adventures. The trip was amazing! For three days we saw the Grand Canyon in a way that few are lucky enough to see, from the bottom up. As we rafted along we literally saw the history of the world from today to 2 billion years ago. The beauty of this place is just awe inspiring.
We began our trip at Lee’s Ferry, just south of Page Arizona and ended up at Phantom Ranch at the bottom of the Grand Canyon. We shared the trip with another small group (Rocky, Joe, and Denise) and one large group from Lafayette College.
The Lafeyette group really made the trip for us. The group of Geology students was led by Dr. Larry Malinconico (Dr. M) and Dr. Dave Sunderlin. In my slightly biased opinion I thought that Luther students were the friendliest students anywhere. The group from Lafeyette taught me that there are other colleges with really great students. Not only did we learn a lot from lurking in the back of the impromptu lectures but we had a great time getting to know them all.
Here are a couple of examples of how beautiful the canyon is. Here we are in calm water:

Here was one of our short day hikes. You can see our rafts to the right.

Of course no rafting trip would be complete without the opportunity to get wet, which we are about to do here:

And no trip report from me would be complete without a review of the food. In a word, awesome. Here are the two swampers (Kari and Everett) preparing our last dinner. Spaghetti and meatballs, or Alfredo Sauce. We had Salmon and rice one night, grilled New York Strips and Baby Red Potatoes another night. It was all “good eats”.

The leaders of the trip were Richard and Matt. Two excellent raft drivers. Not sure what the proper term is for the captain of a giant rubber raft. But they got us safely through some really “fun” rapids. At one point the Miller family did experience a collective flashback to being stranded in the Everglades when our raft got hung up on Whale Rock. This was right in the middle of the biggest rapids of the trip and we were just starting to wonder how we were going to get rescued when the raft freed itself and we were on our way.
The sleeping accomodations were better than expected by my standards. For three nights we just slept on our mats under the stars. No tents, just sleeping bags, tarps and mats. It was great. Since Arizona does not observe daylight savings time, it was dark by 8:30PM and light by 5:00 AM. So it was an early to bed early to rise kind of trip. One night I woke up at midnight and got out the camera. This picture doesn’t really do justice to the beauty of the night sky in Arizona but it gives you some idea of what we saw from our sleeping bags:

The last day of our trip we got up at 4:30AM and went about half a mile downstream to Phantom Ranch. From there we hiked 10 miles linearly and 1 mile vertically to get out of the Grand Canyon. I’ll cover that experience in another post.
bryce canyon sunrise -- antelope canyon
It was an early morning today. The alarm went off at 5:30 and we were out of the hotel by 5:43. We made a short drive up to Bryce Point in twilight. The temperature was only 37 degrees but it did not seem too cold. We waited a few minutes for the sun to come up over the distant horizon. When it did we were rewarded with some amazing colors in the canyon:

After sunrise we had breakfast at the hotel and then headed south toward Page. We had a slot canyon tour booked for 10:30 Arizona time so we thought we had plenty of time. Unfortunately we ran into an accident that closed highway 89. We had a nice chat with an over-the-road truck driver as we waited for the ambulance and fire crew to clear the road.
We still made it in time for our Antelope Canyon tour. This was an amazing photographic experience. I took way to many pictures but I’m going to have a hard time picking out 10 favorites from the 200 I took. Here’s one as a sample.

After checking out the view of the Colorado River we relaxed at the hotel around the pool. We just got back from our orientation meeting tonight. We got our waterproof bags to pack all our luggage in. We are all looking forward to the raft trip starting at 8:15 tomorrow morning. This will be my last entry until we hike out of the Grand Canyon four days from now.
angel's landing
Our first day of hiking in Zion National Park was great! Here is our goal for the day:

From the bus stop known as “The Grotto” we hiked 2 miles and 1,800 feet up to the top of Angel’s Landing. The hike to the saddle point in the middle of the picture was a fairly easy hike on nice wide switchbacks. The rest of the hike was more exciting. The park service has helpfully installed chain handrails to help you climb over any rough spots or to help pull yourself up the steep bits.
Here’s a picture of the Miller’s at the saddle point:

Here you can see an example of what the last part of Angel’s landing hike looks like:

Here’s a picture of Kaia and I at the top

phoenix to springdale
Long day of traveling today. Left Minneapolis at 9:05 this morning and just got into our room in Springdale UT at 11:00 Mountain time, or midnight back home. Actually we checked in a while ago but went straight to the Bit and Spur to have some dinner since our last meal was at Schlotzky’s in Phoenix.
The GPS said it would be a 7 hour drive. it turned out to be longer than that because we took a side trip to the Desert View overlook in the Grand Canyon. Here is a view from the Desert View of the Colorado River. We’ll be rafting down that river and into the canyon in just a few days. We will be able to see the watchtower from the river on our way into the canyon!

It was still quite a drive from the Grand Canyon to Springdale UT. Along the way we crossed the colorado river just south of where we will get on the raft.

We drove through Zion National Park in the dark. We are all looking forward to a great day of hiking in Zion tomorrow.
mit uses python instead of scheme for intro cs
I’ve seen several interesting blog posts related to MIT switching from Scheme to Python for their intro course. This is really interesting to me since SICP is one of my favorite CS books of all time. Nevertheless I’m glad to see leading institutions change to my favorite language.
Paraphrase of Gerald Sussman’s remarks
Dan Weinreb’s blog
vpython version 5
The other day I discovered that the folks working on VPython have been very busy over the last couple of years. I had given up on VPython because the Mac distribution was so difficult to use. It required the X windows server and one point and lots of other extra junk at other times. But now things are easy! There is a great installer package and it just works.
For those of you who have not heard of VPython before it is a 3D graphics module called visual built on top of Python and OpenGL. You can do a lot of nice 3D graphics very simply with VPython. Its great for education in math and physics and introductory computer science.
So as an experiment I built a turtle graphics module on top of VPython. I use turtle graphics a lot in teaching but the TKinter turtles all suffer from some event loop problems when you use them with IDLE. VPython does not suffer from this problem plus gives you a lot of other cool benefits. One of the benefits is that the window resizes automatically for you based on the units you use in your application. Want to draw a picture at the atomic level of detail? No problem, want to draw planets circling each other? Again no problem.
Here’s a screen capture of a fractal tree created in 3-D using my new turtle.

Here’s the VPython turtle code:
def tree(t,trunkLength):
if trunkLength < 5:
return
else:
turnDz = random.randint(20,40)
turnDx = random.randint(20,40)
trunkShort = random.randint(10,20)
t.width(trunkLength/10.0)
if trunkLength < 25:
t.color(color.green)
else:
t.color((174/255.0,145/255.0,0))
t.forward(trunkLength)
# right trunk
t.right(turnDz,ZAXIS)
tree(t,trunkLength-trunkShort)
# left trunk
t.left(2turnDz,ZAXIS)
tree(t,trunkLength-trunkShort)
# front trunk
t.right(turnDz,ZAXIS)
t.right(turnDx,XAXIS)
tree(t,trunkLength-trunkShort)
# back trunk
t.left(2turnDx,XAXIS)
tree(t,trunkLength-trunkShort)
# restore
t.right(turnDx,XAXIS)
t.backward(trunkLength)
If you want to check out the turtle module and play with it, you are welcome to do so: hg clone bitbucket.org/bnmnetp/v… Or send me mail.
book plug
Here’s a little plug for our book from our Colleague Mark Guzdial at Georgia Tech. This was written last September right after the book was published but I didn’t find out about it until this morning. Thanks Mark!
In addition, David and I have started a new blog to post corrections and updates to Python Programming in Context Over here If you are already using the book please check it out.
remember the milk
In the past year, I've been a passionate supporter of three task management apps. OmniFocus, Things, and Remember The Milk (RTM). I've switched back and forth between them trying to decide which one works best for me. I think I'm finally ready to commit to RTM as my long term solution and here's why.
All three apps have an iPhone component and a desktop component. Although the primary RTM interface on the desktop is through the browser there are plenty of Widgets and other desktop friendly ways to access RTM on the desktop. What I really like about RTM for the desktop is its openness. In terms of the ability to dump stuff into RTM its cloud computing model really works.
With both OmniFocus and Things I have to be on the same subnet as my laptop in order for the wifi syncing between my Ipod Touch and the desktop to work. Unfortunately outside of my house this is rarely the case. With RTM I can be anywhere. That means I'm free to roam anywhere in the world with my iPod Touch and I know that when I dump a task or note into RTM it will be there on my desktop or the web interface when I come back to it. If I forget my iPod Touch (a very unlikely event) I can still dump tasks into RTM from any browser.
The second thing I really like about RTM is its openness. As you can see from my posts below I have developed my own desktop interface to RTM using the Python bindings and LaunchBar. The three things that I want to do most often, with as little fuss as possible are:
- Add a task
- Mark a task as complete
- display tasks
With my LaunchBar integration I don't ever have to take my fingers off the keyboard to do any of those tasks.
When I'm using my iPod Touch, I think that the RTM client is the best and most fully featured of the bunch. Since RTM has been around as a service for longer than either Things or OmniFocus they have had more time to work on polishing their iApp. It already supports tagging and searching. Things that are coming in the other apps but are already here for RTM on the iPod today.
Because RTM has an open API there are lots of other nice interfaces for you to use that make it easy to dump tasks and notes into your inbox. Do you Twitter? Send a direct message to your RTM inbox. Do you Text? Send using the Twitter RTM gateway you can text directly to your inbox. Email? yes. You can even email a whole list of stuff to RTM as a way to quickly import a long list of tasks or packing items you have copied from somewhere else. Jott, yes. The possibilities are endless and expanding all the time.
python + growl + remember the milk = launchbar task management
Intro
Once I could add tasks to my RTM account through LaunchBar I wanted a way to quickly pull up a view of what tasks were due today through LaunchBar. The Growl library provides a nice way of doing this.
The overview is as follows: Activate LaunchBar and type due. This due is installed as a search shortcut and you can search for today, tomorrow, or all (abbreviations are also easy). The search shortcut runs the python script that searches your tasks on Remember the Milk. For each task it finds it puts up a sticky Growl notification so you get a nice list of tasks on your screen. You could easily customize the script to put all the tasks in a single notification but I like them separate.
Since the Growl module registers this script as an application you can also use the Growl Preference Pane to customize the look and feel or even the location of your notifications. You can also customize whether you want the notifications to be sticky or not.
The Code
Here is the code for doing all of this. It makes use of the filter parameter on getList.
#!/usr/bin/env python
from rtm import *
import sys
import Growl
def sendNotify(ts):
if type(ts.task) == list:
for j in range(len(ts.task)):
notifier.notify("today","Task Due: "+ts.task[j].due[:10],ts.name,sticky=True)
else:
notifier.notify("today","Task Due: "+ts.task.due[:10],ts.name,sticky=True)
if len(sys.argv) == 2:
command = sys.argv[1]
else:
command = "today"
apiKey = "get your own"
secret = "this too"
token = "You will create this"
name = "RTMDue"
notifications = ["today","tomorrow"]
notifier = Growl.GrowlNotifier(name,notifications)
notifier.register()
if command[:3] == "tod" or command == '':
cutoff = 'today'
elif command[:3] == "tom":
cutoff = 'tomorrow'
else:
cutoff = None
rtm = createRTM(apiKey, secret, token)
if cutoff:
filterString = 'status:incomplete and (due:%s or dueBefore:%s)'%(cutoff,cutoff)
else:
filterString = 'status:incomplete'
theTasks = rtm.tasks.getList(filter=filterString)
if type(theTasks.tasks.list) == list:
for i in range(len(theTasks.tasks.list)):
if type(theTasks.tasks.list[i].taskseries) == list:
for j in range(len(theTasks.tasks.list[i].taskseries)):
ts = theTasks.tasks.list[i].taskseries[j]
sendNotify(ts)
else:
ts = theTasks.tasks.list[i].taskseries
sendNotify(ts)
else:
if type(theTasks.tasks.list.taskseries) == list:
for i in range(len(theTasks.tasks.list.taskseries)):
ts = theTasks.tasks.list.taskseries[i]
sendNotify(ts)
else:
ts = theTasks.tasks.list.taskseries
sendNotify(ts)
Next Steps
It would be great if I can figure out a way to have the Growl notification box call a script to mark the task as done. Feel free to leave comments or suggestions or improvements in the comments.