The November 2003 Blog
send me a comment

Export Docs from an MS Office Library (Friday, Nov 28)
[ permalink ] [ e-mail me ] [ >> ]

I've been trying to consolidate some documentation recently, and I got stuck when several of the documents that I wanted had been stored in a Notes database that was created using the Microsoft Office Library template. If you're not familiar with that template (it's one of the ones that has shipped with Notes since at least release 4.6), it uses OLE to create new Office documents as embedded files in Notes documents, which you can then access and modify directly.

Well, for embedded Office documents in one of these libraries, I couldn't find a good way to save the Office documents off to my hard drive somewhere, either manually or (preferably) by automating the process using LotusScript. Attached files are easy, embedded files are much more mysterious.

So I spent a little time experimenting yesterday and this morning, and I came up with an agent that seems to work. Nice guy that I am, I went ahead and formatted it up, added some comments, and uploaded it here to the site. In case you ever have the need to get embedded OLE files out of a Notes document, here's a tip (and an agent) to get you started: How to Export Docs from an MS Office Library. I've only tested it lightly using embedded Microsoft Office documents, but it should be pretty easy to modify to use in other situations as well.

(BTW, you may be able to use rtlib or Midas to do this as well...I'm not sure)

Happy Thanksgiving (Thursday, Nov 27)
[ permalink ] [ e-mail me ] [ >> ]

For all you people out there celebrating Thanksgiving (only Americans, I would assume), I have one bit of advice: if you decide to fry a turkey, be careful how long it's in the frier...

This is a picture of my turkey from a year or two ago. It actually tasted okay underneath the charred skin, but it didn't really have that golden brown look I was going for.

LotusScript to Lotus C API Programming Guide (Tuesday, Nov 25)
[ permalink ] [ e-mail me ] [ >> ]

This just in...Normunds Kalnberzins has published his LotusScript to Lotus C API Programming Guide book, and you can buy it in hard copy or as an e-book. Excellent. If I'm good, maybe Santa will get me a copy for Christmas.

For The Classic Gamers (Monday, Nov 24)
[ permalink ] [ e-mail me ] [ >> ]

For the "classic" gamers out there, here's something my brother just e-mailed me about: the Atari Classics 10-In-1 Game Joystick. It's an old-style Atari joystick with 10 games built-in, including Asteroids, Missile Command, Breakout, Centipede, Adventure and Gravitar.

Call me old-fashioned, but that looks like some good cheap fun.

Update: Ed pointed out that there's an Intellivision version too (although it doesn't come with that strange Intellivision paddle-thing).

You Know You're Getting Older... (Saturday, Nov 22)
[ permalink ] [ e-mail me ] [ >> ]

You're driving down the street with the windows down, blasting some cool tunes and singing along as loud as you can. You pull up to a stop light and turn to see a girl driving the next car over, looking at you and smiling. Life is good.

You know you're getting older when you look again, and you realize that she's not flirting with you, she's laughing at you because you're a balding guy playing old music way too loud in your four-door sedan with a carseat in the back. Life is funny like that.

Pixels Per Inch...It Sounds So Simple (Thursday, Nov 20)
[ permalink ] [ e-mail me ] [ >> ]

A little while back I was working on resizing some graphics, and the program I was using gave me the image dimensions in pixels. Saying that a picture is 200 pixels wide is about as useless to me as saying that a building is 30 fathoms tall, so [of course] I searched the Internet for "pixels per inch" to try to figure out a conversion.

Good grief, I apparently had no idea what I was asking for. The best explanation (or discussion, if you prefer) that I found was an article called The Mad, Mad World of Pixels Per Inch. I'm not even going to try to recap the article here, because you really need to read the whole thing yourself. It's just, well, more than I bargained for.

And if that kind of thing puts wind in your sails, there's a related article you can read regarding dots per inch (DPI) entitled The Resolution's Too Low. DPI and PPI are apparently intimately related, although after reading both articles I just succumbed to information overload and gave up trying to understand (not because the articles were poorly written, but because I was too dumb to understand).

In the end, I think I resized my graphics to one-third their original size and called it a day.

Update: Stan Rogers added a great comment/explanation in the comments for this entry, if you haven't read it yet. Thanks Stan.

Impressions of Notes 6.5; Looking for Sametime Info (Monday, Nov 17)
[ permalink ] [ e-mail me ] [ >> ]

Okay, I know I'm showing up a little late for the party, but I just started using Notes 6.5 last week. As much as I love playing around with the new versions of software and trying out the new features, I just don't always have time to -- at work I've usually got too many production issues to work on, and at home when I'm working on code projects I usually like them to be as backwards-compatible as possible. So this has generally meant working in R5 for the past couple of years.

Happily for me, we're in the process of upgrading everything to Notes/Domino 6.5 at the new job, so I'm running the 6.5 client as the only client on my desktop at work. Nothing like a total immersion program to get up to speed in a hurry.

Aside from a strange issue with view column names, I've found the 6.5 client to work very well. I've been lucky enough not to have run into the disappearing LotusScript code bug that everyone's talking about, and I don't think the client has crashed on me yet. That's always good. The new mail template is really slick too (very OpenNTF-ish, but that's a good thing)...

