Friday, October 6, 2006

Liveblogging Woz

He's talking about his childhood.  How his father managed to get him transisters and diodes because he worked at Lockheed Martin.  He did a lot of electronics.  He didn't know was a computer was for a long time because he was afraid to ask.  Eventually in high school he got a chance to program a computer.  His first program was knight's tour in chess.  It turns out the computer was too slow and would take 10^25 years to complete.  Oops.


In high school he ran across a book called the "small computer handbook" about the PDP-8.  He says he designed (on paper) a PDP-8 based on that manual.  As he learned of new chips, he kept refining the design.


He taught himself coding by sneaking into the Stanford Linear accelerator library and looking at the books and manuals and magazines.  He kept refining his paper designs.  Trying to break his old records.  Going from 65 to 64 chips, etc.


When he went to college, there were no undergrad classes about computers.  He had to take a graduate class on the subject.  In his zeal for programming, he managed to run the computer program 5x over budget for the year.


He's talking about meeting Steve Jobs now.  They went to the same High School but apparently met while Woz was in college at Berkley.  In his 3rd year he was taking all graduate classes.  After his 3rd year, he took a year off to go earn the money for his 4th year.  He ended up working for HP's calculator division.  Despite working on calculators all day, his hobby at night was electronics. 


He's now talking about seeing his first pong game.  At that point, games like pong weren't software, they were hardware.  He had no money and couldn't afford a pong game but he could design one himself. 


Steve Jobs went to Reed college (in Portland, OR) where he skipped most of his classes.  After that, he came back and got a job at Atari.  They offered Woz a job designing games there.  Woz was happy at HP and didn't want to leave but he was willing to take the challenge of designing games for them.  He designed a Breakout game in 4 days and 4 nights. 


Woz observed someone using a teletype machine on the arpanet and wanted one.  Again, he couldn't afford one but he could design one.  He used his TV as the output device.  At Jobs' prompting, he sold his design.


He went to the Homebrew Computer Club and discovered that microprocessors had advanced.  He went on to build his own computer, starting with his video terminal.  After he had one, he needed a language so he wrote a version of basic.  He says writing basic was the hardest part of the Apple I design.  He couldn't afford an assembler so he wrote by hand and then hand-translated it into the 1s and 0s.  Again, Steve Jobs encouraged him to sell his design.  The name wasn't Apple at the beginning.  Woz tried to get HP to produce the computer but they refused.  Because of that, he was able to use the design himself.


The first Apple was priced at $666.66.  They sold about 150 of them. 


The Apple // cost $250 to build and they wanted to sell 1,000 of them.  That's $250,000 in capital.  Apparently Woz tried to sell the design to Atari and Commodore and were turned down by both.  They tried venture capital but couldn't talk business enough to get the money.


They found a source of funding--Mike Markula.  He said he would give them the money but Woz would have to leave HP.  A friend talked him into it because he could stay an engineer.  Sales exploded once Visicalc came out.


That's the end of the speech.  Fun.  If you have a chance to catch him at a book signing during this tour, do it.

Waiting for Woz

