Writings

Technology, open source, personal essays, and everything that isn't climate.

Frequently Bought Together

Frequently Bought Together

Oh Amazon, thanks for letting me know there are lots of geeks at home that watched too many episodes of mythbusters. I really wonder how many emergency room visits this led to. I'm sure the stories all start with "it seemed like a good idea at the time..."

If you don't know why this is both amusing, and dangerous, read more about it here. (find courtesy of my friend Mike)

Related: Frequently Bought Together: Take 2 · Timeline of the far future · Digital Familiars

Why you need an API

Why You Need An Api

I've been playing around with Thinkup, which you should too, if you value any content you create for Twitter or Facebook. For the twitter side they've got this nice graph of clients you've used. Here is mine:

This, as far as I'm concerned, explains why you need an API. Less than 10% of the content that I've created in twitter comes from their official web interface. And even my most used interface only represents 1/2 of my content. This is only possible because Twitter has been API strong since the beginning.

If you are building a platform to publish information, it has to have a web services API. Otherwise you are going to massively limit the ways that your users can and will publish information.

Related: The Nova API in Kilo and Beyond · Is Google+ just another Chrome? · Notes from API Strat

Satellite Tracking on Android

Heavens Above Android app screenshot

For those with an Android smartphone out there, with an interest in Astronomy, the 🔗💀 Heavens Above app is something you should install immediately.

It provides look ups for satellite crossings based on your location, as well as the ability to set alerts based on search conditions. I've had it installed for a couple of weeks, and have used it to catch half a dozen ISS passes and an iridium flare. While you can always go and look for these things online, having your phone give you a 5 minute alert when one is coming in your area is very cool.

Related: Android Me · A better voice for your phone · Mid Hudson Valley Android Hack-a-thon

New Indian in Rhinebeck

While we seem to have 2 (sometimes as many as 5) sushi restaurants in every town in Dutchess County, we've been really lacking on good Indian restaurants. Our favorite up until this week was Tanjore down in Fishkill. But this week we have a new winner. Cinnamon is the name of the nearly reopened Indian restaurant in Rhinebeck. It's actually a little south of town, in the location where we've seen a couple of different Indian places over the last decade. We hit it up Thursday night as Susan wanted to scout it for possible future catering. I decided to go vindaloo, which I don't do that often any more, as my spice tolerance isn't quite what it used to be. But it is a pretty good measure of spiciness. Wow. The vindaloo was spot on, and definitely good and spicy. Everything we had there was great. I'm already excited to go back there for one of their buffets. If you like Indian, and live in the mid hudson valley, please go there. We need to keep good Indian places around like this one.

Related: The Daily Show comes to Rhinebeck · A snapshot of Dutchess County New York · The new Poughkeepsie Farm Project site is live!

Book Review: The Disappearing Spoon

The Disappearing Spoon book cover

"It's a book about the periodic table of elements" got me an odd look from my wife, when asked what I was reading on my kindle. Yes, I'm a geek.

But this isn't the dry kind of chemistry book that you might imagine. This is a series of tales of history and intrigue. The author goes through the periodic table in chunks, where elements are similar, and tells the tales unique to those elements. There is a chapter on the elements that give rise to life, with another look at why Silicon based life is really fantasy. It's followed up by a chapter called the poisoner's corner, showing how one column in the periodic table is so hostile to life, and has been known to assassins for years.

There are tales about how one of the battles of WWI was fought in Colorado over a German owned mine for an element that only the German scientists had figured out that the previously thought useless element Molybdenum made an excellent hardening agent for steel. You'll learn that once Aluminum was once more precious than Gold, and why the Brits insist on having another "i" in that word. And all throughout the book you are actually getting a feeling of what the periodic table really means, as the chapters are always written as clumps; be them columns in the table, or other logical groupings.

A really fun book, that I think anyone with a curiosity about the world will enjoy.

Related: BBC - the Elements · Book Review: Drive · What if... the book

Arduino RGB Testing

Last night I managed to get some more time on the Arduino, getting a basic color rotate working. Youtube video below:

I'm now trying to figure out a reasonable algorithm for generating colors that would simulate the rayleigh scattering that you get at sunset. I think this is going to involve a lot of trial and error to just get something that looks cool. I also need a couple of good turnable pots for dialing in colors. I think I'm going to have to check out The Shack and see what they have.

Things I still need to figure out:

  • The right way to split the 12V in for both the Arduino power and the light power
  • I think I need to add a push button to change modes, and have been thinking about doing color flashes as an indicator of which mode you are in
  • Even with the bias, Green goes bright really quick. I think I need to do some low value analog tests for brightness and calibrate accordingly.
  • The LED strips get a bit hotter than I expected, which I don't think will be an issue, but is interesting

