to infinity and beyond

We passed 3 million entries in our log data for InteractivePython.org which got me to wondering about how we are growing. The site has been live for 275 days. You can really see how the site took off after day 100, which makes sense because that was bout the time fall classes started around the country. The tiny plateau between day 225 and 250 corresponds to Christmas/winter break for most schools, and now that Spring semester is in full swing it looks like the slope has gotten steeper again.

The dotted line is the linear best fit line with a slope of 12,836.7. Even if our log database is not growing exponentially thats an impressively steep slope.

And just because this is all about Python and education, here's the Python code that created the graph. I love matplotlib, it is such a powerful tool for quickly looking at your data.


import matplotlib.pyplot as plt

from numpy import polyfit, arange



f = open('bydate','r')

days = f.readlines()

totals = [0]



for d in days:

    day,count = d.split('|')

    count = int(count)

    totals.append(totals[-1]+count)



x = arange(len(totals))

m,b = polyfit(x,totals,1)

print m

plt.plot(x,totals,x,m*x+b, '--k')

plt.ylim(ymin=0)

plt.show()

The data file is simple. One day per line with the date in one column and the number of actions in the other column. Here are the last few days:


 2013-02-14 | 24349

 2013-02-15 | 17396

 2013-02-16 | 12645


and now it can be told

Loyal readers will remember that last summer we cruised to Alaska, and some very secretive things were happening on that cruise that I could only refer to rather cryptically. Well, with the airing of last nights episode of Top Chef the story can now be told.

We were on the set for the filming of the Quickfire challenge onboard the ship! Although the filming took several hours, we got less than 1 second of screen time. But here we are! Brian and I happened to be in a pretty good spot as the camera flashes past us several times. The ladies we were talking to turned out to be from Wisconsin, in fact from right by our cabin! The two in the print shirts actually got an additional 2 seconds of screen time along with their comments on the food.

IMG_0276

Jane, Brian, and I all made it on again towards the end of the challenge. Sadly there is no sign of Holly.

IMG_0277

Of course since this was all way before the show started we had no idea who any of the chefs really were. I do remember really liking Sheldon's lettuce cups as well as Stefan's little potato soup cup. I could swear that I remember seeing Kristin on the ship, so maybe she got to come along since she would be competing in last chance kitchen in Juneau.

Right now I'm looking forward to the finale. I'm not sure who I want to win the most, with Stefan and Josie gone all the villains are off the show. I think it would be awesome if Kristin makes it through LCK and gets to compete against Sheldon or Josh in the Finale. Thats Josh, by the way, in the first photo.


the debary institute

Its been a great J-Term. A trip to Vail for some Skiing, and a trip to Florida to solve the worlds problems with great friends at the DeBary Institute. For those who do not know, the DeBary institute is a newly renowned think tank with roots in the Bone Lake Global Institute.

We arrived on Friday and spent a wonderful late afternoon enjoying the hospitality and home of our host, Tim Peter.

IMG_0214

On Saturday we toured Stetson University in the morning.

IMG_0221

Later we repaired to Smyrna Beach, it was a bit windy but we enjoyed it all the same.

IMG_0229

The culinary highlight of our trip was dinner at the Swamp House Grill and Tiki Bar. We enjoyed some lovely alligator bites as appetizers:

IMG_0236 (Yes, as the famous frog said, they do taste like chicken)

After dinner we sat around enjoying the music of Mark Moore.

Sunday was Football (European and American) and then Golf day.

IMG_0245

Dinner was provided by Gregory and Brad who made a charming seafood alfredo.

Monday morning we left the house at 5:50AM. The temperature was 62 degrees. Five hours later we arrived in Cedar Rapids where the temperature was -2. Thats a big swing for a monday morning.

Already looking forward to next year!


everyday python - new blog

I've decided that it will be best to keep my personal blog separate from the new Everyday Python blog project. All of the infrastructure to make the posts interactive just work so much better when I have control of the server and everything else. So You can head over to Everyday Python and click on the Everyday Python link there, or if you want to subscribe to the RSS feed for that project you can use this link.


vail 2013

I just got back from four awesome days of skiing in Vail and Beaver Creek.

Vail 2013

The Colorado resorts have a really cool new way of handling the ski passes, instead of clipping a tag on your jacket you now get a credit card with an RFID chip in it. Talk about a ski pass that appeals to the Geek in me! But whats even better is that every time you go on a lift, there is an RFID reader that grabs your ID and logs that lift ride. So now at the end of the day you can go on to a website and see how many vertical feet you skiied that day. Very cool. Over our four days of skiing we did just over 95,000 vertical feet! If we'd only known how close to 100k we would get we surely would have had a shorter lunch break on day one!

Since snow started late and has been a bit sparse since Christmas there was a lot of snow making going on. The mounds of snow created by the snow machines remind you of a Dr. Seuss drawing:

Vail 2013

