Tuesday, March 31, 2009

Three wishes

I've been reading a series of great books about djinns with my daughter, and one thing I really like is that the djinn are quite uncomfortable granting three wishes to humans because most of the time they don't work out very well.

So I started thinking, if I had three wishes, what would I wish for? 

But when I started going through possible wishes, I realized that all these wishes seemed off - I found myself feeling kind of "grabby" and small.  Why was this? 

After further thought, what I realized was that the very act of having a wish for something implies that I am dissatisfied and incomplete - it perpetuates a feeling of lack.  So no matter what you wish for, even if you get it, you'll still be dissatisfied and unhappy.  This is one way of understanding Lord Buddha's statement that the root of all suffering is desire.

So, was there anything I could wish for that wouldn't enforce this feeling of lack, that wouldn't create another cycle of dissatisfaction?

There was only one wish, or prayer, that worked for me: the prayer to follow God's will, or if you like to "go with the flow." That wish doesn't carry a feeling of lack. It feels full and complete.

Then I remembered this statement someone told me years ago, by Rabindranath Tagore, a great poet of India:
I slept and dreamt that life was joy. I awoke and saw that life was service. I acted and behold, service was joy.

Friday, March 27, 2009

Job found

Good news - I have found a place to land.  It has been an interesting experience talking to all these different companies and seeing so many different styles and cultures.  There are themes and commonalities, but there are also big differences.

I realized towards the end of this that I would find a job that was probably a near perfect fit, because everybody right now can be so picky.

So, where did I end up?  Well, not necessarily where I expected.  I don't have a big security background and it hasn't been one of my focuses, but I ended up at Symantec , working on their Data Loss Prevention (or DLP) tools.  Think employees losing laptops with medical records, like that.

I'll be one of their senior guys working with what they call "Data At Rest" - data in various storage repositories, be it databases, file shares, wikis, Exchange servers, you name it.  Their tool scans all of these repositories and run them through a detection engine and then raise alerts or run other workflow if something is found.

The group that builds these DLP tools is actually a recent acquisition for Symantec called Vontu .  They appear to be top in this market by quite a large margin.  And this market is continuing to grow, even in these times.  Security has always been an issue, but it's becoming more and more of one as a larger portion of our life starts to go online.

Aside from the technology, what sold me on this team was the way they interviewed.  Yes, they grilled me.  I had to design a data model for a card game and talk about how to implement flow control with it, answer questions file scanning performance, answer architecture questions, etc.  I even had to give a technical presentation followed by Q&A to the entire team as part of my second round of interviews.

But they were respectful, and friendly.  And they had just as many pointed questions about my work style, how I dealt with conflict, how I liked leading people, my opinions and ideas about development process, and so on.  They obviously cared, a lot, about the quality of a person beyond their technical skills.  This is something that has been important to me too, and has been sorely lacking in many of the "hot" Silicon Valley companies I've been talking to.  Some of these guys are so focused on technical prowess that they completely miss the boat in terms of having a respectful, friendly culture.  It's all grim, O log(N) kind of stuff.

The DLP team is based in San Francisco, and I'll be going in most days.  This is huge.  I was convinced I'd have to commute down to the South Bay (think two hours each way on public transit) every day.  That's just where most of the folks are.

This is also huge because this will be the first time in 9 years that I'll be going into an office every day, and meeting my coworkers face to face every day.  Ever since my daughter was born in 2000 I have been working from home in some capacity or another.  And for the past seven years the teams I have worked with have been in Europe or India.  I was looking at my wardrobe and realizing my clothes are all a bit ratty - I just haven't paid much attention to the presentability of my clothes!  Time to help the economy and do a little shopping...

But I am actually looking forward to going in the office every day.  I have loved working from home, and being there when my kids were at home, having some flexibility to help make Linda's life easier, and just being there to see and understand what Linda's life was like, if only a little.  But Michael's three now, getting ready for preschool, and I'm getting ready to start seeing the people I work with again, hanging out with them, and cracking dumb jokes with them.

This will also be the first time in my entire career where I commute daily beyond the East Bay.  That's a whole routine and way of life I will have to get used to - spending most of my time in a town far from home, and being one of the huddled masses on the BART train every day.  But I like trains, just like my son.  I think I'll be fine.  At least I don't have to drive every day (ugh).

I'll be taking two weeks off to breathe after an intense job search.  I'm spending time with the kids, giving Linda some time off, and then for one week I'm going to do a serious hackathon with a friend on a software idea we've been talking about for a while.  Yes, can you believe it, I'm going to code for my vacation.  But this is cool stuff, and what can I say, I'm a geek.  I've been having to shove this into what little extra time I have, so it's a real treat to dig down and code straight, if only for a week.  If anything ultimately comes of it, I'll be sure to let you know.  But even if it doesn't, I'm going to be having fun and learning a lot.

So, I am very grateful.  Let me tell you, this is no time to be looking for a job.  For all of you out there still looking, I'm thinking of you - we're all thinking of you.

