Oh, and by the way, I updated the Google Suggest-type Database I posted earlier this week -- I made some minor updates to the existing code, and added an agent that demonstrates a possible caching strategy on the server side. See you in a bit.
If you're like me, you saw that page and immediately thought to yourself: "How can I put that sort of thing on my web pages?". If you're a Notes developer, here you go:
It's not a full implementation of the functionality (I don't capture arrow keys or do any of the funky highlighting), but it's enough to get you started. In my example, there's a simple form with an input box that you would use to look up a user name. As you type, XmlHttp requests are sent to the names.nsf directory on the server that the database is on, and the first 10 results are displayed below the input box. You can then select a result in the list and it will pre-fill the input box for you.
Just an early Christmas present for you, if you're still at work.
version 1.4 (Dec. 20, 2004)
Added "targetDateField.focus();" to the updateDateField function (as suggested by Alan Lepofsky) to avoid a situation where the cursor focus is at the top of the form after a date has been picked. Added "padding: 0px;" to the dpButton CSS style, to keep the table from being so wide when displayed in Firefox.
The problem with cursor focus was something I hadn't noticed, so thanks to Alan for the fix! The problem with the calendar table width in Firefox was one that I knew about for a while, and I finally figured out how to work around it.
Since I was putting together some Christmas songs on a CD, I decided to search for that tender and timeless version of Blue Christmas by Porky Pig. I got a page full of hits, and a quick download later I was listening to it with my kids. It was just as touching as I remembered.
Give it a listen if you've never heard it, but if you suspect that you've downloaded an illegal MP3 copy of it, make sure to purge it from your hard drive and say three Hail Mary's after you've "sampled" it. Or try to find it on Napster or iTunes, and forget I ever mentioned AltaVista.
Speaking of Christmas songs, does anyone else think that the lyrics to "Santa Claus Got Stuck In My Chimney" are a bit... um, Freudian? For example:
There he was in middle of the chimney
Roly-poly, fat and round.
There he was in middle of the chimney
Not quite up and not quite down.
I don't know, maybe it's me, but I'm a little uncomfortable when I listen to that.
Initially, my only thought was how unbelievably annoying it would be for half the people on an airplane to be screaming into their cell phones at once, within the cramped confines of a jet, for 2 or 3 hours. Think of how chafed you get when just a couple of people near you on a plane have a loud conversation, and then multiply that by 50. Even if the passengers could take it, the flight crews would start raging like third-shift postal workers.
So that was the obvious response, that it would annoy me and I would hate it.
Then I thought about the FCC approval aspect of it all, and that's where my mixed feelings came in. As much as I personally would dislike cell phones on planes, and as much as I think that there are a large number of people who would share my dislike, I don't think that's a reason that should come into play for the FCC decision.
You see, if the FCC doesn't allow cell phones only because they think that cell phones might annoy some people, then they're starting down a slippery slope. It's censorship, really. What if they decide that grunge rock might annoy people, so they try to take it off the radio waves? What if they decide that hockey might annoy people, so they only allow it to be shown on public access cable channels after 11:00 PM?
I guess you could make the argument that the FCC is already a censoring agency, and you'd be right. Ask Janet Jackson. There's already no nudity on non-cable TV (sort of), and no cursing on the radio (sort of). I just don't want them to start allowing or disallowing technology based on whether or not they think people might be bothered by it.
It's hard to tell what's going to happen, but everything seems to be leaning toward allowing the cell phones at this early stage. Then I guess it'll be up to the airlines to decide whether they'll have "cell phone free" flights, or "cell" and "no cell" seating on planes.
I do know one thing: the day that cell phone usage is allowed in-flight, you need to buy stock in companies that sell noise-cancelling headphones. Everyone will want them.
Since none of these distributions are "free" (as in "free beer"), I've got to figure out who I want to write my check to. I thought briefly about loading up one of the free variants of Red Hat, like CentOS or White Box, but even if those are essentially the same as Red Hat, they still wouldn't be supported if I had to put in a trouble ticket with IBM. And I'm actually allowed to spend money on the server license, so I may as well be legit.
I'm personally leaning toward SUSE for the following reasons:
So what I was stuck trying to figure out was: how the heck does the licensing work for SUSE Enterprise Server, anyway? Certainly I could just buy a license for all of the servers I wanted to load it on, but do I really have to? Can I buy a single copy and build as many servers as I'd like? Even if all the other servers were technically "unsupported", that might be okay, as long as I kept everything updated and consistent.
I checked the Novell site and got pretty much nothing but a chart showing how much the different server licenses should cost me on the open market. I checked a bunch of forums and found a lot of people asking the same question and getting random guesses in response. I found an interesting page theorizing about SUSE product strategy, but again that was just speculation.
The other day I got an e-mail response from Novell that seems to explain things pretty well. Here's what appears to be the "official" answer:
When you purchase a SUSE Enterprise Server license, what you are actually purchasing is "Upgrade Protection" for that server. The exact quote was: "Each machine that receives and applies SUSE patches, fixes and updates requires a Maintenance/Upgrade Protection License". It seems that you can install SUSE on any server you want, but you can only install SUSE patches on the licensed servers, and the license has to be renewed annually.
I have no idea whether you're "technically" allowed to install patches on an unlicensed server using something besides the SUSE/Yast methods, and luckily it doesn't matter that much to me. The company I work for is very good about licensing all their software, and it's no big deal to get a server license for something like this.
It sure would be nice if I could use one of the "free beer" distros of Linux for this project, but I suppose that vendor support has its advantages as well.
The Mac's market share soared to 35 percent in 2010, when OS X 12.0 allowed pets (via their own user accounts) to communicate with their owners. Microsoft announced that Longhorn would ship "very soon".
Critics bemoaned the Anti-Gravity Mac, released in 2012, which floated six inches above the user's desk. It might have proved successful if it had come with more than a paltry 256 petabytes of RAM and four outdated 2.5 terahertz G15 processors -- fine for email and Web browsing, but nowhere near enough for telekinetic gaming or robot-assisted graphics.
2019's 420-inch iMac sported a series of flying buttresses to keep the unit from tipping over and crushing family members.
The Power Mac G20, released in 2023, was an impenetrable black obelisk that fascinated primates and aided humanity's evolution. It also came with really cool speakers.
Steve Jobs, still CEO of Apple and Pixar in 2024, was also named to the top posts at Disney in 2008 and Sony in 2019. Jobs now has quite a busy schedule for a 69-year-old man, especially when you consider that he personally listens to each of the 7 billion songs available from the iTunes Music Store.
The good news is that the links end in Notes UNIDs, followed by "?OpenDocument", so it looks like all the details are already in a Notes database. The bad news is that I don't see anywhere that I can download said database. If it's not downloadable (again), maybe ol' Ben Bag-O-Rich-Text will do some magic and import it for all of us (again)...
UPDATE: it seems that Ben has already begun! (Yes, that's an XML feed I linked to...)
My Dad now has a website: PictureShowMan.com. It's been live since November, although he put a tremendous amount of time into the design and the content, and he's been working on it literally all year.
The site itself is geared towards the history of motion pictures, from 1890 to 1960. My father is film buff extraodinaire, and he has an overwhelming knowledge about movies and cinema, so if you know anyone who shares that sort of interest, please pass the link along. Even if you only have a passing interest in old movies, you'll probably enjoy the articles. They're well-researched and a lot of effort was put into making them as concise and readable as possible.
There are also a lot of pictures of movie posters along the left-hand side of most of the pages -- all of these posters and more are available for purchase (just click on a picture of a poster and it will bring you to the site that sells them). My Dad worked out a deal with the poster company where he gets a commission, so please buy some posters and fund the cause. :-) Actually, even if you're looking for posters of other movies, as long as you click through from pictureshowman.com he'll get the credit. They make good Christmas presents (I was checking out some "Herbie the Love Bug" posters for the kids...).
Anyway, end of advertisement. I'm still trying to get him to start a companion blog, so if he ever does that I'll mention it all again.
All of the elements of the status dialog (the message at the top, the text area, the progress bar, and the cancel button) are optional, so you can include any or all of those things in a custom dialog. Because it's non-modal, it can display and be updated in the foreground as the agent runs in the background. And outputting information to a text area sure beats printing to the status bar, because (A) it's much more obvious, (B) you can see multiple lines of information at once, and (C) the text can be copied to the clipboard.
So once again I updated my LS2J Examples Database, so it includes the example above. Now maybe I'll move on to different topics... although it would be cool to play sounds using LS2J, or display tree-style lists in a dialog, or...
UPDATE: If you had trouble downloading the example database earlier today (like you got the 1.1 version of the database instead of the 1.2 version), please try again. I just renamed the zip file to LS2JExamples1_2.zip, which should fix any strange caching problems that may have occurred.
So I blew the dust off my Java ProgressBar class (man, was that 2 years ago already?), stuck it in a script library, and called it from a LotusScript agent. Well lookie here:
A cross-platform progress bar for LotusScript, using native look-and-feel. Nothing Java-looking about that, and you can call it from LotusScript using LS2J as easily as you can call it natively from Java.
So I updated my LS2J Examples Database with another new script library and agent, and there you go. Have a good weekend.
If you use VNC, especially on a Windows server, you should really try out the new TightVNC release. I was playing around with one of the other 1.3 betas a little while back, and it certainly seems faster than regular VNC, especially when you use the optional DFMirage video driver hook (which currently has to be installed separately, but it's a quick install and doesn't even require a reboot). It also claims to be compatible with other versions of VNC, although you don't have as many of the performance-improving options if you mix and match. And, you can load it alongside your current VNC installation without overwriting or affecting anything that's already there.
If you want to see how it looks, here are some screenshots.