Who is this guy?

Idea Jam

PlanetLotus.org

Flickr Photos

www.flickr.com
This is a Flickr badge showing photos in a set called BlogPics. Make your own badge here.

Blogroll

The Badges

July 24th, 2008

Momelettes.com - new site by Jess Stratton

Yesterday Jess released her new blog momelettes.com into the wild.

From her announcement:

Momelettes.com will contain tips for moms, ranging from lifehacks to cool websites, to useful tech tips and gadgets that will help them out.

My wife is already plugged in, as she and I were some of Jess' early beta testers.

My hope is that Jess has lots of luck with this site, and will be able to spend the quality time she wants to have with little Zoë.

July 23rd, 2008

S&TT - Tagging Mail Documents...slightly extended

One day early for S&TT, but I couldn't wait...

Ever since I read the post that Chris Blatnick put up last month about adding tagging to your mail file, I have been intrigued.  I quickly did as he suggested and created a new toolbar button with the code he provided and starting tagging away. 

I quickly realized that this was going to be a tedious process in a couple of ways if I was going one document at a time and had virtually no way of knowing whether the documents had been tagged.  I of course don't want to, and can't, make design changes to the design elements of my mail file, but I could create a new view based off of an existing view then add a column for the tagging information and also some actions related to tagging, instead of just using the toolbar icon.

I created a new view based off the All Documents view (called it 'All by Tags') and threw 2 columns into it, in front of the Who column, one being a category totals column with detail rows hidden, and then a categorized column, showing multiple values as separate entries, and with the formula - @If(txt_customtags = ""; "*No tags applied";txt_customtags).  This now brings the tags applied to the forefront, and also shows which emails do not have any tags applied yet, all together.

I modified the code for setting the tags on the document slightly resulting in this view action called "Tag Document":

REM {Get tags stored in database};
Tags := @GetProfileField("TagsProfile";"txt_CurrentTags";@UserName);

REM {Get any tags from the selected document};
DocTags := txt_CustomTags;

Selection := @Prompt([OkCancelListMult]; "Select Tag(s)"; "Please select the tag(s) to apply to this document"; DocTags; @Trim("*-add new-*" : @Unique(Tags : DocTags)));

@If(Selection = 1;
              @Return("");
@IsMember("*-add new-*"; Selection);
               @Set("NewTag"; @Prompt([OkCancelEdit]; "Enter New Tag"; "Please enter the new tag(s) you would like to apply to this document.  Separate tags with a comma"; ""));
                "");

UpdatedList := @Trim(@Unique(@Replace(Selection; "*-add new-*"; "") : @Explode(NewTag;"," )));

FIELD txt_CustomTags := UpdatedList;

@SetProfileField("TagsProfile"; "txt_CurrentTags"; @Unique(UpdatedList : Tags); @UserName)



Then I wanted to be able to see the list of tags applied to a document (especially when it is more than one tag), so I created this action called "Display Tags":

@Prompt([Ok]; "This Document's Tag(s)"; "Tags applied to this document: " + @NewLine + @NewLine + @Implode(txt_CustomTags;@NewLine));
@True

Lastly, I wanted a way to clear all the tags as Chris suggested, so I create another action called "Clear Tags":


FIELD  txt_CustomTags := @Unavailable;
@True


Now, back to what I mentioned earlier, this is all well and good, but what if I want to set a tag or various tags on a whole bunch of documents at once?  Vitor Pereira suggested in a comment on the original post that perhaps this code coupled with a little bit of Chad Schelfhout's Edit Document Fields code could allow us to modify more than one document.

So I had a go at it...

Here's what I came up with, in an action called "Tag Multiple Documents":

REM {Get tags stored in database};
Tags := @GetProfileField("TagsProfile";"txt_CurrentTags";@UserName);

Selection := @Prompt([OkCancelListMult]; "Select Tag(s)"; "Please select the tag(s) to apply to these documents"; ""; @Trim("*-add new-*" : @Unique(Tags)));

@If(Selection = 1;
              @Return("");
@IsMember("*-add new-*"; Selection);
               @Set("NewTag"; @Prompt([OkCancelEdit]; "Enter New Tag"; "Please enter the new tag(s) you would like to apply to this document.  Separate tags with a comma"; ""));
                "");

UpdatedList := @Trim(@Unique(@Replace(Selection; "*-add new-*"; "") : @Explode(NewTag;"," )));