I'm pleased to say that my skiing has really improved thanks to my Solomon BBR 8.9 skis. I've started to call them my magic skis because I can even do the moguls! Here's a picture I took of craig at the top of one particularly narrow and moguly run. Note that I got down first with enough time to turn around and snap some pictures.

Vail 2013

Here's another shot of Craig just before he jumped off the cliff. Note once again who went first to take the picture: :-)

Vail 2013

All in all it was a great four days of skiing with the guys. Can't wait until next year.


generating a password - part 1

OK, here is the first installment of the new Everyday Python series. Today I'm just providing a link, as I still have some infrastructure work to get done in order to publish each installment both here and at Runestone Interactive.

Generating a password part 1


introducing everyday python

Everyday Python

It is always risky to make your New Years resolutions public, but this is one I’ve

been thinking about for a while now, and so I’m going to go ahead and impose a

measure of accountability on myself by proclaiming this publicly. This week, I’m

starting a series of educational blog posts here, and as a part of my Runestone

Interactive publishing project.

My idea is to publish a series of Python programming projects, aimed at solving

everyday problems, or puzzles. Hopefully these little projects will be interesting

and will give learners motivation to dig into the details of the solutions. I

will provide links to the relevant Python programming constructs and data types in

either of the two interactive books (How to think like a computer scientist:

Interactive Edition , or

Problem Solving with Algorithms and Data Structures using Python) This will let me

focus on the problems, and not the minutia of the language. Lets face it, reading

about all the different possible string methods is not that exciting, but seeing

them in action, and then wondering about what else you might be able to do with

strings is OK.

The great thing about Python is that if you write things in a straightforward

manner its pretty easy to follow even if you don’t know all the details. So, that

is my intention. Write a solution and do it in straightforward Python that

beginners can understand. Each project will appear over several days, and

will likely include some homework related to the project. I’ll provide the solution

in a followup post. In addition, I may refine the solution over the course of

several days introducing more and interesting solutions or more advanced features

of the Python language.

In the back of my mind I am drawing inspiration from the old Communications of the ACM column by John

Bently called Programming Pearls In John’s columns he would feature a particular

problem or algorithm, and present it in a straight forward way, but then he would

refine that solution again and again polishing it until he had an incredibly

elegant solution. It was beautiful because even a novice programmer could

understand what was going on at the start of the article, but would get sucked in

to the beautiful solution and would learn more than they thought possible. While

advanced programmers might chuckle at the initial solutions, even they would have

to admit that they learned something by the end of each column.

I already have a few ideas in mind for the first few projects. I’m going to try

to start fairly easy with some string and list kind of projects, and work my way up

to more complex problems and algorithms, again this is meant to be educational so

that in theory a beginner might read through these posts more or less

chronologically, and learn some computer science along the way.

Click the title to leave a comment.


here's the headcam video of the zipline at icy strait.

video/mp4mp44803601910


euchre etiquette

How do you know you have an enduring friendship? When after more than 27 years as friends, and seven days of traveling together you can play Euchre – couple against couple – and still be friends at the end of the train ride from Seward to Anchorage. Now you might think that a simple card game means nothing, but there a few members of our party of 4 who are a little on the competitive side.

The controversy in this story came after our third missed bear siting on the train. “There’s a bear up ahead on the left side of the train… No now its on the right… no, now its on the left…” This is some kind of weird plan by the conductor to get the train rocking back and forth, or something to get the people in the back cars of the train to drink more. So, here it is dear readers, as we are all in a state of frustration over bear sitings, the up card is a heart, I’m holding three diamonds (but no bowers). Everyone passes, and it comes back around to me. I bid diamonds. This is when the trouble starts. As it turns out, Holly has both red bowers and only passed because she had better diamonds than hearts. Needless to say we get set, and I launch into some kind of self righteous tirade about “maur passing” just to set us. This scenario plays itself out three times again over the course of the train ride… Now last night I might have said some mean words about Holly’s card playing ethics, but today in hindsight, and in the spirit of type 2 fun, I can see that I might have been overly harsh in my judgement.




The card playing on the train was the culmination of a long day. The last day of a cruise is always a long hard day. For one thing, I think thats one of the things that all cruise lines suck at. You are an awesome person who must be waited on and pampered at every turn, until the last morning of the cruise. Then you yesterday’s news, who must get up early and off the ship as soon as possible, so your room can be turned over to someone new and wonderful who must be pampered at every turn. Or maybe I’m just grumpy that I’m not the new wonderful person anymore. In any case we love cruising and its ability to allow you to see great places in the world, all the while knowing that you have a safe comfortable place to eat and sleep each night.

We spent our day on a Kenai Fjord tour. We had another day of wildlife sitings. The new animals we saw today included Dahl Porpoises and up close views of Puffins and Stellar Sea Lions. The tour company was really good, it was Major Marine Tours. Its not the largest tour company in the marina but the service can’t be beat. When we got out into open ocean areas and the swells got large they were especially kind to the large number of people at the back railing “going for distance."



