28 October 2005

Galerie

A few days ago I finally had all my cartoons updated with descriptions. Up to then, I've been publishing to the web via iPhoto's web export feature. After each export, I would have to tweak the HTML source code to show my FAQ and stick a few lines of text on the main page. The work is tedious and is a factor in making my web site stale. What's more, the navigation keys are not that great, mere ASCII characters to simulate left, right, and up arrows. For this update, I decided to give Galerie a try.

I have read about Galerie in one of the UK Mac magazines I have. It works in conjunction with iPhoto and other photo management apps. It includes loads of features, as I discovered this week.

Just to get the web site up and running under a new, slicker look, I forewent the FAQ and the intro text. However, I have a very neat idea of including them, without having to do any code-tweaking after the fact.

For now, please check out my newly re-designed Qaptain Qwerty's Qorner web site at http://homepage.mac.com/linusly/qq

24 October 2005

Numeric Entities

In my previous post, I couldn't show the actual HTML codes because they confused the Blogger form. I had to use double open parenthesis ( (( ) to represent open angle bracket ( < ) and so on to show the "codes". It was a pretty lame solution and bothered me so much I dug into my ancient Teach Yourself Web Publishing With HTML 3.2 to find a better solution. I thought there should be some tags that would tell the browser to ignore everything below. I used the remark tag <!-- and --> but then the whole thing would be hidden. I would have to add a note telling my visitors to view the source code to copy it. Not nice.

In the end, the answer is to use numeric entities to represents characters that would normally be interpreted as markup language. < is represented as &#60, > by &#62, and so on. Enjoy!





From:


<html>
<body marginwidth=2 ...>
<palettedim cx=266 cy=330 >
<img src="animgif01" alt="" onmouseover="window.event.srcElement.style.cursor='hand'"/>
<img src="animgif02" ...
<img src="animgif03" ...
...
</body>
</html>


To:


<html>
<style type="text/css">
div
{
width:266;
height:330;
overflow:auto
}
</style>
<body marginwidth=2 ...>
<div>
<palettedim cx=266 cy=330 >
<img src="animgif01" alt="" onmouseover="window.event.srcElement.style.cursor='hand'"/>
<img src="animgif02" ...
<img src="animgif03" ...
...
</div>
</body>
</html>

My New Bosom Buddy


This past week I discovered the joy of using NotesBuddy, a companion program for Lotus Notes and Lotus SameTime. I knew about NotesBuddy before but passed it off as only useful if one wants to hear SameTime messages read aloud. There was enough noise in my office, why would I want to have the PC read out loud my SameTime messages? Then in the same week, two different people told me to get NB installed so they could send me animations. I was hooked on it once I saw the anim, which as it turns out simply animated GIF or AnimGIF, nothing new really. But the ability to send still graphic and animation via a beefed-up SameTime was fun.

At first I thought I would use NotesBuddy only for its chat feature. Then it dawned on me that I could certainly also use the program's email feature as an additional way to access my Inbox. We use a Notes-based request system, called GAGS, for our daily work and GAGS can be painfully slow sometimes when we try to close out tickets. GAGS would hog our Notes session all for itself and we would have no access to email the whole 20+ minutes that transpire. With NotesBuddy, we have a way around the problem. I do run Notes on more than one computer and in one or more Citrix sessions, so NotesBuddy won't make a big impact to me, but I have colleagues who are either have only one computer or haven't started using Citrix.

I like NotesBuddy's primary buddy feature - you can keep a list of special people with their photos. According to the IBM forum on NB, supposedly there's a bug with the feature such that you can only keep five people in your primary buddy list.

