Friday, January 25, 2008

Lotusphere 2008 Memorable Quotes

We don't share our public keys with our neighbors. This isn't the 70's. -- Andrew Pollack

This slide used to simply say "Extended ACL BAD" but Lotus made us change that. -- Gabriella Davis

If you do enough practicing the demo works. Probably. -- Scott Good

Uh oh. That's really a problem. -- Scott Good (about 20 minutes later)

We hate the [Notes] client because we hate the end users. -- Paul Mooney

They just tried to make it pretty; and failed. -- Paul Mooney

I talk really slow and Paul speaks some other language really really fast. -- Susan Bulloch

I'd have perfect uptime. I'd meet all SLA's. It would be wonderful. -- Paul Mooney, when asked what he would do if he killed all his users.

How appropriate we began the day with a symphony. -- Mike Rhodin at the OGS

A happy user is one that won't stab you. -- Julian Robichaux

Don't tick off your users, especially if they carry swords. -- Andre Guirard

Julian - Oh yeah, that's a nasty error. Can you fix it?
Andre - No.

Nathan: That's the next social site we have to do: Lotus Hookups.
Duffbert: Powered by Lotus Mashups!

Domino web dev sucks. Anyone want to argue with me? -- Bob Balaban (one guy actually raised his hand)

That's not exactly kickass yet, but it doesn't suck. -- Bob Balaban

On day five Matt uttered his first complete sentence: "Can we have some beer?" That's when I knew we would be able to work together. -- Mary Beth Raven

Eclipse has no idea what we're doing to it. And boy is it glad. -- Maureen Leland

Domino is so robust it will continue doing something stupid while hosing down your career in urine. -- Bill Buchan

I can see a use for that. You get an OnChange event, so you can type 1-1-1 ... I just started to use my real Social Security Number! -- Nathan Freeman, justifying a horrible UI construct (that's not the beginning of Nathan's real SSN)

Now we're talking about color, and look who you're taking advice from. -- Chris Blatnick, referring to Nathan Freeman

It's a knife. You don't have one. Because you flew commercial. -- Alton Brown

I'm trying to help you replicate. -- Alton Brown

Lotusphere 2008 - Day 4: Wednesday, January 23rd

Blogging Best Practices

Jess Stratton

This was a BOF, my first of the week, and at 7:00 AM. The agenda was loosely organized around three subjects

1. Building your brand
  • Find your voice - decide what you want to talk about. Is your blog for building a business, communicating with friends, or sharing recipes? How much personal information do you want to add to it? Also be aware that everything you post -- even if you delete it later -- is still around on the Internet somewhere.

    The overall consensus was that you should add at least a little personal material to your blog. People can only read so much LotusScript code or NSD problem resolution techniques before their eyes glaze over. Engage the reader by making your blog at least a little personal. And never say anything on your blog that you wouldn't say to someone in person.

  • Use proper grammar, punctuation, capitalization and spelling. If you write like an idiot people will assume you're an idiot. If you need help with these areas compose your blog entry in a word processor first and copy it into your blog.

  • Break up content so it's not a sea of sameness. For example, in this entry I'm using headers, numbered lists, bullets and whitespace to provide some contrast and draw you to the next section.

  • "Like a woman's skirt, blog entries should be long enough to cover everything, but short enough to keep it interesting." Some entries will necessarily be longer than others, but try
    to be as concise as possible.
2. Blogging policies - personal and corporate
  • Decide where your boundaries are and stick to them. If you decide you are not going to post anything about your personal life, then don't do it... ever. Likewise, if you decide to always take the high road in online conflicts (and there will be some), then do it always.

  • For corporate blogging it matters whether you're blogging as the voice of your company or as your own voice within the company. If you already blog and want to host your blog at work make sure your blogging is acceptable to your company before you accept the position. If you are blogging personally and do not have your company's permission to publicly state where you work, don't.
3. Keep them coming back
  • Self-deprecating humor is appreciated. You probably shouldn't make fun of others in your blog, but making fun of yourself shows your humanity.
  • Participate in the community to build interest. Comment on other blogs as a way of getting your name out there as someone who is willing to put some effort into the community.
  • If possible, provide translations in other languages. There are several ways to do this, from posting twice (or more) to having a button on each post to go to an online translation service. More and more blog readers are from non-English-speaking backgrounds, and you don't want to exclude them from your content.
  • Use approachable language that is clear and concise. Not everyone knows what "verisimilitude" or "adventitious" means. Awkward grammar and uncommon vocabulary is also difficult to run through an automatic translator.

Domino Designer

Maureen Leland
Mark Jourdain

In 8.01 they're adding page access control and Property Broker usability enhancements. The big news is Domino 8.5. A bit of bad news for the Linux/Mac people: Designer will not available on those platforms in 8.5, but will come afterwards.

