Digifesto

Job opening at OpenGeo for GeoNode

It looks like OpenGeo is going to be getting a lot of business in the coming year for GeoNode–so much that we can’t handle it with the size of our current team.

So we’re hiring a new Software Engineer.

What we’re looking for is somebody who has both the engineering chops to handle our complex stack (which includes Django, GeoServer, GeoNetwork, and GeoExt) and the inclination and aptitude to provide on-site consulting, training, and support to clients. Because of our partnership with the World Bank, many of these deployments will be around the world. So this job will likely offer the opportunity to go interesting places and meet interesting people, on top of coding for a very well poised open source, open data project.

OpenGeo, I have to say, is a kickass place to work. I’ve been working for it and our parent organization OpenPlans for almost three years now, and I am challenged and inspired daily by the intelligence of the people around me and the dynamism of the organization. It’s also committed to openness with a sincerity that is extraordinarily compelling to the right kind of person.

This blog post, for example, divulges crucial information about our business strategy in an unprofessional medium. “What is going on?” you might ask. “Why is he doing this? Is it a corporate ploy?” No. Our business strategy isn’t a secret. On the contrary, we want as many people to know about it as possible so that more people will get involved in our open source projects and communities. And though our work and life itself demands humility, on rare occasions (just as when we are trying to attract applications from Software Engineers) we get to brag about how great we are.

Something else I like about us? We are scrappy. OpenPlans has subsisted primarily on donations from Mark Gorton for most of its existence. We are in a turbulent time, because the LimeWire lawsuits mean that we can no longer depend on Mark. But seriously in the nick of time, we warming up our business development machines.

The leads are coming in, and we are growing (did I mention that we are hiring?). It feels like the helicopter is lifting off just as the ground beneath us is melting into hot lava. And yet, we aren’t afraid. Yesterday I saw Vanessa Hamer give a budget report for OpenPlans. The gist of it was: even assuming that lots of things go wrong with our funding pipeline, we are well prepared to thrive in the future. I have never had more confidence in this organization than I do now.

This is a great thing. It is great because OpenPlans and OpenGeo are working on great things. OpenGeo in particular is in the early stages of transforming the geospatial software industry from one dominated by proprietary desktop software to free web software. It is providing tools that will help institutions transform their closed and cobwebby data silos to nodes in a vibrant, open geospatial web. For great justice.

“Are you for real?” Yes, I’m for real. OpenGeo is that good. I know we’re that good because we have attracted successful geospatial software industry entrepreneurs (1) (2) (3) as our upper level management in the past year. These folks aren’t just all geniuses. They are geniuses with domain expertise who are passionately dedicated to transforming an industry with an impact on millions of people.

We also have some great connections going on. I believe I’ve mentioned that we’ve been working with the World Bank’s CAPRA initiative on this GeoNode project (the one we are hiring for). The people behind CAPRA are rockstars within a superorganization with a mission to save Central America from natural disasters.

Oh, and we’re going to be working with the Global Earthquake Model soon. Those guys are a crack team of brilliant scientists with a mandate to unite all earthquake modeling under one banner using open source software. If it works, it will have an impact on everyone who is in an area that suffers earthquake risk, because earthquake modeling is used by everyone from humanitarian NGO’s who do disaster relief to insurance companies who wind up taking on a lot of the corporate/economic risk of natural disasters. It’s a mandate that would be ludicrously ambitious if it weren’t happening right now with web technology that has just recently been perfected and available.

It is so fucking cool I can hardly contain myself. I have to suppress these thoughts normally so I don’t get so distracted by how cool it is that I don’t get any work done. It is so cool that it’s hard to talk about publicly because it all just seems so unbelievable.

That is what we are hiring for right now.

Personality

Maybe what unites the open-* movement is a kind of personality.

Discomfort with authority, desire for autonomy, but a yearning for community nonetheless.

The movement aspires to a society that supports itself and acts collectively without preventing any of its constituents from being their authentic selves.

Hence all the importance of aggregating patterns from individuals and then using those patterns to inform (but not coerce) other individuals. Hence the active politics of forking and merging. Hence the flattened hierarchies. And so on.

Dewey’s Social Ethics

From Elizabeth Andersons’ excellent Stanford Encyclopedia of Philosophy article on (John) Dewey’s Moral Philosophy. Emphasis mine:

As a progressive liberal, Dewey advocated numerous social reforms such as promoting the education, employment, and enfranchisement of women, social insurance, the progressive income tax, and laws protecting the rights of workers to organize labor unions. However, he stressed the importance of improving methods of moral inquiry over advocating particular moral conclusions, given that the latter are always subject to revision in light of new evidence.

Thus, the main focus of Dewey’s social ethics concerns the institutional arrangements that influence the capacity of people to conduct moral inquiry intelligently. Two social domains are critical for promoting this capacity: schools, and civil society. Both needed to be reconstructed so as to promote experimental intelligence and wider sympathies. Dewey wrote numerous works on education, and established the famous Laboratory School at the University of Chicago to implement and test his educational theories. He was also a leading advocate of the comprehensive high school, as opposed to separate vocational and college prepatory schools. This was to promote the social integration of different economic classes, a prerequisite to enlarging their mutual understanding and sympathies. Civil society, too, needed to be reconstructed along more democratic lines. This involved not just expanding the franchise, but improving the means of communication among citizens and between citizens and experts, so that public opinion could be better informed by the experiences and problems of citizens from different walks of life, and by scientific discoveries (PP). Dewey regarded democracy as the social embodiment of experimental intelligence informed by sympathy and respect for the other members of society (DE 3, 89–94). Unlike dictatorial and oligarchic societies, democratic ones institutionalize feedback mechanisms (free speech) for informing officeholders of the consequences for all of the policies they adopt, and for sanctioning them (periodic elections) if they do not respond accordingly.

Dewey’s moral epistemology thus leads naturally to his political philosophy. The reconstruction of moral theory is accomplished by replacing fixed moral rules and ends with an experimental method that treats norms for valuing as hypotheses to be tested in practice, in light of their widest consequences for everyone. To implement this method requires institutions that facilitate three things: (1) habits of critical, experimental inquiry; (2) widespread communication of the consequences of instituting norms, and (3) extensive sympathy, so that the consequences of norms for everyone are treated seriously in appraising them and imagining and adopting alternatives. The main institutions needed to facilitate these things are progressive schools and a democratic civil society. Experimentalism in ethics leads to a democratic political philosophy.

My suspicion is that John Dewey’s ethics would provide a substantive philosophical foundation for the latest swathe of open government and “Gov 2.0” initiatives, if anyone bothered looking for one.

Economics of Open Source

Hat tip to Paul Ramsey for the link to this blog post by Stephen O’Grady, “The Economics of Open Source: Why the Billion Dollar Barrier is Irrelevant.”

O’Grady argues that despite protests from those who haven’t seen the billion-dollar-value FOSS company of their dreams, open source business is doing great.

The question, remember, isn’t whether businesses and developers are consuming and producing open source software. They are, in droves. Nor are there questions as to whether or not the software can be sold successfully on a commercial basis: it is, every day. The only remaining questions really regarding the economics of open source are whether they can duplicate the margins of their proprietary predecessors, and frankly I think most customers hope they don’t.

This brings up an understated point about the economics of open source: that the proprietary software production model is a monopolistic model and hence bad for technology consumers. The high margins of proprietary software companies are due in part to monopolistic rents. The non-competitiveness of the proprietary software market leads to bloated, inefficiently created, and poorly supported software.

Another, related economic issue is the challenge of open source business, which O’Grady sums up like so:

Part of the challenge for open source software vendors, of course, is the fundamental difference between open source software and proprietary alternatives, not to mention other tangible goods: the primary asset to be sold is (generally) freely available.

I think this is a poor characterization of the problem. The problem is not that the asset to be sold is freely available. That would assume that software is the asset to be sold. But if an asset is “anything … capable of being owned or controlled to produce value and that is held to have positive economic value,” then free software can’t be the asset.

So what has to be primary asset for open source software vendors? The time of software experts who can do development or support.

At this point the analysis gets confused, because there are two issues at stake. Would-be open source billionaire entrepreneurs become disappointed that consulting and support around open source doesn’t scale as well as their proprietary software forebears. But this reaction is accentuated by another, independent problem: the free-rider problem around developer and support services.

Open source software vendors are in the business of shedding off public goods in the form of (improvements to) freely available software. This is why make sense for an open source vendor like OpenGeo to consider itself a social enterprise: it “does good” merely by operating.

