Tuesday, March 12, 2013

Terminator Shortcuts



Ctrl-Shift-E -> split the view vertically.
Ctrl-Shift-O -> split the view horizontally.
Ctrl-Shift-P -> focus be active on the previous view.
Ctrl-Shift-N -> focus be active on the next view.
Ctrl-Shift-W -> close the view where the focus is on.
Ctrl-Shift-Q -> exit terminator.
F11 -> make terminator go fullscreen.

Friday, January 25, 2013

Sending Email via the UNIX Bash Shell


You would need to have sendmail and mailx packages installed.

With these, you can issue the following command to send an email via the shell:

$ echo "test" | mailx -a ./file.txt -s "subject2" abc@email.com

The above command pipes the string "test" to the mailx command which constructs an email for abc@email.com with the subject, "subject2" and an attachment, "file.txt".
Alternatively, you can enter interactive mode with the mailx command:

$ mailx -a ./file.txt -s "subject2" abc@email.com

The shell then lets you type in your message. To exit the interactive mode, you just enter a new line and type in '.'.

If sending a binary file, it's always best to encode it first:

$ uuencode file.bin file.bin | mailx -s "subject2" abc@email.com


Wednesday, January 23, 2013

Much Ado About Anothing


The PH internet was abuzz recently with news of Ricky Lo's interview with a seemingly disinterested Anne Hathaway. For starters, I don't really care what the interview was about and why it turned out to be that way. But this morning, when I was bringing up PhilStar on my office browser, there and behold a link to Ricky Lo's article, "Anne of thousand hits (http://www.philstar.com/entertainment/2013/01/23/899982/anne-thousand-hits)" that my mouse just easily gravitated to it and it was just an easy click away into reading it.

There was nothing really interesting about the article as well, as Ricky seemed to just brushed off the incident as just one of his interviews with 200 other Hollywood actors (but of course, with some stinging remark that those others were "absolutely more delightful, far nicer and totally engaging"). But what was really interesting was the comments that came with it, that pointed out that Ricky misused an idiom when he wrote "to the manner" born when referring to the dainty way Julie Andrews took her tea.

To quote the comment thread:
olinsky: It's "to the MANOR born", not "manner". Your writing is as bad as your interviewing skills.

eternatalya: From phrases.org.UK: "To the manner born." Meaning: Destined to be suited to something, by virtue of birth or custom and practice. To the manner born and to the manor born ("said" to be originated by Shakespeare) are also now virtually interchangeable, as per thousands of websites that detail both phrases' word usage. But you should already know that. 

olinsky: I taught high school English, including Shakespeare, and if you had read Hamlet, you would know the original meaning of that idiom, and the distinction between "to the manner born" ("fitted by or as if by birth or rearing to a particular position, role, or status"-Merriam Webster) and "to the manor born" ("born into circumstances of wealth and privilege"-MW). The context in which Ricky used the phrase calls for "MANOR" not "manner". Perhaps you overlooked this when you Googled the phrase: http://www.word-detective.com/2011/10/to-the-manner-manor-born/ 
This is just one example of how netizens (but more specifically, Filipino netizens) who do not have anything on their name would all of a sudden build their portfolio by saying and make claims invoking some air of authority. In this case, one claims to be a petty high school English teacher, and invokes with that authority the right to be a usage cop. But in the end, it's all hubris and not to mention a fallacy (argumentum ad verecundiam).

It does not need one to have a doctorate in linguistics to know that language evolves. And especially with the coming of the Internet, any language except probably to those which are considered dead (e.g., Latin) evolves and evolves in an ever faster pace. That language is dynamic is a reality which is hard to deny.

Even the quoted link admits that in modern usage, the terms "to the manner born" and "to the manor born", although originally different in meaning, are now losing their distinction. Or more accurately, the term "to the manner born" is losing its Shakespearian nuance (as noted, from Hamlet) in favour for the nuance connoted by the more modern idiom "to the manor born." Although, to be accurate as well, the quoted article seemed to favour keeping the two idioms distinct.

But the reality is that language is defined the community of users (not what the "authority" says it is). And overwhelmingly, the Shakespearian nuance is losing the battle against the modern usage.

Or, I don't know, I have to admit, it's the first time I heard the idiom. Maybe, the idiom itself is becoming passe, with the changing financial demographics of the modern world where there are more "nouveau riche" than the traditional "ancien riche" (i.e., for the passing usage cop... old rich).

Again, to quote Shakespeare, there's just much ado about nothing. And by that I didn't mean the debate on the idiom but on the online charlatans who dress themselves with the authority of nothing just like when the emperor's invisible clothes.

