natevw proudly presents:

a glob of nerd­ish­ness

powered by work over time.

Behind the bucket list

It's that time of the year/quarter/day/hour — I really don't track these up and down cycles — another time of life that usually ends with me reading through Ecclesiastes in a single sitting and then knowing again this is normal, it's okay, and resting in that…at least for a time.

This time, like most times, it's about time. Here I have it, never enough but always more than I know what I'm to do with. What to do with the time I've been given? What should be on my "bucket list"? The sun sets, the sun rises, and what was the meaning of life again?

I'm always behind on my bucket list, and it always makes me feel guilty. When the guilt gets to a certain point, I shirk some other responsibilities, catch up a little, and then spend the next few months trying to catch up back up on sleep and/or finances.

Q. Why am I here?

It doesn't help at all when a friend writes:

The thing you’re really passionate about. It’s distracting you completely right now. It keeps you up, wakes you up, and catches you daydreaming in between the rude interruptions of real life. … There is something you truly want to do—and guaranteed if you fish around your heart long enough, that calling is there.

…but then also asks:

Why do you want to do what you want to do?

Because I don't know. There's a lot I just want to do.

Here is a sampling of projects that are currently severely constrained by time and money

I really care about doing all those things because

Let's dissect the first one.

PeerPouch is what I've been calling my (slow and way too careful) work to add magical "it just works" WebRTC support to PouchDB. Why? It'd be cool if app developers could easily use PouchDB's masterless replication over the direct connection WebRTC can provide between two "normal" (non-server) computers. Why? I'd like to help reverse the trend of users sharing all their personal data with money-motivated "too big to fail" corporations. Why? It's better for power to be distributed among smaller semi-autonomous entities than to be centralized. Why? The technologies/societies we design should be robust against individual failures or malignancies. Why? "Woe to him who is alone when he falls and has not another to lift him up!"

So does PeerPouch matter?

Well, I don't believe it actually does. I don't believe humanity will save itself from its own pride, and certainly not via some nerdish network architecture or leaked top secrets or crazy crypto currency; I believe God's already finished with his design to lift us out of our fall. So if you believe PeerPouch is our only hope, write me a check; deep down I keep dabbling at it only because it's enjoyable.

Speaking of enjoyable, I want to harvest everything I need to make pizza off of my own land someday. Why? The oil and salt and flour for the crust are impractical to produce at a small scale, but the result would be worth it. Why? Growing the ingredients will deepen our appreciation for this common food we eat, which is more valuable than the purely practical aspects of having food on the table. Why? A meal should be enjoyable. Why? "Go, drink your wine with a merry heart…" I dunno, you ask to many questions, kid.

So does pizza matter? Certainly a lot less than PeerPouch matters — one can hope?!

Probing within myself for "whats" and "whys" generally tends to be this unproductive. There's a lot I really want to do, with no real reason I can ever find. It could be because these things just look fun when I see others do them well. It could be because I'm addicted to learning, and doing is the best way to learn. It could be because I crave affirmation that I am valuable.

Valuable at a big — perhaps even cosmic — scale!

That's it.

No, seriously. I've built a lot of things, they were fun and I did learn alot and I was still unhappy last night because

well I was basically complaining that because I'm bad at visual design and can't really afford my own taste in it, people seem to overlook all the hard work I've done. If everything I do looks stupid and pointless how will the world ever realize how brilliant and important <del>it is</del><ins>I am</ins>.

And so, I do recommend Adam's article — go read it now if you skipped the first link — and I agree that there is something to just doing.

It's against that "just do it" sense though, especially the "just" (i.e. "only") focus of the doing, that I would gently digress from his advice.

I've got a long list of things I've found I really love doing. And I do them…occasionally, on the side, when I can. I hate halfway I hate settling I hate excuses I hate bursting forth in "blubbering apology to my dreams for not living them". But

I've tried "doing" full time. I try "doing" part time. I'd love to "just do" I'd love to live the dream every week every day every minute. Excuses, however, are real. They are each "absolutely a giant pile of bullshit" but they are all my giant piles of bullshits. Piles which I have been given — alongside my glorious snowflakey passions — and they are real. More real than dreams. If I do not tend these piles, they do not compost. (If they do not compost, they ain't just gonna disappear neither.)

Even after I turn these shit stacks into fertile soil, I have to haul it away just to make room for the next. More soil, more cows, more manure…the sun rises, the sun sets. More of the now-greying snowbank of dreams melts away.

And that's okay. If you, like me, feel like me (Hello, me!) know that that's okay.

That's life. Enjoy it.

Seriously.

Enjoy life. Whenever, however you can.

It may go well, it may go poorly. Sometimes Mother Teresa wins the medal in front of everyone, sometimes the medal gets melted down behind closed doors to help some 1% get 1%er, sometimes they're both in the wrong intersection at the wrong time.

You may shoot for the moon and end up sipping martinis with the stars. You may instead find yourself with another hole in your foot.

Sometimes life is hard, more often than not my dreams remain dreams or at best re-appear as someone else's successes.