As I post this picture of the sea lions – whose population has been declining for the last several years – I am reminded of one especially redeeming quality of the day. SUN!! This is the first day since we left Minneapolis that we’ve had a sunny day.

After a long day, we arrived at the Anchorage train station at 10:30 PM. We got our luggage and the hotel shuttle picked us up for our ride to the hotel. Holly and I transported all of our bags to our room, while Jane and Brian stayed on the shuttle to go to the airport to get our car. We lucked out on the emerald aisle and got a good sized Dodge. At least its big enough to hold all of our luggage and all of us. We had envisioned a number of scenarios in which we stored our luggage at the hotel while we went North to Denali.

As I write this we are in our room in the Mckinley Creekside Cabins. Its not quite the same as our cabin on board the ship, but as Gabe would say, in Alaska, “Warm and Dry is more than you can hope for” We had a pretty good drive in the rain to get here, including a swell stop at the liquor store in Wasilla, and some fake pictures of where we imagine Sarah Palin might have lived. We got our tickets for tomorrows bus tour of Denali and then spent some time visiting with the sled dogs of Denali. We took the very scenic Rock Creek hiking path back to the visitors center and then headed out to Prospectors Pizza for a delicious meal.

Tomorrow will be another long day of hiking and bus riding as we go in search of Bear and Moose here in Denali National Park. We are hoping for another clear day so that we can see Mount McKinley.


- Posted using BlogPress from my iPad

Location:Alaska


icy strait / hoonah

I mentioned type 3 fun in a previous posting, and although there was plenty of type 1 fun to be had in Icy Strait I’d like to begin this post with a little description of some type 3 fun. As a reminder, the definition of type 3 fun is something that is lame when you do it, and remains lame and not fun even in the retelling. Thus was our bike tour of Hoonah.

I should start out by saying that it is not the fault of the bike tour guide, or anyone else involved with tours at Icy Straits. We signed up for the bike tour / zip line combination tour through the cruise line because that was the only way we could sign up for a zip line tour in the afternoon. The idea of an eight mile bike ride sounded appealing, a bike tour is a great way to see an area at a faster pace than walking, and is a nice way to get to know an area better than you do in a tour bus. but, the simple truth is that Hoonah is a nice small fishing town in Alaska, but there really isn’t that much to see. So, we saw the ferry terminal (3-4 ferries per week), the office bar, the seaplane dock, the library, the post office, and the airport. Oh yeah, and it was RAINING yes really really raining. We were absolutely soaked to the bone through our pants and jackets and everything. Yuck!

We all agreed that what we should have done was just not ride the bikes. We could have stayed at the visitor center for a while staying warm and dry and then gotten on the bus to the top of the zip line. Our mistake. So, yes a wet cold bike ride through a town of 800 is virtually the definition of type 3 fun.

But, lets leave that in the past and talk about the highlights of our day in Icy Strait.

It began in the morning with our whale watching adventure. We had booked a small tour with a private operator. I would highly recommend that everyone does this. The small boats are so much more nimble, and you get to know some of the local people in a way that you can’t when you are on a big boat with 100 other people. So it happened that there were only six of us on the boat with captain Floyd. We had plenty of room to spread out and we were not vying for position with other people when the whales showed up.

As whale watching trips go, this one just couldn’t be beat. We were not even out of the harbor before we were treated to a humpback bubble netting. Bubble netting is one feeding strategy used by the humpacks. They circle under the water making tons of bubbles that confuse the smelt to the point where they don’t know which way is up. Then the whale swoops in from below with mouth wide open and scoops up hundreds of gallons of water and fish. The whale closes its mouth and strains out all the yummy fish through its baleen. Here’s a picture of the first whale we encountered.





Now, of course, anyone who has ever been on a whale watching trip has seen lots of whale tails. As the humpbacks typically come up, show their hump for a while, and then dive deep. When they dive deep they do so with their tail straight up in the air. What most people do not get the opportunity to see first hand is a humpback breaching. This is when the whale propels its whole body out of the water. This is an amazing feet for an animal that averages 40 feet in length and weighs about 1000 pounds per foot of length!





We were lucky enough to see several such breaches. I was lucky enough to have my camera pointed in the right direction when this one happened!

Finally, we were in for one more bonus. Orcas! Its pretty rare to get to see Orcas on a whale watching trip! After watching the humpbacks for a while our captain informed us that there were Orcas in the area. This is another great example of the benefit of going on a smaller ship. The captain can just take off and follow the whales you want to see.





Here are two Orcas from the small pod we were following. For a while we thought we were going to see the death of one of the sea lions swimming perilously close to this group, but I guess they were not hungry at the time. The dorsal fin in the picture above is about six feet tall!