REM {Unchangable constants};
cPromptTitle := @DbTitle + " - " + @ViewTitle;
cNoteEntryLength := 11;
cArraySeparator := ";";
cMaxSearchForSelectedDocs := 5520;
cCategoryNoteID := "NT00000000";
cPromptNewLineOne := @Char(13);
cPromptNewLineTwo := cPromptNewLineOne + cPromptNewLineOne;
cPromptTab := @Char(9);
cErrorInformation := "\"Error documents: \" + @Implode( @Unique( @Explode( ErrorNoteIDList ; cArraySeparator ; @False ) ) ; \", \" ) + cPromptNewLineOne + \"Not updated documents: \" + @Implode( @Unique( @Explode( ErrorNoteIDList ; cArraySeparator ; @False ) ) ; \", \" )";

REM {Store all Note IDs before manipulation in case field modifications cause categorized views or sorted columns to reorganize};
NoteIDList := @Text( @NoteID );
ErrorNoteIDList := "";
@Command([NavNextSelected]);
@UpdateFormulaContext;

REM {Start Looping Selected documents to gather all the documents that need to be updated.};
@While( ( @Left( NoteIDList ; cNoteEntryLength ) != ( @Text( @NoteID + cArraySeparator ) ) ) & ( @Length( NoteIDList ) < cMaxSearchForSelectedDocs ) ;
 NoteIDList := NoteIDList + cArraySeparator + @Text( @NoteID );
 NoteIDList := @ReplaceSubstring( NoteIDList ; cCategoryNoteID + cArraySeparator ; "" );
 @Command([NavNextSelected]);
 @UpdateFormulaContext
);

REM {Remove all category Note IDs};
NoteIDList := @ReplaceSubstring( NoteIDList ; cCategoryNoteID ; "" );

REM {Remove all duplicate Note IDs};
NoteIDList := @Unique( @Explode( NoteIDList ; cArraySeparator ; @False ) );
@StatusBar( "Found " + @Text( @Elements( NoteIDList ) ) + " documents." );
NotNoteIDList := "";

EditField :=  form;

REM {Loop through selected docs taking each NoteIDList out of the list as it is processed};
DocUpdateCount := 0;
DocNavigationCount := 0;
@While( DocUpdateCount < @Elements( NoteIDList ) ;
 @If( @TextToNumber( @Text( @DocumentUniqueID ) ) != 0 ;
  @Do(
   NoteIDList := @Replace( NoteIDList ; @NoteID ; "" ) ;
   NotNoteIDList := NotNoteIDList : @NoteID;
   formulaResult := @Eval( @SetField("txt_CustomTags"; @Trim(@Unique(UpdatedList:txt_CustomTags))));
               DocUpdateCount := DocUpdateCount + 1;
   @UpdateFormulaContext
             );
 "")
);

@StatusBar( "Navigated through " + @Text( DocUpdateCount + DocNavigationCount ) + " documents." );

@SetProfileField("TagsProfile"; "txt_CurrentTags"; @Unique(UpdatedList : Tags); @UserName)

This last action does have some more work to be done on it, but it works (as far as I can tell) if you stick to the following rules:
  - The set of selected documents must be contiguous (all together in the view)
  - You must leave your cursor (highlight, whatever...) on the first document of the list of selected (checked) documents.
   - The action doesn't de-select the documents once they have been modified, so you need to be careful to clear any selections before doing your next set of tagging (easy to do via Edit...Deselect All)

I'd love to hear if any of your try this set of functionality out and it works for you, and also if you can get around any of the shortcomings of my current code for tagging multiple documents at once, as this was a true trial and error (many, many errors) thing.

Special thanks to Chris Blatnick for putting this in front of us in the first place!

July 22nd, 2008

Got burned by this...hopefully you won’t as a result

For several months, I have had a nagging problem with an @Mailsend in an "Approve" action in one of my workflow apps not working.  But it's been more of a "would be nice to fix", an not a "must be taken care of now", as it's just a confirmation of the approval, and nothing else happens to the document until a new approval cycle starts many months later.

I've been in working on a few things for a modified design of the app, and so I started to look deeper at this issue too...  Turns out that what was happening wasn't a problem with my code, but a regression problem when we upgraded to Notes 7, in that my approvers role users group, with "Author" access, but without the "Create Documents" priveledge could not send emails with @Mailsend.  Here's a post on LDD which came up similiar to my problem, that then led me to a technote, which helped me determine that granting the priveledge but making sure my database forms were locked down by roles for create (which they already were), would allow approvers to send the email via the action again.

