Aug 092011
 

After almost exactly one year my blog is now up and running again and a lot of things have happened since I last posted an entry.

I have a new employer and now work as a Sr. Technical Advisor for IBM. I started back in April and my primary job role is helping customers with their XPages in Notes and Domino, Social and Mobile decisions.

I worked for SNAPPS for 11 fulfilling years (about 22,000 hours) and I had a blast together with Rob Novak and my co-workers; Troy, Jerald, Julian and Melissa. Rob wrote a wonderful blog post of our years together on my last day at SNAPPS.

Aug 172010
 

From Rob Novak’s blog:

SNAPP-On Modules for Lotus Quickr are quite simply enhancements to the core product that Quickr users around the world need to make their collaboration experience more productive, easier, and more intuitive. Each module extends the “My Places” area of the product, adding functionality, new tabs, and even customizations unique to a particular company. The first two generally available SNAPP-On Modules are “Favorites” and “Custom HTML,” with several more planned and options for custom modules.

Read more about it here.

Jan 282010
 


From Rob Novak’s blog:

Last night, amidst the buzz in Cupertino about the launch of the iPad, we at SNAPPS quietly got an email notification that the fruits of Julian’s labor for the past few months, SnappFilesTM, is now available for sale on the Apple app store. “Sale” is a bit of a misnomer, since like many of our other “SNAPPS Labs” efforts, the inaugural version of SnappFiles is free. Yep, free. Can’t think of a better price.

So what is SnappFiles? It’s fairly easy to grok. Start it up, point it to a Lotus Quickr server (Domino or J2EE), and browse for your files. If there’s a viewer, open and read them on the device. Or, send a link to the page and file to anyone with one click. That’s it. Pretty easy, huh?

And, it will work straight away on the iPad when it’s released. In fact, I think it will be a killer app for iPad in business – ECM integration – as the format is so good for reading documents.

Enjoy, folks. We’ll issue a press release later today. Movies and more coming over the next couple days. And of course, we’ll be doing more of this with Domino and the iProducts…it’s fun! Go get it, or read more about it here: snappfiles.snapps.com

Jul 022009
 

Just weeks after the research & development labs at SNAPPS released PandaBear, we are introducing Flippr (Beta) for Lotus Quickr services for Domino.

Where PandaBear is aimed at end users for uploading, downloading and locating files from/to your Quickr server, Flippr is aimed at administrators. The application makes everyday Quickr admin tasks a breeze. Some of the functions that you can accomplish with Flippr are:

  • Lock and unlock places
  • Create and remove places
  • Archive places
  • Add persons and groups to places
  • Rename person and groups in places

Flippr is using a friendly interface including type ahead for selecting places, people and/or groups from the server or LDAP directory. It also features three intuitive screens.

  • On the Commands screen, you get tree-style navigation of the most common QPTool commands.
  • On the XML screen you create your own XML to upload to the server. For the advanced cases where you want to do send in many commands at the same time.
  • On the Settings screen, set up your connection to server(s), check for updated versions and check the latest release notes.

Designed on the Adobe Air framework, Flippr runs on Windows, Mac or Linux using the same application code. Just as PandaBear, Flippr features automatic check for newer version and will download and install it with a one click operation.

Flippr is free during beta, and is not time-locked or disabled in any way. Post-beta plans are still under consideration.

To download now with your QuickrTemplates.com ID (a new one takes just a minute), visit flippr.snapps.com

May 122009
 

Today we opened the registration for CU 2009 with a special Day One discount of $100. That is in addition to any Early Bird and/or Alumni discount you may qualify for.

From Rob Novak’s blog:

Rob NovakAs we enter our fourth year, Collaboration University is evolving, just like the collaboration software we know and love. With new versions of Sametime and Quickr released in the past 12 months, the release of Lotus Connections 2.5 (which we’re covering as well), this is going to be a great year to come to Collaboration University in September. The dates are:

Chicago: September 14-16 at the IBM Innovation Center
London: September 21-23 at IBM South Bank

There are 250 CU Alumni and 200+ people who requested personal notification from the CU website. They’ve been notified personally, but I though I would add this to my blog as well. Registration will open Tuesday, May 12 at 12:01 AM. Plus, there are some great Alumni discounts and discounts for registration by June 20.

We have even more speakers this year – see the previous blog entry – with five participating partners and four special industry guests. We are covering Lotus Quickr 8.2 and Sametime 8+, and are adding Lotus Connections 2.5 content.

Here’s where your investment pays off. Not only are we not raising the 2009 registration fees, but in addition to the Early Bird registration discount of $200 and up to $150 discount for Alumni:

I am extending a $100 “DAY ONE Discount” to anyone registering on Tuesday, May 12.

Head over to Collaboration University and register today!

Jan 232009
 

This years version of our Lotusphere session: “The Great Code Giveaway”: The Art of the Possible, is now available for download at download.snapps.com.

Prerequisite:

This application needs to run on a Domino server version 7.0.2 or above. Some Widgets may need version 8.5 or above to run.