So, the whale watching was awesome, but our final act of the day was also a real blast. The worlds longest, highest, fastest zip line! Its a one shot ride from the top of the mountain outside of hoonah, down to sea level. This was really a stretch for Holly, who is a not a lover of heights, but the ride was fun. Unlike other zip lines, this one actually has a harness that allows you to sit quite comfortably. You don’t have any brakes to worry about as that is taken care of for you at the bottom by Physics.

At the top of the zip line you brace your feet against the starting gate, six people at a time, and then they count down from three. The gates open and you are off. In our case we started out in the clouds, flying downward. Suddenly you are out of the clouds and the ship and the water all come into beautiful view right in front of your eyes. In just about 90 seconds the ride is over, but its a real thrill. I’ve got some great video from the head mounted camera, but I’ll have to wait until I get home to edit that and post it.



- Posted using BlogPress from my iPad

Location:Hoonah, AK


type 2 fun

Our guide for the Mendenhall glacier trek told us that there are 3 kinds of fun. Type 1 fun, is just “fun fun.” Its good while its happening and afterward you remember it as fun. Type 2 fun is the kind of thing where you do something and even though you might be totally exhausted or in pain when its all over you remember it later as being an awesome thing to do. Type 3 fun, is no fun at all, it sucks when you do it and it doesn’t get any better in your memory over time.

Yesterday was all about Type 2 fun. Today was 8 hours of hiking, rock scrabbling, and walking on the glacier. The last two and a half hours of hiking were in pouring rain. But already, just one day later we are remembering yesterday as an awesome day.

We left the ship at 8:15AM to meet our guide, Gabe, who drove us out to the trail head. Gabe had backpacks for us with our glacier gear in them, a hiking pick axe, a helmet, a harness, and crampons. Also some light snacks. We were in our Alaskan layers of Dry Fit, Kuhl Fleece, and North Face. To this we added rain pants and a rain jacket. There was a light rain falling at the beginning of our hike, but that stopped somewhere along the way. The hike starts out pretty easy, and gets gradually more difficult the closer you get to the glacier. There was one point where we were truly climbing up the rocks next to a small waterfall. It was great, but it wasn’t easy.

After only a half a mile, people were stopping to shed layers of clothing like crazy. We continued this process for a good portion of the hike.

After two and a half hours of hiking and climbing over rocks we were really getting close to the glacier. With Gabe’s help we did some estimating on where the glacier would have been the last time we were in Alaska. It was really interesting to take a picture from that point and to see how far it has receded.

We took a short break to get our glacier gear unpacked and to gear up for our trek on the glacier itself. About this time it started to rain a bit harder, and it even looked like a few snowflakes by the time it hit the ground, so we cooled off very quickly while we were getting ready.

On the glacier, we found some cool blue ice holes and practiced walking with our crampons. Then Gabe asked if we would like to try some ice climbing. Why not?! The vacation has been injury free so far so we might as well try something new. This was really a blast even though it was just a short little climb to get the hang of it. Ice climbing involves driving your crampons straight into the ice wall, while hanging from two pick axes. Of course we had a safety line so we wouldn’t fall, if we lost our grip. It was really fun but took a lot of effort. Brian and I made it all the way to the top, and Jane and Holly both made a good run at it.




At this point we had been hiking and on the glacier for about three and a half hours. We knew we had two and a half more to get back so we were just about at the point to say it was time to head back, but Gabe had one last surprise for us. He took us over to the side of the glacier where we took off our crampons and hiked down to a spot where there was a cave. We hiked right inside the glacier. There was a little stream flowing into the glacier, and the ice was really amazing. Overhead the ice was glowing blue from the light filtering in from above. On the sides it looked like polished metal, which was because the ice was dirty and there was no light coming in from that direction. The idea of being inside this glacier, with the blue glow all around us made the whole day worthwhile.


When our spelunking was finished it was time to pack up our gear into the backpacks again and head back. By this time our feet were dead tired and the rain was coming down very steadily. Up until now the day had been all type 1 fun, but a two-and-a-half hour death march back to the car in the rain turned it into type 2. One fun little bonus on the trip back was that we saw some salmon swimming up one of the small streams. After catching them and seeing them jumping in the ocean it was interesting to see them heading up stream.

We got back to the ship, and headed to the hot tub. That did wonders for our legs, but we were so tired we didn’t even bother to dress for dinner in the dining room, we just threw on some clothes and went to the buffet. I believe this may be a first for us in skipping dinner in the dining room in favor of the buffet! Holly was sound asleep well before 10:00, I went to the magic show, and along with Jane made it to 10:30. Gone are the days of partying on the ship until midnight or after I guess.


- Posted using BlogPress from my iPad


ketchikan

Its a lazy, rainy afternoon here in Ketchikan Alaska. We are back from fishing and have warmed up with some lunch and a nice soak in the hot tub. The ship should be pulling out of port any minute now and we’ll be on our way to Icy Strait.