Overall I'm having a lot of fun with this, and get excited to get an hour or two on it when I get home at nights.

Related: Arduino-palooza · Arduino-palooza · Dague History on Youtube

Arduino-palooza

The July MHVLUG meeting (aka Arduino-palooza) is something I'm really looking forward to, if nothing other than it has finally added the extra excuse to kick me into gear to start doing something with the Arduino and RGB led light strips I got last year. The burst of energy at the beginning of squidwrench got me back dusting off my electronics knowledge last year, but after fixing a few things with the new soldering iron, the energy ran out. I put things down, and there they sat.

I've got three projects in front of me using Arduino now. The first is this RGB color lamp, which is going to support "dial a color" as well as sunrise and sunset programs. This weekend I managed to figure out enough of the transistor circuit, that the rest is pretty much just programming, and building the right case. I should have that done by the meeting on July 6th.

There are two projects after that. The first is a doorbell project, which I still need to explore the possibilities. Once I know I'm not crazy there I'll share details. The last is tapping the electronics on my stationary bike at home so that I can get the distance data out of it. That's probably the most advanced, but something I can work towards.

If you are in the greater Poughkeepsie area on July 6th, you should stop by the Adriannce library auditorium and check out all the really cool Arduino projects people are working on. It should be a blast.

Related: Arduino-palooza · Arduino RGB Testing · 100 MHVLUG Meetings

Day of Service Photos

One thing I didn't mention about our Day of Service at the PFP is that we had great photography support from Bill Rooney all day. He was there at 7am when we got started, and stuck around till about 3 in the afternoon. He has a great eye, and captured some great moments for us all. Here is a 36 photo show of the day we had.

Related: IBM's Day of Service at the Poughkeepsie Farm Project · Best Customer Service Call Ever · A Day of Service

A Day of Service

When I got to the Poughkeepsie Farm Project at 6:40am on Wednesday, there were already two IBMers there ahead of me, eager to start the day. It was a crisp day, barely 55 degrees yet, but with few clouds in the sky we knew it would get hot by the time we were going to break for lunch at 11:30. It took me a few minutes to setup checkin station for the IBM crew, then I joined Ray and Duane just to chat about the day.

"That's a lot of roof..." They had both gone down and looked at the Roof of the Coop, 100' long, 15' wide, which we were going to tear off and replace today. While the Roof was only one of 3 projects for the day, it was the only one that would cause problems if it wasn't done. The carpenters and gardeners had plenty of smaller logical stopping points, but a roof is a roof. And based on the experience the PFP had with taking off another section, the tear off might take a long time.

With some last minute drops and additions our volunteer count was going to be 12 on the roof, 12 in the gardens and fields, and 7 on carpentry projects. The crews were showing up at 7, 7:30, and 8 respectively. I had decided earlier in the week that we were going to just send all the carpenters up on the roof until Dave, our roofing foreman volunteer, felt like they had the tear off under control.

About 7:10 we had our roofers largely assembled, oriented, and sent on there way. As we checked in the gardeners and got them dispatched, it was an inspiring to see all those people up on the roof in the distance. 8am rolled around, and Ray, our carpentry lead, showed back up in the checkin area. I was seriously confused, and told Ray I was going to send any remaining carpenters up onto the roof.

"Oh, the roof is already off. It came up quick. Something like 12 minutes."  We were going to do it. We'd get the roof done today.

Ray peeled off a few folks on carpentry work, and I hung out up front until I got the last of the stragglers checked in at 9am. Given that my day was going to continue to get interrupted by organizational tasks, I found the carpenters in the field working on the hoop house. As those projects were probably the ones I could most easily come and go on without disrupting their flow. We replaced the rotting wood braces on one side with metal ones, strapping together metal braces in sections of 3, then putting them up on the hoop house.

At 10:30 we were winding to completion on that project, and started moving tools to where the wood working tasks would take place. As it neared 11 I realized I needed to make the lunch area something we could actually get 35 volunteers in and seated. Susan Grove, PFP Executive Director, helped me with that.

Even though the lunch arrived a little late, everyone seemed to enjoy it. I'm sure most IBMers were fed pizza or Sam's Club sandwiches, but not our crew. We had hummus, pita, greek salad, and sea salt fries from Kavos (a local greek restaurant), and tomales from Mole Mole (a local mexican restaurant). Lunch was the time for Susan to be able to introduce everyone there to what the PFP does, and what it means to create and just and sustainable food system. Eating great food from local restaurants help reinforce that, and help connect us to the food system that we were a part of. For the garden and farm crew, they were having a direct experience in that food system. For those of us on construction, we were doing things that had been on task lists for years, because there aren't a lot of days off when it comes to running a 10 acre farm. We were helping by taking those tasks of that list so the farm team could focus on farming.

