Pic taken by my dad - Dr. Jayaprakash.
Wednesday, March 31, 2010
Monday, March 29, 2010
Make your online reading more pleasant
If you spend a lot of time reading online, like me then eye strain is probably your biggest complaint. You can stop worrying, because there's a beautiful tool called Readable.
No, don't worry it's free and does not need any installation. All you have to do is drag a link and drop it on to your Browser's Bookmarks Toolbar.
It turns this .....
into this...! It's the same web page, just the style has changed. Beautiful isn't it? You can revert back to the original by just clicking the page.
You can use the theme I use - just drag and drop this link into your Bookmarks and when you are on any web page just click this Readable bookmark. Or you can make one yourself. Here's the actual site with a tutorial - Readable theme setup.
Happy reading!
Tuesday, March 23, 2010
(Smaller) Compute Grids face off, some Math and Cassandra at it again
Head over to Dzone to see how these Open Source Compute Grids stack up against each other - GridGain vs Hazelcast (and Hadoop for reference). Compared to Cassandra, Hadoop and Voldemort that's installed on monstrous scales, these are for mere mortals - I mean Enterprise deployments. I say this without any intention of sounding sarcastic.
Oh, talking about Cassandra, did you hear Reddit also switched last week? Cassandra seems unstoppable. I remember just a year ago when Memcached was all the rage. Now it's Cassandra. Big Database vendors (and Storage companies) are definitely taking notice. Last year there was a rash of announcements by DB vendors that they had implemented Columnar storage and MapReduce. It reminds me of Gandhi's quote - "First they ignore you, then they laugh at you, then they fight you, then you win". Way to go Apache projects!
Note to self - The mathematics behind Hadoop-based systems might come in handy later.
Spring Batch - and you thought you needed Hadoop for scalable Batch processing. Hey, didn't I say - mere mortals and Enterprise? I'm not sure how many people are really using this or how good it is. But I wish we had a simple framework like this when I wrote batch programs for a bank a few years ago.
Ever the heard the term Intrapreneur? Big Companies Can Innovate, if they Act Small is worth a quick look.
Peace!
Sunday, March 21, 2010
Semi-educated tax tidbit: TurboTax and Stocks
Tax season is here again and if you were like me, scouring the internet trying to understand how to fill up that TurboTax form for ESOP and Restricted Stock, then this might be helpful.
(Disclaimer: The information here and even in the links are not Tax advice nor is it any other kind of advice. Don't take my or their word for it. If you see something wrong here, then let me know I'll do my best to correct it. No guarantees whatsoever)
This applies only to Same day sales.
Employee Stock Options:
Net Proceeds = Sale price * num of shares
Date of sale = Sale date
Cost basis = Exercise price * num of shares
Date acquired = Exercise date
Your W2 should already mention the ordinary income earned = Exercise price - Grant price. Sale price can either be higher or lower than Exercise price. That small amount constitutes as Short Term (Same day sale) Capital Gains or Loss.
Restricted Stock:
Net Proceeds = Sale price * num of RS
Date of sale = Sale date
Cost basis = Vest price * num of RS
Date acquired = Vest date
W2 already mentions the income earned on the RS using Vest price on Vesting date.
More info:
- Search for "Understanding Restricted Stock" on Etrade if you have an account.
- NonQualified Stock Options.
Hope this helps.
Gmail productivity
For a long time, I wanted a simple tool that would merge my to-do list, draft letters and reminders with my email system. About a year or so ago Gmail introduced some nifty features that let me do just that. So, I thought I'd share them with you (a yr later).
First, configure Multiple Inboxes:
Go to Gmail settings and select the Multiple Inboxes tab and then type this in. You just need 1 pane, so add this
-in:trash AND (label:to-do OR in:drafts)
as the Search query and call the Pane "To do".[Update: May 9, 2011]
I now have 3 inboxes in addition to the main inbox. This needs 2 labels "to-do" and "constant"
Urgent:
-in:trash AND is:starred AND -label:constant
To do:
-in:trash AND -is:starred AND -label:constant AND (label:to-do OR in:drafts)
Long term/Constant reminders:
-in:trash AND -is:starred AND label:constant AND (label:to-do OR in:drafts)
Step 2 - Add a Filter to move those emails to the other Inbox:
Well this is all you will need. Don't worry, it's just 1 physical Inbox but different views to your emails.
Step 3 - Enjoy:
Now, you can just send a quick note to yourself from your Blackberry or office desktop to your Gmail account and it will go to the To do list. Even draft emails and blogs that you haven't finished writing will appear in this list. Cool huh?
Cheers!
Thursday, March 18, 2010
Digging up links to my old Event Stream Processor
I was digging up links and articles to my old StreamCruncher hobby project. Cleaning up my bookmarks, rather.Here's what Google came up with (after some manual filtering):
- Paul Dekker's Master's thesis on Complex Event Processing with StreamCruncher, RuleCore and Esper as case studies
- Edson Tirelli's blog entry, one of the Drools guys
- An Introduction To Data Stream Query Processing from Truviso
- Creating an event driven SOA
- Marco on in-memory DBs for CEP
- The SQL debate on Financial Techinsider.
- Zepheira presentation
Later.
By Ashwin Jayaprakash 0 comments
Topics: #event processing, #java, #note to self, #streamcruncher, tech
Tuesday, March 16, 2010
Spring - yes, that season when annoying cyclists and bikers crawl out of the woodwork and make you drive slower.
Hawt diggity! So many key-value stores!
A short list of in-process, key-value stores, mercifully not calling themselves NoSQL.
HawtDB - yet another key-value store. It's old fashioned B-Trees and it uses the same code base as ActiveMQ's file storage system.
SimpleDBM - as the author himself claims, it's fun to implement the old algorithms and see for your self.
Babudb - why another one, of course.
If someone thought of Lucandra (Lucene + Cassandra), then you ask how come there's no Prevayler + Lucene? Of course there is one. It's called Nodb. I wonder what happened to Prevayler.
And some other things I liked:
JD Java Decompiler - better than any I've seen so far.
If you love Apache Camel, then you'll love MycilaEvent. A simple and elegant in-memory publish-subscribe system.
Oh, before you go there's Seaglass - helping even the ugliest Swing UIs look insanely cool. If you thought Nimbus LF in Java 6 was good, this is even better. Remember the awesome Alloy LF but had to pay for? Good thing Seaglass is open source.
Cheers!
Monday, March 08, 2010
I was humming "Kumbaya ..." near the coffee machine when someone tossed a quarter in my coffee mug. He should've at least waited for me to finish my coffee. Good thing I didn't know the lyrics.
Friday, March 05, 2010
NoSQL OD, Bizarro, cappuccino and some sales stories
Emulating SQL on a NoSQL database - (MongoDB) database using Map Reduce. Ironic? You are probably thinking, if Bizarro wrote computer programs this would be one of his Sunday comic panels. Actually, it's not that weird if you consider what Hive and Pig do. The bottom line is SQL-like languages still prevail regardless of the underlying implementation, whether you do distributed Map-Reduce or Streaming Joins in CEP/ESP.
Many cappuccinos later....
I was curious to know how big the core of Apache Cassandra was. It's surprisingly compact for the features it offers. About 15K NCSS or real source statements. I used good old JavaNCSS to measure.
Nr. Classes Functions NCSS Javadocs Package
1 8 34 486 0 org.apache.cassandra.cli
2 1 3 50 1 org.apache.cassandra.client
3 11 74 250 42 org.apache.cassandra.concurrent
4 3 60 494 4 org.apache.cassandra.config
5 98 565 3585 64 org.apache.cassandra.db
6 14 56 389 9 org.apache.cassandra.db.filter
7 9 19 113 5 org.apache.cassandra.db.marshal
8 24 128 610 22 org.apache.cassandra.dht
9 35 154 1048 34 org.apache.cassandra.gms
10 37 196 1345 68 org.apache.cassandra.io
11 11 75 634 29 org.apache.cassandra.locator
12 23 152 1100 29 org.apache.cassandra.net
13 19 78 460 0 org.apache.cassandra.net.io
14 2 6 34 0 org.apache.cassandra.net.sink
15 53 291 2514 95 org.apache.cassandra.service
16 4 40 602 28 org.apache.cassandra.tools
17 44 240 1346 52 org.apache.cassandra.utils
--------- --------- --------- ---------
396 2171 15060 482 Total
Packages Classes Functions NCSS Javadocs | per
-------------------------------------------------------------
17.00 396.00 2171.00 15060.00 482.00 | Project
23.29 127.71 885.88 28.35 | Package
5.48 38.03 1.22 | Class
6.94 0.22 | Function
Had too much NoSQL for one day? Then read this nice article written by Steve Blank - Convergent Technologies: War Story 1 – Selling with Sports Scores.
Cheers!