« September 2004 | Main | November 2004 »

October 31, 2004

Happy Halloween

I showed my son the pictures I took of the Channel 9 Guy at Legoland and Disneyland. He was immediately sold on the whole Channel 9 Guy concept, and when we were carving pumpkins last night, he asked me to produce this:

Yea verily, 'tis the Channel 9 Guy carved on a pumpkin. Click on the image for a large version.

(Which reminds me that when I told one of the Master Builders at Legoland about the notion of taking a picture of a small insider icon at different locations around the world, he said "Oh sure, we do something similar with a guy named 'Brad Venture'".)

On Friday we did trick-or-treating at Microsoft. People bring candy in to their offices and kids walk around and trick-or-treat. It's a good time and Microsoft chips in with some hay, cauldrons and snacks in the lobby (all coordinated by our long-suffering administrative assistants, who deserve much thanks for putting it together). Of course this is a huge scam for the kids who merely have to walk from office to office for their goodies. It's even easier than going to the mall, and a whole order of magnitude easier than going door-to-door outside, the only option when we were kids (in the frozen wilds of Montreal, in my case, where costume design was always predicated on the necessity of including a winter coat in there somewhere).

The good thing this year was that Halloween was on a weekend, so the office trick-or-treat was on a different day from the neighborhood one. When they coincide, it is a gigantic cluster as people rip through the offices at work, then try to rush home (along with everyone else, causing a huge traffic jam) to hit the neighborhood before everyone douses their pumpkins. I don't know why Microsoft doesn't do its trick-or-treat on the last workday before Halloween in all cases, it works so much better (for example next year Halloween is on a Monday, they could do t-and-t on the preceding Friday).

Posted by AdamBa at 07:30 AM | Comments (1) | TrackBack

October 28, 2004

Political Musings

In a completely unsurprising turn of events, The New Yorker endorsed John Kerry for president. You can read the piece, if you wish, for a long, well-argued condemnation of almost everything the Bush administration has done.

In the same magazine a couple of months ago, Louis Menand wrote an article about how voters make their choices. Here's an excerpt about undecided voters:

"To voters who identify strongly with a political party, the undecided voter is almost an alien life form. For them, a vote for Bush is a vote for a whole philosophy of governance and a vote for Kerry is a vote for a distinctly different philosophy. The difference is obvious to them, and they don’t understand how others can’t see it, or can decide whom to vote for on the basis of a candidate’s personal traits or whether his or her position on a particular issue 'makes sense.' To an undecided voter, on the other hand, the person who always votes for the Democrat or the Republican, no matter what, must seem like a dangerous fanatic."

Well, I'm not a fanatic. In fact I don't consider myself someone who will always vote Democractic. It's just that on almost every issue, I agree with the Democrats (the exception, no surprise since I work at Microsoft, is anti-trust law as it applies to the software industry. Similarly, my sister-in-law, who is a doctor, agrees with the Democrats on everything except medical malpractice suits).

But I do find myself baffled by undecided voters. I'm not voting for John Kerry; I'm voting for a Democractic administration. I don't care if they run Bubba the Chimp up the flagpole; I want an administration where the Secretary of the Environment is not a former lobbyist for extractive industries, where judges are not selected solely based on the reliability of their anti-abortion positions, where a difference of opinions is considered a positive, not a negative.

Here's another quote from Menand's article:

"'The typical citizen drops down to a lower level of mental performance as soon as he enters the political field,' the economic theorist Joseph Schumpeter wrote, in 1942. 'He argues and analyzes in a way which he would readily recognize as infantile within the sphere of his real interests. He becomes a primitive again. His thinking is associative and affective.'"

Right! I am baffled by people who in their work lives value adaptability, lateral thinking, flexibility, broad knowledge, and healthy debate, and yet when it comes to politics simply stick their heads in the sand and wish it was 1954 forever.

The goal of the Republicans is to win not just this election, but to establish a Republican strangehold on the House, Senate, and White House that lasts for at least 30 years. This is a key election, of course, although the fact that Dick Cheney will not be a viable presidential candidates in 2008, and Hillary Clinton will, should give the Democrats at least one more chance before they succumb to an avalanche of gerrymandered congressional districts approved by a stacked judicary.

Anyway, let's reflect on what the country would be like after 30 years of unfettered Republican rule. Assume that the Republicans continue their plan of siphoning as much money as possible from the poor to the rich, with the attendant destruction of the public sphere: the environment, transportation infrastructure, public schools, aid to the poor, etc. essentially disappear and everyone is left to fend for his- or herself.

The question becomes, does the United States then enter a downward spiral from which it cannot recover, left behind by Europe, China, India, Japan, and perhaps a couple of other Asian countries?

The United States has 3 things going for it:

  • The native language is spoken around the world.
  • It has vast natural resources.
  • It is perceived as being the #1 country.

The first will still be true in 30 years; too many countries have made the investment in teaching their students English for this to change in a generation and a half. In any case there is no natural successor as the global language of commerce.