Once the volunteers were all back on task, I had about an hour breaking down the lunch area. Organizing a good event is about making everything look invisible, spaces being ready for volunteers when they get there, and being returned to their original form. It makes all the difference. And then, at 2, all my organizational tasks were done, and I could spend the rest of the day getting my hands dirty.

Dave felt like he had plenty of roofers, so I joined Ray, Warren, and Yukiko in building a locking cabinet for storing sprayers and other items in the building that was being re-roofed. Ray brought furniture grade skills to this project, and I got to pick up plenty of tips from him along the way. As the cabinet came together over the next two hours, I could see the excitement in Angela's (head farm intern, and staff lead for the carpentry projects) eyes. She's been with the farm a couple years now, and these had been on her wish list to get the coop organized.

The gardeners got to their logical stopping point around 3:30, and Wendy (co-farm manager) sent them home with words of thanks from the fields. Around 4 our cabinet was done, as were the hoop racks on casters, being built in parallel by other carpentry volunteers. And as we looked up to the roof, they were putting down the final row of shingles before the capping shingles. There were only about 6 people up on the roof now, as you were now at the time when things had to happen in series. I watched in awe, the orchestration that occurred with 4 volunteers on the roof with the capping shingles as they cruised to completion with the last nail leaving the gun at around 4:30.

And we were done. We'd accomplished most of the clean up as the projects were closing up, extra scraps stored in the coop, tools sorted and back to volunteers. The last of the roofers cleaned up their tools and ladders and I headed up to the PFP office to bask in the day, and check in with the staff up there about how it went for them. Leaving the farm at 5:30 I was pumped (I still am). I'd been there for 11 hours, but didn't feel tired at all. I managed not to really get sun burned, and the soreness I'd feel the next day would feel really good. It was a good day. I feel a little sorry for the folks that didn't participate in service projects the day before the centennial. Today is going to bring a town hall, and an on site BBQ in Poughkeepsie. But for speeches people may not attend, and a free lunch, it's not much to walk away with. The experience we all had yesterday, showing what amazing people work at the company, that for me is our real centennial celebration. Our celebration of service.

Related: IBM's Day of Service at the Poughkeepsie Farm Project · Poughkeepsie Farm Project · Day of Service Photos

What is computer programming?

As this blog post on needing a programming language for regular folks is making the rounds, I realized that most people don't really understand what computer programming is. Computer programming is about creating clear instructions. You would think that with 50,000 years of communication under our belts, we'd be pretty good at that. But, it turns out we aren't.

Think about the last time you tried to explain something to someone, like a cooking technique. You probably demonstrated it to the person, because as humans we learn very well by example. And we should, we have an entire class of brain cells dedicated to that. Computers don't learn by example.

You may also have tried to teach them by analogy, by explaining that this is like something else they've done before. Computers don't learn by analogy.

The thing you probably did not do is write down detailed step by step instructions and leave them to their own devices. And even if you did, that's still not quite computer programming, because computers don't have judgement. You can follow a simple recipe because there are many things that are understood, like cut out the bad parts of the tomato, or don't burn yourself when taking the dish out of the oven.

A computer is not a mind, even though we can make them intelligence of a sort. It takes very careful forethought to make a computer do something specific. Over time, like with any skill, it becomes second nature. But to people from the outside, it's not. It seems like magic and mysticism.

Plenty of people think they want programming to be in English, and I can assure you that you don't. We already have it, it's called the Legal Code. If you've ever glazed over 30 words in to a legal agreement it's because you ran head long into the challenge that English, like all natural languages, was never meant to stand on its own. Removing the ambiguities that make English a great spoken language, take a lot of care and craft, like defining the meaning of the word "is", and using terms like heretofore. And, even all of that, still doesn't provide something that really stands on it's own. Legal Code can only be understood in the context of Legal precedence, and anyone that thinks they can find a loop-hole in a license without knowing the case law, doesn't understand how the law works at all. This is why we have very specialized languages in computer programming that are very good at being explicit, and ensuring you don't hand ambiguities to the computer.

Computer programming is a skill, like any advanced skill, that takes a long time to develop. I have friends who have deep and wondrous skills in woodworking, which amaze me. But just like computer programming, their skills were not learned in a few weekends, it was a life long love of a medium that made them the master craftsmen they are today. If you are diving into this space, rejoice, as you'll be able to do amazing things. But just don't throw up your hands early and complain that this is too hard. That "feeling stupid" moment means you a learning, and that your brain is expanding. And, in the 21st century, computer programming is a skill that will take you far. Update (6/14): My friend Nick has a good complementary piece to this over on his blog.

Related: Programming in Arial · Programming is Hard · Maybe it shouldn't be Computer Science