But they were always dreams, never commandments. I cannot earn God's favor. Not by übermensching my strange and nerdy passions into success, not by dourly donating my very last beautiful dream to the food bank. I'll keep trying, I'll keep doing, but I've been given only a broad calling and I've been given only one specific guarantee.

"Go, eat your bread in joy, and drink your wine with a merry heart, for God has already approved what you do." — Ecclesiastes 9:7

comments

Writing about D3.js

On Monday I signed a contract to write a book about D3.js for Manning Publications. If all goes according to schedule, it should be out early next year, with draft chapters available in electronic form for subscribers even sooner.

Wow! It's certainly exciting, though I'm still worried over how much work it will be. I do get paid a useful advance at two milestones within the process, but I'll likely need to raise my consulting rates to compensate for my overall lost time.

I didn't say "yes" lightly, but I couldn't really say "no" either.

Why D3? The simplest answer is "that's what Manning asked for". But the longer I sat on their recruitment email, the more I realized that D3 is one of the tools I love and choose and use and even analyze a little every day, but rarely talk about. I'm not a visual artist so my use, especially my charts and graphs and even maps, always seemed a bit too unglamorous for sharing. Meanwhile D3 itself has been steadily and deservedly growing in popularity, and I'd certainly enjoy helping more eye-savvy creators learn to wield its technical side better. So I'm looking forward to sharing more about the library. A lot more.

Partial screenshot of D3.js examples gallery

Why a traditional publisher? Well, I've always been interested in writing a book but not terribly excited about the additional work of paid distribution. Signing a contract with a publisher obligates me to ship (and on time), gives me access to a lot of editorial support and experience, and significantly increases my chances of getting at least some financial return. In one sense, Manning is just a very low-paying new client, but they did offer me a particularly interesting product to work on.

In another sense, though, this is also still an investment. It won't really be "my" product (at least not until its market value has faded), but I will get prominent enough credit — and eventually maybe even a share of their ongoing profit should my work serve them particularly well. Technologies come and go, but D3.js would be difficult to outdo; I could see it staying around for as long as HTML and JavaScript themselves remain popular. Seems like as good an opportunity as any, eh?

Anyway, the book is a mere Table of Contents at this point so I won't persist boring you with further naïveté. Make room on your nightstand. 2014 will be here before you know it.

comments

Something(s) to do while we are waiting

The greenhouse aquaponics project has been going well.

Greenhouse from the outside

Not without a few hiccups (my first water pump slowed to a trickle and needed exchanging, and a GFCI breaker has cut off power to the pumps twice^Wthrice over the month) but as of this morning all 14 fish were still swimming happily enough in the tank. As is typical, the water ammonia levels rose (over 1ppm) until the first set of nitrifying bacteria blossomed and are well caught up converting it all to nitrites (2–5ppm).

Colored water samples in test tubes

My nitrates had started going up (from 10–20ppm on day one to the 40–80ppm range now) but are now lagging a bit — I'm a little nervous that a relatively small top-off with water straight from the spigot set the next stage of bacteria back a bit, but OTOH it could just be that the grow bed is keeping up with the nourishment as soon as it's ready and the ecosystem might just need another week before the nitrites finish moving over into the next test tube, just as the ammonia suddenly did.

Time takes time

Basically, at a certain point the system stopped needing daily research and setup and tweaking, and just needed time. At said point my ADHD brain went into a state of near-panic. What do you mean everything's "going well"?! There's nothing to stay up late reading about if everything's "going well"!!

Duckweed

A little duckweed in a little leftover tub Testing the temperature of another duckweed growing attempt

So I bought some duckweed off eBay.

BSFL

Larvae squirming in their tub

And some Black Soldier Fly Larva. (Pupae really.)

Learned all about the pond scum and the creepy crawlies — essentially both species are great for turning leftover yuckies into delicious chicken/fish food — for a week or so. Why is the duckweed sitting there turning white instead of multiplying exponentially? What environment do the motile pupae prefer for their presto change-o thing?

Then realized that I was back to waiting.

Wicking beds

So…wicking beds.

Wicking bed in progress, perforated drainage and pea gravel providing structure in builder's plastic water reservoir Wicking bed ready for dirt, fabric over gravel

I'd happened across this idea while researching aquaponics growing techniques. Growing up in Midwest humidity, it was still baffling me just how quickly water disappears and plants dry up here in eastern Washington. Our original garden beds had succumbed to grass and needed refreshing anyway. Three of the four dug out and installed so far.

Meanwhile my wife has been busy sprouting…

MOAR PLANTS!!!!1!!!

Greenhouse plants, not pictured: six tomatoes also added in recently

A growbed and a whole package of paper cups full of little plants. We've got a backyard map, sketching out the master plan. Did I say "plan"? What I mean is, if we sprout it we'll have to let it grow somewhere right?


In summary, by "going well" I mean we may have gotten a little carried away with this whole suburban agriculture thing.

Other news? I've been working to get PeerPouch (PouchDB-over-WebRTC) to demo so that I can get back to my wireless sensor/yogurt maker network plans.

And just signed a contract to write a book about D3.js.

comments

Growing in gravel

Warm weather is here — to stay, I hope! At least in a 6 ft. by 8 ft. corner of our suburban lot.

