Come to Switzerland and Save the World (with Software)

Zurich on the River

The view from the office

EDIT: Feel free to contact me by twitter DM as well: http://twitter.com/jmckenty

As most of you have by now figured out from my FourSquare stream, I’ve been spending a fair bit of time in Europe. In fact, I’ve taken a sabbatical from NASA to work on the Global Earthquake Model. This international project is headquartered in Pavia, Italy, with the bulk of the development team in Zurich, Switzerland, at the ETH university.

I’m helping to reboot the project. In fact, we’re changing everything – language (from exclusively Java to mostly Python), methodology (from a traditional waterfall approach to agile using Scrum), and development approach (continuous integration and test-driven development FTW).

Everyone, by now, has heard about the Haiti earthquake. You know that more than 250,000 people (roughly 40% of the affected population) died. What you might not have realized, is that similar sized earthquakse in California routinely kill only dozens. The difference?

Without earthquake models, you can’t assess hazard.

Without hazard assessment, you can’t make building codes that are appropriate for the seismic risk.

Without building codes (and the right kind of building reinforcement, even for traditional construction techniques), most of a large city turns into rubble.

Without software, people die.

Here’s a quote from our job posting (full link at http://www.globalquakemodel.org/system/files/SED_GEM-Software_Engineer.pdf):

GEM, the Global Earthquake Model, is a non-profit, international effort to tackle the understanding of earthquake risk worldwide. In parallel with our scientific and diplomatic efforts, we are developing a unique, open-source software system that computes all aspects of earthquake hazard, risk, and impact. This is high-performance, scientific computing at its finest. And you could be a part of it.

We’re looking for only the best and brightest, regardless of where you currently are in the world, to come to Zurich and join a small, tight-knit team of engineers, scientists, and software developers. If you’ve got the aptitude and attitude, we’ll train you in the rest.

That’s right – we’re writing open-source software to save lives. Who’s with me?

No Comments

OpenStack – Where we’re going, and why

I didn’t sleep much on Sunday night. By the time I headed for bed, the news was out, and the twittubes were flooded.

Desperate to get sleep, but I’m terrified to wake up to 1,000 new bug reports. It’s like streaking the quad, but with code. #openstack @jmckenty

There was a video up from an interview I had given the week before.

There were over 100 developers camped out in the #openstack channel, asking probing questions. Most of them were politely worded versions of: “What the hell were you thinking?”

Patches started coming in. Then a New York Times blog post. More bug reports. More patches. More press.

Original Nebula Logo

Original Nebula Logo

I’d love to say that we shared a moment of solidarity as a team, toasted ourselves, and wrote more code. But truthfully, half of the NASA Nebula team were on a red-eye flight to DC, to run another set of training workshops for new Nebula users. Some were holed up with the legal teams, trying to figure out how to take the Nova example (brute-force software release) and use it to reshape NASA’s open source software release policy. Vish was bravely manning IRC, answering the flood of questions.

And in a classic case of nostalgia, I started thinking back over the crazy history of this “thing” that has had more names, than developers.

The code name of the “compute” component in Open Stack is called “Nova”. While, if you had the appropriate access to NASA internal systems, you could find early references to the “Novae” task in Nebula development (which was originally the PXE and Puppet-based configuration management system we used for deploying Nebula to physical hardware), the earliest public record of nova is this:

NASA nebula bonding lunch - We Are the Nova

“NASA Nebula Bonding Lunch – We Are the Nova”

Which is possibly one of the worst photos of me on the internet. C’est la via.

While in Austin, Texas last week, at the first Open Stack Developer’s Summit, I had an opportunity to give a brief presentation about NASA Nebula – why we were in the Cloud business, some of the history that led us to this point, etc. While I never prepare slide decks to be standalone (I prefer to use them as audio-visual aids to the substance of the event, which is obviously paying attention to me), you can have a look at the whole thing:

It was based, loosely, on an internal memo I sent a while back to some members of the Nebula team (excerpts below):

There are, literally, a ton of people on the Nebula team now. Which is awesome. But it also mean there are dozens of you that I’ve never had a chance to interact with personally, who may have missed a lot of our early (ancient) discussions about WHY we’re all working so damn hard.
It’s not about the money.
Which is to say, Nebula is not, primarily, about cost recovery. It’s not (mostly) about saving money, for missions, projects, or the Agency at large.
And on the flip side, we’re not DOING this just because it’s our job. Nebula is not the place for “work to rule” – if you don’t wake up every morning with a burning desire to get to your keyboard and roll the Nebula ball forward, then there are honestly better places and projects for you to be working on.
It’s not about being on the “cutting edge“.
We get a ton of press on Nebula, most of it excited over how innovative NASAhas become, how we’re embracing new technologies, how we’re leading the government forward. And all of that is great – but that’s not why we’re doing it. This is not innovation, for the sake of innovation.
It’s about the Science.
I haven’t really been at NASA long enough to have a good grasp of its long and illustrious history. So in the same fashion that I get away with practicing Computer Science without having formally studied it, I have to work from first principles. In this case, the first principles are a happy little document titled, the “Space Act” (Specifically the Declaration of Policy and Purpose, section 102):
Sec. 102.  (a) The Congress hereby declares that it is the policy of the United States that activities in space should be devoted to peaceful purposes for the benefit of all mankind.
(7) Cooperation by the United States with other nations and groups of nations in work done pursuant to this Act and in the peaceful application of the results thereof;
(8) The most effective utilization of the scientific and engineering resources of the United States, with close cooperation among all interested agencies of the United States in order to avoid unnecessary duplication of effort, facilities, and equipment;
So I’d just like to point out that the mission statement of the Agency, includes specifically section 102(d)(8) – is to cooperate with other agencies in order to make effective utilization of scientific and engineering resources. AKA… Cloud Computing.
Open Source, by which I mean participation in an open source process, as well as the release of source code under an open license, is an activity NASA can partake of under section 102(a). It is way more meaningful than most of the rest of what we’re doing.
Some of you may have noticed that I’m no longer involved with NASA Nebula in a full-time capacity. They don’t need me anymore. But I’ve still got a two-year roadmap of challenges that I’d love to see Open Stack address, and I’ll be posting that to Launchpad and the Open Stack wiki just as soon as I can.
We ain’t done yet.

No Comments

Launched NOVA – Apache-Licensed Cloud Computing, in Python

It’s live, it’s buggy, it’s beta.
Check it out:

http://novacc.org

From the website:

Nova is a cloud computing fabric controller (the main part of an IaaS system) built to match the popular AWS EC2 and S3 APIs. It is written in Python, using the Tornadoand Twisted frameworks, and relies on the standard AMQP messaging protocol, and the Redis distributed KVS.

Nova is intended to be easy to extend, and adapt.

1 Comment

A WebHook named ‘Jeff’

 

Jeff as a webhook

Jeff as a webhook

PROBLEM: Help people understand how cool webhooks are.
PROBLEM: Find out when there’s new content on a site.

SOLUTION: Put a webhook into the site’s search indexing tool – SOLR.
SOLUTION: Custom SOLR Token Filter.

The code, while JAVA and therefore evil, is trivial.

The code, while JAVA and therefore evil, is trivial.

 

 

 

WHY?

Every cool web app (sooner or later) has some cool content in it. So you add a search engine. When your users want to build mashups with that content, you add webhooks to that engine. And you’re done.

Webhooks hitting a remote server, shown in Apache log.
Starting point: http://e-mats.org/2008/06/writing-a-solr-analysis-filter-plugin/

GOTCHAS:
JAVA – Evil and Stupid
Java classpath (on Mac) – also Evil and Stupid
Java permissions (to connect to remote servers) – http://forums.sun.com/thread.jspa?threadID=5309619

WHERE IS THIS GOING TO LIVE?

 

Webhooks coming to NASA soon...

Webhooks coming to NASA soon...

 

FINAL TAKEAWAY: Fitz was right – everything should be HTTP.

,

4 Comments

“Rabbits FTW” – The Mark Cuban Stimulus Package Needs Meat

51jzv-1ou-l_sl160_
Most of my (non-work-related) thinking these days circles around how we, as a species, a culture, or a geographical collection of human flesh, can make a smooth recovery from our petroleum addiction. I read a fair bit on the subject, from the “Post-Petroleum Survival Guide and Cookbook”, to my current muse, “Peak Everything”.

As is often the case with the large, complex issues facing humanity, most of our effort is (dare I say it?) wasted on trying to fix the wrong things. Like changing our lightbulbs. Even changing our cars is, most of the time, the wrong thing. Why? Read the rest of this entry »

, , , , , , , , , ,

6 Comments

Cool things I’ve discovered recently

I’ve never done a round-up post before, so now must be a good time. Here are a few cool things I’ve found recently:

How to use VPN to solve VoIP problems

As some of you may be aware, when I’m not busy with my day job at NASA, I run a small VoIP company. The why and when of this company is a story for another day, with intrigue, betrayal, ex-CIA agents, con artists, lawsuits and utter, utter sleep deprivation. But, as I said, that will have to wait.

It’s a simple enough business – multi-line phone service for homes and offices, complete with distinctive ring, cool automated phone trees, time-of-day dialing, etc. And it has always had one nasty technology problem in it – NAT.

Anyone who has ever dealt with VoIP has run into all the various ways that NAT can go wrong. And I thought I had worked out ways to deal with most of them – at least, until I started working with some new hardware.

Let’s skip the gory details, and summarize by saying that I’ve been forced to deal with this problem in a decisive, and final, fashion. Read the rest of this entry »

1 Comment

How to Make $1 on The Internet

Growing up in the Gen-X / Gen-Y, post-TV world of my youth has obvious advantages. But it lacks some of the nuance of yesteryear – like a framed copy of your first dollar.

Making money on the internet, at least at a small scale, is exactly the opposite of making money in the real world. Trying something is so cheap, you should just keep trying things until something works. Unfortunately, just because it works a little bit – doesn’t mean it’ll work much more than that.

I started writing software when I was seven years old. Most of the years I clung to the idea that, someday, I would write a piece of software that people would pay money to OWN. When I began working, first as a coder and then later as a software architect, I still held out dreams of building the next Google – a gigantic, brilliant piece of engineering that would make me the richest man in the world.

And then I discovered Toyota.

This was also just about the time I was going broke, chasing one of these big, complicated visions. Read the rest of this entry »

, , ,

6 Comments

Why Microsoft is Evil (and Google is Not)

Last time I checked, Google had annual revenues of about $20B.
Microsoft has annual revenues of about $60B.

Google knows everything about me – and they’ve shown a few times that they’re not afraid to use it. (Ask Chris Campbell about the time Google emailed us when we were working on Netscape 8.)

Microsoft knows very little about me.

As a developer of software, I respect and emulate their business model – they write software, and then they sell it to people. It’s old-fashioned, but it works. And it’s straightforward.

And Google? Google, who makes a living by pimping out a spot in my attention span; Google, who has the moral backbone of a Tadpole – is considered to be the good guy.

Why? Read the rest of this entry »

, , , , , ,

4 Comments

When to Pause, When to Push

It’s now 11pm on Wednesday night. Tomorrow morning, at 10am, I will be presenting my Project Plan to execute $6M worth of custom software development over the next 36 months.

That Project Plan doesn’t really exist yet.

It’s been a busy week. LAST night, at 11pm (roughly), I filed a Notice Of Intent, to bid on a DIFFERENT multi-million dollar, multi-year contract. Oh, yesterday was also my oldest daughter’s 6-year-old birthday.

There’s a point, in here, somewhere. We’ll wind our way towards it.

Technically, these days I’m an “Information Worker”. What I think that means, is that I get paid for thinking about things. At least, that’s how I choose to interpret it. My clients probably prefer to think I get paid for the OUTPUT of my thinking – but I’m all too keenly aware of how directly the quality of my output, is related to the quality of my thinking. Read the rest of this entry »

, , , , , , , , , ,

4 Comments

<N> Reasons Why Open Standards, more than Open Source, Really Matter

There have been some great articles on the dangers of, either no standards, or closed standards. However, no one has really talked about how almost EVERYTHING we have accomplished as a race of people, has been to the credit of open standards of information exchange and interface. So let’s take a walk back through the ages, and look at the wonderful things that open standards have brought us.

1. Numbers

Regardless of the language they use, or even the character set they use for writing it, most countries on the planet now use the “decimal positional notation” for all numbers and mathematics. This public, open standard for notation has allowed the development of relatively friction-free international commerce, and was the successful basis for… Read the rest of this entry »

, , , , , , ,

2 Comments

Close
E-mail It