But it also means that these services are going to be under-valued in the market because it is so difficult to capture the consumer demand for a software improvement as revenue.

How much does each user of a free software project value this new feature? Ok, sum that. That’s how much the open source vendor should be able to raise, in principle, for developing that feature–if there is only one potential supplier.

Proprietary software companies are able to capture this demand for the software improvements through the mechanism of selling the software itself. Free software developers won’t be able to raise as much–because they compete with each other as suppliers (which is good for society!)–but there is still a much bigger market there than is currently tapped into.

The kind of advance that will fuel open source business moving forward is mechanisms that allow for the capturing of this latent consumer demand.

The most literal case of this “crowdsourced microfunding,” a model that is greeted with mockery whenever I talk about it to people with industry experience, but which has recently had a preliminary success story: Diaspora’s skyrocketing funding via Kickstarter. Kickstarter, as opposed to other collaborative funding sites that have come and gone like Fundable.org, looks like it has some additional incentive structures built in that eliminate some of the Nash equilibria in the collaborative funding game in which not enough actors participate. (New York Times coverage and mass resentment towards Big Brother don’t hurt either.)

But there are other models for solving this problem as well. For GeoNode, the World Bank’s CAPRA initiative is seeking out partners to build a global community of funders to be in partnership with the developer community.

If this model works and is replicable, the potential impact on the software business world could be immense. Strategic cooperation between major funders would allow them to efficiently channel funding towards development while regulating against free-riders among themselves. The result would be a highly efficient market for software development–more efficient than either the proprietary software market or the free-rider-ridden free software market.

These speculations are consistent with O’Grady’s analysis: none of this leads to a billion-dollar corporation. But it does lead to a thriving economy of smaller scale consultancies, valued fairly according to their expertise, generating a torrent of free software available for all. Isn’t that the best outcome of all?

Going Global

I am attending the Global Earthquake Model annual outreach meeting this week. The ambition of the project–a global computational engine for earthquake hazard, risk, and economic impact–is awe-inspiring. The people attempting it are extraordinarily daring.

One anecdote from this morning struck me as a potent illustration of why and how GEM will is so important. Ross Stein admitted candidly that currently, seismology is “the best racket in town,” because on a regional level there is no way to test their scientific predictions. A typical result might ascribe a 30% chance of an earthquake striking an area within a fifty year period. By the time the data has been collected, the scientist has retired.

Not so, argues Stein, with a global earthquake model. A model associating strain on fault lines (for example) with seismic hazards that has global scope will be tested whenever and wherever an earthquake strikes. So a global model opens up the scientific inquiry on top of allowing for the dissemination of results.

This is just one effect of one facet of GEM’s anticipated work. I’m already impressed.

The Global South does IT better

A few weeks ago I visited the offices of Peru’s Comité Coordinador de la Infraestructura de Datos Espaciales del Perú, or IDEP, who are responsible for building that nation’s spatial data infrastructure system.

They have built a very impressive system with comparatively few resources using a largely open source stack of software–MapServer, MapBender, Mapfish, GeoNetwork, Joomla–and are actively looking for ways to innovate further.

In a meeting there, Max Taico, from the National Office of Electronic Government, explained why they had turned to open source software. It wasn’t just the fact that it was free–ESRI gives them free licenses of ArcGIS Server.

Open source software works for them because their government procurement practices are slow and hard to work with. But with free software (‘software libre’, as they call it), they are able to just install things on a server and get it to work. Indeed, while we were there they logged us onto the server and invited us to look around at the system and install new software if we thought it would be helpful.

Compared to the heavy bureaucracies we are used to working with, it would be an understatement to call this “refreshing.” Governments (including international governments) based in the U.S. maintain strict control over their software inventory and often stipulate what software is or is not allowed on their computers.

This is a crippling policy in a world full of great free software. It’s appalling to guess how much time (and, hence, money) is wasted by, say, the World Bank’s commitment to using outdated browser and office software.

Meanwhile, in Lima, a project with almost no permanent staff working on it was able to develop a system that is truly cutting edge. Their government IT culture there works contiguously with the global hacker culture, which is interested in getting things done with as few obstacles as possible.

An inspiring thought is that because this way of doing things is so much more effective, the Global North is learning that it should change its ways. In her keynote address to this week’s Understanding Risk conference, the World Bank’s CIO Shelley Leibowitz announced to an applauding audience that they were going to drop their mandated use of the universally loathed Lotus Notes.

