I just made a "public service" post to the LDD forum regarding a strange problem I just ran into while debugging some LotusScript. Instead of going through it again here in the blog, you can just
read the post to see what it's all about. I was originally just going to post it here for you, my loyal readers, but I figured I'd be nice and post it to LDD instead, which has just a
little more traffic than my humble site.
That's my good deed for the month.
First of all, thanks to
Ben Poole -- protector of the meek -- for mentioning my site in a response to
that post on LDD that I pointed out the other day. I was too much of a wimp to say anything on the forum myself...
Also, as I was looking through my tips pages I realized that the Windows Tips page was a bit sparse. I'll try to get that fixed for you. As a start, here's a new tip regarding Unix utilities for Windows.
And finally, to continue along the encryption thread that I've had going over the past couple blog entries, I just read on SearchDomino that the latest version of PGP will be supporting Notes in some form or fashion. I haven't taken a look yet, but I'm hoping there's an API we can work with, not just some little e-mail addin or something.
Okay, I got the AES/Rijndael encryption information out there for you
as a tip. Have fun with it.
Now this is funny (to me anyway). Some guy just
posted a note on the LDD forum, with the great discovery that there's a LotusScript version of the MD5 encryption algorithm stuck inside the Riddle.nsf database
here in the Sandbox. No mention about how I pointed that out
here in my blog almost
three weeks ago. On the upside, that could mean that someone is actually reading this blog of mine. That's encouraging.
Anyway, that reminds me that as I was looking through some old files the other day, I saw that I have some information about AES (Rijndael) encryption that I can post out here for you too. Then I'll see if that same guy puts it out on the forum next month. I'd really know something was up if that happened.
I just posted a
new tip to the site, with a sample database that uses LotusScript to allow you to send Notes rich text fields to an RTF file while keeping much or all of the rich text formatting! You could also use this technique to combine one or more rich text fields from one or more Notes documents with other custom formatted text of your choosing in order to create a Microsoft Word-compatible document -- without needing to have Word installed on your machine. Now there's a boatload of fun.
Here's one that'll make you just stare at the screen for a minute:
www.lills.com (I think you might have to use IE to view it properly, because it doesn't show up right on my
Opera browser). The floating eye-thing kind of scares me...
I was thinking today about writing API programs in C, and how much of a pain it is that you have to compile the program separately for each platform that you want it to run on. Not only that, but you have to own a computer that has the target operating system in order to compile for that platform. I thought, "Gee, wouldn't it be nice if you could run the C programs as scripts (or even bytecode) instead of having to compile them."
Realizing that an idea like that was probably old school to lots of other programmers in the world, I did a little Internet searching tonight to see what I could find. Here are some interesting free candidates in the C-scripting arena:
- CINT
- EiC (this link didn't work when I tried it, but I think it's right)
- SWIG (allows C programs to be used by other scripting languages like Perl and Python. Hmm...)
- Quincy C Interpreter
- Ch (commercial tool, but free for non-commercial use)
So anyway, as I have an opportunity to do so over the next few days/weeks/months, I think I'm going to try one or two of these out and see if I can get them to work with my Notes API programs. That could open up some interesting possibilities for my API programming, and should be right up my alley since I tend to gravitate towards the command-line anyway. It would almost be like the portability of writing a Java program if those tools work the way I hope they do. If anyone else out there has any experience with this kind of thing, I'd really like to hear from you.
I also took a look at the Notes development site at dev.kanngard.net tonight, and some of the articles on there are really good. Check it out.
I got done with a draft of my diatribe about why long Domino URLs don't bother me (which I made mention of yesterday), and when I went back to clean it up something hit me: no one cares. Granted, you could probably say that about a majority of my blog entries, but in this case I had just written too much. People will stick with a silly rant for a few lines, and maybe even a few paragraphs if it's funny enough, but I didn't want to drive my readers away with a wandering essay about something as mundane as "ugly" URLs. So you'll probably never see it. Sorry for the false alarm.
In related news, I saw that there are at least 3 other free sites that will "shorten" long Internet URLs with redirection: TinyURL.com, SnipURL.com, and TinyClick.com. And I'm sure there are plenty more sites just like those (I hardly did an exhaustive search). That's one of the things that never ceases to amaze me about the Internet: there's never just one of anything; there's always at least a half-dozen. Heck, five other people have probably already written a blog entry about this very thing, and I'll probably never read any of them. It's a big 'Net out there.
Well, I was going to talk a little about the "ugly" URLs that Domino creates by default, because there's been some talk about that subject recently on
Codestore.net and
Ned Batchelder's site, and I figured I'd jump in and give my two cents worth. But as I started writing I realized that (A) it's probably going to be too long for just a blog entry, and (B) I needed to step back from what I was writing and pick it back up tomorrow, because I was having trouble getting my thoughts together. So, maybe tomorrow.
In the interim, here's a site that can help you with those enormous links you can get from some (usually non-Domino) Internet sites: MakeAShorterLink.com allows you to enter a really long link into their database and use a much shorter redirection link from them instead. What a helpful little site.
A little clarification about yesterday's
Java Server Addin tip -- the question came up about why you would want to do this, when you could just as easily write a Java agent or servlet to perform the same operation? Well, think about the fact that an Addin is running continuously, so the tip from yesterday is a skeleton for something that can be written in Java, integrated with Notes, and be monitoring things on a constant basis.
For example, let's say you wanted to write an FTP server task that integrates with the Notes server, using standard Notes security, and maybe with settings that are stored in a Notes database. You could write a Java Server Addin with a ServerSocket that listens on port 21. Then you could control it through the server console, and there wouldn't be a problem making the Notes calls that verify security (possibly the Internet Password in the NAB) and check the settings database. You could even go crazy and make it multi-threaded.
Something to think about, anyway. If you end up doing anything interesting like that, I'd love to hear about it.
I just added another tip, this time about how to write a
Domino Server Addin using Java. This is unsupported functionality in R5, inspired by
this tip on the
SearchDomino site. Normally I wouldn't recycle someone else's tips like that, but I included a lot of comments, along with several methods that the author of the original tip didn't have. I also tried to structure my source code so that it can easily be used as a template, so it truly is different from the SearchDomino tip. See what you think.
I managed to sneak away for one more blog entry before the weekend. I'll add a little to the Tuesday blog, where I gave you an article to read if you want to learn about calling the Notes API from LotusScript. Here's a three part article (
part 1,
part 2,
part 3) from the
DominoPower site about writing programs in C using the Notes API. It's good introductory material, especially the second article, which talks about debugging in Microsoft Visual C++. The whole thing was written by Ian Cherrill, who's got a nice site at
4nf.co.uk. Good stuff, all.
Company in town, so there may not be much blogging activity this week. But you never know...
Here's a little reading for you, in case I don't give you much to go on in the next few days. For all you Notes developers who want to learn about calling the Notes API from LotusScript, Normunds Kalnberzins has a really good introductory tutorial about doing just that on his rtlib.com site. Normunds is also a frequent contributor to the LDD forums, especially on matters of the C API, so if you think you've seen his name before, that's probably where it was.
Every once in a while, you run across a hidden treasure in a Notes database. Here's one I found in the Riddle.nsf database, zipped up with the
sample databases from
LotusSphere 2000 Presentation AD106: LotusScript Tips and Techniques Samples. It's a full implementation of
MD5 encryption using LotusScript! How 'bout them apples?
There's a
new tool on the site for you today. It's an Access database (I know, I know...but people use Microsoft products, whether you like it or not...) that parses Notes web server logs and pulls them into a table, and allows you to run reports against your web server activity. If you're really opposed to using Access, just pull the Visual Basic code out and stick it in a Notes database as LotusScript -- you may have to change one or two things, but it should translate over nicely.
There's also a cool new tool in the LDD Sandbox called DDSearch that looks really useful. It's actually a plugin for the Domino Designer 6 client, and it looks like they took NotesPeek and slapped a slick new interface on the search capabilities. If it allowed you to automatically recompile agents and script libraries, I might have to consider retiring (or upgrading) my ScriptSearch tool.
I posted another tip today, concerning
Notes debug flags. That should keep you occupied until tomorrow.
There are a couple of new links to the site out there, which is always exciting. An nsftools link is now on
lotusdomino.com, and also on Ulrich Krause's
eknori.de site (you can use
Babelfish for a
rough translation of the page if your German is a little rusty). Ulrich has some neat things in his Downloads section, and based on the quality of his past posts to the
LDD forum, I'll bet there will be a lot more interesting bits and pieces on his site in the future.
On a completely unrelated line of thought, I was clearing out my Inbox yesterday, and I found a good link in an old Crypto-Gram newsletter that I wanted to share (if you don't know who Bruce Schneier is, you should check out the Counterpane site -- I'll probably get on one of my crypto kicks in the blog here someday, so this will be good preparation for you). Anyway, the June newsletter had a link to an article about a "gummy finger" method of defeating biometric devices that use fingerprints to identify people, and it's an interesting read. What does this have to do with Notes? Well, maybe nothing right now, but since the new R6 client has Smartcard support, there's probably a good chance that biometric devices will be supported in the future too. And besides, it's kind of cool...