The primary focus of 8.5 is to improve the web development experience. They're doing this by putting Domino Designer into Eclipse. When you add a NSF to Eclipse it creates an Eclipse project. There was a bunch of mumbo jumbo about Eclipse stuff and perspectives. My takeaway was you can use Domino Designer alongside other bits of Eclipse.

Bookmarks are GONE, replaced with the concept of Working Sets. A left navigator will list recent databases, or the databases in your current working set. You can create as many working sets as you like.

The infobox has been separated into a panel at the bottom, and they're trying to get everything ported over. One cool new feature: Access information. Per design element. You can see not only the last time a design element was modified, but when it was created or last accessed. The design element properties that you get from the list of design elements has also been moved into a panel at the bottom. All these property panels can be docked, undocked, floated and... resized!

There are brand new LotusScript, JavaScript and CSS editors. The LS and JS editors both include full class and function browsers, and you can use @Formulas from JS! However, the LS and JS editors are only for "full screen editors", meaning agents and script libraries. You'll have to suffer with the same old insane split-screen editor in forms, views, pages, etc. File resources will now let you include templates for XML and HTML. I'm not sure exactly what that means.

Dojo is being integrated into the Domino server, and you can use Dojo JavaScript widgets very easily. (My notes are fuzzy on the exact steps.) There are also Dojo controls for views, action bars and outlines.

There are five new design elements:
  • XPages
    More on this in its own post, probably next week.

  • Custom controls
    This is like a subform on steroids. You add all your controls that you want to put in multiple places and then you can drag it onto any XPage. The awesome part is you can add custom properties, such as an Edit field with data binding computed from its parent.

  • Server JavaScript
    You can select whether you want JavaScript to run on the client or on the server. I don't do web dev yet so I'm not sure why this is a big deal, but it excited a lot of people.

  • Domino Connections
    Create a connection to a Domino database and reuse it in your @Formulas or JavaScript without having to compute it everywhere.

  • iWidgets
    Wrap an XPage and present it in Mashups. I didn't go to any of the Mashups sessions so I have no idea what this really means.
  • LS Debugger
  • Formula editor
  • Formula debugger
  • Form/View script editors

Worst Practices

Paul Mooney
Bill Buchan

I made my Lotusphere stage debut! I was sitting in the third row and the next thing I know someone asks if I have a nice camera, I say yes, and then I'm asked to come up on stage. I recorded the opening oath that Paul and Bill made the audience take.

The session itself was pretty freaking hilarious. Some of the bits I had seen before, such as the guy who created an agent to update every document in a database, left the agent set to run on -All Servers-, then manually replicated the database with every server. The end result was 4.8 million documents being created per hour through replication.

The best part was the last bit, though. Duffbert came up on stage and gave Paul and Bill a bit of their own medicine. Apparently they didn't follow their own best practices while preparing for a certain conference. The pictures are pretty self-explanatory.

Duffbert: Change control processes?
Bill: Oh we know about those.

Now why is Paul editing a view? That's a developer task!

Basics of UI Design

Advanced UI Design

Chris Blatnick
Nathan Freeman

The two sessions were presented back to back, and Chris and Nathan continued on through the break.

A good UI should meet three main objectives
  1. Usability - tasks are easy for users to find and accomplish
  2. Likability - eye candy sells, make it pretty
  3. Applicability - enhances their job and isn't an exercise in futility
If you don't have people who create UI's for you, change your title. You are a Designer, not a Programmer or Developer. You must build the user experience as an integral part of the development plan. Interface design is an iterative process. Keep examining the interface to make sure it is meeting the users' needs.

To make sure you meed user needs, engage in user interviews. If that isn't possible, use profiles and personas. You should spend time with the user to capture what they do, to ensure the requirements you receive actually match the work being done. You can use low fidelity prototyping, which means letting the users draw out screens with crayons, and usability testing of early prototypes to ensure you're on the right path. You should always have the UI worked out before you start working on the code.

Designing a good UI may be extra work, but it is our job to make the user experience better. You may get pushback on this by your boss, who says it will cost too much. Using low fidelity prototyping is very low cost and changes can be made easily. Fas iterations allow for a variety of approaches to be tried cheaply. The most important thing to know is that changes made after code is written is much more expensive to rewrite.

Font tips
  • Be consistent. Don't use serifs.
  • Use cross-platform fonts
  • Use cross-language fonts
  • Use fonts that have higher-resolutions available for accessibility
  • Be gentle with styles, such as bold and italics. Drop shadows, emboss, or extrusion should NEVER be used with native Notes fonts. It just doesn't render it well.
  • Use CASING to your advantage.
  • Use different fonts in read and edit. For example, in Read mode make labels smaller and lighter than data, but in Edit mode make labels the same side as data, and darker.
  • Hide some labels during read mode. People will figure out City [ ] State [ ] , Zip [ ] when they read it.
Whitespace is very important. Use table borders to push your tables away from the edge. Don't cram everything on the top left of the screen. Use fluid layouts via tables that are set to size to window and right and left align. Use right alignment to take advantage of high-resolution screens. You can use a separate form with fixed widths for printing if necessary.

