Proclaim: Integrate!

My colleagues and I from ONE/Northwest recently signed onto the Integration Proclamation, a first step towards encouraging funders, software developers and those of us who work with them to invest resources in making tools that play together better.

If you agree that social change activists need tools that assume they’re part of a larger picture, not a world unto themselves, then take 30 seconds and sign

It’s a first step, not a solution.  But solutions start with attention.

Evaluating Open-Source Software Communities

Seth Gottlieb writes one of those blog posts I wish I’d written, on evaluating an open-source software community.

The community will influence your experience of the software and shape the application’s future. If you are used to commercial software selection, the concept of “community” is probably alien to you. You may be used to reading analyst reports about market share and corporate financials. “Community” feels squishy and qualitative by comparison. Even though the information that can be used to evaluate a community is visible, it takes some work to gather and interpret it.

Seth’s key community indicators are:

  • General activity level (especially bug reporting activity)
  • Vision and priority setting (for product enhancements & updates)
  • Leadership – especially the demonstrated ability to develop, promote and renew leadership
  • Execution – clear rules and standards that define how to produce quality code, and mechanisms for making sure the procedures are followed.
  • Participation – especially openness to new participants and non-technical forms of participation
  • Economic Ecosystem – does the project have a strong base of economic activity that is supporting it? Are people making money?

Great post, Seth. Thanks.

Eben Moglen: Software and Community in the Early 21st Century

Eben Moglen’s keynote address at Plone Conference 2006, “Software and Community in the Early 21st Century” was hands-down the most inspiring speech I’ve ever heard in my life.

Watch Eben Moglen's Plone Conference Keynote Address

In just over an hour, he traced the connections between the free software movement, the One Laptop Per Child project, and the past three hundred years of modern industrial economic development, and placed our work into the larger context of the ongoing journey towards freedom and equality for all people. There was hardly a dry eye in the standing-room-only house when he was done.

Thanks to my good friend Grace of Versant Media, Eben’s talk is now available for your online viewing pleasure at YouTube.

Now is probably a great time to thank Eben for all he’s done over the past 15 years to advance free software, and to thank Jonah Bossewitch, Paul Everitt and Ian Sullivan — and of course Eben — for bringing us the magnificent gift of this talk. I’m so pleased to be able to share it with the world.

Share it with someone you love who wonders what you do and why it matters. 🙂

(A high-resolution version of Eben’s talk will be available for downloading from under a Creative Commons license in the next week.)

Not often you find little gems in the comment threads on Slashdot…

But buried deep in the comments on the article about the release of IronPython, I found this little gem of wisdom about the costs and benefits of not using the “lowest common denominator”…

… whether or not you could benefit from learning Python is a decision
only you can make. Python may increase your productivity 2-3x over C#
or more (and that’s fairly conservative, usually), but only after you
learn it, which could be months.

However, if you end up always
choosing the short-term expedient answer of sticking with the language
you know (and the environment you know), you lose out on any
productivity gain you might get from another environment or language;
this is a general point, not one specific to this case.

In general, the “common environments” (Java, .Net,
etc.) have the worst productivity characteristics, because anything
worse then them simply dies. Anything that survives the overwhelming
advantages that being one of the Big Guys gets you is generally
surviving for a reason. The longer the survival, the better the sign,
and most languages you’ve actually heard of have actually been around
for years.

Again, I’m not trying to push you, just point out
that for the costs there are benefits, too. I say what I’m saying
because I believe (and see) too many developers trapping themselves in
local maxima by always making the short-term decision.

I’m enjoying Office 2007 Beta 2

So I screwed up my courage and installed Office 2007 Beta 2 on the laptop I take home.  (This is not my main work computer.)

I’ve only scraped the surface with Word and Outlook, but so far, my reaction is: Wow.

This is a bold upgrade that takes a big, ambitious shot at totally redoing the entire user interface paradigm.

There a bunch more screenshots on Jensen Harris’ blog, but it’s hard to appreciate just how much of a leap forward this is until you actually try working with it.

