Welcome to MSDN Blogs Sign in | Join | Help

Craig's Bug

One of the things I love about this job is tracking downinteresting bugs.  It’s like readinga good who-done-it, complete with plot twists, multiple potential suspects and a fascinating array of characters. Late last September, Craig Eisler submitted a bug that had all of these elements.

Now, when your general manager submits a bug, you don’t necessarily have to get on it right away. But, it’s not a good idea to let it linger for too long.  So, after this bug had been on the list for about a week or so, I decided it was time to figure out what was up.

The bug involved a document Craig had been editing with revision marking turned on.  He’d made some changes to the document, saved it, quit Word and, when he opened the document back up, some of the spaces between words were missing.

With a bug like this, the first thing I do is open it up in Win Word.  If the problem appears there, then there’s a strong likelihood that the bug is in the code that writes the file.  If the bug doesn’t appear in Win Word, then I know to start looking at the code that reads files.  In this case, the problem appeared in Win Word, so my first suspect is going to be somewhere in the save code.

Also, the missing spaces seemed to be in or around areas of the document where revisions had been made.  So, the first suspect was somewhere in the code that writes revisions.  I created a document, added some text, turned on revisions made some changes and saved the file stepping through the code that handles revision marking.

Nothing.  Everystep along the way, everything was happy. The code was writing all the appropriate XML tags, and none of the text was missing.  Of course those two sentences summarize about two-three hours of sleuthing, after which I was able to exclude the revision marking save code as a suspect.

Well, maybe it’s something that only appears to be related to revision marking.  Let’s take two files, one that exhibits the problem and one that doesn’t, and compare the contents (much easier to do now that the document content is XML).

Again, nothing. Other than a few gratuitous differences (revision save ID’s, for example, which are uniquely generated every time new text is saved in a document), everything in and around the missing spaces was identical.  Another couple of hours spent cracking open various documents and comparing the XML, and I still haven’t a clue whothe real culprit is.

Well, but, if the documents are identical, maybe the problem happens when we read the file.  So, I set a breakpoint on the code that handles runs of text from the XML parser, and, sure enough, our “characters” callback wasn’t getting called for just the missing spaces.  Hm…  Progress.

About another hour or so, I had tracked it down to some general XML parsing code we’d ported from Win Office.  One of the problems with writing filing code that’s intended to handle future situations is that, when you write the code, the future hasn’t arrived yet.  Well, for Win Office, Mac Office represented the future, and some of the stuff we’d added exposed a subtle bug in the code we’d ported (note: the problem has been fixed in WinOffice before Mac Office shipped, so people shouldn’t run into this at all).

By the time I had finished all of this, implemented a fix and verified the fix, it was about 1:30 in the morning.  When I get engrossed in a good mystery, I sometimes find it difficult to put the book down.  Same thing goes with good mystery bugs.

And, the bug being a good mystery bug that geeks like Craig and I appreciate, I sent off an e-mail to Craig outlining the basic nature of the bug and the fix (which turned out to be just a couple lines of code—this is almost always the case with a good mystery bug).  This being in the middle of the FIFA Women’s World Cup, I ended the mail by saying that I was going to go home, drink some coffee, and stay up to catch the USA match (I forget who the opponent was).

The next day, I got a response from Craig with some questions about the bug.  I replied to Craig’s questions and, at the end of the e-mail, lamented over the fact that, after all that effort and all that coffee to stay up to watch a soccer match, our local cable company saw fit to pre-empt the last 30 minutes of the match with a taped question-and-answer program starring Mike Holmgren, the Seahawks coach.

For a born-in-Green-Bay, prick-me-and-I-bleed-green-and-gold, Packers fan like me, having a soccer match for which I’d stayed up all night to be able to watch be preempted by Mike Holmgren is seriously rubbing salt into the wound, and I conveyed my displeasure at this to Craig by saying that the only reason we still have a working television in the house is the fact that there were people asleep in the house at that time.