You can use an editable column's InViewEdit event to display a dialog that edits the document to give quick access to common data.

Wednesday, January 23, 2008

Lotusphere 2008 - Day 3: Tuesday, January 22nd

From IBM Lotus Notes Client Application to Ajax-Powered Rich Internet Application in Less Than 10 Lines of Code!

Rich Waters
Jack Ratcliff

There are numerous Javascript object libraries out there that do a variety of things. Several Domino web developers settled on Ext and then further extended it to wrap Notes classes and released Ext.nd. It will skin outlines, views, forms, pages and picklists with Ajaxified controls. There is also a class for a Notes datepicker, and it's really nice.

The benefit of using Ext.nd is that the code for a lot of things is already written. Want to drag and drop to reorder columns? It's in there. What about skinning outlines? It's in there. You just use a class name in the HTML tab to apply the style you want to the control, and you're done.

Ext (the base framework) is now on release 2.0 and Rich, Jack and a few others are working on releasing Ext.nd 2.0 as well. Currently in the 1.0 release you have to manually copy several design elements into your database. 2.0 is adding the ability to reference a central external ext.nd database via tags (this is the "less than 10 lines of code"). They are also working hard to set it up so you can also build an application configuration form and use that to return all the stuff via an @DBLookup. One line of code and you have all the goodness of Ext.nd.

Overall it was an amazing look at what can be done to make Domino web apps look good, and it really opened my eyes. If you do Domino web apps and you're hand-coding your JS and CSS every time, give Ext.nd a look.

Expeditor Customization for LotusScript Developers

John Head
Alex Kassabov

Expeditor is a general purpose app framework. In IBM speak, it's a "universal managed client for SOA." In IBM's mind it competes directly with .Net. You can only program against it using Java, though.

That was all of the session that really made sense to me. There was a list of tools to install (Eclipse 3.2.2 and Expeditor 6.1.1 Toolkit), then a rather tortuous demo app that I'm not sure ever worked. John said the problem is that everything they were planning to show has been superceded by the My Widgets feature that was announced in the OGS. IBM realized it was way too complicated and created an easier way to do this, so hand coding everything isn't necessary. Or at least that's my take on it, if I'm wrong someone please explain it, or link me to something that does.

IBM Lotus Domino Web Server Application Development Directions

Bob Balaban
Phillippe Riand

Domino 8.5...
  • is shipping with Dojo built in. There was no commitment to the release of Dojo that will be included.
  • will produce semantically correct XHTML with classes and ID's for everything.
  • uses the JSF runtime from Lotus Component Designer to produce XPages (that's a code name).
  • by virtue of the JSF runtime, simplifies traditional JSF's by removing the JSP/servlet container dependency; removes the tie to Java; lets you choose your scripting language (JS is the default); generates pure XML (switch between visual designer and XML source in Designer); every property value is computable.
The vast majority of the web app dev functionality is in XPages. I'll cover more about XPages in a separate post, there is simply too much for me to cram in here, and the content comes from a number of sessions.

Transforming Domino Web Apps Using Domino Designer

Stuff you can do today in ND 6/7:

You can add Dojo and the extended Dojo objects by adding it in the JS Header of a page or form. Put the Dojo object ID in the HTML Other field and it will work in the browser with no other changes. This skins the control with whatever you have set up for the CSS of the Dojo object ID. Change it once and it changes for all controls.

The future stuff is, again, mostly XPages. Do you see a theme? :-)

Customizing the Look of IBM Lotus Notes 8: Coding Tips and UI Guidelines

Mary Beth Raven
Matthew Hatem

The look of the Notes 8 client is controlled via CSS, and is implemented as a theme. The titlebar, menubar and scrollbar all pull from the OS. Everything else is custom to Notes. The PIM apps also use the theme. Long-term they want to open this up so custom apps can also use this, but they can't commit to any release schedule yet.

Matt created a new theme live and it was actually pretty simple. There were a lot of steps, but he explained them well and they actually made sense (even to an avowed Eclipse hater). My notes on that process aren't really clear and I think I missed some steps. I'll install Eclipse and work with this and come up with a demo.

The UI guidelines for making YOUR apps look like Notes 8 have been published. This includes all the RGB values for everything, pixel measurements, and how you can configure things like action bars to look like Notes 8. Personally I think this is a very good idea, since it provides consistency. There are, of course, places where you want to break from it (like the bewildering number of icons), but for the most part I have no objection to using Lotus styled action bars, framesets and forms.

Formula Follies and LotusScript Lunacy: Coding Feats That Will Amaze!

Rocky Oliver

You can use @Sort([CustomSort];list;$A; $B) to sort something in a custom way. For example, to sort a list of strings by length or sort in a non-linear way.

@ToNumber doesn't care whether you pass it a number. @TextToNumber will generate an error.

When building lists with @If, use @Nothing for the exit condition instead of an empty string. @Nothing doesn't have to be @Trim'med.

