Wednesday, May 31, 2006

Kalamazoo Wings: Colonial Cup Champions!

That has a nice ring to it! On Saturday night, the K-Wings won their third straight game in Danbury, CT, to bring home the Colonial Cup. They did it by winning 12 of 13 playoff games (the first 9 in a row). The "community party" is Saturday night and we're hoping to make it.

Congratulations to the Wings and to the owners, the Parfets, who have kept pro hockey alive in Kalamazoo.

Thursday, May 18, 2006

SnTT: Taking Notes Podcast

I posted this suggestion on the Taking Notes Podcast blog but didn't get any feedback on it yet, so I'm going to try a bit of an experiment. The experiment is to see how far this blog reaches (not very far, I suspect).

At any rate, I find the Taking Notes podcast to be a good source of information - and it's entertaining a lot of the time too. If you haven't checked it out, do so, either from the blog site or through iTunes. Bruce posted today about some of the guests they have lined up for future episodes and they look good.

Now for the experiment: Bruce said in comments on the most recent podcast that they have about 1,000 listeners, which he thinks is pretty good. But I think there are a lot more people out there who could benefit from the podcast so let's spread the word. So, if you read this, are a Notes/Domino developer or admin (or are otherwise interested in Notes/Domino), listen to the podcast and have your own blog, publicize the podcast on your blog. And leave me a comment that you did (please!).

And keep up the good work, Bruce and Julian!

Technorati:
Categories: Show-n-Tell Thursday_

Wednesday, May 17, 2006

Destination: Colonial Cup

Our local minor league (UHL) hockey team, the Kalamazoo Wings, are in the Colonial Cup Finals. Game 1 is Friday night and we're going! This is their first trip to the finals in the UHL and the first time in any finals since 1981. They won the IHL championship in 1979 and 1980 so there is a lot of excitement around town.

They won the Tarry Cup this year for the best record in the league. At least they've live up to expectations so far - unlike my Red Wings!

GO WINGS!

Thursday, May 11, 2006

SnTT: Sub-Categories in Views

Kind of by accident a while back, I discovered how to add a second level of categorization in a view without adding a second categorized column. You *can* add a second column, but that will cause a second category to appear under all top-levels; I only wanted sub-categories under one of my top-level categories.

Here is a picture of what I wanted:


I only wanted additional categories under the 4. Fieldwork category. How do you do it? Add a backslash (\) and your second category to the end of your formula in the categorized column:


Note that you have to "escape" the backslash by entering it in the formula twice. I stumbled on this by seeing the behavior in a view that was categorized by a file path field (eg. Data\PlayDbs\Developer1\MyBlog.nsf). Now you have sub-categories just where you want them with no effect on categories that don't need them.

Technorati:

Categories: Show-n-Tell Thursday_

Podcasts? RSS?

As a person in the technology field, it amazes me how many techies don't know about some of the latest tools available to them. Take Bruce's RSS presentation for example; how many of you use RSS feeds to keep up on news and/or blogs? If you do, how many fellow techies do you find that you have to educate about RSS?

Another thing is podcasts. Of course, you listen to more than music on your iPod/portable music device -- don't you? Beyond Taking Notes, there are lots of others on tech to help you keep up on the news or learn new things. For now I have settled on two: Gillmor Gang which, if you can get beyond Steve G's occasional "Notes is Dead" (set him straight, Ed!) screeds, has a lot of good thinking on tech trends and directions; and Mobility Today, which talks a lot about portable technology (phones, PDAs, small form-factor computing) - just watch out for the periodic and inconsistent rants.

Find some fun ones too - but not too many or you'll never have time to listen to music again!

Wednesday, May 10, 2006

Why Didn't I Think of This?

Sometimes I feel like I don't have anything to say; other times I feel I *have* something to say but am not sure I want to put it out here for everyone to say. So I was reading another blog tonight and saw a post about a "proud parent moment" and it made me think "I've had one too!".

I'm helping to coach our son's Little League (minor boys) team this year. Last Saturday, our son spent the third inning in left center field. Out of the 10 batters from the other team, I swear 5 of them hit a ball to left center. And he stopped all of them!