The second will also probably continue to be true; although a Republican administration would work hard to decimate the natural beauty of the environment while increasing reliance on non-renewable energy sources, the United States is REALLY BIG, and I doubt in 30 years that you could reduce the percentage of land that was "natural" below that of a place like Japan. There's a lot of room in the lower 48, and then there's Hawaii and Alaska as backup.

The third strength of America, the perception of it by others, is more shaky. I'm not talking about protestors in France who hate America; I mean the perception that the US is the "place to be" for money, technology, higher education, and general quality of life. There are two trends that will cross; as American schools turn out students who are less- and less-well educated, the jobs will be filled by foreign-educated employees. But will those employees continue to come here if they decide that the experience for themselves and their families will actually be worse than it would be in their home countries? Will they enjoy living in a country with a rising crime rate fed by the disenfranchisement of entire sections of society? Will they continue to come to the United States for graduate school if funding for higher education dries up? Already you have a generation of foreign-born employees who are casting a cold eye on the American public education system, and deciding it is not up to snuff (unlike Americans (or Canadians like me) who continue to subscribe to the sappy notion that public education is a benefit unto itself).

Of course, this perception feeds on itself; it is harder to attract foreign workers if the ones already here are sending back emails describing how bad things are getting. Once the perception goes, then reality will follow closely behind. 30 years of Republican government may be just enough to send the country over the edge.

Posted by AdamBa at 10:18 PM | Comments (0) | TrackBack

October 27, 2004

Legoland Master Builder Session

For my birthday a few years ago, my wife bought me an Ambassador Membership to Legoland in California. One of the perks of this is that you get a yearly two-hour session with one of the Master Builders there. Typically you build some model; last year (the first time I went) we built a Miniland-scale minifigure, this year they promised to teach is how to build the oh-so-difficult sphere. They give you about 20 sessions to choose from, and I scheduled mine for last Saturday.

I was one of the few adults there -- I realize now that the scam would have been to buy the Ambassador Membership (which lasts a lifetime) for my son, and then I could have gone down with him as my chaperone. There was, however, a couple of guys from L.A. who in fact had been at my session last year also.

First one of the Master Builders (it was Aaron Sneary, one of the three new Master Builders hired after a nationwide search) talked about what he had been working on, which was mostly the new Florida section in Miniland (actually it's really only two things, Daytona Speedway and the Kennedy Space Center). He also talked about the new "Art of Lego" installation they did. They used various techniques to map the art into different Lego colors (did you know that Lego made almost 100 colors now? I didn't). For something like Claude Monet's San Giorgio Maggiore at Dusk, they use software called Mosaic Maker to take a scan and map it to different-colored 1x1 plates, the smallest Lego piece made. The result is incredibly painstaking to assemble but looks remarkable; impressionism maps onto Lego really well. For Lichtenstein's Girl in the Mirror, they scanned it, converted it to very basic colors, printed out the result, fixed up off colors, and then conformed it to Lego pieces (while searching for an image of this, I found a reference to someone who had Lego-ified this painting on their own, but the link is broken).

Then they gave us the plans for a small sphere and a tray of bricks. Once we were done with that, we were told to do something creative with the sphere. Since I had been given red bricks, by chance, I turned mine into Elmo, complete with a hat.

They didn't really get into the mechanics of how they create those nice 4-way-symmetric spheres, but it was still interesting to hang out with the MBs for a bit and talk about what life is like there. Aaron agreed that the job has its boring moments when you are putting together repetitive parts of a model (for example he spent 1 1/2 months building the external fuel tank for the space shuttle model, which is mostly a 7-foot tall cylinder where each layer of bricks is just like the last one). But overall he was very happy. And of course he gets to play with all the Lego bricks he wants. Although they usually get their bricks sent by ship, which takes months, so they have to plan ahead. Plus they cannot usually request bricks in a certain color unless they are already made in that color. Actually one of his current projects is to look at all the interesting Lego pieces that have come out in new sets and decides which ones they should order in bulk.

Oh, and before I forget, I brought the Channel 9 Guy to Legoland. And to Disneyland the next day.

Posted by AdamBa at 03:37 PM | Comments (2) | TrackBack

October 25, 2004

Google To Open an Office in Kirkland

Google is planning to open a development office in Kirkland, WA (just down the road from Microsoft), according to this post by Greg Linden. Scoble thinks this is funny, but if I were Microsoft I would be concerned.

I know Microsoft has had to struggle in the past with people leaving to work at the company of the moment, be it Netscape, Amazon, or whatever. Several people have recently decamped for Google and I doubt anybody is very happy about it. Although Kirkland is a lovely town, presumably Google is setting up shop there for one reason only, which is to poach employees from Microsoft.

It's not clear if Google just wants a think tank (in which case they would mostly be trolling for Microsoft Research employees) or a general development office (in which case all of Redmond is their oyster). The description of what goes on at Google Europe (in Zurich) is inconclusive.

Certainly when you work at Microsoft in Redmond you are at the center of the action, whereas Google Kirkland would be an isolated satellite. I doubt people working on MSN Search itself would be tempted to switch; they are already working on a search engine, and their product is getting lots of executive love. But Google as a whole (and its stock) is so red-hot that it could look mighty appealing to someone stuck in a less visible project on Microsoft. The company has about 2700 employees, roughly the size Microsoft was when I started there in 1990. Better to rule in hell than serve in heaven, as it were?

