Tuesday, March 30, 2010

A girl and a fish

Tears in eyes laughing. 

http://hyperboleandahalf.blogspot.com/2010/03/how-fish-almost-destroyed-my-childhood.html

I had a very similar going fishing with my Dad, where I caught a fish and couldn't stand to see it suffer.  Dad told me to whack it with a stick - whack/flop/whack/flop - OMG I am *never* going fishing again.  Horrible.

WTF? - SQLite files as a network messaging format

A colleague told me about an idea his team is considering that at first had me going ewww!

They are thinking of replacing the use of Google protocol buffers with a SQLite file for their network communication format.

Huh?  It didn't make sense at first.  But then I chewed on it some more.

Their protocol is primarily about sending one or more queries, and getting back potentially quite large tabular data sets as a result.  What better format than a compressed relational data format?

The SQLite database format is in the public domain.  It is self-describing.  It is compressed, saving network overhead.  The format is portable across platforms.  It is tabular in nature.  You can use the SQLite APIs to to inspect, slice and dice the results, both for processing as well as for troubleshooting/debugging.  You can also use the SQLite API (e.g. SQL INSERT) to incrementally build up a request or response before sending it over the network.

SQLite is embedded, so you don't have to deal with connecting to the server and yada yada, and it's quite cheap to create new databases (each request and response is a new SQLite database).

The more I think about it, the more it seems like a very compelling approach...  It goes against everything I've learned about network protocols, but for their use case, it actually makes a lot of sense.

Friday, March 26, 2010

Error message 101 - help me fix the problem - Facebook FAIL

Facebook has a new feature that lets you reply to a comment by email.  Very nice!

But if for some reason this doesn't work, here's the message you get by email:
Sorry, your comment could not be added at this time. Please try again later.

Please try submitting this comment through the Facebook website instead.

Thanks,
The Facebook Team
OK, what comment?  For what status update? You could provide me a link to the status update and a copy of the comment I tried to send.

So instead I have to do all this work of tracking down the original email I sent, if I still have it, and then go to the status page and copy and paste it.

Wednesday, March 24, 2010

Design principle: question your assumptions

A lot about good software engineering and design is about listening - listening to that little voice in your head that's telling you you're pushing it, forcing a design or an implementation onto a problem that's not a good fit.

It's very hard for me to listen to this voice when I've got a particular solution in mind, and I'm plugging away implementing this solution, and if I can just get past this next hurdle, it will work, dammit!

Yesterday I finally noticed I was banging my head against a problem.  I thought about what the struggle was, and I realized that most of my pain was in trying to coordinate two separate threads of control through the system - one doing updates and one posting those updates to listeners.

So I decided to apply a common principle for me: question your assumptions.  Did they really have to be coordinated?  I contacted some other members of the team and our product manager and asked what they thought.  It turns out there was much more flexibility than I thought was possible.  If I tried to stop having absolute control, as it were, relaxed a bit, and let things be a little loosy-goosy, then my overall design became much less coupled and thus much simpler.  Ahhh....

It reminds me of the beauty of eventual consistency - if you let go some of your tight constraints, it's amazing how it opens things up and brings new possibilities into the solution.

Sunday, March 21, 2010

Armageddon - to a doctor!

According to House Minority Leader John Boehner, Armageddon is here because the healthcare bill passed.

I suspect for the millions of uninsured or underinsured, that's true. They're all saying "Armageddon to a doctor, finally!"

Pepper in your water? I'm sorry...

Michael loves mechanical things.  So it's no surprise he loves our big fancy pepper shaker that we bring out to the dinner table sometimes.

Tonight when he saw it on the table he asked Linda "can I put pepper in your water?"  She said no.

