mindtangle

coding

Samasource.org -> Google.org

Leaving Samasource.org

The Samasource.org team and I said our goodbyes Wednesday night, after a long evening of well-wishing and reminiscing (and strong drinks). We had a lot to celebrate about. I joined when Samasource was just Leila and two other insanely-devoted people working out of a conference room. Nine short months later, the organization has more potential than at any moment in its history. Every month, Samasource has brought in larger and larger contracts to bring ever-increasing numbers of people out of poverty in South Asia, East Africa, and Haiti. The young organization is proving its model.

The team has grown substantially, and fortunately I leave Samasource in very capable hands. David Yoon assumes technology leadership as the new VP of Engineering, after years of experience building sites like Donorschoose.org. Noah Bradach is the new VP of Sales, closing deals left and right. Chelsea Seale continues to wrangle order out of the chaos of their operations. That’s just a few of our amazing staff. The office is full of dedicated people like Caitlin, Luke, Rebecca, Joon-Mo, Kala, Marcia, Pamela, Tanya, and so many others before them who pour their heart and soul into the organization. And, of course, there’s Leila Janah, who continues to lead with immeasurable grit and intelligence.

The decision to leave Samasource was very difficult. The short of it is that I’ve found an opportunity to work on another problem of enormous scope. If you’re interested in this project, read on.

A prototype of Earth Engine shown almost a year ago at COP15Google Earth Engine

The world is slowly getting serious about putting a dollar value on greenhouse gas emissions reductions.* One of the mechanisms for mitigating climate change that gained substantial traction in Copenhagen last year was REDD (Reducing Emissions from Deforestation and Forest Degradation). REDD is based on a simple fact: the world’s forests represent a massive carbon sink, sequestering huge amounts of CO2 from the atmosphere. How much carbon? It’s estimated that the the amount of forest the world loses every year results in more greenhouse gas emissions than all the world’s cars, trucks, planes, trains, and ships combined. Clearly that the world’s forests represent an enormous value, even if we only consider the value of the carbon they sequester.

The major challenge to the REDD mechanism is verification: How can we know that our actions are actually preserving forest and reducing CO2 emissions? Monumental sums of money are at stake in answering this question properly, as the world must reduce CO2 levels at the lowest possible cost. Unfortunately, there’s a lot of uncertainty about the effectiveness of forest preservation efforts. For example, legislation that protects forests in one region may simply push logging activity somewhere else. What’s needed is a global forest monitoring solution. Until we have this, only token investments will be made in REDD. Today, we see nations pledging a few billion here or there for forest preservation, but the market should theoretically support orders of magnitude more than this.

My new employer, Google (and more specifically, Google.org), is aiming to provide exactly this with Google Earth Engine. The product will serve as a central clearinghouse for all available satellite data and earth surface monitoring algorithms. It will be a place for scientists and policy makers to answer big questions at global scale, and to prove that their methods are best. If our small team succeeds, we will enable these forest preservation markets at a scale we have all only hoped for until now.

I’ve had the opportunity to work with the Earth Engine team half-time for a few months, now, but next week I will transition over completely. I’ll be returning to my roots in frontend engineering. This means designing and building the web applications that people will need to access and understand the vast stores of data that Google Earth Engine will be making public.

Wish me luck!

More great articles about Google Earth Engine:

* How much are our coastal cities worth? Stability for hundreds of millions of climate refugees? The avoidance of massive water shortages and resource wars? Economists, scientiests, and policy makers are having trouble wrestling with a problem at the scale we are currently facing.

One algorithm for analyzing satellite data

One algorithm for analyzing satellite data

4 Comments »

Wrong Forum

postedby ericnguyen on May5th,2010 tagged coding, humor

Some guy made the mistake of writing an email titled “Wanted: Recommendations of best Indian or Phillippines ROR consumer web app developers” to a Rails developer list I’m on.

Best response so far: “I’ve been working with some Na’vi developers. You don’t have to pay cause they don’t understand money, and they really get the whole cloud computing idea.”

A more considered email exchange followed, but this was the best part.

No Comments »

How to use Basecamp for Agile Development

“Agile” software development is something I have used in limited forms for a number years. Agile has always made sense to me: it puts control in the hands of developers, reduces conflicts in an organization, and is eminently practical for small organizations.

Now that I’m at Samasource.org, I’ve had a chance to implement an Agile development process for an organization that really needs it (we’re small, growing fast, and with many competing priorities.)

Below are some brief thoughts on Agile, but the real point of this post is to explain how we’re using Basecamp to conduct an Agile development process. Enjoy!

Basecamp is an awesome project management tool that Samsource uses to implement an Agile development process

Read the rest of this entry »

1 Comment »

Zoomable Panoramas

A few months ago, I helped my friend Erik Walker get his company’s portfolio site up and running: Binzen&Walker Photography. Binzen&Walker create beautiful panoramic photographs that, in contrast to mechanized techniques (e.g. GigaPan) are hand-shot and hand-stitched for artistic effect.

It’s a basic and relatively clean WordPress site, based on an existing theme. Aside from a bunch of CSS changes, my contribution was mashing up a couple WordPress plugins to create a nice interface for exploring examples of their panoramic photographs. Showcasing such huge images online is difficult because of very limited resolution of computer displays. In real life, a print of one of Binzen&Walker’s prints could easily cover twelve feet of a gallery wall. Online, a zooming and panning interface was needed.