Pitious.

Tuesday, January 22, 2013

Lend your money and lose your friend


This proverb has been proved time and time again. The gist of this is that: you should never loan money to friends lest you want to get in an awkward situation of trying to get back the loan and eventually putting some strain in your friendship.

I, myself, have tried to find creative exceptions around this to my own detriment. I find that I'm not a good creditor (i.e., I don't have the gall to confront people of their loans and try to get it back). Furthermore, I do not believe in "interest" on loans (both in terms of morally and also in terms of its economic foundations), so I do not charge interest (on that point, banks and creditors should not as it is usurious). And "friends" tend to gravitate toward me because of these. And those who owe me tend to abuse these "acts of kindness." And I find that loans they owed me never really get repaid.

In this sense, the proverb also has another pragmatic meaning: when you loan money to friends, you'll discover that most of them are not really your friends.

Friendship is a reciprocal relationship. As a friend-creditor, you lend money to your friends because you want to help a friend-in-need and keep the relationship. As an act of reciprocity, you expect that friend to also want to keep that relationship by keeping with the promise to repay the debt. Thus, an act of defaulting to a debt especially with a friend negatively affects the relationship.

So hard as I find it, I have resolved not to lend out to friends... for our friendships' sake.

JSFiddle


Found a cool way to experiment with web development where you can enter an experimental HTML, CSS, and Javascript and show it's output. It's called JSFiddle.

Check it out:
http://jsfiddle.net/user/dashboard/

You do not need to sign up to start experimenting. But to create "fiddles" (i.e., stored experiments), you need to sign up and get an account.

What is good about this service is that, you can import several pre-set JS libraries including jQuery (of different versions), YUI, etc.

Only thing is that you can only choose one library at a time (you cannot import several at a time). But nonetheless, it is good enough when you want to do quick experimentation especially when building on a Java web application which would otherwise require you do a lot of configuration (not to mention the overhead of startup) just to bring up a page.

Friday, January 18, 2013

Extreme Outsourcing

Incredulous was my first impression when I first read the story online. I even remarked on my Facebook page when I reposted the link that the US TV show producers of Extreme Couponing should create an off-shoot based on this incident and call it, Extreme Outsourcing. Judge for yourself: http://securityblog.verizonbusiness.com/2013/01/14/case-study-pro-active-log-review-might-be-a-good-idea/

I don't want to recapitulate since the writer made a very good narrative.

But pondering on it after sometime, one may wonder how it feels like on the other side of situation... from the outsourced developers.

Well, I've been (and may still be) on that other side. That's how I felt when I was working back home under IT BPO companies. Of course, I do not know how much my counterparts in the US or Europe actually earned. But I had my suspicions. I usually am sent out to work on-shore to our client's offices and I'm usually given a per-diem (i.e., per day stipend) by my company's client. And all I can remark is... if you keep a very low profile in the US or Europe and preserve as much of the stipend as possible, you not only save your salary back home but can bring back much more upon your return. In fact, the per-diem is as much as twice or thrice my daily rate back home.

Now, I'm sure our US and European clients would not have brought me there if bringing me there would actually cost more than having one of their IT personnel do the job. So, my suspicion is that my counterparts would have earned more than five times I'm getting back home.

So there's a bit of sour-graping on my side upon this realisation. But I consoled myself with the usual neoclassical economic explanations (emphasising the plural) about the disparity. That their standard of living is much higher... blah blah blah... and so their cost of living is such and such and such. But I can't seem to shake away the lingering fact that, basically I'm doing the same thing as that other person is doing. And yet,
  • I'm treated as second class "resource" by my company's client.
  • I'm treated as a slave by my company and my company's client. Reifying the notion of me as a mere resource for them.
  • I have to deal with two managers who most of the times have different ideas of what the work is about.
  • I'm given deadlines which are often too compromised so in effect, I do overtime work but never clock them on my reported time sheet because my Project Manager wants to keep his/her scorecard below scrutiny.
  • I'm blind sighted by a lot of "management" decisions which does not really make sense (later did I know... and good thing I already resigned from the company when I did realise this... "upper management" only wanted to protect their ignorance from reeking to higher management)
  • and on top of it, I'm paid a measly fraction of what my counterparts enjoy.
Of course, this gripe stems from my assumption that I'm just doing the same work as they are and yet compensated less. And some might actually point this out as a flaw in the logic.

This article actually provides some sort of counter argument against that. In fact, I think in many respects the situation narrated might be analogous to what usually happens: that at the higher levels, the decision makers do not really know how much outsourcing their trustee managers and delegates employ and all the while the same have been claiming credit for what the remote pawns have actually built which they only repaid with but a fraction of their own salaries (or budgets).

