Karora Komics - part 1 Posted by Hello

Karora Komics

Just stumbled onto these on my old hard drive, thought it might be fun to post, just to show you how whacky Karora's R&D team can be. The next few comic strips are an actual debugging session that took place on 27-11-2002, with comic characters bbg as Gav in the Toronto lab, and IRCMonkey as yours truly, working remotely from home. We kind of took eXtreme Programming to the extreme.

Thinking of the tsunami victims

Well, no matter where you are in the world, unless you've been hibernating off some remote mountains or islands in the last 4 days, you must have heard about the latest tsunami disaster that hit South East Asia last Sunday, causing untold devastation.

It is at times like this that I feel so very fortunate to be living in such peaceful and (relatively) trouble-free country as Canada. I feel so undeservedly blessed in this life, as there are certainly thousands of people who are much more deserving than me. And I thank God for granting me these blessings. At times like this, for a brief moment, it makes me want to give up everything and devote my life to helping the less fortunate. Sadly, the selfish side of me is still winning the struggle against that thought.

But for now, a small contribution, I can do. The Canadian Red Cross has set up a page, South East Asia Tidal wave and Earthquake, that accepts online donation. In the spirit of the season, please help what you can. Be sure to select South East Asia Tidal wave and Earthquake as the Fund Designation if you really want your donation to go to the tsunami relief efforts.
God bless.

Not Designed for Dummies

With the holidays, and being away from home and the office (and still able to do work), I've been using my old Dell Inspiron laptop more extensively than I usually do, and I've come to notice how crappy the keyboard design is on this thing.

The Ctrl key is too hard. I'd do a Ctrl-S to save my code changes in the editor, and sometimes it would simply echo an 's' in the middle of my code (the Ctrl didn't take). I guess I didn't press hard enough.
Bad design point #1: the product encourages people to do the wrong things (pressing hard on the keyboard in the long run is a health hazard, or so I've heard).

The TouchPad mouse is another thing. It's positioned right below where your thumbs would be located if your hands were fully positioned on the keyboard. I'd be typing along and then all of a sudden, the cursor would jump half a page down, and I find myself hypertyping in the middle of another block of code. What happened? Oh, I guess one of my thumbs must have touched the TouchPad by accident, triggering a mouse click that puts the cursor somewhere else.
Bad design point #2: the product encourages people to do the wrong thing without even realizing they were doing it.

May be because it's just an ancient Dell, or may be it's my seating posture. But this experience reminds me of how critically important usability is to any product, computer related or otherwise. To be usable, the user interface needs to be intuitive. If I build a product that does something when my users expect it to do something else, then this is a very bad thing. It's most likely qualified as carnal rule #1 of usability design, because if this happens too often, eventually the annoyance factor kicks in and my users will be cursing me for using my product.

Upon reflection, this is more of a wake-up call for myself than anything, because I at times make this very mistake in designing software user interface. I guess I need to have that "Design for Dummies" logo engrained in my head. But then again, if you're building radically new things out-of-the-box that have never been done before, and especially if you don't have usability experts on staff at your disposal, then the only true test of usability would be to put out beta releases, and get as many users as possible to use it, then make the necessary adjustments based on their feedbacks.

PuTTY security holes in version < 0.56

A little bit of old news. I just saw this on the PuTTY site:

2004-10-26 ANOTHER SECURITY HOLE, fixed in PuTTY 0.56
PuTTY 0.56, released today, fixes a serious security hole which can allow a server to execute code of its choice on a PuTTY client connecting to it. In SSH2, the attack can be performed before host key verification, meaning that even if you trust the server you think you are connecting to, a different machine could be impersonating it and could launch the attack before you could tell the difference. We recommend everybody upgrade to 0.56 as soon as possible.

That's two really bad holes in three months. I'd like to apologise to all our users for the inconvenience.

This Day in History

On this date:

In 1783, George Washington resigned as commander-in-chief of the Army and retired to his home at Mount Vernon, Va.

In 1893, the Engelbert Humperdinck opera "Haensel und Gretel" was first performed, in Weimar, Germany.

In 1928, the National Broadcasting Company set up a permanent, coast-to-coast network.

In 1941, during World War II, American forces on Wake Island surrendered to the Japanese.

In 1948, former Japanese premier Hideki Tojo and six other Japanese war leaders were executed in Tokyo.

In 1968, 82 crew members of the U.S. intelligence ship "Pueblo" were released by North Korea (news - web sites), 11 months after they had been captured.

In 1972, Thanh Hai Tran was born.

In 1980, a state funeral was held in Moscow for former Premier Alexei N. Kosygin, who had died Dec. 18 at age 76.

In 1986, the experimental airplane "Voyager," piloted by Dick Rutan and Jeana Yeager, completed the first non-stop, non-refueled, round-the-world flight as it landed safely at Edwards Air Force Base in California.