The last 24 hours have been a lot of fun. In terms of a sea day, yesterday would have to rank way up there for the unique experience it provided us. As you know from my previous blog post I can’t say much about it. We were part of a very familiar kind of scene to those of you who actually watch this particular kind of show. Meaning we were a part of a large group that got to try out some wonderful food and then share our thoughts. Whether or not we’ll ever be seen by millions of people is all in the hands of some editor at this point. But I know I’ll look forward to this episode. It will always remind me that Holly does not know what Jamie Oliver actually looks like, since he wasn’t here.

Last night we had our second phenomenal dinner in Qsine. This is the restaurant that features the iPads, we were rewArDed by seeing someone faMous at the tAble next to us. We didn’t intrude on her privacy since she was having dinner with her family and celebrating her father’s birthday.

This morning we were up bright and early for our fishing expedition. It was just the four of us and captain Bob. Bob was a great captain, he’s a salty dog that has been guiding fishing trips here in Ketchikan since the 1970s. We had a lot of fun fishing for salmon, even though it was a bit on the cold and rainy side. The high for the day was about 57 degrees, and we had rain off and on.

Of course we had to turn even a small fishing expedition into some kind of a competition. Although as competitions go this was pretty tame since we took turns reeling in the fish. At the end of the morning we had 14 fish in the hold. All of them nice pink salmon, that we’ll look forward to receiving via Fed Ex when we get back home. Here’s Holly and Captain Bob netting one of our first salmon.



And here’s Jane




Tonight we are looking forward to eating in the main dining room, and relaxing at one of the shows on the ship. It looks like the main entertainment is a comedian and that is often fun.

Tomorrow we are looking forward to a day of whale watching, biking, and zip-lining! Stay tuned.

- Posted using BlogPress from my iPad


secrets onboard the millenium

Good morning from stateroom 7199. I’m looking out the back of the ship at a lot of very low hanging clouds. We are in a “family view” stateroom, which means that we have one of the largest decks of anybody onboard. It is perfect for this Alaskan cruise as we can see both directions and even have a great forward view. When the ship is moving we can sit out on the covered part of the deck where we are sheltered from the wind.

Yesterday was a really fun day. We woke up in our two room suite at the Executive Hotel in Vancouver. Jane and I walked the two blocks down to Tim Horton’s to get coffee, bagels and donuts. The plan for the day was to shop for wine, water, and soda to bring on board. With shopping complete the next activity is to rent bikes and ride around Stanley park.

As we headed out for our shopping Holly realized that she was missing her tongue scraper!?? What the heck is a tongue scraper? Brian and I were full of extremely unhelpful suggestions for what might substitute as a tongue scraper. My suggestions of Emery boards or repurposed floss were particularly unhelpful since I had no idea what one should even look like. When Holly did finally describe one to me, it seemed perfectly reasonable that a spare plastic zip tie would work. Many pharmacies later we found one, and all was well with the dental hygiene world.

I must say the neighborhood we were shopping in was a bit sketchy. We passed by several very interesting sex shops, one featuring mannequins dressed in thongs fighting with light sabers. We tried to convince Holly that we had seen tongue scrapers inside the adult book store, but she didn’t go for it. The liquor store we were going to opened at 9:30 and it was quite an interesting study in humanity. People were literally waiting outside the door for the store to open. When the iron gate of the front door was finally unlocked there was a rush inside for people to buy their first drink of the day. Needless to say we were left alone in the fine wine section of the store. We found a nice selection of British Columbia wines to try including some very interestingly named varietals. Hatfield’s Fuse, Quails Gate, and Sandhill. As we checked out with our bottles to take aboard, the guy ahead of us in line was literally shaking to pay for his two beers and get out the door so he could pop one open.

With all of the shopping behind us, we returned to the hotel, where we were granted a late checkout time of 12:30. This worked perfectly for our bike ride. The bike rental place was just around the corner. Vancouver is an extremely bike friendly place. There were great bike lanes that took us from the bike rental place to the pier area and then around the park. It was really beautiful. Although it wasn’t a workout pace it was a fun ride, and a good way to get to know the city a little better. We will definitely come back someday just to spend some time in and around the city.

With the bike ride complete we ordered a taxi and headed to the pier. As we were going through the customs line we were joking with one man who was sent to the much shorter line for ‘the film crew.’ Yes, much mystery surrounds this first night on the ship. Our reservation in Qsine had to be changed at the last minute because of a filming for a ‘food related show.'
We of course pumped this guy for information, but he couldn’t tell us anything. I even tried the old, ‘blink once if its Alton’ line but he just laughed and headed through customs.


Later in Qsine we had a really great time with the wait staff and the maitre de. We said, OK, look we know something is happening because they changed our reservation, so who is it? Whats going on? Finally, a member of the staff, who identified himself as James Bond, agreed to the you guess and I’ll nod game. I got the person and the show right on my second guess. For which we were rewarded with an invitation to dinner at Qsine again tonight where we may be part of the taping. We will have to sign non-disclosure agreements, so although I would love to reveal the name of the show, I can’t. I will say that this could be at the Top of my list for exciting happenings aboard the ship. If I get to meet a celebrity Chef that would certainly be a highlight of my amateur culinary life.


