easy publishing with runestone interactive

During my January travels, I also converted this blog from tubmlr, which had been frustrating me for a while, to Octopress, with which I have been very happy. Nothing like hacker level control of your own blog. But more, than just the switch in tools, the move to Octopress inspired me to make it easier for people to publish small or large works using the Runestone tools.

Yesterday, at the Learning @ Scale conference we demoed this new capability. See [the demo here](<http://runestoneinteractive.org/LearningAtScale). To make it super easy to publish:

  • Lecture slides

  • Demonstrations

  • A Tutorial

  • Lab Instructions

  • In class exercises

  • A short module on your favorite topic not covered elsewhere

  • An entire book

Building

You can simply follow the instructions at this new repository: github.com/RunestoneInteractive/RunestoneTools. In a nutshell:

  1. Install Sphinx, paver, and paverutils using pip.

  2. Clone the repository

  3. Edit the index.rst file in source, and add any additional rst files you may want, depending on how complex your project is.

  4. run paver build

Deploying

Now you have a choice. In the build directory you have a nice self contained set of html files, these files are set up to make use of the runestone server invisibly in the background. The static html can be served from any web server. Just drop in the build directory and you are ready to serve. OR, you can now host and deploy your project using GitHub Pages. To host on github pages you need to do three things.

  1. Create an empty repository in your github account.

  2. run paver setup_github_pages and paste in the URL of the new account.

  3. run paver deploy

Now your pages will be available at: http://youraccount.github.io/YourRepo

If you want to host these pages behind a custom domain name, you can follow the instructions on github for doing so. Hint: Its really easy.

I hope this new capability will inspire lots of people to give these tools a try. I also hope that we can build a repository of resources built with the tools, so that we can all share our teaching ideas. Stay tuned for more on that.

Caveats

All of the features, activecode, codelens, assessment questions, parson’s problems, and more work just fine. The major thing that will not work (yet!) is the login/logout. I need to rework our authentication system in order for this to work. This will for sure need to happen before the end of summer.


reflections on january 2014

I left home on December 27 2013. When I left I had 3 bags packed. One for our trip to Mazatlan to celebrate the new year with our friends the Vermace’s. One for my January term class on the west coast, and finally a bag full of ski gear for the rest and relaxation trip to Breckenridge. Since leaving home I have travelled a bit over 10,000 miles. My means of travel has included several flights, two long train trips on Amtrak, some time in a car, and lots of time on public transportation.

In the last 35 days I’ve had more experiences than many people would have in a lifetime. I say this out of a sense of gratitude, and to remind myself how lucky I am.

  • I’ve body surfed in the Pacific Ocean on the beach in front of our rented house in Mazatlan called the Sand Castle. Calling the Sand Castle a house is a bit of an understatement.

  • I’ve been deep sea fishing, and reeled in a large Dorado (Mahi Mahi), which was cleaned dockside, and prepared on the grill at the Sand Castle just hours later.

  • I’ve toasted the New Year watching fireworks over the beach from the fourth floor of the Sand Castle.

  • I’ve gotten to know a group of 11 Luther Students well, and watched as they talked with and learned from some of the most successful entrepreneurs in the country.

  • I’ve had four days in Seattle to visit Pike Place Market, eat seafood, visit Pioneer Square. During the same period we visited Amazon, Microsoft, VMWare, and Percognate.

  • The Amtrak from Seattle to San Francisco promised spectacular views and a comfortable ride. While the ride was comfortable, if I did it again, I would definitely spring for sleeper cars for the group.

  • I’ve had four days on Fisherman’s Wharf, led a bike ride across the Golden Gate Bridge, and beyond Suasalito. While in San Francisco we visited Strava, Pinterest, Moovweb, Bizo, Sqwiggle, Schwartz MSL, and Hummer Winblad.

  • I’ve had four days in Menlo Park, including a 32 mile bike ride up Old La Honda road and along Skyline drive. I introduced the group to turkish food at Sultana restaurant. While in Menlo Park we spent a day at Google, a morning at SportVision, and learned about patent law at Fenwick West.

  • The train ride from San Jose to Los Angeles lived up to its billing. The views were spectacular, and we got to see an amazing sunset over the Pacific.

  • To cap off our trip we stayed in a house called Beethoven’s Trio in Santa Monica. Rather than eating out we were able to use the grill and the kitchen and prepare our own communal meals. It was fun to watch the students cook (and clean up) and eat in a very casual setting.

  • We got to spend the weekend exploring Venice Beach and anything else in the LA area. Sunday morning I met a group of Chelsea fans at a local British pub. A fun way to get my soccer fix for the week.

  • While in Santa Monica we visited with Capsule, Coloft, and Fullscreen. At Fullscreen we were hosted by three Luther alumni two of whom took the Entrepreneurship course and did the journey three four years ago. It is so gratifying to see your students succeed.

  • Finally I’ve been able to spend six days “recuperating” in Breckenridge. Some might say that five days of skiing is hardly recuperating, and I would agree. However, we have had 30+ inches of fresh snow in the last three days, and the locals say this is one of the greatest storms ever. So to say that the skiing has been fantastic is a bit of an understatement.

After all of this, perhaps the best thing is that I get to go home tomorrow.


on 14 inches of powder

The weather report said we had 6 inches of snow overnight. From the moment we walked out the door it was clear that they had underestimated the snowfall by about 8 inches.

Powder

We were on the third chair up at 8:30 this morning. The steep parts of the hill were awesome, with powder over my knees, floating through the snow. On the gentle parts of the hill we all formed a single file line in order to get through it all.

By mid-day it was work. The powder had been packed in many places and it was work to get through it. The snow continued heavily throughout the day, and we are supposed to get another 14 inches overnight.

This has been the perfect few days of rest and relaxation to finish off January term. Its even better because we bought the Epic local passes this year, which means we don’t feel like we have to ski full time, but can actually just ski until we are ready to take a break, and then ski again later. Its been great.


final visits

My daughter Kaia is getting married next summer. This is not new news, the proposal was made an accepted last June. But planning is in full swing now, and I was kind of excited when secured a visit with Capsule, because capsule provides a service where all the guests at your wedding can download the capsule app and it will automatically upload all the photos to a special page for the wedding.

This company was founded by Cyrus, who set out to solve a simple problem, a problem we’ve been coping with on this course as well. When you travel, how do you share all your digital photos with the buddies you are traveling with. When you have a big party? When you have a wedding, bachelor party, bachelorette party? Capsule has solved this in a nice, elegant way. All the photos uploaded for a particular event, are shared with the participants in the event. Its that easy. No need to bore all of your Facebook followers with every photo from your trip. If you’re an Instagram user, its super easy to add a special hashtag to your photo and it will be automatically imported into Capsule as well as shared on Instagram.

What was incredibly interesting for me was to listen to Cyrus talk about business models, and monetizing the service. Cyrus is not a CS guy, he’s a business guy. Of course as an entrepreneur he can talk the tech talk but his home is on the business side. Here’s an example of how differently we tech people approach a problem than the business guys.

Problem: Each event needs to have a unique id, that can be given to the participants to use to join the event, and/or tag their Instagram photos.

Tech Solution: Ha, this is easy, we’ll just allow people to pick a unique identifier, lets say #TannerAndKaia No problem, this is easy just give them a text entry box, and a quick database lookup to make sure the hashtag hasn’t already been taken. No big deal, even an intern could code this up.

Business Guy Solution: Ok, just generate a random hashtag #JK286TJ. Now if the bride and the groom want to have a nice hashtag for their wedding, we can sell them that as a strategy to monetize the service.

Brilliant! We tech guys get so focused on the solution most of the time that we never stop to think about simple strategies to monetize.

Our second visit of the day was to Fullscreen. This is a Culver City company that employs three Luther Alumni! Two of which I am very proud to say are also alumni of this very course. Drew is employee number 3 of Fullscreen, and Aaron is number 15, Jacob is not far after Aaron. Fullscreen now numbers over 220 employees, and is a very fast growing new media company.

What do they do? What do you mean new media company? Well, this is where my age really starts to show. Apparently there are people in this world that spend a lot of time watching “shows” on youTube. Shows like that Marbles girl, or teenagegirl14, and thousands of others. As Aaron said, this is not your demographic Brad, this is targeted at a group of people that will probably never pay a cable bill. So Fullscreen is a Network in the sense that they aggregate all kinds of these new generation entertainers, and help them monetize their videos on youtube. Note that monetize is a euphemism for ad serving, but thats really only a small part of what Fullscreen is about. Its a great company and Drew, Aaron, and Jacob were excellent hosts. They even talked their CEO into spending about an hour with us answering questions.

Another interesting story around Fullscreen is that Drew and George (CEO of Fullscreen) met at Coloft Santa Monica. We were also lucky enough to meet with the founder of Coloft, Avesta, (@avestar). He gave the students a great no-nonsense talk on his views of entrepreneurship. The story of Drew meeting George is a great example of the synergies that can happen in a co-working facility. At the time, Drew and a partner were trying to start a little consulting company to do coding for hire. Avesta happened to be talking to George who was looking for someone with Drew’s skill set. So he introduced the two of them, and a successful company was launched.

I love this story on a couple of different levels. First, as a professor I take pride in the success and accomplishments of my students even after they leave the campus. As an alum and faculty member of a college that counts community as one of its defining characteristics, it is great to find other organizations that lift up community as a differentiator.


applied math and physics

You know those yellow lines on the football field? They are harder to draw than they look. Think for a minute about all of the different field conditions. Natural green turf, artificial turf, mud, snow, cold brown grass. Now think about all of the different colored uniforms the players wear. Now, look closely. The line never covers up any part of a player, or the ball. Notice that? The ball doesn’t have a yellow strip, the ball blocks out the yellow line. The same with players shoes. Today we got to learn about the yellow lines, the blue lines, the down and distance information, and many more cool effects that Sportvision puts on our television screens.

SportVision

Here’s the group on the “practice Field” They were moving the blue and the yellow line for us as we stood there. You can kind of see them on the big screen on the wall. The rack of equipment behind me is what they need to bring to each game, and the computers on the desk are whats used by the operator during the game. The operator can adjust all sorts of parameters based on field conditions and uniform colors etc. In addition, in the case of a really bad snow storm, they can also project all the yard markers on top of the snow so the people at home have a better view of the field than the players.

In addition to football, Sportvision is also a big provider of on screen information for NASCAR and Major League Baseball. In the case of NASCAR they display a box of statistics right above the car as it goes around the track. For Major League Baseball, they show the ball and strike zone, and a bunch of statistics about pitch placement. They also collect statistics about every player on the diamond. They track the ball and the players using an array of cameras placed around the ballpark. Here’s where the cool math and physics comes in. Based on the flight of the ball, they compute the spin! The cameras are not good enough yet to track the laces, but with some math, they can provide a visualization of how the ball is spinning! Very cool.

Sportvision is looking at lots of sports, and looking at newer ways to get more information about every player. For example Football players may have special chips embedded in their shoulder pads someday in the future. NASCAR cars already have a special box in them that tracks all kinds of information for Sportvision, Soccer players are not likely to have any special chips as it would likely inhibit their play, unless something could be put in their shoes.

SportVision

Like most of the companies we have met with Big Data is an important part of Sportvision’s future plans. Right now their main customers are the television networks, but in the future individual teams will pay for data. One interesting aspect of the big data strategy for Sportvision is that they don’t have to productize the analytics part of it. The reason is because most teams just want the data, and they consider the analytics to be a competitive advantage. This doesn’t mean that Sportvision won’t productize some analysis software, because there is a market at the college level and below where teams can’t afford to pay for their own data scientists.


transportation cogitation

This is a post I’ve been thinking about for a few days. Its a serious post, but especially after today, its surrounded in humor. Here’s the problem, to me this is funny, but if you had to live with it every day of your life, it might not be funny.

My thinking about this goes all the way back to the first day of JTerm, when we walked, and walked, and walked… through miles of parking garage to get to the light rail that would take us downtown. When we arrived downtown, most of us could easily take the escalator conveniently up to street level. Where we hunted around for the elevator for the rest of the group. It turns out the elevator is never in a location that is convenient or close to the escalators.

The next day, I led the group into a coffee shop (not a Starbucks) that our host had recommended. I popped in, looked around, and quickly realized that we couldn’t stay, not only couldn’t we stay we couldn’t all get in the coffee shop. Stairs only, no ramp.

On the positive side, the Seattle bus drivers were all extremely knowledgeable and courteous. They were able to quickly help get everyone on the bus, and locked into place for a safe ride, without one word of complaint.

The train ride from Seattle to San Francisco was 23 hours. It was uncomfortable for most of us, especially when trying to sleep, but it had to be sheer torture for someone who couldn’t get out of their chair for the entire time. Things started to get humorous when we got on the bus outside the Amtrak station. It was like the driver had no idea how to operate the wheelchair lift! Hey lets just press some of these buttons and see what happens. Never mind, the picture diagram of what to do that was posted right there.

When we needed to use the super shuttle to go from San Francisco to Menlo Park, things got a lot worse. First, the super shuttle has yet to be on time. Second, even though we ordered an accessible van, the drivers once again clearly had no idea how to make it work. Luckily by this time our own guys had figured out the general principles of a lift and were able to quickly give useful advice. The real shocker was our bus from First Student. All jokes about being on the short bus aside, it blew me away that the driver showed up with a non-functional lift. He said the battery was dead, but that didn’t stop him from randomly pressing buttons while our crew figured out how to operate the lift manually.

Lift Operator

Its been an interesting process of learning and discovery on our travels, learning to look for ramps and elevators. Learning to avoid crappy rocky roads whenever possible, and generally feeling a small part of the pain of a comrade that has to put up with this stuff every day.


the social implications of a self-driving car

Today we moved south, from Fisherman’s wharf down to Menlo Park. But most of the day was spent at Google. This was certainly a day that everyone has been looking forward to for most of the trip.

My interest in Google+ was renewed by a great tech talk by Ed Chi. Who said some very nice things about me in front of my students. They probably think I paid him. We heard about supporting an organization as large as Google from Luther Alum Charles Banta, and about i18n – i(nternationalizatio)n from Luther Alum and former CS faculty member Craig Cornelius. Yes there are 18 letters between the parenthesis! We had a fabulous tour of campus, a stop in the 3D printer lab, time at the gift shop, and of course, lunch at Charlie’s Cafe.

You have probably heard about Google’s famous slides, but they also have fire poles for people that want to quickly get down a floor. And, in case you don’t want to walk between buildings they have these cool Google Bikes all over the place. Guests are encouraged not to ride the bikes, but nobody said anything about posing with one for your picture.

Google Bike

The other talk we heard was from Brian, a member of the self driving car project, who gave us a quick overview of the Google X Chauffeur Project. The technology is interesting, and I have to admit I hadn’t really thought past the cool sensors, and modeling that would be required. But, what is even more interesting are the many social implications of self driving cars.

Brian pointed out a couple of interesting facts for us to consider. Most people dedicate more space in their homes to their car or cars than they do to their own children’s living space. He also asked us to think about all the cars in the parking lot outside the office we were in. What fraction of the time are those cars in use? Are they parked 90% of the time?

What if our self driving cars could take the kids to school in the morning, and then return a while later to bring us to work? What if we could just bring up our smart phone and request a self driving car to pick us up at work and drop us off at home. We might not need such large garages. Could we turn much of our driveway space into gardens? Would this mean the end of rush hour? Probably not, but if the car was self driving, could a self driving car pick up you and a couple of friends on a logical path to work and drop you off? On the freeways would traffic flow more fluidly if the cars could talk to each other and the automated sensor systems were good enough to ensure a nice safe drive with cars spaced out 10 feet apart? A self driving car has no need to slow down and gawk if there is an accident.

lexus

Would we collectively own fewer vehicles if our car could be called to pick us up with the touch of a button on our smart phone, or automatically scheduled to pick us up based on our daily calendar?

The big car companies will say that self driving cars are 30 years in the future. The researchers at Google feel like we are more like 5-10 years from reality. Who is better situated to make that call? The companies with the navigational, and sensor technology, with access to smart phone interfaces and calendars? In short a company like Google? Personally, I’m rooting for Google on this one, and can’t wait to buy into my first self driving car collective.


a lesson in venture capital

“Ann is on a roll, we are going to be late.” I texted to Phillip. Indeed she was. Ann Winblad was the first investor in my Company, Net Perceptions, back in 1996. She was an investor, a mentor, and a supporter of us for years. Today she was giving my students a lesson in the new economics and ecosystems of software development. I was taking notes as fast as I could to keep up with the stream of new companies and technologies that were must know things according to Ann.

After the lesson she opened up the floor to questions, and the stories began to flow. And flow, and when the students stopped asking questions she asked them questions and told them stories about their answers. We were long past the end of our scheduled time, and I noticed her long term assistant Katie, standing across the room arms folded, glaring at Ann. Heaven only knows what poor entrepreneur was downstairs sweating while she was entertaining us!

Ann repeated a number of themes we’ve heard throughout the trip. One I don’t think I’ve mentioned here but we have heard from several people: Don’t sweat your first job. or Your first job is just your first job, so don’t worry about it too much. This is such a change from when I graduated from college, and I think its a real shock for midwestern students to hear. But I think it is true. We tend to think of that fist job as a real important commitment whereas the truth is it is a chance to get experience for 2-3 years and then to help you really decide your direction.

One thing I’m not sure I agree with is Ann’s assertion that 90% of sofware will be assembled from already existing components. This may be true for some companies, but it seems to me that real, big, breakthroughs are still going to come from creating new and innovative components for other people.

This is continuing a trend/theme that we have picked up on in this trip, but that may also be a bit troubling. 1. It is so much cheaper for a software company to get off the ground these days. Amazon AWS, is just one contributor to this, Sonatype is another. 2. Automated sales and marketing software is yet another. Gone are the days when you need a big face to face sales force to sell enterprise software. 3. The result of this is that VC’s are able to make bets on software companies for a relatively small amount of money. The downside is that they may not be investing in the riskier, bigger companies that may result in really big breakthroughs.

For my own, and your convenience, here is a list of words of wisdom and interesting companies to check out:

  • You need to know Atlassian, Github, and Sonatype

  • Think about Engagement Moments These are the times that people are really paying attention to their devices and are good times to hit them up with an ad.

  • Learn Hadooop

  • Writing SQL is a requirement for everyone

  • Plumgrid

  • Hortonworks

  • MongoDB

  • Puppet and Chef

  • Nuodb

  • Baynote


changing the world, jterm 2014

The following is a republication of a post I wrote for Luther College’s “Ideas and Creations” Blog.

Changing the World: Understanding Entrepreneurship, January 2014

I have never been so glad to leave Minnesota as I was on January 6th. The temperature outside was -24 with a windchill that defied all logic. I was headed for Seattle with 11 Luther students to begin my course on “Understanding Entrepreneurship.” I really enjoy traveling with students. Their energy, their enthusiasm, their ability to eat a doughnut burger at the airport before getting on a three hour flight.

Our itinerary for the three-week course includes four days in Seattle, an overnight train ride, six days in San Francisco, four days in Silicon Valley, a continuation of the train ride to Las Angeles where we will conclude the trip. Notice the nice progression of temperatures, from -24 in Minneapolis to 48 in Seattle to 68 here in San Francisco today, to even warmer in LA.

The goals of the course are for the students to meet with people from a variety of companies, from early stage startups to very successful large companies, and everything in between. We’ll meet with technology companies, Venture Capitalists, Public Relations folks, managers, programmers, you name it. The point is for the students to hear stories. Sometimes the most interesting and valuable stories are the stories about failure. Sometimes they are about success. Almost always they are a combination of the two that demonstrate passion, persistence, and the willingness to take a risk. The students are from a variety of majors including CS, management, accounting, marketing, and communications.The mix of majors creates good discussion, and questions from a variety of perspectives.

Some of the companies we have visited you have probably heard of: Microsoft, Pinterest, Google, and Amazon. Many of the people we have talked to at those companies are veterans of smaller companies that have ended up in a large company. Some of the companies we have visited you maybe haven’t heard of, and may never hear of: Sqwiggle, Moovweb, Strava, Capsule, and Fullscreen. Some of these smaller companies are still in the “garage phase,” they are just a couple of people with a great idea and a huge amount of passion to change the world.

I have connections to many of these companies from my former life as a software entrepreneur, but what is even more exciting is that I am connected to some of these companies by former students, and other Luther Alums. What a great experience it is for the students to see Luther Alumni, here on the west coast, doing great things.

Dan and John, Two smart guys

The students all have their own reasons for taking the course. Some want to see if the West coast is right for them. Some want to learn about the different job opportunities in the high tech area. Some are exploring. Some are looking for an internship for next summer at that one cool company.

It is the passion, and the willingness to take a risk on something you believe in that I really hope they take away from this course. Too often, our Lutheran midwest culture teaches us that failure is bad, something to be ashamed of. What they hear in Silicon Valley is that not trying is far worse. Everyone here has stories about failing. One, two, three or more startups that never made it. The reasons are as varied as the people. Something like 90% of newly started companies are not successful. But, people learn from their mistakes, move on, and do something new, sometimes they do something great. Always, they are trying to make a difference. If they learn nothing more than that, the course will be a success.


there is no cure for curiosity

Curiosity is the cure for boredom. There is no cure for curiosity. We began our day with a visit to PR firm, Schwartz MSL, Bryan Scanlon gave the group a great overview of the players in the PR space and how PR companies work. The tagline for their group may be something like “telling stories that matter.” I like this and it resonates well with a lot of the career advice people are sharing with the students.

In fact Bryan told a great story about his brother that really helped emphasize the message that you have to find a real world outlet for your skills and then use your skills to develop something real, something that you can tell a story about.

Bryan’s story was that at an interview for an engineering job his brother was asked to glue together two PVC pipes. A pretty practical, maybe even mundane, task for someone applying for an engineering job. However his brother took stock of the situation and said he couldn’t do it. “Why not?” asked the interviewer. “You don’t have any cleaning fluid” was the reply, “without cleaning fluid I can’t do a proper job and the joint won’t last.” He was hired.

Lunch time was great as Gage, Dylan, and I went to an Irish pub called Irish Times. The outstanding feature of this pub is that they had the Arsenal game on all of the TVs during lunch today. The arsenal were taking on Aston Villa, in a game we needed to win to retake “top of the table.” In a stroke of good luck I got to see both Arsenal goals before we had to take off for our afternoon meeting.

The afternoon meeting was at Hatch Today, a co-working space that houses many many small companies. We visited for over an hour with Eric, one of the co-founders of Sqwiggle. Eric is young, energetic, has a thousand side projects going, and is the epitome of young founders here in the area.

The software that sqwiggle produces is somewhat like Google Hangouts, but the video is only in black and white and only updates every 10 seconds, unless you are actively in a conversation with a co-worker. The idea is you can have sqwiggle on all day, without using a ton of bandwidth, and your fellow workers can see when you are in your office. If they need to have a quick conversation, they just double click on you. This allows for good interaction in a company that is totally distributed. Sqwiggle is a great example of such a company. One founder is in the UK, one in San Francisco, and one of their developers is Luther alum Cam Webb, currently in Atlanta, but soon to move to Des Moines. I think many of us were skeptical of the idea until we met with Eric, saw it in action, and learned a bit more.

Many of the themes we’ve been hearing about were repeated by Eric this afternoon, but I would like to highlight one that has not been mentioned yet. Measurement Eric showed us the company dashboard. Very cool, how many user, how many paying users, how many active users, revenue per month. All great metrics to run the business by. In addition he talked about other metrics they are collecting relative to the details of the software. This is a really important lesson. If you want to really improve something, you need to measure it. For example, bandwidth usage, number of active users in a conversation, you need to set goals, and then work on designing your software to meet those goals.


student blogs

A few people have asked for the links to the students blogs. Here they are:


a golden bike ride

What a great day for a bike ride! We rented some bikes at Blazing Saddles, right next to the hotel. Then took off for the golden gate bridge. It was a beautiful day and no surprise, the bike paths were very crowded with all kinds of people enjoying the outdoors and the scenery.

About half of the group above rode across the bridge and back. Here is me leading the pack.

The other half followed me further on into Sausalito, with the goal of making it to Muir Woods. The second half of the trek started off very nicely with a long downhill. which was quickly followed by a steep uphill. All well and good until my riders started to figure out that “what goes down must be climbed back up!” The ride flattened out through Sausalito and beyond so it was a nice easy ride for a while. But it was getting to noon, and we’d already ridden about 12 miles. I misunderstood the directions from the bike shop and thought we had about 12 more to go. So, since the guys all had tickets to Alcatraz and had to be ready to board by about 3:30 we decided to turn back short of our goal. It turns out we were much closer and could have made it to the redwoods! Bummer.

In any case, we rode just over 25 miles, and it sure felt good to be on a bike outside again!


the starlight coastal

A 23 hour train trip? At some point that seemed like a really charming idea. Eight hours in, I’ll say that the bloom is off the rose. Its been a nice ride, and a good chance to catch up on some reading and blogging but for the most part its just a long ride on a train full of people. The views have been OK, but it is now dark outside.


how many trees in the state of washington?

What? There is no real way to know the answer to this question, but it is one that was posed to the group today. How do you handle uncertainty? How do well do you think on your feet? This is a typical interview question used by many high tech companies. At Luther we might ask prospective faculty, “how many cornstalks in the state of Iowa?”

This question definitely stumped a few people in the room, but others got the idea quickly. This question isn’t about getting the right answer. There is a right answer, but nobody could tell you exactly what it is. There is definitely a wrong answer: “I don’t know,” or “Its not possible.” are two examples of the wrong answer to this question.

So what do you do? You have to make some assumptions. What fraction of the state of Washington is forested, what is the density of trees in the forested area. If you use some reasonable numbers for those two items you can make a reasonable, and defensible estimate. That is something that startups have to do every day. Use the information they have available, and make their best guess. Check the assumptions, and be ready to refine the answer. This is not just true of startups, it is true for all businesses, projects, and life.

Here are a few more highlights and themes from today:

  • When you interview, have a story. I’ve been telling my students this for the last several years, but it is much more compelling when you hear it from someone who is actually making hiring decisions. The story should be based around something you have built or designed yourself.

  • You can have the best technology and still fail in many different ways.

  • What is the one core competency of your company? Starbucks was not coffee, it was training, so that customers had a consistent experience. McDonalds was not making burgers, but rather distribution.

  • Finally, it takes four kinds of people to make a successful startup:

    • The Visionary

    • The Builder

    • The Designer

    • The Closer

One person may take on multiple of these roles, but you have to have them all in order to be successful as a company. The Visionary is of course the person who is looking ahead five years and setting the direction. The Builder, owns the solution space. Builders are part of a spectrum. Architects – Hackers. Architects want to have a good strong lasting implementation, and tend to plan the whole system out before coding. Hackers, tend to code as they think, and the best of them have an idea coded by the end of the meeting where it was first introduced. Where are you on that spectrum? The Designers interpret the vision to the builders, they own the problem space, and understand the user experience. In the best case, the builder and the designer are the same person. Finally, the Closer, usually a sales person, often also the CEO is the person who can close the deal.

  • The better a company is at serving their customers, the less likely the are to change. This of course goes against every lesson Steve Jobs and others like him taught us. You need to make yourself obsolete before someone else does. In an aside, I think this lesson right here is the achilles heel of higher education.

jterm 2014 - day 1 at amazon

Jeff Bezos likes to talk about technology and civilization and where we are at in terms of the analogy that we are still at “Day One.” He recently observed that we are so early in Day One that the alarm clock hasn’t even gone off yet.

With new technologies, it’s very tempting to think that you’re further along than you are. But usually, you’re more primitive than you think. My guess is we’re still pretty primitive. We as a society, as a civilization. I doubt we have figured out the new technologies very well yet. At Amazon, we’re doing our part in trying to push things forward, but I have the feeling it’s Day One.

And so it was that we found ourselves in the building called Day One South, meeting with our very gracious host Sam. This was a great way to start, and although Sam had not been prompted in any way about what to say, he hit on some of key themes for the students to take away from the course:

  • Passion – You are going to work long hours, so you want to find a place to work and a job to do at that place where you are passionate about whatever it is. If you aren’t excited about it, keep looking.

  • Culture – This part of the discussion brought back both great memories and ulcers in my stomach from the days when Amazon was a Net Perceptions customer. I’ve never been pushed harder than I was by Jennifer Jacobi (JJ) when she was my primary contact at Amazon. She challenged us, held our feet to the fire, threatened to dump us, and ultimately helped us create a better product. Apparently this is how Amazon treats all its suppliers.

  • Risk – High tech companies are full of risk takers. Sam was no exception as a young graduate who simply moved to Seattle in search of a job. Years later he is still at Amazon. Many more years later than he expected.

After our meeting with Amazon we found a coffee shop where we could take over a large table and had some group discussion. I told my own story of Net Perceptions, which I should probably write down here soon, and tried to relate my own experience with the themes I want the students to look for over the next three weeks.


envisioning the future

Today was a big day. The Microsoft mother ship.

We began our visit with an hour in the Envisioning Center, this is Microsoft’s take on the future, 5 years out. There was some pretty cool stuff in there. If you’ve ever drooled over the fancy table on Hawaii Five-O where they can flick things from phone to table, table to screen, etc. You have a pretty good idea of where Microsoft thinks the workplace of the future is headed. I’m there, I want it. I’m already imagining myself walking into the classroom, iPad in hand, and flicking a copy of where we left off last class from my iPad to the board. Wait, thats a bit of a mixed vision, I’m pretty sure they were surface pads, not iPads. But you get the idea.

After the Envisioning center we moved to another of the 128 buildings on the Microsoft campus where we had time to have our daily group meeting and book presentation. We were escorted by Tina Wang, and she joined in to the discussion of Sara Lacy’s Once you’re Lucky, Twice you’re good. Tina works as part of Enwe’s group, but is the only one here in the US. After our lunch we had a really fun talk with Neil Leslie, who shared a lot of wisdom with the group. And finally Dave Maltz joined us for a final hour on scaling up the data center. Its fair to say that by the time Dave was done everyone had soaked up about as much information as is possible for brain to take in one day.

A couple observations. This is not the Microsoft of the 90’s. The Microsoft that I knew and worked with at Net Perceptions were, well, to be blunt, they were bullies back then, because they could be. I get a real sense that is gone. Instead they talk of change, how they need to compete, and if you’re comfortable, you shouldn’t be there.

Returning to key themes:

  • Passion: I don’t think I need to say more about this.

  • Projects: I’ve told my seniors this for a few years now, but it has a lot more credibility coming from an outsider. You need to have a project to show when you go to interview. Bring an app you have built on your phone. Show a website you have developed on the browser. Be prepared to talk about the challenges, trade-offs, and succeesses you have had in developing your project.

  • Linked In: This is a critical tool for finding a job. If you are a CS junior or senior and have not created a LinkedIn profile. Do it now.

  • Failure: We heard a lot of stories about failure today, and we will continue to hear of them. Startups, started and ‘buried,’ products and projects that failed and never saw the light of day. The most important message, that I hope students get from this trip, and talking to a bunch of successful people, is that failure is OK. Fail Fast, and learn from your mistakes. It is a cliche to say that you learn more from failure than success, but it is true.

In the evening it was fun to unwind with our first group dinner. We met up with recent Luther Alum Jake Nowosatka at Cutters Crabhouse. Its at the far end of Pike Place Market.


chapel talk - 11/4 nehemiah 13 1-3, 23-31

This is the text from my chapel talk yesterday. The video (mostly of the top of my head) can be found on the Luther Portal. Make sure you go to the On Demand tab and look for me on November 4.

I’m going to begin today with a slightly different opening litany than we have become accustomed to: When my friend Ann Highum asked me to switch days with her I said “sure” after all one days reading can’t be that much harder than another. Then I got the email from Pastor David. It contained three very ominous words: “these troubling texts”. Not to mention that our reading today is from the book of Nehemiah. Lets begin with our reading:

On that day they read from the book of Moses in the hearing of the people; and in it was found written that no Ammonite or Moabite should ever enter the assembly of God, 2 because they did not meet the Israelites with bread and water, but hired Balaam against them to curse them—yet our God turned the curse into a blessing. 3 When the people heard the law, they separated from Israel all those of foreign descent.

OK, discrimination, xenophobia, that sounds troubling enough to get started. We’ll come back to versus 23-31 in a moment. This is not your typical sunday school reading. Who are the Ammonites or the Moabites? What did they do to deserve getting kicked out? I think we might need a bit of context.

Now it turns out that the book of Nehemiah is essentially a blog written by Nehemiah himself, who was the cupbearer for King Ataxerxes. So I thought as a public service I would try to give some context to todays reading by condensing Nehemiah’s blog posts into a series of tweets. A sort of Twitter translation of the bible with commentary from yours truly. Nehemiah himself goes by @cupbearer21 in case you want to follow him on Twitter later today.

Posts from the month of Chislev:

Brother Hanani came to Susa today, brought visitors from Judah

OMG the wall of Jeursalem is broken and the gates destroyed by fire! #JerusalemFire

I’ve been weeping, fasting, and praying for days. Still distraught over the fire in Jerusalem. #WoeIsMe

Next, we get some insight into the incredible guilt and potentially inflated sense of self importance that @cupbearer21 must feel:

Can’t help but feel that the #JerusalemFire is my fault! Me and my family must have offended @God.

Now we skip to the month of Nisan

AtaXerxes told me to buck up. I guess he can tell I’m still sad over #JerusalemFire

Just days later we get the following:

Holy career path! @ataxerxes granted my request to go to Judah and rebuild the walls of Jerusalem! #ClimbTheRoyalLadder

Now to be sure that he does not encounter opposition on the journey he tweets:

If anyone doubts me here’s a link to letters from @ataxerxes granting me safe passage and timber from the royal forest. #TheKingsGotMyBack

But Nehemiah’s glee is short lived, just days later we learn:

Curses! @TobiahtheAmmonite is not happy with me. He will try to foil my plans for rebuilding the wall!

Ahh, so we have a bit of dramatic foreshadowing on this deal with the Ammonites. Our story continues:

Snuck out tonight to inspect the walls on my own. #ThisPlaceIsAMess

Following the inspection, its time for the work on the walls to begin in earnest, but Nehemiah needs workers so he tweets out a plea for help:

Join me! we are going to rebuild the walls! The hand of my God is gracious!

 To which there are hundreds of replies of the form @cupbearer21 count me in!  @cupbearer21 tools ready to go, The hashtag #RebuildTheWalls was definitely trending that day.

But not everyone was on board with Nehemiah’s plans: @SanballatTheHoronite and @TobiahTheAmmonite and @GeshemTheArab who basically responded

@cupbearer21 WT——H

@cupbearer21 Who do you think you are? Are you rebelling against the King?

Nevertheless, Nehemiah we can tell work is proceeding by the status updates:

High priest @eliashib doing good work on the sheep gate

Sons of @hassenaah rebuilt the fish gate today

and so on with tweet after tweet of progress from around the city.

Of course in typical twitter flamewar fashion we see some retweets from our old friends @SanballatTheHoronite and @TobiahTheAmmonite

Ha! what are these feeble Jews doing? Do they think they can rebuild the wall in a day1?

And from Tobiah,

That stone wall they are building — any fox would break it down! #I’llHuffAndI’llPuff

To which Nehemiah replies

Oh @God, do not blot out the sins of @Tobiahtheammonite #FireyPitForYouDude

Some days later:

Big day today!! Walls back to half their original height!

But even with all of that progress those darn Ammonites stirring up trouble again.

Emergency! We need families NOW to guard the walls against @sanballat and his ilk. #NeedMoreSpears.

And although you might think I’m making this one up, Nehemiah has been so busy that he tweets:

I’m starting to smell, its been weeks since I put down my spear and changed my clothes!

After all that, Nehemiah shows that he is a guy who can get things done. After just 52 days he tweets

At last, the wall is done! #PartyAtMyHouse

With the wall rebuilt, Nehemiah gets an interesting assignment:

From @God: Hey! @cupbearer21, You should use your analytics and do a genealogical and demographic analysis of the people

At this point there are several chapters of names of Levites, and prophets and lineages of various families. Clearly ancestry.com could have saved a bunch of time.

So, rebuilding the wall is clearly the signature accomplishment of Nehemiah, But even with all of his success as governor, Nehemiah doesn’t take advantage of food and land allotments that were allowed him, because there was already such a great burden on the people. He also made the other nobles and officials forgive all outstanding debts and ordered them to return all land and money that had been taken as taxes so the people would be able to feed themselves and their families. To keep everyone happy he organizes covenant day which is summarized in the following tweet:

Covenant day! #TithingIsGood #OfferingsRock #FirstBornSonsToGod #FirstOfEverythingToGod

Which brings us again to Chapter 13 and these troubling tweets:

Much reform is needed @Elishib and @Tobiah have made a mess of things #NoMixedMarriages #KeepMarriagePure

Kicked out the foreigners #KeepTheIsreaelitesPure #PureJerusalem

And in what must have felt like the ultimate victory for old Nehemiah:

I chased @Jehoidia son-in-law of @SanballatTheHoronite away! He is gone from the city!

To which I now might imagine a response out of the future:

From @JCSofG, Wait, What!? No No No! #EatWithTaxCollectorsAndSinners! #BadNehemia

So, does our story for today all come down to Nehemiah getting his revenge on the Ammonites for trying to thwart his efforts to rebuild the walls of Jerusalem? It sure sounds like it. The sad thing is that In many ways this story seems all too familiar. Take out Nehemiah and Insert the name of your favorite ruler:

  • Humble beginnings

  • Great accomplishments and rise to power

  • Power goes to the head

  • Stupid policies

Whats maybe more interesting to me is why this particular verse is the verse for the day, with all of the good things Nehemiah did, why highlight this one idiotic policy? Maybe simply to remind us that tolerance is a good thing even when times are tough.

I’ve spent a lot of time this last week trying to answer the question, where’s the grace in this story? I think maybe for us and for Nehemiah it really does come down to his final tweet:

Remember me @God for the good I have done!


john riedl tribute

This is the short tribute speech I gave last Friday at the University of Minnesota.  Actually, I had to edit my speech to be shorter than this, so I thought I would just post this longer version, plus it contains some fun old images I dug up that I didn't get to show.
 
6e6018d47f07c38ea8a7ee2421e396ba
 
 

Hi, I'm Brad Miller.  For those of you who don't know me, I was one of John's PhD students, and a co-founder of Net Perceptions, but more importantly he was someone I admired, respected, and called my friend.  

 
Now, I  still use Instant Messaging quite a bit, and its a way that John and I connected over the years.  But,  its a bit disconcerting that when I look at my Buddy list today I still see John Riedl in my list.  The problem is, he's not  "Offline," or "Away," He's "Idle!"  So, somewhere out there, or UP there, he's still logged in and on IM. Of course its on his gtalk account so maybe maybe google is expanding their mission beyond "the world".  Anyway,  I have this irresistible urge to have a conversation with him.  I hope this imaginary conversation conveys the amazing sense of Humor he always had for whatever we were doing.
 

Screenshot 2013-08-25 17.07.27
 
Me:  Dude, time to chat?
John:  Just a sec, I'm trying to explain collaborative filtering to the big guy
Me:  I suppose I can wait.
 
John:  OK, I'm back…. for someone omnipotent, he's little slow on his basic probability and stats.  He had this cool idea that based on some sins that you had avoided in your past, we might recommend other sins to avoid.
Me:  Wow, we haven't had a negative rating problem like that since "Cleveland!"  But really rating sins? on a likert scale? do you think that will work?
John:  No, I think this would be a much better app to test out some of our hypotheses on implicit ratings.  Anyway,   What's up.
 
Me:  Just missing you.  Remember the first class I had from you? It was Fall 1993, CS8101 - Distributed Systems.  
John:  Wow, that was a long time ago.
Me:  Remember the project that Dave Truckenmiller and I did?  We designed a Distributed Version Control System, for SCoNes.   
John:  Scones?  
Me:   Devices on a Seldomly Connected Network.
John:  HA!  
Me: And remember our DRIP protocol  (Distributed Replicated Information Pile)
John:  Yeah, that was good project, and you got your A, but I think I should go back and revise your grade down.
Me:  Why?
John:  Well if you think about it,  in the end you guys got it wrong by requiring locking.   I think we had a long talk about merge versus lock.  Clearly the people in the merging camp like git and mercurial got it right in the end.
Me:  Ok, but they did come to the party almost 15 years later!
John:  Fair point, turns out its pretty hard to revise a grade after all these years anyway.
 
Me:  Do you remember the cease and desist letter we got from the Better Business bureau lawyers?
John:  That was great!  Maybe if someone hadn't photoshopped the BBB torch into some bizarre mashup of a  BNC connector with a computer on the top, and then put it on a website, this never would have happened!
 
ba6d3452e69c2bfd735df2d6b4d76448
 
Me:  I think it had more to do with our naming the server the Better Bit Bureau!  I thought I might be the first PhD student to flunk out of the U for copyright infringement.  Plus we only had like 10 users at the time, so really!! Who cared?
John:  You were worried!?  I didn't even have tenure yet!  I Remember that they told us we could use any one of their 'B' words, but not two of the three together.
Me:  Yeah, luckily choosing a new name was "just a simple matter of coding"
 
Me:  Remember the ultimate test newsgroup for the Grouplens Usenet trial?
John:  Ha,  how could I forget that?  I know you and Joe were a lot more partial to rec.food.recipes, but you can't beat alt.sex.grouplens.
Me: Uh John,  You don't think they are, you know, monitoring your transmissions up there.
John:  Well, I haven't seen any guys from the NSA wandering around.  Plus, what are they going to do to me?
 
Me:  I worked so hard to get the emacs gnus reader working.   Hours of fun hacking in lisp.
John:  Yeah, I never could understand those people that used vi!  Emacs rules man!
Me:  We worked so hard on that trial, and I had so many hypotheses that were totally wrong.
John:  Yep, but remember I always told you that a negative result is still a result.  And there is nothing more cruel in the world than the murder of a theory by a cold, hard, ugly fact.
Me:  You said it.  I can't tell you how much comfort I got from that.
 
Me:  Hey, speaking of names do you remember that particularly long afternoon of trying to come up with a company and product name?
John:  How could I forget.  You were the worst!  "Villagent"  who would buy software from a bunch of Vigalantes!?
Me:  Yeah, that was not one of my finer ideas.  It was cool that GroupLens got to live on through a few product cycles at least.
 
f8d329ab455943f3bcaf122e6c9736b0
 
John:  I think our  release code names were the best.  - Photuris was my favorite.  
Me:  Yeah the Firefly killer.  We showed those Media Lab guys a thing or two.  But I might have to go with Cleveland, just because it drove Steven crazy.
John:  Cleveland, I remember that!  We even had T-shirts made up for that one.
 

 

 
Me:  well, I'd like to chat more but they only gave me 3-5 minutes for this tribute.  Just one last question for you.  Why isn't your status Away?
John:  Thats easy, Brad.  I'm not.  I live on in your memories, I live on through Eric, Karen, and Kevin, and I live on through you and the rest of my students.  Don't worry, I'll always be with you in spirit.
 
 

 


runestone interactive announces new editions of interactive textbooks

Today I'm really pleased to announce that  have launched version 2.0 of our interactive computer science  textbooks:

We first launched these books on our interactivepython.org website in May of 2012, after around a year of private testing in the classroom.  Since then we have had 1.3 million page views by a quarter of a million unique visitors.  Daily, we get around 2,000 unique visitors.  Not bad for a site with zero dollars for an advertising budget.

What Makes these Books Unique?

These books are unique because they are interactive.  We have developed a set of authoring tools that make it really easy to write an interactive textbook with many interactive features.  We call these the Runestone tools.  Some of the interactive features that are possible include:

  • Activecode:  Using a Javascript implementation of Python you can run and modify the examples in the textbook right in the book.  No server connection is required since it is based on javascript and runs right in the browser.
  • Codelens:  Using the amazing power of the pythontutor.com  tools you can step through examples one line at a time, forward and backward.  While you are stepping through the code you can see variables and other data structures change values.
  • Parsons Problems:  For beginning programmers Parson's problems are like refrigerator magnet poetry.  You can provide your students with the statements needed to write a program, but they must put the statements in the correct order.
  • Inline Quizzes: Each section of the book contains some inline quizzes that allow students to check their understanding of the material.  The quizzes have different feedback for each correct or incorrect answer that try to point students in the right direction. 
  • Online Homework:   At the end of each chapter are programming assignments.  In this new edition we have provided the answers to the odd numbered questions, and discussion forums for students to exchange ideas or ask questions about the homework problems.  As an instructor, you can grade your students programs on one convenient page.
  • Highlighting  This is another much requested new feature.  Students can highlight text using the mouse and the highlights magically reappear on any supported browser.  In addition we will remember the students last location in the book and offer to return them to that position when they return.
  • There are many other features but the best way to understand what we are doing is to actually have a look at our overview page, which shows everything I have mentioned here and a lot more in action.

Over this past year we have discovered that we serve two different audiences with these books.

  • Instructors looking for a textbook to use in their own course
  • People who are interested in teaching themselves some computer science and have found our books through google search, the Python wiki, or some other word of mouth source.

Textbooks as a Service

When we launched the site last year we decided to not only provide the books free and open for anyone who wanted to read them, but also as a service for instructors who wanted to have their own custom copy of the book where they could track their students progress, review their answers to quizzes, and grade their students homework.   If you want to use our books in your class you are welcome to do so.  You have two options:

  1. You can use a copy of either book as is with the order of the chapters just as they are on the books linked to above.
  2. You can try our custom interface where you can mix and match chapters from both books to create your own custom textbook.

Once you have created your own course then you will be able to see the assignments your students have completed right in the textbook.  I find this to be very valuable as an instructor.  For example if I have assigned the students to read and do the quizzes for a particular section, I can simply go to the quiz question and click on the 'Compare Me' button.  As an instructor I will see a summary of the answers my students gave, as well as the details of the answers that each student tried.

Supporting the Independent Learner

Perhaps the biggest surprise of this project is the number of people that have found one of the books through google, and are simply teaching themselves to program.  We are hopeful that some of the new features we have added will help foster a  community of learners so that people just learning to program can talk to others in the same situation.  Some things we hope are particularly helpful include:

  • Answers to odd numbered questions.  This was probably the number one request I got through email all last year.  How do I know if I did it right?  We decided to risk it and provide the answers, but only to the odd numbered problems.  In addition a student must try to answer the problem at least once before the answer becomes "unlocked"
  • Discussion threads for homework problems.  Again this may seem like a risky move where students can just publish their answer and others can copy.  But, what we are hoping for is that students will see that there are many ways to get to the "right answer"  There are different approaches and programming styles that can be used to solve the same problem.
  • Compare Me  Although we aren't sure about the title on the button, the idea is that after answering one of the quiz questions a learner can check on their overall 'grade' for all quiz questions, and see how their answer compared to all the other learners.  We haven't gone so far as to give out badges, but we think this is a nice intermediate approach.

The Runestone Tools

The books above were built using our Runestone Interactive toolkit.  These tools are freely available on github.  If you want to write your own interactive book, or even just use the tools to create some interactive labs for your students you are welcome to do so.  You can write your materials in an easy to use markup language called restructuredText and add examples or quizzes using very simple tags.  Complete documentation for our extensions to restructuredText is provided on the website.  In addition to our own books, the team at Harvey Mudd College has published CS for All  another introductory textbook using our tools.  I know of at least two other books in progress!  

If you are interested in following our development or getting involved You can do so in several ways:

Acknowledgements

I am grateful to the many people who have provided us with feedback over the last year.  And I am especially grateful to the ACM SIGCSE social projects committee for providing me with a special projects grant that allowed me to work with a student (Isaac Dontje Lindell) this summer.  He did a ton of work and will be graduating next year.  You should hire him.  In addition this project relies on many open source components which I will mention and link to below.

  • The original text for How to Think Like a Computer Scientist comes from Allen Downey, Jeff Elkner and Chris Meyers.  We have modified it a lot, but without a starting point for us to experiment with our interactive ideas this project never would have taken off.
  • The Problem Solving with Algorithms and Data Structures text is published as a paper textbook by Franklin Beedle and Associates.  Without the forward thinking of Jim Leisy this book would be stuck.  Thankfully Jim freed us to use the text in an interactive form online.
  • Mark Guzdial, Barbara Ericson and the rest of the CSLearning4U research group at Georgia Tech have provided questions, assessments,  and many other features and ideas.
  • The Activecode examples are made possible by skulpt
  • The Codelens examples are made possible by Philip Guo and his pythontutor.com
  • The look and feel of the book is based on the bootstrap templates
  • The system that builds the website from source is called Sphinx and is really the backbone of the system that allows us to write our interactive extensions.
  • Ville Karavirta wrote the original js-parsons library and Mike Hewner integrated it into the Runestone Tools.

making python3 my default

I'm finally there.  After a long time of writing books using Python 3, and teaching in Python 3 on a daily basis, I'm finally at the point where I'm changing my work environment to use Python 3 by default.

Here are the signs that convinced me it was time:

  • The release of Pillow to provide PIL functionality!
  • Django 1.5
  • IPython and IPython notebook are fully supported  -- I Love IPython Notebook
  • matplotlib !!
  • Sphinx, Jinja, SQLAlchemy, and many others are supported.  See: https://python3wos.appspot.com/

There are a couple of projects that I use a lot that are not yet on Python3 (web2py) but I'm not going to let that stop me.

It turns out to be pretty easy to get yourself up and running on all of this stuff with Python 3.  I'm on a Mac running 10.8.3.  The first and most important step is to get a working version of pip for Python3.  First you need to install distribute.

curl -O http://python-distribute.org/distribute_setup.py
sudo python3 distribute_setup.py

This will install easy_install in your Python home, but go one more step and install pip.

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python3 get-pip.py


This will create a pip in your /Library/Frameworks/Python.framework/Versions/3.3/bin  directory.

From there you can begin pip installing pretty much everything you need!

From my history today as I was setting everything up:

10393* pip3 install ipython
10409* pip3 install numpy
10410* pip3 install matplotlib
10429* pip3 install tornado
10430* pip3 install pyzmq
10455  pip3 install Sphinx

If you are on a Mac you will need to use easy_install to install one thing, for IPython.  For some reason pip installing the readline library puts it too late in the load path to work with IPython, so you need to use easy_install-3.3 readline  to get the history in IPython working just right.

Finally, you will want to add the Python 3 bin directory to your PATH.  Edit your .bashrc or .zshenv file.  Note that the following puts the Python 3 bin directory at the front of your PATH, making it the default when you type pip, python, or ipython.  If you need to revert back to python2.7 for some task you will need to be explicit about it.

export PATH=/Library/Frameworks/Python.framework/Versions/3.3/bin:$PATH

Easy!  You were expecting this to be a long and arduous process fraught with hacks and silly edits to config files.  Nope, just a few basic commands.  I take this as the final sign that Python 3 is here and ready to be your day to day Python.