Well, it's a world full of ironies... and full of inequities. But if you're on the shorter end of this relationship, you can only bite the bullet and put on the friendly client service smile.

Unix Shell stderr and stdout redirections


This has always confused me. So I'll try to recapitulate what I understand in this mini-blog for my future reference.

In a Unix shell, 0 stands for stdin, 1 stands for stdout while 2 stands for stderr.

You can redirect stderr to stdout if you append this to your Unix command:

2>&1

Corollary, you can redirect stdout to stderr (which do not usually happen) by appending this otherwise:

1>&2

By default, when you redirect a stream, it redirects stdout. Which means the this command will log stdout to the the file (but not stderr):

$ echo "test string" >test.log

Building on this, if we want not only stdout but also stderr to the directed to test.log we issue this command:

$ echo "test string" >test.log 2>&1

The command reads from left to right (and the sequence is important as the first redirection takes precedence over the later redirection specification). And it should read: "redirect stdout to test.log, then redirect the stderr to the same place stdout is going (which is test.log)."

Now, in some cases, the sequence does not "seem" make any difference but in fact there's a subtle nuance introduced by the sequence like in doing so:

$ echo "test string" 2>&1 >test.log 

In the above, it reads: "redirect stderr to the same place stdout is going (which is the console), then redirect stdout to test.log (but not stderr)." The net effect is that stderr is redirected to console but stdout is directed to test.log. The above is made more explicit by the equivalent command:

$ echo "test string" 2>&1 1>test.log 

Now consider these two commands:

$ echo "test string" >/dev/null 2>&1
$ echo "test string" 2>&1 >/dev/null

The first reads: "redirect stdout to /dev/null (meaning discard the bytes streamed to stdout), then redirect stderr to the same place stdout is going (which is now /dev/null)." The end effect is that both stdout and stderr is discarded.

The second reads: "redirect stderr to the same place stdout is going (which is the console), then redirect stdout to /dev/null (meaning discard the bytes streamed to stdout)." The end effect is that whilst stderr is printed on the console, stdout is discarded.

One link that really seems helpful is this: http://wiki.bash-hackers.org/howto/redirection_tutorial


Saturday, November 24, 2012

Project Lambda

My new development team asked me to pick a topic and do a presentation on it. The only condition: the topic should be novel and at the same time relevant. And I need not second guess the first thing that came to my mind: Project Lambda.

Java developers, or at least those in tune with the developments in this space, would not be the last people to form an opinion on this initiative. (Yes, if you're a Java programmer, YOU SHOULD KNOW ABOUT THIS INITIATIVE AND HAVE AN OPINION ON THIS.) It's hard not to form an opinion around this initiative if you're really into Java.

I know people who are actually against adopting JSR-335 (it's corresponding JSR label). And equally there are people who accept anything coming out of the JSR's as positive innovation.  For me, I would like to accept the developments with some caution. I'm excited with the introduction of a formal language syntax to create lambda expressions in Java. But I also know, Java is an object oriented language. How would Java programmers used to OOP code closures? Will most of us fall into the trap of coding stateful (rather than stateless) closures (an oxymoron, but it seems Project Lambda seems to allow Java closures to change state).

In any case, my contribution to the community is to post my presentation. Hope it adds clarity (rather than introduce more noise).

Follow this link to my Google drive presentation: Project Lambda

Tuesday, March 06, 2012

Non-Recursive Binary Tree Traversal Java Implementation

Now that I have more time to think about this, I have finally completed my own solution to the problem... another entry to the long (and hopefully not erroneous) list of "solutions" listed in Google. My inspiration to write my own implementation was when I was Googling for a proper solution, some solutions in the net were actually a bit dodgy and erroneous (especially when it is about the tricky non-recursive post order traversal of a binary tree).

Problem: Given a binary tree, formulate an algorithm to traverse the nodes of the binary tree without using recursion for the following modes:
  • pre-order traversal
  • in-order traversal
  • post-order traversal

Now, before we go any further, you may ask me why is this of paramount importance to find a proper non-recursive solution to this academic problem. And my response is... well it just makes me sleep well tonight blogging about this. ;) (Also hoping that Google would take notice and ahem... check out my CV).

So here goes:





Adding Code Snippets to Blog

Since I have all the time now to play with my blog, I've been experimenting on how to add code snippets into my posts (since I'm a programmer... just comes naturally that I should be posting codes eventually).

However, to my surprise, this feature does not come out of the box for most blogging service. However, it is available as a mash-up.

