Archive for category entrepreneurs

Build something you care about

Many of you are probably expecting me to say something about my new venture, Piston. You might be expecting some discussion of the Rackspace acquisition of Anso Labs, or why I left Anso. In fact, you might (quite reasonably) be expecting me to talk about why I left NASA.

Too bad.

Have I lost my passion for open source, open data, open science or open government?

Certainly not.

I’m still on the OpenStack Project Oversight Committee, and I plan on kicking ass, now more than ever. At the same time, I have never seen a conflict between a capitalist agenda, and a social agenda – and I’ve now got a great occasion to prove that.

Pompeii Columns

While I was tripping around Italy over new years, I had a chance to tour Pompeii with my children. It’s a great place to pause for a moment and appreciate permanence, and the idea of building something to last.

What are *you* working on? If it was dug out of the ashes 1,000 years from now, would you feel proud of it?

No Comments

Better Integration of Jpype and Log4J

We’ve been using JPype at GEM to integrate some existing legacy Java libraries with the new Python code in OpenQuake. Until today, one of the ugliest parts of this integration has been logging – although we’re using the popular Log4J library to manage log output within the Java code, the Jpype JVM has a separate file descriptor for the console from the Python environment.

To deal with this, I whipped up a quick OutputStream and matching Proxy interface:

package org.gem;
import java.io.IOException;
import java.io.OutputStream;
public class PythonOutputStream extends OutputStream {
private IPythonPipe thispipe;
public void setPythonStdout(IPythonPipe mypipe) {
thispipe = mypipe;
}
@Override
public void write(int arg0) throws IOException {
thispipe.write((char) arg0);
}
package org.gem;
public interface IPythonPipe {
public void write(char output);
}
This interface ends up having the same interface as the python sys.stdout pipe, making the connection between Java and Python as simple as the following:
mystream = jpype.JProxy("org.gem.IPythonPipe", inst=sys.stdout)
errstream = jpype.JProxy("org.gem.IPythonPipe", inst=sys.stderr)
outputstream = jpype.JClass("org.gem.PythonOutputStream")()
err_stream = jpype.JClass("org.gem.PythonOutputStream")()
outputstream.setPythonStdout(mystream)
err_stream.setPythonStdout(errstream)
ps = jpype.JClass("java.io.PrintStream")
jpype.java.lang.System.setOut(ps(outputstream))
jpype.java.lang.System.setErr(ps(err_stream))
Up next time – how we managed using the same JVM in many modules, plus some bonus notes on setting Java system settings in Jpype.

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