Wednesday, March 25, 2009

Balsamiq Mockups

A friend of mine was raving about this tool called Balsamiq for quickly creating application UI mockups.

http://www.balsamiq.com/products/mockups/tour

Monday, March 23, 2009

Gregor Hohpe describes asynchronous design using Starbucks

Gregor Hohpe has a wonderful article in IEEE Software Design Magazine called Your Coffee Shop Doesn't Use Two-Phase Commit (PDF).

In the article Gregor describes asynchronous messaging design and error handling by comparing it to how drink orders are handled at Starbucks.
What does Starbucks do if they’ve already placed your drink order into the queue and it turns out you can't pay? They either pull your cup from the queue or toss the drink if it has already been made. Likewise, if they deliver a drink that's incorrect or unsatisfactory, they remake it. If the machine breaks down and they can't make your drink, they refund your money. Each of these scenarios describes a different but common error-handling strategy for loosely coupled systems

So cool. This often happens to me - I am thinking about a "mundane" process such as how families work or why freeways get jammed up and I see how it applies to systems design.

Gregor does a fantastic job of this, helping you understand what may fairly complex concepts very easily by imagining yourself at Starbucks. Definitely a good read.

Friday, March 20, 2009

Where was Joseph when we needed him?

My eight-year old daughter's class just put on a play about Joseph (the one with the many-colored coat). I had never heard the story before (I was raised by devout atheists). It was fascinating. Lots to think about and discuss.

But one thing seemed particularly relevant. Joseph could interpret dreams, and he saw that the Pharaoh's dreams signified seven years of plenty followed by seven years of drought, and he convinced the Pharaoh to put aside one fifth of the harvest every year during the years of plenty, and in this way the Pharaoh was able to feed not only his people but the Hebrews as well.

Arnold Scharzenneger is currently proposing a spending cap, taking it to the ballot this summer. The idea is that, even in years of plenty, the state only spends so much money. Any surplus is kept in a "rainy day fund" and can be used in years of drought. Sounds familiar...

I wish we had had more prudence during our last phase of plenty, perhaps we wouldn't be in such a mess as we are now...

Wednesday, March 18, 2009

Sun gets behind clouds, may be Eclipsed - thoughts from an ex-employee

I've been ruminating about Sun today, given a series of seemingly unrelated blogs and news items.

First of all, Closer To The Ideal commented how Sun hasn't seemed to be make any headway with Java FX in the last two years.  Tell me about it.

I remember when Rich Green did the Big Splash announcement for Java FX at Java One two years ago - I just groaned.  It was basically an "if you announce it they will come" strategy as far as I could tell - there was no there there.  The technology for the most part had not been built.  It was an announcement of an unrealized vision, not an actual working product.  And meanwhile there were not one but two competing solutions - Flex and Silverlight - from two of the best consumer software companies in the business.  Things did not look good - and still don't.

What made this whole Java FX thing really grating to me was that we as a company had to pull out all stops to get this thing to actually happen, since our VP of all software had put his reputation on the line by announcing it.  They pulled the best and the brightest from the NetBeans and Java Swing teams to work on Java FX.  They pulled our UI design resources.  They pulled our QA resources. And the now NetBeans was working on life support, and JavaFX struggled along, and continues to struggle along.  

The other announcement - Sun is going to provide a cloud offering.  OK, so let's remember Way Back to about five years ago, Jonathan was announcing this grand vision of selling CPU for $1 a CPU-minute.  This was the beginning of Sun's Grid effort.  This project ground along for year after year, having (IMHO) completely the wrong focus - focusing on HPC and batch-oriented processing instead of making it easy to host my application on their infrastructure.  Meanwhile Amazon takes the world by storm.  Sigh...

So now Sun finally announces a move into the real cloud, one that people care about.  But at this point they are way behind their competitors.  What makes them different from Amazon, or IBM, or HP?  Oh, I see, it's "REST-based" and it is with an open license.  Ho-hum...

I really like Sun, and liked working for them.  They have some great technology (Solaris, Java, ZFS, DTrace, Thumper, Glassfish, NetBeans), they have contributed enormously to the community, and are one of the most ethical and respectful companies I have worked for. 

But Sun has had this amazing ability to thrash for a very long time on large and ultimately doomed projects (remember N1?), and they just haven't been able to turn the corner and really reinvent themselves.  I think many of us have been rooting for them for a long time. But I'm losing faith.   No it's not that I'm bitter.  I just have been around the block a few too many times with new strategies and not seeing any of them really get any traction.  The recession has not helped - but hey, IBM is doing just fine, thank you, so somebody out there knows how to run a business.

Ah, IBM.   When I heard that IBM may be buying Sun - now that was interesting.  And it reminded me I had better start learning Eclipse... 

Tuesday, March 10, 2009

Joe Gregorio shows how to write a bloom filter

A very nice, succinct, clear article both on what a bloom filter is and why you would want to use one. I feel very educated, thanks, Joe!

http://bitworking.org/news/380/bloom-filter-resources