Good old Google pointed me to this blog:
http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html

The blog details how to integrate SyntaxHighlighter on your blogger template (or any blogging service theoretically).
http://alexgorbatchev.com/SyntaxHighlighter/about.html





public interface Abc {
void method1();
void method2();
}

Friday, July 21, 2006

Finally a correct reportage of the weather from AccuWeather for Makati Today

Finally!!! A correct report of the current weather in Makati. Unfortunately, it's not really that sunny anymore. At 5:57pm, the Sun's already setting.

Better late than never though.

Before-and-After Pictures of my old niche

I'm moving to a new niche in the same office. But can't help but reminisce the times I spent burning the midnight old on my old work area when I finally stripped bare my old desk off my things. What a lonely image when juxtaposed with the chaotic but very active picture it was once before.





BEFORE MOVING OUT (taken a few months ago)













AFTER MOVING OUT (taken 21 July 2006)






Just to add some philosophical tone to the moment... is not the world like this? Chaos makes our human life exciting and adventurous... and happy. And the simple, non-complex life... yeah cleaner... but utterly dull and boring and lonely. Thus, by putting into consideration the second law of thermodynamics stating that the overall disorder of the universe (entrophy) increases over time... is it then implying that the universe is tending towards ultimate happiness?

So wars are as wonderful thing? --> hehe just pushing it too far I guess.

The World's Blunder

When North Korea fired seven (7) Taepodong-2 missiles to an uninhabited area in the South China Sea called the Sea of Japan (albeit near Japan, Philippines, South Korea, etc... and that these long-range missiles are capable of dropping to Alaska), the powers-that-be from the West including their Asian allies were quick to put pressure on North Korea to stop that "provocative" testings.

But when Israel bombarded Lebanon for an action which does not directly involve the official Lebanese government (the Hezbullah is not associated with the Lebanon government and is considered a violent insurgent anti-Israel group although Israel's pulled a hat trick by sending a complaint to the UN that the Lebanese government has not done its part of the deal to disarm the militant Hezbullah in there 1983 US-sponsored agreement just after a day they started bombing suspected Hezbullah outposts), the Western world and it's mass communication outfits are mum on the War preferring to cover the flight of foreigners from Lebanon. Where are the political analaysts which are nothing more but field reporters tagged as "Iraq Experts?"

Rubbing it in, the US government through Sec. of State Rice said they respect Israel's action and see it as in line with the need to defend itself. Defend itself? They're not defending their state... they're already usurped the sovereignty of another country. How about Lebanon's right for their sovereignty... where did that go? In fact, Israel and Hezbullah has been exchanging wars after the Lebanese-Israeli pact in 1983. Israel had two decades to denounce Lebanon's inaction. The Israel government's claim that Lebanon had not done its part to defuse the military powers of Hezbullah as agreed upon in the UN is merely hogwash. If that were the case then they have to bring it back to the UN SC before they started their war. They could have at least shown that they have exhausted all diplomatic routes before taking on the road to war.

This is an act of war which is unilateral and should be condemned. But since US has already got off the hook by proceeding with a unilateral invasion on Iraq without UN support, I see this as a far possibility.

The cost for the war... 2 Israeli soldiers for 1000 injured CIVILIAN Lebanese (and which may include foreign nationals caught in the line of gunfire) and 300 casualties (not qualified as to MILITIA or CIVILIAN)... it's a far costly wager.

I'm ashamed of the magnitude of SILENCE from the world. And we wonder why "terrorism" proliferates?

Essential Firefox Extensions for Developers

Since my last post had something bad to say for my favourite browser Firefox, I deem it necessary to boost it up with some positive feedback.

Firefox has become my favourite ever since it came out circa 2004. It's lightweight (keeps the essential features of the browser and cleaning up the non-essentials) but flexible (you can add on the non-essentials as plug-ins). Oh, not to mention the tabbed-browsing which is an import from the Opera browser... something I do not miss from the old M$ IE browser.

Branding the non-essential features as such might be a mis-nomer. It's non-essential in the sense that some people find it useless while others find it quite useful. The following plugins, for instance, are quite useful for me as a developer, while they might not be as useful for ordinary desktop users. So keep in mind that this is just my humble list of essential Firefox extensions.

  • IE Tab - Sometimes some web programmers are too lazy to write HTML codes that work for the standard (although, it is to be noted that there's a narrow gap between browser standards and browser implementation). And since they know IE still has 80% of the market of browser usage, they readily code HTML for IE browsers. They do this knowing that of the three prominent browers today (IE, Firefox, and Safari), IE is the most non-complient with the standards (see here). So when Firefox browsers attempt to access a IE-centric site, Firefox "degrades smoothly," that is, it humbly declines to show the page. For these sites, this Firefox extension becomes very useful. However, this only works on Windows platform (sorry for the Tux fanatics... I'm still trying experiment though if WINE can solve this problem for the Linux platform). Nonetheless, an essential platform for developers who continuously hit against an IE-centric pages.
  • SpiderZilla - Are you the type of developer who likes looking up freely available books/references online but hates the chaining-of-pages-by-links format of these materials? Then you'll like this Firefox extension. It's a spider program that saves a local copy of a web page you're viewing and underlying pages linked to that page (so long as they're from the same site though). Thus, this is good for offline browsing. It does not compile the pages to one super-page but it's something next to that.
  • SessionSaver .2 - I'm not sure what the ".2" is about. This extension saves the current pages viewed by the viewer as a session. Thus, when Firefox is closed (either by a crash--more likely a M$ Windoze system crash) you'll recover the pages readily. PLUS, the cookies are still available and active... so you don't need to re-log into websites... unless they're HTTPS sites what need to re-do the handshake I guess (not sure about this, this is just a guess).
  • UrlParams - If you're testing a web application, this is an essential extension to Firefox. It lets you change parameters you pass via the GET and POST methods easily. Fantastic. (If you don't get what I said then you don't need this extension.)
  • FasterFox - Speed up loading of pages either by tweaking the connection settings or by anticipating user's interaction with the page and thus increasing the user-perception of speed. The latter is the most controversial part since it involves what the developers of the extension calls "prefetching." What the term denotes is the activity of the browser in the background of loading static pages which the users might choose to view. It does not improve the speed of the connection but it has a different feel for the user... making the browser more snappy like soldiers in a marching file. (This is a great extension if you know how to use it well).

