Home | Blog Roll |  Link Roll |  Colophon/About| |


Archive for March, 2007

Lotus Guru makes a more Attractive Export of Categorized Notes Views to Excel

Friday, March 23rd, 2007

Kevin Pettitt (aka Lotus Guru) took my code to Export any Lotus Notes View to CSV or Excel, automagically, and made it work a bit better than my (raw by design) output in his Make Attractive Exports of Categorized Notes Views. Well done!

The Music of Falcon Beach

Sunday, March 18th, 2007

In Canada, Falcon Beach is about to show the last 2 episodes of the second season (whereas the first season is wrapping up, and the second season starts in April in the USA on ).

Watching the second Season, you notice it has showcased a lot of established and upcoming Canadian Indie music (and even had one band featuring in Episode 206 - “The Music Video” : Winnipeg’s Paper Moon). From the Opening Theme song (Holly McNarland’s Beautiful Blue) on it is full of music (including some people even I’ve heard about: , ) and more new stuff. At least some of the music is discovered in a “Calling All Indie Bands” Music Search. Sounds like a win/win for the bands and and the show, since the demographics are bound to be similar.

The Falcon Beach web site (www.falconbeach.ca) has a neat feature. (url’s hidden behind the flash) Under the “Music” header, for each seasons episode it has the music for that episode : what was the song and who is the musician, and some back ground if you click on the “more link” - plus for season one they had a brief intro when the music played (Episode 112 : Tanya spills drinks in the Sunset Bar. The song is “The Young and The Guest List” by San Francisco band The Paradise Boys); in season two they are not doing this but they are linking to the bands wet site. It’s a nice feature to discover music (Nice tune, I wonder who did that…). Question : How many Band Sites are linking back the Falcon Beach, and is the information on the FB site indexed by Google?

It a related move: on Saturday, March 24th, 2007 2-4pm at Sam the Record Man (Toronto) there are band performances by The Bicycles, The Golden Dogs, and The Miniatures, and autograph sessions with Falcon Beach cast members : Steve Byers (Jason), Jennifer Kydd (Page), Jeananne Goossen (Courtney), Morgan Kelly (Lane), and Peter Mooney(Dr. Adrian). (Press Release)

I wonder if I could start a cat fight if I asked for “Page’s” autograph?

Lotus Notes 8 Public Beta (Hanover) is out and about

Thursday, March 15th, 2007

This is the first public beta, here on the IBM Notes 8 page, is usable and very stable if a tiny bit slow and hungry. A few items caught my interest :

  • available in 2 versions a “classic C++ version and a Eclipse version (java). The Eclipse version is where the long term interest is, in part because it is multi platform: Linx, OS x and Windows. And I understand that some fureture things will be easier to implement in java.
  • The New UI of course! (see some Notes 8 Eye Candy ) A more polished and update look, which also allows for building better looking applications.
  • Replicate on shutdown is possible with no prompt.
  • New default locations - online, offline and home.
  • Composite applications (using service-oriented architecture (SOA) components) see Building Composite Applications for IBM Notes 8.
  • we can now create Right mouse click menus for our Actions
  • Web Service Consumer in Notes 8 (Notes 6 & 7 can produce a Web Service).
  • Bytes column type in views (also for Mb, GB and Tb)
  • JavaScript Object Notation (JSON) as an output format to let you more quickly create AJAX Web applications
  • “On server start” agents

and much more. For more details download the Guide (ftp PDF)

also Nathan T Freeman has some comments and screenshots about designer features on his Escape Velocity blog. IBM’er Jeff Eisen has his blog with lots of tips.

The semi-unofficial blog tag for the Notes 8 beta is .

CompterWorld has this brief notice of the beta release Collaboration preview: Lotus Notes 8, Domino 8 betas available for testing and now : Notes fans hope upgrade ends e-mail client’s ugly-duckling status, , and even PC world has something: “This is not your father’s Notes”.

Updated Aug 17 2007:  Now Shipping!!

Amazon’s Web Top Site (Alexa) web service and Ruby; Fixed and juiced!

Thursday, March 15th, 2007