This application uses The Dojo Toolkit JavaScript library.
The following is only needed, but required, if you are installing this application on a version of Domino below 8.5.

  1. Download version 1.1.1 or above of Dojo
  2. Unzip the download
  3. Rename and place this directory on your Domino server in the following path:
    path_to_root_data_directory/domino/html/domjs/dojo-1.1.1

This path is hard coded into the MyDomino form. If you want to change the path you can by modifying the HTML shown below in the MyDomino form:

<script type="text/javascript" src="/domjs/dojo-1.1.1/dojo/dojo.js"></script>

This application was tested on version installed with Domino 8.5 (1.1.1) and downloaded version 1.2.3

The application was tested on:

  • Internet Explorer 7.0.5 on Windows
  • Firefox 3.0.5 for Windows
  • Firefox 3.0.5 for Macintosh

Installation:

  1. Change the ACL to match your current environment
  2. Make a non replica copy of the application on your Domino server
  3. Sign it with an appropriate administrators ID

Usage:

Browse to the application and log in as a valid directory user. It should create a myDomino document automatically for the user.
HAVE FUN!

The code is released under the Apache license. You may obtain a copy of the License at:
www.apache.org/licenses/LICENSE-2.0

Have fun with it.

Aug 152008
 

From Rob Novak’s blog:

The SNAPPS Quickr Templates at QuickrTemplates.com have been updated with various fixes and a new feature I’ll describe here. But first, a note on versions.

We elected to match version numbers with Quickr when 8.1 shipped, so 90 days ago when they were posted, our versions revved to 8.1. Now we also have fixes to the templates unrelated to the Quickr version number or hotfix level, so have taken our versioning out two decimal points – the new version is 8.1.0.1. If we have another release before IBM revs to 8.1.1 (or whatever’s next), our version will be 8.1.0.2. Clear? Good.

Enjoy!

Jul 282008
 

Julian Robichaux is joining SNAPPS

For the first time in 5 years SNAPPS have hired a new member to our team. I’m thrilled to announce that Julian Robichaux is joining SNAPPS as a Senior Developer (or whatever he wants his title to be). Julian, who you know from six years of blogging at nsftools.com, the Taking Notes Podcast, and various speaking engagements at Lotusphere, The VIEW, ILUG, and others, brings 12 years of Notes & Domino experience to SNAPPS. Julian has provided companies and clients with a number of “out of the box” solutions, knows all the relevant programming languages and toolkits, and has extensive experience with relational database integration.

He spent a couple of days here in Overland Park with the team last week to make sure we were a good fit and let me say, I know it will be. Julian and I have met just briefly before at various conferences but I have followed his blog and the TNP’s closely. He will continue to work from his office in Georgia but will come in to the office every so often. He will be joining us for Collaboration University in September and will continue to speak at various events, just under the SNAPPS name now.

So Julian, I’m very excited about working with you and I know that SNAPPS will benefit from your knowledge and expertise. Hey, we might have some fun too. 😆

Jan 302008
 

This is the third posting going more in depth of the code I showed at my Lotusphere session BP212: The Great Code Giveaway: “Beyond Cool”. If you haven’t read the first and second article yet I recommend doing so. You find them by clicking the links. You can download the instructions, code and databases here.

What is a Grid

The Book of Dojo explains it well.

Grids are familiar in the client/server development world. Basically a grid is a kind of mini spreadsheet, commonly used to display details on master-detail forms. From HTML terms, a grid is a “super-table” with its own scrollable viewport.

The domino.view.grid that I showed in my session contains two classes. The domino.view.grid class that extends dojox.grid.Grid and the domino.view.model class that extends the dojox.grid.data.DojoData class. It also uses domino.data.ViewStore for doing the XMLHttpRequest (XHR). I wrote about the domino.data.ViewStore in the previous postings.

Instead of going through 630+ lines of code, I’m going to show how to add it to your pages or forms. First the easy one and we’ll gradually move to more complex examples.
All the examples I’m going to show require you to add a couple of lines of code to your page/form.

In the HTML Head Content you have to add a style sheet, tundraGrid.css, and the dojo.js JavaScript. The tundraGrid.css file contains all the classes needed for the Grid to display properly.

"<style type="text/css">" + @NewLine +
"@import "/dojo102/dojox/grid/_grid/tundraGrid.css";" + @NewLine +
"</style>" + @NewLine +
"<script type="text/javascript" src="/dojo102/dojo/dojo.js" djConfig="parseOnLoad: true, usePlainJson: true"></script>"

In the HTML Body Attributes we add a class of tundra.

"class="tundra""

In the JS Header we add the required JavaScript files for the domino.view.grid and the dojo.parser. This is done the very specific Dojo way. It looks like Java but is really JavaScript. Dojo does this really smart by checking if the external JS file is already loaded and available to the browser. If it is not it gets/loads it.

dojo.require("domino.view.grid");
dojo.require("dojo.parser");

All those have to be added in all my examples here. In some of the examples in the download I have added more CSS classes and more JavaScript. In the very basic example this is all we need.

Now let’s add the HTML code to our page/form.