So you found all the great animgif and store them in your custom palette, but then when you want to use them, only the first few show in the preview window. Sure you can resize the preview window, but it can only grow so much - there are no built-in scrollbars. Poking around in the folders related to NB, I discovered the custpal.html file and had the idea of updating it to show scrollbars. My idea was confirmed by a post on the IBM NB forum, but for some reason the codes didn't appear in the forum - maybe the forum admin removed them. I googled high and low on various keywords and finally came across one that does just what I need. Try the lines of code below on your palette's custpal.html file. Probably because Blogger doesn't allow HTML tags, I wasn't able to save this blog with the real HTML code. Instead, I had to replace single angle brackets with double parenthesis. To be safe, I also replaced single brace with double braces, for the definition of the style. Undo my spoofing of Blogger if you decide to try out the codes. Note that the width and height don't have to be exact numbers as shown, use whatever the palettedim tag specifies.

Unfortunately, the additional code is lost whenever you update the palette, e.g. by resizing it via NB or add/remove anims. Supposedly the feature will be included in the next release of NB. For now, save a copy of the manually-modified custpal.html and copy codes from it whenever you change your palette.




From:

((html))
((body marginwidth=2 ...))
((palettedim cx=266 cy=330 ))
((img src="animgif01" alt="" onmouseover="window.event.srcElement.style.cursor='hand'"/))
((img src="animgif02" ...
((img src="animgif03" ...
...
((/body))
((/html))


To:


((html))
((style type="text/css"))
div
{{
width:266;
height:330;
overflow:auto
}}
((/style))
((body marginwidth=2 ...))
((div))
((palettedim cx=266 cy=330 ))
((img src="animgif01" alt="" onmouseover="window.event.srcElement.style.cursor='hand'"/))
((img src="animgif02" ...
((img src="animgif03" ...
...
((/div))
((/body))
((/html))

21 October 2005

The Man Who Waited Too Much



This is my latest submission to MetroExpress, the newsletter of the local Mac user group MetroMac. The editor likes it and most likely it will be published in the November/December 2005 issue.

My first reaction to the announcement of the new iMac was, "Dang, I paid the same price only a few years ago for an iMac without iSignt, Bluetooth, Wi-Fi, etc." Then I realized with technology, if one keeps waiting for the next best thing, one may become too old before long. That's how I come up with this cartoon.

I did some research on the history of Mac OS and the various technologies and features introduced by each version. Each sentence that the old man said laden with techie mumbo-jumbo refers to a release of the Mac OS.

I originally thought to make the announcer/show host say, "Happy with OS 6.0.8, so continues he wait," just for the sake of having two rhyming sentences. Along that line, the OS versions as mentioned by the old man proceeded in the order of 7, 8, 9, and X. In the end, I didn't want to make it sound like the old man was happy to be stuck at an OS version. That would defeat the point of the cartoon - which is that the man wants to upgrade, but he wants something more.

Interestingly enough, so as not to rely entirely on the Internet for my fact checking, I pulled out an old Mac OS 8 Bible book. I think that was the only time I actually used the book to look up info. I bought it back when OS 8 was the current operating system on the Mac but never actually read through it. So much for how useful paper books are.

I know it's probably grammatically incorrect to say "waited too much", but it goes nicely with Alfred Hitchcock's "The Man Who Knew Too Much", so I intentionally use bad grammar for a pun's sake.

17 October 2005

Fun With Outsourcing

So, many of us are faced with the threat of offshore outsource. We can worry a lot and do things to prepare for it, but we can also have a little fun, or at least make a little money off of it.

Yesterday at Barnes & Noble Union Square I saw a book, by a chap named Chad Fowler, with a very funny title - "My job went to India and all I got is this lousy book." Fowler wrote about how to re-invent oneself, how to make oneself more valuable, etc. There was a chapter on automation in which he wrote that in India, people don't believe in automation because it would put many people out of work. But he went on about how we Americans are good at automation and that we should do more with programming. Given the Indian programmers are good with computers, wouldn't automation harm us?

A few days earlier, I learned about JibJab.com. They make computer animations using real politicians' faces and had been into politics, but their latest anim, Big Box Mart, is about offshore outsource. It criticizes us Americans for buying craps we don't need at these megastores that use cheap labor in other countries, only to find eventually our jobs will be gone too. Big Box Mart in particular is about the manufacturing industry, which is not that much news really. I should suggest to them to make one about the I.T. industry.

JibJab animation are basically free for web viewing, but viewing older ones require free registration. They do sell DVDs containing many of the anims and have other wares to offer. Not a bad way to make some bucks. I was very tempted to buy one of the DVDs.

15 October 2005

Tattoo You


I am a fan of Norman Rockwell, the painter best known for his portrait of idyllic American scenes. This cartoon was inspired by a similar painting by Rockwell - the only difference is that all the names that were crossed out are women's. The sailor probably had a different girlfriend every time he sailed to a different port. In my case, the names are upper managers'. We recently had another management change - our boss' manager was moved to some other project and we got managed, one layer above, by another manager located in Florida. I never understand why there needs to be so many management levels...

Everybody Wins!

(Friday, October 14, 2005)

Today I participated in Everybody Win!'s Power Lunch program again. The program matches office workers with school children who need help with reading. The pair meets during the child's lunch time, the child picks a book, the adult reads, months later the child's reading skill improves. At least that's the theory. Last semester I was paired with a first grader who turned out not what I, The Idealist, thought should be. He was rude and had next to zero attention. I would be reading and he would run off to swipe food from another kid, or roll on the floor playing dead, or take long bathroom breaks. He got me real upset one time when he came in and just plain blurted out, "Come on! Go get the books!" I tried to entertain him using my drawing and origami skills, but I didn't think it helped much. Today I learned that he got held back. Oh well, I tried. The kid was already in the hole too deep, hopefully what little I did will help him get out of the hole sooner.

This semester I signed up for a third grader because the lunch hour is better for me. I start work at 10 so when I used to go for "lunch" at 12:30 with the first grader it was a bit too early. Besides, I didn't want that first grader back anyway. I have enough troubles disciplining my own son, let someone else do the parenting or counseling for that kid.

14 October 2005

A Better Way To Advertise

I recently both signed up with AdSense for this blog and started to use GMail, the free email service from Google. With the AdSense program, I got ads placed on my blog and supposedly I'll earn some money out of it, eventually. But I digress. I actually enjoyed the ads briefly and don't hate them. They are tied to the content of the blog and are small enough to be unobtrusive. Just plain text ads, even with matching colors to my blog's environment. No annoying animated GIFs or misleading come-ons about me winning an iPod or whatever the hot item of the day. Similarly, while using GMail I would see a few ads along the message, again related to the message content. I welcome this refreshing change of Internet advertising and hope that other web site follow Google's example. I look forward to a world without pop-ups ads, dancing ads, etc.

09 October 2005

Bang! You're Dead.

Some time early in my Blogger experience, I mentioned learning of a new way to process several NDS user objects in different containers. Up to then, my use of UImport had been limited to users in the same container. For example, I can change the password for x users as long as they are in the same container. If they are not, I would have to run UImport against each of the containers. With the new technique, which I shall call The UBang Technique, the context isn't stored in the UImport control file, but is instead specified in the data file, in the form of

!Name Context = blah.bleah.whatever

Two hundred users in two hundred different contexts? No problem, just put !Name Context two hundred times. FYI, the exclamation mark is also known as "bang". Just like backslash ( \ ) is called "whack", these short names make tech talks shorter.

Even though I was excited to learn of the technique from my then-colleague Monika, the opportunity never came up for me to try it out. It didn't help that work had been hectic so there was no time to try new things. At long last, the need arose and I grabbed the chance. On our network we had many desktop deployment accounts. One can have a regular account and then also has a deployment account to carry out desktop deployment for the UmpteenDesk project. Recently, the project came to an end but desktops with the UmpteenDesk image still need to be deployed. The deployment accounts should be terminated with the project, but for some reason they need to be given an expiration date instead. I had 400 of such accounts to work on and they are scattered all over the network, not in a single container. It's true that many were bunched together, say, 20 in a NW container, another 15 in a SE container, but they are still scattered. The UBang Technique comes to the rescue! A colleague of mine helped extracting the necessary info via BindView and further manipulation in Excel and I got myself a .csv file of all the accounts each with its own context, unique or not. Feed the .csv file to my KiXtart script and I got myself a UImport data file with the various contexts properly setup. By some chance, it happened that my own PC couldn't see the network properly so at first the script failed. Running the same script on a colleague's PC worked, so I rebooted and tried again with all 400 accounts. It took almost no time at all. Ah, the Joy of Scripting.

08 October 2005

The Joy of Chess

Friday, October 7, 2005

I had a good chess game today at work against my colleague Cesar. Over a period of several months, we played a number of games and as of this afternoon we were tied. The game was supposed to be a tie-breaker and by the fashion he beat me in the last two games, I was sure he would win. Indeed he started out very strong, his Queen breaking my pawn structure and had my King run around. However, Cesar made a mistake and had to sacrifice a Rook for a Pawn that was just a square away from being Promoted. He made good use of his Knight and three Pawns and it was I who had to force a stalemate, even though I had a Rook and Bishop on a black square, plus a Pawn.

In my opinion, Cesar is indeed the best player I know in the office. He moves quickly and always seems to have everything planned, versus my haphazard placement of pieces. It amazed me that I managed to beat him before. The first few games I can understand that he wasn't aware of my ability and laid out traps that, when I didn't fall into, turned against him. I simply cannot think at his speed and not make total blunder. Even when I took a long time to think, he still defeated me.

Chess grandmasters can memorize many moves and supposedly to them the game isn't as challenging anymore. Some had to come up variations of chess just to add more complexity to the game. To amateurs like us it's still lots of fun. I tried playing against the computer but it's just not the same. Whereas when I play against human players, there's a chance they will make mistakes, including dumb ones. With a computer, in my case, to be exact, a PDA, it never works.

I actually started playing Chinese Chess before International Chess. I still have a little trouble adjusting to the transition. With Chinese Chess, the pieces are more restricted. The General's Guards are limited within the Palace, where the General is also confined in. The Elephants, great as they sound, cannot cross the river. Pawns don't get promoted once they reach the other end zone - kinda like Communism vs. Capitalism, you are stuck with whatever occupation the Party told you to be in. Knights and Elephants can be blocked off. So on and so on. Subconsciously, I usually try to trade Queens early in the game so the setting is more similar to Chinese Chess, as there is no Queens in Chinese Chess.

01 October 2005

Run, Qaptain, Run!

Years ago, before I moved into my current home, I used to run 4 or 5 miles every weekend. Back then, Lafayette High School's track & field was open to the public - it probably shouldn't be, but it was simply not locked. I would run 16 or 20 times around the track while on the field H.S. kids practiced football or Mexicans played soccer. Today I happened to work at home and finished early at 4pm. My son was at the park in Chinatown with my wife. I asked my nephew to go biking with me but he was with his friends. For the first time in a while, I have some free time on my hand - no need to entertain my son, no nephew to take out, no office work to worry about. I could have sat down and enjoy a movie on DVD, but it was such a beautiful day and I've been inside all day already, it would be too wasteful to spend more time indoor. Run, Qaptain, Run!

I walked half an hour to the Bay Parkway waterfront. Next, I ran a measly two miles - one mile west then back. The markings on the road were pretty faint, on the way west I missed the "4" markings and only noticed the "3 1/2", "3 1/4" and "3". On the way back, I went past the "4" marking, just to push myself a bit. I covered the two miles in half an hour, pretty much my normal speed of 15 min/mile. I used to run 12 min/mile six years ago, so it's to be expected that I would do worse than that. It's a start, I just have to stick to a schedule and work my way up to 5 miles per run again. OK, at 15 min per mile, it was really a jog.