Adding S3 Backup

This blog has no automated backup so, after looking at Jeremy Zawodny's math (via Dave) on S3 cost effectiveness, I've decided to add S3 backup feature to my new blog engine. Some links I am looking at from java-perspective (blog engine was written in java):

I think jets3t is what java developers should be looking at for S3 integration. I'll use it as is first then maybe upgrade it's SOAP support from Axis 1.4 to Axis 2 if the need arises.

Quickest way to do this is to just write an ant script file that just ships out a package of MySQL database dump plus some directories. But this quick-n-dirty solution is likely to require taking the database offline if I want to avoid getting MySQL grease all over myself.

When I have more time, I'll add a smarter backup service that does blog-specific automated/on-demand backup using compressed RSS files (with comments and extraneous info embedded using an extension namespace) and binary files (for images, etc) tied together using OPML.

Cruising

If I had to pick the best moment in any engineering project, it is when I am building on top of an engine I've spent time and energy to pour a powerful basket of functionalities into it. After climbing over that severe slope, suddenly everything is a breeze to do and you are at cruising speed, a brief moment of pure joy before smacking face first into a wall of production chores.

Yesterday was such a day. I've implemented Live Writer tagging support by simply writing and plugging a HtmlTagProcessor into a HtmlFilter which is plugged into a PostFilter which is used to process new or updated posts flowing in. Tags are collected and processed all together neatly and available to pages in the blog-specific tag space which has link to site-wide tag space which has links to popular public tag spaces. All that in a couple of hours and a series of sweet satisfying smiles. Akismet? Wham, done in minutes and awaiting to be tested.

The joy is not as great as it used to be though. When I was young, I could just sit and crank out code for days like a drunk might puke after drinking all night without a single compile nor test then when I run it, it used to compile and run dreamily like a corvette cruising at 150mph on highway 5 at 3am heading down south. And everytime, I used to get that huge smile all to myself. Now that I am older and less of a juggler, it's hourly cycle of test-driven fits. Oh, well. I've gotta do what I gotta do to feel that juice again and it sure beats having to babysit junior engineers and making empty promises to executives.

