Archive for July, 2008

30th Jul 2008

Using (or not) your credit cards responsibly

I think this article and the people therein missed the point entirely:  it’s not about not using your credit cards, but using them responsibly.

The article cites a study which finds consumers are relying on their credit cards less, that they are leaving them at home, not spending through them.  The article also talks about a couple trying to pay down their $8,000 debt balance.

The crux of the issue is the $8,000 balance, not the use of credit cards.

No one should be spending money they don’t have.  This is a matter of fiscal self-discipline.  The balance on a credit card should be paid in full each and every month.  No interest accrues when the balance is paid in full.  The card simply becomes a replacement for cash.

I use my credit card for everything.  It’s an Amex from Costco from which we receive a small percent cashback to be spent at Costco.  We buy a lot of stuff at Costco, so I’m happy with this arrangement.  But my wife and I make sure to pay off our balance each and every month.  We’re simply using the card as a cash equivalent to get the reward.  I have a Visa backup for the odd vendor that does not take Amex.  I use my cards so often that I very rarely have cash on me.  I just don’t need it.  It’s been this way for years.

Now, if people have compulsion issues and can’t break the credit habit without leaving the cards at home (I remember Oprah once suggesting freezing your credit card is a cup in your freezer, making you think long and hard about thawing it out to buy something), I’ve got no problem with that.  I’d rather have a nation out of debt than to enforce my idea of fiscal self-discipline, but the real solution is to behave responsibly for you and your family.

Posted by Posted by Mark Turansky under Filed under Business, Misc. Comments 2 Comments »

25th Jul 2008

HOW TO: Use mini-batching to improve grid performance

We achieved a 3.5X increase in throughput by implementing “mini-batching” in our grid-enabled jobs.

We have a parent BatchService that creates child Services where each individual Service is a unit of work.  A Service implementation might perform some calculation for a single employee of a large employer group.  When the individual Services are very fast and the cost of bussing them around the network is greater than the cost of processing the Service, then adding more consumers makes the BatchService run slower!  It is slower because these fine grained units of work require more queue locks, more network traffic, and more handling calls when the child Service is returned back to the parent BatchService for accumulation.

The secret, then, is to give each consumer enough work to make the overhead of bussing negligible.  That is, give each consumer a “mini-batch” of Services to run instead of sending just one Service to a consumer.

Here’s a graph of some of our benchmarks:

throughputbybatchsize.png

Some of the data surprised us.  For example, we expected 3 big batches to run fairly slowly across 11 consumers because there would be 8 consumers sitting idle, but we were not expecting 11 batches to run more slowly than 43 batches.  We thought dividing the work equally across consumers in the exact number of batches would be the lowest point on the graph.  We were wrong.  We expected the U-shape, but we thought the trough would be at a different batch size.

Our test system can only support up to 11 consumers, so we haven’t yet tested batch sizes with more than 11, but the graph implies that we’ll have a deeper trough when we add consumers and tweak the batch size.  There should be, in theory, a point where we can’t process jobs any faster due without killing the database.  I’ve warned our DBAs that we’re looking to hit that point.

If you’re doing any kind of grid computing (by way of Terracotta’s Master-Worker project, GridGain, or rolling your own), check out the effects mini-batching can have on your throughput.  You might be surprised by your benchmarking metrics!

Posted by Posted by Mark Turansky under Filed under Architecture, Code Hints, Engineering Comments 2 Comments »

15th Jul 2008

I’m published, and I struck a nerve.

The JavaLobby (now java.dzone.com) asked to republish my article on human “resources.”  I was happy to oblige!

http://java.dzone.com/articles/were-not-resources

I think the theme of the article touched on a strong undercurrent in the developer community.  My blog post received more than 6k hits over the weekend, has the highest number of comments of all my articles, was republished on JavaLobby, Reddit, and others, and each of the publishers has received a bunch of comments on their repost.

There’s clearly something to the idea that we’re more than just “resources.”  But this is not a new theme or idea.

Forrester Research published a similar article not long ago:  http://blogs.forrester.com/appdev/2008/04/what-is-more-im.html  Similarly, there are several links in the comments of my blog article echoing the same sentiment.

The times they are a-changin’.

This is such an easy concept to grok and an easier one to change.  I suspect that more organizations will begin to rename their “Human Resources Department” to “Human Talent Department.”   It’s definitely more PC and it’s a sign that organizations value the talent their employees provide more than they value the warm body in a cold seat.  That is, unless you’re a government contractor, in which case you really do just want warm bodies.

Posted by Posted by Mark Turansky under Filed under Business, Misc. Comments 5 Comments »