What ensued was a series of e-mails between Craig and I with a dual thread about the bug he’d reported and my television set.  His response to my previous e-mail was to suggest that I should have taken the TV outside and smashed it there.  Wake up the neighbors instead of the kids, and I get to vent my hostilities.

In my reply, I explained that this was not an option giventhe size (36”) and weight (over 260 lbs) of my TV set, to which Craig replied, “A CRT!?  How quaint!  Do you get slivers when you go to the bathroom after watching that TV?”

Having an uber-geek general manager is cool.  You get great bug reports, and he likes to hear about the nature of the bug and the fix.  Just be a little careful when you talk about the technology around your house.

 

Rick

Currently playing in iTunes: New World Blues by Gov't Mule 

Posted by Rick Schaut | 9 Comments
Filed under: ,

What the Hell is That?

Seattle.  Middle of January.  Nothing in the sky but this huge, yellow thing.  Looking at it hurts your eyes.  In that context, read this transcript.

"Don't put your lips on it!"

 

Rick

Currently playing in iTunes: Afternoon by the Pat Metheny Group

Posted by Rick Schaut | 0 Comments

Trading Fours

I've had quite a bit of positive feedback on my last post, so I thought I'd do another musical post.

"Trading fours," or "trading eights," is a jazz term that refers to one or more soloists taking turns in a solo.  The idea is for each musician to pick up where the previous one left off, as if the alternating musicians are really playing the same solo.  It takes an enormous amount of skill and practice to pull this thing off.

Below is a video from a 1989 concert involving members of Dizzy Gillespie's "United Nations Orchestra"--an all-star group of musicians who are, today, very prominent in Latin jazz. This particular number is a medley of Seresta, a duet between clarinetist Paquito D'Rivera and pianist Danilo Perez, that segues into a full orchestra performance of Samba for Carmen.

The latter opens with long solos by trombonist Slide Hampton and trumpeter Claudio Roditi, but closes with a round of trading fours where D'Rivera, Hampton and Roditi work the idea to perfection.

As something of a side note, it wasn't until I'd seen this video that I realized that D'Rivera had put down the clarinet and picked up his alto sax for the round of trading fours--such is the mastery of the instrument's range that D'Rivera exhibits in this piece.

Posted by Rick Schaut | 0 Comments
Filed under:

The Music of Derek Trucks

It's mid afternoon Saturday, July 27, 2007.  The scene is Toyota Park, suburban Chicago, Illinois, home of some minor league soccer team.  We're between acts during the Crossroads Guitar Festival, and Bill Murray walks out to introduce the next act.  A few folks in the audience have heard this guy play, and are on the edge just itching to hear his band.

"This is a guy who works two jobs," Murray begins.  "He works days with this fellow, Eric Clapton.  Night time, he masquerades and plays for these fellows called the Allman Brothers.  He's got a beautiful wife who can sing like a bird, he's come all the way to you from Florida, he's gonna rip this place apart and do a lot of damage to you.  Let's [unintelligble] The Darryl Trucks Band!"

What?!  Did he just say, "Darryl?!"  Aw crap!  Derek Trucks is about to perform with his own band in a venue that's likely to result in his widest exposure yet, and Bill Murray screws up his name.  The irony is bitter.  If there's anyone in music today who's music deserves far more notice than it's getting, Derek Trucks is it.

There's a lot that can be said about Derek Trucks himself.  Most of it's already been said.  The nephew of Allman Brothers charter member Butch Trucks, he was a child prodigy.  Currently 28 years old, he's already had a professional career that's well into its second decade.  Derek, along with Warren Haynes and Oteil Burbridge, has been an integral force in the resurgence of the Allman Brothers band earlier this decade.  He's toured with Eric Clapton, and, while many went to see the original guitar God himself, many came way talking about the tall, baby-faced kid with the long blonde pony-tail.

But, it's the music that matters.  And Derek is doing something insanely new and unique, and worthy of in-depth study and review.

To illustrate this point, I'm going to deconstruct the various elements of the first song that Derek Trucks and his band played at the Crossroads Festival.  I've embedded the You Tube video below.  RSS folks can click here.