Posted by AdamBa at 09:15 PM | Comments (1) | TrackBack

A Quarter Turn to the Left

Microsoft has been cutting back a bit lately. If I had a dollar for every "bring your own toilet paper" joke I've heard recently, I'd have at least three bucks, maybe four.

About a month ago they stopped serving genuine Ivar's clam chowder and switched to a generic version that was the gastronomic equivalent of the Tampa Bay Devil Rays.

Well, mirabile bloggu, a week ago there was a sign up in the cafeteria announcing that, by popular demand, they were bringing back the Ivar's clam chowder...and would even be featuring Ivar's salmon chowder on some days!

Given how much people bitched and moaned about some of the other budget trimming (no towel service, ESPP cuts), they must really have complained about the chowder. Or, perhaps, Eurest (the company that provides the food in the cafeterias) is actually a customer-facing company, like they tell us to be, and considers Microsoft employees to be its customers.

Posted by AdamBa at 08:16 PM | Comments (3) | TrackBack

October 21, 2004

Mini-Microsoft, lean-and-mean

"We all realized then how bad things were. I continued adventuring, but it seemed hollow. I fought only the symptoms, leaving the disease itself unchecked. I despised myself; my sham crusade. Knowing mankind's problems, I'd blinded myself to them. I felt helpless against forces greater than any I'd anticipated. Too cowardly to confront my anxieties, I had life's black comedy explained to me by the Comedian himself...[he] opened my eyes. Only the best comedians accomplish that."

- Adrian Veidt, in Watchmen by Alan Moore.

Mini-Microsoft is a great blog about Microsoft. Well-written, hilarious, yet disarmingly perceptive. It's the blog I wish I could write, if I were writing anonymously.

I wrote on a similar concept 3 1/2 years ago, about how Microsoft should not be doing the Xbox (this was 7 months before the Xbox shipped). Unfortunately it was written for a website that is now defunct, so that copy was pulled out of Google's cache. But some of the discussion is still around (here and here), although again the best ranting about me was on Xbox fansites that are now pushing electronic daisies.

My point, then as now, was not about whether Microsoft would make the Xbox a good and/or successful product; it was that Microsoft had other fish to fry. Back then I wrote "If Microsoft really wanted to do the Xbox, they should've done it as a PCI plug-in card, and used it to design and validate a new "DirectGaming" API for the Windows platform". That's what Microsoft is doing (minus the PCI card) with the XNA project, so there is hope, of a sort. But it's 3 1/2 years and $1 billion later.

Posted by AdamBa at 08:17 AM | Comments (1) | TrackBack

October 20, 2004

Monad Video, Part 2

Jeffrey Snover continues his Channel 9 Monad discourse with part 2, featuring a real live Monad demo.

For those of you following along at home, that last command he typed, to determine the top ten linked-to modules on your currently running system, was (with aliases removed):

get-process | pick-object processname -expand modules | group-object modulename | sort-object count | pick-tail | format-table count,name

On a vaguely-related note, I stopped by Scoble's office to pick up a Channel 9 Guy to take to Legoland this weekend, so I can take a picture of the li'l foam dude there. Scoble also had some snazzy Channel 9 t-shirts.

The temptation to take two Channel 9 guys, put one upside down, smoosh them together, and call them the "Channel 69 Guys" (picture it in your mind, the upside-down 9 becomes a 6...), is almost too great.

Posted by AdamBa at 03:02 PM | Comments (2) | TrackBack

October 18, 2004

Talk On Secure Elections

Went to a talk by Josh Benaloh, a Microsoft researcher who wrote his Ph.D. thesis back in 1987 on "Verifiable Secret-Ballot Elections".

Benaloh had some interesting things to say about the possibility of trustworthy software-based elections. For example, he pointed out that an election where everyone simply posted their votes publicly on a website, and the results were tallied from that, would satisfy all the concerns people had about software-based elections -- except for privacy, of course, which is critical. But his point was that you could do elections that were verifiable even without everyone knowing the details of the software involved. All they would need to check is that their vote was correctly posted on the website and that the announced final tally matched what they counted themselves. It's the need for secret-ballot elections that complicates matters.

He discussed the push to add paper trails to electronic voting machines. He pointed out that if you had a truly malicious machine, getting a printout stating you voted for candidate X doesn't mean the machine actually recorded your vote for candidate X. And using the paper trail printouts as a backup for recounts likely won't work because some people won't put their printouts in the ballot box, and so you wind up having to decide if you trust the electronic tally or the paper ballot tally. And whichever one you trust, you might as well not use the other one.

(I think this is being too precise. The paper ballot could be used to show if the electronic results were generally correct. For example if 1% of the paper ballots are missing, the paper-based recount should still be within 1% of the final tally. You can therefore do some audits to ensure that the electronic tallies look resonable.)