If Joi ever wondered why I've suddenly quit We Know, it was because I've missed this kind of joy (now that's a lot of joi/y. LOL). In a way, it's like grinding every weekend for months with the guild to get Rag except it's just me and miles of code.

Mozilla JavaScript Vulnerability Joke

Now here is a strange joke by two 'kids'. Mischa Spiegelmock and Andrew Wbeelsoi (pseudoname) claimed at their Toorcon session that Firefox's javascript engine was hopelessly screwed up and full of vulnerabilities. Their joke was plausible enough to briefly throw Mozilla into panic mode and reporters into puking a splatter of news. It turns out they were just joking.

The really funny part is that Spiegelmock works for Six Apart's on LiveJournal and Wbeelsoi is supposedly part of a group that claimed responsibility for launching a javascript attack against LiveJournal in January. I wonder if that's how the two jokers met?

And the tender loving part of the story is that Six Apart is not going to fire Spiegelmock. Awwwww. That's so sweet. Will Mischa be allowed to hang with his hacker buddy after this?

Korean Foundation Day

Today, both Koreas celebrated Foundation Day, an official holiday. In korean, the day is called Gae-cheon-jeol (gae = open, cheon = sky/heaven, jeol = day) meaning The Day Sky Opened. Here is a rather humorous outsider's explanation of the day:

[On October 3rd, 2333BC,] A sky god came to earth and set up shop in North Korea (yeah) [actually, I think it was Baekdu Moutain which seems like a great place for splash landing]. He impregnated a bear (which he conveniently changed to a woman before knocking it up — this point conveniently keeps Korea just one hair away from having the distinction of being the only nation born not in revolution, not in sober diplomatic discourse, but in bestiality). The bear woman squeezed out a kid called Tangun who became Korea's first king and ruled for 1,908 years and then went into retirement as a mountain god.

<

p dir=”ltr”>Actually the bear-woman story is more involving:

A tiger and a bear living in a cave prayed to Hwanung that they may become human. Upon hearing their prayers, Hwanung gave them 20 cloves of garlic and a bundle of mugwort, ordering them to only eat this sacred food and remain out of the sunlight for 100 days. The tiger gave up roughly after twenty days and left the cave. However, the bear remained and was transformed into a woman. – from Wikipedia on Dangun.

So a powerful alien splash landed into a volcano over 4,339 years ago and genetically modified a female bear to bear its child who lived for 1,908 years and someone was meticulous enough to write down the date it all started. Hmm.

It's an odd yet wonderful myth but I wonder what happened to the tiger in the love triangle of sort…

Reckless Blogging

My comment to Mark Pincus:

Mark, I am disappointed by your reckless blogging behavior.

Telling a story is great but google juice powered association of a name to an event that occured fifteen years ago just to illustrate your opinion on ethics then refusing to recognize the harm you might have done in the name of free speech violates my standard of proper behavior.

Unfortunately, this kind of mess can't be cleaned up by editing nor apologizing. Everytime someone googles his name or his company's name, it will resurface and affect his business.

Do you seriously believe he deserves to continue paying for a mistake he made at school 15 years ago? Or is it your belief that your free speech is worth others' loss?

IMHO right to free speech is not unlike the right to bear firearms, it is not a license to go around shooting willy nilly.

Work Ahead

Over this weekend, I am planning to replace dasBlog based blog-engine with my own newly revived blog engine, Daily. Expect trouble. 😉

Update:

Well, looks like I'll have to postpone the switcheroo til next weekend. I ran into an odd Lucene problem that scrambles the search index that I'll need to sleep on to figure out. There is also a layout problem with images in posts created with LiveWriter I would rather fix now.

Update 2:

Spent the afternoon fixing both problems and it's now working very nicely. Live Writer is working great too (color popped risque photos in test posts sure made testing more enjoyable!) but I think I'll extend XML-RPC API to support Movable Type API methods to enable a few more Live Writer functionalities. I haven't added Atom API yet because I haven't found a compelling reason to do so. Atom feed is there though. shrug

Update 3:

It took only an hour to add Movable Type API support. mt.supportedTextFilters and mt.getTrackbackPings are not supported though since first requires pluggable text filter feature which I don't support (yet) and I am just not interested in the later due to all the spam trackbacks.

Interestingly, Live Writer is much quicker at talking to my XML-RPC end point, probably because now it just calls mt.supportedMethods instead of having to poke around to discover what works.

Abe Shinzo is Korean?

According to this rather odd Korean article, 80 year old former housemaid of Abe Shintaro, Abe Shinzo's father, claims his former employer confessed to her before dying that he descends from a Chosun family line (Chosun precedes Republic of Korea) which originated somewhere in Manchuria. He also tolder he that his family name Abe was the same one used by an 11th century warrior.

This doesn't change my opinion of Abe Shinzo though because it's his thoughts that matters to me, not what flows in his veins.

Implementing Tags and Categories

Duncan MacKenzie replaced categories with tags unveiled two issues which he is asking for help on (via Dave the switchboard):

First, there are many more tags on most sites than there would be categories, so editing tools don't always provide the most useful UI for selecting tags.

Second, categories are fairly static, but tags are continually being added… and most blogging software doesn't provide a mechanism for adding to your list of categories.

I ran into this problem as well recently while reviving and renovating my blog engine which I had shelved long time ago. My solution was to:

  1. define categories as collections of tags
  2. define category names as tags

which turns categories into macro tags of sort. #2 is needed if you want to associate only tags with each post and not categories.

Caveats:

  1. Since tag names usually have stricter syntax limitations than category names, category should have label(s). You'll need more than one if you have i18n requirements.
  2. Each category's collection of tags should be editable by the blog admins.
  3. Searching gets slightly complicated because you have to expand category names into tags before submitting the combined collection of tags and keywords to the search engine.

Growing Up Hating America

It is clear to me that Bush and his supporters are ignoring basic human psychology in favor of Rambo mentality. Youths of the world are growing up with seeds of resentment against America yet we, the Americans, are not only blind to this but are adding fuel to the fire.

Imagine the mind of Korean youths whose grandparents are indebted to America for freeing their country from Japan's domination in 1945 and for pulling the country out of the jaw of communism in early 1950s. Unlike their grandparents, they were born into a safe world and spend their daily lives more concerned about entertainment and technology than liberation and democracy.

To most of them, the debt their grandparents carry in their hearts are no different from debt owed to a creditor so it should not be surprising that many of them resent being told that they must inherit the burden. If you can't understand this failing, try explaining to your kids why they must inherit your financial debts. If korean youths feel this way, imagine how kids of other counties who experienced only the rough end of America's capitalism must feel.

On this riverbed of dormant resentment, naked waves of War Against Terror flowed while twisted idealists and religious fanatics infiltrated the youths with false history and propaganda to turn them against America. While we shocked and awed with precision-bombing, they picked and played the strings of resentment with precision and persistence.

We can't change these kids' mind with dead bodies of terrorists and fallen dictators, not when they think they are Luke Skywalker and us the Empire. I fear that Bush's so called War against Terror is going to turn into a War against Rest of the World when the kids are no longer kids unless we open our collective eyes and try to see the world through their eyes.

Amazing Archery

I just ran into this amazing korean video clip that ends with a korean archer shooting an arrow into another arrow at 30 meter, duplicating the feat shown in the Robin Hood movie. Wow.