New or updated ND8 formulas and LotusScript classes:
  • @AbstractSimple - same result as @Abstract but fewer parameters
  • @GetViewInfo([IsViewFiltered]) - returns true if @SetViewInfo has been used to filter a view
  • @IsUsing JavaElement - view is using the Java interface
  • @PasswordQuality - has new examples
  • @URLQuerySTring - allows dynamic DB2 query views (not sure if I got that mixed up...)
  • @UserRoles - can now go against a different database
  • @Version - added new versions to the list
  • @Command([CalendarFormat]) - now has two week and two work week options
  • NotesDirectory - directory searching and navigation
  • Notes...Collection - new methods: Clone, Contains, Intersect, Merge, Subtract (applies to NotesDocumentCollection, NotesNoteCollection and NotesViewEntryCollection)
New for 8.5
  • @Now([NoCache]) - when run on a server will force a server transaction to get the current time
  • @ManageECL
  • @ShowParentPreview
  • @RecoverIDFile
  • @WhichFolders - used in a column formula to show the name of other folders the current document is in


This is an amazing event. There are 12 tables with subject matter experts. The attendees are divided up by the month they were born in, and they go to that speaker number to start. You move from table to table, getting increasingly overwhelmed until you end up spinning in circles. Or at least that's what I did.

You can't possibly take notes since they're running through gobs of content in 5 minutes, so I'm not even going to try. If I find something posted somewhere about what was included I'll be sure to link to it. Blogger Award Reception

I met so many people I hadn't caught up with yet. The conversation was great and the food was surprisingly good. As I'm sure everyone knows by now, Jake Howlett won the award. There was a recorded acceptance speech in which he expressed his thanks and incredulity at being nominated or winning.

Lotusphere 2008 - Worst Practices Oath

I'll take some stills later. The raw AVI is now on my account. The quality is much better than what you have on YouTube. The file is 61MB even though it's only about 80 seconds. Hey, I have a 4GB SDHC card, I might as well use fairly high quality settings. :-)

Tuesday, January 22, 2008

Lotusphere 2008 - Day 2: Monday, January 21st

8:00 AM - Opening General Session

This has been live blogged, pulled apart, and covered from every possible angle. All I'm going to do is pull out the bits that interested me.
  • Last year Lotus made a number of announcement at Lotusphere and shipped all of them by mid-year.
  • There was a 9% revenue growth. It's more interesting what was not said. Last year it was "X quarters of consistent gains".
  • The guest speaker, Bob Costas, was lame. He made some pretty disgusting comments about the Chinese government. I'm not going to go any further with this; lots of stuff is circling in the rumor mill. I can neither confirm nor deny any of it.
  • Ubuntu will be supported for the Notes client after 8.01.
  • Domino 8 offers 35% savings in file storage and 50% CPU efficiency. DWA is 45% faster.
  • DWA 8.(something) will include Google map integration and spell checking.
  • 8.0.1 will be released (in some form, possibly a public beta) in February 2008.
  • Domino 8.5 is going to @#$%^ rock!! ID files can be stored in a server vault and the Notes client can retrieve the ID at runtime. NO MORE MANAGING ID'S!! You don't have to run Domino Directory, you can opt to use others. You can offload attachments to an external store.
  • Domino Designer 8.5 is T H E best announcement. (More on that in a bit).
  • I slept through Quickr announcements. Interpret that however you like. :-)
  • All five Connections services will be available on a Blackberry via a client provied by RIM.
  • The Lotus Foundations box that Mike pulled out of an envelope is a little bigger than a sheet of Letter paper (I dunno, it might be as big as an A4), and about 3"thick. It's a full Domino server. F'ing AMAZING!

2:30 - NSFDB2: Converting an IBM Lotus Domino NSF to IBM DB2 back-end - How, What and Why?

Lance Spellman, Tom Truitt

If you will indulge me, I have a brief rant. Francie Whitlock was unable to present this session for personal reasons and had to fly back to Anguilla early Monday morning. Tom Truitt, a veteran Domino admin, stepped in. Lance took it upon himself to replace Francie's name with Tom's on the session slides. Francie worked on these for months prior to Lotusphere and it was extremely tacky of Lance to take her name off them. Many were her work, and she deserves the recognition for that. All I can do is blog my displeasure, which I doubt will ever make it back to Lance, but I feel better for having done so. Very poor form, sir.

The content of the session was very good. There is a lot to getting NSFDB2 set up, so grab the session slides for a list of part numbers to download from Passport Advantage. They really need to make this a single-executable install. It is interesting to note that multiple Domino servers can connect to the same DB2 server.

It is recommended that you create a separate DB2 instance per Domino server, but it is not required. Be aware that running DB2 on the same server as Domino may actually decrease overall performance. If the Domino server is already resource constrained, adding DB2 isn't going to help. So depending on the reason you're using NSFDB2 in the first place this may not apply. Just be aware of it.