Steve Wozniak (co-founder of Apple for those of you in Rio Linda) is on campus to promote his new book iWoz.  The room he is scheduled to speak in hold about 100 people.  The speech is supposed to start in 15 minutes and it is standing room only already.  A little before 1:00 the room was half full.  Crazy.  I guess he really is an icon.  He's an interesting personality.  A total geek.  He spent much of his interview on This Week in Tech talking about a new blue laser he had purchased.  He participates on a Segway Polo team.  He's smart too.  I recall hearing him speak at one point about how he had the whole of the Motoroloa 6502 (the chip powering the Apple //) assembly in his head when he was coding for it.  Should be an interesting speech. I'll try to blog on it later.

Monday, September 11, 2006

Is the Internet Really That Powerful?

About 2 weeks ago Serenity won a Hugo award.  If you haven't seen this movie or watched the TV series that inspired it, Firefly, you should.  It's arguably some of the best TV of recent years.  It's certainly some of the best sci-fi to come down the pipe in a long time.  I was watching the acceptance speech on YouTube and a thought hit me.  Serenity had a *huge* following on the web.  Before the movie came out the hype was really intense.  Then the movie launched and instead of being the next Star Wars it quickly became an also-ran.  The hype didn't translate to lots of people seeing the movie.  It made back the money it cost but didn't make anyone rich.  Recently there was another big internet hyped movie.  Snakes on a Plane received enormous amounts of hype and seemed sure to have at least a huge opening weekend.  It won the weekend but the total box office take was really low.  The hype again didn't translate into people going to see the movie. 


I don't mean to equate these two movies.  Serenity was a great movie.  Snakes is, by all accounts, not very good.  Still, they both had lots of hype.  Lots of blog posts.  Lots of fan websites.  Neither had as many people go see it as was predicted.  Why didn't the hype translate into people going to see the movies?  Is the blogosphere just a echo chamber with a limited audience?  Is it more about the hype itself than the target of the hype?  I don't know the answers but I do find it interesting.  In a day when so much advertising and effort is being made to create a web presence for products, it is important to know whether creating excitement on the web is actually a way to sell products or not. 

Wednesday, September 6, 2006

What does "RC1" really mean?

With the recent release of Windows Vista RC1, I have seen many comments on places like Slashdot and various blogs which demonstrate there is a lack of understanding of what we mean when we say we have "Release Candidate 1".  I will attempt to explain what we mean when we say RC1.  This is not an exhaustive definition nor is it official but it should give you a good idea what we mean when we say it.


There is an impression that this is the build we intend to release as the final build unless something heinous bug is found in it.  That is often what the term release candidate means in the world of software but not here. 


Back when I started at Microsoft in 1997, we were in the process of releasing IE4 and then Windows 98.  In both of those cases, the release candidate builds were just that, candidates for release.  If we had RC1 on Monday and found a bug in it, on Tuesday we'd have RC2.  If we didn't find a bug on Tuesday but found one on Thursday, then Friday we would have RC3 and so on.  After a half-dozen builds or so, we would have a final release.


When I moved to the NT5 team (what became Windows 2000), it was confusing to me to hear the same terminology mean something very different.  In that world, and in the world of Vista today, what we call a release candidate is more of a waypoint on the way to release than a build we actually think will be the final one.  An RC build is one that we iterate on for a while to drive up the quality (like a beta or one of the CTP releases--only moreso).  A release candidate, in this way of thinking, is a build you release that will differ only in minor ways from the final one.  The bar for bugs goes up substantially after it.  We become really strict about what we will take for the product.  No new features or even major changes are allowed in.  Just bug fixes which don't perturb the system too much.  In this nomenclature, a "release candidate" is not really a candidate for final release.  We know there will be bugs to fix after we release it.  In the WinXP timeframe, there was a month or maybe even two between RC builds.  During that time we still had daily internal builds.  Each release candidate was closer to the final build and the amount of change allowed afterward was smaller than before.


So what do we call the builds we are really considering for release?  We usually call them escrow builds.


 


Update:  I found a nice chart in this Seattle PI article showing the time from RC1 to RTM for Windows 2000 and Windows XP.  For Windows 2000, it was 166 days.  For XP, it was 53.

Saturday, August 26, 2006

Management Styles

Joel Spolsky, of Joel On Software, has a series on management styles.  He details three styles of management:  Command and Control, Econ 101, and Identity.  Command and Control is where management dictates everything that happens.  Econ 101 is where management uses economic incentives to get the right behavior.  Identity is getting people to do what you want by making them like you, personally.  These are all straw men and no one really uses only one style but they are useful to understand and help to shape a good mixture of styles.  The command and control model, at its extreme, is micromanagement.  It doesn't allow for any innovation in the leaf nodes.  The polar opposite is Econ 101 where the management identifies some outcomes and pays people to achieve them.  It does not, however, give much instruction on how to achieve that.  Identity is getting people to like you and the organization so they'll do what is best.  This has a similar pitfall as Econ 101 in that it doesn't necessitate helping employees. 


The best solution is a mixture.  Some people are motivated by money and rewarding people economically for contributing to the company can help them.  That cannot be the only motivation, however.  Internal motivation can be an even more powerful motivator.  If people like you, they'll give you their best.  If people are excited about the company's direction, they'll give it their all.  A little command and control can be useful too.  It helps to give the team more than direction.  A very experienced team can get by with only direction but most teams have inexperienced people and they will benefit from being told how to get things done.  The important thing is to make sure the instruction is done with an eye to making an independent worker rather than just getting the immidiate work done.  One of the biggest jobs of a manager is to grow his or her team.  Helping the team mature will help the individuals on the team but also help the output of the whole team. 

Wednesday, August 23, 2006

Cool Live.com Search Feature

I was watching an internal presentation about Live Search today and ran across this really cool feature.  Live and Google have supported searching within a particular domain for quite some time.  However, it has always required remembering the correct syntax and typing in the full domain name.  Now, Live.com has it integrated into their search results.  It's much more readily available than before.  Try this:


1.  Go to www.live.com


2.  Type in a search.  Try "msdn blogs".


3.  In the upper right hand corner of the results window there will be a slider bar.  Slide this to the right (4 horizontal lines).


4.  Click the words "Search within this site."


5.  Type in a search.  Try "unit tests".


The results are everything within blogs.msdn.com that matches your criteria.

Interview with Clayton Christensen

The Innovator's Dilemma is an eye-opening book that everyone in the technology industry should read and understand.  I recently ran across an audio interview with the author, Clayton Christensen.  In it he gives a brief explanation of the main thesis of his book.  That is that there are certain types of technology that are disruptive.  They are at first underperformant of the market but allow for new uses.  Over time, they become good enough to subsume the previous solutions.  A good example is that of the PC.  When the Apple // and IBM PC first launched, they couldn't do the work of real business.  For that, you needed a minicomputer.  Over time, however, the PC became powerful enough to do everything that a minicomputer could and eventually totally replaced the minicomputer.  In his book, Clay uses examples as diverse as hard drives and earth moving equipment.  In this interview, he also starts to flesh out what he calls the "Law of conservation of modularity" which attempts to explain how the ability to make profits in a market changes over time.  He talks about how this affects Intel and how it will affect the software market.  I don't know that I agree with all of his characterizations but it is definitely thought-provoking.