Finally, almost all of the “noise” — options that you never use and don’t care about — are hidden, and the important features get the screen space they need and deserve.  Among the coolest new tricks are:

  • Formatting is “live previewed” which means you can see exactly how it looks before committing it.
  • Style sheets are now stitched together via “themes” which make it really easy to create much more consistent designs for documents.
  • Vastly improved default document formats, including some really spectacular new fonts.  (Of course there’s a twist, and Microsoft so far hasn’t made it easy for non-Office or Windows to use them, which means there’s little chance of these becoming new web-standard fonts anytime soon.)
  • Outlook has a really solid instant-search feature which blows Google Desktop out of the water.
  • Outlook also moves tasks more front-and-center, and rearranges how tasks & categories & flags work, such that it looks like you can really now do Getting Things Done type email-to-task workflows much more easily.
  • Outlook now has a built-in RSS reader, but it pretty much sucks.  (For example, no way to delete many feeds at once, and it’s really slow to update.)

I’m sure there’s a lot more.  I’m excited to explore more of it.

Stability: so far, Word has been rock solid.  Outlook’s crashed once or twice.  Hey, it’s beta software.

What To Do When You Start Getting SCSI Disk Errors

One of our servers here at ONE/Northwest (which, among other duties, hosts this blog!) has been acting a little flaky over the past few weeks.  The SCSI disk subsystem was throwing intermittent clusters of CRC errors, which seemed to be causing the filesystem to go into read-only mode to protect itself.  Which would of course bring down pretty much all of its processes, requiring a restart and an fsck disk check.  Not good at all.

After Googling around a bit, and pondering the hassles of SCSI driver upgrades, I decided to just get a can of compressed air, disconnect all the drive cables, blow everything out, then carefully reconnect everything.

Twenty-four hours later, and not a single error.  Another day or two and I’ll be satisfied.

It’s nice when the easy fix works.

Assuming the best

I’ve been noticing that, when confronted by missing information about the capabilities of technology, people seem to assume the best.   That is, they assume that the technology will magically do whatever it is that they most want it to do, so long as it hasn’t specifically been stated that it won’t.   That is, they fill in the gaps in information with their hopes and dreams.

I find this kind of odd.  Because technology still basically doesn’t work.  And reality is that unless you are specifically told that something does something, the odds are that it probably doesn’t.

And therein lies great potential for hype, missed expectations and disappointment.

Protecting the Internet – This is Important

The basic functioning of the Internet is facing a pretty serious legislative threat from Congress, and there’s a new nonpartisan coalition forming to fight to protect “net neutrality,” which is one of the bedrock principles that has alllowed the Internet to become the free and open ecosystem that we want to see it remain.
For a two-minute video introduction to this important issue, check out Public Knowledge.

Single Stacks, or Network-Centric Web Services?

Reading Zack Rosen’s assertion that building applications inside Drupal-the-framework makes more sense than loose integration of complementary applications triggered some thinking that’s been rattling around in my head for a while.

I think that the next few years are going to bring tremendous challenges for applications that do not easily communicate with other applications that are “outside their platform” i.e are written using a different language/framework, run on a different server, etc.

I think the most powerful path forward over the long haul is internet-based integration between great applications that were designed from the ground up to allow for it. 
In other words, web services APIs are going to become increasingly more important, and the particular application frameworks less so.  This the “small pieces, loosely joined” model, to echo the phrase that others have appropriated from Dave Weinberger’s influential book.
There are some great communities and significant resources behind very cool projects that provide great functionality that I really want to be able to tap. I don’t want to have either persuade them all to develop in a single platform (it’s just not going to happen) or try to duplicate all of their functions in whatever platform I’m most comfortable in. (Which, truth be told, is “none of them.”)

My colleagues here at ONE/Northwest and I would much rather focus on integrating best-of-breed applications that have strong web services APIs and are designed around the assumption that external applications are first-class citizens of their ecosystems. (Damn, that’s a lot of buzzwords.)

At the end of the day, why should I have to care if an application is based on Python, Zope, PHP, Rails, Django, or some technology I’ve never heard of? Why should I have to run all my applications off a single server? That’s not scalable. We now have a whole set of standards and technologies to let applications communicate with each other over the internet.

“Web services” is one of those complex, slippery terms that means lots of different things to lots of different people. To me, in this context, it means applications that share data with other applications over the internet. The more of your application’s guts it can expose to the outside world, the more powerful your web services API.