<div dojoType="domino.view.grid" url="sessiongrid1" style="height:600px;"></div>

As you can see (click on thumbnail for larger view) this is a very basic example that just displays a 600 pixel high grid from a view called “sessiongrid1” in the same database as the page/form. If you would look at the “sessiongrid1” view you would see that these columns are in the same order and widths. If you have specified that a column is not Resizable than you can’t resize it in the Grid either.

In the next example we add an attribute of handleViewDesign=true. That will also read in font families, sizes, colors, style and justification of both column headers and bodies. It will also read in colors for Alternate rows in the view property. You also see in this example that when Display values as icons is selected on the column, it displays in the Grid. Both numbered and shared Resources work.

<div dojoType="domino.view.grid" url="sessiongrid2" handleViewDesign="true" style="height:600px;"></div>

Structure

A really neat feature of Dojo’s Grid is that you can have multi row headers. That gives us a way of displaying more data in less space, especially when we have columns with a lot of text. Again the Book of Dojo explains it for us.

In standard spreadsheet and table terminology, a cell is the basic unit of displayed data. A row is a horizontally aligned contiguous group of cells, and a column is a vertically aligned contiguous group of cells. (Wow, that makes a simple concept sound complex!)

In grid-land, there’s a distinction between rows and subrows. A subrow is what people normally think of as a row – it’s exactly one cell tall. In Grid, a row may be more than one subrow – but it is selectable as a unit.

A View is a group of contiguous logical rows with the same inner and outer “shape”… You specify this in JavaScript with an array of arrays. Each array element is an object literal. The most important property of the object is “name”, which names the column. The column name always appear as the top logical row of the grid, and unlike other rows, it doesn’t scroll up or down.

<div dojoType="domino.view.grid" url="sessiongrid3" structure="myStructure" style="height:600px;"></div>

As you can see we are using a view called “sessiongrid3”. You can find that view in the “Sessions.nsf” database in the download. In that view we have added a column with the SessionAbstract field. This field contains a lot of text and if we displayed it in the same way as the previous examples we would see only two/three documents and we would have to scroll the grid a lot. But as you can see we have added a new attribute to the div, structure="myStructure". That tells the domino.view.grid class NOT to read in the design of the view and creating the structure dynamically, but instead that we are supplying it to the grid. Below you see the code example from the page “Grid 4” inside “Sessions.nsf”.

var myViewDesign = {
cells: [
[
{
name:'Session ID',
field:"SessionID",
width:'68px',
sortAsc:true,
sortDesc:true
},
{
name:'Location',
field:"SessLocs",
width:'113px',
sortAsc:true,
sortDesc:true
},
{
name:'Begin',
field:"BeginTime",
width:"96px",
sortAsc:true,
sortDesc:true
},
{
name:'End',
field:"EndTime",
width:"96px",
sortAsc:true,
sortDesc:true
},
{
name:'Session Abstract',
field:"SessionAbstract",
width:'auto',
rowSpan: 2
}
],
[
{
name:'Title',
field:"TITLE",
colSpan: 2
},
{
name:'Speaker',
field:"Speaker",
sortAsc:true,
sortDesc:true,
formatter: withLineBreaks,
colSpan: 2
}
]
]
};
var myStructure = [ myViewDesign ];

Let’s take a look at this code. First we create an object called myViewDesign and in that object we have a property of cells which is an array containing two arrays. Each array represents it’s own row. The first array contains five column objects and the last array two column objects.

Let’s look at the first column object: Session ID. As you can see we have a few properties to this object. The first two are required. The name property is what we want it to say in the column header. The field property is the Programmatic Name of that column specified in the view column with Domino Designer. Width is the default width of the column when first displayed. sortAsc and sortDesc set to true is if we have selected that the column can be sorted ascending, descending or both.

If you look at the Session Abstract column object, you’ll see that we have a width of auto and that we added a property of rowSpan: 2. This column is going to span over 2 rows but also extend to the width of the grid.

The last two column objects are in their own array. As you can see both have a colSpan property with a value of 2. Just as you can do in a HTML table these two columns will span over two columns each, leaving only the Session Abstract column by itself. It however spans over two rows as mentioned earlier. The last thing we do is to create an array, myStructure (named so as to match the structure attribute on the div HTML tag representing the grid), and set it to our object myViewDesign. You can see the result to the right.

In this posting I have only scratched the surface of what you can do with Grids. If you download the demo databases you will see many more examples including how to open documents by clicking cells or rows. You also see examples of how to use several Grids in conjunction with each other, i.e. click on a user document in the first Grid and display his/hers sessions in the second.

If you read up on Dojo Grids on the Dojo Toolkit website you’ll see that there are many more things we can do with Grids. One is to update document data inline right there in the Grid. This doesn’t work in the domino.view.grid class yet but I’m working on it. We also need an Agent for that to work. This Grid class does not work with categorized views as of yet, but I’m working on that as well. Check back here on my blog for updates.

I hope you enjoyed this demo/tutorial and as always if you have any comments or questions please post them here.