We're also in the process of getting a Sametime server up and running, which is very exciting. I used Sametime at work for the past 3 years at my old job, and I am certainly convinced that it can help productivity. The problem is, people whose only experience with Instant Messaging is watching teenagers chat about Britney Spears using bad grammar and hyper-abbreviated English don't always see it as a potentially productive tool. To the casual observer, it looks like a huge time-waster.

Knowing that we'll be having many discussions about the real value of Sametime in the coming months, I started looking for some documentation to help the cause. Executive summaries, ROI estimates, security documents, etc. Naturally, I started on the official Lotus Sametime page, but I was a little disappointed. I didn't really see anything that was like the promotional material I was looking for, and all the links on the Press References page were over a year old.

I did find a pretty cool security overview of Sametime buried in the soon-to-be-a-Redbook called the Lotus Security Handbook, which is good reference material. In fact, when the editing is done and that document gets the official Redbook stamp, I'll definitely be reading the whole thing. According to the summary, it contains "detailed security features of Lotus Notes and Domino 6, Sametime 3, QuickPlace 2.08, Domino Web Access (iNotes), WebSphere Portal, and other IBM/Lotus collaborative technologies". I love that kind of stuff.

I'm also a little concerned about an issue I just saw regarding Sametime and Notes 6.5 client integration. Hopefully that's not how it really works, because if so...well, I tend to run some pretty intensive agents at times, and I'd hate to think that my Sametime would be stuck while I'm waiting for things to finish, or while I'm replicating a bunch of data. That could kind of affect other people's first impressions of Sametime too, because they wouldn't think of it as a Notes bug, they'd see it as a Sametime weakness.

Anyway, we'll see how it all pans out. At the very least, we're playing (I mean working) with the new technologies, and that's a whole lot of fun (I mean very useful).

The Elements of Genius (Thursday, Nov 13)
[ permalink ] [ e-mail me ] [ >> ]

Thanks to my loving wife I had a little computer time tonight, so I'm trying to catch up on my site and everyone else's. Too much to look at...

As I was looking through my referrers/referers list, I ran across the False Positives blog. I haven't read enough of the archives to get a really good feel for the site yet, but there's definitely some Lotus-speak on there (as well as another Notes implementation of an RSS reader you can download).

Anyway, the article that caught my eye was the one about the mathematics of origami, with a link to Dr. Erik Demaine's website (via Quirks and Quarks). At the ripe old age of 22, Dr. Demaine recently won himself a MacArthur fellowship, a.k.a. a "genius grant".

Now, obviously Erik is a smart guy. Way smarter than me. Whether or not he's a "genius" I have no idea, and I'm certainly not the one who would (or could) be judging such things. But it has occurred to me before that "genius" is more than just being smart. In my very humble opinion, I'd say that there are a lot of things involved with not only being a genius, but also with the creation of a revolutionary invention or discovery that is typically associated with genius.

For example, here's my list of things that I'd say would be required "elements of genius":

There were two other things that I thought about adding to the list, but I decided not to: environment and luck. It's certainly desirable to be in an environment where your genius is cultivated and encouraged, but I'm not sure that it's a necessity. I think if you have all of the elements that I mentioned above, then you'll make due with whatever you have. And some people would say that luck plays a role in stumbling across that great idea or amazing theory, but I'm not sure. I'm of the school that says that you [largely] make your own luck. I heard a quote one time that was attributed to Lyndon Johnson: "The harder I work, the luckier I get." I think that's how I tend to feel.