A few caveats about using NSFDB2:
  1. DB2 is organized into instances and databases. Conceptually it is like partitioned Domino servers, where you have one physical server and one install of Domino, but you have multiple instances of Domino and each of those contains multiple Notes databases. When you install DB2 the default instance (partition) is DB2, and that's fine. The problem comes in naming the initial database. You will be tempted to name it the same as the Domino server it is supporting. DON'T. You'll get odd errors that make no sense.
  2. You must enable transaction logging on the server. The best practice is to put the transaction logs on their own set of RAID 1 drives, separate from the OS, OS page file, or Domino. This ensures maximum throughput for the transaction logs. In testing you can put it on the same drives, but it is not recommended to do this in production. There, I've done my "admin good duty". Now maybe Paul will stop beating me with that stupid bat.
  3. ODS 43 is required. If the database you want to convert to NSFDB2 is on ODS 48 (the Domino 8 ODS), you will need to use load compact app.nsf -f to downgrade it to ODS 43.
  4. When working with DB2 Access Views, after you create the view you must use the Update in DB2 and the Update actions before the view will have any rows.
  5. Include #NoteID in your SELECT statements for DB2 Access Views and Query Views and it will open the document referenced by the NoteID when you double-click the entry in the view. If you leave this out, the document won't open.
When you migrate the NSF to DB2 you end up with a 1KB NSF in the Domino Data directory. This just links over to DB2 for all the design elements and data. If you create a replica of a database that has been migrated to DB2 it creates a full NSF with all the design elements and data in it. The indexer task will still run on all views, including DAV's and QV's, but the indexes themselves are stored in DB2.

So, why DB2? The biggest reasons are to reduce the overall number of views, since you can have data from multiple forms to be presented in a single view (via a Query View) or to allow back-end access to Domino data from other systems. How do you include data from multiple forms into a single view? When you create a Query View it has a SELECT statement that is written in SQL. Here is how it translates:

Formula: SELECT (Form = "Invoices" : "Orders") & @Year(DateEntered) = 2007;
SQL: SELECT Orders.*, Invoices.* FROM Orders INNER JOIN Invoices ON Orders.InvNum = Invoices.InvNum

So you're going to have to learn some SQL to work with Query Views and Data Access Views. It's well worth it.

3:30 - Features Every Notes and Domino Application Should Have

Captain Oddball (Julian Robichaux)
Captain BrownBeard (Andre Guirard)

For the most part everything is on the slides, so I won't repeat it here. There is a TON of good content.

  1. Don't force the user to fill in fields in the order they're on the screen. Add @IsDocBeingRecalculated to Input Validation formulas to prevent them from firing while a user is still interacting with the form: @If(@IsDocBeingRecalculated;@Return(@Success);@ThisValue = "";@Failure("No blanks allowed.");@Success).
  2. Use templates. Don't update actual real databases. If something goes really really bad you can revert to a previous design. It's also worth knowing that design elements can be individually inherited from different templates. For example you can have a database of common script libraries and inherit from that, and have a different template with UI pieces, and yet another template with agents.
  3. Use a help form and view, then use @Command([OpenHelpDocument]...) to display it. This will produce a standard help window that can be viewed outside Notes and won't lock the display, and it will let you delegate help authoring to someone else.

5:00 PM - Templates, Templates Everywhere

Bruce Elgort
Kevin Pettitt

This was a great overview of a lot of good templates that are available. These include things available from OpenNTF and individual blogs. I think Kevin said they have over 120 slides and covered nearly 30 templates, so download the presentation to get a glimpse of what they covered. My favorites were:
  • Team Mailbox
  • Design Catalog (un-freaking-believable)
  • Vacation Request (it needs a makeover)
  • Doc Master (by Chris Doig, no link was provided)
  • Domain Patrol
  • Conflict Manager
  • Dolmio
  • OpenSlice
  • Domino Application Framework

6:15 - Blogger Press Conference

This was the second annual event, and I was both surprised and delighted to be invited. As we walked in we were asked to write down our names, which were put in a hat (literally) and drawn to see who would ask questions. There were 25 bloggers attending, and for most of the time it was only Mike Rhodin fielding the questions. Alistair joined him about mid-way through.

Q Chris Miller: What is Lotus doing for Web 3.0?
A Virtual worlds are interesting and still involving, and IBM is experimenting. They are using gaming for training and certification. You get the certification when you get good enough to progress to the next level. SAAS and social software has a long run ahead of it, but IBM is definitely interested in being at the forefront of the next evolution.

Q Russ Mayfield: What is the most disruptive technology that Mike has seen that needs to be fully understood and embraced all the way down the organization?
A Social software. It breaks all the traditional chains of command and control. Businesses don't know where their potentially confidentially information is being shared, and they need help in understanding how to manage this risk while taking advantage of the benefits.