The raw material he's working with is a couple of songs, Sahib Teri Bandi and Maki Madni, written by Nusrat Fateh Ali Khan.  This is Punjabi folk music, known as Qawwali, in the Islamic, Sufi tradition, and is generally performed by large groups in pursuit of Sufi mystical experience.

A Qawwali song follows a general pattern.  A lead singer begins with a subtle, improvised introduction that leads into a "raga," which conveys the melodic theme of the song.  In this case, the raga is six bars.  The raga is repeated as others join in, and this builds in a crescendo as singers emphatically increase the intensity of their effort, until the performance comes to an abrupt end.

There are several things worth noting about this performance.  The first is that Derek's own performance of the song is done with a Gibson SG '61 Reissue plugged straight into a 60's vintage Fender Reverb amp.  There are no pedals, and no effects.  Just Derek's slide technique with which he mimics the sound of a Qawwali singer's voice right down to the micro-tonal variations.  At times, you can almost hear the plaintive wail of the Sufi supplicant in the midst of a mystical experience--as if Trucks, himself, is having his own mystical experience.

The second notable aspect of the performance is that, while the band loosely follows the Qawwali pattern, the execution more closely follows a tradition in Jazz music wherein a familiar melody is purloined as a vehicle for improvisation.  On a fundamental level, this is a jazz performance, even though the music isn't what we'd generally consider to be jazz.

This point is made even more clear following the flute solo when the band transitions into the Maki-Madni portion of the song.  This digression incorporates an additional element of a raga, in that the band builds to a crescendo before returning to the Sahib Teri Bandi theme.  This melding of two similar, yet complimentary, melodies into one song is, again, a traditional element of jazz music.

A third notable aspect of this performance is that, at 6 minutes and 35 seconds, it is shortened considerably from the usual performance which is often more than twice that long.  Even the studio version released on the Songlines album is nearly 10 minutes long.  The usual performance is even more free and less structured than this performance, and incorporates a wider array of improvisation.

The last, and perhaps most remarkable, aspect of the performance I want to point out is how taught the improvisations are.  This isn't a free-rambling, almost aimlessly wandering, form of improvisation that's commonplace for jam bands like, say, The Grateful Dead or Widespread Panic.  The band exercises a strict discipline that also involves a subtle interplay amongst all the musicians producing a cohesive whole.  While the song is used as a vehicle for improvisation, the improvisation itself is kept within, and contributes to, the overall aim and effect of the song itself.

This last element is really more something out of the blues tradition than the jazz tradition, which is largely why the end result isn't really jazz per se, though the performance also lacks many of the complex harmonic interactions that would also move it more fully into the jazz realm.

This performance, in overall effect, is typical of what Derek Trucks is trying to achieve musically, but that effect is also why Trucks' music remains relatively obscure.  It's not jazz, so you won't hear it on jazz radio stations.  It's certainly not pop, but it also doesn't fall into any other convenient categories like blues, funk, gospel, rock or r&b.  His music incorporates and interweaves, to varying degrees at different times, elements of all of these forms of music in such a way as to create an entirely new category all its own.

By any objective standard, this is musical art of the highest order.  But I fear for its obscurity.  A good part of the greatness of other musical pioneers is that they blazed a path that others were able to follow.  That Trucks is blazing a new musical path is indisputable.  In blazing his particular path, however, Trucks and his compatriots bring such an amazing level of virtuosity to the table as to lead me to wonder whether or not anyone will be able to follow.

Perhaps it's too soon to tell, and perhaps I'm underestimating the virtuosity that other musicians are able to bring to the table.  Or, perhaps I'm overestimating the ability of Trucks' music to inspire other musicians to follow.  But there is one thing I find disturbing.  I've assiduously searched the web looking for a similar analysis of his music to the one I've given here, and I've not found any.  I'd expect someone other than a relatively obscure software developer to have already written something like this.

So, the question is, when Bill Murray messed up Derek's name, was it an omen?  Or was it merely a bump along the way?  I hope it's the latter, but I guess it's really up to us to decide.  Isn't it?

 

Rick