So what does any of this have to do with anything? Well, not a lot I suppose. Maybe I'm starting to ramble in my old age (I'm not 22 anymore, that's for sure). I guess I'm just always impressed when all of those genius elements are able to line themselves up in one person, because it really is more than just being born smart. It's a whole lot of things that have to come together, and in the absence of one or two of those elements, you just end up missing the genius boat and waving from the shoreline.

Current User Info on NT (Wednesday, Nov 12)
[ permalink ] [ e-mail me ] [ >> ]

I don't have a lot of time/mental capacity to write anything right now (with the new job and all), so I'll probably be digging through some of my old notes to write some quick and dirty blog entries over the next week or so. I wouldn't want you to get too bored...

A while back, I was trying to figure out how to determine who the current user was on a Windows NT based system. That may seem like a silly thing to do, because 99% of the time you're the one who logged in to begin with, so you already know the answer to that question. But sometimes you're remote accessing a system that's already been logged in to, and you need to know.

Aside from the obvious "use control-alt-delete" method, I thought there must be some way of doing this at the command line. NetWare has the old whoami command, and Linux has whoami and id (and probably a dozen other ways), so it must be useful information to someone else too. And besides, if I could do it at the command line, then I could use it in a batch file someday.

So (naturally) I did a little search on the Internet, and found a great Windows NT command line reference. It's even got some Windows NT and Linux cross reference information for the individual shell commands. From there I found that you can issue either:

  - OR -

at a Windows NT DOS prompt to get the current user name. You can also call:

NET USER [username]

to get more information about a particular user, and:

NET LOCALGROUP [group name]

to get information about local group membership. This also seems to work on Windows XP, for what it's worth. Ain't the command prompt fun?

Terminating Threads and Reacting to Shutdown in Java (Monday, Nov 10)
[ permalink ] [ e-mail me ] [ >> ]

Here's my latest Java tip for you: Terminating Threads and Reacting to Shutdown in Java.

It talks a little about terminating programs and their related threads, and it's also got some links for how to use the Runtime.getRuntime().addShutdownHook method that was introduced in Java 1.3. The information is geared mainly towards Java applications (as opposed to servlets or applets or Notes agents or whatnot), but there is a generic example in there of killing a waiting Thread, if that interests you. Also, there's a link to a really cool article about writing signal handlers for Java, which is certainly worth a read.

Scientific Progress (Friday, Nov 7)
[ permalink ] [ e-mail me ] [ >> ]

If you need an example of how science has progressed over the centuries, look no farther than the Museum of Contraception. Yikes.

Got a New Job, Part 4 - What about the Blog? (Sunday, Nov 2)
[ permalink ] [ e-mail me ] [ >> ]

While I was still in the interview process for the new job, I made sure to tell them about this website. I didn't mention it because I was hoping it would help my job prospects (although it would be nice if it did), but rather because I wanted to make sure that they didn't have a problem with my ownership of the site if I worked there.

There were really two potential issues with continuing to update and maintain this site. First, some companies are still skittish about employees keeping blogs. Ray Ozzie discussed some of these issues over a year ago (and others have too, but that's just the link I happen to remember right now...). I needed to make sure that there weren't any HR policies that were somehow blog-restrictive.

Second, the intellectual property clauses that different companies have can vary dramatically from place to place. I've heard of companies (mainly heavy research and development outfits) that consider anything job-related that you do, even if you do it on your own time, to be property of the company. I post a fair amount of code to this site, and I needed to find out if that would become a problem.

Luckily, after a few conversations with a few people, both of those issues ended up being non-issues. However, I can't help wondering what I would have done if they were issues. What if I was at the end of the interview process, and we had agreed on salary and benefits and whatnot, and they said "by the way, we'll have to ask you to stop updating your website because it conflicts with our policies"? What would I have done?

I'm still not sure, partly because there just aren't that many good jobs to choose from these days. I mean really, this is just a silly little website that I run at my own expense in my spare time. I enjoy it, and I think my readers enjoy it, but if the choice was between this site and a job that allows me to feed my family, I think the responsible money bets on the job. To make a less-than-perfect analogy, let's say that you can only afford to have one car, and the car you have is a small sporty convertible...and then your wife has a baby. You really ought to sell the car and get something more practical, because the baby is more important than the car -- if there's a conflict between the two, the baby wins.

In any case, there's not a conflict, and I get to have both the website and the new job. Yippee. The tradition of obscure code and semi-interesting blogging continues.

Side Note: it probably won't continue very much this week, because I'm going to be really, really busy. But I promise it will continue in the forseeable future.

Update: there's some good discussion about this subject on Jake's site too.