Times are changing. It’s nice to know that part of that change is a long-due change in leadership.

Sneaky Google Search UI Design

I am very impressed by Google’s web design team right now.

Maybe you’ve noted this; maybe you haven’t. Go to Google’s home page right now. Enter the URL into your browser, then hit “Enter.” Then do nothing.

What do you see? Nothing but Google Search, pure and simple.

It’s not until you trigger some browser event by moving your mouse over the web page document or causing the search field to lose focus that the rest of the user interface fades in.

Smooth.

It’s hard to do a before/after in a screenshot because (I didn’t know this…) Print Screen triggers the necessary browser event. But in fact that makes it easier to catch it mid-fade. Note the weak blues:

Google's links fading in

This is brilliant. It shows, first off, that the designers were very familiar with what is possible in the browser. Rather than seeing a page as a static document, it is a temporal continuum. Though this isn’t news to a lot of web designers, this sort of design ingenuity would get lost in a lot of organizational web design workflows because this kind of detail can’t get communicated to developers easily by wireframes or mockups.

The design shows a sensitivity to user psychology that is almost touching. The user who goes to the Google home page to search for something will never see the links. Load page. Text field in focus. Type. Enter. Done. Most web sites would consider this kind of streamlined workflow the epitome of design. But this design doesn’t just provide the attentive user an unobstructed path, it shields their unconscious from distraction.

Bravo.

And yet I find something insidious about it. It make me feel like Google is hiding something. People used to say things like, “Google’s search interface is so clean and simple! Google is just about providing really smart web search. Google is just smart guys hiding unobtrusively behind text field that can’t possible take over your world.” It’s a precious public image.

Their home page’s increasing clutter belies that image with extra tabs, advanced search options, links to Business Solutions, and more. And now that search results have a left sidebar with such simply utilitarian features as the Wonder Wheel, even our lizard-evolved brain stems may start to suspect that Google has outgrown its original simplicity. It has become impossible to ignore the existence of the corporate behemoth behind the services we’ve entangled ourselves in.

The fluidly fading design tilts toward innocent bliss. Awareness of Google-the-corporation is now strictly opt-in. I can’t tell if that is considerate or creepy.

Data Uploading on GeoNode

We’ve made great strides in GeoNode development in the past few weeks, due in part to the addition of Luke Tucker, on loan from Civic Works, to the team.

The main improvements lately have been ones slated for the 0.1.2 milestone, which focuses on basic data management through the web application interface.

The most important improvement is the data upload functionality. We provide a web interface for SHP and TIFF upload and then push the file to GeoServer using its REST configuration API and gsconfig.py. The layer is then exposed via OCG services like any normal GeoServer layer, and so is available for use by OpenLayers and GeoExt applications, for example.

Hat tip to GeoCommons for inspiring the UI for uploading the multiple files needed for Shapefile data.

You can get a taste of some of the other improvements by checking out the Data and Map information pages. In GeoNode, both data sets and maps (compilations of data, with a layer order and styles specified) are first-class content. We want to let users transition seamlessly between working with data and working with maps in order to smooth out the web GIS experience.

The “information pages” (I think we are looking for a better name for these, internally) serve as dashboards to a particular data set or map, and expose the relationships internal to the content. By viewing which maps a data set is a part of, the user can find out about who trusts the data, who finds it authoritative. This is just the first of many ways we plan to let social use of data provide relevant metadata.

Digifesto.com

I finally got the domain name on this sucker mapped properly.

But I’ve never been able to figure out the appropriate top level domain for this blog.

COM — It’s not really commercial.
ORG — I’m not an organization
NET — My favorite, but actually wildly inappropriate

INFO, ME, NAME are all bogus. What’s the solution?

What’s this GeoNode thing?

I’m going to start blogging here about the GeoNode.

If there is anything I’ve learned at The Open Planning Project and OpenGeo, it’s that it is critical for the success of open source projects that they be “truly open”–not just with an open source license “slapped on,” but with a transparency built into its development and management process.

So I am chagrined that the GeoNode, the project I’m currently most involved with, has been developed in relative obscurity. At OpenGeo, we’ve been treating it like an internal project, and though its task tracker is open, documentation is sparse.