To get this working, I did a simple combination of two existing plugins: Flexible Lightbox and YD-Zoomify. I’m calling it Flexible Zoomify. You can see a screenshot below or click on the images in this portfolio gallery to try it out.

binzenwalker image

3 Comments »

Prototype Form Extensions

postedby ericnguyen on September4th,2009 tagged coding

I’ve been puzzled for some time as to why Prototype doesn’t allow us to set and get values from checkboxes and radio buttons. I finally needed this functionality at work and, with none of this obvious bit of functionality in the 1.6.1 release, I wrote my own extensions.

You can find them on GitHub. I added a bit of example code that you can check out here, too.

No Comments »

Processing Sketch: Colorful Boids

Here’s a little sketch I made using Processing. It’s based on a standard flocking program that Benjamin and Mary F. were playing around with; I added a second flock, some randomness in their coloring, and the concept of “weight.” Heavier boids move slower, turn slower, beat their wings slower and are more pudgy in shape. I also gave them all trails, using a simple transparent rectangle placed between frames (a very computationally cheap way to do this.)

Below is a screenshot of the Processing sketch. Click to load the applet in your browser window and see it in motion. That link also has the source code for the sketch.

Picture 1

Note: Apologies for those who got spam in their RSS readers from this entry. After some WordPress upgrades and removal of some suspicious files and users, I’m hoping that I have the spam kicked.

4 Comments »

Wireframe as Marketing

Re: My last post on the benefits of mocking up UIs, here is a great example of a low-fi mockup actually being used as the final marketing for a product:

The major features of Google Reader are covered in about a minute, all with cute pasted paper cutouts and without once saying “RSS.” Obviously, this is a a polished video, but you could imagine that some version of these paper cutouts could have been used very early on to validate the concept of Google Reader with test users.

No Comments »

Web 2.0 Notes: Rapid Prototyping Using Flash

Workshop Title
Fake It Till You Make It: Rapid Prototyping Using Flash

Presenter
Philip Fierlinger (Xero)

This was one of the most fun presentations of the conference, mostly it addressed a task that I want to like, but find to be a pain: mocking up interfaces. Usually I just do this on paper, and don’t iterate much. Fierlinger showed off how he could effortlessly and visually throw together UIs in Flash. He’d do dozens of iterations a day, sometimes in the middle of user testing. It struck me as incredibly agile.

Interestingly, Fierlinger was barely using Flash at all: He was basically using it as a drawing tool with a timeline. The sweet spot he settled on between interaction and static mockups are what he calls “screenflows.” These are scripted interactions where the viewer is guided through the interaction. These are useful for testing the expectations of users, as requirements documentation for engineering, and as the first pass of a testing plan.

Click through to see the full notes on how he came to this process and all the places in the development cycles that it pays dividends.

Read the rest of this entry »

No Comments »

Web 2.0 Notes: Tim O’Reilly

This post isn’t really a set of notes. I was working during the keynotes with only one ear open to the talks. My ears perked up now and again during Tim O’Reilly’s talks. Here are little decontextualized nuggets that caught my attention:

  • Tim uses the term “information shadows,” to refer to the unique identifiers and metadata around things in the world. The virtual side of Bruce Sterling’s “splimes.”
  • Owning a namespace (@nagutron) is super powerful. Interesting that this convention actually came from the users. Contrast to the long facebook profile URL with id string; people don’t really feel like they own those.
  • Clever bit of data harvesting: Power spikes when appliances start up have signatures that can actually identify make and model (AMEE, power monitoring startup in UK, discovered this.)
  • “Antigenic cartography” is the term for 2d and 3d visualizations of genetic traits of related organisms. Used for flu virus mutation drift tracking.
  • We are beginning to develop a “planetary skin” of sensor data. Tracking every bit of the planet’s health and human behavior. It’s still low-res, but just the beginning. Web 2.0 + World = “Web Squared”
  • The Power of Less – Moore’s Law applied to world problems. Change the mindset to exponentially increasing efficiency.
  • Gov 2.0 Summit

No Comments »

Web 2.0 Notes: Even Faster Websites

Workshop Title
Even Faster Websites

Presenter
Steve Souders (Google)

This was the third year in a row that Souders has presented his findings at Web 2.0. Here are my posts from year 1 and year 2. As usual, Souders has been hard at work running experiments on the performance of every part of the web browser, from initiating HTTP requests to rendering CSS. His central nugget of wisdom is that the vast majority of a user’s perceived wait time can be attributed to the frontend. This was an unconventional idea when he debuted it several years ago, but it’s common knowledge now and has only become more true over time. We frontend engineers are writing richer and richer browser-side code, nowadays.

However, my impression of this particular talk was that much of today’s research into frontend optimization is achieving diminishing returns. Instructables benefited greatly from Souders’ first talk, back in 2007, but the CSS optimizations introduced in this talk would shave very little off a user’s wait time. I was reminded, however, that I should install YSlow, which is an open-source plugin that will automatically identify performance bottlenecks on Instructables. I’m pretty sure there is plenty low-hanging fruit that we haven’t harvested, performance-wise.

Practicality aside, Souder’s talk was very interesting. The fact that CSS rules are parsed right-to-left was an eye-opener. I’m not going to go back and optimize all Instructables’ CSS, but this one nugget will allow me to avoid writing any egregiously slow selectors in the future.

You can find full notes and a link to the slides after the jump.

Read the rest of this entry »

No Comments »