Q Yancy Lents: Was there anything Mike wanted to cover at the OGS that he couldn't due to time.
A This is why Mini Mains were added throughout the conference, to give more time to focus on specific products. In particular there are a lot of things happening with Unified Communications.

Q John Head: Will Foundations include a hosted mail component?
A Hosted Notes was introduced in September 2007 due to market demand. It isn't in Foundations now but that is the next logical step. The ultimate goal is to integrated Foundations and bluehouse in such a way that it is completely invisible to the end user what is on premises and what is delivered via SAAS. There is a need for on premises in developing countries.

Q Rob Novak: Is there visibility to the issues caused by Windows-specific pieces, such as ActiveX controls?
A Yes, and they are rooting them out as they find them. They are very interested in Rob's list of areas that concern him.

Q Rich Schwartz: Is there any commitment by IBM to get into local community colleges? Will there be a certification for the SMB products that were announced?
A [There was no firm answer given to the first part of the question] A certification program for SMB is high on Mike's list.

Q Mitch Cohen: Public social network have Outlook integration. Why not Notes?
A They're currently finding the right approach. They understand it's needed, but with Connections out there some of the social sites consider Lotus a threat. "Watch this space."

Q Bill Buchan: How has Lotus performed versus competitors for the past year?
A Microsoft was the most aggressive they've ever been. When Microsoft takes on someone head on they don't expect them to fight back. They are reeling from the punches, and the last thing they ever expected was Symphony.

Q Bruce Elgort: A new discussion template was presented during the OGS. What about the rest of them? What about having a stable of good, high-value templates available out of the box like Sharepoint has?
A All of the templates will eventually be redesigned using XPages. [There was no good answer given to the last part of the question.]

Q Alexander Kluge: What does IBM see as the role of partners in the new Foundations and bluehouse SAAS offerings?
A Foundations is extended by bluehouse and BP's can play a role in either place. bluehouse is intentionally loosely coupled to allow BP's to integrate into it.

Q Warren Elsmore: Foundations is obviously a play against MS Small Business Server. It is a totally different model for the very small shops than what IBM has traditionally gone for. How is Lotus handling that?
A It's definitely strategic. A lot is going on, Nitix was a tactical acquisition to get to their 2600 resellers and partners. They will be capitalizing on the role of those partners.

Q Matt White: What about Domino Designer on Mac or Linux?
A [There was a lot of noncommittal faff. In short, it's likely to happen in the 8.5 release but there is no guarantee.]

Q Nathan Freeman: How does lotus plan to integrate their current community?
A Greenhouse is out there for everyone to use. Best Practices Wiki's have been launched. These Wiki's will be community editable. [This contradicts what has been said by other IBM'ers, in particular, those responsible for said wiki's. Alistair committed to getting everyone on the same page.]

Lotusphere 2008: Blogger of the Year Award

This was just announced and pretty much all the bloggers are tied up, so I'll probably be the first t post... unless one of them was live blogging on their Crackberry, which I wouldn't put past any of them.

Anyway, without further ado, the winner is....

Jake Howlett!!

Monday, January 21, 2008

Lotusphere 2008 - Day 1: Sunday, January 20th

8:30 AM - JMP301 - Understanding Security in IBM Lotus Notes and Domino

Andrew Pollack and Gabriella Davis

A very good session for a relatively high-level overview of Notes and Domino security. I knew a lot of it already, but I still came away with several good pointers. Pretty much everything is on the slides, which will be available shortly. Here are my key takeaways

Certificate Authority
  • Certificate Authority is your friend. It allows you to lock up your physical and delegate user creation while maintaining a high level of security.
  • You can assign Registration Authorities who can register or recertify people without having to know the certifier password.
  • It even works to register people from webadmin.nsf
  • Do not manually edit the ICL database. You will corrupt it and have to re-migrate the certifier.
Password Recovery
  • As of R7 you can change the length of the recovery password (6 character minimum).
  • R8 adds password checking for HTTP. You can configure what happens when someone hits a threshold you specify. For example, lock them out for 10 minutes after 3 invalid attempts.
  • Don't keep physical backup copies of ID's. It's absolutely pointless.
Change to public key checking: You can now turn it on and log mismatches, while still allowing access. Recertify any mismatched people to get keys in synch then bump up to deny mismatches.

Users should never update their ECL or get an ECL warning if things are working properly. Use a security settings policy to set a default ECL and block users from updating it.

Do not use */org in the ECL. This will allow anyone to send malicious code to anyone else and it will run.

Every database needs an owner. Every e-mail group needs an owner. Review both at least quarterly.

10:30 AM - JMP205 - AJAX and JSON for IBM Lotus Domino Applications

Scott Good

There are two built-in ways to get structured data back from a Notes view: http://Host/Database/ViewName?ReadViewEntries and, starting in 7.0.2, http://Host/Database/ViewName?ReadViewEntries&OutputFormat=JSON . The first returns XML, which means you have to parse it and it's a lot of text. JSON is much more terse and works a lot like LotusScript lists.

I can't do Scott's presentation justice without examples, so go download it from him.

4:30 PM - JMP302 - All Things Mail with IBM Lotus Domino

Paul Mooney and Susan Bulloch

Locations move to preferences in 8.0.1. Paul really, really hates this. A lot.

Notes 8 will do MIME conversion on the client for Internet mail. This is a good thing because it keeps the burden off the server.

SMTP mail routing between Domino servers is possible, but pointless. You lose the ease of Notes Named Networks, and the mail has to be converted from Richtext to MIME, then back to Richtext.

Notes.ini setting MailDisablePriority=1 will prevent anyone from sending an e-mail flagged with High Priority.

Inbox Maintenance in R8 will remove from the Inbox anything older than the number of days you specify. Smaller Inboxes keeps the servers happy. You can enable it via policies. Be sure to communicate this to users several times before you turn it on. Start with a wide range and lower it gradually.

Welcome Reception

It was COLD. The wind was whipping and it was simply miserable. The food was worse than usual. Some kind of subs, which were nearly frozen, baked penne pasta with marinara, and sausages that were too big to eat in one bite but they didn't provide knives.

Blue Zoo

Somehow I was lucky enough to get included in a group that went to Blue Zoo for dinner. The service was very good and the food was even better. I had the roast beet salad and the miso marinated sea bass. The salad was delicious and the sea bass was cooked nicely and had a buttery texture. The only miss for me was the spinach served with it. It was slightly gritty and had sat around for a while and turned black so it was unappealing.

Lotusphere 2008 - Day 0: Saturday, January 19th

I left the house about two hours later than I expected, and it rained all the way from Charleston to Jacksonville (about 4.5 hours). After that the rain stopped until I got to Orlando. I made it in 6 hours with an average speed of 72 mph. :-) Check in was painful due to some woman who kept saying the same thing: "But I'm a Starwood Elite member!" Apparently she showed up without a reservation and thought she would just get a room.

