Monday, May 12, 2008
Monday, March 31, 2008
Why OOXML stinks
I believe the OOXML standard has nothing to do with "Interoperability". It has more to do with not loosing clients who ask for a document standard to save their info with. They will then go to the heads of government and companies and brainwash them into believing they are actually using a standard based format. Technically they are (ISO approved one), but in truth Microsoft isn't holding a standard even with itself.
The same elements in a Word document are not represented by the same tags in a Power Point document. Thus by using OOXML not only do you have to develop a mapping between legacy formats (old Office stuff), but you also have to develop a mapping strategy between content in the same format (XML). Take for example the following text "The cow jumped over the moon". I made a text document and a presentation out of that string. One copy in Open Office using ODF and one with Office 2007 using OOXML. (I have removed the style tags for simplicity)
The text in the Writer (Open Office Word equivalent) shows up like this:
<text:p text:style-name="Standard">
The
<text:span text:style-name="T1">cow</text:span>
<text:span text:style-name="T3">jumped over the</text:span>
<text:span text:style-name="T2" />
moon
</text:p>
The same text in a bullet slide in Impress (Open Office Power Point equivalent) shows up like this:
<text:p text:style-name="P1">
<text:span text:style-name="T1">The</text:span>
<text:span text:style-name="T2">cow</text:span>
<text:span text:style-name="T3">jumped over the</text:span>
<text:span text:style-name="T4" />
<text:span text:style-name="T5">moon</text:span>
</text:p>
Pretty similar if you ask me. I even embedded the text as a simple text overlay in the slide (not as bulleted text). The entry looks something like:
<draw:object xlink:href="./Object 1" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad" />
And going to look into the ./Object 1 data we have:
<text:p text:style-name="Standard">
The
<text:span text:style-name="T1">cow</text:span>
<text:span text:style-name="T3">jumped over the</text:span>
<text:span text:style-name="T2" />
moon
</text:p>
Gosh!!! Just like in Writer! Must have been because its embedded.
Now lets try it out with Office 2007. The text in Word:
- <w:p w:rsidR="008A5B24" w:rsidRDefault="008A5B24" w:rsidP="008A5B24">
- <w:pPr>
<w:pStyle w:val="NormalWeb" />
<w:spacing w:after="0" />
</w:pPr>
- <w:r>
<w:t xml:space="preserve">The</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:b />
<w:bCs />
</w:rPr>
<w:t xml:space="preserve">cow</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:b />
<w:bCs />
<w:color w:val="FF0000" />
</w:rPr>
<w:t>jumped over the</w:t>
</w:r>
- <w:r>
- <w:rPr>
<w:color w:val="FF0000" />
</w:rPr>
<w:t xml:space="preserve"></w:t>
</w:r>
- <w:r>
<w:t>moon</w:t>
</w:r>
</w:p>
Argghhhhh!!!! Now the same in Power Point:
<a:p>
- <a:r>
<a:rPr lang="es-ES" dirty="0" err="1" smtClean="0" />
<a:t>The</a:t>
</a:r>
- <a:r>
<a:rPr lang="es-ES" dirty="0" smtClean="0" />
<a:t />
</a:r>
- <a:r>
<a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0" />
<a:t>cow</a:t>
</a:r>
- <a:r>
<a:rPr lang="es-ES" b="1" dirty="0" smtClean="0" />
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>jumped</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>over</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>the</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
<a:rPr lang="es-ES" dirty="0" err="1" smtClean="0" />
<a:t>moon</a:t>
</a:r>
<a:endParaRPr lang="es-ES" dirty="0" smtClean="0" />
</a:p>
- <a:p>
The embedded text in the Power Point slide is in a:
<p:sp>
- <p:nvSpPr>
<p:cNvPr id="6" name="5 Rectángulo" />
<p:cNvSpPr />
<p:nvPr />
</p:nvSpPr>
- <p:spPr>
- <a:xfrm>
<a:off x="2963835" y="3244334" />
<a:ext cx="3216330" cy="369332" />
</a:xfrm>
section and is described as follows:
<p:txBody>
- <a:bodyPr wrap="none">
<a:spAutoFit />
</a:bodyPr>
<a:lstStyle />
- <a:p>
- <a:r>
<a:rPr lang="es-ES" dirty="0" err="1" smtClean="0" />
<a:t>The</a:t>
</a:r>
- <a:r>
<a:rPr lang="es-ES" dirty="0" smtClean="0" />
<a:t />
</a:r>
- <a:r>
<a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0" />
<a:t>cow</a:t>
</a:r>
- <a:r>
<a:rPr lang="es-ES" b="1" dirty="0" smtClean="0" />
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>jumped</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>over</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>the</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
<a:rPr lang="es-ES" dirty="0" err="1" smtClean="0" />
<a:t>moon</a:t>
</a:r>
<a:endParaRPr lang="es-ES" dirty="0" />
</a:p>
</p:txBody>
This clarifies the issue with OOXML beyond all possible zealotry, camping, shilling or in any way unsupported IT fanaticism. OOXML is sloppy!! Period. While ODF uses the same tag "<text:span>" to enclose text in all applications, OOXML uses two different tags. OOXML also takes more to represent the same. Notice how each word in OOXML has formatting. Not only is the formatting repeated because OOXML in Office 2007 fails to use styles, it is repeated in every word. Even if the word is exactly like the one next to it.
The string "jumped over the" has the same style and is properly represented in ODF:
Note: the words have been marked in red to show relative space usage.
<text:span text:style-name="T3">jumped over the</text:span>
Word gets it right. A rather lengthly format, but all the text enclosed in it:
- <w:r>
- <w:rPr>
<w:b />
<w:bCs />
<w:color w:val="FF0000" />
</w:rPr>
<w:t>jumped over the</w:t>
</w:r>
With a few more characters, but nothing like Power Point which uses format definition tags for each one of the words. Even when all three words have the same exact format!!!!. Think about what that does to your file size. Even though OOXML files are zipped that is some extra overhead that is totally uncalled for. After all OOXML is not zipped when in your PCs RAM. Thus consuming one of the most expensive components on your computer. Take a look a this:
<a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>jumped</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>over</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
- <a:rPr lang="es-ES" b="1" dirty="0" err="1" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t>the</a:t>
</a:r>
- <a:r>
- <a:rPr lang="es-ES" dirty="0" smtClean="0">
- <a:solidFill>
<a:srgbClr val="FF0000" />
</a:solidFill>
</a:rPr>
<a:t />
</a:r>
- <a:r>
This is just ridiculous. So if you have a hard time convincing someone that OOXML is bad, just show them this. If they're management ask them if they're willing to pay up for the added implementation cost of handling formats which are not compatible within the same application set (Office 2007). While ODF only requires you to code once with Office you have to code two different ways of opening files and then some more to "copy paste content" between xml storage.
Posted by
Gerardo Tasistro
at
3:35 PM
1 comments
Friday, March 28, 2008
Application Stopped Responding
Its been a few days already that I've been having the following situation with Windows Vista. I have an application running. I close it, be it through the app's window or right clicking on its icon in the task bar (Skype for example) and up comes an error. Application such and such stopped responding. Well duhhh I closed it! Is it only me or is this common? On top of this a rather time consuming process of figuring out what happen gets fired. Usually returning with a recommendation only in English. Good thing I know it, but what about the rest of the world?
Posted by
Gerardo Tasistro
at
11:30 PM
0
comments
Saturday, March 22, 2008
Forced Silverlight
Wow is Microsoft so desperate to get Silverlight on peoples machines that it even allows this to go on their site?
Please take note of the following:
- Huge "Click to Install"
- Tiny and diffused "No thanks"
- The rest of the site is unclickable
- I took the snapshot, cropped it, saved it (yes my file save dialog is still not working), wrote this and published it and the freaking thing is still there. Can't they figure out how to put a timeout on it?
Posted by
Gerardo Tasistro
at
9:44 AM
0
comments
Friday, March 21, 2008
Vista knows better: .filenames not allowed