I find myself amazed at how much his skills have improved over the last year. He'll probably never go to the majors (if he even wanted to), but he is doing well and having fun. And we're proud of how he's doing and that he wants to practice and get better. Just wait until the golf lessons in June!

Thursday, May 4, 2006

SnTT: Computed Outline Entries

I did this a while ago but ran across it again and thought I'd share it. I'm not sure in which release this first appeared (somewhere in 6.x), but you can set an outline entry to compute the database from which to read a design item. You may already know that you can choose a Named Item for the outline entry to display and to choose that item either from the current database or from another database. We wanted to read an item from another database but to have the database change each year without changing the outline entry. That was not possible in R5 but is now.

To do this, set your Content Type to Named Item and then click the @ (Formula) button next to the Value field. Here is a screen shot of the resulting dialog:


In the Formula for Database block, notice that the path to the database includes variables. This one points to a database in a folder for the current year; we have an entry like this plus one for the prior year in one of our outlines. We used to have to modify the outline each year to update these two entries but now we don't have to!

Technorati:
Categories: Show-n-Tell Thursday_

Monday, May 1, 2006

Teen Depression

Life has gotten in the way of blogging lately. That's just the way it goes sometimes.

Last week, we had a presentation for our youth group and parents on depression in teens. It was done by a teen who was diagnosed in the last few months with depression and included a short film he made about his feelings; the film has since won a number of film festival awards. You can read his story here. The word about this teen and his film is spreading (see this and this) and he is happy to send copies of the film and a presentation he did at his high school for your own use. If you request a copy, consider making a donation to your local mental health or suicide prevention program to support your local teens.

Over the last few months, I have developed a better understanding of this issue. Sure, there are kids who might use the idea of depression for manipulative purposes but I find myself thinking twice before I write off some of the behavior I see as manipulation. Plus, as a parent, it is helpful to know as much as I can about this and things like bullying as I watch my own kids grow up.

Categories: Youth Ministry_

Thursday, April 20, 2006

SnTT: Forcing Users to Use Your Button

OK, so I'm back with another SnTT tip. This is one we use to force users to click an action button to edit a document rather than use any other means (open from a view in Edit mode, press CTRL-E, click Actions | Edit Document, etc.).

This defines a global variable on the form (since it has to be available to the QueryModeChange and the action button) and includes code for the form's QueryOpen and QueryModeChange events, plus code for the action button itself. I haven't tested this in any other kind of button/hotspot within a form, but I suspect it would work.

We use it in an application where we want users to make changes only through a dialog box so we can restrict the fields they can change. Sure, we could have run the code from the QueryModeChange, but that's the beauty of Notes/Domino: lots of different ways to accomplish the same thing!



'(Globals):

Option Public
Dim EditAction As Integer

'Form_name:

Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
If Not Source.EditMode and Not EditAction Then
Messagebox "You must use the Edit action button to edit the document",64,"Edit " &_
"Document"

Continue = False
End If
End Sub
Sub Queryopen(Source As Notesuidocument, Mode As Integer,_

Isnewdoc As Variant, Continue As Variant)
If Not Isnewdoc Then
If Source.EditMode Then
Messagebox "This document cannot be opened in Edit mode",16,"Edit Document"
Continue = False
End If
End If
End Sub

'Edit: (action button)

Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace

EditAction = True

' Do your checks to make sure they can edit the document, then put it into Edit mode

ws.CurrentDocument.EditMode = True

EditAction = False
End Sub


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


Technorati:
Categories: Show-n-Tell Thursday_

Tuesday, April 18, 2006

Mail Database Weirdness

I've been pretty quiet on here lately, mostly because it has been really busy. I want to find something good for Show-n-Tell Thursday but everything I find seems either too basic or too complex. Oh well, that's not what this is really about.

Lately, every time I open my mail database (Notes 6.5 client, regular mail template), it goes to one of my folders rather than to the Inbox. This happens in both my local and server replica. And it happens even after refreshing the design from the template. I can't find any setting that would provoke this behavior and it happens regardless of whether there is unread mail in the folder or the Inbox. I can close the database when I am in the Inbox and it still opens to the folder.