The Pragmatic Bookshelf | Erlang in Practice

I am looking into Erlang as part of my involvement with CouchDB, and I bumped into this Most Excellent production from the Pragmatic Programmers shelf. You actually sit with Kevin Smith, an Erlang expert, through a series of screencasts (downloadable onto your iPhone if you like) as he builds a system from soup to nuts.

I don't think there's a better way of learning a language than this. There are these little details about how to work with a language that just can't be covered in a book. Seeing someone work also helps you focus on approach, what's important to focus on, and in general getting a sense for the "gestalt" of the language and its runtime.

So much better than a book - books are good for reference, but just don't convey this "quality" of a technology like hanging out with someone who knows it.

http://www.pragprog.com/screencasts/v-kserl/erlang-in-practice

New TLDs - boon or boondoggle?

When I was reading up about Minds+Machines and what they do, I encountered some articles and blogs complaining that new TLDs are primarily a way to milk money out of trademark owners because they have to defensively register their name in all these new TLDs.  There do seem to be a lot of concerns, and not a clear understanding of its value.

Advertising Age had an article about this that makes it all sounds pretty ugly, and you could find yourself asking "why is ICANN doing this?  It sounds like a mess!"

Antony Van Couvering (yes, we're related), CEO of Minds+Machines, responded to this article in a comment. You can also find his comment in full on the Minds+Machines blog.

His main point is that there are significant benefits to TLDs, that these benefits significantly outweigh the potential costs, and that the marketing/ad industry should look towards how to take advantage of the benefits rather than naysaying and focusing on the costs.

I particularly liked Antony's point that a TLD can be used as a guarantee of quality - it's a brand you control and you can use it as a brand in the real sense of the word:
If BMW had standards for their pre-owned cars (which they do), then they could provide .BMW domain names for dealerships who met their qualifications. BMW = quality; .BMW = dealer you can trust.
It also appears that there has been a pent-up demand for new TLDs that really can't be denied
These new top-level domains are going to happen, because the demand has been simmering for over 10 years for non-Roman-character TLDs for most of the non-English-speaking world, so that people can use the Internet in their own language. Add to this vocal demands for non-brand-related TLDs such as .AFRICA, .EUS for the Basque Country, .NYC for New York City and so on. These are the real demands that are driving this process, and concerns about cost to brand owners, as real as they may be, are not going to stop it. It's true that the new TLDs will cause some headaches for brand owners, although there are workable proposals out there that will allow brand protection across all new TLDs for as little as $125 per brand.
I'm curious what those proposals are, that sounds encouraging.  Antony worked with companies for years as CEO of NameEngine (then acquired by Verisign), helping them establish/protect their brand across domains, so I suspect he knows of what he speaks.

A great conclusion too, that drives the point home 
But to concentrate on the risk and cost when the opportunities are so great strikes me as a great mistake. There is no reason for a company to spend money branding VeriSign (=.com) when they could be branding themselves, even as they claim a permanent part of the Internet at the very top level. Compared to the opportunity, the cost is truly trivial.
 Maybe I should work with Antony to get the .VANCOUVERING TLD :)

Arnon Rotem-Gal-Oz - 10 Papers Every Software Architect Should Read (At Least Twice)

Excellent, excellent resource, thanks Arnon! Another architect friend was just telling me about a paper that shows you can never reach consensus in a distributed system, and then here is the paper in Arnon's list. I love it when that happens.

http://www.rgoarchitects.com/nblog/2009/02/27/10PapersEverySoftwareArchitectShouldReadAtLeastTwice.aspx

Villagers in India Open Their Homes - NYTimes.com

A very nice article on the growing trend of tiny villages in India opening up their homes for tourist stays. Sounds tempting - when the kids grow up... Make sure you look at the slide show.

http://travel.nytimes.com/2009/03/08/travel/08journey.html

Minds + Machines



Hey, look at that, my brother, Antony, along with two other heavy lifters in the domain name industry, Jothan Frakes, Elaine Pruis, just took the domain world by storm.

He pulled the curtains off of his new company, Minds and Machines, at the ICANN meeting in Mexico City last week. They had a booth there and expected some interest, but the news is there was a lot of interest and they were very very busy.

It appears they are giving the bigger companies in the domain industry a run for the money, having moved from zero to 4th in the space in a matter of a week (according to my brother anyway :)).

At Mexico City they announced that the new .eco top-level domain (TLD) is using them, and also got the icing on the cake that Al Gore is supporting and sponsoring the .eco TLD.

Their web site is clean, cool, approachable and understandable even to those not in the domain business. They are also using and enhancing the popular open source domain platform, CoCCA, to make it very easy to create and manage your TLD.

Why "Minds and Machines?" If I understand it right, the idea is that they are combining the strength of their experience in the domain industry (Minds) with the usefulness and productivity of software (Machines) to provide an excellent experience for managing a TLD.

It also allows them to give away m&ms at conferences :)

Many congratulations to my brother and his company, and may this be a source of abundance to him and a service to the world.