He also made the interesting point that with paper trail printouts, if someone comes out of the voting booth and says "I voted for candidate X but my printout says I voted for candidate Y" -- you really don't know what to do next. The machine could have malfunctioned, or the voter could be lying (although, it would seem to me that the voter could not use this to shift a vote to his or her chosen candidate, only away, because the "fix" if the election officials believe the voters is to shift a vote from Y to X. So presumably the voter who is lying prefers candidate X, but if the voter is lying and really did intentionally vote for Y, this "fix" is only going to put things back the way they would have been if the voter had voted for X to begin with).

Benaloh also said that there are two parts to electronic voting, generating an encrypted vote and tallying the results. Researchers at first focused on the second problem, but recently have come to realize that the first is much trickier.

Finally, he spoke a bit about vote coercion. He said that it is important not just to allow people to vote in the privacy of a voting booth, but to require it. When Utah introduced widespread absentee balloting, it changed the voting patterns significantly. Researchers discovered that Mormon women voted differently in a voting booth than they did in the kitchen with their husbands present (one presumes they voted more conservatively, thus raising the point hat Republicans should push for more absentee ballots, on the theory that Republican men are more likely than Democratic men to convince their wives to vote like them).

Posted by AdamBa at 10:18 PM | Comments (0) | TrackBack

Bookpool Contest Results

Bookpool posted the Find the Bug contest results. Congratulations to the two winners, Thomas Lundqvist and George Dean.

(They have a new contest up, based on a different book, if anyone is interested.)

Meanwhile, I discovered that Addison-Wesley posted an entire chapter from the book (the one on Java) at their InformIT website.

P.S. 692!

Posted by AdamBa at 10:07 PM | Comments (1) | TrackBack

October 17, 2004

Dubious About Podcasting