In 1987, Lynette "Squeaky" Fromme, serving a life sentence for the attempted assassination of President Ford in 1975, escaped from the Alderson Federal Prison for Women in West Virginia. (She was recaptured two days later.)

In 1997, a jury in Denver convicted Terry Nichols of involuntary manslaughter and conspiracy for his role in the Oklahoma City bombing, declining to find him guilty of murder.

[Courtesy of Yahoo.com]

AppConnector search result by Google Posted by Hello

Karora's AppConnector finally ranked #1 by Google!

Up until recently, when you google for AppConnector, the first hit you'd get is one of our reseller's web site instead of Karora's web site. It's embarrassing, considering that we own the trademark for the name. Well, no longer. As of today, we're first in the hitlist. Woohoo!!!

Next mission: getting us to come up #1 for Desktop Application Integration. :-)

Oh pardon me, I farted...

This, hot off the Wire:

A Japanese firm pioneers a system to share fragrances over the internet.
Users attach a device to their laptops that resembles a crystal ball with a nozzle. The device receives aroma data from the central server and exudes fumes from the nozzle in accordance with that reading.

Wow! That's pretty revolutionary...if it can work, that is.

What's next: smellevision? Not as farfetched as you might think now, is it? Scary!

Developer versus Programmer

What's the difference between a (Software) Developer and a (Computer) Programmer? Joe Spolsky's had a good post this week on his Joel on Software blog discussing at length by comparing the difference between two Hebrew words...which are all Greek to me until he started explaining it in English. Joel also pointed to another good blog entry by Eric Sink, entitled Small ISVs: You need Developers, not Programmers, which makes a similar distinction. In effect, from a responsibilities perspective, they both say that a programmer is someone who does what's sufficient, no more, no less. And a developer is one who does what's necessary.

Although I appreciate and understand the need to make the distinction, I think the distinction is borne from a human resource or management perspective, not one of a technical perspective. The title Software Developer only started appearing in employment ads in recent years. Before that, back in the days where computer programmers are still a rare species, all the relevant titles you would see in a job posting are Programmer/Analyst, Application Programmer, System Programmer, or simply Programmer. And it is not unplausible to see the following responsibilities mentioned in the job description: responsible for writing functional specification, implementing programming logic as per specs, writing test cases to be executed by testers, perform bug fixes, may involve writing of user documentation, etc... My point is that back then a programmer was not necessarily someone who just does the coding, and good programmers didn't just do what they were told.

Back then when I went to my high school guidance counsellor to try to chart my career path, the brochure only had about a couple of career options for computers: Computer Programmer (meant for those interested in software) and Computer Engineer (meant for those interested in hardware).

Now, with the explosion of jobs created by the computer industry in the past few decades, suddenly there's a need to differentiate between a Developer and a Programmer. That's unfortunate, because to me they both mean the same thing. When I explain what I do to someone who's computer challenged, I'd say I'm a computer programmer, eventhough my job title says "Software Developer". They know, albeit acutely, what "computers" are, and I can easily explain away what "programmer" means. Instead, with a fancy term like "Software Developer", I'd have to explain the difference between software and hardware--a much more difficult thing to explain to someone with zero knowledge of computers.

The Evolution of a Programmer

Link: The Evolution of a Programmer

This article makes so much sense it's actually funny. I was laughing out loud towards the end of it. Here's my interpretation of it, for those who may be programmatically challenged:

High School/Jr.High
You learn the basic and the simple. BASIC is the first programming language you learn in high school.

First year in College
You learn to add standards and structures to things. Pascal is the language used in first year college classes to teach structured programming.

Senior year in College
You learn to do things the "smart" way. Lisp is the language used in senior year Artificial Intelligence (AI) courses.

New professional
Reality kicks in. You find out what you've been learning in college has nothing to do with what you'll be doing for a living. You're inexperienced and don't necessarily do things in the most efficient ways. C is the programming language used by just about every software development organization in the world, if not in full then at least in part.

Seasoned professional
With some experience, you think you now know alot of tricks. You think you can do things better than anyone else. Consequently, you always like to re-invent the wheel, to build better wheels. You know too much for your own good.
C++ is an object-oriented language preferred by organizations over C because it is easier to maintain. In this code snippet, the programmer is overriding virtually all the standard operators and functions provided by the language with his/her own implementation.

Master Programmer
You've mastered the art doing things in the most complicated way possible.

You learn to tinker with things beyond your comprehension.

I dropped the various levels of hackers from the list because these aren't really the next steps in the evolution per se. Most programmers tend to pick up their hacking experience in parallel with their programming experience.

New Manager
Wisdom kicks in and you finally realize what you've learned in school actually makes sense. You've become humbled and now wants to keep things as basic and simple as possible.