Forecastfox and AccuWeather Misforecast for Makati, Philippines


My Forecastfox Firefox browser extension reported that it's raining here at Makati. It's damn sunny here, FREAK!!!!

This is Makati now (21 July 2006 13:58:00.0)

Thursday, June 22, 2006

I'm Next After Al-Zarqawi


CHIPHER TEST TEXT: The quick brown fox jumps over the lazy dog.

To whom it may concern:

If you're reading this text, then you have correctly deciphered the encrypted message. (You're either authorized to read this message or you really must be a genius being able to break an asymmetrically encrypted document via elliptical curve crypotology algorithms. OR I'm just extremely stupid.)

Asset Foxtrot (CIA-insider) transmitted information that the US has identified Terrorist Army Base Of Operation) TABOO Alpha via a US spy satellite MAP.GOOGLE.COM (sounds more like a website to me).

My location has been compromised. Who the hell leaked this information you @#%2309()&%&* good for nothing @#^#$^()&.

The good thing is that being worse morons as the one who leaked this information, they erroneouly identified the town as Goodrich Village somewhere in Baghdad.

For one, I'm not in Baghdad you silly!!! I'm in Marikina City <<< Google it for more info.

Those f*@#()(*K@%(_# JOES. They don't know how to keep to their fences. But we'll show them. They'll never do another Al-Zarqawi again... no, not with me.

We shall proceed with TERRORIST PLAN #998413534356519879651654134 summarized below (and as usual encrypted using our own Terrorist Cipher):