The reason for this is simple: we have been too busy building it to properly groom it. But hopefully that will change soon.

So what is the GeoNode? Here’s the backstory, as articulated by Eddie Pickle:

The GeoNode project is an open source initiative backed by the World Bank, OpenGeo, and others with pilot programs in El Salvador and Guatemala. It aims to give a modern spin to the idea of the spatial data infrastructure with an eye to the use and reuse of data, encouraging collaboration, and promoting open data exchange as a default. Initially, the development of the GeoNode has focused on serving and visualizing the data created by the Central America Probabilistic Risk Assessment (CAPRA) to assess and mitigate the risk due to adverse Natural Disasters.

At its core, the GeoNode is based on open source components GeoServer, GeoNetwork, Django, and GeoExt that provide a platform for sophisticated web browser spatial visualization and analysis. Atop this stack, the project has built a map composer and viewer, tools for analysis, and reporting tools. The GeoNode also supports facilities for styling data as well as collaborative features like ratings, comments, and tagging for data, maps, and styles. The GeoNode is built on four key tenets: Collaboration, Distribution, Cartography and Data collection.

This is the GeoNode vision–a vision which is current under (rapid!) development. But at the time of this writing, the use of the present tense in the paragraphs above is sometimes ambitious. You can check out the demo that we update weekly from GeoNode trunk here.

In its current state, it requires some explanation. What you’re seeing is a Django site that is configured to work against a GeoServer instance that contains the spatial data hosted by the GeoNode. The map on the front page is a GeoExt map embedded as a widget. This Map-As-Embeddable-Widget is a feature of the GeoNode’s Map Composer, which is closely related to GeoExplorer, OpenGeo’s main GeoExt-based web GIS client.

The site’s theming is, as requested by our partner and client, made to look like the World Bank’s CAPRA website. Rolando Penate has been working ideas for generic GeoNode themes that we hope to implement soon. His design wireframes show off some of the potential of these themes as well as the features that we are scheduled to implement in the coming year: user registration, commenting and rating, a groups.

The purpose of all these “Web 2.0” features (cringe!) is to provide a layer of social metadata over the geospatial data and ISO metadata that we will be supporting with an integrated GeoNetwork instance. If the internet has proved anything, it’s that the best catalogs are those created dynamically from real usage. So our plan is to integrate cutting-edge web GIS tools with the social features of the site so that as users participate in the GeoNode environment, we collect data about their activity and use it to refine search results. We joke about whether the GeoNode aims to be the MediaWiki/Twitter of maps, or the Facebook/YouTube of maps, or the Yelp/Wordpress of maps…but really these features are all so commonplace on the web now that it’s not a matter of imitating the market leaders. It’s a matter of taking solid modern principles of data management and bringing them intelligently to the Spatial Data Infrastructure domain.

We are several months away from these features, however. For now we are focusing on building a solid backbone of tools that will make the GeoNode attractive to users.

If you’ve been following GeoExt development lately, you may have noticed Andreas Hocevar’s contributions of JavaScript client code that works against the Mapfish Printing module. That’s all been core development work funded by our GeoNode partnership.

Another neat budding project worth noting is gsconfig.py, developed primarily by David Winslow. It’s a Python library for interacting with GeoServer’s catalog via its REST API. We are going to be using it to provide through-the-web data upload and metadata management through a Django-powered user interface.

These two open source contributions highlight what’s for me one of the coolest parts of our GeoNode development: that we are dedicated to bringing as much as possible of the work for the GeoNode back into widely recognized open source geospatial projects or splitting parts out into general purpose libraries. This is possible because of the NGO and government community partnership around the GeoNode that is being spearheaded by Stu Gill, of World Bank CAPRA. Stu is a visionary who sees very clearly the decisive role openness will play in the future of SDI, GIS, etc. And he understands that openness will play an important role all the way down to the open source core, and has been reaching out to like minds.

OpenGeo’s GeoNode team has been hard at work on the prototype GeoNode software and the open source software improvements that it depends on, but in the coming months we hope to shift our priorities more towards documentation and community. We’ll be announcing those advances through GeoNode.org, the official site of the GeoNode project. But we’ve unintentionally left the lid on this for too long. In the short term, I’ll be blogging informally about GeoNode progress week-by-week here, because it’s high time we got the GeoNode into the open.