Currently playing in iTunes: Desdemona by the Allman Brothers Band

Posted by Rick Schaut | 5 Comments
Filed under:

Finding My Voice Again

Wow.  What a stretch.  We shipped the bits for Office 2008 off to manufacturing back in December, and that very day I was still in the office until 10:00 that night doing some prep work for the next release of Office.  Having been head down in Office 2008 for so long and so hard, to just flip the switch from ship-mode to down time would have been like jamming the car into reverse while driving at highway speed.

Mac Office 2008 has been my 8th major release since I started working here, and this release is the first time I haven't been able to flip that switch--the first time I've had to ease my way back out of that intensity that permeates what we generally refer to as "ship-mode."

This has affected my blogging, and I've spent some thinking about the direction to take this blog in the future--an introspective exploration into what I want to say, even to the point of figuring out if I have anything left to say.

I've always been a sporadic blogger.  To a certain extent, that comes with the territory of being a part-time blogger with a job that alternates between periods of high intensity and periods of reflective down time.  But I also find it exceedingly difficult to just sit down and blog about something for the sake of putting a post up on the blog.  I tend to not say anything unless I think something needs to be said.

So, I'm trying to ease my way back into blogging, and I'm looking for things that need to be said.  As I do that, I'll probably not talk all that much about Word or Office.  If I do, those posts will likely end up on Mac Mojo.  This space will get more personal.  There are a few things I have in the pipeline, and I'll get to them as I can.

In the mean time, I'll be down at Mac World next week doing at least a stint or two in the blogger lounge.  Who knows, I might get more of my voice back then.

 

Rick

Now playing in iTunes: Hercules by the Derek Trucks Band

Posted by Rick Schaut | 1 Comments

The OOF Infinite Loop

I'm surprised that I haven't hit this before at Microsoft, but I actually hit an OOF infinite loop today.

For those who don't know, "OOF" is an acronym that refers to someone being out of the office.  The Exchange team gives a nice run-down on the history the term here.

When people are out of the office, it's common to set up an auto-reply e-mail message providing contact information, and these messages often refer the sender to someone else for urgent issues.  By now, you've probably guessed what an OOF infinite loop is: person A has an auto-reply OOF message that says to contact person B, and person B has an auto-reply OOF message that says to contact person A.

Of course, it doesn't have to be that simple.  There really is no limit to the number of people who can be involved in one of these infinite loops.  Which gives me an idea for what to do right after we ship Mac Office...

 

Rick

Currently Playing in iTunes: Will it Go Round in Circles by Billy Preston

Posted by Rick Schaut | 1 Comments

The GM Shuffle

By now you’ve read the news.  MacBU has a new general manager.  I only found out about this via e-mail on Thursday, and, yesterday, I got a chance to meet Craig.  I’ll get to my initial impressions of Craig in a bit, but I also want to talk a bit about Roz Ho.

Before I talk about Roz, I should point out that, in Microsoft terms, I’m a wierdo.  That’s not just because I work on Mac software.  No, I’m an anomoly in a very different sense.  In a couple of weeks, I’ll mark my 17th anniversary of working on various versions of Word, all but one of them for the Macintosh.  That’s so rare, that people have suggested they make a place for me somewhere in the Microsoft Museum (just what I want: to become a museum piece).

Microsoft is pretty big on career advancement. It’s not a “move up or move out” kind of thing.  It’s more of a do something cool and good here, you get to do something cool and good somewhere else.  That’s why I’m such a freak.  I keep managing to advance my career without having to move on to something completely different.

For a general manager, this career advancement thing becomes something of a problem.  Opportunities to climb the management ladder start getting really thin.  So, how do you reward a GM for doing a great job?  You find a different kind of business for that GM to run—something that might involve cool new technologies, or something that requires a different approach to management, or a host of other kinds of chances to do something, well, different.

So, earlier this year, a very interesting and exciting opportunity opened up for Roz to advance her career.  This kind of thing always brings out mixed emotions in me.  I hate losing someone as good as Roz, but I’m also proud that someone from MacBU is being recognized for doing a great job.  I’m very excited for Roz in her new role, and I think it will be good for both her and for Microsoft.