Ljxwcm9qZWN0IGRlZmF1bHQ9ImphciIgbmFtZT0iU0FTIENVUC
BXZWIgU2VydmljZSBDb25uZWN0aW9uIiBiYXNlZGlyPSIuLiIg
eG1sbnM6ZGxleD0id3d3LmRhdGFsZXguaWUiPg0KCTxkZXNjcm
lwdGlvbj4NCgkJU0FTIENVUCBXZWIgU2VydmljZSBDb25uZWN0
aW9uDQoJPC9kZXNjcmlwdGlvbj4NCgkNCgk8IS0tIFByb3Blcn
RpZXMgdGhhdCBzaG91bGQgY2hhbmdlIGZvciBlYWNoIHByb2pl
Y3QgLS0+DQoJPCEtLSBUaGUgZGVzdGluYXRpb24gZmlsZSAtLT
4NCgk8cHJvcGVydHkgbmFtZT0iamFyRmlsZSIgdmFsdWU9IkNV
UFRpY2tldC5qYXIiIC8+DQoJPCEtLSBUaGUgZGVzdGluYXRpb2
4gdGhhdCAoYWZ0ZXIgbWVyZ2luZykgYmVhbnBvbGljeSBzbmlw
cGV0cyBmb3IgdGhpcyBmaWxlIHNob3VsZCBnbyAtLT4NCgk8cH
JvcGVydHkgbmFtZT0iYmVhbnBvbGljeS5tZXJnZS5maWxlIiB2
YWx1ZT0ic3lzdGVtIiAvPg0KCTwhLS0gUmVtb3ZlIHRoaXMgcH
JvcGVydHkgaWYgeW91IHdhbnQgdG8gdXNlIGpjb3ZlcmFnZS4g
ICpETyBOT1QgU0VUIElUIFRPIEZBTFNFLCBUSElTIFdJTEwgTk
9UIFdPUkshKiAtLT4NCgk8cHJvcGVydHkgbmFtZT0iYnVpbGQu
c2tpcEpDb3ZlcmFnZSIgdmFsdWU9ImZhbHNlIiAvPg0KCQ0KCT
whLS0gTmFtZXMgb2YgcHJvcGVydGllcyBuZWVkZWQgZm9yICdk
bGV4X2FudCcgcmVzb3VyY2VzIChETyBOT1QgQ0hBTkdFIFRISV
MgRklMRSktLT4NCgk8cHJvcGVydHkgbmFtZT0idGFza2xpYnJh
cnkuZGlyIiB2YWx1ZT0iMDAwMDUzOTciIC8+DQoJPHByb3Blcn
R5IG5hbWU9InRhc2tsaWJyYXJ5LmN2c3Byb2plY3QiIHZhbHVl
PSIwMDAwNTM5NyIgLz4NCgk8cHJvcGVydHkgbmFtZT0idGFza2
xpYnJhcnkuZmlsZW5hbWUiIHZhbHVlPSJsaWIvZGxleF9hbnQu
amFyIiAvPg0KCTxwcm9wZXJ0eSBuYW1lPSJ0YXNrbGlicmFyeS
5maWxlIiB2YWx1ZT0iJHt0YXNrbGlicmFyeS5kaXJ9LyR7dGFz
a2xpYnJhcnkuZmlsZW5hbWV9IiAvPg0KDQoJPCEtLSBQcm9wZX
J0aWVzIGZvciBwcm9qZWN0IGlucHV0IC0tPg0KCTxwcm9wZXJ0
eSBuYW1lPSJzcmMuZGlyIiB2YWx1ZT0ic3JjL2phdmEiIC8+DQ
oJPHByb3BlcnR5IG5hbWU9ImRlc3QuZGlyIiB2YWx1ZT0iY2xh
c3NlcyIgLz4NCgk8cHJvcGVydHkgbmFtZT0iZGVwZW5kZW5jeU
ZpbGVOYW1lIiB2YWx1ZT0iYnVpbGQvbW9kdWxlcy5kZXAiIC8+
DQoJPHByb3BlcnR5IG5hbWU9InRlbXBsYXRlLmRpciIgdmFsdW
U9IjAwMDA1MDMzL2NvbmZpZy94ZG9jbGV0L3RlbXBsYXRlcyIg
Lz4NCgk8cHJvcGVydHkgbmFtZT0idGVtcGxhdGUuZmlsZSIgdm
FsdWU9IiR7dGVtcGxhdGUuZGlyfS9iZWFuUG9saWN5R2VuZXJh
dGlvblRlbXBsYXRlLnhkb2NsZXQiIC8+DQoNCgk8IS0tIFByb3
BlcnRpZXMgZm9yIHByb2plY3Qgb3V0cHV0IC0tPg0KCTxwcm9w
ZXJ0eSBuYW1lPSJvdXRwdXQuZGlyIiB2YWx1ZT0iJHtiYXNlZG
lyfS9idWlsZCIgLz4NCgk8cHJvcGVydHkgbmFtZT0iamFyT3V0
cHV0RGlyIiB2YWx1ZT0iJHtvdXRwdXQuZGlyfS9qYXIiIC8+DQ
oJPHByb3BlcnR5IG5hbWU9ImVqYk91dHB1dERpciIgdmFsdWU9
IiR7b3V0cHV0LmRpcn0vZWpiIiAvPg0KCTxwcm9wZXJ0eSBuYW
1lPSJiZWFucG9saWN5U25pcHBldHNEaXIiIHZhbHVlPSIke291
dHB1dC5kaXJ9L2JlYW5wb2xpY3lzbmlwcGV0cyIgLz4NCgk8cH
JvcGVydHkgbmFtZT0ibW9kdWxlcy5saXN0IiB2YWx1ZT0ibW9k
dWxlcy5saXN0IiAvPg0KCTxwcm9wZXJ0eSBuYW1lPSJjZXJ0Lm
Rpci5vcmlnIiB2YWx1ZT0ic3JjL2phdmEvY29tL2RhdGFsZXgv
cmVzb3VyY2VzL2NlcnRpZmljYXRlcyIgLz4NCgk8cHJvcGVydH
kgbmFtZT0iY2VydC5kaXIuZGVzdCIgdmFsdWU9Ii4uL2FydGlm
YWN0cy9jb25maWcvYmVhbnBvbGljaWVzL2NlcnRpZmljYXRlcy
IgLz4NCg0KCTwhLS0gUHJvcGVydGllcyBmb3IgdW5pdCB0ZXN0
IHJlcG9ydCBvdXRwdXRzIC0tPg0KCTxwcm9wZXJ0eSBuYW1lPS
JqY292ZXJhZ2UuZGlyIiB2YWx1ZT0iJHtiYXNlZGlyfS8wMDAw
NTM4MC9saWIiIC8+DQoJPHByb3BlcnR5IG5hbWU9Impjb3Zlcm
FnZWphci5maWxlIiB2YWx1ZT0iamNvdmVyYWdlLmphciIgLz4N
Cgk8cHJvcGVydHkgbmFtZT0idGVzdC5iYXNlLmRpciIgdmFsdW
U9IiR7YmFzZWRpcn0vdGVzdHJlcG9ydHMiIC8+DQoJPHByb3Bl
cnR5IG5hbWU9Imp1bml0LnJlcG9ydC5kaXIiIHZhbHVlPSIke3
Rlc3QuYmFzZS5kaXJ9L2p1bml0IiAvPg0KCTxwcm9wZXJ0eSBu
YW1lPSJqY292ZXJhZ2UucmVwb3J0LmRpciIgdmFsdWU9IiR7dG
VzdC5iYXNlLmRpcn0vamNvdmVyYWdlIiAvPg0KCTxwcm9wZXJ0
eSBuYW1lPSJqY292ZXJhZ2Uuc3JjLmRpciIgdmFsdWU9IiR7dG
VzdC5iYXNlLmRpcn0vamNvdmVyYWdlLXNyYyIgLz4NCgk8cHJv
cGVydHkgbmFtZT0idGVzdC5jbGFzcy5kaXIiIHZhbHVlPSIke3
Rlc3QuYmFzZS5kaXJ9L2NvdmVyZWRjbGFzc2VzIiAvPg0KCTxw
cm9wZXJ0eSBuYW1lPSJ0ZXN0LmJlYW5wb2xpY3kuZGlyIiB2YW
x1ZT0iJHtvdXRwdXQuZGlyfS9iZWFucG9saWN5dGVzdCIgLz4N
CgkNCgkNCgk8IS0tIENvbXBpbGVyIE9wdGltaXphdGlvbnMgLS
0+DQoJPHByb3BlcnR5IG5hbWU9ImphdmFzcmMudmVyc2lvbiIg
dmFsdWU9IjEuNCIgLz4NCgk8cHJvcGVydHkgbmFtZT0iZGVidW
ciIHZhbHVlPSJ0cnVlIiAvPg0KCTxwcm9wZXJ0eSBuYW1lPSJv
cHRpbWl6ZSIgdmFsdWU9ImZhbHNlIiAvPg0KCTxwcm9wZXJ0eS
BuYW1lPSJkZXByZWNhdGlvbiIgdmFsdWU9InRydWUiIC8+DQoJ
DQoJPHBhdGggaWQ9InRlc3QuY2xhc3MucGF0aCI+DQoJCTxmaW
xlc2V0IGRpcj0iJHtqYXJPdXRwdXREaXJ9Ij4NCgkJCTxpbmNs
dWRlIG5hbWU9IiouamFyIi8+CQkJCQ0KCQkJPGluY2x1ZGUgbm
FtZT0iKi56aXAiLz4JCQ0KCQk8L2ZpbGVzZXQ+DQoJPC9wYXRo
PgkNCgkNCgkNCgk8IS0tIFRoaXMgcHJvamVjdCBzcGVjaWZpYy
BlbnRyaWVzIC0tPg0KDQoJPHRhcmdldCBuYW1lPSJpbml0Ij4N
CgkJPG1rZGlyIGRpcj0iJHtqYXJPdXRwdXREaXJ9IiAvPg0KCT
wvdGFyZ2V0Pg0KDQoJPHRhcmdldCBuYW1lPSJqYXIiIGRlcGVu
ZHM9ImluaXQsY29tcGlsZSIgZGVzY3JpcHRpb249IkJ1aWxkcy
B0aGUgb3V0cHV0IGZyb20gdGhpcyBwcm9qZWN0LiI+DQoJCTxq
YXIgZGVzdGZpbGU9IiR7amFyT3V0cHV0RGlyfS8ke2phckZpbG
V9Ij4NCgkJCTxmaWxlc2V0IGRpcj0iJHtzcmMuZGlyfSI+DQoJ
CQkJPGluY2x1ZGUgbmFtZT0iKiovKi5wcm9wZXJ0aWVzIiAvPg
0KCQkJCTxpbmNsdWRlIG5hbWU9IioqLyouamtzIiAvPg0KCQkJ
CTxpbmNsdWRlIG5hbWU9IioqLyoueG1sIiAvPg0KCQkJPC9maW
xlc2V0Pg0KCQkJPGZpbGVzZXQgZGlyPSIke2Rlc3QuZGlyfSIg
Lz4NCgkJPC9qYXI+DQoJCTxjb3B5IGZpbGU9IiR7amFyT3V0cH
V0RGlyfS8ke2phckZpbGV9IiB0b2Rpcj0iJHtiYXNlZGlyfS8u
Li8uLi9saWIiLz4NCgk8L3RhcmdldD4NCgkNCgkNCgk8dGFyZ2
V0IG5hbWU9ImNvbXBpbGUiIGRlcGVuZHM9ImluaXQiIGRlc2Ny
aXB0aW9uPSJDb21waWxlIHRoZSBjb2RlIGZvciB0aGlzIHByb2
plY3QuIj4NCgkJPG1rZGlyIGRpcj0iJHtkZXN0LmRpcn0iIC8+
DQoJCTxqYXZhYyBzb3VyY2U9IiR7amF2YXNyYy52ZXJzaW9ufS
Igc3JjZGlyPSIke3NyYy5kaXJ9IiBkZXN0ZGlyPSIke2Rlc3Qu
ZGlyfSIgZGVidWc9IiR7ZGVidWd9IiBkZXByZWNhdGlvbj0iJH
tkZXByZWNhdGlvbn0iIG9wdGltaXplPSIke29wdGltaXplfSI+
DQoJCQk8Y2xhc3NwYXRoPg0KCQkJCTwhLS0NCgkJCQk8ZmlsZX
NldCBkaXI9IiR7amFyT3V0cHV0RGlyfSI+DQoJCQkJCTxpbmNs
dWRlIG5hbWU9IiouamFyIi8+CQkJCQ0KCQkJCQk8aW5jbHVkZS
BuYW1lPSIqLnppcCIvPgkJDQoJCQkJCTxleGNsdWRlIG5hbWU9
IiR7amFyRmlsZX0iIC8+DQoJCQkJPC9maWxlc2V0Pg0KCQkJCS
0tPg0KCQkJPC9jbGFzc3BhdGg+DQoJCTwvamF2YWM+DQoJPC90
YXJnZXQ+DQoJDQoJPHRhcmdldCBuYW1lPSJjbGVhbiIgZGVwZW
5kcz0iaW5pdCI+DQoJCTxkZWxldGUgZmFpbG9uZXJyb3I9ImZh
bHNlIj4NCgkJCTxmaWxlc2V0IGRpcj0iJHtqYXJPdXRwdXREaX
J9Ij4NCgkJCQk8aW5jbHVkZSBuYW1lPSIke2phckZpbGV9IiAv
Pg0KCQkJPC9maWxlc2V0Pg0KCQkJPGZpbGVzZXQgZGlyPSIke2
Rlc3QuZGlyfSIgLz4NCgkJCTxmaWxlc2V0IGRpcj0iJHt0ZXN0
LmJhc2UuZGlyfSIgLz4NCgkJCTxmaWxlc2V0IGRpcj0iJHtiYX
NlZGlyfSI+DQoJCQkJPGluY2x1ZGUgbmFtZT0iKiovamNvdmVy
YWdlLnNlciIgLz4NCgkJCTwvZmlsZXNldD4NCgkJPC9kZWxldG
U+DQoJPC90YXJnZXQ+DQoJDQo8L3Byb2plY3Q+

Your mission, should you choose to accept it, involves the above plan encrypted above. As always, should any member of your team be caught or killed, the Secretary will disavow all knowledge of your actions. This message will self-destruct in five seconds.

Good luck.

Saturday, May 21, 2005

Gripe of the Day

1) Weather has been bad. Too hot. (7:00am)
2) Weather still bad. No sun. (5:00pm)
3) There're too many clouds. They cover the moon. (7:00pm)

Conclusion, today's weather does not suite me fine. What a bad day!!!

-- The Cyber Grouch