• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

An Antic Disposition

  • Home
  • About
  • Archives
  • Writings
  • Links
You are here: Home / Archives for 2011

Archives for 2011

Songs of the IBM

2011/06/11 By Rob 22 Comments

A few years ago there came into my possession a curious piece of IBM history, a thin paperback volume of 54 pages, privately printed, entitled “Songs of the IBM, 1937 Edition”. The opening page lays out the context:

For thirty-seven years, the gatherings and conventions of our IBM workers have expressed in happy songs the fine spirit of loyal cooperation of good fellowship which has promoted the signal success of our great IBM Corporation in its truly International Service for the betterment of business and benefit to mankind.

In appreciation of the able and inspiring leadership of our beloved President, Mr. Thos. J. Watson, and our unmatchable staff of IBM Executives, and in recognition of the noble aims of purposes of our International Service and Products, this 1937 edition of IBM songs solicits your vocal approval by hearty cooperation in our song-fests at our conventions and fellowship gatherings.

It is signed “Yours in International Service, Harry S. Evans”. More on Evans later.

Here’s the index of the 100 songs contained.

After some patriotic songs, it moves to the “I.B.M. Rally Song” called “Ever Onward”:

And then it moves to a series of songs praising Thomas J. Watson. At that point I had an uncomfortable feeling about this. Masses of people singing the praises of their leaders and pledging loyalty is something that is historically tainted. We just don’t do that today, at least not outside of North Korea. But we must be cautious if we try to read 1942 into 1937. In the days before television, and when radio was still young, group singing, to a piano or small band was quite common. Some readers might remember this even reaching into the television era with NBC’s “Sing Along with Mitch” show.

The tradition at IBM was started by Harry Evans in 1925, the man who made IBM sing. Literally. In “The Maverick and his Machine”, Kevin Maney describes:

If Watson sang, IBM would sing. As with the dress code, Watson did not order IBM to sing. That bit of corporate culture started with Harry Evans. Outgoing, attention-seeking, good-natured, wired with energy and shorter than every other man in the room, Evans was always the guy with joke, or the guy willing to laugh at a joke. Watson liked him and promoted him.

Evans loved to sing, and he enjoyed setting his own lyrics to popular songs. …

As the years went on Evans informally assembled quite a few songs about IBM or people at the top of IBM. In 1925 Evans went to Watson and proposed printing a booklet of his IBM songs so that any of the employees could sing them at gatherings. It might be fun, Evans said. Watson liked the idea. At company sales conventions and other gatherings, employees already sang patriotic numbers and songs of good fellowship. Why wouldn’t they want to sing about IBM?

It was not only the IBM President who had a song. Members of the executive team each had a song, including on to “F.C. Elstob, Comptroller”. How often do you see a song written to honor a comptroller? Not very often.

Innovation and patents were important to IBM, even in 1937, as shown in this song, dedicated to “W.M Wilson, Manager, Patent Department”:

Many of us know of the “THINK” motto that Watson popularized. But did you know there was a song, sung to the tune of “Yankee Doodle”?

Not all songs have aged so well, such as “To Our I.B.M. Girls”:

And one parting song, as we come to the 100th anniversary of IBM on June 16th, 2011. It is interesting that in 1937, IBMers considered the founding of the company to have been 1888, not 1911, as indicated in the “Fortieth Anniversary Song of I.B.M”. With a complex corporate history, like IBM has, there are many dates that could celebrated. In any case, if I had any clue what the tune to “Tramp, tramp, tramp, the boys are marching” was, I’d join my colleagues in verse 3.


Addendum (2012-07-13): Several readers have asked about getting a scan of the complete song book. So here it is, the 1937 edition of the Songs of the IBM.

Filed Under: IBM, Music

Apache OpenOffice: How to Get Involved

2011/06/03 By Rob 16 Comments

A follow-up to my previous post on the  Apache Incubation proposal to move OpenOffice.org over to Apache and continue the project there.  In that post, I described how Apache projects are run via a meritocracy, that members gain additional rights and responsibilities based on the approval of their peers, etc.  But I have received a variety of questions related to this, and I’ve done my best to track down some answers.   So here are what I found out, in my words, paraphrasing the questions and giving answers, possibly with my mistakes, but I’ll correct them as they are identified.

Question:  How do I sign up to be a project member?