After I checked in I dashed off to Spoodles for dinner with the Over The Rainbow group. It was absolutely monsooning outside. I brought a small umbrella and I'm glad I did, but I still got soaked from the knees down and my shoes were soggy. When I got to Spoodles I couldn't find Robert (the guy who made the reservations) and they didn't have anything listed for his last name or anything else I could come up with that would have been relevant.

I hurried back to my room at the Dolphin to get Robert's phone number, which I wisely had not programmed into my own phone. I'm a thinker like that. I called him, and of course he didn't answer, so I checked the Google group to confirm the time. Of course, at about that same time I remembered that last week Robert couldn't get a table at Spoodles and had moved the gathering to the Captain's Grille at the Yacht & Beach.

It was now about 7:40 and we had 7:30 reservations. As I was debating what to do Robert called me back. There was a waitlist for the reserved seating, so I headed over and met up with him. It ended up just being the two of us and the food was surprisingly good. We went to Jelly Rolls afterwards for a while. I got back to my room fairly early, unpacked, and started working on an application. I woke up when I fell out of the chair and I went to bed.

Lotusphere 2008 was off to a good start.

Friday, January 18, 2008

If you see me at Lotusphere, say hi!

I know this is post#6 this week, and I promise I'm not trying to burn out your RSS reader a la The Live-Blogging Podcasting Press-Wannabe Guy. Seriously, if you see me at Lotusphere please don't hesitate to introduce yourself. Bloggers are people too. :-)

Here's a picture of me at Park Guell back in November.

taking ASW to a whole new level

I mean that in the best possible way. :-D

Lotusphere 2008: one teaser down, eleventy billion to go is a new place for the Lotus community to congregate. It was just made live (3:54 PM), so I haven't had a chance to explore it yet.

Brought to you by the I-hope-they-never-use-their-powers-for-evil brain trust at Lotus911.

UI redesign: getting rid of the outlines

In my last post I outlined a problem I had when trying to replace an outline with a combination of caption tables, tabbed tables and embedded views. Even using one of the hacks I came up with I still had one problem: tables cannot be made to fit to the screen height, and embedded views in tables do not implement the size to window properties correctly. I found a solution, thanks to SnTT, Don McNally and Slawek Rogulski. (Follow the link to Don's blog for a more complete write-up of what I'm about to discuss.)

The implementation is pretty trivial. A form can have a header. You put your navigation bits in the header of the form. The remainder of the form contains a computed embedded view. When configured in this way embedded views do implement the size to window properties correctly. If you set the left margin of the embedded view to 0.75" it lines up with the left margin pretty well. Here is what I have come up with so far.

Everything in the top blue section is in the form header. The rest of the form is taken up by the embedded view. The button panel in the top left is for one-click access to creating new records. I'll probably replace that with something like Create new [-----] [GO] and let them select from a list and click the GO button and just leave it at that.

Thursday, January 17, 2008

Embedded view bug