- Posted using BlogPress from my iPad

Location:Inside Passage, enroute to Alaska


how to think like a computer scientist interactive edition

After hosting the interactive edition of How to Think like a Computer Scientist on the Google app engine at thinkcspy.appspot.com for over a year, we finally made the switchover to a new domain.  As of today all requests to thinkcspy will be automatically redirected to http://interactivepython.org

This new domain, is hosted by Webfaction.com.  They have very reasonable hosting rates, along with plenty of bandwidth and disk space.   I have more control over the development platform that I use, I get to keep my data in a real relational database (postgresql) where I can write queries and export my data as much as I want, and finally, if I ever need to move from Webfaction, I own the domain and can move it with me, and I won't need to go through this name change again.

For those of you who have used the thinkcspy site, you will notice a few upgrades to the content of the book have taken place.  In addition, we are now hosting another book along side thinkcspy.  So we now have coverage for both CS1 and CS2.

CS1 -- http://interactivepython.org/courselib/static/thinkcspy/index.html  

CS2 -- http://interactivepython.org/courselib/static/pythonds/index.html  

The CS2 book is based on our paperback book, Problem Solving with Algorithms and Data Structures using Python by Brad Miller and David Ranum.  Our forward thinking publisher has given us permission to convert the paper book into an interactive version and make it available online!

The other great thing about the move to interactivepython.org is that you can now host your own course.  That is you can use one of our books online, but you are the instructor, so you can grade homework assignments, and look at activity reports for the students in your class.  So far we have 20 different institutions hosting one of the two books for a course currently,  or for the upcoming fall term.  The links to create your own course are right there on the home page, so if you are interested in using this site for a course go right ahead.

The one downside to this move is that I did not migrate any of the data from the old thinkcspy site.  So if you have saved programs there you will need to recreate them at the new site.  I gave people plenty of notice about the move, so I'm hoping this won't turn into a big issue.  If it is, let me know, and I'll try to pull your code out of the google datastore for you.

The second issue with the move is that I don't use google accounts  anymore.  If you want to save your programs you will need to create an account on the site.

If you have a link to thinkcspy.appspot.com on any pages you control, please make the change to point to the new domain and location.  Thanks!