He asked me next.  I said "I don't have any water." (I don't usually drink water with my meals).

"Why not?"

"Because I don't want anyone to put pepper in it."



Fade to fifteen minutes later.  Linda looks at her glass of water, and there are little black granules floating in it. She says "Michael, did you put pepper in my water?"

He says, with great sincerity, "I'm sorry".

We all laugh.

He says, "It was an accident."

The little rascal.

The amazing thing was there were four others sitting at the table, and none of us saw him do it.

Thursday, March 18, 2010

Zone of Big Things

Via @ntoll, I really liked this graphic comparing the Project Manager's view vs. the Developer's View of various technologies.

CouchDB - you're up there in the No-Fly Zone! Cassandra and Redis are probably off the map...




Search engines, tech culture, and the public good: my sister's thesis

My sister, Elizabeth Van Couvering (@ejvanc on Twitter), is inches away from getting her Ph. D. at the London School of Economics. Her thesis draft can be found here.
In the case of search engines, the evidence indicates that the culture of the technological entrepreneur is very effective in creating a new mega-business, but less successful in encouraging a debate on issues of the public good or public responsibility as they relate to the search engine industry.
Great stuff from the conclusion:
search engine producers appeared to construct the search index and search results so that the most important markets they serve will have the most relevant results and they will thereby achieve greater customer satisfaction and higher revenues.
...
These processes were often carried out with high levels of secrecy. They create search engine results that are highly opaque to users and a climate in which questions of the public interest in search engine results, as opposed to questions of technical efficiency or market success, are far removed from their everyday search operations.
...
Finally, the prevailing wisdom and common sense within the search engine production community presents challenges for those who wish to discuss public interest or information ethics in connection with the search engine industry as questions in this area infringe on the values of “relevance” or of “customer satisfaction”. It will be the role of actors outside the search engine community, no doubt with the support from certain actors within it, to raise awareness of issues around bias and its implications for the public interest and to provide potential alternatives
...
The “internet culture” is predominantly individualistic, market oriented and opposed to most forms of regulation. Putting the case for a public interest in online media is fraught with difficulty. During this research I was met with bemusement and puzzlement, as well as encouragement, from many sources. Having said that, search engines operate in many parts of the world, notably in Europe, where the tradition of public service media is strong as compared the to the US. These parts of the world may be the best places to encourage discussion about how innovative approaches can be used to create a search engine industry that can help to deliver less biased search results and, arguably in consequence, a fairer information society for all.
Interesting stuff. 

I remember when she was doing the research, she tried very hard to get into the Google campus and "observe" the search engineers, trying to get a sense of bias in their work, but no go.

I can imagine the "bemusement and puzzlement" of techies as she asked them about those namby pamby things like "public service" and "public good."  What is it about our culture, particularly Silicon Valley, that places the social contract ("what's that?") so low on the totem pole.  I suspect it's the same individualistic spirit that drives a lot of innovation - if I can invent this cool new thing, I can make lots of money.  All other considerations are a distraction and an obstacle.

Something to think about and be aware of.  And I agree with her conclusion - the search engine industry and other parts of the tech sector are not going to address issues of public good and information ethics on their own - they need to be forced into action by the users delivering them all this search traffic, and by the governments that represent them.

Tim O'Reilly, John Battelle - you listening?

Oh, and by the way - CONGRATULATIONS, ELIZABETH!

Thursday, March 11, 2010

Bubbles for Java

A number of folks have been tweeting about a fascinating IDE currently in closed beta out of Brown  University, called Code Bubbles.  The visual paradigm is very compelling - it lets you organized related snippets of code into "bubbles" - building them up easily as you navigate through a particular thread in your source tree.  So rather than having everything organized by package name, it's organized by a path that groups a set of source files based on a given scenario (for example a particular method invocation and its effects). From the site:

A quantiative user study indicates that Code Bubbles increased performance significantly for two controlled code understanding tasks. A qualitative user study with 23 professional developers indicates substantial interest and enthusiasm for the approach, despite the radical departure from what developers are used to.

Hard to really explain, the best thing to do is watch the video, embedded below...

Code Bubbles is built on the Eclipse platform, so can be run on top of your existing Eclipse environment (although the integration sounds pretty light). It's in closed beta, so you can sign up and they'll get back to you. At some point it will open up for a public beta...

Cool stuff!

Tuesday, March 09, 2010

Analogue is like...

Via a tweet from @mikeal, I heard about this thing called Analogue:
is like comments, meets im, meets irc, meets your favorite paste app, meets instant coffee.
actually, instant coffee sucks.
Took me a bit to figure it out, but basically you click on a link, it starts a new discussion window with its own unique URL. Then you can send that URL to others who you want to invite to join a discussion.

Very simple, to the point. I'll keep it in mind next time I very quickly want to start a conversation with a bunch of folks.

If you want to contribute, go to the Analogue open source site.

The exciting life of married with children

This article on New York Times talks about a new Twitter/iPhone app called Miso, which lets people with not much of a social life try and have the same fun as people using Foursquare.

I just had to smile. I don't even have time to watch a movie. I don't know if I'd call it a boring life, but it sure is different from those jet setters and swinging singles becoming mayors of all the best restaurants and night clubs. I smiled as I thought of some of the possible Miso checkins:

"Michael clogged up the toilet again, thank goodness for our plunger"
"Fell asleep reading to the kids, no movie tonight."
"Back at the grocery store again, I forgot the butter."

I'd definitely be mayor of our local grocery store and the nearby playground, at least on weekends.

It's a good life - strike that, it's a great life. Just not one that has that zap, zing and zam of the young and restless.

Actually, I'll take the uneventful joy and contentment of my family life over loud restaurants and night clubs and cramming myself into airplanes to head off to Paris, London and Bangalore, thank you very much.

Time to heat up the tamales for dinner...

Monday, March 08, 2010

MySQL Drizzle team joins Rackspace

Well, more defections from Oracle, it's clear where the wind is blowing. It's as if all the cool and interesting stuff is quickly shedding itself from Oracle.

Jay Pipes has a good blog post about the announcement and the history behind them ending up at Rackspace.

Interesting quote:
"Rackspace is also heavily invested in Cassandra, and sees integration of Drizzle and Cassandra as being a key way to add value to its platforms and therefore for its customers".
I look forward to seeing what that's about.

I also liked this from Jay:
"I don't know whether Larry understands that cloud computing and infrastructure-as-a-service, platform-as-a-service, and database-as-a-service will eventually put his beloved Oracle cash cow in its place or not. I don't know whether Oracle is planning on embracing the cloud environments which will continue to eat up the market share of more traditional in-house environments upon which their revenue streams depend. I really don't."

Simon Phipps leaves Oracle

Simon Phipps, Sun's Chief Open Source Officer, announced his departure today, after 10 years at Sun.  I had a great time working with Simon on Java DB, a smart, fine guy to work with.

I am really not at all surprised, Oracle has never thought much of open source.  As with Tim Bray and Ted Leung, their loss.  It's also a sign that a certain cultural style reflected in these folks is not a good match at Oracle.

Saturday, March 06, 2010

Excellent online interactive CouchDB view tester

I had seen this before, but it took me a while to track it down again.  This page lets you interactively write map/reduce views against a CouchDB dataset and execute them to see the results.  It's not actually CouchDB, but it mimics it sufficiently to help you get an understanding of views and test various views to help you figure out how to get the results you want.  Very useful!

Friday, March 05, 2010

Twitter as a tool for getting (and providing) customer service

I have to say, one aspect of Twitter that has surprised me with its power is its ability to get attention from service providers.  I am always surprised and appreciative when someone replies to my tweet where I'm complaining about something.

When I am unhappy about something I do tend to gripe about it on Twitter.  This blog itself may arrive as a tweet because the folks at dlvr.it responded when I complained about Twitterfeed not working.

The folks over at Perforce have also been paying attention, although when I come back with a followup reply I tend to get re-routed to support, who re-routes me to my local contact, so oh well.

I also notice when people aren't listening.  For example, when I complained about Sharepoint user interface being, well, painful to say the least, I have to say I'm not expecting to hear from anyone with a followup.

I've even met some good folks this way.  I was whining about Sonic.net (I can't even remember what about), and ended up being followed by (and following) @dane, a dedicated employee at Sonic.net, and now I'm learning all sorts of cool stuff about what sonic.net is up to.  By the way, highly recommend those guys - excellent quality, great customer service, and they have some innovative services on the way (if I can trust Dane :)).

