Tuesday, January 29, 2008

Is the IBM open source model the way of the future?

I ran across a couple articles that got me thinking about the future of open source software. I land somewhere in the middle when it comes to software. When I really like and really need a particular application I fork out the dough and pay for it (or for work-related projects, get my employer to). However, like most folks, I'm not made of money and most of my personal software needs outweigh my ability pay so I look for the cheap and free ones to get by. (Even if I can't contribute to the project financially, I try to at least help out in other ways.) When it comes to either proprietary or the open source stuff, I always appreciate a well put together application.

Jeff Attwood wonders in a very heavily commented upon post about open source why it is that people don't care that the software they run and platforms they run them on put them at the mercy of vendor restrictions and potential dead ends? Ironically, its also these same proprietary focused vendors that seem to be providing the most innovation. Why is it that people shell out tons of cash for software that is locked down when the open source model can theoretically provide more innovation and a virtually endless lifespan?

One thing I would like to add to the conversation is an observation I have about how IBM has embraced the open source movement. This hybrid model of combining a for profit element to a project (i.e. Eclipse/Expediter or OpenOffice), thereby injecting some much needed financing and even some leadership does show some promise of making software better for end users while at the same time not limiting the platform they operate on.

A post on the ZDNet Open Source blog also confirmed for me that others view Symphony as a worthwhile piece of software too.

Monday, January 28, 2008

DXL Round Tripping

This is a great idea and is worthy of every Notes developer's support. Go vote now!

Friday, January 25, 2008

Trialpay

I received a notice from WinZip informing me that the trial period had run out and I should purchase a licensed copy. It also gave me the option of using trialpay.com to pay for the license. The premise is that you purchase something else and that Trialpay vendor pays for your Winzip license. I gave it a try and purchased a magazine subscription for my wife. On the surface, I think this is kind of neat. We'll see how it goes...hopefully I don't get spammed to death.

Wednesday, January 23, 2008

Lotus Notes Inbox as Social Networking Tool

Saw this one, Xobni: Social Network in Your Inbox, on ReadWriteWeb a few days ago and was thinking I'd see something similar annoucned at Lotusphere. Now I'm not on Notes 8 yet and haven't had the privilege of using Quickr, Connections, etc., but I'm not aware that Notes has pulled all of this new Web 2.0 stuff together like this yet.