I have my Inbox open in a frame on my Welcome page but I'm not sure that matters either.

It isn't always annoying (sometimes it is) but it is really puzzling. I can't explain why it would happen and I can't make it stop! That whole last sentence is what bothers me. Any ideas of how to fix it? If I come up with something, I'll post it.

Monday, April 10, 2006

Katrina Relief

Last week, three adults and nine high school teens from the youth group I work with went to St. Bernard Parish, LA, to help with Katrina clean up. They showed us pictures from their trip last night and shared the one word that comes to mind when they think of the trip. Those include "overwhelming", "indescribable", "unbelieveable" and "amazing". They were in an area where 27,000 homes were destroyed and only 1,000 have been rebuilt in 7 months.

The pictures we have all seen show only part of the story. As far as you can see, it all looks the same. But in the midst of the devastation, they saw signs of hope and positive energy. They feel like they made a bit of a difference, but recognize that it will take years for things there to get back to "normal", if they ever do.

I'm proud to know them and that they gave up their spring break to share with those who are in need.

Categories: Youth Ministry_

Tuesday, April 4, 2006

Once in a Lifetime

I received this from a coworker. It was too goofy (and geeky) to let it go without sharing it.

On Wednesday, at two minutes and three seconds after 1:00 in the morning, the time and date will be 01:02:03 04/05/06.

That won't ever happen again - at least in our lifetime. And, just think of how many of us are just going to sleep through this once in a lifetime event!

You may now return to your (normal ?) life


UPDATE: I realized later that another "once-in-a-lifetime" event will occur later in the year and that we might even be awake for that one. It will be at 11:10:09 08/07/06. Why do these things come into my head?

Thursday, March 30, 2006

SnTT: Compact Local Databases on Demand

A couple of weeks ago, Chris Miller posted a tip about scheduling databases to be compacted on a user workstation. If, for whatever reason, you don't want to schedule that task, here is some code you can put in a user-accessible button (like in a "Procedures Manual" document) that compacts databases and sends a mail message to the user with the results.

Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbdir As New NotesDBDirectory("")
Dim Stat As Long
Dim nlog As New NotesLog("Compact Utility")

Call nlog.OpenMailLog(session.username,"DB Compact Utility")

Set db = dbdir.GetFirstDatabase(Database)
Call db.Open("",db.Filepath)
On Error Resume Next
While Not (db Is Nothing)
Print "Compacting: " & db.FilePath
If db.PercentUsed < 90 Then
stat = db.Compact
If Err = 4005 Then
Call nlog.LogAction(db.FilePath & " is in use or not on workspace.")
Err = 0
Else
Call nlog.LogAction("Compacted " & db.FilePath & " bytes freed: " & Str(stat))
End If
Else
Call nlog.LogAction("Database " & db.FilePath & " already " & db.PercentUsed & " percent in use")
End If
Call db.Close()
Set db = dbdir.GetNextDatabase()
Call db.Open("",db.filepath)
Wend
C
all nlog.Close
Messagebox("Finished Compacting")

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



Technorati tags:
Categories: Show-n-Tell Thursday_

Tuesday, March 28, 2006

Ray Ozzie on Gillmor Gang

If, like me, you like to hear the latest thing that Ray Ozzie is up to, listen to a couple of recent podcasts of the Gillmor Gang. There are 2 episodes titled Ozzie Gang I and Ozzie Gang II where Ray talks about Live Clipboard and other things he sees for the future of computing. Pretty cool stuff.

Technorati tags:

Monday, March 27, 2006

SnTT: Homegrown Application Change Documentation

Originally posted on March 17, 2006

Change control in your application development has become increasingly important over the last couple of years. How good is your system for documenting changes? There are products out there to help manage the process and keep track of which design elements have changed but you can develop a basic system on your own.