Roz became the general manager of MacBU back in December of 2002.  She oversaw the release of what has been the most successful version of  Mac Office ever.  Her more than four years as general manager covers nearly half of Mac BU’s ten year existence.  Of the three general manager’s I’ve worked with until now, I think Roz has been the best, and she’s certainly been the most pleasant to work with (which is, by no means, a knock on either Ben Waldman or Kevin Browne).

I say all of this to express my personal gratitude to Roz for what she’s done for MacBU, for the Macintosh in general, and for me personally.  I’ll miss you Roz, though I still think you messed up the Connectix deal for not getting all of us our own “Switch/Switch Back” t-shirts.

So, what about Craig Eisler?  As I said, I only found out about this on Thursday, but I see that he’s a blogger and enough of an Apple enthusiast as to have 5 Apple TV’s, 3 iMacs, a Mac Mini, a Mac Cube and a PowerMac G4.  Oh, and, ah, I think there’s a video iPod in the mix as well.  So far, so good.

I did a bit of poking around the internet, and found quite a bit of information about Craig, like he was once a competitive power lifter, and he once, quite by accident, managed to bring down the entire Canadian banking system.  Four times.  In one day.

UWTV did this interview back in April of 2004.  It’s a bit long, but very interesting.

On Friday, we had a bit of a get-together out on the patio outside our building, and I had a chance to chat with Craig.  If I had to choose a single word to describe my first impressions, it would be “exuberant”—almost, but not quite, effusive. We swapped a few stories. Someone mentioned my suggestion box, and he said that he’d read my blog and thought the suggestion box was a scream.

So, he gets the Mac, he gets Microsoft and he understands that running a successful business is measured in terms of the value of the product to users and customers. Best of all, he gets my twisted sense of humor.  I’ll have to try out some of the Canadian jokes my daughter brings back from school.  C-eh?  N-eh?  D-eh?

 

Rick

Currently playing in iTunes: You da Mann, by the Derek Trucks Band

Posted by Rick Schaut | 2 Comments
Filed under:

Your Text Here

On one of the many informational, internal e-mail lists of which I am a member, someone, today, posted one of those ubiquitous "How-Do-I" requests where the solution involves some form of "your text here".

Someone replied with a nice and quick answer to the original question where the "your text here" phrase was "booga booga," and the person who sent the original request replied:

Perfect.  Elegant in its simplicity.  I might just keep the “booga booga” as well.

I'ts one of those things you just have to preserve for posterity, hence this post. 

 

Rick

Currently playing in iTunes: Ain't Life Grand, by Widespread Panic

Posted by Rick Schaut | 0 Comments

There Comes a Time

In every project, there's a point where you have to stop tweaking this and touching up that little bit of behavior and focus on just fixing bugs.  If you don't, then you never ship.  Nadyne gave some of the details over on mac mojo.

Well, we're getting close to that time with Mac Office 12.  In honor of nearing such a milestone, I prepared something for our program management friends.  These are the folks who are responsible for designing how the various features are supposed to behave from the user's point of view.  It's a suggestion box, and it looks like this:

Mind you, this suggestion box is for PGM use only.  Think of it as my way of saying that now is the time for us to shut up and listen to the real users who are trying out the product during the private beta.

Enough fun.  I need to get back to fixing bugs.

 

Rick

Currently playing in iTunes: Beautifully Broken by Gov't Mule (w/ George Porter Jr.)

Posted by Rick Schaut | 5 Comments
Filed under: ,

John Madden?

Kinda makes ya wonder...

 

Rick

Currently playing in iTunes: Boom! Boom! by John Lee Hooker

Posted by Rick Schaut | 1 Comments

Lounging Around at MacWorld

MacWorld always has its surprises, but some of them are quite personal.  For me, the surprise was the discovery, at 5:20 this morning, that a previous occupant of my hotel room had set the alarm-clock but hadn't turned off the alarm.  I've been told by others that my failure to check the alarm clock when I checked in is a sign that I don't attend trade shows often enough.  Actually, I think I probably attend too many as it is.