If you are interested in contributing to the project, have a book you would like to host, or are just interested in how we are doing this, you can check out the code on github:  [github.com/bnmnetp/r...](http://github.com/bnmnetp/runestone)   If you don't want to go that far, but have assignments, or assessment questions you would like to contribute, please contact me!

 


saying goodbye to namibia

Sitting in the lobby of the Hotel Safari this morning.  We've checked out and are just hanging here until about 11:00 before we head to the airport.  It seems like a lifetime ago that we checked in here, exhausted, and grubby after 39 hours of travel from the USA.  Now we are refreshed, our bodies are on the right time zone and heading on to the next segment of our journey.  Its really strange to think that I'm heading to Israel, while the rest of the group is heading to cape town.  One consolation is that I'll be enjoying nice warm 90 degree weather, while they will be in Cape Town's winter at 59 degrees.

Last night we had a very nice dinner at Nampa and Matty's house.  I'm very jealous of Matty's indoor wood fired oven.  He had obviously been grilling meat for us all afternoon.  Not only does it make delicious meat but it also heats their family room.  It was amazing to hear the story of these two Luther College Alums.  They were at Luther in the mid 90's, but by the time they found their way to college in the USA they were married and had small children.  They are so grateful to the people of Decorah for their hospitality and help that they are always eager to open their home to Americans who are traveling in Namibia.  We worked hard on their youngest daughter to convince her that she must come to Luther to go to college.

As I think about the two purposes of our trip, the philanthropic, and the cultural I am inspired to try to return someday, and to help to keep up the good work that EmpoweringLearnersNamibia has started.  There is so much more we can do to help, and it really doesn't take much money to accomplish a lot here.  For example a new Kindergarden school could be built to replace the 10x12 metal shack for about  $5000.00 US.  


almost back to windhoek

Well, here we are on the B2 not 55km from Windhoek and the Safari Hotel.  Suddenly our coach makes a very bad noise and we begin to coast down the road.  Joey looks rather concerned.  We coast to a stop and pull over to the side of the road.  One of the few places in all of Namibia where there is almost no shoulder.  The diagnosis is dire, the clutch plate is out.  Luckily its only 1:15 in the afternoon and we are close to our destination.  David is on the phone getting another coach on its way.  This bus that we've spent so many hours with is not taking us any further.

So far we are all in good spirits.  The sun is out, the weather is nice.  We are joking about our plight and assessing our provisions.  In the cooler we have some apples, a half bottle of Riesling and one Windhoek light.  Suddenly Joey says… "I need a beer!"  We all crack up, we'd be happy to give Joey our last beer, he's been such a good sport with great humor this entire trip.

We are thankful that this little mishap happened here.  When we think of all the places this could have happened. The middle of Etosha, the middle of the desert, Each of which would be hours and hours from anywhere likely to have the ability to come and get us.  We'll be just fine, and this answers the important question of what to write about in today's blog.

UPDATE:  We're moving again, in a lovely, highly air conditioned coach.  Its just 2:55 so we were only delayed about 1:45.  When the replacement bus got here we formed a bucket brigade and transferred the luggage from one to the other in no time.  We're looking forward to arriving at the Safari and we'll still have some time to relax and refresh before we go to our dinner at Nampa and Matty's house.


photo highlights from namibia

Well, its really hard to pick out the photo highlights from this trip, but I decided to take a quick stab at it during my hour at the internet cafe today.  So, here's a link to the flickr photoset.  Hope you like it.


lions and rhinos and springbok, oh my! etosha!

If someone had told me six months ago that in the span of 24 hours I would see nine Lions,  two Rhino, four Elephants, three Hyena, one Jackal, a Journey of Giraffe, a Dazzle of Zebra, and countless Wildebeest, Springbok, Oryx, and Impala I would never have thought it possible.  But that is exactly what happened this last day.  As Ann remarked, "whoever thought I would be so casual about seeing another Zebra"

On the drive into the park we got really excited about seeing  a couple of Elephants and Giraffe in the distance, then Joey pulled off onto one of the many side roads that takes you to a water hole and we were able to get a little closer.  But later we were to find out that that initial excitement was just an appetizer.  A couple of water holes down the road, we pulled up and there were two huge elephants just standing 20 yards from the bus.  And the Giraffe seemed to be everywhere along the side of the road.  It was really incredible to get so close to all of the animals.

We stopped for a late lunch and then walked to the water hole at the Na… Rest Camp, someone had sited another elephant and it looked like we could get close to this one standing on the observation platform.  However when I got out there it had disappeared into the bush.  I had turned around and was headed back toward the bus when Josh Martin softly called me back -- "Rihno!"  I got back but the Rhino had wandered into the trees so I was only able to get a partial shot of it with my camera.  I have a great 70-200mm zoom, but I was now wishing I had upgraded to the new 100-300 model!

When we got to our rest camp we were all planning to sign up for an open air Jeep excursion.  It was a little confusing, but our options were to go out at 5:30AM, midday, or an evening excursion starting at 18:30.  I don't think any of us was particularly excited about getting up for another early morning drive, so lots of conversation ensued.  In the end we all booked the 5:30AM tour and were not disappointed.  Remember that we are in Africa, so even though the days are long in the Northern Hemisphere we are at some of the shortest days here.  At 5:30 it was still completely dark.  However we were treated to a spectacular view of Venus and Mars.  Our guide and driver for the morning was named Samuel, he's been working in the park for 20 years and does an amazing job of spotting the game.  We told him that we really wanted to see some cats and he smiled and told us that what you see on any given day is mostly luck.

We drove for quite a while in the dark with Samuel illuminating our path with a red handheld light.  It was COLD, we all had on many layers including winter coats, and luckily Samuel provided us with ponchos to put over our legs for another layer of warmth.  We never really did see anything in the dark.  At the first water hole we stopped we didn't see anything so we drove around to the other side of the water hole where Samuel said 'Lion!'  We looked and at first none of us could see it, but eventually we all saw what he was pointing to.  A male lion laying down at the edge of the water hole munching on something that was freshly killed.  As I was watching the lion through my long lens I noticed something much darker pop up from the grass behind the lion.  Samuel confirmed that it was a Hyena, in fact there are probably several of them waiting for their chance to eat whatever the lion leaves behind.  We also discovered that there was another lion that had been lying a few meters away from the first.  We were just starting to pull away when we were rewarded with a final view of the Lion who stood up and took a big stretch.

We drove on through herds of Zebra and all kinds of antelope when Samuel spotted another pair of Lions just on the edge of the pan, these were farther away than the first but the light was much better so I was able to get some good pictures and really zoom in on these.  In fact it turned out that there were seven Lion in this area, and Samuel said probably two more that we didn't see, because the pride is eleven, and we had already seen two of them at the previous water hole.  The drama of seeing this group of Lions was heightened by one lonesome and apparently suicidal Springbok.  This poor creature seemed completely unaware of the Lions and just kept wandering closer and closer.  Samuel said that Lions only strike if they know they won't have to chase their prey for more than 100 meters, but would could see the lions get very still and very low to the ground, they clearly had not missed this Springbok.  Eventually the little guy came to his senses and escaped with his life, at least for today.

When we got back from the drive we went to breakfast and we have spent the rest of the day sitting and observing at the water hole, or lying around the pool area soaking up some of the warm midday and afternoon sun.  We are hoping for a return of the Rhinos that appeared here last night, but as Samuel said its mostly luck as to what might show up on any given day.

And just as I finished writing those words we were rewarded.  A giraffe came ever so slowly and cautiously out of the trees to get a drink.  This is a really amazing process.  First she approaches the water hole very slowly, checking each way several times.  Then she must get in position to drink, which involves spreading her legs very wide  so her neck can reach the water, but you can tell this puts the giraffe in a very vulnerable position so much stopping and starting and looking around ensues as she prepares to drink.  And when she does its a long one.  Twenty seconds maybe with the mouth in the water, and then with a mighty shake she raises her body up and assumes a position that looks like she's ready to flee.  With all of us sitting up here taking pictures and whispering she is very cautious of us.  What a site, this whole trip to the water hole probably took just over an hour between her cautious approach to the hole and then multiple long approaches and drinks.  Patience is a virtue.


rev. p. hanock kindergarden.

Our second stop of the day yesterday was at the Rev. P. Hanock Kindergarden.

This 'school' was a metal building that was a maximum of 12 feet by 12 feet and barely tall enough for Josh Martin to stand in.  This school housed 24 students, about half of which had chairs to sit in.  The students were prepared for us to come, and gave us a concert and a number of demonstrations of their ability to count, and name the colors and the shapes.  It was really impressive and they were all so eager to show off their knowledge.  From the very beginning they instill in these learners the importance of knowledge and going to school. "Knowledge is our future" they sing.

In addition to this small classroom there are outhouse facilities donated by Luther alums Orv and Cathy Johnson. The Luther connections here in Namibia are many and strong.  It is almost heartbreaking to see what a relatively small amount of money by American standards can accomplish over here.  We left the kindergarden some blocks and a soccer ball.  The look on the children's faces when they emerged from the building to kick the ball around was another of those moments that make you realize what this trip is all about.


okahandja woodcarvers market

Here we are back on the bus after a stop at the woodcarvers market all of us laughing our heads off.  About 70km North of Windhoek we stopped at the woodcarvers market.  In my mind I had a vision of a sedate little market where Namibian men were sitting and carving interesting wooden masks and bowls.  What ensued was the first "holy shit" comment of the day from one of our co-travellers.  While Jane went across the road to the market, I went to the coffee shop to get some coffee.  As Josh and I crossed the road I was approached my a young man who said "I have your wife"  A swarm of young men descended on us, come to my shop, come to my shop, the next 20 minutes were pure chaos of bargaining in both US$ and Namibian $.

Now that the dust has settled a bit it appears that the best strategy is to offer somewhere less than half of what they first tell you is the price and work your way up as slowly as you can.  However, we all learned that the hard way.  Our first purchase of this manic shopping spree was a marble bowl.  The asking price was N$650, we countered with N$400 and settled at N$500.  Way to high.  As Jane was literally pulled out of that shop and on to another shop I saw an elephant hair bracelet.  I didn't have any Namibian dollars left so I told him I would buy it with US$.  He said $70 US for the bracelet.  I told him no way; but by then the bracelet was already on my arm.  So I told him the leather bracelet I had cost less than $20 he said make me an offer, so I told him $10.  But its made from Elephant hair!!  With that he wrote $50 on his arm.  No way, I said so I came up to $15.  Eventually we settled at $20.  I really do this is one of the best deals I've ever made.

As all of this was taking place young men were trying to lure Mary (Ethan's mom) to the outskirts of their little woodcarving village.  Mary resisted with the help of her sister Carol who exclaimed, "I'm not letting you get sold into white slavery"  Mary was the smartest among us as all she purchased was a single woven basket.

Meanwhile, Jane was embroiled in making a bargain for a couple of giraffes.  We were rapidly running out of cash, and she was desperately trying to get back to the first stall where she had found a bowl she really liked.  We ended up with the giraffes and two bowls.  Now this young man grabbed the bowls and told us he'd wrap them for us.  As he was wrapping them he insisted that Jane look at the Salad tongs in his stall.  He proceeded to hold our bowls hostage until Jane finally bought two sets for US$10.  Meanwhile Josh was standing outside the stall saying Mom, we have to go, the bus is going to leave.  Apparently this is a common ploy as one young man was stuffing marble candle holders into Jerry's backpack.  Ann had to pull them out and pull Jerry out of the stall in order to escape.

Jane is now trying to sell two of the salad tongs she bought to Josh Martin.  She told him she'd sell him the one pair for $20 US.  Just think of your mother she said!  If you brought these home to her she'd know you were thinking about her.  So, Karen, if you want some Namibian salad tongs just let us know, we'll make you a really good deal!

I think at the end of the session we had spent about $100 US, or 800 Namibian dollars.  Even if we overpaid for every item it was well worth the price just for the experience.  Plus we figure we are helping these guys make their living and propping up the economy of Okahandja.  Josh Miller and Josh Martin were the only two people who didn't spend any money.  Josh had 20 people approach him, and he just kept telling them, I don't have any money. I don't have any money.