In the Lotus Sandbox at developerWorks: Lotus (LDD/Notes.net) you can find the DatabaseDesign class. We used this class as the basis for developing code that compares design elements in two databases to identify differences. The databases can be two replicas of the same database (for example one local and one on the server) or two copies of a database (for example one development and one production). Within the same application, we also used the class to create lists of design items to populate drop down lists in a dialog box; that lets users create their own list of changed design items by choosing from lists.

Unfortunately, at this time I am not able to show you the code we developed, but I thought it was worthwhile to point out that the class is out there (thanks Damien Katz and Andre Guirard) and that it can be helpful in developing a change recording system. Contact me if you run into problems developing your change recorder.


Technorati tags:

SnTT: Sametime Success Story

Originally posted on March 9, 2006

This is a story from a while ago but it seemed worthwhile to share as a success. About four years ago, we decided to evaluate Sametime in our environment. We installed the server and rolled out the Connect client to a few people. We also made the web conferencing components available to a larger group of people to test that feature.

When we did our post-trial analysis, we found that we had pretty much paid for the software during the trial. One group of people used it for an online meeting instead of paying for another vendor's "rented" option. Our team used it to install a piece of software on 15 user machines, saving trips to desktops (including some in remote offices) or time on the phone walking people through the procedures. I know: who visits desktops to install software? But this was four years ago before automated software distribution was implemented in our environment.

To this day, it receives fairly heavy use for scheduled and instant meetings. My team uses it nearly every day to demo applications that are in development, to resolve problems on user machines or provide training at application rollout. We have also been slowly incorporating presence awareness into our applications.

The reach of the product is relatively small within our organization, but the investment continues to pay for itself.

Show-n-Tell Thursday

Originally posted on March 2, 2006

Last week, I showed a way to show responses in a view but open the parent of the response when a document was double-clicked. This week, I have another view tip. Form formulas allow you to open documents from a view using a form other than the one defined on the document. What I will show you is a way to provide users a choice of two forms to display documents and the means to set which form they want to use when they open the view.

Why would you use this? We have an application in which we want to display the fields from a document in a "report" format that can be printed for easier reading or in "data entry" format for user entry. This method allows us to use one view to perform both functions. In our case, the documents that appear in the view that uses this code are main documents and the "report" format form also contains LotusScript code to get field values from specific response documents to include in the report.

For simplicity, this assumes that all the documents in the view use the same form but it wouldn't be too hard to extend the code to handle more than one form. To give the users a way to determine the form they prefer, create an action button in the view with this code:

curr:=@GetProfileField("UserProfile";"DisplayFormat";@UserName);
@If(curr="Summ";
@If(@Prompt([YesNo];"Change Format";"You are currently opening these documents in the Summary Report format. Open documents with the document's form?")=1;
@SetProfileField("UserProfile";"DisplayFormat";"";@UserName);@Return(""));
@If(@Prompt([YesNo];"Change Format";"You are currently opening these documents with the document's form. Open documents in Summary Report format?")=1;
@SetProfileField("UserProfile";"DisplayFormat";"Summ";@UserName);@Return("")))

The Form Formula for the view is then:

@If(@IsNewDoc;Form;
@GetProfileField("UserProfile";"DisplayFormat";@UserName)="Summ";"ReportFormat";
Form)

Nothing to it!

Show-n-Tell Thursday

Originally posted on February 23, 2006

Here's my first contribution to this new web-wide feature. It took me a while to come up with something small that I thought may be useful. This is a kinda sorta pseudo-relational behavior you can incorporate into a view.