Seems Vista knows what is best for me. Filenames with a dot before them are not allowed. At least not from the Windows Explorer. Take a look at the following message. It reads "You must provide a filename". Well isn't .mylyn a filename? How did it end up there in the first place? Surely Eclipse could write it. Surely a virus or spyware could write it, but not me! Hehehe, Vista knows better.
PS: I have just rebooted the computer and guess what! Yup the same broken dialog as I saved the image. Read the blog below.
Posted by
Gerardo Tasistro
at
7:57 AM
0
comments
Buggy dialogs

I don't get it. Is my Vista machine not "Vista Capable"? I bought it in December and have Aero disabled. Why does this happen?
This is NotePad and the file save dialog is broken. I can't browse anything on the drive as I save the file. Best thing I can do is save it somewhere and move it later in the Windows Explorer.
Not only that. Paint also had the same issue as I saved this image to file. I sure hope this issue is addressed in SP1.
PS: Why in this day and age do they keep calling it Service Packs? Wasn't that from the good ol' snail mail days? With today's connectivity we should just get partial updates. Heck we should have gotten partial updates to XP as they moved on to Vista. That would have made Vista a more robust and better tested product.
Posted by
Gerardo Tasistro
at
7:50 AM
0
comments
Sunday, March 16, 2008
Vista supports open source
Honestly this is no lie. My recent experience with Vista is that non Microsoft development tools work better. It's been a personal ordeal to get Microsoft Visual Studio 2005 working on Vista and still I have some issue I don't know if I'll overcome.
Even after downloading all those fixes and updates I still get this feeling it is broken. Why do I have to run it with administrative rights? Makes me feel VS 2005 was ill developed for Vista. Even when Vista, then Longhorn, was to be released in 2005 or 2006 at the latest.
The missing patch is a driver to be found here: http://go.microsoft.com/fwlink/?linkid=46859 . Catch here is I have Windows Vista Home Premium. Which doesn't seem to be supported. Now how was I going to know that when I purchased my laptop?
I got a good and relatively inexpensive laptop with Home Premium so I could work and enjoy some media stuff. Turns out it isn't good enough for Microsoft's development products. It is
good enough for open source though! All my Java and php tools work like a charm. Even the more advanced Zend tools installed without a glitch.
My question to Microsoft. What the heck is going through your mind when you develop these products. When you develop these "windows segments" you're killing off the usefulness of your own tools.
Well there you have it. To the right the dreaded incompatibility warning. Hope the drivers I need install well even if I can't make the program itself work.
Posted by
Gerardo Tasistro
at
7:27 AM
2
comments
Friday, December 07, 2007
Vista X-perience
Well I guess I'm a late adopter of Vista. Just like the majority of us. After all who jumps head first into a new Microsoft OS.
Anyway yesterday I got my first PC with Vista. A Satellite A215-SP4057. Nothing out of the ordinary. Actually one of the cheapest laptops around. I can say the Vista experience has been ok. It isn't sluggish at all having a 3.0 Windows Experience rating. Of course yesterday as I got the low battery warning it took longer to shut down than to run out of battery. So I can't say it was the fastest either.
That aside I must confess I don't know if I'm running Aero or not. The menu and windows do have transparency. Does that mean Aero is running? Because I can't get that WOW experience no matter how hard I play with it. Disclaimer: I run Linux with Beryl and own a Mac. I mean the desktop does look crips and the laptop's display helps, but honestly so far the effects are far from outstanding.
Oh! The cancel or allow thing. Oh ohoh oh boy! Now there we have an issue. In is pretty annoying feature. Never the less an annoying feature that is truly and sadly needed.
Well enough for today. I finaly figured out the Aero thing. It was running. So I guess that sums it up: not impressive. Probably this weekend I'll setup Linux on it. Kubuntu surely. Till then.
Posted by
Gerardo Tasistro
at
6:35 AM
0
comments