Whatever the case, thanks to this inconsiderate person, the Word file format converter is now about four hours closer to being done than it would have been had said person learned how to turn the alarm clock off.  I expect, however, that those hours will revert back during an upcoming, afternoon nap.

I got a chance to chat with John Welch today, and I'm happy to inform you all that he appears to be in much better shape than he did yesterday.  And, you know, things were so busy in the Blogger Lounge, that I forgot to ask John if he's been able to check out Songlines by the Derek Trucks Band.

I've yet to get any opportunity to personally wish Shawn and Lesa a happy wedding anniversary, so I will here.  Happy anniversary, Shawn and Lesa.  In one of those cute MacWorld stories, Shawn and Lesa met at MacWorld three years ago.  Two years ago, Shawn proposed to Lesa at MacWorld, and, last year, they got married at MacWorld.  I think we should petition the event sponsors to rename MacWorld the Shawn and Lesa Wedding Anniversary Celebration.

Shawn does have a lot of pictures from the show, and a couple of cool interviews with Chuck Leavell and Bob Weir.  It seems MacWorld always has at least one musician I admire roaming the floor, but I still think my personal best was getting Herbie Hancock's autograph in the Microsoft booth a few years back.

Lastly, I almost got a chance to chat with Andy Ihnatko. I still remember Andy raking me over the coals about Mac Word 6.  I hadn't realized how much shorter than me Andy is, and that's saying quite a lot, but I still think Andy is much taller in stature.  He's still one of the best writers in the Mac commentary field.

That's about all from the Blogger Lounge.  I need to bag some z's before it's time to spend an evening with the Mac MVP's.

 

Rick

Currently playing in iTunes: Midnight Pass by Sea Level

Posted by Rick Schaut | 3 Comments
Filed under:

BBEdit 8.5

MacWorld has a decent review of BBEdit 8.5, but it fails to mention a new feature that is of particular use to programmers.

One of the features of CodeWarrior that I'd missed was the syntax highlighting that the IDE applied to symbols that were defined within the project.  In fact, I hadn't realized just how much I'd come to rely on that feature when writing new code until I started working with BBEdit and XCode.  I had a sudden, new-found paranoia about whether or not I'd typed in a symbol name correctly.

Well, if you use ctags in association with BBEdit, BBEdit will apply syntax highlighting to any symbol that's in the tags file that it would use for the "Find Definition" command on the Search menu.

 

Rick

Currently playing in iTunes: The Rainy Season by Marc Cohn 

Posted by Rick Schaut | 2 Comments
Filed under: ,

Open XML Converters for Mac Office

There’s been a bit of flak about the Office Open XML file format converters for Mac Office.  Sheridan posted an update on MacMojo, and Schwieb weighed in regarding some of the comments that people have made.  There’s quite a bit of speculation gong on, and not a whole lot of information, so I’m going to try to dispel some of the fog.

This discussion centers on Word, because I’m a Word developer, but the general ideas hold for all three of the affected Office applications.  The most significant difference between Word and the rest of the suite is that Word has a converter API.  There’s a WinWord converter SDK that’s downloadable from the Microsoft support web site.  While there are some subtle differences (FSRef’s instead of file paths, for example), the overall API is the same for Mac Word.  Of particular importance is the fact that the lingua franca for converting Word files formats is RTF.

So, in order to write a converter for Word, you need two things: 1) a component that reads and writes the external file format; and 2) a component that generates and parses RTF.  Also, because of the hierarchical structure of XML, you need to have some form of intermediate representation of the file.

Let’s put our Win Word hat on for a second, go back in time about two years, and think about how we might do this.  Well, by the time Win Office ships, we’ll have a software component that satisfies all of those needs: Word itself, or the new version of Word, to be precise.  So, one, very efficient, way to implement that converter is to refactor the UI out of Word 12, repackage the result up with any other necessary components, and write a wrapper around all of it that exposes the API that the older version of Word expects converters to implement.