Answer:  For now, since we’re in the proposal stage, and the project has not officially started, we don’t have a website, mailing lists,  a repository, etc.  So there is no direct project work to do yet.  However, anyone who wants to “get in on the ground floor” with Apache OpenOffice, can sign up by adding their name to the “Initial Committers” table at the proposal wiki.  If you don’t have a login for the wiki (and you probably don’t) then you can quickly get one by clicking “log in” and then following the instructions to create a new account.  If you have interest in this, I’d encourage you to sign up.  Even though we can’t code yet, we can edit the proposal itself, and there are thin spots there that we could certainly use help filling in.  If you want to contribute you should also sign up on the incubator general list.  This is where the proposal is being discussed.

Question: This meritocracy sounds very programmer-oriented. But OpenOffice.org,  as an end-user, mass-market application, involves a broader community of contributors, from test to translation to documentation to marketing, etc.  Do they fit into this meritocracy at all?  Is a marketing person or an event organizer or a build engineer a valued contributor?

Answer:  Yes.  Absolutely.  Each Apache project determines the criteria used to identify those members whose sustained contributions to the project warranted recognition and advancement.   I think that in the case of an end-user facing application like OpenOffice.org, contributions come in many flavors.  It is not limited to coders, or even to those who check in “assets” like translations and test scripts.  We’ll need a wide range of contributors with a diverse set of skills to take OpenOffice.org to the next level.

Question:  Do I need to sign a copyright assignment to contribute to Apache?  I heard a lot of bad things about the paperwork that Sun required from OpenOffice contributors.

Answer:  In Sun’s case it was the JCA by which the copyright of all code contributions was assigned to Sun.  Instead Apache has a “Contributor License Agreement” which they have in both individual and corporate forms.  This agreement does not require copyright assignment to a single entity, not even to Apache.  It does not aggregate copyright.  But it does require that you agree to license the copyright to Apache as well as to anyone using the software.  IANAL, but this sounds like a good thing.  If you are comfortable with the Apache 2.0 license, I can’t see why you would have a problem with the Apache iCLA, since it pretty much restates those same terms.

Question:  What kinds of contributors are you looking for?  What roles and skills?

Answer: If you look at the range of skills and contributors that went into making OpenOffice.org, you will have a good idea of what is involved:

  • C++ and Java programmers — same thing really, any programmer over 40 ;-)
  • Testers, both manual as well as those able to help with test automation
  • Translators — I’d especially like to see some OOo National Language Projects sign up.
  • Documentation / technical writers
  • Accessibility
  • Web admin /server admin — We’re going to take over the OpenOffice.org website, but we’ll need to migrate to our own server
  • Build engineer / build management
  • Community development
  • Event organizing
  • Marketing / brand development
  • Education / training / certification
  • Package and liaise with Linux distros

What we don’t need, at least not at the project level, are things that are more in the nature of foundation-defined roles, like fundraisers, board of director members, membership committees, press release authors, etc.  In this sense Apache OpenOffice is different from the OOo under Sun/oracle or from LibreOffice.  We’re imbedded in a very capable and well-respected open source foundation.  Apache has governance already established.  Certainly individuals can get involved in that if they wish, and more importantly if they have the support and votes of their peers to advance to that point, but this is not something we need to reinvent for the project.  We can concentrate on the project work itself.  100% of the effort will be on improving OpenOffice.

In particular, I’d welcome existing contributors from the OpenOffice.org community, including those from Oracle Hamburg (check with  HR first, of course), from the Symphony team and from other parts of IBM (send me a note if you have questions), from companies with desktop Linux distributions (you need a strong story for productivity applications to be viable in the enterprise), from those other companies with downstream business based on OpenOffice (consultants, trainers, authors, migration experts), and of course members of the large and vibrant LibreOffice community.

And remember, contributing to an Apache project is not an exclusive thing.  You as the author of code, documentation, translations, etc., own the copyright to your original work. You may choose to license your work under  Apache 2.0 and contribute it to Apache OpenOffice and then attach a different set of licenses and contribute it to LibreOffice.    This is a good way to get your work out to the maximum number of users.  And who knows?  You might find out that you like Apache and decide to move your tent over there.  That’s your choice.  If you do that, you can contribute just to  Apache and then have LO suck down the changes from the Apache project.  This is because Apache 2.0 and GPLv3 are compatible in that direction.  So you still can impact both projects by contributing code to one place, namely Apache.  But it does not work in the other direction.

Filed Under: OpenOffice