I have an old app that I'm redesigning and consolidating multiple lightly-used databases into one. The old design was a typical three-panel layout. I wanted to do something fresh and easier to understand. I decided that instead of the typical tree hierarchy I'd flip it sideways, with a caption table replacing the top-level tree items, and tabs inside the caption table to represent the lower-level views.

It looked good on paper, but in Domino Designer 8, 7.0.2, and 7.0.3 there is a bug with this configuration. When you...
  1. Select a tab with an embedded view and
  2. Select a different row in the caption table
  3. You get this

It's a little hard to tell what's going on here, so let me explain. The caption rows expand and collapse properly. The tabbed table in the previously selected caption row disappears. But the embedded view stays put, covering the newly expanded caption and any others below it. I can't select any other caption row and I can't add anything to the current caption row.

Now for the real kick in the rubber parts: it only does this in Domino Designer. It works perfectly in Notes 8 Basic/Standard, 7.0.2 and 7.0.3. So far I have come up with three workarounds in Domino Designer:
  1. Close the form, and save it so the currently expanded caption will be visible when you reopen.
  2. Use a blank dummy tab at the end, and select that before changing caption rows.
  3. Scrap this altogether and find another solution.
I chose option 3, partly because of this bug and partly because it's still not intuitive enough. I'll blog more after I have that built later this evening.

SnTT: Putting your Lotusphere calendar on your iPod

I remember way back when Alan Lepofsky posted about saving contacts on his iPod. I don't have any contacts to manage so it didn't mean that much to me. But I also recalled someone in the comments mentioning a way to export calendar entries to your iPod. Now that is something I can use! It's actually very, very simple.

A couple of things to know about this process. I use Ben Langhinrichs' Lotusphere sessions database to add sessions I'm interested in to my personal calendar. It has a nifty "Add to my calendar" action you can click and you're done. I don't use Lotusphere Online so I have no idea if it will integrate with your Notes calendar or if you can export your selected sessions. If you use Lotusphere Online you're on your own.

Okay, enough chit chat, let's go!
  1. Select the calendar entries in Notes
  2. Go to File > Export
  3. Browse to your iPod (it has to be connected as a hard disk)
  4. Open the Calendar folder
  5. Enter a name for the file to be saved
  6. Change the type from the default Structured Text to Calendar File (.ics)
  7. Click Export
You're done! The entries do include some extra "stuff", which you could edit out of the .ics file if you choose. To get to the calendar on your iPod, go to Extras > Calendar. You can add the Calendar to your iPod's main menu by editing the main menu in Settings.

Thursday, January 10, 2008

if you wanted to go to a hands on lab at Lotusphere, forget it

The e-mail for hands-on labs went out at 3:45 PM ET on January 9th (yesterday). Today, January 10th, every single lab is full, except for one about Websphere Portal. Oh, but don't despair!
At 5 minutes before session start time, standby and then gallery seating will be admitted. Any pre-registered enrollees arriving less than 5 minutes before start time will forfeit their spot and be seated based on standby availability.
Give me a freaking break. They only allow 25 people to sign up for what they call keyboard access, and 25 more as "keyboard helpers". I'm sure someone thought this was a good idea but it's not really solving anything. There are absolutely, positively no repercussions for not showing up. Anyone want to take bets on how many people sign up and don't show? I wouldn't be surprised if there were empty seats since there is now even less chance of getting in. Since you know that every seat is already spoken for how likely are you to stand around hoping for a second-hand scrap?

And yeah, this pissed me off so much I blogged on vacation.

Friday, January 04, 2008

Thursday, January 03, 2008

probably old news for most of you

Here is my Netvibes page with the IBM/Lotus blogs I subscribe to. What do you notice about it?

See the second one from the top on the right? That's right... Damien Katz is back at IBM! I don't know what, if anything, that will mean to Notes developers, but it's definitely not a bad thing.

another year in review post

2007 was one of my oddest years to date. Lotusphere 2007 was one of the highlights of my life, thanks to all of you. Things went all to hell shortly after that. I changed jobs in May and nothing I was promised has come to pass. By now I was supposed to be IT Director but I'm still a code monkey plugging along. The consulting has gone very well. My only client is still my former employer, but we are making progress and I'm doing some really cool things.

I traveled a lot last year and most of my trips had some weird component to them. In February I nearly died in Whistler. Twice. I had to do emergency surgery on my car during my trip back from the Eastern Shore in June. I missed getting together with Stan when I was in Toronto in July. I managed to embarrass the groom during the reception for the October wedding in Boston. And then there was the November trip to Barcelona and the cruise, which were both so disastrous I can't even bring myself to write it all down.

Something was really off for me last year. Here's to 2008 being better. You don't know how much I'm looking forward to Lotusphere again. :-)

Wednesday, January 02, 2008

Barcelona and Oceania Regatta

Barcelona and Oceania Regatta pictures are on Flickr now. Since it's been two months I won't bother doing a writeup. If you have specific questions about my experience in Barcelona or on the Oceania Regatta let me know.