Middle Manager
You learn that getting more things done means delegating as much as possible to other people.

Senior Manager
You learn to delegate with less effort. Or in programmer lingo: you've optimized your delegation routine.

Chief Executive
You've lost it! You've gone senile. Time to turn in the badge in exchange for that retirement pen.

Call me naive, but it seems to me that life as a programmmer is very much a parody of life in general.


Picked up this hot tip from Steve about Robosapien. Looks like it might be a cool gift for my nephew. The trouble is: I checked virtually all the online shops and they're all sold out! Thanks for the tip, Steve...not! Just wish you had posted it a month or two earlier. Oh well. There's always next year.

EBay Uses Snail-Mail to Hook New Users

Link: EBay Uses Snail-Mail to Hook New Users
I got one of these "snail mails" from eBay the other day. Good on them for doing their part to support the postal service.

I'll tell you this, with the advent of e-mails and private courier services, I was beginning to wonder when the Canadian Postal Service would close down their operation. :-) The quality of their delivery service lately leaves something to be desired. I'm speaking from personal experience. Ever since I moved into the new address a few years ago, I've noticed that they've misdelivered my mail more times than I can count. The first was their mail forwarding service. I specifically ticked the box on the form that said "Only forward if full name matches". Yet, they ended up forwarding every piece of mail intended for everyone of my family members. They had effectively forwarded based on Last Name match instead of Full Name match.

And then there's the thing where they would delivered my neighbours' mail to my mailbox: same street number, but next street down the block.

And then there was the time when I sent a payment cheque into my Internet Service Provider, located within the same city. Eight weeks later I called and the ISP still hadn't received my cheque. I guess I could have used registered mail, but at the time I had too much good faith in regular mail. My mistake I guess.

So I don't know...I want to help them improve their service, but I've made numerous complaints that really didn't get anywhere. So I just gave up.

You'd think I'm being over-dramatic, but I'm telling you, if their service doesn't straighten up their delivery service over the next few years, I wouldn't be surprised if Canada Post closes down or gets privatized. ;-)

The health benefit of blogging

Did you know that Blogger has this cool feature where you look at a blogger's profile, each of the blogger's attributes is a clickable link that takes you to all the other people in the bloggersphere that have similar characteristics? I was bored enough last night to be clicking through my own profile just to see how many others have the same messed up interests as I do. From this little experiment, I've formulated a hypothesis as to why people blog: peace of mind.

Allow me to explain. Sometimes, people need to vent some cooped-up frustrations that otherwise can't be let out. So what more appropriate means to do it than a blog?

In the olden days people used to write diaries to help sort out their emotions, because writing forces them to think more analytically about what they're thinking and feeling, and helps them better come to terms with it.

Well, now in the twenty first century, people blog. With my brief perusing, I had encountered a variety of people, from a fourteen-year-old venting her teen angst using the spelling skills that I can never comprehend but people around her age could probably relate to very well, to a lazy ass housewife who complains about being too lonely because her husband works too much, to a highly intelligent professional--with a theoretical reasoning ability that's way beyond my comprehension--trying to get his thoughts out to the world before it disappears forever from his brain. And all these people have the same interests as I do? Scary!

For the fourteen-year-old trying to get her grounding in this crazy world, it could keep her from going berzerk due to those teenage hormonal imbalances (Of course, I'm exaggerating...to prove a point). For a lonely housewife, she might be able to get comments from other fellow bloggers to help solve her boredom crisis, God help her. For an open minded professional, he could be opening up avenues for theoretical debates with people all over the world, people whom he's never even met, intellectual challenges that otherwise would not be possible.

Me, I'm not sure which category of bloggers I belong to--perhaps a little bit of each (except for the lonely housewife bit). But it feels good to get ideas out in the open, eventhough you're not sure if anyone will ever read them, and those who do will probably think your thoughts are idiotic. But don't give a damn! It's a free world, and it's your God-given right of free will, to be totally entitled to your idiotic thoughts, so don't you let anything or anyone stop you from expressing them freely. :-) Just kidding about the "idiotic thoughts" part.

So go on, my friend. If your life is a little messed up and your emotion a little unstable, instead of going to a psychiatrist, I suggest you start a blog. It's a lot cheaper and will probably work just as well.

Your blogiatrist :)

Firefox humour

Have you seen this? It's quite funny. I like number 11:
GetOffYourLazyButtAndWalkToTheFrontDoorForPetesSake 0.01 - Snail mail notifier

SpamAssassin kills spam dead on its track!

Got the new spam filter for our Microsoft Exchange server up and running in the office network for a few weeks now, and I'm totally thrilled as to how well it works straight out-of-the-box, so to speak. SpamAssassin is another testament to the power of free and open source software development.