Do that, and you can ship the converters the same time you ship Office.  The big upside of this idea is that you can really narrow down the scope of testing you do on the converter itself, because you’ve already tested both the RTF and the Open XML components by testing Word itself.  So, you gain leverage from both a development and a testing perspective.

Now, let’s put our Mac Word hat back on, and think of what our options are given the reasoning I’ve stated above.  You can’t really ask the Win Office team to toss their idea in the trash just so you can work on the converters in tandem.  Well, you can, but one would have to be very optimistic to expect more than a polite, “Sorry.” I can’t think of a clearer example of the tail trying to wag the dog.

Instead of following in Win Word’s footsteps, how about we spin off a separate development team to work on the converters separately from Word itself?  I've read suggestions made by some that writing converters from scratch could have been done in a relatively (in some cases ridiculously) short amount of time.  So, let's test that idea by doing some back-of-the envelope calculations.  You can check these numbers for yourself by downloading the reference XML schemas and performing some searches through the .xsd files.

First, when could we have realistically started working on this?  Well, not before Office 2004 shipped in April of 2004, so, ignoring the availability of specifications for the new format, let's assume that we began work on this roughly two years ago.  The final draft of the spec wasn't submitted to the ECMA until this past October, so in terms of actually having a spec to write to, 24 months is extremely optimistic for the time period available.

How big is the task? Word, alone, has more than 1100 individual XML elements that need to be processed.  We do this processing by writing something called a "handler", and each one of these elements needs a handler.

Now, some of these elements are more complex than others.  A single, user-defined document property isn't very complex.  A paragraph, or a document section, can be very complex.  For some of these handlers, one developer can whip out two or three a day.  Some of the other handlers will take a single developer up to an entire month to complete.  Trying to get more than one developer working on the same handler at the same time ends up being very counter-productive.  So, one handler per developer, and, on average, it's fair to assume productivity of one handler per dev per day.

At that rate, a team of 5 developers will implement 25 handlers a week, which means that we'd have all the XML handlers written in 44 weeks.  Well, a little more than that, because I've rounded the number of elements down to the nearest 100.  Nevertheless, we’ve taken a little less than a year to get the converters reading the new file format.  We still aren't writing the new file format, we have the RTF side of things to worry about, which is actually more complex than the XML side, and I’ve completely left out all of the design and coding for the intermediate representation of the file.  The intermediate representation, itself, is at least 6 to 8 months worth of work.

In other words, we're almost halfway through the schedule, with less than a quarter of the development work done.  You want more developers?  I don't have more developers.  This is just for Word.  We need additional teams for Excel and PowerPoint.  People want Universal Binaries of Mac Office in their hands, they’re adding new features to Win Office 12 that Mac Office 2004 won’t understand, Apple has a new HIView architecture that requires some re-architecting of parts of Mac Office, and none of this work adds a single new feature to Mac Office.

More importantly, we’ve also run out of time to test the converters.  Had we started writing converters from scratch, by the time we had something fully tested and ready for public consumption, it would have taken us longer than it has taken us on the route we’ve chosen, in no small part due to the fact that the current route we’ve chosen allows us to leverage almost all of the development work of the Win Office team.

The only reasonable choice for Mac Word has been to follow in Win Word’s footsteps.  For those of you who attended the last Mac BU customer council meeting in Redmond and were wondering what I was doing while sitting in the back corner, now you know.  I was busy refactoring Mac Word so that Mac Word 12 could, eventually, become the converter for the new file formats.

The big win for this strategy is that we get to do all of the things that customers are asking us to do with the next version of Mac Office: Universal Binaries, support for most of the new data types in Win Office 12, re-architecting the UI to take advantage of composited HIViews and add some compelling new features.

Lastly, can we port the Win Word converter?  Well, actually, in a way, porting the Win Word converter is exactly what we have been doing, but we’re still faced with having to wait until Win Word ships before we have the final source code to merge into what we’ve already ported.  Once that merge is done, then we still have to go through several months’ worth of testing and bug fixing before they’re ready for public use.