Zack Urlocker, predictive analytics, and R

I just noticed that MySQL's Zack Urlocker Joined the board for Revolution Board

REvolution? Who the heck are they?

Zack says "Predictive analytics is a multi-billion dollar market and it's ripe for disruption".

What the heck is predictive analytics?
Well, that's what Google is for. Turns out it has a lot of uses, and has been in use for a while.

http://en.wikipedia.org/wiki/Predictive_analytics

http://en.wikipedia.org/wiki/R_(programming_language)

http://www.revolution-computing.com/

http://blog.revolution-computing.com/

Well, very interesting. I am in no way a statistics or mathematics guy. But this does sound very compelling and powerful. Combine this with a big data set and you can do some interesting stuff -- for good or evil. Looking to see how Zack and REvolution disrupt this market - I would think by making it more approachable to a larger audience and finding new vertical applications for it.


Thursday, March 04, 2010

Silliest 10 billionth (+1) tweet ever

Boy, talk about underscoring the complete vacuousness of a lot of Tweets, here is the 10 billionth (+1) tweet (the 10 billionth was on a private account).


Thank goodness I can control who I listen to on Twitter, my goodness.

Nice article about DLP and Data Insight

A nice blog by Jerome Wendt about how tying in access history of a file with an ability to classify a file as sensitive is a big step to tracking down how data is leaking out of an organization.

I've seen demos of this technology (our team worked on it), and it's quite cool. A big problem our customers have is "OK, I've scanned all my data, I see there is sensitive data out there, now what?". Having a good sense of who is accessing the data most frequently, and therefore who is the likely "owner" of the data, is a huge step to helping answer this question.

Apache Cassandra

Meanwhile, I might share that I'm starting to see a serious pickup in Apache Cassandra, with Twitter being one of the latest to commit to using it big time.  It does look very promising - if it has backers like this, and the community is strong, we can expect great things of this project.

Trying to integrate my blog with Twitter and Facebook

I'm trying to use TwitterFeed, which automatically redirects blog postings to Facebook and Twitter.  We'll see how it goes.  What I'm hoping is this will increase my activity on my blog - it doesn't feel right to be so radio silent over here these days.