What will the new year bring for this site? Who knows... Hopefully more tips and tools, maybe a redesign of some sort. I hope I can maintain some sort of blogging pace, too, because it's often hard to find the time, despite the fact that it's mysteriously rewarding (although I still feel like I'm talking to myself every time I write). One thing I do know is that I won't be telling you anything about LotusSphere in January, because the company I work for doesn't pay to send anyone there anymore (which is really frustrating for me because I only live 2 hours from Orlando -- maybe I'll drive down there and be a LotusSphere stalker...). With any luck, I'll at least get to work with ND6 in some meaningful way and report back to you about that experience. Like the rest of my life, I'll just see what happens.
Thanks to all of you who have been visiting the site, and a special thanks to those who have taken the time in the past months to send nice e-mails to me -- that really helps keep me going.
Talk to you again in a few days. Happy New Year to all.
I've been getting a ton of hits recently for phrases similar to "ftp command list". I know that I've got the list of raw FTP commands buried on this site (buried because it's so ugly), but it seemed strange that I'd have so many hits as a result of that search. I figured my site would end up about 20 pages down the list on a Google search for that type of phrase.
Well it turns out I'd be wrong. I searched Google for "ftp command list", and this site was the FIRST one that popped up. I couldn't believe it. It just goes to show, you never know what people are going to want. And hey, I was pretty excited to be the top result for any search on Google! I'm number one, I'm number one...!
(On a related note, if you're ever trying to figure out where those spiders and robots that hit your site are coming from, there's a decent list on the JafSoft site)
So, thanks to Peter's advice, I'm happy to post the Base64 scripts one more time, this time with a fully-working version of the TrimBytesFromFile function. If I'm lucky, this will be the final version of that particular set of scripts.
Now, back to my vacation...
When I finally got to sit with my laptop for a little while, I did see that I needed to fix the script, and I eventually realized that the DecodeFile function was just going to be flawed. Why? Because Lotus Notes prior to release 6 doesn't have a single-byte data type, and as a result I couldn't figure out a way to write an odd number of bytes to a file...I always had to write in multiples of two. The best I could think to do was to end the file with a Chr(0) if there was an odd number of bytes, and hope that wouldn't case a problem.
So, there is (as predicted) yet another version of the Base64 scripts available on the site -- we're up to version 1.3. If I can figure out (or if anyone can tell me) how to trim a single byte from a file in a multi-platform sort of way, I'll make even more modifications and do a release 1.4.
Now maybe I won't be thinking about that stupid script for the next week.
Of course, I think the fact that I inherently obsess over stuff like that is the reason why this website exists in the first place. I literally walk around thinking about things to code all the time. I can't help it. I only have a fraction of the information on this site that I plan to put out there, mostly because I just don't have time to clean up and/or finish a lot of the bits of script that I already have stored up (even if I didn't have to work 8 hours a day, I still have a family that I really enjoy spending time with).
So, I write strange bits of code late at night, and I try to post here to the site as regularly as possible just to "get it out of my system". I guess as far as compulsive behavior goes, there are worse things I could be doing.
Here are a couple of corny, non-technical links for your holiday pleasure. One is a site where you can dress your own snowman -- of course, if you're in Australia you can pretend that the snowman is made of sand...I guess it's not that cold down there this time of year, huh? The other is a link to a crab dip recipe that I often make when we have people over for social events (it might be good for your Christmas or New Year's Eve bash).
Enjoy! Be back in a few days...
Second, I added another Java Tip for you. Ever think of writing a front-end agent in Java, but you didn't because there was no built-in way of interacting with the user like you can with a MessageBox or InputBox in LotusScript? Well, here's a treat. I just put some sample code in the Java Tips section that shows you how to call MessageBox and InputBox types of dialogs from a Java agent using the java.awt classes.
I wrote a MessageBox class that can create four different kinds of dialogs: Ok/Cancel, InputBox, drop-down list, and multi-selection. It should be easy enough to add your own types of dialogs to this class, too (I tried to make it as modular as possible). And because you're using the java.awt classes, you won't have to package all sorts of javax.swing classes with your agents either.
Of course, you can use this code with applets and applications too, if you need it there. The java.awt classes give you the ability to make much richer UI interfaces than just dialogs, so these things are just the tip of the iceberg. Even if you're used to creating bigger and fancier things using java.awt, the MessageBox class might be a nice addition to your toolkit -- it's an easy cut-and-paste that can save you a few minutes of coding time (and actually, there's a little more to it than you might think).
Well, I was cruising the Internet the other day, and one link led to another, and the next thing I knew I was at Allen Holub's site. He's the guy who wrote that book. I started clicking around, and saw that he has what is essentially the outline for Enough Rope on his site.
This is great reading for anyone who programs in almost any language. Some of my favorite general rules are:
Of course, there's plenty more on that list. You may not agree with all of the rules, but at least it should get you thinking.
(An amusing antithesis to this list is the How to Write Unmaintainable Code page -- read and learn...)
So what good is a Java HTTP Proxy? Well, if you're doing SOAP stuff like I am, you can run the proxy on your workstation, point your SOAP client to the local proxy port, and watch the SOAP traffic go back and forth (including the headers). Or maybe you just want to watch the HTTP traffic go back and forth while you're surfing the web...just have your browser use the local proxy and you can see as much as you want (and I even set it up so you can send traffic through the Java Proxy to another proxy server, if that's how you have to do it). If nothing else, it's just code you can look at to see how it works.
Have fun with it. If you have an opinion, please tell me what you think.
I sent an e-mail to the LDD webmaster back in October, and got a response back several days later that said they hadn't had time to look at my submissions yet and "thank you for your patience". At what point do you stop being patient and just give up?
The sad thing is, I can only assume that mine are not the only submissions that are stuck in the pipeline because all of the submissions over the past few months seem to be from internal IBM employees, or they're updates to old submissions (and besides, I'm not that paranoid). At least I have this site to post my stuff to -- I just wanted to throw some tools out on the Sandbox to give them to a larger audience -- but I'm sure that many of the other people who are submitting things don't have their own Notes-related sites to fall back on.
I don't know what the story is, but I hope that my Sandbox problem isn't some indication of what the IBM merger has done to the Lotus/Iris philosophy. I hope there's a simple explanation, and that the Sandbox bottleneck is removed in the near future. I hate to think that it's now "IBMers-only".
This time I didn't have to fix any bugs (thankfully); all I did was add a couple of functions that make it easy for you to encode and decode entire files all at once. I also started using version numbers in the script comments, so it will be easier for you to keep up. Officially, the version I just put out there is hereby referred to as version 1.2 of the Base64 scripts.
Of course, I fully expect someone to tell me about a problem with the new functions, so it'll be just a matter of time before you see the verison 1.3 scripts out here on the site. I'll keep you updated.
Logically, we think of "red means stop, green means go", so it makes perfect sense that you would use red for offline and green for online. However, if everything is a shade of grey, it's not so obvious. Something to think about next time you're designing an application.
On a completely unrelated note, here's a funny quote I read on the sixfingeredman site:
I was quite amused by this, because I've been doing some work with SOAP recently. It's a "simple" concept, but the implementation isn't quite what it's cracked up to be. Gotta learn the new stuff, though. And if all goes well, I'll have some SOAP-related code out here on the site for you soon.
I've got a bunch of other miscellaneous bits and pieces that I'll be throwing your way in the next week or so, but right now I've still got to help unpack and get the house back in order. And I'm probably not helping much working here on the laptop. More later...