And that is precisely why there’s a delta between Win Office 2007 shipping and the full availability of converters for Mac Office.

Update:  I’d like to clear up some things about what I said earlier.  My back-of-the-envelope estimates included a lot more work than just supporting Open XML in Mac Office.  Open XML is the easy part.  It included the work required to generate RTF in both directions and to implement tools for developers.

If we had to add support for Open XML to Mac Word 12 without being able to port code from Win Word, the read/write estimates shrinks down to about 8.5 man/years (44 weeks x 5 devs x 2 for read+write).  As I recall, this about half of what it took to add HTML support to Word: 10 or so devs over a release cycle of 2 years.  Doing the work for PPT and Excel isn’t strictly a multiple of Word, because about 30% of the XML elements are shared between the three apps.  So, for all of Mac Office, I’d estimate it would take a total of about 5 devs over the release cycle to add full Open XML support starting from scratch, as part of the larger project.

 

Rick

Currently playing in iTunes: Time Loves a Hero by Little Feat

Posted by Rick Schaut | 14 Comments
Filed under: ,

Muddy Mojo Waters

Somewhere in the backroads of Issaquena County, Mississippi, along the banks of the Mississippi river, McKinley Morganfield was born.  Likely due to his early life so close to the Mississippi river, McKinley later came to be known as Muddy Waters.  The father of Chicago blues.  The man most responsible for introducing the electric guitar into the genre.  At one ponint in history, the terms "Electric blues" and "Chicago blues" were synonymous.

Talking about Muddy Waters, Eric Clapton once said, "His music changed my life, and whether you know it or not, and like it or not, it probably changed yours too."  The very roots of Rock-n-Roll itself traces directly back to the music of Muddy Waters.  His influence is comparable to, nay even surpasses, that of say Charlier Parker or Dizzy Gillespie on Jazz.  So wide is Muddy Waters' influence that a long standing British combo and a well-known monthly magazine, as well as a Bob Dylan tribute, took their names from the title of one of his songs, "Rollin' Stone."

But I'm not going to talk about Muddy Waters' music per se.  Rather, Muddy Waters is known for another contribution to American culture.  More than anyone else, Muddy Waters is responsible for the word "mojo" having made its way into our lexicon.

I say that with some care.  His contribution derived not from his skill as a lyricist, but the strength of his performances.  Nonetheless, the lyrics of many songs Waters' made popular were suffused with references to African folk magic.  The song "Hoochie Coochie Man," written by Waters' bassist, Willie Dixon, is typical:

I got the black cat bone, I got a mojo tooth
I got the John the Conqueror root, I'm gonna mess with you

Another classic is Preston Foster's, "I've Got My Mojo Working," which opens with the line, "I got my mojo working, but it just don't work on you."

So, back on March 29, 2005, Dave Winer was in some kind of Muddy Waters, mojo mood mostly involving Yahoo 360.  Coincidentally, Betsy Aoki shared her Got Dot Net Blues with us, which prompted me to add this comment.

Fastfoward to a couple of weeks ago in a meeting where we'd invited Betsy to share some thoughts on running our Mac Office Team blog.  We'd had a name for it, but hadn't really settled on that name.  During the course of the discussion with Betsy, however, she used the phrase, "Your Mac mojo," in a rather off-handed, throw-away kind of fashion.  The blog's name itself wasn't the topic of disussion, but, in one of those unpredictable, synergistic moments, the name stuck.  So, we now have our Mac Mojo woikin'.

Did my comment have anything to do with Betsy's use of the phrase "Mac mojo" during our meeting?  I haven't a clue.  But, hey, I'm allowed a certain amount of room for dellusion over such things.  Whatever the case, I hope everyone enjoys the new team blog.  There are some pretty interestings posts in the queue.

 

Rick

Currently playing in iTunes: Hoochie Coochie Man by Eric Claption

Posted by Rick Schaut | 2 Comments
Filed under:

Claiming Technorati

My profile is Technorati Profile. Nothing to see. Move along, now. Rick
Posted by Rick Schaut | 0 Comments
More Posts Next page »
 
Page view tracker