Tuesday, August 29, 2006

What can IBM do to make Domino development better?

In a recent blog post Ed Brill poses the following question:

In a world where the majority of new applications are being built in Java (and associated languages) and .NET, what approach could IBM use today to attract hoardes of new developers to learn Lotusscript? Isn't this the whole reason that Notes get labelled "proprietary" (in the tone of voice where proprietary = bad)?

"Hannover" will deliver the best of both in that the existing model will continue and be enhanced, yet the client will be open to new Java-based development methods. Thus the inflection point I mentioned earlier.

I don't want to suggest that there's no new Notes developers or development going on -- I get to hear about cool new projects every day -- but clearly it's a different market dynamic for developers today than it was when Notes became mainstream.

It's a tough question, and not one that can be answered without being a bit harsh. The short answer is you can't attract new LotusScript developers. It's a limited-use language with no future. LotusScript is a one trick pony, if you use it you're locking yourself into doing only Notes development, and the future of Notes by no means guaranteed. Using a general-purpose language such as Java or C# gives the developer more marketability.

The other major issue is Domino Designer itself. The IDE lacks features people have taken for granted in other development tools since the early 90's. LotusScript debugging is rudimentary and Formula, Javascript and Java debugging is nonexistent. New features have been tacked on over the past seven or eight years in ways that make them difficult to use. HTML rendering, which was introduced in R4, is STILL messed up. CSS support is spotty at best. A lot of this is supposedly being addressed with Hannover, but I'm not holding my breath. Nearly a decade of promises that it'll get better has left me jaded, and it has run off a number of people who might otherwise have embraced Notes and Domino.

It seems that IBM is forcing Notes developers into Java. That's fine, it's IBM's decision to make. I find it disheartening, but not unexpected. Notes and Domino are at critical inflection points. I appreciate that IBM and Lotus are trying to walk the fine line of delivering future-focused products while not alienating their existing customer base. I also appreciate people such as Ed asking these questions and not shying away from the scrutiny.

Wednesday, August 23, 2006

SNTT - How to create a Windows shortcut from LotusScript using Windows Scripting Host calls

Recently I had a need to deploy a Microsoft Access application to a number of users. I needed to give them each their own copy of the database and give them a shortcut to it. There are a number of ways to achieve this, but I decided the easiest would be to just use some Windows Scripting Host calls. Here is a short snippet of code that will get the location of the currently logged in user's My Documents and Desktop folders, copy a file from a network drive (P in this case) to the My Documents, then create a shortcut to it on the user's desktop.
Dim sDesktop As String
Dim sMyDocs As String

Dim oShell As Variant
Dim oShortcut As Variant
Dim oFS As Variant

Set oShell = CreateObject("WScript.Shell")
Set oFS = CreateObject("Scripting.FileSystemObject")

sDesktop = oShell.SpecialFolders("Desktop")
sMyDocs = oShell.SpecialFolders("MyDocuments")

'Copy the file
Filecopy "P:\Charles\BPS Barcodes.mdb", sMyDocs & "\BPS Barcodes.mdb"

'Create shortcut
Set oShortcut = oShell.CreateShortcut(sDesktop & "\BPS Barcodes.lnk")
oShortcut.TargetPath = sMyDocs & "\BPS Barcodes.mdb"

Messagebox "Installation successful.", 0, "BPS Barcodes"
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.


Thursday, August 10, 2006

SNTT - Notes Community Template Project - Enough of the talk, let's do this

John Head made another posting about the community effort toward providing more and better templates for Notes. The reason we're having this discussion is because IBM is unwilling to invest in this idea and has suggested the Notes community pick up the banner. Bruce Elgort suggested we take the top 20 downloaded templates from OpenNTF and spruce them up. Others have suggested we work from the list of templates from Sharepoint. Since no one has taken the lead I am stepping up. My commitment is to:
  • Provide consistent Notes client UI documentation with recommended best practices based on the Notes 7.01 mail template. I don't do web development and would appreciate it if someone could do something similar for web applications. I will be posting my UI guidelines on or about August 26th.

  • Provide a framework for deploying these guidelines. The most likely vector for this is the excellent work of the openslice project.

  • Provide a best practices document for Notes development that discusses template-driven Notes development.

  • Provide nifty modules of code that encapsulate common Notes application functionality.

  • Work with any interested OpenNTF contributors who would like to apply these guidelines and framework to their own applications.