An Invitation to Apache OpenOffice

2011/06/01 By Rob 110 Comments

As you have probably heard, Oracle has followed through with their earlier promise to “move OpenOffice.org to a purely community-based open source project.”  OpenOffice is moving to Apache.

I’d like to offer you my own thoughts on this new opportunity and what it means.  I recommend also the insights of my colleagues Ed Brill and Bob Sutor.

First, we should all be excited to see OpenOffice move to a foundation with the stature and track-record of Apache.  If you are a web developer or server admin, then you of course know about the eponymous Apache http server and Tomcat.  If you are a developer you know about Ant, Maven and Subversion.   If you work with XML you know about Apache Xerces, Xalan, FOP and Batik.   And if you don’t know about Apache Hadoop yet, then please do your résumé a favor and study up on it.   All said Apache is custodian of nearly 170 open source projects, including 5 of the top 10 open source downloads.  I’m hoping that soon, as OpenOffice transitions to Apache, they will be able to claim 6 of the top 10!

These diverse projects are run according to meritocratic development process, a tried and tested governance model, strong shared technical infrastructure, a pragmatic, commercially-friendly open source license and a set of social conventions known as the “Apache Way”.

I’d point out in particular that the Apache 2.0 open source license was recently blessed by the Free Software Foundation:

The Apache License 2.0 is the best non-copyleft license that does what a copyright license can to mitigate threats from software patents. It’s a well-established, mature license that users, developers, and distributors alike are all comfortable with. You can tell it’s important by the way that other free software licenses work to cooperate with it: the drafting processes for GPLv3 and the Mozilla Public License 2.0 named compatibility with the Apache License 2.0 as a goal from day one. The Apache Software Foundation deserves a lot of credit for pushing to do more to tackle software patents in a license, and implementing an effective strategy in the Apache License.

As you can tell, when it comes to Apache I’m a fan.   I’ve experienced much of this first-hand.  I was a committer in the Apache Xalan project many years ago (1999-2000).  It was a great experience then, and  when the opportunity came to add my name to the OpenOffice incubation proposal I did not hesitate.  It was an honor.   I look forward to coming back to Apache and participating in this continuation of OpenOffice.  I am planning on getting directly involved with the engineering effort of this project.

So what are the next steps?  As I understand it (and I’m not an Apache process expert), it is not accurate to say that “Apache OpenOffice” really exists yet.  We’re not quite there.  At Apache, you can’t just walk in off the street, drop some code and call yourself an Apache project.  There is a multi-step  process for initiating, reviewing and approving a new project.  We’re at the first step, with the proposal submission, which Oracle made earlier today.  This proposal will now be reviewed and voted on by the Apache Incubator Project Management Committee (PMC) over the next few days.  If approved, the project then advances into incubation as a “Podling”.  Incubation at Apache is a probationary stage, where the project recruits new members, reviews the code to establish IP provenance,  adapts the project to the Apache infrastructure,  and so on.   We’ll undergo periodic reviews, and at some point, when we are ready, we can then be approved to “graduate” to be a new top-level Apache project, ideally something like  http://openoffice.apache.org.  There is no fixed time for how long this incubation state takes, but I’m told it generally takes several months.  I don’t think we should rush it.  Everything that occurs during incubation is for the long-term benefit of the project, so I think we want to soak up the help and special attention from our Apache mentors as much as we can.   For more details on the process, I recommend the process diagram here and the associated process description.

The Apache process is based on a strong meritocracy. Developers who regularly provide high quality patches get elected as “Committers” and they then help review submitted patches as well as write their own code.  And those Committers who remain active and have earned the respect of their peers typically then get elected to the Project Management Committee (PMC) and steer the direction of the project.  And those who are most valued on the PMC may become the PMC Chair for their project, which also ranks them as an Apache Foundation Vice President.  And some then have the opportunity to serve on the Apache Board of Directors.   With this cursus honorum, it is recommended that those with leadership ambitions get involved early.  When the Apache OpenOffice project begins, there will be project decisions to make and leadership roles to fill, and this will happen fast once we get started.   Obviously, you can’t advance in the meritocracy if you are absent.  Although, you can join anytime you want, there are clear advantages to “getting in on the ground floor”.

In particular, we need to attract a wide variety of project specialists.  This includes C++ programmers (on Linux, Mac and Windows), QA (also on all platforms), help/documentation, UI/UCD, translation/globalization, accessibility, install, etc.  Please keep your eyes open for an announcement from Apache in the next week or two, saying that the OpenOffice incubator project has been set up and is ready to accept members.