Some applications that I think are really moving in the right direction with web services support are:

  • Democracy In Action — powerful API, alas, not yet well documented. Little known fact: the smart guys at Enfold Systems have releaesd a Python wrapper for the Democracy in Action API, which (supposedly) makes integration with Plone possible. Haven’t tried it yet myself. But I’m looking forward to it.
  • Holy cow, these folks really get it. I’ve heard that half of their traffic is through their web services API. This is how a relationship management database should be — accessible by most any external application.
  • WhatCounts. These guys do our email blasting. Lots of folks do email blasting, some probably just as well as WhatCounts. But what sets WhatCounts apart from the pack fo us is the fact that they have strong APIs. This lets us do cool stuff like pull in names from Salesforce, or inject new subscribers from Plone, or pull in content from a Plone site. (Well, technically pulling in content from the outside doesn’t use their web services API. But the point is that WhatCounts can pull in data from outside and let other apps push data in.)
  • Another, less strictly “web services” example is Plone’s new PlonePAS framework. Basically, it’s a framework for authenticating users and retrieving user data from any old data source you’d care to write a plugin for. We’re going to try to use it to integrate and Plone.
  • The whole open-source GIS software ecosystem, most especially including MapServer. My next-door neighbor, Chris Davis of CommEn Space, has shown me some really mindblowing stuff with maps that dynamically draw in data from all over the internet, thanks to open data standards and web services.

Can you see an advocacy software ecosystem here yet? I can.

And let’s not forget all the “Web 2.0” applications out there that are getting so much hype these days. One important thing about the most exciting of these tools such as Flickr and is that they can be written to and read from by outside applications via web services APIs.  (Amazon has done amazing stuff here, too, albeit without getting much “Web 2.0” credit for it.)
This is where it starts to get cool. The days of monolithic application stacks that try to do everything are fading fast. A new “network-centric” software ecosystem is starting to bloom.

And the best part: nobody has to “deeply partner” or adopt a single platform to make it work. They just have to focus on building great web services APIs so that other applications can meet them halfway. That’s not easy, but it’s surely easier than getting everyone to adopt the same platform.

Some software tools that I really hope build strong web services APIs as they roll out their next releases include:

  • Green Media Toolshed
  • CiviCRM (their web services API work seems to have stalled out in favor work on a PHP API that only talks to a PHP application (like Drupal) installed on the same server. Hopefully their focus will soon return to playing with the outside world, too.)
  • Custard Melt
  • Advokit
  • All of those nonprofit online donation tools that I am too tired to list right now. You know who you are.
  • And, yes, Drupal, too. 😉

I’m probably overlooking some other apps that ought to be listed here. Feel free to suggest them. It’s late.

Groundspring Releases Its Tools As Open Source — but unsupported

