<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Schwieb &#187; MacBU</title>
	<atom:link href="http://www.schwieb.com/blog/category/all/macbu/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.schwieb.com/blog</link>
	<description>Random blatherings</description>
	<lastBuildDate>Fri, 06 Nov 2009 17:41:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>On being less spacey</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2009%2F08%2F28%2Fon-being-less-spacey%2F&#038;seed_title=On+being+less+spacey</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2009%2F08%2F28%2Fon-being-less-spacey%2F&#038;seed_title=On+being+less+spacey#comments</comments>
		<pubDate>Sat, 29 Aug 2009 05:43:36 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2009/08/28/on-being-less-spacey/</guid>
		<description><![CDATA[One of the issues I&#8217;ve heard customers mention often about Office 2008 is that it doesn&#8217;t play well with the Spaces feature that Apple introduced in Mac OS X 10.5. I wrote a long post explaining the issues (almost a &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2009%2F08%2F28%2Fon-being-less-spacey%2F&#038;seed_title=On+being+less+spacey">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the issues I&#8217;ve heard customers mention often about Office 2008 is that it doesn&#8217;t play well with the Spaces feature that Apple introduced in Mac OS X 10.5.  I wrote a long post explaining the issues (almost a year ago! yikes!) and noted that the root of the problem lay in the implementation of Spaces itself in the OS.</p>
<p>I&#8217;m very happy to note that with the release of Snow Leopard (aka Mac OS X 10.6) today, Apple has made significant improvements to the Spaces architecture and Office 2008 SP2 now participates quite nicely with the Spaces feature!  We worked with a number of people at Apple to identify the set of issues involved and had some interesting back-and-forth discussions on what changes needed to be made where.</p>
<p>So, if you&#8217;ve been avoiding using either Office 2008 or Spaces because the two don&#8217;t mix well, you can now have the best of both worlds by installing Snow Leopard.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2009%2F08%2F28%2Fon-being-less-spacey%2F&#038;seed_title=On+being+less+spacey/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Risks and Rewards</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F10%2F23%2Frisks-and-rewards%2F&#038;seed_title=Risks+and+Rewards</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F10%2F23%2Frisks-and-rewards%2F&#038;seed_title=Risks+and+Rewards#comments</comments>
		<pubDate>Thu, 23 Oct 2008 23:11:04 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=112</guid>
		<description><![CDATA[A little over two years ago, I wrote a long post about bugs. In that post, I briefly discussed a number of reasons why not every known bug gets fixed in any particular dot-release of a product. I&#8217;m going to &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F10%2F23%2Frisks-and-rewards%2F&#038;seed_title=Risks+and+Rewards">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A little over two years ago, I wrote a long post about <a href="http://www.schwieb.com/blog/2006/06/20/bugs-stink-yeah-yeah/ ">bugs</a>. In that post, I briefly discussed a number of reasons why not every known bug gets fixed in any particular dot-release of a product. I&#8217;m going to go into a bit more detail about one of those reasons today, so allow me to quote myself from that post:</p>
<blockquote><p>Some bugs are easier to hit, but fixing them may have a high risk of regression and may cause another bug that is even worse. One example might be a performance bug in Excel’s recalc engine. We could fix it and make things faster, but currently the code calculates correctly (albeit slowly) and any fix might totally break all function dependency analysis. It is sad but safer to leave things alone.</p></blockquote>
<p>Let&#8217;s look at performance as an example. Over the ten or so months that Office 2008 has been available, we&#8217;ve received a lot of feedback about the suite. One of the most common areas mentioned is performance, such as the amount of time it takes Office apps to boot, the amount of time it takes a chart to draw, or the amount of time it takes Excel to recalculate a worksheet in particular. Each of these three areas are places where we&#8217;ve actually put in some significant research and investment in improving Office 2008 performance. Each of the Office 2008 updates (<a href="http://support.microsoft.com/kb/948057">12.0.1</a>, <a href="http://support.microsoft.com/kb/952331">12.1</a>, <a href="http://support.microsoft.com/kb/953822">12.1.1</a>, <a href="http://support.microsoft.com/kb/956344">12.1.2</a>, and <a href="http://support.microsoft.com/kb/958267">12.1.3</a>) have contained a number of performance improvements, among many other fixes. That said, we&#8217;re continuing to make additional improvements. Some of the code changes needed are invasive and we&#8217;ve had to evaluate the risk-vs.-reward tradeoffs and make decisions to delay these changes until a more appropriate time.</p>
<p>Let&#8217;s look at one of these scenarios. Pretend you are working in Excel and want to create a simple line chart with a large data set that contains as many as 30,000 data points. I&#8217;ll presume that you have a pretty good monitor, perhaps running at a resolution of 1600&#215;1200 pixels. Now, your chart probably doesn&#8217;t actually fill the entire screen from left-to-right &#8212; after all, you need space to show the columns of data that you are working with, right? So let&#8217;s further assume that your chart is roughly 1000 pixels wide. That means you are displaying 30,000 data points in 1000 pixels, or about 30 data points per pixel. Even if not all of those data points fall directly on top of each other in the y-axis, the only possible line to draw to connect all 30 of those points in one vertical pixel slice is a single line up and down and up and down again, on top of itself many times. Your chart looks kind of smushed together. Or, let&#8217;s pretend for the sake of simplicity that all those 30 data points are approximately the same on the y-axis, and you just get one single pixel, drawn over and over and over again. And, as you may have noticed, the current charting engine that we share with Windows Office is rather sluggish as it faithfully draws that line or pixel over and over and over again.</p>
<p>Now, the fact that 30 data points end up in one pixel slice on the x- axis isn&#8217;t the charting engine&#8217;s fault, as it didn&#8217;t choose the data set or the size of the chart &#8212; you did, or you at least accepted the charting defaults. Now, to improve things, you could stretch the chart out to be a full 1600 pixels wide, right? But that doesn&#8217;t help much; you&#8217;re still at almost 19 data points per pixel. Or, if you had $17,207+tax on hand, you could set up a <a href="http://store.apple.com/us/browse/home/shop_mac/family/mac_pro?mco=MTE4MTU ">Mac Pro</a> with four <a href="http://store.apple.com/us/product/MB198Z/A ">ATI Radeon HD 2600 XT</a> video cards and eight <a href="http://store.apple.com/us/product/M9179LL/A ">30&#8243; Apple Cinema Displays</a> (2560 pixels of horizontal space per monitor) for a total horizontal space of 20,480 pixels, which is still not enough space to achieve one data point per pixel! Ok, so perhaps it&#8217;s not reasonable to ever expect that such a data set would ever have more than one pixel available for each data point. What would you do? How might you redesign the charting engine to handle this?</p>
<p>One option might be to only plot at most one data point per pixel. But, how do you decide which of the 30 data points is the best one to plot? The first? The middle one? The average value? Do you add math to best-fit the overall line, which adds processing time, which is what you are trying to cut down on? I&#8217;ve only mentioned one single possible change, and there are many. The point here isn&#8217;t to actually craft a redesign in this blog post (or in the comments either&#8230;), but to demonstrate that a redesign can be a complex thing &#8212; I&#8217;ve posed some design questions and probable decision points already, and I haven&#8217;t even considered how the current code is actually designed. (Neither have you, since you don&#8217;t have access to it!)</p>
<p>This example is just a very long way of saying that whatever redesign is planned, it has to fit into the current architecture of the code or be willing to accept the risk of changing that architecture and possibly breaking something else. That breakage may in fact be worse than the current bug. If we make a major change to the code, we run the risk of introducing a variety of different possible bugs &#8212; incorrect visual representation of the data, or a crash, etc. Testing architecture changes is particularly challenging because it&#8217;s impossible to craft a series of tests that exercises every possible type of data that could be charted, and if we miss one edge case we could let a critical bug slip through that is worse than the current problem. We&#8217;d rather make the change when we have sufficient testing resources lined up for a longer period of time than we usually have for a dot-release. That way we have all the test coverage needed to validate the change, and is why a bug fix in a feature as important as charting may be delayed.</p>
<p>Bear with me while I shift gears now, and talk about another issue that the MacBU has <a href="http://search.twitter.com/search?q=&amp;ands=office+2008+spaces&amp;rpp=100 ">heard</a> <a href="http://discussions.apple.com/thread.jspa?threadID=1555070 ">a</a> <a href="http://episteme.arstechnica.com/eve/forums/a/tpc/f/8300945231/m/616008222931?r=482000322931#482000322931 ">lot</a> <a href="http://forums.macrumors.com/showthread.php? t=425321">about</a>: Office 2008 and the OS X feature called <a href="http://www.apple.com/macosx/features/spaces.html ">Spaces</a>. If you read through the links in that previous sentence, a couple of themes pop up:</p>
<ol>
<li>Mac Office 2008 doesn&#8217;t work properly with Spaces</li>
<li>It happens most often in Word or when the Formatting Palette is open</li>
<li>People rarely see the bug in non-Microsoft applications</li>
<li>People assume the Mac Office 2008 code base is the cause of the problem</li>
</ol>
<p>Let me give you some of the background of the Formatting Palette, to help explain why the problem shows up so much more readily in Office 2008 than in Office 2004 or in other applications.</p>
<p>When people talk about the &#8220;Formatting Palette&#8221; in Office 2008, they usually mean the Toolbox window. The Toolbox is actually two separate windows, bound together by <a href="http://developer.apple.com/documentation/Carbon/Reference/Window_Manager/Reference/reference.html#/ /apple_ref/doc/uid/TP30000176-CH1g-TPXREF122">Carbon Window Groups</a>. The first window has the title bar and the row of buttons across the top (the buttons that toggle between the Formatting Palette, the Scrapbook, the Reference Tools, the Object Palette, and whatever else is there that I can&#8217;t remember off the top of my head.) That first window is a true floating window created by OS APIs. The second window is everything below that row of buttons, and is the instantiation of <em>one</em> of those toolbox items. These windows are slightly customized, in that we tell the OS to create them with no border or shadow, again through OS APIs. When the Formatting Palette is showing, you&#8217;ve actually got the root toolbox window showing first and then the FP window bound tightly to it, on top in the z-order. If you click on the Scrapbook button, the FP window is destroyed and a new window is created to hold the scrapbook, and that new window is bound against the root window. I think that Spaces and Exposé don&#8217;t take the window bindings into account (my understanding is that they manipulate windows at the Core Graphics level, which is a lower-level private system interface upon which both Cocoa and Carbon windows sit), and that is why Spaces and Exposé seem to get confused by the root floating window and the upper child window.</p>
<p>The reason MacBU uses this window separation is that most of these child windows are hosted in different modules of code, most of which have their origins in different architectures. The Carbon Window Group APIs allow for very rich and precise control over how windows are presented to the user, and gave us the ability to combine UI from a variety of sources in our codebase with minimal rearchitecting of each of the individual components. The Scrapbook window, for example, is a PowerPlant window because it actually lives deep in the Entourage code (due to the fact that Entourage is currently PowerPlant-based, and that was the easiest way to get access to the Entourage database). PowerPlant is very picky about owning its entire window, which is why we use a separate window here &#8212; it misbehaves rather badly if you try to put PowerPlant objects in a sub-frame of a window that is not fully under PowerPlant&#8217;s own control. The Formatting Palette is actually a special instantiation of the toolbar code, which has its own assumptions about the sort of window it lives in, and the Compatibilty Report is actually an instantiation of what was originally a modeless dialog.</p>
<p>We have long-term plans to overhaul the entire architecture of the Toolbox and all its clients to use Cocoa, but that didn&#8217;t happen in 2008. The Cocoa AppKit <a href="http://developer.apple.com/documentation/Cocoa/Reference/ApplicationKit/Classes/NSWindow_Class/Reference/Reference.html">window APIs</a> do not yet contain functionality that supports the full richness of window management features that the Carbon APIs do. The Toolbox and its use of Carbon Window Groups were introduced in Office 2004 and predate both Spaces and Exposé. The Office 2004 Toolbox has the same issues with Spaces and Exposé, but you only notice it if you show the Toolbox. In Office 2004, the Formatting Palette was separate from the Toolbox, so the Toolbox was not shown by default. In order to reduce the amount of screen space the Toolbox and Formatting Palette obscured at the same time, we merged the two together early in the 2008 cycle, long before Leopard and Spaces were demoed or available for us to test with in beta.</p>
<p>After we received a beta of Leopard with Spaces, we tested our apps and identified a number of issues that our apps have with the feature. We had an engineer spend several days digging into these issues. He did some serious spelunking into our windowing code and determined that we were not moving the windows incorrectly in our code so we reported them to Apple to investigate. Apple has fixed a number of problems with Spaces in <a href="http://support.apple.com/kb/HT1141">OS X 10.5.3</a>, but some still remain.</p>
<p>So, let&#8217;s circle this discussion back to the point I opened with, and the real point of this post: some changes are just too risky for dot-releases, and every company that writes software has to deal with that. Microsoft does and certainly Apple does too. I don&#8217;t know the Spaces code &#8212; as I don&#8217;t work for Apple, I&#8217;ve never seen it. Microsoft and Apple work together to troubleshoot customer issues as situations warrant, and as part of that joint effort I&#8217;ve spent some time talking to some of the Apple Carbon and Spaces developers over the last few weeks about Spaces. We wanted to see if there&#8217;s any sort of change we could make in our code to avoid the issues. If there was anything we could reasonably change in our code at this time I would love to do so. However, changing our windowing system to not use Carbon Window Groups entails a complete rewrite, and is not something we can feasibly do in a bug-fix release. Given the direction Apple is taking with OS X, any significant rewrite of our windowing system should be done in Cocoa, and that is a tremendous task to do in a dot-release. It would almost certainly cause other serious bugs as I alluded to in the charting example above. The Apple developers I&#8217;ve spoken with have been unable to come up with any simple code changes to that we could make to work around the issues, and have indicated that our code is generally acting correctly.</p>
<p>For now, you&#8217;ll have to wait for Apple to release an update to or new version of OS X where Spaces works with apps that use Carbon Window Groups. Our User Experience team has put up a brief <a href="http://www.microsoft.com/mac/help.mspx?target=c3f299e3-aa15-40f4-b3cc-1a6e9eb38cf81033&amp;clr=99-4-0&amp;ep=11&amp;CTT=Category&amp;MODE=pv&amp;locale=en-US&amp;usid=0f7ed450-1b63-4b7e-9733-146430521c0b ">help topic</a> about the issue. We’re keenly aware of our customers’ frustration with Office 2008 and Spaces, and we will continue to work with Apple to help find a solution or workaround. Please continue to share your product experiences with us on <a href="http://www.microsoft.com/mac/contactus.mspx">Mactopia</a>, or privately with <a href="http://www.schwieb.com/blog/contact-me/">me</a> if you wish. As long-time software developers, it&#8217;s frustrating to me and to my peers when we&#8217;re unable to fix every problem instantly. Improving your experience with Mac Office on a continuous basis is part of our job. Sometimes we can do it with a quick fix, sometimes not. Your input helps us get it done.</p>
<p>(Edited to clean up the extraneous formatting tags in the last paragraph. Also fixed spelling of Mactopia.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F10%2F23%2Frisks-and-rewards%2F&#038;seed_title=Risks+and+Rewards/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>How to report a bug</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F09%2F07%2Fhow-to-report-a-bug%2F&#038;seed_title=How+to+report+a+bug</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F09%2F07%2Fhow-to-report-a-bug%2F&#038;seed_title=How+to+report+a+bug#comments</comments>
		<pubDate>Sun, 07 Sep 2008 18:14:23 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=96</guid>
		<description><![CDATA[John Gruber of Daring Fireball linked to a couple of articles today on how to report a bug. First, John linked to this great writeup by Steven Frank, one of the authors of Transmit. He&#8217;s got some very good specifics &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F09%2F07%2Fhow-to-report-a-bug%2F&#038;seed_title=How+to+report+a+bug">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.twitter.com/gruber">John Gruber</a> of <a href="http://daringfireball.net">Daring Fireball</a> linked to a couple of articles today on how to report a bug.  First, John linked to this <a href="http://stevenf.com/archive/reporting-bugs-in-mac-os-x-apps.php">great writeup</a> by Steven Frank, one of the authors of Transmit.  He&#8217;s got some very good specifics on the sort of content that developers find most useful in a bug report.  Second, John linked to a <a href="http://developer.apple.com/bugreporter/bugbestpractices.html">laundry list</a> of &#8216;Best Practices&#8217; that Apple hosts on their developer site.  Much of the specifics related to the format and tools that Apple uses, but the practices themselves line up quite nicely with Steven&#8217;s post (and, not terribly coincidentally, with the details that help us in the MacBU.)</p>
<p><a href="http://blogs.msdn.com/rick_schaut/">Rick Schaut</a>, one of our long-time developers in the MacBU, has a few blog posts about what it&#8217;s like tracking down a bug from a developer&#8217;s point of view (see <a href="http://blogs.msdn.com/rick_schaut/archive/2004/05/30/144762.aspx">Repro, Man</a> and <a href="http://blogs.msdn.com/rick_schaut/archive/2004/05/19/135315.aspx">Anatomy of a Software Bug</a> on his blog).</p>
<p>On a related note, I haven&#8217;t forgotten about my promise in the comments on my last post about the Office 2008 updaters.  We&#8217;re still looking at some things internally.  I&#8217;ve received a number of emails listing details about user setups and what they think the problem is, but when I&#8217;ve tried to reproduce the same setup and problems at work, the updaters function just fine.  So, I don&#8217;t have anything concrete to offer yet.  If you are running into updater problems, please consider reinstalling from your original DVD, and keep careful notes about what you do as you run the updaters (see, there was a point to the initial paragraph and title!) so that you can tell me/us as much detail as possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F09%2F07%2Fhow-to-report-a-bug%2F&#038;seed_title=How+to+report+a+bug/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Leave those bits alone!</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F08%2F14%2Fleave-those-bits-alone%2F&#038;seed_title=Leave+those+bits+alone%21</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F08%2F14%2Fleave-those-bits-alone%2F&#038;seed_title=Leave+those+bits+alone%21#comments</comments>
		<pubDate>Thu, 14 Aug 2008 17:53:58 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=81</guid>
		<description><![CDATA[The MacBU released a new update to Office 2008 this past Tuesday, to bring the suite to version 12.1.2. There are a number of important fixes in this update, including changes to Word&#8217;s boot sequence that can bring a dramatic &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F08%2F14%2Fleave-those-bits-alone%2F&#038;seed_title=Leave+those+bits+alone%21">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The MacBU released a <a href="http://www.microsoft.com/mac/downloads.mspx?pid=Mactopia_Office2008&amp;fid=9515C70D-BE80-4ADE-856A-EA542F7D84E1#viewer">new update</a> to <a href="http://www.microsoft.com/mac/products/Office2008/default.mspx">Office 2008</a> this past Tuesday, to bring the suite to <a href="http://go.microsoft.com/fwlink/?LinkId=122674">version 12.1.2</a>.  There are a number of important fixes in this update, including changes to Word&#8217;s boot sequence that can bring a dramatic improvement in boot speed (the exact speed gain will vary a lot depending on a number of factors), major speed improvements in floating point calculations in Excel, and a slew of other items.</p>
<p>Shortly after the update went live, I started seeing recurring reports of people being unable to apply the update.  Typically, the updater starts to run, and then mysteriously (from the user&#8217;s perspective) says &#8220;You cannot install Office 2008 12.1.2 Update on this volume. A version of the software required to install this update was not found on this volume.&#8221;, even though the user has Office 2008 installed and has been using it.</p>
<p>We&#8217;ve seen these reports regularly, and they almost always happen because of one of four reasons:</p>
<ol>
<li>The user has renamed the Office 2008 folder or some application name inside it</li>
<li>The user has deleted some part of the Office 2008 folder they didn&#8217;t think they needed</li>
<li>The user has run a tool such as <a href="http://monolingual.sourceforge.net/">Monolingual</a> to remove extra languages from Office</li>
<li>The user has run a tool such as <a href="http://www.xslimmer.com/">Xslimmer</a> or Monolingual to remove extra code architectures from Office</li>
</ol>
<p>In an ideal world, our installers could handle these cases and complete the install, but installers are complex beasts, and in the interest of reducing complexity, doing any of the above actions is unsupported.  Let&#8217;s get into each of the issues:</p>
<p><strong>Supporting the renaming of the folder or an app</strong> adds complexity because then we have to derive heuristics to guess what bits on your hard drive might be Office.  A heuristic is by definition a guess, and for every time we guess right, we might guess wrong.  As a very simplistic example, if we have a heuristic that says &#8220;look in the /Applications folder for any folder that contains the word Office, and assume that is the Microsoft Office 2008 folder&#8221;, then what happens if some other app uses a folder with that name?  We&#8217;d have to add another rule that says &#8220;ok, then look for an app inside that folder named Microsoft Word.app&#8221;.  That rule can fail too, if users rename the app to be just Word.app.  So, we could add another rule, and another, and suddenly the updater complexity <em>just to find</em> Office becomes unmanageable.  I don&#8217;t think Apple allows their apps to be renamed or moved, either (although I&#8217;ve been told by an Apple engineer that they do.  I&#8217;ll have to check on that.)</p>
<p><strong>Supporting the deletion of parts of Office</strong> adds complexity because updates are not necessarily full file or bundle replacements.  Some updates are just patches of the executable, or of sub-resources in the app bundle.  If you have deleted a particular component that a given update wants to modify, you can end up with only a partial version of that component updated and the rest missing.  Office is designed to act together as a suite, and as such, dependencies between the various apps and libraries can change at any time under the hood.  If you&#8217;ve deleted a library that version 12.1.1 of Word doesn&#8217;t need, but version 12.1.2 does, your install of Office would be completely broken if we updated Word after you deleted the now-needed library.  So, we err on the side of caution and refuse to update the suite if it has been modified by deleting components.</p>
<p><strong>Supporting the removal of &#8216;unnecessary&#8217; languages</strong> with an app like <a href="http://monolingual.sourceforge.net/">Monolingual</a> is basically the same scenario as above, although a bit less risky.  Interestingly enough, since very few parts of Office actually ship with multiple languages (I think that only MERP, the Help Viewer, and one or two other items have more than one language), removing the &#8216;extra&#8217; languages only saves you a few KB of disk space, which is pretty small compared to the overall size of Office.  Again, however, if you&#8217;ve modified Office by removing parts of it, we can&#8217;t tell up front whether the bits you currently have on disk will work with the updated bits the updater wants to install, so we err on the side of caution and refuse to update the suite if it has been modified by deleting languages.</p>
<p><strong>Supporting the removal of &#8216;unnecessary&#8217; architectures</strong> with apps like <a href="http://www.xslimmer.com/">Xslimmer</a> or Monolingual adds complexity because we don&#8217;t know exactly what has been done to the software.  Did the tool adjust the loader commands in the Mach-O binary?  What if we&#8217;re patching the binary instead of replacing it?  It&#8217;s always safer to do nothing to your current install than it is to blindly make changes based on an unknown current state, so we err on the side of caution and refuse to update the suite if it has been modified by deleting architectures.</p>
<p>Some web forums have posted a workaround that involves copying the updater to a write-able location and then modifying one of the scripts inside the installer, so that the installer always blindly goes ahead and applies the update.  That may appear to work, but leaves your Office install in a possibly precarious and probably unsupported state.  [Update: I did a little digging into this script in the updater, and it is checking a number of specific files to make sure they match their expected state.  It is pretty obviously not validating every file in the Office suite (for performance reasons, maybe).  If we're not validating every file, then it is possible to update some modified file, which undermines my own discussion here.  Hmph.  I'll have to talk to the folks at work to get the background on this script.  My guess is that we check a representative sample of files to see if they've been modified, since the usual suspect processes modify almost every file in the suite.  If one of this set of files has been modified, it's likely that the rest of the suite has been changed too, and it's safer to abort the update.  Again, that's just my guess.]</p>
<p>Now, having said all that, I think the current user experience is not ideal and could be improved. One change might be to tell you that we did in fact find what looked like Office, but that we detected some change that is unsupported (such as language or architecture deletion, etc), but even doing that adds some heuristics, and if we&#8217;re looking by name and don&#8217;t find the right name, then the current error message is technically correct. So, we&#8217;ve got some thinking to do about this.</p>
<p>Hopefully this post explains some of the reasons users are seeing the updater error message.  If you are seeing it for reasons I haven&#8217;t listed above, please add a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F08%2F14%2Fleave-those-bits-alone%2F&#038;seed_title=Leave+those+bits+alone%21/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Spring Cleaning</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F22%2Fspring-cleaning%2F&#038;seed_title=Spring+Cleaning</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F22%2Fspring-cleaning%2F&#038;seed_title=Spring+Cleaning#comments</comments>
		<pubDate>Fri, 23 May 2008 04:56:02 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=73</guid>
		<description><![CDATA[Now that we&#8217;ve released Office 2008 SP1, I&#8217;ve been able to focus more of my own attention on the next version of Mac Office. We&#8217;ve begun the earliest phase of work, internally called &#8216;EEQ&#8217;, which I think stands for &#8220;Engineering &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F22%2Fspring-cleaning%2F&#038;seed_title=Spring+Cleaning">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Now that we&#8217;ve released Office 2008 SP1, I&#8217;ve been able to focus more of my own attention on the next version of Mac Office.  We&#8217;ve begun the earliest phase of work, internally called &#8216;EEQ&#8217;, which I think stands for &#8220;Engineering Excellence and Quality&#8221;. The EEQ phase is when we get to tackle important engineering issues that don&#8217;t directly lead to a customer scenario, but to help us improve the product at an architectural level.  In my case, I&#8217;m currently focusing on removing calls to system APIs that Apple has deprecated over the last few years, such as <a href="http://developer.apple.com/documentation/Carbon/Reference/QuickDraw_Ref/Reference/reference.html">QuickDraw</a>.</p>
<p>During Office 2008, we converted most of our drawing code over to use <a href="http://developer.apple.com/documentation/GraphicsImaging/Reference/Quartz2D_Collection/index.html">Core Graphics</a> instead of the historical imaging APIs known as QuickDraw.  CG is much richer than QD, has full alpha-channel support and hardware acceleration, and uses floating-point coordinates for full flexibility, so it is to our obvious advantage to use it.  Even though we did most of that conversion during 2008, I&#8217;m amazed at the amount of QuickDraw cruft I keep finding.</p>
<p>I went through a bunch of our toolbar code today with a peer of mine, and we found dozens of references to GetPort/SetPort, even though the code right next to it was fully CGContext-based.  Sigh.  Some of them have been trivial to remove, but I&#8217;ve also found a lot of mouse-tracking code that uses QuickDraw APIs for comparing points to rectangles.  Even the so-called modern OS tracking APIs take CGrafPtrs (I&#8217;m looking at you, <a href="http://developer.apple.com/documentation/Carbon/Reference/Carbon_Event_Manager_Ref/Reference/reference.html#//apple_ref/c/func/TrackMouseLocationWithOptions">TrackMouseLocationWithOptions</a>()&#8230;)  A little more inspection of headers this evening revealed a new replacement API in Leopard called HIViewTrackMouseLocation, but at the moment the Office source code still runs on Tiger, which means I can&#8217;t use it easily.  Ugh.</p>
<p>Anyway, Apple has deprecated lots of stuff over the lifespan of Mac OS X, and we&#8217;ve got a lot of cleanup to do.  Reading the <a href="http://developer.apple.com/releasenotes/Carbon/HIToolbox.html">Leopard Carbon Release Notes</a> for the HIToolbox gives a sense of the direction to take for the Carbon code that needs to survive.  It does feel nice to rip out old crufty code (as my peer said today, &#8220;Kill it!  Kill it!&#8221;) and modernize some of our subsystems.  It will feel even better as we transition some of those subsystems to Cocoa.  None of this cleanup directly helps our users, but as we modernize our code we make it more maintainable and sustainable for the future, and that gives us a better platform on which to build things that do help you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F22%2Fspring-cleaning%2F&#038;seed_title=Spring+Cleaning/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fix for endless Setup Assistant problems</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F14%2Ffix-for-endless-setup-assistant-problems%2F&#038;seed_title=Fix+for+endless+Setup+Assistant+problems</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F14%2Ffix-for-endless-setup-assistant-problems%2F&#038;seed_title=Fix+for+endless+Setup+Assistant+problems#comments</comments>
		<pubDate>Thu, 15 May 2008 04:22:13 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=72</guid>
		<description><![CDATA[Shortly after the MacBU released Office 2008 SP1 yesterday, we started to receive reports that the update caused the Office Setup Assistant to launch every time, instead of their desired Office application. We started looking into it right away, and &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F14%2Ffix-for-endless-setup-assistant-problems%2F&#038;seed_title=Fix+for+endless+Setup+Assistant+problems">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Shortly after the MacBU released Office 2008 SP1 yesterday, we started to receive reports that the update caused the Office Setup Assistant to launch every time, instead of their desired Office application.  We started looking into it right away, and found that in nearly every case, the problem happens when users are running Office 2008 with an expired product license key. </p>
<p>When Office 2008 was released in January, all of the keys used in our private beta program expired, but it wasn&#8217;t until the SP1 update that we added code to enforce the expiration.  While we communicated to all of the users in our beta program that their license keys were going to expire when the product became publicly available, one of the beta versions did escape onto the Internet in November and we didn&#8217;t know who was using it.  During our work yesterday we found that some of our users installed their retail copy of Office 2008 over that beta version and ended up running the final release of Office with the beta key.</p>
<p>Our testing and user assistance team scrambled today and have put a new <a href="http://www.microsoft.com/mac/help.mspx?MODE=pv&#038;CTT=PageView&#038;clr=99-0-0&#038;target=dcae186d-57fa-4718-a06d-81cde168e5131033">help topic</a> about the problem up on Mactopia, along with <a href="http://www.microsoft.com/mac/help.mspx?MODE=pv&#038;CTT=PageView&#038;clr=99-0-0&#038;target=f2d51b70-f7d6-4a3c-ae8b-b90597d7530e1033">another link</a> to how to remove the old product key information and re-enter your valid key.  This is about the fastest we&#8217;ve put up new help content &#8212; about 26 hours from first report of the problem to active help content!</p>
<p>Also, the English and Japanese versions of the SP1 update are now live in the Microsoft AutoUpdate tool, so rather than finding them on Mactopia for manual download, you can simply go to the Help menu in your favorite Office 2008 app and select &#8220;Check for Updates&#8221;.  The autoupdaters for the European languages should be available soon.</p>
<p>Lastly, we actually put up a <a href="http://www.microsoft.com/mac/itpros/default.mspx?CTT=PageView&#038;app=ag&#038;target=9043bbf9-501e-4bdd-a641-f9543698e9091033">very minor revision</a> to the SP1 installer today.  The new package has a fix so that the update can actually be deployed via Apple Remote Desktop or via the command-line.  If you want to deploy SP1 via ARD and downloaded the update yesterday, please redownload it.  If your install is already done and working, there&#8217;s no need to redownload and reinstall the update &#8212; the fix was in the installer only, not in any of the actual application bits.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F14%2Ffix-for-endless-setup-assistant-problems%2F&#038;seed_title=Fix+for+endless+Setup+Assistant+problems/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac Office 2008 SP1</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fmac-office-2008-sp1%2F&#038;seed_title=Mac+Office+2008+SP1</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fmac-office-2008-sp1%2F&#038;seed_title=Mac+Office+2008+SP1#comments</comments>
		<pubDate>Tue, 13 May 2008 17:00:27 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=69</guid>
		<description><![CDATA[It&#8217;s finally here! The MacBU has just released Service Pack 1 for Mac Office 2008. You can download the update directly from the Mactopia website (it&#8217;s large &#8212; about 180 MB), or launch your favorite Office app and select Help/Check &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fmac-office-2008-sp1%2F&#038;seed_title=Mac+Office+2008+SP1">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s finally here!  The MacBU has just released Service Pack 1 for Mac Office 2008.  You can <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=395D1487-A3A6-4106-A0F8-4D6E1D6D89D2&#038;displaylang=en">download the update</a> directly from the Mactopia website (it&#8217;s large &#8212; about 180 MB), or launch your favorite Office app and select Help/Check for Updates.  There are well over 1000 fixes and improvements in this release, including the return of custom error bars and axis tick manipulation in Excel charts.  The <a href="http://go.microsoft.com/fwlink/?LinkId=115072">full release notes</a> are available online as well, so go check them out to see if we fixed your personal pet peeve.</p>
<p>I&#8217;m particularly excited to see this update go live, because it&#8217;s been the project consuming most of my time for the last several months.  Shortly after we shipped released Office 2008 to manufacturing in December 2007, my manager asked me if I&#8217;d be willing to act as the development lead for the SP1 project.  I agreed, and have spent many hours working on the project since we kicked it off in early January.  Since our fine UA department has already written up the list of highlighted changes, I thought I&#8217;d spend a little time today describing how we approached SP1 and how we did the work.  </p>
<p>First off, while I was the development lead for SP1, I most certainly cannot take any majority of the credit.  SP1 was a MacBU-wide effort, with significant contributions from every single developer, tester, program manager, content writer, lab engineer, builder, and all the other disciplines I&#8217;m forgetting at the moment.  I am incredibly thankful for all the hard work that everyone around me did.</p>
<p>So, why SP1, and why now?  Well, it&#8217;s no great secret that we released Office 2008 later than our original plans intended.  Even after that delay, there was a decent list of issues in the product that were postponed during the original release cycle that we knew we wanted to fix, so we knew that we had to plan for an update sometime in 2008.  Mac Office 2004 was first released in May 2004, and its first service pack came out in October 2004, about 5 months later, and that&#8217;s pretty much the same schedule we came up with for Office 2008.  In addition to fixing the issues we know about internally, we like to have a few months of real user data in hand (crash reports, newsgroup/forum postings, etc) that help us to identify problems that we didn&#8217;t know about.  I&#8217;ve been spending a bunch of time in <a href="http://arstechnica.com/index.ars">Ars Technica</a>&#8216;s <a href="http://episteme.arstechnica.com/eve/forums/a/frm/f/8300945231">Macintoshian Achaia</a> forum over the last year or so, and have received a number of good bug reports from particpants there.  (In fact, we have a &#8216;SWAT&#8217; team of folks in the MacBU who participate in a whole variety of forums across the net.)</p>
<p>Anyway, the entire MacBU began development and testing work on 2008 SP1 in January.  Initially, teams pretty much just took their list of issues postponed from the regular release and started fixing those bugs.  Our test team once again dove into the product and found more issues that needed fixing, and we started to collect MERP logs (Microsoft Error Reporting Program &#8212; aka the dialog you see when an Office app crashes) from the wild.  Devs took all those bug reports and began working on classifying them by severity and importance, and then started fixing them.</p>
<p>Like any release, however, there needs to be a modicum of control applied to the whole process.  If everybody just keeps on checking in fixes, the product can actually end up being less stable than before.  The Office codebase is large, and code changes in one part can have unintended consequences somewhere else, so we don&#8217;t let code churn run on forever.  Many teams at Microsoft (and, I&#8217;d imagine, at other large software companies) have instituted &#8216;triage&#8217; for bugs.  </p>
<p>When we triage bugs, it basically means that we take a look at all the aspects of a bug before deciding whether to accept a fix it:</p>
<ol>
<li>How bad is the bug? (Is it a crash? corrupted file? data loss? simple redraw glitch?)</li>
<li>How hard is it to encounter the bug? (every time on boot? Only when saving? On Feb 29? Only when dragging a shape across a page boundary when the page is in PubLayoutView and the shape has a semitransparent shadow and the document has never been saved?)</li>
<li>Can the user work around the bug? (use the mouse instead of the keyboard?)</li>
<li>How complicated is the fix? (simple typo (= instead of ==) or re-architecture of entire function?)</li>
<li>Where is the fix? (in the middle of Excel&#8217;s recalc engine?  Or for populating a single popup menu in one dialog?)</li>
<li>How close are we to shipping? (Months, weeks, days?)</li>
</ol>
<p>All of these factors come into play, and some combination of the magnitude of each of these leads to a decision of whether to fix a bug or not.  It can get pretty complicated, and much of it comes down to a gut decision (although we try to collect hard data when we can, like &#8216;exactly how many MERP reports do we have of this one bug?&#8217;)  In January, when we were 4+ months away from shipping SP1, pretty much any bug was allowed to be fixed.  In April, when we were trying to lock down the code and minimize code churn in order to keep the product stable, we punted a known crashing bug because although the impact of the bug was large, the fix was a little complicated and the testing team didn&#8217;t think they could verify that the code change had no unintended side effects with the amount of time left before shipping.</p>
<p>So, what was my role in all this as development lead for SP1?  I worked closely with one of our Program Managers and one of our Test Leads as the three-disciplined Sustained Engineering Lead Committee (I have no idea if we had some formal name, so that&#8217;s what I will call it here.)  Scott, Pat, and I set the product schedule (kickoff, first day of triage, code-complete, zero bugs, release candidate target, etc) and acted as the final arbitrators in daily triage meetings, putting our roughly 33 (ok, now I feel old) combined years of software development experience to use.  Mostly that meant that as teams brought their bugs to the triage meetings, we asked them about the above list of questions and tried to get a sense of how each bug fit in importance.  We were responsible for using that information to &#8216;raise the bar&#8217; each day/week &#8212; making it harder for bugs to qualify for fixing.  That sounds somewhat anti-quality or antithetical to the purpose of a service pack, but actually it is a very important part of ensuring that we ship a high-quality, stable product for our users.  It can be very hard to say no to a bug, particularly when people really are passionate about the specific problem or user scenario, but someone has to do it.  The three of us all made a final call on each bug, and I think I tended to be the most hard-core about locking things down.  Toward the end, a few people jokingly (at least, I hope they were joking) called me &#8220;Dr. No.&#8221;</p>
<p>As I said at the top, there are over 1000 fixes in SP1, including the re-addition of some features that were glaringly absent when compared to Office 2004.  That doesn&#8217;t mean Office 2008 is now perfect &#8212; I know we haven&#8217;t fixed every bug in the product, and some folks are bound to note that we haven&#8217;t fixed some of the bugs they are most frustrated by.  However, I hope you&#8217;ll agree that this update shows that I and the rest of the MacBU are committed to this product and to its future.</p>
<p>Update:  I added a new post the other day about some <a href="http://www.schwieb.com/blog/2008/05/14/fix-for-endless-setup-assistant-problems/">installation problems</a> people have been running into with SP1.  If you are having difficulties with SP1 apps, please take a look and see if it helps you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fmac-office-2008-sp1%2F&#038;seed_title=Mac+Office+2008+SP1/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Saying hello (again) to Visual Basic</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fsaying-hello-again-to-visual-basic%2F&#038;seed_title=Saying+hello+%28again%29+to+Visual+Basic</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fsaying-hello-again-to-visual-basic%2F&#038;seed_title=Saying+hello+%28again%29+to+Visual+Basic#comments</comments>
		<pubDate>Tue, 13 May 2008 07:05:06 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=70</guid>
		<description><![CDATA[How does that old Chinese proverb go? &#8220;May you live in interesting times!&#8221; I have no idea how accurate it is, or whether it is a positive blessing or a curse, but I really do live (and work) in interesting &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fsaying-hello-again-to-visual-basic%2F&#038;seed_title=Saying+hello+%28again%29+to+Visual+Basic">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>How does that old Chinese proverb go?  &#8220;<a href="http://en.wikipedia.org/wiki/May_you_live_in_interesting_times">May you live in interesting times!</a>&#8221;  I have no idea how accurate it is, or whether it is a positive blessing or a curse, but I really do live (and work) in interesting times.</p>
<p>Almost two years ago, back at WWDC in August 2006, the MacBU announced that Office 2008 would not have support for Visual Basic.  I <a href="http://schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/">blogged about it</a> at the time, and that one post has proven to be my 15 minutes of Internet fame.  It continues to be the most popular post on my site &#8212; 21 months later, it still accounts for almost half of all the hits I get each week.  While most of our customers don’t require the cross-platform scripting enabled by VBA, a section of the Mac community spoke out very vocally against our decision, and I still hear echos of it to this day.  At the time, I wrote about the challenges we faced in bringing it forward with the rest of Mac Office 2008 and why we ended up deciding to remove the feature, but while some people understood or at least accepted the details, some in the community did not.  I&#8217;ve been told that we must have cut VB to intentionally drive users to use virtualization and Windows Office 2007 on Macs, or that we were ordered by upper Microsoft management to slowly kill the Mac, or any one of a zillion other &#8220;Microsoft is evil&#8221; conspiracy theories.  None of these theories are true, but it&#8217;s rather hard to prove that, except by deeds.</p>
<p>This isn&#8217;t a done deed yet, but I&#8217;ve got a new commitment for you.  Quoting from a <a href="http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx">press release</a> that went out from the MacBU at 12:01am PST today:</p>
<blockquote><p><strong>VBA Returns to Future Versions of Office for Mac</strong></p>
<p>The Mac BU also announced it is bringing VBA-language support back to the next version of Office for Mac. Sharing information with customers as early as possible continues to be a priority for the Mac BU to allow customers to plan for their software needs. Although the Mac BU increased support in Office 2008 with alternate scripting tools such as Automator and AppleScript — and also worked with MacTech Magazine to create a reference guide, available at <a href="http://www.mactech.com/vba-transition-guide">http://www.mactech.com/vba-transition-guide</a> — the team recognizes that VBA-language support is important to a select group of customers who rely on sharing macros across platforms. The Mac BU is always working to meet customers’ needs and already is hard at work on the next version of Office for Mac.</p></blockquote>
<p>Yep, you read that right.  VB is (well, will be) back, baby!  When we came to the realization in 2006 that there was no way for us to keep VB in the product and still ship Office 2008 on any semblance of the schedule we wanted, we announced its removal, but kept looking at how to bring it back into the suite even before we shipped.  Many of the technical challenges I wrote about then still remain, but for a while now I and several others have been working with a group of people who know a heck of a lot about the internals of VB, and once we determined that we could achieve the revival VB in the new schedule for the next version of Mac Office, we locked it into place on the feature list.</p>
<p>Personally, I think it&#8217;s really cool that we&#8217;re announcing this now.  For all the wringing-of-hands and gnashing-of-teeth in the Mac community over the lack of VB, Mac Office 2008 has been selling really well (Craig Eisler, our General Manager and all around cool-boss-guy, said &#8220;The response has been amazing — since we launched in January, the velocity of sales for Office 2008 is nearly three times what we saw after the launch of Office 2004&#8243; in that same press release) which seems to indicate that most of our users don&#8217;t find the lack of VB to be a major issue.  I think our management is confident enough in our ongoing sales of Office 2008 to tell you about something very significant in the next version, even if that defers some sales to that next version.  Based my own experiences talking with people in various Internet forums, I don&#8217;t think too much of that will happen, though.  And if you were wondering, the delta between Office 2004 and 2008 was longer than we normally expect between versions, so my understanding is that this next version will be available somewhat sooner than 2012 (I can&#8217;t give any specifics at this time, however.) </p>
<p>So, if you have a dire need for Visual Basic, you can continue to run Mac Office 2004 (it will even run side-by-side with Office 2008) and we&#8217;re publicly committing to VB as good (maybe even better, if things go well) in the next version.  My team is responsible for that reintegration, and I&#8217;ve been meeting frequently with a number of people as we&#8217;ve planned exactly what we&#8217;re doing and how we&#8217;re bringing VB back.  This seems to me to be a strong example for the MacBU naysayers that we&#8217;re really listening to what all of our users want, and that we&#8217;re most definitely not slow-marching to some bagpiper&#8217;s funereal drone! </p>
<p>I&#8217;m excited to be able to blog about this now, after almost two years of keeping my lips zipped, and I can&#8217;t wait until we reveal everything else about the next version of Mac Office.  In the meantime, let me ask you something.  What parts of the Visual Basic experience are most important to you?  The IDE?  Macro UI, such as dialogs?  Object model parity between Mac Office and Windows Office? (and if so, which features in the Windows object model do you most want brought to the Mac?)  Or something else altogether?  I can&#8217;t promise to achieve anything in particular, but I&#8217;d love to hear how we might be able to improve upon the 2004 VB experience for you.</p>
<p>(Made a few edits this morning, and added a link to the press release.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F13%2Fsaying-hello-again-to-visual-basic%2F&#038;seed_title=Saying+hello+%28again%29+to+Visual+Basic/feed/</wfw:commentRss>
		<slash:comments>136</slash:comments>
		</item>
		<item>
		<title>Lying down on the job</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F08%2Flying-down-on-the-job%2F&#038;seed_title=Lying+down+on+the+job</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F08%2Flying-down-on-the-job%2F&#038;seed_title=Lying+down+on+the+job#comments</comments>
		<pubDate>Fri, 09 May 2008 05:50:47 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/?p=68</guid>
		<description><![CDATA[Well, the nerve, it&#8217;s not so good. I had an MRI last week and saw Dr. Peter Nora for a neurosurgical consult on Monday. There&#8217;s no immediate damage or need for surgery, but the MRI showed a definitive herniation at &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F08%2Flying-down-on-the-job%2F&#038;seed_title=Lying+down+on+the+job">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, the nerve, it&#8217;s not so good.  I had an MRI last week and saw <a href="http://www.swedish.org/body.cfm?id=6&#038;action=detail&#038;ref=1692">Dr. Peter Nora</a> for a neurosurgical consult on Monday.  There&#8217;s no immediate damage or need for surgery, but the MRI showed a definitive <a href="http://findlaw.doereport.com/enlargeexhibit.php?ID=7933">herniation at L5-S1</a> (not my personal MRI, but a decent example of one like mine), just like I&#8217;ve had twice before.  Dr. Nora strongly recommended I take several weeks to minimize prolonged periods of sitting and standing, to take pressure off the disk and give my body a chance to solve the nerve irritation on its own.</p>
<p>That&#8217;s a great idea, but what about work?  I&#8217;m still quite mentally fit (aside from the foggy effects of taking Percocet to dull the pain) and didn&#8217;t relish the idea of spending 3 weeks staring at the ceiling.  Luckily, Microsoft has a great HR and benefits team, and I have an understanding manager (who happens to be a long-time friend and is actually the very first person I met at Microsoft on my first day as an intern in 1995!). Together with my general doctor, we crafted a formal &#8216;accomodation&#8217; plan that acknowledges my limitations and still allows me to work from home part-time (and account for the rest of my time with sick leave).  This way I get to be productive, keep my mind off of my back, and yet not stress my system with long commutes or hours sitting at my desk.  I&#8217;ve got a laptop at home and can use <a href="http://www.apple.com/remotedesktop/">Apple Remote Desktop</a> to drive my Mac Pro at work, and thus can do pretty much anything from my bed that I could do at work.  </p>
<p>The one tricky thing is that as a development lead, I have several people who report to me, and I need to be able to meet with them on a regular basis.  Handily enough, between the new A/V capabilities of <a href="http://www.microsoft.com/mac/products/messenger/default.mspx">Microsoft Messenger 7</a> and the nice corded mic on my <a href="http://www.apple.com/iphone/">cell phone</a>, I can attend meetings and talk to all my direct reports face to face.  I did a number of one-on-one meetings that way today, and it seemed to work rather well.</p>
<p>So, I&#8217;m spending my days lying on my nice comfy bed with a couple of pillows and a freaking hot MacBook Pro.  Not exactly where I&#8217;d like to be, but given the circumstances, I&#8217;ll take that over a stay in the hospital or a blah view of my ceiling.  And, *knock on wood*, with any luck I&#8217;ll avoid a third  surgery and be physically back in the office soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2008%2F05%2F08%2Flying-down-on-the-job%2F&#038;seed_title=Lying+down+on+the+job/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mac Office 2008 Sneak Peek</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F09%2F18%2Fmac-office-2008-sneak-peek%2F&#038;seed_title=Mac+Office+2008+Sneak+Peek</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F09%2F18%2Fmac-office-2008-sneak-peek%2F&#038;seed_title=Mac+Office+2008+Sneak+Peek#comments</comments>
		<pubDate>Tue, 18 Sep 2007 17:43:59 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/09/18/mac-office-2008-sneak-peek/</guid>
		<description><![CDATA[We&#8217;ve just launched the Mac Office 2008 Sneak Peek site, with short video clips and descriptions of a bunch of new features in Mac Office 2008. The video clips are a little small, but they should give you a good &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F09%2F18%2Fmac-office-2008-sneak-peek%2F&#038;seed_title=Mac+Office+2008+Sneak+Peek">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve just launched the <a href="http://www.macoffice2008.com/">Mac Office 2008 Sneak Peek</a> site, with short video clips and descriptions of a bunch of new features in Mac Office 2008.  The video clips are a little small, but they should give you a good idea of the new UI (more adoption of common OS X UI elements, extensive use of Core Graphics) including the new Elements Gallery and some Word and Excel features.  Nadyne has just put up some <a href="http://blogs.msdn.com/macmojo/archive/2007/09/18/evolution-at-work.aspx">commentary</a> on how the design of the Elements Gallery evolved out of the Win Office ribbon and some of our own internal User Experience testing.  Some of the other folks I work with in the MacBU will be posting to <a href="http://blogs.msdn.com/macmojo/">Mac Mojo</a> over the next few days talking about their work in designing, developing, and testing the new capabilities.  </p>
<p>On a more personal note, I&#8217;ve not posted here in a very long time.  As you might imagine, I&#8217;ve been very busy at work over the last several months, with more to do before Office 2008 becomes available in January.  Instead of blogging, I&#8217;ve been spending my free time at home playing with my kids and doing small fixit projects (I replaced two faucets over the weekend so that my son could reach the handles and turn on the water by himself.)  I do hope to write more regularly soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F09%2F18%2Fmac-office-2008-sneak-peek%2F&#038;seed_title=Mac+Office+2008+Sneak+Peek/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The Bill and Steve Show</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F31%2Fthe-bill-and-steve-show%2F&#038;seed_title=The+Bill+and+Steve+Show</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F31%2Fthe-bill-and-steve-show%2F&#038;seed_title=The+Bill+and+Steve+Show#comments</comments>
		<pubDate>Thu, 31 May 2007 19:57:57 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/05/31/the-bill-and-steve-show/</guid>
		<description><![CDATA[So last night was the Bill &#038; Steve confab at the All Things Digital conference. It was a pretty mellow discussion as they go (although apparently contrary to popular opinion, BillG is not Fake Steve!) Both Bill and Steve made &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F31%2Fthe-bill-and-steve-show%2F&#038;seed_title=The+Bill+and+Steve+Show">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So last night was the Bill &#038; Steve confab at the All Things Digital conference.  It was a pretty mellow discussion as they go (although apparently contrary to popular opinion, BillG is not <a href="http://fakesteve.blogspot.com/">Fake Steve</a>!)<br />
Both Bill and Steve made some nice comments about the MacBU.  Check out <a href="http://d5.allthingsd.com/20070531/video-steve-jobs-and-bill-gates-together-part-2-of-7/">this link</a> from roughly 2:35 to 3:05.</p>
<p>I&#8217;ve <a href="http://www.schwieb.com/blog/2006/06/09/playing-nicely-together/">talked</a> about the relationship that the MacBU has with Apple developers before, and it&#8217;s nice to hear Steve himself say that &#8220;it’s one of our best developer relationships.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F31%2Fthe-bill-and-steve-show%2F&#038;seed_title=The+Bill+and+Steve+Show/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Save at the airport with Office 2004</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F25%2Fsave-at-the-airport-with-office-2004%2F&#038;seed_title=Save+at+the+airport+with+Office+2004</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F25%2Fsave-at-the-airport-with-office-2004%2F&#038;seed_title=Save+at+the+airport+with+Office+2004#comments</comments>
		<pubDate>Fri, 25 May 2007 17:40:07 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/05/25/save-at-the-airport-with-office-2004/</guid>
		<description><![CDATA[At MacWorld 2007 this past January, Apple released their new 802.11n Airport Extreme Base Station with support for sharing a USB hard drive. Since that release, we&#8217;ve seen a few reports here and there that Mac Office 2004 applications are &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F25%2Fsave-at-the-airport-with-office-2004%2F&#038;seed_title=Save+at+the+airport+with+Office+2004">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>At MacWorld 2007 this past January, Apple released their new 802.11n <a href="http://www.apple.com/airportextreme/">Airport Extreme Base Station</a> with support for <a href="http://www.apple.com/airportextreme/sharing.html">sharing</a> a USB hard drive.  Since that release, we&#8217;ve seen a few reports <a href="http://groups.google.com/group/microsoft.public.mac.office.word/browse_thread/thread/888ca70a90ec0391">here</a> and <a href="http://www.mcse.ms/message2416971.html">there</a> that Mac Office 2004 applications are unable to save files to such a shared disk.  One of my colleagues had run into the problem at home and reported the bug internally here as well, and it ended up on my plate.</p>
<p>I obtained a new AEBS from our lab and set it up in my office.  I rebooted my Intel iMac into Tiger, applied all the recent security updates (that Mac has been running Leopard seeds for a while, so the Tiger partition was a little out of date) and installed the new AEBS software.  I then booted up Office 2008 (since that&#8217;s easier to debug right now) and tried to reproduce the problem.  No luck &#8212; Excel and Word both had no problems saving to the wirelessly-mounted disk drive.  So, I tried Office 2004.  Again, it just worked!  So, I sent the bug back to my colleague saying I couldn&#8217;t reproduce the problem.</p>
<p>Today, he brought his own AEBS in from home and we tested it.  Sure enough, we could reproduce the problem on his AEBS.  So, we pondered the problem for a little while and realized that when I set up our lab&#8217;s AEBS the other day, the first thing I did was update the AEBS firmware as prompted when I first ran the Airport Utility tool.  Comparing the two AEBSs showed that the one I set up was using firmware v7.1, whereas my colleague&#8217;s was using v7.0.  A quick update of his AEBS and a new test, and the problem went away!</p>
<p>I then dug around on Apple&#8217;s web site and found the <a href="http://www.apple.com/support/downloads/airportextremebasestationwith80211nfirmware71.html">release notes</a> for the new firmware update.  Lo and behold, the new firmware says that it has &#8220;improved support for third party applications saving files to a USB disk.&#8221;</p>
<p>So, if you are having problems saving files from Office 2004 applications to your new whiz-bangy Aiport Express Base Station, go to your Airport Utility and check to see if you have the latest AEBS firmware.  Your Office installation will thank you (or at least, save your files&#8230;)!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F05%2F25%2Fsave-at-the-airport-with-office-2004%2F&#038;seed_title=Save+at+the+airport+with+Office+2004/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>VB to AppleScript</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F02%2F09%2Fvb-to-applescript%2F&#038;seed_title=VB+to+AppleScript</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F02%2F09%2Fvb-to-applescript%2F&#038;seed_title=VB+to+AppleScript#comments</comments>
		<pubDate>Fri, 09 Feb 2007 20:18:18 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/02/09/vb-to-applescript/</guid>
		<description><![CDATA[After my posts this past August about the removal of VB from Mac Office 2008, lots of people asked about how to convert VB code into AppleScript. I had always intended to write up a post with some simple examples &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F02%2F09%2Fvb-to-applescript%2F&#038;seed_title=VB+to+AppleScript">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After my posts this past August about the removal of VB from Mac Office 2008, lots of people asked about how to convert VB code into AppleScript.  I had always intended to write up a post with some simple examples but never actually found the spare time to do so. However, Paul Berkowitz, along with the help of some other stellar Microsoft MacBU <a href="http://www.microsoft.com/mac/community/community.aspx?pid=mvp">MVPs</a> has written an excellent tutorial with some concrete and very relevent examples of VB macros and their AppleScript equivalents.</p>
<p>MacTech Magazine <a href="http://www.mactech.com/news/?p=1009354">announced</a> on Wednesday that their upcoming April 2007 issue will contain the entire 150-page book!  I saw a slightly-pre-release copy of the book at MacWorld and I think it will be an excellent reference/HowTo for anyone who has created custom solutions in VB for the Mac.</p>
<p>I know this doesn&#8217;t address the cross-platform issues surrounding VB but it should give you some ideas of the richness of AppleScript and our support for it in Mac Office 2008.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F02%2F09%2Fvb-to-applescript%2F&#038;seed_title=VB+to+AppleScript/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Whistle while you work</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F14%2Fwhistle-while-you-work%2F&#038;seed_title=Whistle+while+you+work</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F14%2Fwhistle-while-you-work%2F&#038;seed_title=Whistle+while+you+work#comments</comments>
		<pubDate>Mon, 15 Jan 2007 07:00:19 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/01/14/whistle-while-you-work/</guid>
		<description><![CDATA[I got back to Seattle on Thursday night, only to find that I couldn&#8217;t actually get all the way home due to ice on the roads. I had to park my car a block and a half away in a &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F14%2Fwhistle-while-you-work%2F&#038;seed_title=Whistle+while+you+work">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I got back to Seattle on Thursday night, only to find that I couldn&#8217;t actually get all the way home due to ice on the roads.  I had to park my car a block and a half away in a nearby parking lot because the snow (!) that fell on Wednesday had been packed down and subsequently frozen into a solid sheet of ice.  What is with this year&#8217;s weather anyway?  Snow, ice, wind, torrential rain, gale-force winds, more snow, more ice &#8212; what&#8217;s next?!</p>
<p>Anyway, as far as work goes, MacWorld was pretty good this year.  I met a number of interesting folks in the Microsoft Blogger Lounge and answered a ton of questions over at the main Microsoft booth.  Apparently I&#8217;m a &#8220;<a href="http://www.brandonhays.com/podfitness/userblog/?p=12">docile developer</a>&#8221; &#8212; I&#8217;m glad that Brandon liked the personal tech support.  On Tuesday evening I got to chat with Jacqui Cheng of <a href="http://arstechnica.com/journals/apple.ars">Ars Technica</a> at the Microsoft Press Party.  Apparently Jade had wandered off to someother event so I didn&#8217;t get to experience the full snark effect, but Jacqui and her friend Herschell (sp?) were quite pleasant to talk to.  I&#8217;ve been following a few threads on the Ars Macintosh forum, where a few commenters insist on dragging the MacBU through the mud as often as they can (and you can see a few of their comments on some of my other posts here).  Somehow Jacqui and I got to talking about the perceptions you get as you scan people&#8217;s comments.  So many of them are negative that it is easy to get kinda down about blogging.  I mean, who really wants to share some personal insights only to get cursed out all the time?  It&#8217;s a little odd, but most of the positive comments I get are sent to me in private email, whereas the people who have some issue or complaint about me or the MacBU usually post public comments (dare I call them diatribes, at times?).  Jacqui said she&#8217;s noted the same thing with her columns on Ars.  I wonder why that is?  Are there any human behaviorists reading this who care to hazard a guess?</p>
<p>On Wednesday at the Blogger Lounge I spent a long time talking with <a href="http://www.outofcheese.org/">Eric Albert</a>, a former Microsoft employee (although not with the MacBU) who&#8217;s now been involved with development on both the Intel Macs and the new <a href="http://www.apple.com/iphone/">iPhone</a>.  We chatted about the development of Xcode, including his perceptions of how easily 3rd party (ie, non-Apple) developers would be able to switch their codebases to it (hint &#8212; not as easily as Steve Jobs said!) and the various experiences we&#8217;ve both had with various chip and system architectures.  I asked him about working on the iPhone, and aside from the normal &#8220;I can&#8217;t tell you that&#8221; sorts of stuff, it sounds pretty cool.  He had some funny anecdotes to share about the secrecy involved, including having to stand guard around the demo model with his coat flared out for privacy at 5 or 6am the morning of the keynote as someone else ran through the demo to ensure it worked!  (<a href="http://www.flickr.com/photos/48048143@N00/355930792/">Here</a> you can see Eric chatting with <a href="http://blogs.msdn.com/nadyne/">Nadyne</a> and myself.  I&#8217;m in the center wearing black with the yellow Office logo all over my shirt, Nadyne the red-haired woman to my left, and Eric is facing us wearing a grey shirt.)</p>
<p>Oh, and I&#8217;d like to welcome all you <a href="http://www.macintouch.com/">Macintouch</a> and <a href="http://www.macfixit.com/">MacFixIt</a> readers &#8212; it seems that my post on VB is making the rounds again.  I guess that will be my 15 minutes of Internet fame, doled out in little bits a month or so at a time.  Some of the comments I&#8217;ve seen recently about Office 2008 wonder why we didn&#8217;t demo much in the booth at MacWorld.  I&#8217;m not in any position to answer that, but I do know there&#8217;s a lot more to Office 2008 than you&#8217;ve seen.  There are a bunch of <a href="http://blog.seattlepi.nwsource.com/microsoft/archives/110403.asp">screenshots</a> that show visuals for features we haven&#8217;t demoed publicly yet.  By the way, all those rows of buttons in the Elements Gallery collapse &#8212; they are only expanded while you are working in the EG, so it doesn&#8217;t take up so much screen real estate on a permanent basis.  I&#8217;ve asked some folks in MacBU to get a screenshot of the default state so you can see the difference.  In the meantime, <a href="http://www.appleinsider.com/article.php?id=2383">AppleInsider</a> has a few rough camera shots from our booth demo that show the EG in a collapsed state.</p>
<p>So beyond all that, what&#8217;s up?  Lots more coding at work.  My manager and I got a large new chunk of code to link on Friday that we&#8217;ve been working on for several weeks, and that removes the block on the Excel converter work I&#8217;m scheduled to do next.  I&#8217;ve got some work to do on integrating Cocoa nibs into our localization process, so that we can apply localization transforms to them automatically, rather than doing them by hand each time the English nib changes, which in turn lets us autogenerate a complete localized build every day (something that we haven&#8217;t had working for the internal builds yet this cycle, yeesh!)</p>
<p>Ok, I&#8217;d better go to sleep so I can get something done tomorrow.  If you hear me whistling on the bus tomorrow morning, say hi!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F14%2Fwhistle-while-you-work%2F&#038;seed_title=Whistle+while+you+work/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Live from MacWorld, it&#8217;s Tuesday afternoon!</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F09%2Flive-from-macworld-its-tuesday-afternoon%2F&#038;seed_title=Live+from+MacWorld%2C+it%26%238217%3Bs+Tuesday+afternoon%21</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F09%2Flive-from-macworld-its-tuesday-afternoon%2F&#038;seed_title=Live+from+MacWorld%2C+it%26%238217%3Bs+Tuesday+afternoon%21#comments</comments>
		<pubDate>Wed, 10 Jan 2007 00:23:57 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/01/09/live-from-macworld-its-tuesday-afternoon/</guid>
		<description><![CDATA[I&#8217;m sitting in the Microsoft Blogger Lounge on the MacWorld show floor as I write this. I missed the SteveNote today as I was somewhere around 35,000 feet over Oregon as the show was going on, but it sounds like &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F09%2Flive-from-macworld-its-tuesday-afternoon%2F&#038;seed_title=Live+from+MacWorld%2C+it%26%238217%3Bs+Tuesday+afternoon%21">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sitting in the Microsoft Blogger Lounge on the MacWorld show floor as I write this.  I missed the SteveNote today as I was somewhere around 35,000 feet over Oregon as the show was going on, but it sounds like some neat gadgets were revealed today.  Too bad I don&#8217;t use Cingular as my cell phone provider&#8230; <img src='http://www.schwieb.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, the big news for MacBU today was our announcement of <a href="http://www.microsoft.com/presspass/press/2007/jan07/01-09MacworldPR.mspx">Mac Office 2008</a>.  (Finally, I can stop calling it &#8220;the next version of Office&#8221; all the time!)  </p>
<p>There&#8217;s a couple of screenshots over on <a href="http://arstechnica.com/journals/apple.ars/2007/1/9/6541">Ars Technica</a> (along with some good old Charles Jade commentary &#8212; I see he had fun tlaking to Geoff) and <a href="http://www.macfixit.com/article.php?story=20070109113952172">MacFixit</a> has a short writeup as well.</p>
<p>Please let us know what you think.  There&#8217;s still more to come; we&#8217;ve got converters coming out in beta in a few months, as well as more information on new Office 2008 features in the months leading up to our release in the 2nd half of this year.  </p>
<p>I spent a little while at the main Microsoft booth today.  One person asked me about VB and another about file converters, but most of the questions were about things that users didn&#8217;t know they could do in Office 2004.  It&#8217;s always nice to be able to show someone how to solve their problem on the spot!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F09%2Flive-from-macworld-its-tuesday-afternoon%2F&#038;seed_title=Live+from+MacWorld%2C+it%26%238217%3Bs+Tuesday+afternoon%21/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Going back to Cali&#8230;</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F01%2Fgoing-back-to-cali%2F&#038;seed_title=Going+back+to+Cali%26%238230%3B</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F01%2Fgoing-back-to-cali%2F&#038;seed_title=Going+back+to+Cali%26%238230%3B#comments</comments>
		<pubDate>Tue, 02 Jan 2007 05:19:05 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2007/01/01/going-back-to-cali/</guid>
		<description><![CDATA[One of the more interesting aspects of working in the MacBU is the fact that our group is split into two main geographic locations &#8212; about half of our group is based in Redmond at Microsoft&#8217;s main campus, and the &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F01%2Fgoing-back-to-cali%2F&#038;seed_title=Going+back+to+Cali%26%238230%3B">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>One of the more interesting aspects of working in the MacBU is the fact that our group is split into two main geographic locations &#8212; about half of our group is based in Redmond at Microsoft&#8217;s <a href="http://www.microsoft.com/college/loc_corpcampus.mspx">main campus</a>, and the rest of the team is based in Mountain View at Microsoft&#8217;s <a href="http://www.microsoft.com/college/loc_silival.mspx">Silicon Valley</a> campus.  Most recurring meetings that involve cross-locational groups of people occur by phone or video-conference, since otherwise whenever we need to get a particular mix of the MacBU together in person (like all the development leads, or whomever), many of them have to travel.  Often the SVC (Silicon Valley Campus) folks travel to Redmond, but this month a meeting I need to attend in person has been set up in California.  For me that would normally mean experiencing the &#8216;joy&#8217; of a 18.5-hour work-day commute to the San Jose airport and back.  (In order to get to the SVC campus for a normal work-day, I have to leave my house at 5:00am to catch a 6:30am flight, and then I get back home around 11:30pm!  Bleargh.)</p>
<p>Not this time!  </p>
<p>Since the meeting is happening during the 2nd week of January, I&#8217;m combining the travel for that meeting with a jaunt over to the <a href="http://www.moscone.com/">Moscone Center</a>.  I&#8217;ll be at the 2007 San Francisco <a href="http://www.macworldexpo.com/">MacWorld Expo</a> on Tuesday and Wednesday January 9-10.  I haven&#8217;t been to a MacWorld in a long time; I think the last one I went to was MacWorld Tokyo in March 2002!  The main reason I&#8217;m going this year (other than to avoid a brutal day of travel!) is to participate in some of the blogger events that Microsoft is sponsoring.  In particular, I&#8217;ll be hanging out at the Microsoft Blogger Lounge (booth #702 in the <a href="http://www.macworldexpo.com/live/images/other/MWSF07_Floor_Plan_South.pdf">South Hall</a>) on Tuesday and Wednesday afternoons from 3:00 to 5:30pm or so, and a little bit at our main booth (#1112).  Depending on what time my plane lands, I might get there a bit earlier on Tuesday.</p>
<p>So, if any of you reading this are planning to be at MacWorld, feel free to drop by with any questions or comments you may have, or <a href="http://members.microsoft.com/careers/search/default.aspx">your resumé</a> if you&#8217;d like.  If you want to be sure I&#8217;m around, you can send me an email from <a href="http://www.schwieb.com/blog/contact-me/">this page</a>.  I believe some of the other MacBU bloggers will be at MacWorld as well, so look for several of us there over the course of the week.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2007%2F01%2F01%2Fgoing-back-to-cali%2F&#038;seed_title=Going+back+to+Cali%26%238230%3B/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update on the ephemeral Office 11.3.1 Update</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F17%2Fupdate-on-the-ephemeral-office-1131-update%2F&#038;seed_title=Update+on+the+ephemeral+Office+11.3.1+Update</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F17%2Fupdate-on-the-ephemeral-office-1131-update%2F&#038;seed_title=Update+on+the+ephemeral+Office+11.3.1+Update#comments</comments>
		<pubDate>Mon, 18 Dec 2006 00:00:37 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/12/17/update-on-the-ephemeral-office-1131-update/</guid>
		<description><![CDATA[I&#8217;ve just put up some more information on Mac Mojo about the Office X and 2004 update that the MacBU released and promptly removed from MacTopia last week. The short version is: there is no urgent need to uninstall the &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F17%2Fupdate-on-the-ephemeral-office-1131-update%2F&#038;seed_title=Update+on+the+ephemeral+Office+11.3.1+Update">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just put up some <a href="http://blogs.msdn.com/macmojo/archive/2006/12/17/now-you-see-it-now-you-don-t.aspx">more information</a> on <a href="http://blogs.msdn.com/macmojo/default.aspx">Mac Mojo</a> about the Office X and 2004 update that the MacBU released and promptly removed from MacTopia last week.  </p>
<p>The short version is: there is no urgent need to uninstall the patch because we&#8217;ll release a new patch by the end of this week to fix everything up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F17%2Fupdate-on-the-ephemeral-office-1131-update%2F&#038;seed_title=Update+on+the+ephemeral+Office+11.3.1+Update/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick post on some quick math</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F07%2Fquick-post-on-some-quick-math%2F&#038;seed_title=Quick+post+on+some+quick+math</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F07%2Fquick-post-on-some-quick-math%2F&#038;seed_title=Quick+post+on+some+quick+math#comments</comments>
		<pubDate>Thu, 07 Dec 2006 23:29:57 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/12/07/quick-post-on-some-quick-math/</guid>
		<description><![CDATA[Rick Schaut just put up some back-of-the-envelope calculations on how long it would take to write new file format converters from scratch.]]></description>
			<content:encoded><![CDATA[<p>Rick Schaut just put up some <a href="http://blogs.msdn.com/rick_schaut/archive/2006/12/07/open-xml-converters-for-mac-office.aspx">back-of-the-envelope</a> calculations on how long it would take to write new file format converters from scratch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F07%2Fquick-post-on-some-quick-math%2F&#038;seed_title=Quick+post+on+some+quick+math/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Conversion factors</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F05%2Fconversion-factors%2F&#038;seed_title=Conversion+factors</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F05%2Fconversion-factors%2F&#038;seed_title=Conversion+factors#comments</comments>
		<pubDate>Wed, 06 Dec 2006 05:58:30 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/12/05/conversion-factors/</guid>
		<description><![CDATA[A few articles appeared online today, talking about the new Windows Office 2007 file format and converters. They asked a very reasonable question &#8212; &#8220;Where are the converters for Mac Office?&#8221; but wrapped the question in some conjecture and a &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F05%2Fconversion-factors%2F&#038;seed_title=Conversion+factors">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A few articles appeared online today, talking about the new Windows Office 2007 file format and converters. They asked a very reasonable question &#8212; &#8220;Where are the converters for Mac Office?&#8221; but wrapped the question in some conjecture and a little bit of hyperbole.  Sheridan put up a <a href="http://blogs.msdn.com/macmojo/archive/2006/12/05/converters-coming-free-and-fairly-fast.aspx">post over on Mac Mojo</a> to give a little explanation and make a concrete affirmation that the MacBU will release converters for the new formats.  So far there have been several dozen comments in reply, many of them expressing some strong emotions ranging from anger and frustration to incredulity and disbelief that we either can, want to, or will actually develop these converters.</p>
<p>Much of the sentiment expressed seems to stem from a number of theories, such as</p>
<ol>
<li>We have been sitting around doing nothing
<li>We have not talked to the Win Office team
<li>File format converters are trivial
</ol>
<p>None of these three beliefs are true, however.  Let&#8217;s look at each one in turn.</p>
<p><b>1. The MacBU has been doing nothing</b><br />
The reality is we have been working very hard on underlying technologies we need in order to make these converters.  The new file formats are XML-based.  On the Windows side, there is a very complete and modern XML parser built into the operating system that the WinOffice team uses.  That parser does not exist on the Mac (there are certainly a variety of XML parsers out there, including libxml, but the only one that ships on Mac OS by default is libxml and it doesn&#8217;t support everything that the new file formats need.)  So, we have spent significant development resources on porting MSXML over to the Mac and testing it to ensure it works.  You may recall from <a href="http://www.schwieb.com/blog/2006/06/01/whither-xcode/">earlier posts</a> of mine that porting code from Windows to the Mac is not a trivial task, even when the code doesn&#8217;t use any OS-specific APIs.  The compilers used by each team are very different, even the behavior of some of the standard runtimes is different, and of course we have to test in great detail any new code and especially any changes we make to it.  Beyond that, there are changes that needed to be made to Office 2004 applications to support the upcoming converters, and we&#8217;ve been busy doing that.  I spent much of the month of October going through Excel 2004&#8242;s load and save code path to make it aware of the new converter (I even went so far as to create a fake converter that pretends to handle the conversion commands so that I could actually test Excel 2004&#8242;s new behavior as much as possible in advance.)</p>
<p><b>2. The MacBU never talks to the WinOffice team</b><br />
Various people in MacBU talk to their counterparts on the WinOffice team pretty frequently.  For example, I coordinated the work I did on Excel 2004 with a developer on the WinOffice side who did similar work for WinXL 2003.  Our Program Managers have had weekly and monthly meetings with WinOffice folks for the past few years.  We&#8217;ve known the general plan for the scope of work we&#8217;ve needed to do for some time, and have been doing that work.  Knowing what to do, however, doesn&#8217;t make the work happen instantaneously.</p>
<p><b>3. File format converters are trivial</b><br />
Let&#8217;s step back and look at the problem again.  Office 2007 for Windows and Office 12 for the Mac both need to support the old and the new formats.  They need to support the formats natively &#8212; it would be pretty silly to invoke an external converter for the new native file format, right?  Ergo, the code for the new file format should be written directly into these newest versions of the suites.  Ok, so now you&#8217;ve got that code in place, and you need to create a converter for the older versions of the suites.  What do you do?  Should you rewrite or duplicate that file code in the converter project, and risk the converter and the actual product getting out of sync?  Or do you take that existing code and repackage it as a converter itself?  Well, the WinOffice team decided to do the latter, so their converters for Office 2003 are based off of a significant portion of the Office 2007 code.  They shipped their final converter versions after shipping the actual suite that natively implements the formats.  </p>
<p>That&#8217;s exactly what we&#8217;ve chosen to do as well.  Rather than duplicating code and having to test each set, we are writing it once and repackaging the appropriate parts as the converters.  The problem for us is that we&#8217;re following along behind WinOffice in a temporal sense.  Because we&#8217;re shipping after WinOffice, there is a very real time delta where WinOffice users will be creating files with the new formats and the Mac converters won&#8217;t be ready.  We&#8217;ve been porting the WinOffice code over to MacOffice in stages for many months now, but since they just shipped their final bits in November, we&#8217;ve only had those final pieces of source code available for less than a month.  We&#8217;re porting it over as fast as we can.  However, as I mentioned earlier, porting code across is not a trivial task.  Our apps have diverged from WinOffice over the last 10 years, so we have to deal with internal implementation conflicts as well as compiler pecularities, OS differences, etc.  Some parts even need to be rewritten &#8212; anything that deals with graphics on WinOffice probably uses the GDI+ library on Windows, which doesn&#8217;t exist on the Mac.  So, we need to take time to rewrite it to use CoreGraphics, etc.  Those changes need to be tested thoroughly!  The converters even need that new graphics code, so that they can convert Office 12-style pictures with all the fancy new effects into some format recognizible by Office 2004.</p>
<p>So, you can see that our Office 2004 converters are very dependent on the progress we make on Office 12 itself.  We can&#8217;t just drop work on Office 12, as some have suggested, to get the converters ready faster, because the converters use a core subset of the actual Office 12 code.  The overall Office 12 project, however, is not yet ready for beta use.  The WinOffice file format code changed in some pretty significant ways between their Beta 2 and their final shipping bits, and we had to wait for them to ship so we could get those bits.  Our code (not necessarily the file format code, but the whole of Office 12) has some rough edges still; they need to get smoothed out before we can ship.</p>
<p>None of these issues are intractable, insolvable, or something that has surprised us.  These issues are just part of the facts of developing and porting code cross-platform (especially code that was not written with cross-platform specifically in mind.)  We&#8217;re making great progress, and can even see the light at the end of the tunnel (and it&#8217;s not a train!)  As Sheridan said in a followup comment to her post, back in November we weren&#8217;t ready to talk about dates because we didn&#8217;t have the latest WinOffice code and couldn&#8217;t predict our progress based on missing data.  Now that we&#8217;ve had the code for a few weeks and have made significant forward progress, I can actually tell you about where we are and when you can expect to see some of the fruits of our labors.</p>
<p>We plan to release a beta of the converters in late March or early April (roughly 3 1/2 months from now), and final versions of them after Office 12 ships.  It is imperative that we do proper testing on even the beta converters, because a buggy converter that destroys your files would probably be even worse than not shipping a converter at all.  I&#8217;m sorry that the wait is so frustrating to you.  Many people in the MacBU are working very hard to make the converters available as soon as possible.  I&#8217;m even helping out by putting on my old Excel developer hat (the one I put on the shelf back in 2001!) and  doing some of the Excel port myself.  The converters are coming, just not immediately.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F12%2F05%2Fconversion-factors%2F&#038;seed_title=Conversion+factors/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Messenger 6 for Mac is now available</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F27%2Fmessenger-6-for-mac-is-now-available%2F&#038;seed_title=Messenger+6+for+Mac+is+now+available</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F27%2Fmessenger-6-for-mac-is-now-available%2F&#038;seed_title=Messenger+6+for+Mac+is+now+available#comments</comments>
		<pubDate>Wed, 27 Sep 2006 19:04:10 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/09/27/messenger-6-for-mac-is-now-available/</guid>
		<description><![CDATA[Messenger 6 is now available on MacTopia. I&#8217;m sure many of you will be unhappy to find out that it still does not have A/V support. However, Mary Starman has put up a blog post on Mac Mojo that outlines &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F27%2Fmessenger-6-for-mac-is-now-available%2F&#038;seed_title=Messenger+6+for+Mac+is+now+available">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Messenger 6 is now available on <a href="http://www.microsoft.com/mac/downloads.aspx?pid=download&#038;location=/mac/download/misc/messenger60_download.xml">MacTopia</a>.  I&#8217;m sure many of you will be unhappy to find out that it still does not have A/V support.  However, Mary Starman has put up a <a href="http://blogs.msdn.com/macmojo/archive/2006/09/27/774149.aspx">blog post</a> on Mac Mojo that outlines the scheduling and integration issues we&#8217;re working with.</p>
<p>The good news is that I can now publicly say that we <em>are</em> adding A/V support to a future release of Messenger for the Mac.  I&#8217;ve personally seen the code and heard some of the status reports.  I can&#8217;t speak about any sort of version or date of availability, but it is coming!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F27%2Fmessenger-6-for-mac-is-now-available%2F&#038;seed_title=Messenger+6+for+Mac+is+now+available/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Building, building, building&#8230;</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F26%2Fbuilding-building-building%2F&#038;seed_title=Building%2C+building%2C+building%26%238230%3B</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F26%2Fbuilding-building-building%2F&#038;seed_title=Building%2C+building%2C+building%26%238230%3B#comments</comments>
		<pubDate>Tue, 26 Sep 2006 20:53:29 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/09/26/building-building-building/</guid>
		<description><![CDATA[Things have been busy at work! I&#8217;m hip-deep in the converter work for Excel 2004 so that it can read and write the new Open XML file formats from Win Office 2007 and Mac Office 12. During several build cycles &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F26%2Fbuilding-building-building%2F&#038;seed_title=Building%2C+building%2C+building%26%238230%3B">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Things have been busy at work!  I&#8217;m hip-deep in the converter work for Excel 2004 so that it can read and write the new Open XML file formats from Win Office 2007 and Mac Office 12.  During several build cycles yesterday and today I finished and posted <a href="http://blogs.msdn.com/macmojo/archive/2006/09/26/772762.aspx">my first real entry</a> on <a href="http://blogs.msdn.com/macmojo">Mac Mojo</a>.  </p>
<p>The converters are coming along but we&#8217;ve got a long way yet to go.  Stay tuned here or to <a href="http://www.microsoft.com/mac">MacTopia</a> for announcements on their availability.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F09%2F26%2Fbuilding-building-building%2F&#038;seed_title=Building%2C+building%2C+building%26%238230%3B/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vegas Mojo</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F31%2Fvegas-mojo%2F&#038;seed_title=Vegas+Mojo</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F31%2Fvegas-mojo%2F&#038;seed_title=Vegas+Mojo#comments</comments>
		<pubDate>Fri, 01 Sep 2006 06:06:45 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/08/31/vegas-mojo/</guid>
		<description><![CDATA[Well, I&#8217;m a little late to the announcement party. Can I claim I&#8217;m just being fashionable? On Tuesday, the MacBU started up its new team blog called Mac Mojo! I&#8217;ll be one of the contributers there, along with a bunch &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F31%2Fvegas-mojo%2F&#038;seed_title=Vegas+Mojo">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, I&#8217;m a little late to the announcement party.  Can I claim I&#8217;m just being fashionable?  On Tuesday, the MacBU started up its new team blog called <a href="http://blogs.msdn.com/macmojo/">Mac Mojo</a>!  I&#8217;ll be one of the contributers there, along with a bunch of other current MacBU bloggers and several new folks.  I see that Brad, Sheridan, and Joe have already dipped their toes into the blog ocean.  So, come read us over there!</p>
<p>As for myself, I&#8217;ve been pretty quiet here.  I&#8217;ve received a lot of great feedback on VB and made sure it got into the proper inboxes at work.  Thank you all for your comments and feedback.  Alas, there&#8217;s no way I can ever reply to every comment, but I have read them all.  I plan to post some snippets of VB-to-AppleScript conversions so that people can get a rough idea of what you can do with AS. </p>
<p>That will have to wait a few days, however, because I&#8217;ve got a ton of stuff to do at work.  I just got back this evening from a week&#8217;s vacation with my family in Las Vegas.  Nope, no gambling, but we did spend a lot of time at the pool (my son now loves waterslides, provided I hold him as we slide down) and wandering through several of the mega-hotels on the Strip.  My son had a very hard time believing that this was *all* Las Vegas.  I think he thought the hotel itself was named LV, and that everywhere outside it was some other magical new place (Bellagio fountains, MGM lions, Mandalay Bay shark reef, Mirage volcano and dolphins, Caesars Palace Forum, it just went on and on&#8230;!)</p>
<p>So, after having been gone for a week, I came back to 772 new messages in my work inbox (110 per day!) that I need to cull through.  Wheee!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F31%2Fvegas-mojo%2F&#038;seed_title=Vegas+Mojo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>So tell us what you want, what you really really want!</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F10%2Fso-tell-us-what-you-want-what-you-really-really-want%2F&#038;seed_title=So+tell+us+what+you+want%2C+what+you+really+really+want%21</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F10%2Fso-tell-us-what-you-want-what-you-really-really-want%2F&#038;seed_title=So+tell+us+what+you+want%2C+what+you+really+really+want%21#comments</comments>
		<pubDate>Fri, 11 Aug 2006 05:00:44 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/08/10/so-tell-us-what-you-want-what-you-really-really-want/</guid>
		<description><![CDATA[Thank you all for your comments about VB. There&#8217;s certainly a lot of passion, frustration, and outright anger being expressed here. For those of you with kind words, I greatly appreciate them. We&#8217;re reading every comment, no matter what the &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F10%2Fso-tell-us-what-you-want-what-you-really-really-want%2F&#038;seed_title=So+tell+us+what+you+want%2C+what+you+really+really+want%21">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Thank you all for your comments about VB.  There&#8217;s certainly a lot of passion, frustration, and outright anger being expressed here.  For those of you with kind words, I greatly appreciate them.  We&#8217;re reading every comment, no matter what the sentiment.  I&#8217;ve personally seen MacBU leads reading your comments on my blog.</p>
<p>I had intended to post yesterday and answer some of the specific questions raised, but I&#8217;ve once again caught a nasty fever and cold from my preschool-aged son and didn&#8217;t get to it.  Sigh&#8230;  In lieu of that, I&#8217;ve got a couple of more general notes to make on yesterday&#8217;s post.</p>
<p>In my note on resources, I used a slightly extreme example of our headcount.  I did have an opening for quite a long time, but our overall delta between having someone leave our group and hiring a replacement is probably something like 2 months or so.  I have no idea how that compares to any sort of Microsoft- or industry-wide average.  The complicating matter is that departures and candidates tend to happen in clumps, so we often end up with some abnormally long or short gaps in staffing instead of a more normal distribution.  We&#8217;ve actually had a lot of folks very interested in working at MacBU (i.e, us having open headcount really is not due to a lack of people interested in working here).  We hire world-class developers and they don&#8217;t simply grow on trees.  For those readers offering a smackdown on the intelligence or capabilities of our developers, nothing could be further from the truth.  We&#8217;ve even had some developers leave MacBU to go to other renowned Macintosh companies and then come back to MacBU because the grass really wasn&#8217;t greener elsewhere.  We&#8217;re all proud to be here!</p>
<p>As for keeping VBA in PPC to run under Rosetta, that could be done but just vastly overcomplicates an already very complicated piece of source code.  Rosetta only works on a per-process basis, so we&#8217;d be moving code and data out of the single app process into two processes.  There are many many points in which apps call into VB and VB calls back into the apps (not to mention VB&#8217;s dependence on other lower-level shared library code that is now Mach-based) and marshalling all those calls and data cross-process is a heck of a lot of work.  It gets even more complicated when you have more than one Office app running at a time, because then the new VB process would have to keep its internal state separate for each client app!</p>
<p>People have also offered the solution of porting the current Win Office 200x VBA over to the Mac.  That&#8217;s pretty much a no-go too, because 1) it still has the assembly ABI problems, 2) makes calls to the Win32 APIs that don&#8217;t exist on the Mac (well, without WINE or any of the variants) and 3) relies on features in the Windows OS that don&#8217;t exist at all on the Mac.  We&#8217;d have to port over large swaths of the Win OS and that might take even longer than writing VBA over from scratch.  </p>
<p>VBA just wasn&#8217;t designed to be portable across architectures.  The Mac and Windows implementations are very different, even though the actual language is the same.  If I could go back in time about 15 years and tell the original designers to do it differently I would, but I can&#8217;t.  Thanks to the heroic efforts of a few developers (Shuyi and Ying) we managed to Carbonize VB for OS X, but the move to Intel is gargantuan.  We considered many, many alternatives.  Each one turned out to be no simpler and as much or more work as the plain port would be.</p>
<p>None of this is work that we <strong>can&#8217;t</strong> do, it&#8217;s just work that would take away from everything else that we do want to do and would delay shipping Office 12.  As I said on Tuesday, delaying Office 12 has other ramifications for cross-platform compatibility such as dealing with the new Office XML file formats and related features (like the larger cell grid in Excel, for example.)  </p>
<p>Back to the idea of AppleScript&#8230; Folks who want to develop scripting modules on the Mac should check out <a href="http://developer.apple.com/documentation/AppleScript/Conceptual/StudioBuildingApps/index.html">AppleScript Studio</a>.  You can create GUI applications with it, and it is absolutely free from Apple.  Also, a few bloggers have been wondering about scripting Office with Python and other languages.  Yep, you can do that with the AppleEvent bridges available for those languages.  We actually test Messenger in-house with a large suite of Python scripts that drive it through OS X&#8217;s Accessibility AppleEvent suite.  We also drive Xcode via its AppleScript dictionary with Python scripts that send AppleEvents.</p>
<p>So, what now?  Well, it is pretty obvious to me that the MacBU needs to provide some guidance for folks who currently use VB.  The best way for us to provide the information that will help you the most is for you to give us some first.  I encourage you to provide feedback to us &#8212; lots and lots of feedback!  There are several ways you can do this:</p>
<ul>
<li>Select Help/Send Feedback on &#8216;OfficeApp&#8217; from within your favorite Office 2004 application
<li>Click on <a href="http://www.microsoft.com/mac/default.aspx?pid=feedback">this link</a> and fill out the web form
<li>Post a comment on any of the MacBU blogs
<li>Send me email from <a href="http://www.schwieb.com/blog/contact-me/">this link</a> and I&#8217;ll forward it into MacBU
</ul>
<p>Please give us specifics in your feedback.  Just saying &#8220;I want VB!&#8221; or ranting about how we&#8217;re evil doesn&#8217;t provide us anything we can take action on.  We&#8217;d like to know what you do with VB, what the goal was, did you share the macro with anyone, was it specifically cross-platform or just something on the Mac, what app was the macro in, and things like that.  So yes, do tell us what you really want.  Please keep it civil, it&#8217;s no fun reading through pages of insults.  Your feedback directly helps us figure out the best ways we can help you.</p>
<p>[Aug 11, 9:26am -- minor edit to correct the description of how we drive Messenger with Python]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F10%2Fso-tell-us-what-you-want-what-you-really-really-want%2F&#038;seed_title=So+tell+us+what+you+want%2C+what+you+really+really+want%21/feed/</wfw:commentRss>
		<slash:comments>110</slash:comments>
		</item>
		<item>
		<title>Saying goodbye to Visual Basic</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F08%2Fsaying-goodbye-to-visual-basic%2F&#038;seed_title=Saying+goodbye+to+Visual+Basic</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F08%2Fsaying-goodbye-to-visual-basic%2F&#038;seed_title=Saying+goodbye+to+Visual+Basic#comments</comments>
		<pubDate>Wed, 09 Aug 2006 06:27:47 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/08/08/saying-goodbye-to-visual-basic/</guid>
		<description><![CDATA[Well, its been less than two days since the MacBU announced that Visual Basic is being removed from the next version of Mac Office. The news has created quite a firestorm on many Mac forums (I&#8217;ve been scanning MacNN, Ars &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F08%2Fsaying-goodbye-to-visual-basic%2F&#038;seed_title=Saying+goodbye+to+Visual+Basic">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, its been less than two days since the MacBU announced that Visual Basic is being removed from the next version of Mac Office.  The news has created quite a firestorm on many Mac forums (I&#8217;ve been scanning <a href="http://www.macnn.com/articles/06/08/07/ms.kills.virtualpc/">MacNN</a>, <a href="http://episteme.arstechnica.com/eve/forums/a/tpc/f/8300945231/m/710002440831">Ars Technica</a>, and a few others) and I received some very strongly expressed opinions about it in comments on yesterday&#8217;s post.  I&#8217;d like to take some time to express my own views and experiences on the removal of Mac VB.</p>
<p>I should clear up one misconception about how the VB removal affects existing macros that has been making the blog and comment rounds.  The removal of VB means that existing macros in Office documents will be round-tripped across file open and save, but you will not be able to edit them and you will not be able to run them on the Mac.  Even previously compiled macros will not execute, because they have been compiled to PowerPC code that conforms to an older binary interface.</p>
<p>I want to say right up front that the MacBU is very aware of the pain this decision will cause for users, consultants, and enterprise organizations.  I&#8217;ve personally seen the phrases &#8220;apoplectic with rage&#8221; and &#8220;absolutely livid&#8221; in two emails that crossed my inbox.  Some people made comments on my post yesterday that were expressly clear about how this decision would drive them to one of the free Open Office variants instead of buying Mac Office 12, and other posts in other forums made similar statements.  I&#8217;m sure some people will indeed decide that lack of VB is an absolute deal-breaker and they will plan to use other software.  I&#8217;m truly sorry if that is the case for you.</p>
<p>The MacBU did not make this decision lightly.  I personally spent several weeks digging into the VB source code to identify and plan what work would have to be done to move it to Xcode and make it universal, and I had several long discussions with our product planning folks to help our group leadership weigh the costs of doing the VB port vs. the costs of not doing it.  I&#8217;ll try to lead you through some of the analysis here.</p>
<p>From my perspective, Mac Office has two primary driving requirements:  </p>
<ol>
<li>it must be as Mac-like as possible, use Mac features, and take advantage of the Mac operating system, and
<li>it must be as compatible with Win Office as possible, and share as many features and commonalities as it can.
</ol>
<p>(We&#8217;ve got other requirements and product visions, but as I see it, they really act to refine these two basic needs.)  As you may imagine, these two goals are many times not perfectly aligned.  In the worst cases, they may actually be diametrically opposed, and we have to wrestle with making the best decision we can, knowing full well that whichever way we go it will help some users and hurt others.  This VB decision is one where we&#8217;re truly caught between the Mac rock and the Win Office hard place.</p>
<p>VB on the Mac exists for cross-platform compatibility.  There is no other software on the Mac that also uses VB, so it doesn&#8217;t help Mac Office integrate with other workflows based purely on Apple solutions.  Thus, any work we do on VB only serves to satisfy one of the two major requirements.  Doing that work then means we have less developer time to continue to improve Mac Office&#8217;s use of Apple-specific technologies (or tools, such as Xcode.) </p>
<p>Let me describe for you some of the technical challenges that would be involved were we to try to port VB to Xcode and to the Intel platform.  For those of you reading who are not developers, bear with me for a little bit.  Hopefully you&#8217;ll at least get a sense of the scope of work even if you don&#8217;t quite follow the nitty-gritty details.</p>
<p>VB on the Mac is really three parts:  VBE (the editor), VBA (the execution engine) and Forms (the buildable windows and controls you edit in VBE and see when running a macro.)</p>
<p>VBE is pretty standard C++ code.  However, the code is generally very old &#8212; it was originally designed and written several years before I came to Microsoft in 1996.  VBE contains the top-level parser that converts the text of a macro into a series of mostly machine-independent opcodes (kind of like Java bytecodes, but not exactly the same).  Thus you can&#8217;t just hook an external text editor up to VBA, because of the upper-level dependency.  The VBE code actually isn&#8217;t too hard to port to Intel, but it is tricky to port to Xcode/GCC because of the age of the code.  As I mentioned in an earlier post, GCC is very picky about code meeting the current standards and the VBE code most certainly does not.  That&#8217;s not to say the code is &#8216;bad,&#8217; it was just designed and written long before current modern C++ standards. </p>
<p>VBA, on the other hand, is incredibly difficult to port to Intel.  The execution engine basically runs through the previously mentioned opcodes and, well, executes them.  The hard part is that &#8216;executing&#8217; them doesn&#8217;t mean interpreting them, it means converting one or more at a time into a block of assembly generated at runtime that looks and behaves like a regular function that can be called directly by other normally compiled code.  This is in essense &#8216;self-creating&#8217; code, and VBA is constantly flushing the CPU&#8217;s code cache in order to mark these chunks of data as executable.  VBA&#8217;s generated code must adhere to the Application Binary Interface of the host platform (historically PowerPC and the Code Fragment Manager).  This means register allocation, stack alignment, parameter passing locations, etc.  VBA is basically a compiler that emits code at runtime.  It does so by running a large state machine that tracks PPC register usage, stack location, mapping between PPC registers and VB variables, etc and then concatenates large blocks of pre-generated assembly together.  VBA subsequently tweaks the assembly bit-field by bit-field to do things like assign registers to each opcode, set branch addresses, and create transition vectors for all function calls.  The templates are very PPC- and CFM-specific and the state machine is designed for architectures that allocate static stack frames and pass parameters by register, unlike Intel which has dynamic stack frames (you can push and pop data to/from the stack any time you want) and parameters are passed on the stack.  So, for us to port this to Intel we&#8217;d have to rewrite the entire state machine and create brand-new templates of IA-32 code.  That&#8217;s basically writing a rudimentary compiler almost from scratch (we&#8217;d at least have the initial parsing and machine-independent opcodes already done.)  Again, this is all a design that long predates me or most of my peers in Mac Office, and is code that we inherited when we created the MacBU (i.e, none of us wrote it in the first place.)  There&#8217;s nothing inherently bad about the code, it was just designed for the constraints of the day and that design simply doesn&#8217;t lend itself to being architecture-independent.</p>
<p>Some folks might ask why not just port the Win Office VBA over to the Mac?  Well, VBA circa Win Office 97 (which is the closest Windows VBA to what we have on the Mac) doesn&#8217;t implement their execution engine this way at all.  Instead, they have tens of thousands of lines of IA-32 assembly that directly implements all of the opcodes.  That assembly does so according to the Windows Intel ABI, which is different from the Mac ABI in several important ways (the specifics of which are described <a href="http://developer.apple.com/documentation/DeveloperTools/Conceptual/LowLevelABI/Articles/IA32.html">here</a>.) Also, the assembly is in MASM format which is close to but not the same as NASM as supported by GCC.  So, we&#8217;d have to edit the source to be compilable by GCC, and scrub it line-by-line to find and adjust the parts that aren&#8217;t compliant with the Apple Intel ABI.  We&#8217;d also end up with two completely different implementations of VBA (PPC state machine and Intel straight assembly) that we&#8217;d have to maintain and keep in sync.  That would be horribly bug-prone.  </p>
<p>Lastly, we have Forms.  Forms is also C++, but is backed by several thousand lines of gnarly custom assembly.  This assembly &#8216;allows&#8217; the C++ code to swap object virtual function tables and individual member function pointers between objects on the fly, to essentially do very fast object morphing.  To do so, the assembly has to have specific knowledge of aspects of the C++ compiler (vtable layout, implementation of ptrs-to-member-functions, etc) and has to work in lockstep with the compiler.  I spent almost two weeks massaging this code to try to make it compatible with just the PPC Mach ABI, which is only slightly different from the PPC CFM ABI.  Even after all that work, I still didn&#8217;t get it completely right and internal builds had some really bad stability problems.  We also don&#8217;t even have the Win Office 97 Forms source code, so I was not able to compare our code to how it was implemented for Windows.</p>
<p>I just noted that the assembly has to work hand-in-hand with the normal C/C++ compiler.  That wasnâ€™t too much of a problem when we were using CodeWarrior, as the C++ compiler only changed in small ways every few years or so.  With Xcode and GCC, my understanding is that Apple has to merge in all the changes that external developers commit to GCC, and we run the risk of GCC changing much more frequently.  That might not be a problem in reality, but the risk is non-zero and we have to take that into account.</p>
<p>One final problem is that all of this custom assembly is currently PPC 32-bit, and even the corresponding Windows assembly is Intel 32-bit.  If we ever want to make a 64-bit native version of Office, any work we might do to solve all of the above problems would have to be done all over again.</p>
<p>So, in short:  VB has lots of code and assembly that specifically assumes it is running on a PPC with the Code Fragment Manager, and to re-do it for Intel would involve writing a rudimentary compiler and relying on private compiler implementations that are subject to change at any time. </p>
<p>Whew, that&#8217;s a lot of technical stuff.  I hope it provides some idea of the scope of work we were facing.  We estimated that it would take roughly two years to of development time to move it all over to Xcode and to Intel.  That would mean two more years before the next version of Mac Office made its way to consumers.  In the meantime, Leopard will ship and Mac Office 2004 would still be running in Rosetta.  Win Office 2007 and the new XML file formats will be ever more common.  All Mac Office users would still be stuck with the old formats, unable to share in or use the great expansion of capabilities these new file formats bring.  During that time, we&#8217;d also not be adding any other items our users have asked for.  </p>
<p>Beyond that, if we were to port VB over to Intel in those two years, what you&#8217;d end up with is VB for Mac just as it is today.  It still wouldn&#8217;t be feature-comparable to VB in Win Office, and the object model in Mac Office would still not be the same as the one in Win Office.  That means that your macros would still be restricted to the same set of compatible items as you have today.  Over the last 10 years, the Win Office programming model has become very different from that of Mac Office.  We&#8217;ve tried to keep the object models in sync for the features that we have ported from Win Office, but we haven&#8217;t ported everything. </p>
<p>So, given that the developer cost was huge, that the consumer cost due to the delay while we did the work was quite large, and that the end result would be no better than what we have today, we made the very difficult decision to invest our time and resources in the other pillar of Mac Office, namely taking advantage of Apple tools and technologies to be more &#8216;Mac-like&#8217;.  We&#8217;ve continued to improve the AppleScriptability of our apps (many many bug fixes post-Office-2004) and as announced are looking into adding some Automator actions to the suite.  We&#8217;ve completed the rest of our transition to Xcode and to Intel and are forging ahead with the rest of the product.</p>
<p>I think a common question might be &#8216;if the cost is so huge, why doesn&#8217;t Microsoft just devote more resources to the problem?  They&#8217;ve got a ton of cash, right?&#8217;  Well, the real question is &#8216;what resources do you throw at the problem?&#8217;  We&#8217;ve been working very hard to hire a bunch of developers, but it has turned out to be quite difficult to fill our existing open headcount positions.  As an example, I&#8217;ve had an open position on my own team for 9 of the last 12 months (it took 8 months to fill the slot when one developer moved from my team to another one in MacBU, and only last week did we hire someone to fill the slot vacated recently when another developer moved to a different team at Microsoft.)  The question of how Microsoft allocates developer headcount and funding to MacBU is a separate topic of its own which hopefully I or some other MacBU blogger will tackle later.  In any case, there&#8217;s no point in adding new headcount to the MacBU when we haven&#8217;t yet filled the positions we already have open.</p>
<p>I know that explaining all this doesn&#8217;t make the fact of VB&#8217;s death any easier for those users who currently depend on it.  As I said at the beginning, we in the MacBU really are aware of the difficulties you face.  Our product planners, program managers, developers, and testers are working to alleviate some of that pain.  Many people have only a few simple macros they use, and I do want to point out that those macros will translate very easily into AppleScript.  Even large macros can be rewritten in AppleScript, although that takes some time and definitely some knowledge scripting on the Mac.  The AppleScript object model and the old VB object model for our apps are roughly equivalent, so apart from the syntactical differences, if you could do it in VB you can do it in AppleScript.  While I can&#8217;t comment on any more specific feature work for Office 12, I&#8217;m sure we will be working closely with enterprise customers to help them address their concerns.  We&#8217;ll be saying more about our scripting plans as we get closer to the product release for Office 12.</p>
<p>For those of you contemplating a switch to Open Office, I don&#8217;t know if Open Office has any support for VB macros or other OLE Automation technologies so I don&#8217;t know if you&#8217;ll be any better off from a cross-platform perspective.  You probably can&#8217;t be worse-off except that Open Office certainly doesn&#8217;t support any of the Mac OS scripting technologies that Mac Office does support and in which we will continue to invest, nor will it (at least for a while yet) support the new XML-based file formats.  If you do switch, we&#8217;ll miss you.</p>
<p>Many people have viewed this announcement by MacBU as a sign that we are out to screw the Mac community, or that we&#8217;re just looking for an exit strategy.  We&#8217;re not.  Most empatically, <strong>we&#8217;re not</strong>.  This decision was agonizing.  My manager even said he felt &#8216;sick about the impact on those who really rely on xplat [cross-platform] VB support, particularly in Excel where we see it the most.&#8217;  In my post yesterday, I said that I wasn&#8217;t so sad to see VB go.  I said that from the perspective of a developer who&#8217;s worked to maintain the code for many years.  However, there&#8217;s nothing good about removing a feature that many people rely on, except that it frees up resources for us to invest more heavily in other important areas.  Due to the age of the code, VB has been a very large drain on our resources for a long time with relatively little return.  A couple of months ago I wrote that I hoped my blog would help people <a href="http://www.schwieb.com/blog/2006/06/04/trusting-the-macbu/">trust the MacBU</a> a little more.  I can see that many of you are very mad about this decision; I do hope that my post today helps you see some of the issues behind the press release.  We had to make a hard decision one way or the other, and this is how it turned out.</p>
<p>(Please read my <a href="http://schwieb.com/blog/2006/08/10/so-tell-us-what-you-want-what-you-really-really-want/">next post</a> and consider giving us specific actionable feedback.  Thanks!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F08%2Fsaying-goodbye-to-visual-basic%2F&#038;seed_title=Saying+goodbye+to+Visual+Basic/feed/</wfw:commentRss>
		<slash:comments>219</slash:comments>
		</item>
		<item>
		<title>News of the Day</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F07%2Fnews-of-the-day%2F&#038;seed_title=News+of+the+Day</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F07%2Fnews-of-the-day%2F&#038;seed_title=News+of+the+Day#comments</comments>
		<pubDate>Tue, 08 Aug 2006 05:01:02 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/08/07/news-of-the-day/</guid>
		<description><![CDATA[You&#8217;ve no doubt seen the news from WWDC today. Yes, it is true &#8212; the MacBU is halting development on Virtual PC and is discontinuing support for Visual Basic in the next version of Mac Office. I&#8217;m sad to see &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F07%2Fnews-of-the-day%2F&#038;seed_title=News+of+the+Day">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve no doubt seen the <a href="http://news.com.com/Microsoft+shelves+its+Virtual+PC+for+Mac/2100-1012_3-6102930.html">news</a> from WWDC today.  Yes, it is true &#8212; the MacBU is halting development on Virtual PC and is discontinuing support for Visual Basic in the next version of Mac Office.</p>
<p>I&#8217;m sad to see VPC go.  It was an amazing product to bring into the MacBU back in 2003 (I&#8217;d used it myself since version 2 when it was made by Connectix) and it still has features that <a href="http://www.parallels.com/en/products/desktop/">Parallels</a> doesn&#8217;t have.  The biggest thing Parallels lacks is the ability to script the main app and the virtual machines.  VPC let you query VM state, launch programs inside it, define shared drive mappings, and all sorts of other great stuff via AppleScript.  You can&#8217;t do that yet in Parallels.  Hopefully they&#8217;ll add scriptability someday soon.  Them or <a href="http://vmware.rsc02.net/servlet/campaignrespondent?_ID_=vmwi.1756">VMWare</a>!</p>
<p>I&#8217;m not so sad to see VB go.  That code has been a major headache to maintain over the years.  Lots of people are bemoaning the sudden lack of cross-platform scriptability, but to be bluntly honest, VB for Mac Office hasn&#8217;t been remotely compatible with VB for Win Office for years.  Even back in Office 98 the VB IDE for the Mac had several major features cut compared to Win Office (watchpoints, etc) and the object models for the two platforms have diverged wildly in the 10 years that have gone by.  I&#8217;d like to blog more about VB, but not tonight.  It&#8217;s a long and sordid tale.</p>
<p>One positive thing that seems to have been lost in the rabid chatter about VPC and VB is that Mac Office has finally made the complete switch to Xcode!  The last major checkin happened on Friday afternoon, and all of MacBU is finally switched over.  Yay!  That only took a month and a half longer than I guessed, back in early June&#8230;   We&#8217;re still not ready to ship yet; we&#8217;ve been working on lots more than just the recompilation and those changes are not yet complete.  I myself am hip-deep in the new file-format-converter compatibility work that we&#8217;ve announced.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F08%2F07%2Fnews-of-the-day%2F&#038;seed_title=News+of+the+Day/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Bugs stink!  Yeah Yeah!</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F20%2Fbugs-stink-yeah-yeah%2F&#038;seed_title=Bugs+stink%21++Yeah+Yeah%21</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F20%2Fbugs-stink-yeah-yeah%2F&#038;seed_title=Bugs+stink%21++Yeah+Yeah%21#comments</comments>
		<pubDate>Wed, 21 Jun 2006 06:26:53 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/06/20/bugs-stink-yeah-yeah/</guid>
		<description><![CDATA[(my apologies in advance to the J. Geils Band) Pierre Igot writes what I must politely describe as an impassioned discourse about my description of pseudo-localization, multi-lingual bundles in OS X, and MacBU testing. Pierre makes some good points, totally &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F20%2Fbugs-stink-yeah-yeah%2F&#038;seed_title=Bugs+stink%21++Yeah+Yeah%21">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>(my apologies in advance to the <a href="http://en.wikipedia.org/wiki/The_J._Geils_Band">J. Geils Band</a>)</p>
<p>Pierre Igot writes what I must politely describe as an <a href="http://www.betalogue.com/2006/06/20/erik-schwiebert-on-localized-versions-of-microsoft-office-for-mac-os-x/">impassioned discourse</a> about my <a href="http://www.schwieb.com/blog/2006/06/07/nihonngo-wo-hanasemasu-ka/">description of pseudo-localization</a>, <a href="http://developer.apple.com/documentation/MacOSX/Conceptual/BPInternational/index.html">multi-lingual bundles</a> in OS X, and MacBU testing.  Pierre makes some good points, totally misses the idea of pseudo-loc in another, and generally castigates the MacBU for failing to fix a particular bug that is very important in French typography.  He then invited me to comment.</p>
<p>Let me begin by saying what I am not.  I am not the lead developer for Word, and I am not intimately familier with every bug that is entered against our products.  I am also not a native French speaker, nor am I familiar with the rules of French typography.  (In fact, my peers in high school often told me &#8220;Tu parles français comme une vache espagnole,&#8221; which, if my hazy memories of 1991 are correct, means &#8220;You speak French like a Spanish cow.&#8221;)</p>
<p>I do, however, know quite a lot about bundles in Carbon and Cocoa, how multi-lingual bundled apps should behave, and the benefits to users of software that takes advantage of them.  Apple did indeed make them available to developers using Carbon in 2001 or so.  Pierre is correct in saying that currently shipping Mac Office apps do not use them.  (Well, Messenger does use them, and may have been the first major Microsoft app to do so.)  I became a lead for Mac Office in June of 2002, well into the Office 2004 project and was not a part of the initial schedule planning that, for whatever reason, did not include moving Office to a bundled architecture.  As the lead for localization, I understand and sympathize with users for whom this creates frustration.  The reality is that for every user calling for a multi-lingual version of Office, there are at least two users who don&#8217;t care about that at all and want us to be working on something else.  We can&#8217;t please everybody, unfortunately.  As I said in the comments at the end of my localization post, I cannot comment on our plans for this aspect of the next version of Office, but please rest assured that I do understand and hear your request, Pierre.</p>
<p>Because I am not well-versed in French typography (or any real typography for that matter) I can only trust that Pierre&#8217;s assessment of the importance of the non-breaking space in French documents is indeed high.  Assuming that is the case, then yes, this must be a very aggravating bug for anyone who uses Word 2004 to lay out text in French.  I&#8217;m quite sorry, Pierre, that you have been so frustrated by this issue.  I wish we had caught the bug and fixed it before shipping.  Sadly, we did not.  </p>
<p>Pierre then takes our non-use of bundles and conflates that with the existence of the non-breaking-space bug:</p>
<blockquote><p>
The fact that the language of the user interface in Office applications does not change depending on the user&#8217;s preferred language in Mac OS X is annoying enough. But that&#8217;s not the worst of it. The worst of it is that Microsoft&#8217;s process for fixing bugs is completely screwed. And there is no better example of this than the bug with non-breaking spaces and PostScript fonts in Word 2004.
</p></blockquote>
<p>He also implies that our use of pseudo-localization should have caught this &#8216;elementary&#8217; bug:</p>
<blockquote><p>
The fact that Microsoft did not catch that bug in Word 2004 before they released the product is a clear illustration of how flawed their testing processes are. Whatever benefits this &#8220;œpseudo-localization&#8221; technique described by Erik Schwiebert provides, it is clearly not good enough to catch even such elementary bugs.
</p></blockquote>
<p>Here I must correct Pierre&#8217;s faulty assumption and say that the bug is not in any way connected to either of the other two items.  Multi-lingual bundles are all about providing resources to the app, such as strings, dialogs, menus, windows, etc.  Pseudo-localization is a method we use to test the localization <strong>of those resources</strong> and the code that uses them.  It is intended to help find visual glitches, missed translations, improperly displayed dialogs, and similar items, and it does a pretty good job at optimizing our efforts for those issues.  It is not designed nor intended to help with finding or fixing bugs related to the actual behavior of the application.  Pseudo-localization in no way replaces good old-fashioned usage of the applications to uncover code defects.</p>
<p>In fact, the bug that Pierre is so frustrated with occurs in all languages that Word ships in &#8212; the faulty code is in no way connected to any localization.  I can repro it in the English build.  That doesn&#8217;t mean that our entire testing process is flawed, however.  <strong>Every</strong> large software endeavor results in a product that has bugs.  Microsoft is no better or worse than anyone else in this regard.  Seen any OS X software updates lately?  <img src='http://www.schwieb.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Now, the fact that the bug is unrelated to our localized UI testing doesn&#8217;t address the issue that the bug is there, and is bad.  Pierre blogged about the bug way back in <a href="http://www.betalogue.com/2004/09/03/word-2004-non-breaking-space-with-postscript-font-causes-word-to-revert-to-times-new-roman/">September 2004</a>.  Unfortunately, the MacBU (and the rest of Microsoft, to my knowledge) has never had a good method for customers to report bugs to us.  We&#8217;ve had the (now defunct) MSWish email address, and we do have the new <a href="http://www.microsoft.com/mac/default.aspx?pid=feedback">direct feedback link</a> on Mactopia, but we don&#8217;t have anything like Apple&#8217;s <a href="http://bugreporter.apple.com">BugReporter</a> tool.  Interestingly enough Nathan Herring, another MacBU employee, just blogged about <a href="http://technosloth.blogspot.com/2006/06/piercing-veil.html">this specific issue</a> and has some links you may want to read.  </p>
<p>But let me continue with Pierre&#8217;s post.  He finds it unjustifiable that we have not fixed this bug in the almost two years that have gone by:</p>
<blockquote><p>
Now what excuses does Erik Schwiebert have for this sorry state of affairs? I might find it acceptable (barely) that Microsoft is not able to catch such bugs in the hectic schedule that leads to the release of the initial versions of the product. But how can they justify not fixing the bugs in the next two years, even though the bugs are so obvious?
</p></blockquote>
<p>says it can be done on schedule:</p>
<blockquote><p>
it is perfectly possible to release multilingual software on schedule that automatically supports all of Mac OS X&#8217;s supported language without requiring the user to buy separate versions for each language and download separate updates for each language.
</p></blockquote>
<p>and casts shame on us:</p>
<blockquote><p>
And for all this, once more, all I can say is: Shame on Microsoft, and shame on the MacBU. They have absolutely no excuses here.
</p></blockquote>
<p>Ouch.  That hurts.  Me personally, as well as all of our hard-working employees.  It&#8217;s a good thing I have a relatively thick skin.</p>
<p>I don&#8217;t think there is anything I can say that will appease Pierre.  And I don&#8217;t mean that there&#8217;s something I know that I&#8217;m not allowed to post; I just don&#8217;t think that any insight I provide into MacBU&#8217;s bug process will soothe his wrath.  However, I will try to shed some light on our processes because I think folks are interested in them anyway.  I&#8217;m sure many people will individually disagree with many of of the decisions we make and the factors we weigh, but that&#8217;s part of the openness of blogging.  Feel free to respond with your thoughts and comments &#8212; you may provide some insight that we&#8217;ve missed in all these years.</p>
<p>First of all, we do work darn hard to fix bugs in our products.  Really darn hard.  But, we&#8217;re not perfect.  No developer team is.  Not MacBU, not Microsoft, not Adobe, not Apple.  Security defects?  We&#8217;ve all got them.  Software updates?  Yep, them too.  For OS X, we have 10.0.4, 10.1.5, 10.2.8, 10.3.9, 10.4.6 and counting.  For Office we have 11.1.1, 11.2.4, etc.  Updates are good, it means that we&#8217;re all working to make our products better, to fix the bugs and reduce the crashes.</p>
<p>However, not all bugs are fixed in dot-releases of products.  Some bugs that we find are really obscure and don&#8217;t cause any real harm.  For example, perhaps the File/Open menu item is grayed out when you hold down Cmd-Shift-Ctrl-Option and triple-click on the menu-bar.  Not too many people will see that, and if they do, no real harm done.  We can spend our engineering time and resources better elsewhere.</p>
<p>Some bugs are easier to hit, but fixing them may have a high risk of regression and may cause another bug that is even worse.  One example might be a performance bug in Excel&#8217;s recalc engine.  We could fix it and make things faster, but currently the code calculates correctly (albeit slowly) and any fix might totally break all function dependency analysis.  It is sad but safer to leave things alone.</p>
<p>Other bugs are deemed worth fixing for a future release, but not worth back-porting to the current release.  Every code change we make has to be tested around to make sure no regressions are caused, and that takes away from other work we could be doing.  It may be more effective for us to take a bug that was reported against Office X and just fix it in Office 2004.  And occasionally, some bugs are misclassified or accidentally forgotten.  After all, we&#8217;re only human.</p>
<p>Here&#8217;s an example of an engineering decision.  If you boot Mac RDC on a PowerBook and connect to a Windows server, try turning on Num Lock (the keyboard light should be on).  Type something on the number pad in Excel.  You get numbers, right?  Good.  Now, Cmd-tab back to the Finder and turn off num-lock.  Cmd-Tab back to RDC.  Type something on the number pad again.  What, you still get numbers?  Yes indeed you do.  Geez, the MacBU really should have fixed that bug, right?  We&#8217;d love to have fixed it, except that the bug is actually in the OS.  The Carbon Event manager does not give you accurate information about the Num Lock state when you query for modifier key state after app activation and deactivation.  I filed that bug with Apple in May 2002 against OS X 10.1.4, and they still haven&#8217;t fixed it.  I wish they had, but I&#8217;m sure there is some reason (hardware?  software complexity? who knows&#8230;) that the change is more expensive for them to make than to allow the bug to continue to exist.  That decision is completely up to them, and I respect that.</p>
<p>In our move to Xcode, we&#8217;ve reported over 100 bugs to Apple.  They&#8217;ve fixed the majority of them, and have postponed several to some later release.  Some of the bugs they&#8217;ve postponed have been real bummers, but they&#8217;ve made the engineering justification to delay the fix and again, I respect that.  After all, we have to do the same thing with regard to Office bugs too.</p>
<p>Second, the ability to meet a schedule or not has nothing to do with the ability to ship a bundled multi-lingual product.  That is essentially a feature, and does not come for free with Carbon apps.  (Yes, that is one aspect where Cocoa wins hands-down &#8212; it is impossible to create a monolithic Cocoa app.  At the very least your app must be bundled, whether or not it has more than one locale for resources.)  Perhaps Pierre would have preferred we have chosen a different schedule, moved Office to Mach and multi-lingual bundles, and shipped a product called Office 2005.  We hit our internal schedule for Office 2004 with the features we planned for it.  </p>
<p>Now, I&#8217;m not saying that any of this is an excuse.  We&#8217;ve made lots of conscious decisions over the years about many many issues.  Some of them, everybody likes.  Some of them, everybody hates.  Most of them are liked and hated simultaneously, and the overlap between the sets of people experiencing the two emotions is rarely the same from topic to topic.  </p>
<p>The sad thing about this particular bug is that it falls into the category of &#8216;oops.&#8217;  The code was wrong in a very small way (an exception was made for the breaking-space character and accidentally forgotten for the non-breaking space character.)  We actually found this bug in-house just a little while after Office 2004 shipped, and fixed it internally for the next major release of Office in August 2004.  We even noted that it was important in the French market.  Somehow, though, it was never flagged as a bug that should be migrated back to Office 2004.  The tester for that area of Word (who found and opened the bug) left MacBU to go back to graduate school during that summer, and I think we probably just missed this one in the transition.  A simple human mistake.  Shameful?  I personally don&#8217;t think so.  Unfortunate and frustrating, I&#8217;ll certainly agree to that, but not shameful.</p>
<p>I&#8217;ve asked our Word team to take another look at this bug.  I make no promises, but maybe we can get it fixed sooner than in the next major release of Mac Office.  After all, the Windows team did that for a blogger <a href="http://nick.typepad.com/blog/2006/06/thanks_microsof.html">recently.</a></p>
<p>So Pierre, we are listening.  I think pseudo-localization has a greater value than you place on it, but for a different purpose.  If you are ever in the Seattle area, please look us up.  I&#8217;d be happy to take you out for coffee and a chat, and see if we can address some of your dissatisfaction with us.  In the meantime, I&#8217;ll stand up proud and accept no shame, for I believe we work hard and produce a good product.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F20%2Fbugs-stink-yeah-yeah%2F&#038;seed_title=Bugs+stink%21++Yeah+Yeah%21/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Changes we have heard on high</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fchanges-we-have-heard-on-high%2F&#038;seed_title=Changes+we+have+heard+on+high</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fchanges-we-have-heard-on-high%2F&#038;seed_title=Changes+we+have+heard+on+high#comments</comments>
		<pubDate>Fri, 16 Jun 2006 06:00:04 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/06/15/changes-we-have-heard-on-high/</guid>
		<description><![CDATA[So BillG is handing over some more of the reins. Good for him! The B&#038;MGF does some really good work in this world. There&#8217;s been lots of commentary today on what this change means for Bill and for Microsoft. My &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fchanges-we-have-heard-on-high%2F&#038;seed_title=Changes+we+have+heard+on+high">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So BillG is <a href="http://www.microsoft.com/presspass/press/2006/jun06/06-15CorpNewsPR.mspx">handing over</a> some more of the reins.  Good for him!  The <a href="http://www.gatesfoundation.org/default.htm">B&#038;MGF</a> does some really good work in this world.</p>
<p>There&#8217;s been lots of commentary today on what this change means for Bill and for Microsoft.  My question for you is what does it mean for the MacBU?</p>
<p>My answer?  Probably not much at all.  Bill and Steve have both been very aware of our products and plans, and both have been very supportive of our group.  I don&#8217;t anticipate that changing.  As for the effect of the actual shuffling of which top exec does what, in my 10 years at Microsoft I&#8217;ve experienced exactly <strong>one</strong> re-org that had any real effect on my day-to-day work, and that was when the MacBU moved from the Desktop Applications Division to whatever the Home and Entertainment Division was called back in 200x.  (And you can see what a large effect it had, given that I can&#8217;t even remember the year it occurred.)</p>
<p>The MacBU, like many smaller groups at Microsoft, runs pretty autonomously.  That&#8217;s one of the things I love about our group &#8212; we&#8217;re really like a small company, just one that has a lot of support from a much larger organization.</p>
<p>Perhaps that&#8217;s a topic to blog on.  Another day, however; I need sleep!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fchanges-we-have-heard-on-high%2F&#038;seed_title=Changes+we+have+heard+on+high/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dogmatic Chocolate</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fdogmatic-chocolate%2F&#038;seed_title=Dogmatic+Chocolate</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fdogmatic-chocolate%2F&#038;seed_title=Dogmatic+Chocolate#comments</comments>
		<pubDate>Fri, 16 Jun 2006 05:46:35 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/2006/06/15/dogmatic-chocolate/</guid>
		<description><![CDATA[The other day, I mentioned my surprise at the lack of commentary on my Cocoa post. I was fully expecting to hear at least one person say that I totally didn&#8217;t get it, that Carbon was a dead technology, yadda &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fdogmatic-chocolate%2F&#038;seed_title=Dogmatic+Chocolate">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The other day, I mentioned <a href="http://www.schwieb.com/blog/2006/06/13/back-to-work/">my surprise</a> at the lack of commentary on my <a href="http://www.schwieb.com/blog/2006/06/11/rebuilding-a-house/">Cocoa</a> post.  I was fully expecting to hear at least one person say that I totally didn&#8217;t get it, that Carbon was a dead technology, yadda yadda yadda.  Well, one person preferred the analogy that my house was destined to be eaten by termites and thus it was better to rebuild it now than later.</p>
<p>I&#8217;m curious to know what the termites are in that analogy.</p>
<p>I saw a very interesting <a href="http://daringfireball.net/2006/06/and_oranges">essay</a> on Daring Fireball today.  I particularly like this quote from John Gruber:</p>
<blockquote><p>&#8230;in some cases, some people seem unwilling to concede that any criteria other than the ones they themselves deem important actually matter, or even exist.</p></blockquote>
<p>Now, I&#8217;m not pointing any fingers at any specific people.  I do believe that the choice to use Cocoa or Carbon is, loosely adapting from John, not a binary choice.  It isn&#8217;t either-or, and neither option is always better than the other.  I firmly believe that there are very valid reasons to use each &#8216;package&#8217;.  Saying that &#8216;your house is going to collapse; you can&#8217;t avoid it, so go rebuild it now&#8217; does two things.</p>
<ol>
<li>It denigrates all the work Apple has put into Carbon and continues to put into it.</li>
<li>It ignores all the reasons I listed in my post for why we have heretofore continued to use Carbon.</li>
</ol>
<p>Now, I don&#8217;t want to get too dogmatic in defense of Carbon, myself.  After all, as I said in my first post and in the preceding paragraph, I believe there are good reasons to choose either platform.  That&#8217;s why I&#8217;m curious to know why some folks are so dead-set on the idea that Cocoa is a magic bullet that can fix anything wrong with an app written in Carbon.</p>
<p>Let me know; we&#8217;ll chat about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F15%2Fdogmatic-chocolate%2F&#038;seed_title=Dogmatic+Chocolate/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Back to work</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F13%2Fback-to-work%2F&#038;seed_title=Back+to+work</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F13%2Fback-to-work%2F&#038;seed_title=Back+to+work#comments</comments>
		<pubDate>Wed, 14 Jun 2006 06:08:00 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/archives/22</guid>
		<description><![CDATA[I went back to work for the first time today in over 5 weeks. I updated my G5 and my Intel iMac to the latest Office source code and did a full developer debug build. Well, actually, my iMac did &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F13%2Fback-to-work%2F&#038;seed_title=Back+to+work">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I went back to work for the first time today in over 5 weeks.  I updated my G5 and my Intel iMac to the latest Office source code and did a full developer debug build.  Well, actually, my iMac did a full build; the G5 was about 60% done when I left.  It&#8217;s amazing how much faster the iMac is.</p>
<p>Anyway, I was very surprised to see how little commentary my Cocoa post generated.  I&#8217;ve been playing with some simple stats plugins, and it looks like lots of people have subscribed to my RSS feed (114 feed hits in the last 90 minutes) but I received almost three times as much feedback on my Messenger post.  Interesting.  (Oh, and jhawk28, I spent lots of time in Middlebury!)</p>
<p>Rick Schaut showed me his entry on <a href="http://blogs.msdn.com/rick_schaut/archive/2006/06/13/629904.aspx">bad code</a> today before he posted it.  I saw the ambiguity in about 5 seconds, but that&#8217;s because it was very carefully contrived.  The best part of his particular example is that neither CodeWarrior nor Xcode give any sort of warning that you&#8217;ve written Dumb Code.  While this example may have been easy to spot, it gets very tricky for devs to hold a mental map of more than a few dozen lines of code in their head.  Spotting similar errors when one function is perhaps inlined in a header and another function that interacts with it is at the bottom of a 3000 line source file somewhere else is nigh impossible without actually running the code under the debugger.</p>
<p>Now that I&#8217;m back at work, I expect to be blogging less frequently.  Please do keep the comments coming; I like to hear from you.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F13%2Fback-to-work%2F&#038;seed_title=Back+to+work/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>(Re)building a house</title>
		<link>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F11%2Frebuilding-a-house%2F&#038;seed_title=%28Re%29building+a+house</link>
		<comments>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F11%2Frebuilding-a-house%2F&#038;seed_title=%28Re%29building+a+house#comments</comments>
		<pubDate>Mon, 12 Jun 2006 06:34:37 +0000</pubDate>
		<dc:creator>Schwieb</dc:creator>
				<category><![CDATA[All]]></category>
		<category><![CDATA[MacBU]]></category>

		<guid isPermaLink="false">http://www.schwieb.com/blog/archives/21</guid>
		<description><![CDATA[I grew up in a big old farmhouse in the middle of Vermont. You know the kind, with the knotty wide pine flooring that creaks everywhere, huge drafty hallways, shutters that rattle in the wind, old furnace in the basement &#8230; <a href="http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F11%2Frebuilding-a-house%2F&#038;seed_title=%28Re%29building+a+house">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I grew up in a big old farmhouse in the <a href="http://terraserver.microsoft.com/image.aspx?T=1&#038;S=10&#038;Z=18&#038;X=3257&#038;Y=24260&#038;W=2">middle of Vermont</a>.  You know the kind, with the knotty wide pine flooring that creaks everywhere, huge drafty hallways, shutters that rattle in the wind, old furnace in the basement that sounds like an airplane taking off&#8230;  My parents bought it in the mid-1970s and promptly had to replace the well that went dry and add insulation to the walls because the winter wind blew straight through it.</p>
<p>The house itself was built in the 1870s and was originally just a summer home, so the kitchen that had been added on in the 1960s was always a little small and never had enough cupboard space for all of my mom&#8217;s pots and pans.  Last year, my parents announced that they were going to do a massive kitchen remodel and replace the kitchen with a real &#8216;farmhouse&#8217; kitchen with lots of space for cooking, playing with grandchildren, hanging up wet snow-clothes after sledding, etc.  Their plans are pretty impressive &#8212; practically doubling the size of the kitchen and adding a mudroom, putting in a fireplace and space for large comfy chairs, a full basement underneath, new fancy refrigerator, and other cool stuff.  I just hope it is as warm and friendly a place as the old kitchen where we used to sit around the woodstove with a cup of hot cocoa after an afternoon of sledding down the hill onto the pond across the road.</p>
<p>Ahh, hot cocoa.  What, you didn&#8217;t guess where I was going with this?  Yep, Cocoa.  That Cocoa, the one that everybody keeps saying that if only the MacBU would rewrite Office in Cocoa, that it would be magically bugfree, run at warp speed, and somehow still maintain compatibility with legacy fileformats and code ported from Win Office.  Well, let&#8217;s see, shall we?  I&#8217;m going to touch that third rail of Mac Development.  Let&#8217;s see if I live&#8230;</p>
<p>If you will pardon me for a little bit, I&#8217;m going to draw an analogy to my parent&#8217;s house here.  I grant you up front that this will not be a perfect analogy, and I fully expect to see comments explaining how badly I miss someone&#8217;s point, but you know, no analogy is ever perfect and I&#8217;m not a very experienced Cocoa developer (whereas I&#8217;ve been writing CarbonLib and InterfaceLib code since 1992).</p>
<p>I see the idea of ditching the Office source code and starting over in Cocoa as similar to the idea of taking an existing house and tearing it down with the intent of rebuilding it precisely as it was before, just with modern tools, components, and technologies.  You want to replicate all the character of the house &#8212; the creaky boards you love, the rattly shutters, the custom-sized windowpanes, etc.  You can do it, but it will cost you a lot of time and money, and you&#8217;ll probably exasperate both yourself and your contractor trying to duplicate something that was hand-built long ago.  </p>
<p>Or, you can keep your house generally the way it is, and you can take that time and money to add on a neat new addition (perhaps that indoor Olympic swimming pool you always wanted) or rebuild just one part of it in a new style with more capabilities than it had before.  You live with the existing creaky floors (you never wanted to change them anyway), maybe you rip out the old furnace and put in a new one with new efficient radiators, but you concentrate your efforts on the new part of the house.  You make it extend the old house, yet, because you had a great architect, make it fit in flawlessly so that you don&#8217;t feel a sense of shock or dissonance when you walk into that new space.</p>
<p>Moving Office to Cocoa would be kind of like that first scenerio.  I&#8217;m not saying it can&#8217;t be done, or that we&#8217;ll never do it; we just haven&#8217;t done it yet (as of Office 2004) because the time and effort required are huge, and we can get a lot more out of extending the current source code.  If we spent 2+ years rewriting Office in Cocoa, and came out of it with exactly the same feature set as before, how many people would buy it?  Be honest now, would you really <a href="http://www.microsoft.com/mac/products/office2004/howtobuy/howtobuy.aspx?pid=howtobuy">spend $239</a> to upgrade Office Standard to a version that was no different than before, from a feature and useability perspective?  Oh, you say we could add features at the same time?  Yep, we could, but that would take us even longer, and the computer industry moves faster than that!</p>
<p>Rewriting in Cocoa is also no guarantee of achieving bug-free software.  There is no such thing.  Your contractor will always make a mistake, or your architect will, or the electrician.  (When my parents added on a room to the house in 1991, the architect miscalculated the height of the roof by 3 inches, and the builders only figured it out when they went to start putting up the trusses!  They had to take the wall frames down and redo them.)  Your really smart <a href="http://www.ganssle.com/articles/Measuringbugs.htm">developer</a> will also always have bugs.  We all try really hard to ship clean code, but any system that grows beyond a few thousand lines of code will have flaws.  Even Apple has been constantly updating Cocoa in every system release.  </p>
<p>Another thing for the MacBU to consider is code compatibility with its own older software and with Win Office.  We can&#8217;t literally ditch <strong>all</strong> of our code because we have to be able to read and write legacy files.  Moving to Cocoa doesn&#8217;t help with that.  And, Windows doesn&#8217;t <strong>have</strong> Objective-C, so any code we write in Obj-C cannot be ported to them, and all the code they write in C/C++ is harder to port to us.  Plus, our apps still share a lot of common code, so any gratuitous differences in the code make it harder to port features from Win Office to Mac Office (like the new XML file formats.)  It&#8217;s already hard enough when they write code in C#!</p>
<p>Beyond that, there is always some code you just don&#8217;t want to touch (the creaky floorboards and rattly shutters).  That might be things like Excel&#8217;s recalc engine or Word&#8217;s text layout engine.  Both are incredibly complex and it is easy to introduce subtle flaws that make the apps almost worthless.  Consider the ramifications if Excel miscalculates some spreadsheet for a large Swiss bank.  Think they won&#8217;t blame Microsoft?  Or if Word suddenly doesn&#8217;t lay text out the same on OS X 10.5.2 as it does on 10.4.6 because of a change to the Cocoa text engine?</p>
<p>Now, having said all that, don&#8217;t get me wrong &#8212; Cocoa is a great thing.  Our internal infrastructure team has written tons of tools in Cocoa.  Just ask <a href="http://davidweiss.blogspot.com/">David Weiss</a>.  Cocoa is really good for setting up a UI and hooking controls and behavior together, and then letting you write the backend.  It&#8217;s also cool because you can easily subclass all sorts of OS objects and behavior.  That&#8217;s a pain to do in Carbon where everything is a C interface and you have to write all the glue yourself.</p>
<p>We have lots of plans for Cocoa for upcoming work (no, I won&#8217;t tell you when, where, or how &#8212; yet) and lots of areas where it makes total sense for us to use Cocoa.  In fact, some areas it would be downright stupid of us to do some new features in Carbon.  The point of this post is to hopefully help you see why moving to Cocoa is not a slam dunk simple decision.  We&#8217;re well aware of both the great advantages and great disadvantages of Cocoa and of Carbon, and are making educated engineering decisions on which to use where.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.schwieb.com/feeder/?FeederAction=clicked&#038;feed=Articles+%28RSS2%29&#038;seed=http%3A%2F%2Fwww.schwieb.com%2Fblog%2F2006%2F06%2F11%2Frebuilding-a-house%2F&#038;seed_title=%28Re%29building+a+house/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

