Saturday, September 22, 2007

How much compatibility do you need?

How much compatibility do you need? That's not a rhetorical question, but one that requires some serious thought.

I'm asking this question in regards to migration from legacy Microsoft Office formats to your next-generation XML format, be it ODF or OOXML. But first, a couple of personal anecdotes that bring this to mind:

  1. Yesterday I was in a training class (it was about the security aspects of development methodologies, but that's not important right now). The university professor who was teaching the class casually mentioned that he had a couple of papers turned in in OOXML format, which he couldn't read. He uses an Apple computer. Very simply put, if he can't read it, you fail. It may sound draconian, but if you take into account that he's dealing with a large number of students and he's clearly told them what format to use then his frustration is understandable. Sadly, due to misinformation from Microsoft's marketing arm, the students' failure to comply is understandable as well.

  2. Today I was assisting someone with a system written in Microsoft Access 97. My current version of MS Office Professional is 2007. It will not edit the older version at all. Period. Get over it. Your only options are to (A) convert the database to a newer format (not feasible, since it's not mine, and the owner cannot afford to upgrade all of her machines), or (B ) edit the database with the older version of Access. I'm going with Plan B (using the older version). I do have a licensed copy of Access 2000, so I tried that, but it's still too new... it won't read the database either. I'm going to have to do it on her machines rather than mine, since I don't have a copy of the older version and won't pirate one. What this means is that the work I thought I'd be able to squeeze in in a couple of spare hours may not get done this weekend since I have a lot of other high-priority work to get done. She's going to wind up with a manual workaround instead.

Microsoft has made lots and lots of noise about “the fact” that its OOXML formats “are compatible” with the billions of existing office documents in the world. Anecdote 1. shows that up as a half-truth at its theoretical best, and a lie in every practical sense. There is no clever argument that could make up for sending a format you were told was “compatible” to your college professor and getting a zero for your work. I feel sorry for those people that fell into Microsoft's semantic trap.

By “compatible”, of course, Microsoft merely means that their software can read the old format and write to the new one. Notice the disconnect there. Writing the new format is in no way dependent on reading the old one. You don't need to know how to read Latin to write German. If you want to translate Latin to German, you need to know how to do both, but German need not be designed for “compatibility” with Latin. The best possible characterization of Microsoft's argument is that it is a lie.

The reason they can get away with this lie is that they are the only group with the fully documented specification of the old format. They're “native speakers”, so to speak. Everybody else has had to learn the old “language” by listening to the native speakers, who refuse to teach anybody else the language. When it looks like other people are getting pretty good at reading those formats, Microsoft changes them, as Anecdote 2 illustrates pretty well.

Just recently on ZDNet, Paula Rooney claimed that Customers won’t adopt any open source desktop — whether it is backed by Sun, Novell, Red Hat or IBM — if it doesn’t offer seamless compatibility with Microsoft Office.” Of course she's wrong. We can see from the examples above that Microsoft doesn't offer seamless compatibility with its own products. Nevertheless, people still upgrade their Microsoft software based on the lie that such compatibility is provided. It's only when they actually try to take advantage of it and fail that they learn the ugly truth.

Microsoft doesn't really believe their customers need 100% compatibility. If they did, they'd provide it. This set of slides re: Compatibility Mode Confusion details one administrator's set of problems. Nevertheless, Microsoft promotes the myth of 100% compatibility, sometimes claiming vague “legal concerns” that simply don't exist. (For instance, in contracts. It's the copy of the contract that you printed and that the parties actually sign that's of legal consequence, not the source document in binary form. If it were, then translating it to any other format would be equally damaging.)
The Microsofties deride OSS proponents when we use terms like "good enough", but they absolutely depend on it (and consumer ignorance of the compatibility issues that remain) for sales of Microsoft Office 2007. And if you allow that the concept of "good enough" is valid for switching versions of Office, then it has to be valid for adoption of Open Source as well. That is, if you're fond of actually using logic in your thinking.
Yes, companies have huge libraries of .doc, .xls, and .ppt files. Microsoft would like you to abandon that format for OOXML on the basis of the "good enough" fidelity provided by Office 2007. OSS proponents would like you to abandon those old formats for ODF, also based on "good enough" fidelity. However, ODF is already a widely adopted (by vendors) standard. OOXML is not widely adopted by vendors; nor is it widely adopted in practice by users.
Microsoft's market dominance isn't anymore permanent than the blockage of the NorthWest Passage. Remember WordPerfect? It was dominant, too. A blind man can see that the entire industry is changing. So if you've got to switch anyway, be smart about it and go the standards route.

By this I mean real standards, of course. Microsoft's OOXML, used in Office 2007, was rubber-stamped by ECMA and has no widespread adoption despite the fact that Microsoft Office 2007 ships with most new PCs. No vendor other than Microsoft had input to that format, and MS Office 2007 not only doesn't comply with the published spec, Microsoft won't commit to compliance in the future. OOXML recently failed a crucial vote with regards to ISO standardization.

On the other hand, ODF sailed through the ISO standardization process methodically and with no dissenting votes at all. It is defined and supported by multiple vendors of multiple applications on multiple platforms. Sun's StarOffice, OpenOffice.org, IBM's Lotus Symphony, and Koffice are some of the applications to support it. These applications are pretty good at reading the old formats, too; and are excellent at creating widely sharable documents. Even if the other guy's using a Mac, or Linux, or Solaris, or BSD instead of Windows. Even if one's using Symphony and another's using Koffice.

If you've ever been bit by the compatibility bugs in Microsoft's products then you really should consider moving to one of the office suites that doesn't suffer from them. This week the governments of Russia and the Netherlands announced ODF policies. They join [pdf] Belgium, Brazil, Croatia, Denmark, France, Japan, and Norway. And me.



Sunday, September 16, 2007

I'm taking a DAY OFF! (and VIC CRM status)

After having unfruitfully slogged through some on some major client work this week, I'm taking a weekend off. I'm behind, and I know it, but there's absolutely no way I'll catch up if I burn out. So it's time for a breather. For me, that means visiting my mom and cooking some spare ribs, spaetzle, and sauerkraut. (The key to great spaetzle, by the way, is salt. Salt the dough until it's too salty; then it'll be perfect.)

It also means I work a bit on VIC. Yes, for me that's a day off. In The Adventures of Tom Sawyer, Mark Twain says, "Work consists of whatever a body is obliged to do. Play consists of whatever a body is not obliged to do." Modifying other people's CRM systems in Lotus Notes is what I'm doing for a living right now. I'm wading through a sticky bit of drudgework, so at the moment, it's work. Modifying my own CRM systems in Lotus Notes is what I'm not obliged to do. I'm wading through a sticky bit of drudgework, but it's challenging play. Get it? If not, you never will. Suffice to say that a day off is doing what I normally do anyway, but for me, not for somebody else.

That said, I thought I might share a little bit of what I've just done. First, I've recently introduced the VIC Launch database on OpenNTF.org. That's a big step forward, but it's not perfect. I just did some modifications to it and it's much more solid now. For the first time I actually feel good about recommending it as your Lotus Notes home page.

I modified the My Activities page. Previously you just had a list of of tasks and scheduled items, broken down into what's overdue, what's due today, and what's scheduled. You still have that, but now you can also tab to a Calendar view. I like the two-day view with a column for today and another for tomorrow, but you can use any of Notes' day, week, or month formats. And you can select in your Personal Preferences whether you'd rather start in the old list or the new calendar view by default. Here's a screenshot showing a view with one work-week. I added a little bit of experimental code to VIC Launch... basically this is going to be the home of Dashboards. I actually started out by updating the VIC documentation to describe how to do this in Boomarks.nsf, but then I got carried away and put a simple example in VIC itself. Let me know if you think I should pursue this direction.

My example is a little frameset I created to solve a problem... that being that I don't work through old Journal Entries diligently enough and can easily lose billable items. The solution is this four-pane frameset, divided into Northeast (NE), Northwest (NW), Southeast (SE), and Southwest (SW) quadrants. The West side contains revenue-generating tasks; the East side contains revenue-collecting tasks. Here's how it's broken down:
  • NW contains Unbilled Journal Entries... anything marked billable but hasn't been put on a Sales document.
  • SW contains Open Sales Orders... This is your workspace for items that will be invoiced when delivered. It's also where those Unbilled Journal Entries disappear to as you process them. As you fulfill Sales Orders you convert them to Invoices and they automatically move over to the NE quadrant.
  • NE contains Unsent Invoices. They've been created and are waiting to be printed and mailed or emailed. Once you've done that you'll mark each as "Sent" and it will automatically fall into the next frame.
  • SE contains Open Invoices. These have been sent and still have a non-zero open balance. When they're paid they automatically fall out of the frameset into one of the other views in the Sales database.
This particular frameset provides a nifty way of keeping track of those things you get paid for. Since the views are categorized by customer it's a nice way of seeing exactly what you've got in the queue for each customer, and how they compare relatively to others; and you don't have to open the Organizations' Financial tabs to do it.

BTW, what you don't see in this screenshot due to space is the fact that each quadrant contains a summarized dollar figures for each document and account, and totals. This is really cool on a big monitor. So in Unbilled Journal Entries, for instance, you see the value of the call AND any associated expenses and a total for each line item, and summaries. Sweet! You also don't see that these aren't static views... it's identical to working with four fully-functioning views at once, and you can resize and zoom the partitions to focus on any particular task.

I'm really looking forward to seeing how this works in practice. The VIC Launch database can handle as many dashboards as we wish to include. I figure you'll want to have different sets with different views for the different roles. The question is to what degree we want to be able to customize them or pre-set them. I'm open to suggestions and contributions.

I've also completed the Payments feature of the Sales database. Previously you had only a single textbox to apply a payment. I'd always intended to have a Payments grid on the Invoice, but every attempt at it has been crash-inducingly disastrous. I actually like the compromise better than the original plan... on the invoice you simply see a total of payments to date, and the balance. Then, if you like you can pop up a list of all payments made against that invoice. This keeps all the detail out of the way until you need it. Of course, your payment types are maintained in the Config database.
The invoice itself has been modified slightly for this purpose. Naturally, while mine features VIC BeaverTM, letterheads are completely configurable.I also knocked out a few bugs. Little things like the error message that appeared when you tried to convert an email to a JournalEntry. It was just an annoyance, but now you've got some great workflow available to you. Here's a scenario: customer sends you a request in email. You discuss it in mail and on the phone, documenting the discussion in VIC. Finally, you summarize the proposed work in an email, get a response authorizing the work, automatically convert that to a JournalEntry task, and assign it a due date. The task is marked billable, so upon completion it's moved onto a Sales Order with other tasks for that customer, converted to an Invoice, and sent. Nothing hits paper unless you just want it to. Just working through that scenario gives me some great ideas on how Projects will fit in when it's finished.

I think for the next release we're going to concentrate on getting Sales Orders solid, take care of some lingering bugs (like a stack overflow when creating a letter or fax that inherits from the currently selected doc), and introducing some basic new functionality to Projects. I'm hoping to get that to the point where I can manage Projects' construction using Projects itself.

Anyway, that's my weekend. Tomorrow it's back to 100% customer focus.

Thursday, September 13, 2007

Emoze provides push mail to everybody.

Now, this is a neat idea. You don't need a Blackberry or some expensive service to get your mail pushed to your phone. Emoze will do it for you, and you can get it for free, which makes it a perfect solution for small business and individuals. Here's some of the tech specs:
  • Compatible with Microsoft Mobile or Symbian devices that have a GPRS or other data connection with Microsoft Outlook, Microsoft Exchange, Lotus Notes Domino servers and POP3 online email services such as Hotmail, Yahoo! and Gmail
  • Supports all major brands of mobile handsets including Nokia, Samsung, and Motorola
  • Service is independent of network technology and works on any wireless GSM, CDMA or Wi-Fi network including 2.5G and 3G such as WCDMA/UMTS, CDMA2000, 802.xx, Wi-Max, GPRS (2.5G), EDGE, CDMA 1xRTT, CDMA 1xEVDO, etc.
I'll give it a try and let you know how it works for me.

Monday, September 10, 2007

TimeTool News and IBM Joins OpenOffice.org

Two quick news items:

First, I read on SlashDot that Free Pascal has released a new version of the compiler. That's what I've been waiting for. Cratchit.org TimeTool is written in Delphi, but I'd resolved not to do any updates until it could be ported to a free compiler. There were a couple of Delphi components that were missing from Free Pascal the last time I looked, but now it's time for another look. I've compiled quite a nice little feature list for the next release and it may be time to implement it.

Second, IBM has joined the OpenOffice.org project. This is great news, as IBM will be submitting code that was developed as part of their Hannover (Lotus Notes 8) project. For those that aren't aware of it, Lotus Notes 8 has built-in support for ODF documents. Good stuff, though it could be better. My own feedback to IBM has been that I'd like the ability to treat ODF documents like Notes documents in a Notes database... I don't want to have to save them to the file system and then attach them. Since ODF is an XML format it should be possible to map it into the Notes database and have flexible document storage. I'd also like to be able to export any Notes document to ODF, retaining the metadata. But that's my wishlist... I have no idea how that fits into IBM's plans.

Sunday, September 09, 2007

New VIC CRM release

A new version of VIC CRM has been released. You can get it here, on OpenNTF.org. It's a maintenance release, mostly bug fixes, and includes a newly revised Activities page and Launch database. VIC Launch provides a single point of entry for the application and simplifies the process of adding VIC to your bookmark bar or setting it as your Notes home page.

Friday, September 07, 2007

Warped Perspective from the Copyright Alliance

UPDATE (2007/09/13): This just in from InformationWeek: "Fair use exceptions to U.S. copyright laws account for more than $4.5 trillion in annual revenue for the United States, according to a report issued on Wednesday by the Computer and Communications Industry Association."

The story goes on to quote CCIA president and CEO Ed Black:
"Copyright was created as a functional tool to promote creativity, innovation, and economic activity," said Black. "It should be measured by that standard, not by some moral rights or abstract measure of property rights."
He's absolutely right.



C|Net has published an editorial by Patrick Ross, Executive Director of the Copyright Alliance. The piece, entitled "Perspective: Fair use is not a consumer right", is a fine example of why lawyers have a reputation for sleaziness and dishonesty. Though, perhaps, in this case it's the headline writer.

I'm going to exercise my Fair Use rights, right now. Ross invokes the "irony" of what he sees as a deceptive statement from the CCIA:
Fair use, as CCIA must surely know, is not a "consumer right," but rather an affirmative defense. And this is an important difference.
Irony upon irony. Copyright itself is not a right, but is a temporary monopoly granted by the state. During the term of this monopoly, copyright is subject to certain exemptions, which we call "Fair Use", and which are codified in Title 17 of the U.S. Code. Such fair use includes quoting for the purpose of commentary (such as news commentary); education; or parody. In fact, you can quote an entire work verbatim for any of these reasons, as when Weird Al quotes the entirety of the lyrics of Queen's "Bohemian Rhapsody" in his "Bohemian Polka", or when he produced "Amish Paradise" using the entire tune and musical arrangement of "Gangsta's Paradise" (in itself a re-working of Stevie Wonder's "Pastime Paradise"). But if you do quote, be prepared to justify the use, because Ross is correct in saying that Fair Use is an affirmative defense. You may get sued, and you may lose if your use doesn't conform to the uses allowed under Title 17.

But just because you may have to defend your right doesn't mean it's not a right. Fair use is based on two items in the Constitution. The first is the following clause, listed among the powers granted to the Legislature:
To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries;
(Note that the purpose of copyright and patent law is revealed here; where such law violates this purpose, it can be struck down by the Supreme Court.)

The second is the First Amendment, in what we know as "the Bill of Rights" (Ross, take note!)
Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the government for a redress of grievances.
Where copyright law abridges the freedom of speech or press, as in rendering the press, or commentators (or any individual, for that matter) incapable of quoting for the purpose of commentary or news reporting, then the courts could declare the law illegal.

Congress cannot make a law that violates the Constitution; the courts would strike it down. That's why the Fair Use exemptions in Title 17 exist. Failure to include them would violate the freedom of the press and would operate against the public interest.

So, while Fair Use is in fact an affirmative defense, it is also a Constitutionally guaranteed right. Look at it this way: free speech is a right, but that's no guarantee against being sued for libel. But telling the truth is an affirmative defense; just don't exceed your free speech rights to tell lies. They can sue you, but they can't win if you told the truth. I think if your defense lawyer is good, he will turn just about any Fair Use argument into a First Amendment argument. To do that, your use has to be fair. If you're going to claim Free Speech (or more liberally, "freedom of expression"), then the expression has to be yours. Do not exceed your rights.

Go on and read the editorial. Frankly, Ross' argument sounds reasonable, when you discard the inflammatory headline. Basically, he argues that requiring Fair Use statements to be included in copyright statements would be misleading and encourage people to mistakenly violate copyright. Personally, I think that really depends on the exact wording of the statement.

He's operating in his members' interests to get people to err on the side of caution. Obviously they would prefer that people be afraid of consequences and not copy at all. As for me, I think that denying one person his rights (fair use) is more grievous than infringing another person's government-granted privilege (copyright). I feel that any other interpretation is morally warped, at best. Ross writes:
I don't think we want copyright warnings to become a fair use public service announcement. No, these warnings do exactly what they're meant to do--notify consumers in a succinct fashion that infringement has legal consequences. Going further has risks; for example, describing fair use merely as a "consumer right" can lead otherwise well-meaning individuals to infringe on content and face civil or criminal liabilities, because they only paid attention to the misleading disclaimer forced into the notice and acted in a way that wasn't covered under "fair use" as legally defined.
There should be no surprise that I believe that failure to inform a person that he has Fair Use rights under Title 17 can suppress the free speech rights of persons that would otherwise use the material in a completely fair and legal fashion; thus impairing the progress of science and useful arts, violating the freedom of the press, and damaging the society as a whole. (Even worse is attempting to deny them entirely through the use of DRM, which is outside the scope of this discussion).

There should be no question about whether a Fair Use notice should be included in those scary, scary copyright notices. The only discussion should be what form that notice should take.

IANAL. But my vote carries the same weight, regardless.

Tuesday, September 04, 2007

Microsoft's OOXML Falls Off the Fast-Track

Microsoft's OOXML file format has failed to garner the necessary votes for ISO approval. You can read Andy Updegrove's account here, or a more entertaining account by Pamela Jones at Groklaw. Of course, for the ultimate in infotainment on this subject we refer to Rob Weir, on whom we can always count for a shot of reality: a highly recommended read.

Oh, PJ at Groklaw points out this article by Simon Aughton. "PC Pro" indeed... the poor guy hasn't the slightest clue what the process is. He's drawing conclusions from a poorly written Microsoft press release, and making his magazine look like it's written by clueless noobs in the process. FYI, you need 66.66% of "participating" members, not 75% of the overall membership (which includes observers). However, even if you get the required 2/3 participating vote, a 25% "No" vote from the overall membership will kill it.

The bottom line: OOXML fails to pass, falling 13.54% shy of the two-thirds majority of participating members needed for approval. It also fails to pass due to having received over 26% "No" votes from the entire membership, both participating and observing members. It had two possible ways to fail and it failed both.

The OOXML standard will require significant modification before it can pass a vote. It's worth noting that there are exactly ZERO implementations of that standard. None whatsoever, not even Office 2007. Office 2007 is similar, but different, and doesn't even allow you to save a document that conforms to the standard. Oops. The next opportunity to present it is in February. Given the timeline, you probably won't find any reference application by then either. Remember that when Microsoft tells you about "support for billions of legacy documents".

Of course, we don't have to wait while Microsoft struggles to produce a format that can pass a simple standards vote. There IS a standard XML document format for you to use. It's called Open Document Format (ODF). It's already ratified and has multiple high-quality implementations, such as Sun's StarOffice, OpenOffice.org, KOffice, IBM's Lotus Notes 8, and more. You'll be happy to know that the years (not months) of planning and broad member participation that went into ODF paid off in full. ODF was ratified the first time, with no dissenting votes at all.

(Is this spin? Sure! But it's the best kind of spin: it's 100% true!)