(I know that OpenOffice.org prided itself on a strong marketing committee as well.  I think this is important, but it is not clear to me yet how that fits into an Apache project.  Certainly this aspect is more critical to an end-user facing project like OpenOffice than it would be to a developer tool.  Maybe someone out there in Apache-land will be able to offer some suggestions on how best to integrate this function into an Apache project?)

An extraordinarily cool thing to look forward to, once Apache OpenOffice graduates to be a top-level project (TLP), is that we will be able to sponsor other incubation proposals that would be a good fit for OpenOffice.  So other components, plugins, toolkits, modules, even entire complementary productivity applications, could be brought into the project, via the incubation process, to help enhance the OpenOffice application suite.  Imagine having a mind maps editor?  Or a project planning tool?  Or a standalone outliner?  Or smaller, lighter, component-based editors?  All these things — and more — are possible.

I have a vision of a free, high quality productivity suite, one based on open standards and open source, one that doesn’t treat the web and mobile and tablet form factors as a design afterthought,  one that has a strong extensibility and programmability model that makes it the preferred platform for innovation, one that has a dedicated community of supporters.  I’ll need your help to get there.

Filed Under: OpenOffice

Gwenell Doc: A Small and Fast ODF Text Editor

2011/05/26 By Rob 9 Comments

 

Today I look at Gwennel Doc, an ODF-based text editor for Microsoft Windows.  In interesting attribute of Gwennel is its small size and fast speed.  It can load and display the 792 page ODF 1.2, Part 1 specification in around 2 seconds, using an executable that is around 1/4 the size of that document.  Something interesting is going on here that needs investigation.  I contacted the author of Gwennel Doc, Marc Kerbiquet, who consented to the following email interview.  Enjoy!

Could you tell us a little bit about yourself, where you live and what you do for work?  Are you a professional programmer?  Or a hobbyist?

I live in France, I work as a professional programmer to pay the bills and I write programs as a hobbyist. Gwennel Doc is a hobby program.

What got you interested in writing a text editor?  How did you pick the name “Gwennel”?

I wrote first a folding text editors for programmers (Code Browser), then I wrote an ODF viewer (Woodrat Reader), so an ODF editor was a natural continuation to this :-)

The initial goal was to make a folding/outlining editor like Code Browser with rich text. But it would have required an hybrid format to handle folding directives.

“Gwennel” means “swallow” in the Breton language, a small and fast bird. Breton is a language spoken in Brittany, a region in the north-west of France.

You call your tool a “WYSIWYM”  (What You See is What you Mean) editor.  How is this different than other editors, and how does Gwennel Doc support this style of editing?

It is different from all the lightweight rich editors that edit RTF  documents or equivalent formats because it supports styles. Styles allow to separate the presentation and content: you can tag a word as “menu item” or “keyword” instead of “Bold” or “Color-Red” and change later how it should be displayed.

Word and OpenOffice allow WYSIWYM but they promote the WYSIWYG (What You See is What You Get) paradigm.

As your website describes, your intent was to make a text editor, not a full word processor.  How do you define the boundary between these two?  What features did you decide to omit?

The goal of a word processor is to produce a printed document. The paper is an important aspect:

  • the page format
  • the header and footer
  • how paragraphs and tables must be splitted when the end of page is reached
  • footnotes
  • the table of content
  • the index

Gwennel Doc is more a note taking software intended to on-screen reading, so it does not have to deal with all these features.

Printing command is not implemented yet but it will be very basic.

What made you choose ODF as a document format?

  • I already worked with ODF before (Woodrat Reader)
  • I didn’t want to create a new format.
  • As far as I know, there is no other open standard designed for edition and supporting styles:
    • RTF: no support of styles
    • HTML + CSS: not intended for edition
    • OOXML: just a political standard, too complicated anyway
  • Interoperability, even if limited:
    • it can read partially documents from other word processors (unsupported elements are just ignored)
    • Use OpenOffice for all missing features (print, export as PDF, …)
    • Gwennel Doc documents can be read without Gwennel Doc
    •  

How hard was it to support ODF in Gwennel? What was the hardest part?

Gwennel was designed from start to work with ODF, so the application model, apart from the table styles, fits very well with ODF. Easy to load, easy to save.