The killer here was that this database design hadn't been touched since before we migrated to Notes/Domino 7, and the problem didn't exist in the Notes 6.x stream, so until I stumbled upon the regression we didn't know it was there. 

Appears that this regression is fixed in 7.0.3 and all the 8.x stream, so that Authors and even Readers (who would obviously be affected too), can do the @Mailsends without the "Create Documents" priv.

Hope this is able to help someone out there...it's nice to share when I can...seems I'm consuming help much more often than I dole it out...

July 21st, 2008

Trek Reboot - 5/8/09

Just in time for my birthday next year...

Hope it ends up being a good present...

July 17th, 2008

Schedule’s out

The Red Wings schedule for the '08-'09 season has been released, along with the rest of the NHL.

This year everyone plays everyone else at least once. Cool!

 

July 17th, 2008

WCII 1/1/09 @ Wrigley

Finally official -

CHICAGO - Wrigley Field is going to be the frozen confines on New Year's Day 2009 when the defending Stanley Cup champion Detroit Red Wings meet the Chicago Blackhawks outdoors in the home park of the Chicago Cubs.

GO WINGS, on New Years Day (of course, any other time too...but especially then)!

July 16th, 2008

Going out a winner

In this June 4, 2008 file photo, Detroit Red Wings' Dallas Drake hoists the Stanley Cup after Detroit beat the Pittsburgh Penguins 3-2 in Game 6 of the NHL Stanley Cup hockey finals in Pittsburgh. Drake announced his retirement Tuesday July 15, 2008.

Dallas Drake, the 39 year old stalwart NHL Journeyman has announced his retirement.  As a fan of the Wings who was even following them when Drake played with them the first time, I was so happy that he was able to go out on top with a hoist of the cup as his final act on the ice as a Red Wing.

Here's to you Mr. Drake!

July 15th, 2008

Chris the MindMapper

Chris Blatnick came out with a new blog last Wednesday called Maplicio.us (nice job on the domain/url get there Chris)

I finally got a real chance to sit down and actually go through the first couple entries last night, and I have to say that, even though I haven't been at all into Mind Mapping thus far, this way of showing it, talking about it, breaking it down, may really pique my interest.

Chris gives a great list of Mind Mapping resources/related blogs in the 2nd post, and then does a fun "geek culture" related application of Mind Mapping for us with a Characters of Battlestar Galactica mindmap.'

Looking forward to seeing what Chris brings to us next.

July 11th, 2008

Happy 3G iPhone Day...

As I mentioned, I'm going to let the day roll right on past and give the hoopla and all a couple months to sort itself out.  But I will not be resting on my laurels, I'm going to try to soak in all I can regarding the new device, so that I can hit the ground running when our plans finish out and become "eligible" for the lower price.

Please blog about any and all things you can about your experiences, likes, dislikes, killer apps (free ones are best of course...), anything... The more I read, the more excited I'll get, and the better the payoff at the end.

Happy 3GiPhoning!

July 9th, 2008

Resigned to waiting

If any of you have talked to me lately, or read some of my tweets, I have been salivating over the upcoming iPhone 3G release on Friday, as I am finally in a financial position to take the plunge on it. 

Fortunately I had my ear to the pavement near the end of last week and before I got to the end of this week and in the likely long line to get my new "precious" phone, I did some checking on my current AT&T equipment upgrade eligibility and the repercussions that would have on the cost of obtaining an iPhone 3G. 

Suffice to say I would have been a very unhappy camper when my non-eligible-for-discount cost would have been $499 for the 16GB model I was wanting, instead of the $299 I was expecting to spend.

It seems that our family's phones service/equipment contracts don't finish up until early September.

It's going to be hard, but I think I can endure the further 2 month wait while I sit back and try to consume all the information I can about the best app store offerings, the best tricks and tips with the new item, any possible software bug fixes or enhancements, possible storage SIZE upgrades (that would be nice...erm...yeah) before I lay my hands on my new toy.

So needless to say, I'll take any advise, etc. that any of you want to send my way, if you, yourself, are going to be procuring your iPhone 3G on Friday or in the near future (at least before I will).

July 2008
Su
Mo
Tu
We
Th
Fr
Sa
3
4
5
6
8
10
12
13
14
18
19
20
25
26
27
28
29
30
31

coComment

OpenNTF.org

Latest Googles

Latest Referrers

Credit where it's due

Special thanks to Chris Miller at Connectria for providing hosting services for this site.

How many did you say?

brave souls have visited this strange place

Super Secret Web Admin Thingie ;-)