Jeff Reifman, former Groundspring employee, reports that Groundspring has released EmailNow, DonateNow, Enterprise and ActionStudio as open source. The fine print: no support, no active development, no resources for community building. AdvocacyNow is being [made available as a hosted service]( under the name eAdvocacy.

It will be interesting to see whether anyone is able and willing to pick up the ball and run with developing these codebases.

As [Gunner and Katrin observed](, someday this is all gonna make a great case study.

Tools I Use

Michael Gilbert threw together (ha! Michael never really “throws” anything together) a nice description of his daily publishing workflow, and Sonny Cloward picked up the theme with “What’s In Your Toolbox.” Here’s my contribution to the conversation:

OS: Windows XP

Email/Calendaring/Task list: Outlook 2003

Spam filtering (client-side): SpamBayes Outlook plugin

Spam filtering (server-side): SpamAssassin plus whatever other magic Dean has cooked up

Personal task management: GTD Outlook Add-in

Word processing: MS Word

Spreadsheets: MS Excel

Collaborative time/project tracking: dotProject (heavily customized to integrate with our database)

Web browser: Firefox

RSS reader: Bloglines

Bookmark management:

Blogging: WordPress and MovableType

Web Content Mangement System: homebrew ColdFusion CMS, soon to be Plone

Photo gallery: Gallery

Photo editing: Macromedia Fireworks, Adobe Photoshop Elements

Instant messaging: Gaim

VoIP: Skype

Online meetings: Microsoft LiveMeeting

FTP: FileZilla


Anti-spyware: Spybot & MS Anti-Spyware

Media player: iTunes

Desktop search: Copernic

Preferred web search: Google

Virus protection: ClamWin

Compression App: 7-zip


Note to self

Next time you put a new power supply into a computer, make sure you connect the little power leads to exactly the right pins on the motherboard. Look at the manual to be sure. If you’re just one pin off, things just won’t work, and you’ll get really confused. You might even decide that it’s your motherboard that’s fried and waste a whole bunch of time on a wild goose chase.

Your friend,

PS Who wants to guess what I did half of yesterday?

The challenges of supporting next-generation infrastructure for nonprofits

Kellan (I’m guessing) offers some insightful thoughts about hosting software for nonprofits. He raises two challenages facing folks who build nonprofit solutions using so-called ‘niche’ platforms like Zope or Rails… well, really anything other than PHP, right?

Challenge #1: “Qualified developers for ‘niche’ technologies.”

There are definitely a lotta folks out there who know a little PHP, and not as many (yet) who can hack around with Zope or Rails. But I’m not sure there are that many more people who can effectively make substantial changes to a complex PHP application such as Gallery, CivicSpace or Groundspring’s forthcoming Enterprise. And the great thing about frameworks like Rails or Zope is that they’re pretty easy to learn and generally well documented. Also, the points in the landscape to find help are well-lit and active.

But I definitely agree with the larger point that I think Kellan’s trying to make: the nonprofit tech community needs to do a much better job of teaching itself platforms that aren’t “lowest common denominator” so it can take advantage of the huge leverage that platforms like Zope and Rails offer. I think this is definitely solvable — in fact, ONE/Northwest has already started tackling our local piece of the puzzle by starting the Seattle Plone Users’ Group along with our friend Brian Gershon of RagingWeb. (You can join the email list here.)

But the “lowest common denominator” challenge is definitely real. In fact, I think it’s been one of the largest challenges that Groundspring’s ebase has faced over its life — there just aren’t tons of great FileMaker consultants out there.

Challenge #2) Low cost hosting.

Kellan correctly notes that low-cost PHP hosting is pretty ubiquitous these days while Rails hosting is “at the moment nearly non-existent” and Plone/Zope hosting is a bit more expensive than PHP hosting.

Couple thoughts here. First, the difference between $7/month ($96/year) for bottom-of-the-barrel PHP hosting and ~$15-25/month ($165-300/year) for solid Zope hosting isn’t gonna break the budgets of most nonprofits.

Second, I’d observe that Rails and Plone/Zope are in very different places, and it’s probably not fair to generalize about them both simultaneously. Zope and Plone have been around for a few years now, and while not every Tom/Dick/Harry web host supports them, there is a solid marketplace of hosting providers, like Zettai, Quintagroup, and others. I can’t speak to where the Rails hosting market is at, but I’ll take Kellan’s word for it.

If you’re really concerned about the “cost of experimentation” then I’d note that…

A) Installing a working Plone/Zope environment on a Windows or Mac box is literally a double-click. Great for experimentation at zero cost. PHP and Apache can’t touch that kind of ease of install for novices. (See comments. Thanks, John & Trey.)

B) If you’d rather have someone else host your sandbox for you, there are a few providers of free Zope/Plone hosting such as FreeZope and Objectis. Not too bad.

But again, I think Kellan’s right on the larger lesson: folks like Electric Embers, Community Bandwidth, et al. ought to think seriously about expanding their nonprofit-centric hosting practices to include emerging platforms like Zope and Rails. There is a learning curve to supporting these platforms, but it’s not that bad, and it only takes a few talented sysadmins to climb it to start supporting a pretty huge number of nonprofit clients.

A Web-Based Resource for the Craft Art Community

Sonny Cloward, whom I had the pleasure of meeting in person (along with his adorable son Finn) this winter, is pondering A Web-Based Resource for the Craft Art Community. Lots of good — if raw — ideas in here about how to create a next-generation community oriented web resource for a topical/issue community.

>Facets: Search | News and Publications | Share | Exchange | Locate | Discuss | Connect

Lots of good thinking here; it’s not hard to see the relevance to the Northwest environmental community I work in. In fact, we’ve been having similar conversations around ONE/Northwest these days.

Towards the end, Sonny speculates a bit about platforms to build in — my personal choice would be of course be Plone. But that’s another story.