A difficult part was to understand the ODF specification, but I’ve already done it when writing Woodrat Reader.

The hardest part was to find a solution to implement table styles in Gwennel as the ODF has no support for table styles. I’ve finally found a solution to keep a compatibility with ODF and to keep a minimum of interoperability.  Unfortunately table styles are lost when a Gwennel document is edited with OpenOffice.

One thing that strikes the user is how small and fast Gwennel is.  It is less than 150KB in size and requires no install.   Compared to other word processors, this is amazingly fast.  How did you accomplish this? Can give some details on your approach, such as what programming language you used, what ZIP and XML libraries you used, etc.  What is the secret to making a small, fast editor?

I really take care a lot on speed. Almost everything should be instantaneous on a computer that can execute billions of instructions per seconds.

Now, here is the secret :-)

First, the executable is 270K big, not 150K

I cheated, I’ve used UPX to compress the executable.

For curious people, here is the detail of what’s inside:

  • 50K – the zip library (zlib)
  • 20K – the XML parser (AsmXML)
  • 40K – core library (memory management, strings, lists, GUI layer)
  • 70K – the rich edit component
  • 24K – the (partial) ODT schema
  • 64K – the main application code and resources (text, menu, icons)

The operating system (Windows XP and better) provides all the remaining stuff (GDI for font and image rendering, GDI+ for image manipulation, …).

There is even unused code that I could remove to save few kilobytes.

On the other side, I plan to add a lot of pictures to better show the role of properties in styles, it should increase the size of the executable by 100K.

The program is written entirely in assembly (except for the zlib library)

I would be too long to explain why, but I didn’t choose assembly for speed (it could seem crazy as any programmer would say that the only reason to use assembly is for speed), Woodrat Reader is a bit faster than Gwennel Doc to load a document and it is written in C++.

The most visible benefit of assembly is the size of the application, not the speed.

I use common optimization techniques:

  • choosing the right algorithm and data model in the critical parts (e.g. a hash table instead of a simple list)
  • optimizing access to memory
  • caching data (to save computation)

I don’t think that Gwennel is fast; It’s the other word processors that are slow

Some reasons are common to software bloat found in most software:

  • long history of development
  • marketing considerations (spend more time to develop new features rather than optimizing)

Other reasons are more specific to word processing as word processors support a lot more features than Gwennel, for instance:

  • font kerning makes the computation of the layout more complicated,
  • computing the paging in realtime requires a lot of CPU (Gwennel uses just one infinite-length page)

Gwennel is written for modern machines with modern OS, the font and image rendering is entirely done by the operating system, so it can take advantage of hardware acceleration. But on the other side, it is limited to the capabilities of the system library and some features cannot be implemented (e.g. no control on spacing between characters or no outline effect).

Loading is fast but it could be faster: The time to load the file, unzip it, parse the XML and build the model is almost immediate even with big documents (1000 pages), most of the time is spent to layout the text by asking Windows the width and the height of each word. Windows is very good for this but it could be optimized: for instance it shouldn’t be necessary to make a system call for each “the” word in Times New Roman, 12pt of the document because the result will be always the same.

Do you have any future plans for Gwennel?

The future plan for Gwennel Doc is to make it a ‘finished’ application:

  • a Print command,
  • a Find command,
  • and minor goodies one can expect such as opening recent documents.

There is no plan to support more elements of the ODF but the compliance has yet to be improved (online ODF validators are not very happy with documents created by Gwennel).

Filed Under: ODF

PJ, Goodbye and Good Luck

2011/05/10 By Rob 7 Comments

There was a time when daggers were drawn on Linux and its demise was plotted in dark detail.  At that hour stepped out a shieldmaiden with a blog, and that blog was Groklaw.   Eight years later, we hear the news that Groklaw will cease new postings after May 16th.  My sadness in hearing this news is more than equaled by my gratitude to PJ and her community of researchers and commentators, for their enormous effort and unparalleled achievement over these years.   The world is a better place because of PJ.  Who can hope to say better?

As a retrospective of a different kind, I’ve taken the titles from every Groklaw article since its start and created a “word cloud” from them, using Wordle.  This shows, at a glance, the issues that have dominated the attention of Groklaw over the years.

Filed Under: Open Source

  • « Go to Previous Page
  • Page 1
  • Page 2
  • Page 3
  • Page 4
  • Go to Next Page »

Primary Sidebar

Copyright © 2006-2026 Rob Weir · Site Policies