There's a new wiki about Domino development best practices. It was written by various experts in and out of IBM, and I followed up with a lot of edits myself, so I'm an after the fact contributor. It's brand new so there are probably some mistakes, which I hope you people who know what you're doing, will correct.
I think this will be a good resource for developers, and I'm adding a link to my list of links on the right.
In other news, if you'd like to read a short story by me (under my fiction alias of Tyler Tork), there's one in the December 2011 issue of Stupefying Stories, available for Kindle,
Nook or on iTunes.
Andre Guirard | 10 January 2012 12:11:40 PM ET | | Comments (3) | Permanent Link
The new document, Controlling Document Editing in a Notes Client Application, is intended for novices and will probably not contain a lot of news for the regular readers of this blog. But for those experienced developers here, I welcome your comments, corrections, questions about what the heck I meant by this sentence, etcetera. This is where the collaboration part comes in. Thanks.
Andre Guirard | 17 November 2011 01:34:02 PM ET | | Comments (2) | Permanent Link
It seems like a lot of companies are still struggling to figure out how this social stuff can be used to aid their marketing. It might be just me, but some of them seem to be wandering far into the Too Much Information zone.
I'm not even talking about the information the companies themselves publish, though why anyone would want to subscribe to the Twitter feed of a Chinese buffet restaurant or a hotel has frankly been puzzling me for a while. No, I'm talking about the information the companies want to help us publish about ourselves and our use of their products.
Take for instance a certain restaurant chain. I ordered online from their website, and what do I see on the ordering page? Yes, that's a Facebook button. Really, there's not enough trivia on Facebook, the restaurant thinks everyone I know needs to know what I'm having for dinner? I try to keep my posts useful, entertaining, interesting.
Then there's another new thing on Facebook -- I sincerely hope it's a fad. The "Social Reader" application posts every article you open in a given publication onto Facebook. Once you've allowed this application the ability to write to your wall, the instant you follow a link to the article, everybody knows of your interest in celebrity plastic surgery or whatever.
I really value that my Facebook friends can share articles they've enjoyed. I find out some worthwhile things, experience different points of view, and learn something about the person. But, not speaking for anyone else, I can't tell whether an article is worth sharing just from the title. I read lots of things online, and a fairly small proportion are worth passing on. When I post, again, I want it to mean something -- not just to vainly share every tiniest detail of my life in the presumption that someone might be interested. We are drowning in a flood of trivia already.
I know, I can hide those updates in my own feed. And I have (the Social Reader ones -- I've never seen a red hot meal update from that restaurant chain, so I don't know whether I can filter them easily). I just don't understand why people would choose allow those Social Readers and so on access to speak for them. I can understand people might be curious to read the article, but go to the newspaper's website and search for it there. Don't publish a link until you know it's worth publishing!
Andre Guirard | 15 November 2011 08:07:52 AM ET | | Comments (0) | Permanent Link
I suspect this can be simplified. Thought people might find it amusing.
Andre Guirard | 10 November 2011 08:09:35 AM ET | | Comments (1) | Permanent Link
A new version of the "LotusScript Gold Collection" toolkit is available on openntf.org. It includes the much requested NotesGroupManager library which used to be in the Lotus Sandbox, and a way to call Notes C API functions without having to check which OS you're using before each call. The latter might not work on all servers, but the problem has been reported to the LotusScript team in development. It works great on all clients (and you could easily make a server version, it's just not as efficient as you must load the classes for all supported OS instead of using dynamic loading).
And, if you're interested in the doing of my alter ego, Tyler Tork, you can read a Halloween tale on my other blog (link on right).
Andre Guirard | 31 October 2011 01:03:12 PM ET | | Comments (3) | Permanent Link
Timothy Briley asked:
I've noticed that over time you've written a bit about valid searches in Lotus Ntoes. Can you comment one way or another on whether or not this is a valid search method:
To find documents in a view containing an empty date field manually by using the search bar or programatically using notesView.FTSearch:
Not([fieldName] > 0)
If this is a valid method, why isn't it documented?
It is seems to work for you, fine. Many things are not documented. Sometimes this is because the developer didn't tell anyone about it, sometimes because it wasn't a planned feature (as I suspect is the case here), and sometimes because we don't want to commit to supporting it indefinitely. When you try to make each version of a product able to support applications created in all previous versions, you have to be careful about what you call a supported feature.
So in general, if something is not documented, you should use it with care and make a special point to test it out before you upgrade your Notes/Domino installation, to make sure it still works in the new version.
In this case, there's a supported way to do what you're looking to do. The "is present" syntax, which is documented, will let you find documents that do, or do not, contain a value in a given field.
However, depending on your application, this may not be the most efficient way to do your search. Please see the wiki article Searching for Documents for some guidelines.
Andre Guirard | 31 October 2011 06:15:00 AM ET | | Comments (2) | Permanent Link
http://www-01.ibm.com/support/docview.wss?uid=swg21569452
Please apply this security fix to your Sametime servers. Thanks
Andre Guirard | 28 October 2011 09:55:19 AM ET | | Comments (0) | Permanent Link
One reason I haven't been posting here much recently, is that I've been working on LotusLive configuration tools, and I didn't think that would be of general interest. These would be the NSFs that end users download to configure their workstations to access LotusLive Notes, and the one that the on-premises administrator in a "hybrid" organization uses to set up their servers to communicate with LotusLive's servers to deliver mail, etc. It's a lot of complicated application development for the Notes client, which is what I love.
So I can talk about some of the ins and outs of LotusLive client and hybrid server setup, how users are migrated, how we know when to delete their old mail files, and so on, if that's of interest here. Or if you have topics you'd like to see more about, please respond in comments.
Andre Guirard | 8 June 2011 08:18:14 AM ET | Home, Plymouth, MN, USA | Comments (5) | Permanent Link
When automatically generating an adminp request that applies to a specific database, there's an item in the request that you may find hard to create. If you create adminp requests manually and then examine the items in them, you can see for instance that you might have the item ProxyReplicaID with a date/time value. Doesn't look like you would expect a replica ID to look. How do you convert the value of (say) NotesDatabase.ReplicaID, a string, to the TIMEDATE value that gets stored in the note? All the bits are used, so there's a 100ths of a second value that you can't see, but it's in there. Likewise, the timezone is stored in there and has to be preserved.
If you had the value in an item in another document, it would be easy to copy the item to a new adminp request. But if you have to create it from scratch, you need a way to convert a replica ID hex string to a TIMEDATE value.
There is a way, fortunately. The constructor of the NotesDateTime class accepts a hex string as a possible input, so you can just write:
docAdminp.ReplaceItemValue "ProxyReplicaID", replicaTD
Though you can't get the NotesDateTime to tell you the exact value to 100th of a second, the exact TIMEDATE value is in there, as you can tell using @Text("ProxyReplicaID"; "*")
Andre Guirard | 7 June 2011 08:15:00 AM ET | Home, Plymouth, MN, USA | Comments (1) | Permanent Link
This has nothing whatever to do with IBM products, but is just a fun little project of my own. So if you're bored or whatever, steer your browser to the Pounce blog and ask a question for Tyler to answer.
The site is pretty rough at the moment; I'll pretty it up as I have time over the coming days.
Andre Guirard | 6 June 2011 09:10:16 AM ET | Home, Plymouth, MN, USA | Comments (0) | Permanent Link