There are a couple of available SpamAssassin plugins for Exchange Server, but I used Christoper Lewis'
Exchange SpamAssassin SMTP Sink
(Thanks, Christopher!) since it worked best for me. Initiallly, I installed SpamAssassin on the same server as the Exchange Server, but soon found that Perl's performance on Windows platform was really bad. Some of our incoming emails eventually arrived at their recipient's inbox six, eight hours late. So I switched to running it (spamd) on a Linux server, and then made the Exchange sink connect remotely to the SpamAssassin daemon. It seems sort of counter-intuitive, doesn't it, when you first think about it, but the performance is much, much better this way. Perl likes being run on Linux better than on Windows.

So far, the spam filter has caught about 99% of the spams that have come through our server. That's an acceptable success rate--And no false positives, unlike the spam filter that we've tried previously. The installation was relatively straight-forward, a credit to the documentation. I also like the fact that in addition to the usual DNS black list lookup approach, which other typical spam filters use, SpamAssassin's Bayesian filter weeds out spam contents quite well. That's smart stuff! And that's with me barely scratching the surface of functionalities after a couple of days of playing with it, without training the filter whatsoever.

Who would have thought ten, fifteen years ago that spam e-mails would become such a big problem to our corporate netizens. They are a complete waste of bandwidth, not to mention a waste of every body's time spent in deleting them. But thanks to great open source tools like SpamAssassin, coupled with strong legislation from our law makers, we'll soon put an end to this net parasite yet.

Skype me

I've been playing around with Skype for about a week or so. It's a nifty telephony app that let's you have voice conversation with other Skype members (free service), and even lets you make phone calls to regular phone numbers (paid service).
The voice quality is extremely good; I've tried other similar apps before like Net2Phone a while back and the quality was really crappy. Not Skype. You do need a microphone headset to use this thing; otherwise, your calling partner will hear weird feedback echos of their own voice.

So go ahead. Give it a try, and once you've got yourself an ID, skype me. :-)

Hello again, world!

Just emigrated from Bloglines. Trying out this new blogging home to see if it's better or worse.
First impression: I've got to say I like the WYSIWYG editing interface. Support for comments is also a plus. Not too crazy about the look-and-feel, though, but I guess it takes some getting-used-to.

I'm sorry, but what exactly is a "portal"?

So my boss sneaked up behind me today, as usual, while I was updating our "portal" web site, saw the huge "Welcome to our portal site" banner on the front page and said "Hey! Don't call it a portal; it's not!" Huh? Slightly stunned by the revelation, I switched over to Google and popped in the "define:portal" search expression, and low and behold, almost all of the Google definitions consistently define it as "a web site that is or is intended to be the first place people see when using the web. Typically, a portal site has a catalog of web sites, a search engine, or both. A portal site also may offer e-mail and other service to entice people to use that site as their main 'point of entry' (hence "portal" to the web)" [source].
WisdomPortal site also has a good list of definitions.

Well, slap me silly! I always thought it the other way around, that a portal would be an access point for the outside world, our customers, to reach into us, into our corporate information. What the heck?

1. I've dozed off in the past six years and am now technically clueless, or
2. the meaning of a "portal" has changed (read: evolved).

I took a chance that the former wasn't the case, and set out to prove the latter to myself. After some serious digging, I came upon this really good Portals 101 article that explained it all. The article quoted a more satisfactory definition to my taste: Portal is a term, generally synonymous with gateway, for a World Wide Web (WWW) site that is or proposes to be a major starting site for users when they get connected to the Web or that users tend to visit as an anchor site.
Ah hah! It is "synonymous with a gateway", not necessarily an Internet gateway, and as such, can function in both directions: inbound and outbound.

Apparently, there are different types/classes of portals:

  1. Corporate or Enterprise (B2E) portals, (examples: corporate intranets)
  2. eBusiness (B2B and B2C) portals (examples: mySAP, oraclesmallbusiness.com)
  3. Personal (WAP) portals (examples: WebTV, OnStar), and
  4. Public (Internet) portals (examples: Yahoo, Google, MSN)

So by the above definition, since the purpose of our company's portal site is to provide personalized service to our customers, it would fall under Type 2 (a B2C portal). So it IS a portal! It IS a portal! I'm not crazy after all. I'm not crazy after all!!! HAHAHA [klunk] [falling off soap box]

[climbing back on soap box]
Ergo, I've proven that both of my hypotheses are true! Hypothesis 2 is true because although the original general definitions are correct, there are specialized classifications of the general term, as seen above. And hypothesis 1 is also true; I must have dozed off a bit, because the "B2C Portal" concept has been in existence since at least 1999, if not earlier (read: "Critical Issues: The B2C Phenomenon", December 1999, PricewaterhouseCoopers LLP).

(Originally posted on: bloglines.com.)