Greenhouse in our yard

I built a greenhouse, not just because they are warm and bright and provide relaxing shelter from snow/wind/rain. I wanted to try aquaponics.

Considering the investment it's been so far, "try" might be the wrong word: I intend to grow yummy fish and yummy veggies for yummy years to come. Just finished up a few literal loose ends today:

Excess weatherseal on the door, right before trimming Interior of greenhouse, with gravel on floor

The idea of aquaponics is simple enough. It's pond-meets-plastic, a miniature ecosystem stripped down to its essentials. The natural cycle does wind along a bit of a scenic detour in aquaponics, though: the fish don't eat, directly, the plants that grow in their water. In a typical aquaponics setup, humans eat most of the vegetables and then wake up the next morning to participate in a global economy, out of which flows units of abstract value, some of which is then converted in exchange for fish food. Put food (and sunlight) in, get plants (and occasional fish) out.

Me taking a short breather, standing within the tote cage now in place, photo by Hannah Me cutting the IBC tote, photo by Hannah

The plastic for my pond comes via a 275-gallon IBC "tote". It is cut in two, but aquaponics actually involves 3 basic components: fish, plants and bacteria. My infant system is lacking an established mix of bacteria colonies to convert the fish pollution into plant nourishment. So I'm starting off with less than $5 worth of goldfish and a handful of lettuce/spinach seeds. Both should be fairly resilient against the poor conditions that will exist until the biofilter between them catches up.

Fish in the tank below

Sprouts in the gravel above

(Okay, so also we already planted some alfafa and bean sprouts from the fridge. Plus some volunteer basil starts and parsley shoots. Aaaaand some strawberries that had landed where they didn't belong. I think Hannah may have tucked some tomato seeds into the gravel grow medium too…. I'm only holding my breath for the lettuce and a majority of the goldfish to survive, but wouldn't be surprised if something else manages to make it.)

Aquaponics has been an interest for a while. It started, I suppose, with the chickens we got a few summers ago. We've really enjoyed watching our hens scratch around, feeding them our table scraps, and gathering their delicious, colorful eggs every day. We went from "townhouse with a garden" solidly into the "suburban agriculture" realm and it seems to be kind of addicting. The kids love the animals and it seems healthy to have practical pets to care for.

A dozen brown and grey-green eggs Malachi with the chickens, photo by Hannah

I suspect I first investigated aquaponics after seeing it mentioned on bbum's blog. I was intrigued by the idea of raising tilapia (a fish that even Hannah enjoys!) right in our own back yard — with lettuce and tomatoes as the waste products! Though a greenhouse has been a long dream of mine, I wasn't sure if we quite had the budget for it yet.

Then one day this winter, my friend Joe showed up with a armload of parts and began his own small setup in Room to Think's kitchen area. Long story short, my "intrigue" turned into "obsession" with aquaponics, and Hannah decided that it might be cheaper in the long run to just order the greenhouse already.

Starting to gather parts and tools around a dirt patch cut in the sod

Basic foundation set, with temporary tie downs

A hole dug to lower the tank into

[…everybody too busy assembling to take pictures…]

Toby inside the greenhouse at the end of our big build day

It was a lot of hard work to build, in a good way and I'm proud of how it's turned out so far. This post would be incomplete if I didn't thank Hannah and the kids for helping me build and Paul, Sean, Joe, Henrik, and others for loaning advice and/or tools. Also Brian at Beaver Bark, as well as the guy at Home Depot who started saying "see you tomorrow" when I checked out. (Let's just say that compared to those Retina MacBook Pros everybody was gushing over to get…well, I hope my greenhouse doesn't feel slow and stop holding charge after two years at least.)

Now the real work begins, I guess. I'm looking forward to this next phase of getting to prepare even better homemade food, made from more ingredients that grew up right outside our house.

Strawberries and not much else standing tall yet, beneath cheap solar lights

comments

Flight tracking and realtime sharing with CouchDB

I've been avidly collecting a record of my whereabouts almost as long as I've been using a digital camera, and always on the lookout for more ways to collect this data. One fun way I've found when traveling by air, is to take advantage of the free flight tracking maps often found on in-flight WiFi portals. Even before you've activated full internet service, you can get access to a web map that shows your location/airspeed/ETA live — similar to the old monitors in the bulkhead, but on your own device.

I've written a couple scripts to politely poll this data and record it into my CouchDB instance. This works even if I don't buy WiFi, since the fetch request is always available and the store request goes to my laptop's local database server.

We can take things a step further, though, once fully connected to the Internet: continuously replicate the local database to a publicly-available one, then use its _changes feed directly to share a map of where I am with everyone — updating live.

Screenshot of live map showing me somewhere over Idaho

It's a simple matter of shuffling some JSON around to the right places. I'm using my Fermata library to poll from node.js and fetch in the browser, and Polymaps for a lightweight map display engine, and both the data and the web app are simply handled by CouchDB. The end result is that with hardly a dozen lines of custom code on either the frontend or the backend, we have a reasonably robust realtime personal location tracking system – built and deployed while still above the clouds!

comments


All posts

Subscribe