Animals, boats, ideas.

2008-09-24

My daughter greeted me twice last week as I was readying to leave on my bike with an “idea”. “Daddy, wait” she said as she ran back into the house, appearing moments later with one of her animals. She wanted them to experience the joy of the morning commute on the “big boat” — into the Ortliebs each went.

gusbalsamic

I think Gus got the better deal of the two, enjoying the sunrise over Seattle, while Balsamic suffered through watching me work at my desk.

Categories : photography

Laptops, Time Machines, File Vaults, oh my.

2008-09-23

I travel with a laptop everyday: to and from work, to coffee shops or to friends’ houses. While I use new, randomly generated passwords (courtesy apg) my home directory had not the same level of security.

That’s changed. Both my sister-in-law and a colleague had their laptops stolen recently and so encountered all the usual headaches and fears about personal and corporate information in the hands of nefarious individuals.

Wanting to quell any such concerns of my own I completely re-worked my security and backup strategies.

I use a Mac … enter File Vault and Time Machine. The web contains many complaints about their pairing but, for me, the limitations fit my workflow.

The main limitation to the marriage of File Vault and Time Machine is the latter can only run if the user of the former is logged out. Fine by me. Some of my applications, namely those using sqlite (Yojimbo comes to mind), should not be running while a Time Machine backup is occurring because the state of the backup could potentially be inconsistent.

To remedy this scenario, I had been quitting all applications prior to manually initiating Time Machine. Now I log out. It’s actually safer and more robust. Perfect.

There was one issue in the migration, namely any directory in my home directory which I had excluded in Time Machine is no longer excluded since Time Machine now only sees a directory of data chunks, not a proper file system. Since this included some monster VMWare images I have no interest in backing up I moved them out of my home directory and voilà, problem solved.

In addition to the switch to File Vault I updated System Preferences to ask for a password after sleep and to disable automatic login.

The upside of all this is my backups on my external drives (one at home, one at work) are encrypted, my laptop is encrypted and I rest a bit easier. Nice.

Categories : development   general

Spiders, mushrooms, Harvest Fair, fall.

2008-09-21

A face-full of spider webs as I hunt for a carpet of mushrooms confirms fall’s arrival.

forest floor of mushrooms

This banded spider, weaving away on a rhododendron, was kind enough to pose for photos.

banded garden spiderrunning away

On Saturday I volunteered with the TWL in preparation for the Harvest Fair. Bart and I moved about five truck loads of brush from one side of the farm to another — Bart on the tractor, I loading with the pitchfork. In the process we unearthed at least half-a-dozen mice, a baby frog and a newt — the eyes of a newt must have been the influence for Gollum’s. I really found the eyes mesmerizing — it’s no wonder so many magic potions call for their inclusion, they are other-wordly.

Unfortunately, the rain kept the camera under cover and I only managed the two weak shots.

pile with tractortruck filled with brush

If you’re coming out to the Fair look for me driving one of the tractors or pressing cider. Enjoy!

Been there — a distributed ExecutorService.

2008-09-17

I happened to run across a new open-source project today I had not previously heard about: Hazelcast.

What really piqued my interest was the implementation of a distributed ExecutorService as I wrote something of similar functionality to façade Orbitz’s Jini infrastructure. The design and implementation solved a couple primary objectives:

  • add timeouts to Jini which is unfortunately lacking such a feature
  • bound the number of concurrent requests being processed
  • bound the number of threads created for request processing

The design was elegant, imo, because the exact same code worked either client or service-side — it just mattered which way you twisted your head — and masked the complexities of both Jini and the ExecutorService. The timeouts were managed via the Future and the throttling of requests and threads by configuring the backing Queue and pool size. Spring wiring entirely hid the remote invocation machinery from the caller. In almost every case there were no code changes and the timeout and throttling features could be turned on and tuned entirely through a configuration change.

The primary flaws in the implementation were in the difficulty of passing around ThreadLocal required context but that’s a pain-in-the-ass regardless and should be avoided if possible. The other concerned a slightly awkward callback mechanism for managing the timeouts. Hazelcast returns the Future directly to the caller but we choose to abstract this away so the caller coded to an interface which offered nothing about the possibility of being invoked remotely. To compensate, a callback mechanism could at runtime change any pre-configured timeout values based on the interface and/or the parameters of the invocation.

I’ve spoken before about the trade-off of abstracting remote invocations. On one hand it ensures discovery, error handling and invocations are accomplished consistently but on the other it invites developers to ignore the realities of a distributed system which can lead to the if-it-looks-local-it-will-be-coded-as-though-it-is-local problem. Dan Creswell offers:

I believe the best chance we have for doing distributed right is not by providing some de-facto standard toolset, rather it’s through education and mentoring to encourage the correct mindset. Such a mindset allows a developer building a distributed system to choose the most appropriate tools and use them right.

I agree that’s definitely the best long-term solution but in the meantime the site needs to be up.

Plums, berries, frog, garden.

2008-09-13

Just a quiet day in perfect weather doing yard work: mowing the lawn, transplanting day lilies and checking on the garden.

Ripe, purple plums needed picking so out came the ladder and in the box went the plums. Last year’s harvest still needs bottling — this year’s will enjoy the same destiny.

plum

A few tayberries were ripe so I was picking and eating — some came with bugs. I wish I still had the macro lens.

tayberry with bug

I ate a couple of blueberries but their season is rapidly ending.

blueberries

Mushrooms are everywhere: singles, clusters, large and small.

mushroom

I almost stepped on this guy while I was taking out the compost. Fortunately he was looking for me and hopped away but he stayed still long enough to grab the camera and fire off a shot before hiding again.

cascade frog

I wasn’t the only one tired from the day’s work.

Ralph

Go Badgers!

Categories : gardening   photography