So Bill had a good rant yesterday

And few people can rival Mr Buchan in a fair ranting contest, so I won’t comment much other than here it is, and he is mostly right.

This did put me in mind of something I have been pondering for a while. You see IBM business partners do have several ways to say things to IBM. We can email folk we know directly, as Bill was doing. In theory we can use Sametime but in practice not really because the gateway is still on a somewhat broken Sametime 3.1 server until the IBM change freeze ends (ever known an organisation with a change freeze that lasts four years solid?) We can also post in a private Notes discussion database called the Partner Forum. In this forum there are special forms for reporting possible bugs, and there are ways to report suggestions for improvement. The rants in the partner forum over the years have been on occasion rivalled any seen in the blogosphere. The good ideas for improvement have been more numerous and detailed than those in (the excellent) IdeaJam. Some partners are brought in a little closer as design partners, ostensibly to be listened to, but in practice just to be told what IBM are doing a few days before Vowe finds out. The rants here are even more juicy. All jolly good, but not very effective.

So does a public rant work then? Well I used to think so but I am not so sure now.  It certainly feels better, but is probably going to be ignored too, just like that rude Mac blogger who ripped into the rather pathetic IMAP support in the Notes client.

So polite constructive words or flaming rants in private or public don’t work. So who is in control of this relationship then? Who is out of control? Who has the freedom to make improvements? Who hasn’t got freedom? How does it feel?

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

The software I like to work with gives me Freedom. It gives my customers Freedom too. It frees up some of their budget too, which is never a bad thing. Yes I still use Domino from time to time, because some of my customers still have it. There are still a few things that Domino does quite well, but there are more and more things these days where there is just no need whatsoever to be using proprietary software.

So as I continue to ease my way out of the yellow bubble I think I will share some of the things I have previously posted in the partner forum, not that I expect IBM to pay any more attention to them here than they have already, but to just throw them out for comment and perhaps to save anyone else the bother of wishing for them.

Now this is a crazy dialog box

I am used to confusing and infuriating and just plain wrong dialog boxes, I have been conditioned to them over the years, as I suspect have you. Bet you haven’t seen one like this though, from the very clever Jigsaw download tool, the command line version of which is currently getting a nightly alpha build of Ubuntu Jaunty Jackalope for me.

jigdo

I clicked on “Awesome!” which is a word that only really works properly when said with an American accent.

Notes 8.5 on Intel Atom (lpia architecture)

IBM really don’t seem to get how to do software for Linux. The current process is to download a tar file and extract a .deb from it (which is like putting a .zip inside a .zip) and then install it as a standalone deb so you have to manage your own updates. The right way to do it is for IBM to host a repository. Really IBM it isn’t hard and here are the instructions. Downloading stuff from websites to install is something that Windows users do, it is an obsolete process. Anyhow, error 2 in the packaging is that it is only targeted at the i386 platform (which is nearly all the 32 bit intel architecture processors from the 386 onwards). Intel are now pushing the Atom processor for laptops which isn’t i386, although it is somewhat similar. The Atom is an lpia chip, (Low Power Intel Architecture) which is sufficiently different that the Debian package management safety features will try to prevent you running an i386 application on a kernel compiled for the lpia processor.

Enter the Dell Mini9 with Ubuntu linux pre-installed and an lpia kernel. This doesn’t point at the i386 repos, it has a separate repo for lpia. Try installing IBM’s .deb file for Notes and you will find gdebi stops you because the architecture is wrong. There are a few ways to get round it, but the right solution is for IBM to put up repos with builds optimised for the different processors. In the mean time you can use the command line to force the package manager to install the i386 version on the wrong architecture as shown below on a Japanese Ubuntu Mini9 laptop:

shouichi@shouichi:/media/disk/C1W0TEN$ sudo dpkg --force-architecture -i ibm_lotus_notes-8.5.i586.deb
[sudo] password for shouichi:
dpkg - 警告、--force が有効なので、問題を無視します:
パッケージアーキテクチャ (i386) がシステム (lpia) と一致しません
未選択パッケージ ibm-lotus-notes を選択しています。
dpkg: ibm_lotus_notes-8.5.i586.deb の処理中にエラーが発生しました (--install):ストールされています。)
buffer_write(fd) で失敗しました (10, ret=-1): `./opt/ibm/lotus/notes/xmlschemas/domino_7_0_2.xsd' 間の dpkg-deb バックエンド: No space left on device

The install still failed on this machine because it ran out of disk space on the 4GB flash drive. Next task is to mount an SD card as /opt and install to the external storage.

The campaign to not bother to Open Source Domino

A chap called Ian Tree of Hadleigh Marshall recently wrote an open letter to Steve Mills who is head of IBM software group, suggesting that IBM should “Open Source” Domino. This has started a lot of people talking about the possibility or otherwise of this proposal. I am a big Free and Open Source software advocate, but I don’t think this is a particularly useful suggestion for a number of reasons.

Hard to do

Domino is old, with bits of code licensed from all over the place. The provenance of various bits of code might be hard to establish and the right to change the licensing rules over bits of the code may be unclear.

Nobody really wants to extend it

Domino is already quite extensible. The C API is published and there are stacks of extension points. If you set up your build environment right with the correct elderly version of a C compiler you can write reams of impenetrable C code to do things like add options to file-export a view to a .ods spreadsheet, or add a formula language function to do something like @dbcommand(“xpath”;bookstore;”/Bookstore/Book/Title”) to return the titles of all the books in an XML format string in the bookstore variable. You can use the java runner framework to plug in new URL commands to parse views server-side and return them in new and more sensible formats, perhaps exposing your Domino application as a XUL so it uses all the local UI components of the Mozilla applications.

These things can be done now, and I have had a stab at most of them. Trouble is it isn’t much fun.

Here be dragons

Domino is full of historical cleverness that was before it’s time. The date and time handling is near-perfect, it was certainly the first application I ever came across with time zone handling that worked. It understands half-zones, differential daylight savings rules, everything. The trouble is it stores date values internally in an 8 byte floating point number, with the integer part being the days from 31st December 1899 (you can put in negative values to go back to 100 A.D.) and the fractional part being the number of seconds from midnight. This is fairly efficient, covers a wide range of dates and finding the difference between two dates is just simple subtraction. I am not quite sure where it puts the zone information but it finds somewhere for it to go. So all very clever, but not how you would do it now. It makes no reference internally or externally to ISO 8601 date formats you can’t get an ISO8601 out of a notesdatetime object, or indeed load one in. OK, if Notes was Open Source someone could add 8601 methods to notesdatetime, but anyone doing deeper work, perhaps adding a caldav server, is going to hit up against these clever but not very modern dates all the time.

Domino is older than Unicode. In fact Lotus helped write Unicode and even had Kevin Cavanaugh on the board of directors of the Unicode Consortium. Domino uses Unicode, but also uses LMBCS. This is a clever format, very efficient (only uses multiple bytes when it needs it) but ultimately non standard which means that you need to constantly convert between LMBCS and unicode when doing C-API level stuff (like trying to write @dbcommand(“xpath”) for example).

Response documents are very very handy, but somewhat unusual as a concept, Replication conflicts even more so. There are better ways of handling conflicts than mixing them up with real records, put them in the database attached to the relevant record but in a different way, kind of like the edit history in a Wiki.

So what would I like to see?

Well the initial suggestion uses the term “Open Source” which is a bit woolly, it can mean many things, from disclosure of the source code, to putting the whole lot in an SVN repository under a GPL license and accepting patches. The term “Free Software” is a bit more specific and provides four types of freedom:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

I want all of these, I am not sure how many Ian Tree had in mind. I don’t think IBM are going to provide any of them based on Notes, and I wouldn’t really be that interested if they did. What I do want to see is a new rich client written in a sensible modern high level language talking to a sensible modern document oriented distributed database on the back end. This isn’t Notes any more, but it might be a python based client and a couchDB back end.

Steve Mills wrote some time ago that Domino needed to be stuck in the workshop for an overhaul. This was somewhat controversial at the time as Domino and Notes was quite good when he said it. There were bits that could have been refined and made better, certainly. The strategy from that point onward seemed to be to make things bigger and more complicated. To make things more complicated and slower on the client side they chucked in Eclipse. To slow things down on the server side and waste a lot of time they did the whole db2nsf thing. Then they chucked in Xpages which might sanitise web-only applications a bit, but totally destroys the notion of a develop-once application for rich and thin clients. Then they grafted on an elderly version of OpenOffice.org (the newest version which they didn’t have to publish the source – but bizarely won an Open Source award recently). Granted some people might be really happy with the new stuff flung into Notes. Personally I would have simplified things until it hurt. Notes went into the West Coast Customs workshop and now it has lots of spoilers and fins all over it. They are tightly welded on so there is no going back. The only way forward is to drive it or get a new car.

word of the day – Deportalisation

or deportalization for the American contingent I suppose. One of my clients has a deportalisation project going on. I am not involved, but it was a new word to me so I had to share it. This isn’t a Websphere portal or anything relevant to Lotus technology at all, but I think it might be an interesting new trend for people who have invested in a portal strategy who now find that the components are not best of breed solutions any more and tighter integration between applications makes them hard to individually upgrade.

IBM goes virtual with Canonical

Techworld has the details, including some choice quotes from an industry expert who had read the press release and made some educated guesses http://techworld.com/opsys/news/index.cfm?newsid=108034

“Alan Bell from Linux consultancy, The Open Learning Centre,  said that this was significant move from IBM. The Foundations server is a clever software/hardware combination that provides a lot of server services such as file & print and email to lots of thick client computers,” he said. “This means that the client has applications such as Lotus Notes and Symphony running locally.”

He added that today’s launch changes the game. “This offering is new and different, it puts the applications on a big fat computer in the datacentre and leaves a thin client. This is quite a smart way to put Linux on the desktop, without actually disturbing your existing desktops.  I think a lot of companies will be looking carefully at this, with the CFO checking out the savings (the software savings are real, but there is hardware to buy in the server room) and the CTO getting a calculator out to see how much bandwidth all these thin clients will need and what kind of servers can fit enough RAM.”

The one downside that Bell could see was the amount of RAM that the server would need, even taking the most generous view, he said, “I estimate that if you have 100 users then that comes to 30 gigabytes of RAM for the server.”

A new Social Networking site just for people called "Alan"

I would like to announce the launch of a new social networking site, specifically catering to the needs of people called Alan. If you are an Alan, or know one, then head on over to http://thealans.com where you will meet up with literally several like-named people. If you happen not to be called Alan then you can still register and take a look around, but we might just delete your profile after a few weeks. The site is based on the Elgg social networking platform. If you think your company could use facebook-like technology as an internal tool that you can control then give me a shout and we can help you get started with Elgg.

It is probably a bit similar in places to Lotus Connections and Socialtext but I haven’t played with either of them extensively, if anyone wants to have a play then do a comparison that would be great, feel free to ask any questions.

Domino Designer on Ubuntu

designer
well actually, no not really. But that is the real icon for designer, created using the following cunning command:

touch /opt/ibm/lotus/notes/designer.exe

Clicking the icon launches the empty designer.exe file in gedit. So with the release of the Notes 8.5 Debian install I finally have a computer with Notes on it again. I don’t have a Domino server still, that broke about a year ago and I never got round to fixing it. Maybe one day IBM will realise that wrapping up .deb files in a tar archive isn’t really what you are supposed to do. Just put up a repo that we can point sources.list at and have done with it. Installing software manually is for Windows users, I don’t do that any more. Without Domino Designer on the operating system I use I don’t do much Domino Designing any more either.

On another matter, Notes <a href=”http://www.theregister.co.uk/2008/11/21/bofh_2008_episode_38/”>got a mention</a> in the Register on Friday, always good to see some press coverage.

Wierd Lotusscript ACL handles

Have a look at this little puzzle, the code below simply prints the names of all the entries in the ACL of a database, but it doesn’t work unless you uncomment the commented lines

Sub Initialize
	Dim db As New NotesDatabase("", "acltest1.nsf")
'	Dim acl As NotesACL
	Dim entry As NotesACLEntry
'	Set acl = db.ACL
	Set entry = db.acl.GetFirstEntry
	While Not entry Is Nothing
		Print entry.Name
		Set entry=db.acl.GetNextEntry(entry)
	Wend
End Sub

So accessing the ACL through db.acl.GetFirstEntry returns nothing, unless you have stored a handle to the ACL. The odd thing is you don’t have to access it via the stored handle, db.acl.GetFirstEntry magically starts working. Has anyone got a rational explaination for this?

What I have been up to

I have been deathly quiet on the Domino front recently, but don’t worry, I have been keeping myself occupied.

Some big news in the UK is that right now a major high street retailer is selling mini laptops, but not just any old mini laptop, this is the new webbook from Elonex (who you may remember I have met before). If you were to go right now to the home page of The Carphone Warehouse you will see a webbook. “nice, but unremarkable” I hear you say. Well that is just the start of the story. Right now on the web they are selling the Windows XP version, however in stores they are selling the much more exciting Ubuntu Linux version, yes you heard correctly Ubuntu Linux pre-installed. The pricing is pretty attractive too. They are giving them away free with a free mobile broadband dongle, but you pay a monthly contract price for bandwidth (the exact pricing will vary so I won’t quote figures here, go to your local store and ask them)

Now all this is really great news and well worth blogging about just as an exciting development in the mainstream adoption of Free and Open Source Software, but I haven’t yet told you what I have been up to. Well I took off my yellow hat for a bit and put on my red mortarboard of The Open Learning Centre and Alan Lord, myself, and some very clever chaps at Canonical and Warp have been working together to build all the software that goes on the webbook, including really great support for mobile broadband dongles.

There is quite a lot to say about the webbook, it is a lovely little computer, so much so that I have started a new blog dedicated to the webbook at webbookblog.com where I will be revealing tricks and hints to get the most out of the webbook.

If you ever considered getting a mobile broadband connection then this is a fantastic deal, get the dongle you want, use it on whatever laptop you have and get a free webbook (which also works with the dongle of course)

« Previous PageNext Page »