Xobni (that's inbox backwards - cute!) is the next big idea in productivity enhancements for your inbox. The Xobni software is an add-on for Microsoft Outlook that offers email management and quick access to important information in your email. But more than that, Xobni claims to "expose the hidden social network" in your email. That's ingenious because everyone I know is in my email...somehow, somewhere...but they may or may not be my friend on MySpace, Facebook, flickr, YouTube, etc. This is especially true for my family members over 40!

Xobni taps into email's hidden social network by creating information-rich profiles out of every person you have ever corresponded with by mining your email for information about them.

The Xobni software has several features, including fast email search, email analytics, automatic phone number discovery, threaded conversations, and more.

The email search is fast and begins finding the people and/or emails you're looking for as you type. A search for a contact will pull up their profile and every email where you two have corresponded...in 0.3 seconds!

Now I saw Alan post some instructions on adding LiveText search in 8.0.1, and you can argue that Notes has had alot of this all along, but I kind of expected this kind of stuff to be packaged up in the templates and/or included as plugins to the new architecture.

A Xobni profile is created for every person you've emailed with and is displayed on the right side of Microsoft Outlook inside the Xobni sidebar. Each profile displays relationship statistics, contact information, related people, threaded conversations, shared attachments, and the author of the message you are currently looking at.

The relationship statistics show things like the time of day when you receive emails from the contact, the balance of incoming and outgoing messages, and the person's rank out of all of your contacts. These statistics are created by Xobni's powerful analytics engine, which can also be accessed from a menu option to further analyze your email habits with numbers, charts, and graphs.

A contact's phone number is displayed in the Xobni sidebar by automatically extracting that information from your emails. This way, you can see someone's phone number even if you've never actually entered them into your Outlook contacts. If you hover over the phone icon next to the number, you can see the text of the email from which their phone number was extracted.

Further down, the related people section shows other people who are connected to that person in some way, exposing your shared friends as well as your contacts relationships to each other. Clicking on the name of one of the "related people" will take you to their profile in the Xobni sidebar.

Beneath the related people pane, a recent conversations area shows your most recent previous correspondence with that contact. This can be very useful to help jog your memory when replying to a new email, as you can quickly recall what had already been said. It can also save you time because you never have to navigate away from the current conversation to locate previous emails. The conversations are listed by date, and by clicking on them, you can then view the emails themselves. You can also reply or forward one of those emails right in the Xobni sidebar, or you can choose to open the email in Outlook. Attachments they've sent you or you've sent them are underneath the conversations area, again saving you from having to navigate away from the current conversation to find the email with the attachment you need.

Maybe this is just marketing hype by Xobni or possibly an evil Microsoft plot to steal any Lotus thunder this week, but sometimes just packaging this stuff the right way makes the light bulb go off over people's heads. I've seen alot of cool stuff demoed for Notes 8, and even Quickr, Connections, Sametime and the Expediter plugins contain alot of similar (if not same) functionality, but I haven't seen it packaged all together this way. Is Lotus leaving this up to the ISVs?

Tuesday, January 22, 2008

Notes 8.5 Goodies for Developers

Several posts are showing up from Lotusphere regarding the 8.5 goodies for developers. Declan Sciolla-Lynch has posted some highlights from AD302 : Lotus Domino Web Server Apps Development Directions.

I'm particularly interested in xPages; can't wait to see this one in more detail.

xPages ( just a code name right now so may change ) is a new feature in Domino 8.5. It leverages JSF based java runtime from Lotus Components. xPages are builtin design elements for creating modern web apps with builtin Ajax features.

xPages is built ontop of JSF. there is no need for JSP or Java. Allows use of scripting languages like JavaScript XPath etc. Built in XML support and most importantly all done in the Domino environment. No need to deployment to a JAR like on WebSphere Portal.

xPages can be looked at as a pure XML file and every property is computable. There is a palette of prebuilt controls and you can add your own custom controls. The custom controls are like subforms on steroids or you can support Java controls.

Loads of AJAX support to make page refreshes lighter, Ajax typeahead can be added to any control and implemented via a formula on the page design No need to write your own AJAX service.

The look and feel is driven by CSS. This can help enforce a look and feel acrosss all your apps. This also allows you to skin your apps, there is a default style used for controls but they can be overridden in the CSS skin.

Skins can also detect the browser so you can have different skins for different browser types ( IE, Firefox, Windows Mobile, iPhone etc ).

I'm also eager to see LotusScript in the "Eclipse" environment. The tools like type-ahead, the class browser, and the properties panel make Java coding so much easier; can't wait to start coding LotusScript the same way!

Back from Colorado

After many hours behind the wheel across the icy heartland, I'm back from a nice family vacation skiing at Breckenridge, CO. Snow was great, but the temps were a bit on the cold side.

Too bad the Packers didn't have enough in the tank to make it to the Super Bowl. Nothing to be ashamed of; a pretty great season for the young team.

Trying to get caught up on all the Lotusphere posts. I plan on commenting on some of the news, especially as it relates to development.

Sunday, January 13, 2008

Attachments Hack

Until recently, my development work was sequestered to either the Notes Client or the Browser, with very little crossover. A project I'm currently working on made me realize how much I take for granted the ease of programming for just the Notes Client. Even browser-only programming is just slightly more work. Trying to get your application to behave nicely in both worlds can be a bit of a challenge.

Although on a basic level Notes does a fairly nice job of translating between these two worlds, there are some paradigms that work but take alot of effort to approximate. One of those paradigms that does not translate easily between the two platforms is file attachments.

If you've ever worked with attachments in both worlds, you know that Domino sticks them at the bottom of your web page and not in the rich text field you had them in on the Notes client side — rich text is another thing that doesn't translate well, but that's a subject for a future post. To get attachments to approximate the Notes Client experience, start out by borrowing some code from Jake's example database for handling attachments on the web. He uses a few hacks such as '$V2AttachmentOptions', and '%%Detach', along with the familiar '$File', '@Attachments', and '@AttachmentNames'.

That should cover things from the browser side, now throw in a little LotusScript in the WebQuerySave event from the Breaking Par website to clean things up for anyone seeing the document on the Notes client side.
**See my tip at the bottom.

Here's my version of the Breaking Par code sample that I wanted to share:


Option Public
Use "OpenLogFunctions"

Sub Initialize
' This agent moves a file attached via the Web with the File Upload Control to a rich text field.
' Much credit to the Breaking Par site http://www.breakingpar.com
On Error Goto ERRORHANDLER

Dim doc As notesDocument
Dim s As NotesSession
Dim tempDir As String
Dim attached As Variant
Dim fileToEmbed As notesEmbeddedObject
Dim filePath As String
Dim rtItem As notesRichTextItem
Dim moveToFieldName As String

Set s = New notesSession
Set doc = s.documentContext
Let moveToFieldName = "rtf_Attachments"
numAtt = Evaluate("@Attachments", doc)

If numAtt(0) > 0 Then
attached = Evaluate("@AttachmentNames", doc)
tempDir = s.getEnvironmentString("Directory", True)
'Put a trailing slash at the end of the directory if it is needed
If Instr(tempDir, "/") <> 0 And Right(tempDir, 1) <> "/" Then tempDir = tempDir & "/"
If Instr(tempDir, "\") <> 0 And Right(tempDir, 1) <> "\" Then tempDir = tempDir & "\"

Forall i In attached 'extract all attachments to the file system
If i <> "" Then
Set fileToEmbed = doc.getAttachment(i)
filePath = tempDir & i
Call fileToEmbed.extractFile(filePath) ' Save the file on the server
End If
End Forall

Forall i In doc.Items 'remove all attachments from document
If i.Type = 1084 Then
Call i.Remove
End If
End Forall

Call doc.RemoveItem(moveToFieldName) 'remove current attachments field...
Set rtItem = New notesRichTextItem(doc, moveToFieldName) '...and start over

Forall i In attached 're-attach the files to the rich text field
filePath = tempDir & i
Call rtItem.embedObject(1454, "", filePath)
Kill filePath ' Delete the file(s) from the server file system
End Forall
End If

Exit Sub
ERRORHANDLER:
Call LogError
End Sub


This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.


Although we rely on these 'hacks' to get Notes to behave in these two different worlds, I feel that this is what makes Notes such a valueable tool in the enterprise. And by extension, makes Notes developers valuable too. Leave a comment if you now of any other attachment hacks.


** I know blogs like CodeStore have become the 'go to' sites for sample solutions; Lord knows I rely on them a ton. The new stuff is great, but the old Breaking Par site still has alot of great information, as do the Notes forums at Developerworks. Similarly, I used to rely alot on the old notes list, LNotesL, but it died not too long ago; some posts have been archived though.

Saturday, January 12, 2008

Packers one game away


Congratulations to Brett Favre, Ryan Grant and all the Packer players and fans on a huge win over Seattle!!! This game was a great example of how perseverance and never giving up when you're behind (down 14-0 in the first few minutes) can ultimately lead to success. In this case dominating success (42-20).

Wow, what a season for Brett. Let's hope the momentum and the magic continues all the way through to the Super Bowl.

Passion

I want to keep the topic themes alternating between Lotus Notes and the pursuit of excellence, however, I noticed that I'm a little light in the Lotus department, but wanted to get this 'pursuit of excellence' post in while it is current.

In my hometown newspaper today, there's an article on my old friend Rick and his obsession/hobby/business/love. Before I moved to the Twin Cities, I had my cars serviced at Rick's garage. What I loved best about getting my oil changed at White Glove was the chance to have Rick show me the latest restoration he was working on and give me the history behind it. Rick's collection of classic autos is an amazing sight to behold. But what I enjoyed best was listening to Rick talk about these marvelous machines. The way he talked about them brought everything to life.


Along the same lines is my uncle Jim and his passion for Colt firearms. Like Rick, Jim can tell you everything about a particular model and the passion that comes through sort of imbues a virtual personality in that inanimate object.

What Rick and Jim have taught me is that passion is what separates someone from being average in a particular area to being exceptional. I must say I don't have a hobby or an issue that I'm passionate about, but I do get a big charge out of putting together solutions to help solve a problem. I guess that's why I really like working with Lotus Notes/Domino.

What do you think about passion? Do you have it? Do you know someone who does?