I am interested in participating in any larger movement that gets started and do not intend to cause conflict or discord. My intent is to start laying the considerable groundwork that will be needed regardless of the final direction this community effort takes.


Vacation time and happy birthday

I'm leaving on Saturday, August 12th for a well-earned vacation. My partner and I plus four friends are going to Tortola, in the British Virgin Islands. My partner and I traded a few extra timeshare weeks for a three cabins on a catamaran. We're returning on Saturday, August 19th, which is my birthday.

So no blogging or responding to blogs for the next week. Enjoy the silence.

Saturday, August 05, 2006

Side projects in the works

I've taken on a rather ambitious set of side projects that I'll work on as my time and interest permit. If anyone has any strong opinion about which one they would like me to complete first let me know. I'll be sharing source code and writing some how-to articles as I go through each one. The following are in no particular order.

  • SQL Query Runner - I spend about 95% of my time digging for data in our ERP system and executing queries to see if the descriptions they provide match the data in the table. I have been using a crippleware utility that will only execute queries that run in under 15 seconds. I'm a developer, I can fix this. I'm going to write my own query execution tool and do it in C#. I end up with a tool I can use and I learn a bit more about C#.

  • DXL UI Skinner - A core issue that keeps resurfacing in recent blog buzz is about how difficult it can be to deliver a consistent UI across Notes applications. Templates and UI guidelines are a great start, but the first time you customize a Notes UI element you can no longer synchronize it with a template. Sure you could create a separate template for every design element, but who really has the time for that? My idea is to use DXL to apply UI updates to customized design elements. I know it's been done before but I haven't found a utility that will do it, so once I get mine done I'll put it up on OpenNTF. First up will be form and view action bars and view column headers. If there are any specific design elements or properties you'd like to be able to update en masse let me know.

  • Barracuda Spam Statistics - We use a Barracuda Networks Spam Firewall 300 to filter inbound mail. It works extremely well, we block 85% of all inbound mail with very few legitimate false positives. (Users think the chain letters from their friends are legitimate, I take a different view.) It generates statistics and sends reports via e-mail, which I route to a mail-in database, parse through them, and collect statistics so I can have some idea of how much spam we're getting. Right now I'm only collecting summary traffic data. I will be expanding this to include the rest of the Barracuda reports: top spam senders, top spam recipients, top mail recipients, and top viruses. The Barracuda also exposes a CGI interface for getting access to more information, so the next step after I get the reports parsed will be to research the CGI options.

  • DNS server - Believe it or not, where I work we do not have an internal DNS server. Now that I'm getting more comfortable with linux I'm going to dive in and set one up. I only need to serve two domains and it will only be internal traffic, so I don't anticipate it being too difficult.

Friday, August 04, 2006

SNTT - iSeries to RHEL migration - Getting Domino Web Access to work

As I previously posted, moving Domino from one server platform to another is a relatively simple process: just install the same version of Domino then copy the entire Domino data directory from the old server to the new one. When you do this from an iSeries to RHEL you have to take into consideration that linux is case sensitive while the iSeries largely is not.