Say you have a set of response documents that contain the fields you want to display in a view. But, instead of opening those documents when they are clicked, you would rather open their parent document. And you display the response documents in other views, but in those views you want to open the response document (so you don't want to put code in the QueryOpen of the response form). What do you do?

Put this code in the QueryOpenDocument event of the view and the parent document will open instead of the document that you double-clicked to open.

UPDATE: I added some error handling for orphans, unreadable parents and replication conflicts. Don't know why I didn't think of it, other than that we hadn't run into those problems in the view where I used the code.



Sub Queryopendocument(Source As Notesuiview, Continue As Variant)
Dim doc As NotesDocument
Dim docParent As NotesDocument
Dim ws As New NotesUIWorkspace
Dim openIt As Integer

openIt = False
Set doc = Source.Documents.GetFirstDocument
If doc.IsResponse Then
Continue = False
If doc.HasItem("$Conflict") Then
Messagebox "Opening replication conflicts is not allowed in this view",48,"Open Document"
Exit Sub
End If
Set docParent = doc.ParentDatabase.GetDocumentByUNID(doc.ParentDocumentUNID)
If docParent Is Nothing Then
openIt = False
Elseif docParent.IsDeleted Or Not docParent.IsValid Then
openIt = False
Else
openIt = True
End If
If openIt Then
Call ws.EditDocument(False,docParent)
Else
Messagebox "Cannot open requested document. This may be because " &_
"the selected document is an orphan or because " &_
"you do not have access to the requested document.",48,"Open Document"
Exit Sub
End If
End If
End Sub


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

Air Travel Can Be Bad for Your Mental Health

Originally posted on February 15, 2006

OK, so anyone who has flown more than a few times has probably had a frustrating experience. My most recent ones were more memorable to me because they happened in such a short period of time. And to think we get to *pay* for all this “fun”.

I made it to Orlando when I was supposed to, had no tight connections or changes, but my luggage decided to stay in Detroit for a while longer. I had someone meet me at the airport and they ended up hanging out until 11:30 before driving 90 minutes back home. The voicemail finally came at 4:30 that the luggage was at the hotel. We should have just gone back to the airport!

I flew from Orlando to St. Louis for the weekend and that went OK. Until the trip home. A mechanical problem delayed us out of St. Louis, which meant I missed my flight out of Detroit. I got on standby for the next flight out and was sweating to see if I’d make it (otherwise it would be a long walk and two more hours in the Detroit airport). Fortunately, I made it and so did my luggage.

Then Friday we flew down to Tampa. We got on the plane in Detroit and sat for 20 minutes before they said they needed to service the lavs. Then 20 minutes later we heard that they needed to service the water in the plane. Then 10 more minutes and they said there would be a 60 minute ground stop because of weather in Tampa (which was, admittedly, bad - 8 inches of rain in 12 hours). I suppose it was better to be on the ground than to be circling northern Florida waiting for the weather to clear, but it wasn't like the plane came in 30 minutes before we left - why couldn't they have taken care of the other stuff before?

We took off 90 minutes late, flew around thunderstorms and came through another one just before landing. Of the four of us, only the one sitting next to me (our 3yo) threw up. No more details than that are needed.

But, it's vacation and the worst February day in Florida is better than the best February day in Michigan. How bad can it be?

BTW, our trip back from Tampa was completely uneventful. Just a l-o-n-g layover in Detroit.

Is This Thing On?

Originally posted February 15, 2006

Well, since Jess offered, I’m going to give blogging a try. Time will tell if I have anything interesting or worthwhile to say. This was really supposed to be posted a week ago, but vacation (of all things!) interrupted.

Went to my first Lotusphere this year. What an incredible time! Since reviews of the sessions have been blogged all over the place already, I won’t rehash them. I did attend a lot of the sessions on using DB2 with Notes/Domino and I can’t wait to get 7.01 installed (although, that might not be the best idea in some cases). We have a few applications in place already that might benefit from NSFDB2. The Office integration stuff that John Head showed will come in handy as well. And the stuff that Rocky showed was - as he says - just plain kewl.

So here are some personal experiences from the week:

  • Best experience: standing around the fountain in the Dolphin meeting a lot of people who I have read online
  • Worst experience: peeling (literally) my lips from the frozen fruit treat we had on Wednesday
  • Surreal experience #1: sitting at lunch when a group of IBMers filled the rest of the table and talking with Chris Reckling and someone who was involved with the initial involvement of NSFDB2 development (sorry I can’t remember his name).
  • Surreal experience #2: Being part of the group that walked into Boardwalk Brewery, rearranged half the tables and chairs, stood there a minute, then put them all back and walked out.

Thanks to jonvon for encouraging me to blog and to Jess for encouraging and offering a way to do it.