I had need to get some data from Amazon Web Services, and in particular their Alexa Top Sites web service which provides access to lists of web sites ordered by Alexa Traffic Rank.

And, happily, they had a Query Example in Ruby! (as well as Java, Perl, PHP, and C#)

It is a bit unclear about where to get the country code’s although I see that you can do a query to get the list using ResponseGroup=ListCountries ( I just cheated and used Alexa site to get the country code I wanted) pasted in the access key and double secret code key and fired it off…

Only it didn’t seem to work! WTF! the error said “The URI http://awis.amazonaws.com/onca/xml is not valid” but but i didn’t change that!!! Carefully reading, and remembering to breathe, the doc’s I noticed that it refereed to the base uri as being “http://ats.amazonaws.com” rather that what was in line 27 of the topsites.rb file : “http://awis.amazonaws.com/onca/xml” , so I tried that and it worked! I guess they changed some stuff and have not updated the sample code? sloppy!

The next issue was that the query only produces a max count of 100 and I wanted thousands! (The Alexa site already shows the top 100 by country.)

I quickly wrote up some ruby code to figure out my start count and generate a filename for each increment which was passed to a modified aws topsite query (changed to write to a file name rather than standard output i.e. the console), and many xml files later I’m done. (now to import the mess! - which proved to be easy to do in excel 2003)

def loopcount(nol)
begincount = 1
incr = 100
for x in 0..nol
start = begincount + (x * incr )
filename = “c://aws/aww_ts_” + x.to_s + “.xml”
QueryAWS_topSite(start, incr, filename)
end

Maybe I will mess with it some more to create one giant xml file (return the xml object and parse out the elements I want before writing to one file?) and otherwise more elegant, but for now it is “good enough”. and geeky fun too!

SNTT : Trapping Document Delete in LotusScript to skip Document processing

Thursday, March 8th, 2007

This all started because I wanted to skip certain processing on a document if a document was going to be deleted (if it was going to be deleted the process was redundant).

There is a nice DeleteDocument method for the notesUIDocument object which “Marks the current document for deletion and closes it.”, but I needed to know if it had been “Marked for Deletion”. Nothing. No nice notesDocument or notesUIDocument properties to tell me “IF” it has been marked for deletion. Ack!

So I had to invent my own, at least until lotus exposes one! (Hint, Hint! feature request!)

The saving feature here is that the Database Querydocumentdelete event is fired before the Documement QueryClose event.

Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
dim dc as notesdocumentcollection
Set dc = source.documents
dim doc as notesdocument
Set doc = dc.GetFirstDocument
Do While Not doc Is Nothing ' mark that this document is going to be deleted
doc.MarkedForDeletion = "YES"
Call doc.Save (True,False,False)
Set doc = dc.GetNextDocument(doc)
Loop
end sub

I also coded up the Database Querydocumentundelete event in case that the document gets unmarked for deletion before it actually get deleted so the desired process of the document will happen next time.

Sub Querydocumentundelete(Source As Notesuidatabase, Continue As Variant)
dim dc as notesdocumentcollection
Set dc = source.documents
dim doc as notesdocument
Set doc = dc.GetFirstDocument
While Not(doc Is Nothing)
If Doc.HasItem("MARKEDFORDELETION") Then
' the MARKEDFORDELETION item is set in the Database Querydocumentdelete event
doc.RemoveItem("MARKEDFORDELETION") ' this is no longer being deleted so the remove the mark
Call doc.Save(True,False,True)
End If
Set doc = dc.getnextdocument(doc)
Wend
end sub

And then with all the setup work done I check in the Documents Queryclose event whether the documents is about to be deleted.

Sub Queryclose(Source As Notesuidocument, Continue As Variant)
If Source.document.HasItem("MARKEDFORDELETION") Then
' the MARKEDFORDELETION item is set in the Database Querydocumentdelete event
Exit Sub
End If
'otherwise do you whatever you would usually do
exit sub

If you wanted to only trap the delete that happens within the document, but not from the view then in the Querydocumentdelete event you would look to see if “workspace.CurrentView is Nothing” is true.

I previously bloged on a related subject :

Happy deleting…. (technorati.com tags :, )


Close
  • Social Web
  • E-mail
E-mail It