I ran into this after I moved my mail over and Domino Web Access wasn't working. After extensive troubleshooting I finally posted on Notes.Net and a helpful person there jogged my memory that led me down a path that yielded a resolution. A number of directories on the iSeries are in all upper case, but RHEL expects them to be lower case. Here's how I fixed it:
  1. From the Domino console
    tell http quit

  2. From the linux console (I was logged in as root but your notes user should work)
    cp -r /local/mail/domino/JAVA /local/mail/domino/java
    cp -r /local/mail/domino/TEMPLATES /local/mail/domino/templates
    cp -r /local/mail/domino/PLUGINS /local/mail/domino/plugins
    cp -r /local/mail/INOTES /local/mail/iNotes

    chown -R notes:notes /local/mail (not needed if you're logged in as notes)

    rm -rf /local/mail/domino/JAVA
    rm -rf /local/mail/domino/TEMPLATES
    rm -rf /local/mail/domino/PLUGINS
    rm -rf /local/mail/iNotes

  3. From the Domino console
    load http
In step 2 above you could use the mv command instead. I prefer to do it in two steps, copying and testing that it worked, then doing the remove separately.

Thursday, August 03, 2006

Why I'm migrating from an iSeries to Red Hat

I've taken a few lumps recently about my decision to move from Domino on an iSeries to Red Hat Enterprise Linux (RHEL). My reasons for the migration are as follows:

  • It is incredibly expensive. Just getting a baseline iSeries with a single CPU, 2GB RAM and 150GB storage is going to run you over $20K. In my case upgrading from 1GB RAM to 4GB and 5 drives to 8 drives was going to cost over $10K. This was in addition to the $40K we had already paid for the box.

  • OS/400 an arcane beast and finding good information is extremely difficult. I have a cursory understanding of how it fits together, but after eight years working with it I'm still mostly clueless! It just runs, which is good, but when there are problems I haven't the foggiest idea where to go to figure out what is going on. I end up spending lots of time on the phone with IBM support. They're good, but I would really appreciate something a little more approachable with better documentation.

  • Upgrading was a pain. Each release of Domino came with it a list of the patches you had to have on your iSeries, as well as what version of OS/400 you needed. Verifying the patches was a tedious process, installing new ones took even longer, and heaven forbid you actually had to get an OS upgrade to install Domino. Domino 7 requires i5/OS 5.3, which our iSeries won't support, so we could not upgrade to Domino 7.

  • IBM doesn't seem to know what to do with the AS/400 / iSeries / System i5. They keep renaming, rebranding and remarketing it. The latest push has been to use the iSeries to run linux. I just don't see that IBM is really moving the platform forward.
A couple of things to keep in mind regarding my perceptions. First, I have taken no AS/400 or iSeries classes. That would address my lack of knowledge, but not the rest of the issues I described. Second, I don't have an IBM or Lotus business partner I work with regularly. I have worked with a few in the past and feel that I received incorrect or even downright wrong information from them. In my most recent experience purchasing a BladeCenter and IBM SAN solution the BP was basically a mouthpiece so I could get discounted pricing. Third, I don't speak to any IBM or Lotus representatives on a regular basis, unless you count Ed's and Alan's blogs.

The decision for the migration has been made, the new hardware has been purchased, and I'm in the process of doing my migration. This is just an explanation of the reasoning that led to the decision.

Tuesday, August 01, 2006

The Notes community's involvement

Recently Ed Brill posted an article about a prominent Australian company dumping Domino in favor of Exchange. This sparked a disucssion which led to a lot of people saying the problem was Notes didn't ship with enough canned templates.

Personally I've never used any Notes templates other than the standard ones for administration databases. I created exactly one each of discussion databases, document libraries, team rooms, and database libraries. I tried to wade through the code, found it more confusing than helpful, and went off on my own... and never looked back. In my seven years developing Notes applications I have shared databases with a colleague who works in the same industry, but I have not ever used anything from OpenNTF, the Sandbox or any of the updated templates provided in newer releases of Notes.

I'm telling you all that to give you some background in where I'm going with this. John Head took up the torch from Ed's blog posting and suggested that maybe it's time for the community to step up and fill the need for more templates. On the surface that's a great idea.

The early dialog centered around duplicating the templates provided by Microsoft as part of Sharepoint Portal. My concern was that this was headed in the direction of serving as nothing more than a marketing tool for business partners to sell more of their own services. The templates would be little more than a slick UI with little behind it, leading to my analogy of a Potemkin's village of templates.

For me to get fully on board with this it has to provide fully functional applications, not just proofs of concept. In this vein Bruce Elgort suggested we take the top 20 downloaded OpenNTF templates and bring them up to speed. I think that's a fantastic idea, and I'm on board with it. It's certainly more productive than endless hours of Guild Wars. :-)