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.

26 September 2005

Diarrhea of a Mad Man, The Final Chapter

I had my colonoscopy done today. It was pretty quick, the only time that I felt the urge to get over with was during recovery. I spent very little time in the waiting room and was admitted almost immediately. Slipped into the fancy gowns (one front, one back), I had a little time to read amNewYork and Metro New York before it was my turn. The anesthesia doctor was friendly and chatty. It took him a second try to get the IV in place, but shortly afterward I was knocked out. By the time I became groggily awake, I was in the recovery room already. I felt bloated and gladly passed out gases that were pumped in during the exam, which I learned from the nurse before the exam. Signed out by my wife, I went to the Starbuck's in the nearby Barnes & Noble and devoured a toasty cinnamon raisin bagel with cream cheese, while downing a mocha Frappuccino, venti.

25 September 2005

Diarrhea of A Mad Man.

Today is the day before the colonoscopy. My father had colon cancer but it was discovered too late. Ever since his death in 2001, I've promised myself to have a colon exam to take advantage of any early detection. In preparation for the exam, I had to have a light breakfast, a light lunch, and a liquid dinner. Then an hour after dinner, take 1.5 oz of phospho soda to cause diarrhea so as to clean out all the sh!t. The stuff really works! It helps that I didn't have much of a dinner, just a lil' congee (rice porridge). My mother kept saying the solution would be yucky but I mixed it with ginger ale soda and it was rather yummy. The only effect of the preparation, other than the diarrhea, is a nasty headache, brought about by the lack of food. I'll just suffer thru the night and half of tomorrow then I can pig out for the late lunch.

21 September 2005

Hit Counters

A few days ago I decided to put a hit counter on this blog. I looked around in the help section and went with Easy-Hit-Counters.com. Sure it was easy to create the code - fill out some form and then you are presented with some code to copy and paste into your blog. It did ask for a username and password. Today, I found out that my hit counter isn't there any more. I probably put it in the wrong place or did not re-publish my site, whatever. Of course I didn't save the code the Easy-Hit-Counters.com gave me. I searched around E-H-C.com but there seems to be no way of logging in to the site to retrieve the code. Oh well, I'll just go with another company.

BraveNet.com seems to be a pretty decent service, given the price - free. I chose the cartoonish BraveNet image. Let's hope my hit counter will survive longer than the first one. Let's hope too that BraveNet.com will remain free.

04 September 2005

Battle of Brooklyn Bridge


One of the joys of life I have is bicycling. It's healthy, it doesn't pollute the environment, and it's a good way to hang out with my wife's nephews, H and C. Well, the last time we went biking, only C tagged along, as H had to hang out with his girlfriend.

So far this summer I've gone bicycling only once, with C along the Belt Parkway. Today, we cancelled the trip to the Hall of Science in Queens because of high gasoline price and H & C wanted to go bicycling. It would most likely be our last bike ride together this summer so I wanted to make it special. Instead of just another ride along the Belt Parkway, we went all the way to the Brooklyn Bridge AND crossed it. We got onto Shore Parkway South via 26th Avenue, went against traffic briefly then got onto the waterfront at Bay Parkway. At Owl's Head Pier we went by Owl's Head Park to Second Avenue. It was somewhat of a scary ride along Second Avenue on the weekend as the place was deserted. At 36th Street or thereabout we turned north to get to Third Avenue, as 28th Street and Second Avenue had been blocked off since 9/11. There is some jail at that junction and supposedly the government doesn't feel it's safe to keep the street open. At Prospect Avenue, we could have followed the Gowanus elevated highway but I felt it's safer to go along Third Avenue. A friend of mine, E, lived in the neighborhood so I decided to visit him. We turned south at Union Street, crossed some bridge over the Gowanus Canal, turned right at the first corner off the bridge, and turned left at Hackett. I didn't ring E's doorbell but he heard us talking and came out with his toddler daughter. Onward along Smith Street, we turned left at Livingston because I mistakenly thought at Hillary and Livingston we would see the majestic towers of the Brooklyn Bridge. Even at a few blocks away from the foot of the bridge, we only could see a tower of the Manhattan Bridge, nothing about the Brooklyn Bridge. So much for invoking feelings felt by immigrants of bygone years when they spotted the Statue of Liberty. At 3:45pm, some two hours and fifteen minutes from the time we started out in Bensonhurst, we were at the foot of the Brooklyn Bridge on the Brooklyn side. We took some photos and then up the bridge we went. The ride up to the Brooklyn tower of the bridge was difficult and I ended up pushing the bike most of the way. H & C did a little better but still pushed their bikes near the end. I don't know how those people did it, but they were zooming up the bridge as if riding on an even road. We stopped at the Brooklyn tower to take pictures to commemorate the event. It took only fifteen minutes to cross the entire bridge. The trip down was somewhat scary as it was steeper than I thought. There were many pedestrians and some of them overstepped into the bike lane. There were many bicyclists going into Brooklyn, against our direction. Then there were those taunt cables holding the bridge up. It didn't help at all that my brakes weren't working properly - I had to use my feet to slow the descend.

Originally I thought about going back to Brooklyn immediately via the Brooklyn Bridge. By the time we crossed the bridge into Manhattan's City Hall area, we were too tired to even think of that. We skipped lunch and the trip had taken all of our energy. And the pain in the butt! Whoever invented bicycle had to have a small butt or was light enough not to feel pain while spending a long time on the bike. Feeling joyous but tired, we walked our bikes to Chinatown to use the toilet at the bookstore belonging to H's father, then bought a late lunch which we consumed voraciously in Eleanor Roosevelt Park. A friend of H, playing basketball in the park, came over to hang out with us and fetched soda for us. For the trip back, we rode the D train instead of our bikes.

Eighteen miles. Two and a half hours. We crossed the Brooklyn Bridge on bicycles. What a great feeling.

29 August 2005

Back in NYC

That's it for my vacation to Seattle and Vancouver. The last few days were painful - stuffy nose one day, followed by headache the next, even though I had plenty of sleep. Must be because of all the driving and the irregular meals. To top it off, on the flight back, for some reason I simply could not sleep. It was a late flight, leaving Sea-Tac Airport at 11:10pm local time, 2:10am NYC time. My son had no trouble at all, but for me no position would get me to sleep. In the end, it was after getting home that I was able to put in about four hours of sleep. Back to NYC, to alternate parking regulations, to steamy summer weather, to watching J play with the neighborhood kids, to visits to the public library.

One thing I wished I could have brought along was my new PowerBook laptop. Spotted people here and there with the cool laptop. Nah, too much hassle going through airport security and I probably wouldn't have any chance to use it.

28 August 2005

Seattle Vacation Almost Over

Just got back to Seattle from an excursion to Vancouver area. We stayed at a Sheraton out in the 'burb of Vancouver, Guildford, Surrey to be exact. Even though it was out in the suburb, nothing was free. Parking was $6/day, wireless Internet access $10, in-room bottles of water $4.50 each. Give me Holiday Inn Express any day... After so many days of driving around and eating at irregular schedules, my fatigue finally set in and I've been sneezing and walking around with a stuffy nose. I should be in bed now, getting ready for the last day of vacation tomorrow. Tomorrow night, we'll fly and be back in NYC by the a.m.