I am extremely dubious about podcasting. Actually I should clarify. I think professional podcasting -- making segments you would normally hear on the radio available as MP3s for digesting in quick, easy nuggets -- is a cool idea (the business model is probably broken without including ads, which makes it much less cool, but let's allow the podcasting hype to wash aside such concerns for the moment).

And as with any new technology, it will undoubtedly be used as a way to distribute pornography. Imagine having a new Jessie [WARNING: nasty pix there] soundbite every day, porncast pipin' hot to your iPod. My auto detailing bills would go through the roof.

Getting back to my point at hand, what I am really dubious about is personal podcasting, which we can call blogcasting. The fundamental problem is that a good blog post might take half an hour to write and adorn with links, but it only takes a couple of minutes to read. So you can keep up with a bunch of blogs. But with blogcasting, it takes just as long to listen to something as it does to record it.

I can scan multiple web sites daily. But I only listen to one morning radio show.

So it's fine now, when just a few people are spooging out this stuff. But since people simply can't keep up with as much audio content as they can written content, I can't see blogcasting scaling to much of anything. PLUS you can't search it (although I'm sure Google is working on that).

Of course, podcasting is hotter than the surface of the sun right now, so if I started a daily podcast of armpit noises I would immediately be acclaimed the lost dauphin of the blogiverse...but I'll pass, thank you.

Posted by AdamBa at 09:58 PM | Comments (4) | TrackBack

More Monad News

Zef Hemel takes a first look at Monad and captures some of its chunky, nutty goodness. Note to Zef: You should WriteObject("Hello World"); in BeginProcessing(), not ProcessRecord().

You can also watch Jeffrey Snover, our architect, discuss Monad in this Channel 9 video. It is the coolest thing, and the enthusiasm you see from Jeffrey is shared by everyone on the team. It's why I came back to Microsoft.

(The drinking game for this video is: sip every time the process list is used in an example, chug on Spinal Tap reference.)

To sign up for Monad, got to Microsoft betaplace, sign in (you need a Passport account), and use "mshPDC" as the guest ID. Among the benefits (besides getting Monad) is you get to participate in a private discussion forum which is monitored and answered by members of the Monad team, including yours truly.

Posted by AdamBa at 09:31 PM | Comments (3) | TrackBack

America the Purple

You've probably seen one of those 2000 Election Maps showing the country starkly divided into red (Republican) and blue (Democrat) states. Or perhaps you have seen a more accurate county-by-county map, which gives a more nuanced view, but still makes it seem like everyone in a given county feels the same way.

Now a professor at Princeton has come up with a much more evocative map, in which each county is colored according to their red/blue/green tilt.

I know what you are thinking: Does this mean that SpongeBob SquarePants doesn't get to sponsor a NASCAR race? Have no fear, that's not the case.

Posted by AdamBa at 08:59 PM | Comments (0) | TrackBack

October 16, 2004

Blog Circles Around the World

Yesterday Microsoft blogging recruiter Gretchen Ledgard linked to an article I wrote. This was after I sent her a hard copy of a New York Times article that she was quoted in.

Meanwhile, I heard from the instructor at Sea-Tac OSC that two engineers from Microsoft are going to be coming down to run the Hunt the Wumpus project there, which will be great. That article was written by Phil, who works with Evan, who is married to Zoe, who blogs with Gretchen.

Also, yesterday J.P. Stewart came by my office after seeing Gretchen's link to my blog. He considered a blog post, then an internal Microsoft email, before noticing he was in the same building as me. J.P. mentioned he knew Josh who is married to Gretchen who blogs with Zoe who is married to Evan who works with Phil who is going to Sea-Tac OSC to work with Edward who has an advisory committee member me who got an article for Gretchen who blogs with Zoe who is married to Evan [CORE DUMP]

Hey, with all this linkifying, what better time to throw in a gratuitous Scoble link!!

You know, I have a copy of the book More Basic Computer Games which has a version of "Wumpus" from back in 1979. Two versions, actually, the second has an expanded choice of caves. Bats nearby! I smell a draft! I have written about this book before, about how the necessity of supplying the games as BASIC source code was really a precursor of open source, which David Ahl pointed out in the Introduction to the first Basic Computer Games book in 1978: "What happens to a fanatical cult when you open the temple doors and let everyone take the source into their own homes?" Well, what happens is your simple game is still around, expanded and improved, 25 years later.

P.S. If you get the title reference...then you watched too much Cinemax in college!

Posted by AdamBa at 08:18 AM | Comments (2) | TrackBack

October 15, 2004

Book is Up at Amazon.Com

Find the Bug is finally showing "Usually ships within 24 hours" availability at amazon.com (also at Barnes & Noble, and they have an updated page count also). Sales rank is currently 9,203, although there is no "Customers who bought this book also bought..." (but maybe that is updated overnight?)

Mike Woodring had some very nice things to say about the book. This is the first review I have seen...let me toss out a couple quotes so I can wallow in them: "I've only read the preface and chapter 1 (Bug Classification), but I love the premise of the book and the approach he's taken to presenting the information" and "I'm looking forward to working my way through it". Whoop whoop! I hope he keeps saying nice things after he actually reads it.

The Bookpool contest is also finished (and Bookpool still doesn't show the book as available!). I just spent the evening grading the 74 entries that were received. Quite fascinating, actually, to see the different approaches people took to analyzing the code.

Posted by AdamBa at 11:31 PM | Comments (0) | TrackBack

October 14, 2004

Champions, But In Another Part of Town...

On Tuesday night the Seattle Storm, the local WNBA team, was playing for the league championship, the final game of a best-of-three series (which they won!! !). I wasn't there, however, even though my wife and I have been season ticket holders ever since the Storm came into existence five years ago.

Instead, I had a prior engagement. I was at the Sea-Tac Occupational Skills Center, where I am on the advisory board for the Computer Software Technology program.

Sea-Tac OSC is a Career and Technical Education (CTE) school that is run by four school districts south of Seattle. CTE is the new term for vocational-technical schools; the term "vo-tech" had a negative connotation as a last chance for people who weren't going to college to learn some useful skills; CTE is meant to be a capstone high school experience. Juniors and seniors choose to attend OSC, spending half the there and half the day at their regular high school. Sea-Tac OSC (one of nine Skills Centers in Washington State) has 18 programs, from Fire Fighting and Autobody Technology to Culinary Arts and Dental Assisting to DigiPen Video Game Programming and Computer Network Systems.

I first heard of OSC 3 1/2 years ago, when the instructor of the Computer Software Technology program, Edward Etherington, contacted me after reading an article I wrote and invited me down to give a presentation to the students about working in the computer industry. I did, and found it a very enjoyable (and educational) experience. Edward explained that each program had an advisory committee of people in the respective industries, and invited me to join, starting with the 2001-2002 school year.

The committees meet 3 or 4 times a year. The first meeting is always a kickoff dinner, prepared and served by the Culinary Arts students. Besides the other meetings, I reprise my "working in the software industry" speech once each year, and also go down to help judge a portfolio the students put together to help during job interviews.

This year's kickoff dinner was last night. At about the time I was polishing off my apple cobbler, the Storm were tipping off. And you know, earlier in the day I had been feeling sort-of lame about this. Yes I had made a commitement to go, but how often does a Seattle professional sports team win a championship (every 25 years, evidently). Maybe I should be more self-actualized, and just say "No" to some of these commitements if something better comes along.

But I didn't, and by the end of the meeting I was glad I didn't. Sure it's just being on an advisory committee for a high school program that helps 50 kids learn more about computers. But it's important, especially to those 50 kids. They are really an incredibly diverse group, from hardcore hackers to Photoshop whizzes to kids who only know computers from surfing the net and downloading music (and the students are also much more racially and economically diverse than up here in Microsoft-land). Me being on the advisory committee helps those kids learn, and it helps the program continue, and it helps the school district and the state keep funding the program, and all together that's worth a lot. Even missing the Storm winning a championship.

Anyway, I didn't miss all of it. After the meeting I hopped in my car and zoomed north towards the Seattle Center. As I was pulling off the highway the final buzzer was sounding and the radio announcer was going nuts as the Storm won 74-60. By the time I got to Key Arena, people were leaving and I got a parking spot no problem. I walked into the arena without a ticket (don't know if I was supposed to do this, but I acted like I belonged and nobody said anything), found my wife at her seat, and we spent half an hour enjoying the on-court celebration.

P.S. Championship Celebration Friday at 11:30.

Posted by AdamBa at 06:38 AM | Comments (2) | TrackBack

October 13, 2004

Last Chance to win an iPod mini!

The Bookpool Find the Bug contest ends today. Last chance to win an iPod mini! The entries have been coming in, but there's always room for one more. So spin up those propellors and get crackin'!!

Posted by AdamBa at 10:49 AM | Comments (0) | TrackBack

October 11, 2004

Stupid Interview Tricks

If you read Joel Spolsky's Guerilla Guide to Interviewing, he discussed a question he likes to ask candidates: "design a house". He states, "As a policy, I will not hire someone who leaps into the design without asking more about who it's for. Often I am so annoyed that I will give them a hard time by interrupting them in the middle and saying, 'actually, you forgot to ask this, but this is a house for a family of 48-foot tall blind giraffes.'"

Spolsky is the president of a small company, and he can do what he wants when he interviews people. But the "design a house" question was imported from Microsoft. And in my opinion, using it the way Spolsky describes it is a terrible way to interview.

First of all, this question can be "ruined" quite easily. If you know that the way to answer a design question is to keep asking the interviewer for clarification, and you are halfway intelligent, you can B.S. your way to no worse than a draw when answering a question like this. So it's a pretty silly question at this point.

Much worse, however, is immediately saying "no hire" to a candidate if they haven't read a book or website that explains how to proceed. The assumption seems to be that someone who as a candidate designs a house for themselves, will as an employee design software for themselves. Meaning, they would sit down at their desk, look around at all the buildings and people and equipment at Microsoft, and decide that it was all at their personal disposal to create the best software for them personally.

Is this an accurate extrapolation? Of course not. Unless you are an architect or someone in a similar position, the only house you will ever design will be one for yourself. So what's wrong with assuming during an interview that the question referred to a house for yourself? I'm sure I could learn some interesting things about someone based on what kind of house they would want to live in.

Anyway, I am pretty sure most people can draw the distinction between something they do for their own benefit, and what they do for their job. If you ask me how I pick out a pair of shoes, I will assume you are talking about how I pick out shoes for myself to wear, not that you are asking how I would behave if I were a fashion consultant to someone else.

I mean, consider the following imagined exchanges between interviers and candidates:

I1: Joe and Tom have $21 total. Joe has $20 more than Tom. How much does Tom have?
C1: 50 cents.
I1: No, it's 60 cents. This takes place in a country where there are 120 cents in a dollar. You should have asked me to clarify that.
C1:$#@%*&!!.

I2: Cities A and B are 120 miles apart. A train travels 60 miles an hour. How long does it take the train to get from A to B?
C2: 2 hours.
I2: No, it's 3 hours. The track has to detour around a mountain. You should have asked me to clarify that.
C2:&^%$#&()!!!

I3:I have 3 balls. One is heavier than the other two. How many weighings does it take to figure out which one is heavier?
C3: One.
I3: No, the first time you weighed them one of the balls rolled off the scale, so you needed a second weighing. You should have asked me to clarify that.
C3: %$$#@%%!!!

You get the idea. If as an interviewer you want to play the "you didn't clarify the question" game, it can be taken to as absurd an extreme as you like. If your goal is to prove you are smarter than the candidate, then knock yourself out. But if you are actually trying to hire the best people, using this question the way Spolsky describes won't tell you much of anything.

Posted by AdamBa at 09:26 PM | Comments (7) | TrackBack

Starbucks in New York

I was in New York this weekend for my sister's wedding. I was astonished by how many Starbucks there were. Look at this map of locations near our hotel. Walking 14 blocks on Broadway, from Times Square to Columbus Circle, you pass 8 Starbucks, PLUS there are all the ones on 6th, 7th, and 8th Ave.

Still, if you consider downtown Redmond (which has six Starbucks, with a seventh being built), and then consider the density of housing in New York, it makes sense (or does it...starting to sound like a Microsoft interview question!).

Posted by AdamBa at 01:43 PM | Comments (2) | TrackBack

October 06, 2004

Tipping Point for Satellite Radio?

Howard Stern announced that he is going to move to Sirius satellite radio when his current over-the-air contract expires in 15 months.

This could be the key tipping point for satellite radio. I don't think many people would consider spending $12.95/month for satellite radio now -- but they would pay that to hear Howard.

He chose Sirius over XM. Sirius has a Sirius Player plugin which lets you listen to its service on your computer, and has a Buy button that redirects you to Barnes and Noble to buy the album you are listening to. Eventually someone will figure out that they should let you buy the single song, like on iTunes, and make a pile of money (this could also be done with car-based receivers, on current FM stations, although the quality wouldn't be great).

My only thought about satellite radio is that they send one signal per station. Right now Howard is rebroadcast from 6-10 am Seattle time on KISW. But the show is produced in New York, so a live version would be from 3-7 am here. I suppose they could rebroadcast it on a different channel to match West Coast morning drive time.

Posted by AdamBa at 12:56 PM | Comments (1) | TrackBack

October 05, 2004

"Find the Bug" Available Soon

The publisher said it was bound on Friday, and today I got email saying they had received the first copies and were going to send me one.

Also Amazon changed its listing to say it was shipping in 3 to 5 weeks, as opposed to unavailable. 3 to 5 weeks is wrong, but I guess it's the next step closer. Amazon still shows the estimated page count (480, which is way too high) and publish date of September 6 (which obviously is wrong).

Bookpool still shows it as Not-Yet-Published. But their contest (win an iPod mini!) is still going strong!

Posted by AdamBa at 09:52 PM | Comments (0) | TrackBack

Zen and the Art of XSLT

I have been learning XSLT (eXtensible Stylesheet Language Transform) for a project at work. XSLT is a language to translate XML into something else (different XML, HTML, broccoli soup, etc).

What I was trying to do was mostly around enforcing a particular XML schema, as opposed to transforming into a different schema.

I bought an XSLT book, but it wasn't that good. I bought it because most of the books were 500 pages and this one was 300 pages. The 500 page books all had lots of examples and then a 200-page reference at the end. The 300 page book had only the 300 pages of examples, without the reference. And it had a lousy index that only referenced the first time something was used. So the only way to figure out the specifics of how something worked was literally to scan through the book looking for examples that used it.

The effect of this was that I wound up redoing by .xsl file several times. Maybe it was for the best, since I think I understand XSLT better now than if I had just copied an example.

The interesting thing is how my XSLT progressed in different iterations. For example, I was trying to enforce a rule that there was a big outer tag "foo", and that "foo" contained a tag called "xyzzy", and that "xyzzy" could only have a subtag called "ossifrage". First I started out with some brawny, C-like XSL:

<xsl:template match="foo">
  <foo>
    <xyzzy><xsl:apply-templates select="xyzzy"/></xyzzy>
  </foo>
</xsl:template>

<xsl:template match="foo/xyzzy/*">
  <xsl:choose>
    <xsl:when test="name(.)='ossifrage'">
      <xsl:copy><xsl:apply-templates/></xsl:copy>
    </xsl:when>
  </xsl:choose>
</xsl:template>

So I'm explicitly laying down the <foo> tags, and then I match each child of "xyzzy" and do an explicit check for "ossifrage" subtags. Plus, if "foo" has multiple "xyzzy" subtags, their contents just get lumped together. And if "xyzzy" has multiple "ossifrage" subtabs, I process them all. Ugh!

Then I decided to relax a bit and let the XSLT pattern matcher do some of the work. Plus, I need to ensure there was only one "xyzzy" subtag below each "foo" tag. So I changed it to:

<xsl:template match="foo">
  <foo>
    <xyzzy><xsl:apply-templates select="xyzzy[1]"/></xyzzy>
  </foo>
</xsl:template>

<xsl:template match="foo/xyzzy">
  <xsl:apply-templates select="ossifrage"/>
</xsl:template>

<xsl:template match="xyzzy/ossifrage">
  <xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template>

This is better, because I'm letting the pattern matcher figure out if "xyzzy" has an "ossifrage" subtag. And I use the "select=" attribute of the xsl:apply-templates for "foo/xyzzy" to limit the subtags to "ossifrage". Plus, I only will match one "xyzzy" subtag of "foo", because of the "[1]" predicate in the select="xyzzy[1]" attribute.

But, I still am indicating in two places that "xyzzy" should have "ossifrage" subtags. And I don't complain about unexpected tags, I just silently ignore them.

So then, I submitted myself to simply go with the XSLT flow, which really means shifting your mindset from imperative to functional programming (it helped that I figured out how the priority attribute works; my book was too old to mention it). So my .xsl now looks like:

<xsl:template match="foo" priority="2">
  <xsl:copy>
    <xsl:apply-templates select="xyzzy"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="foo/xyzzy[1]" priority="2">
  <xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template>

<xsl:template match="foo/xyzzy/ossifrage" priority="2">
  <xsl:copy><xsl:apply-templates/></xsl:copy>
</xsl:template>

So now I don't emit any tags explicitly; it's all done by xsl-copy. I remove the unneeded select= lines from the apply-templates tags (NOTE: I keep the select="xyzzy" one under "foo" because I want to order the emitted subtags in that case; otherwise I wouldn't need it). I moved the enforcement of the '"foo" only has one "xyzzy" subtag' rule from a select attribute to a match attribute, which is cleaner.

And finally, I can now add a lower-priority match to catch anything I don't want, like a second "xyzzy" tag below "foo":

<xsl:template match="*" priority="0">
  <xsl:message terminate="yes">
  </xsl:message>
</xsl:template>

And I'm much happier.

I need to improve the processing of unexpected attributes; I still can't seem to make it match on "@*", even when I follow the examples. It could be the XSL processor I am using (which is just the standard "four lines of C#" one that is shown as an example in the Visual Studio documentation). Off to explore I go...

Posted by AdamBa at 11:43 AM | Comments (0) | TrackBack

Microsoft Paradox

A fascinating comment from Liz Lawley (an assistant professor at Rochester Institute of Technology, recently invited to the Microsoft Search Engine Champs meetup):

Overall, my impression of the MS folks has been overwhelmingly positive. I find myself wondering how people who seem so bright and interesting and well-intentioned keep coming up with products that don't reflect their apparent core values. :/

I agree. Actually, to be fair, I think Microsoft products generally do reflect the bright, interesting, well-intentioned people who work on them. But at certain points their seems to be a divergence. Determining why this is so (and either fixing it, or doing a better job of explaining why it can't be fixed) may be the key challenge for Microsoft in the next 5 years.

Posted by AdamBa at 11:34 AM | Comments (0) | TrackBack

October 03, 2004

Broken Comments

At some point last week I banned my first IP address from comment posting, because it was adding spam comments.

Unfortunately this seems to have blocked all comments. Thank to Ry Jones for pointing this out. I removed the banned IP address, and now comments seem to work. I guess it's a bug in Movable Type.

Posted by AdamBa at 10:02 PM | Comments (0) | TrackBack

Unlocked Computers

Received email at work recently:

From: [Somebody on the team]
Sent: [some recent day] 2004 10:09 AM
To: Monad Shell Team
Subject: I'm [Somebody]'s computer, and I wish I was lcoked!

Presumably this mail was sent by someone else who wandered by and saw [Somebody]'s computer sitting there unlocked. It's pretty gutsy/stupid, actually: what if [Somebody] had come back? Yuks all around, or a fistfight? The ne'er-do-well typist would have really had to be in or around [Somebody]'s office when he/she left for a meeting saying something like, "Gotta run, be back in an hour" and decided to pull a quick carpe keyboardem.

There's a Microsoft urban legend about this, which was summarized by Scoble not long after he started at Microsoft:

One thing that employees have warned me about: lock your computer whenever you leave it alone, even for a minute. I've been told that execs at Microsoft sometimes will find an open computer and will send a message to the entire company saying "hi there, I'm "bob" and I don't care about Microsoft's reputation or security and I left my computer running without locking it, so anyone can come and sit down at my computer and have access to our network."

Ummm, right. I'm trying to picture coming back to your office and finding a vice president sitting at your computer typing this...(although the definition of "executive" at Microsoft nowadays seems to include anyone who can fog a mirror). Plus there is no public alias that a random schmo could use, that includes the entire company (at least, there isn't supposed to be)!

The source of this rumor was something that happened in the NT team a few years ago, when someone did send such an email and some debate ensued. But the key point (which everyone seems to miss) was that the debate was not about whether the person who left the computer unlocked should be punished; it was about whether the person who sent the email should be punished, for misusing company resources, impersonating another employee, etc.

I have heard of someone who had their laptop stolen, so I am careful to lock mine (even if the locks aren't that secure). A co-worker recently lost the key, which led to him wandering around hoping that someone else's key matched. Luckily, he had the foresight not to actually attach the other end of the cable to anything, so the only effect was that his laptop had an unwieldy appendage on it.

Posted by AdamBa at 12:57 PM | Comments (5) | TrackBack

October 02, 2004

Radia Perlman at Microsoft Research

Radia Perlman gave a talk in building 113, which houses Microsoft Research, so I went by to listen to her (note to shareholders: I do occasionally do work in between attending talks).

Way back in 1992 I attended a class she gave at Interop on "Theory of Bridges and Routers", a topic about which she knows more than most. The talk last week was more of a reminiscence about her distinguished career. It was part of a lecture series at Microsoft Research that is named for Anita Borg, the founder of the Insitute for Women and Technology who died of brain cancer last year (the institute has now been renamed after Anita Borg; Google also has a scholarship).

Yes, this means that Microsoft now has a Borg lecture series <insert obligatory joke here>.

My father is a mathematician and the scene in the Microsoft Research lecture room at the conclusion of Radia's talk reminded me of the math department lounge at McGill University, where I spent the occasional late afternoon or evening. Some people clustered around the speaker, some yakking about their work, others waiting in line for food, watched over by the ubiquitous secretary with a foreign accent (except they don't call them secretaries at Microsoft).

Radia (who recently moved to Seattle after falling in love with a Microsoftie) spoke about how bridges were a terrible blight on the networks of the world, and everything should be routed instead (in fact, at Interop in 1992, she autographed my copy of Interconnections with the admonition "don't work on non-routable protocols!" after I confessed that I was working on the NT version of Netbeui). Bridges do work, but they don't do optimal routing, and tend to concentrate traffic on certain links. One of her projects is designing a router that has the plug-and-play feature of bridges.

She also harkened back to the days when she designed the spanning-tree algorithm for bridges (despite disliking bridges as a concept, she still helped pull their keisters out of the fire). Along with the algorithm, she also designed an algorhyme (ahh, the good ol' days when people used to submit wacky RFCs).

Speaking of Microsoft Research, this recent slashdot story on Andrew Glassner's book Interactive Storytelling reminded me of a talk that Glassner gave back when he worked at Microsoft Research. It must have been in the 1999-2000 timeframe because I was still in my first stint at Microsoft. Glassner was researching interactive storytelling and one of the things he did was buy the latest video games and play them through to the end. He gave a talk about the Nintendo 64 game "The Legend of Zelda: Ocarina of Time" which he had just finished. I remember thinking, nice work if you can get it.

Posted by AdamBa at 10:51 PM | Comments (0) | TrackBack