Feed on
Posts
Comments

Do you tend to see innovations as massive paradigm-shifting change, or as the incremental achievements built on longer-term trends?  Obviously, there’s some truth in both perspectives, but I think that most people have a tendency to lean one way or the other in how they interpret what’s going on in the world.

If you know me, you know I tend to be an incrementalist.  I think that real honest-to-god paradigm shifts happen, but that they’re pretty uncommon.  And they’re usually much slower than you’d think.

I’m often frustrated by what I perceive as a tendency of consultants and media types (especially new media types!) to frame every innovation as revolution.   I can understand how one might think it makes better copy, makes you a more dynamic speaker, makes you seem smarter and more interesting.  But really, I don’t think it does.  The best talk I’ve ever seen about open source is the one in which Eben Moglen weaves the story of open source into the centuries long struggle for freedom, dignity and human rights. Context is sexy.

Also, as someone whose professional practice is all about helping people make and embrace change, I think it’s usually more effective to connect new ideas to the already-familiar, rather than trying to motivate people with the fear of being “obsolete” or missing out on “what everyone else is doing.”  One of the most valuable things we can do as consultants is to help people fit confusing new chunks of knowledge into a longer-term framework of ideas and trends.  That builds capacity and confidence.

I’ve been thinking a bunch about the challenges of making cultural transformation in the organizations I work with here at Groundwire.  It’s a tough challenge.  The first step, it seems, is about naming the changes we want to help folks make.

Here are some rough notes that popped out as I was gathering my thoughts for a meeting.  I’d love to know what thoughts they provoke for you.

From –> To

    1. Broadcast –> Dialogue
    2. Formal –> Conversational
    3. Organizational voice –> Personal voice
    4. Goals –> Values
    5. Centralized communications –> Distributed through many channels
    6. Intuitive decisions –> Data driven decisions
    7. Master planned –> Continual refinement toward clear big picture goals
    8. Set the agenda –> Respond to what’s hot that fits your goals & values
    9. Always the center of collaborations –> Partner more, and more informally

      Center for a New American Dream has a nicely done “Alternative Gift Registry” tool (currently the #4 Google result for “gift registry”!) that allows you to create gift registries that de-emphasize consumerism (used goods, donations to charity, experiences rather than stuff, etc.).   This is a great example of a nonprofit advocacy group coming up with a valuable public-facing service that is grounded in its mission and expertise to bring people into the circle of engagement.

      Continuing on the theme of quick-and-dirty benchmarking of the forthcoming Plone 4 release, I decided to revisit an experiment I did about a year ago in which I looked at the memory usage on startup of Plone 3 vs. Plone 4.  In December 2008, I found that Plone trunk used 36% less memory on startup than Plone 3.1.7.

      But back then, Plone 4 was still a long way off, so I wondered if things had changed lately.

      So I fired up my 2Ghz MacBook with 2GB RAM, I started up Plone 3.3.4 and Plone 4’s current trunk, and Activity Monitor reported memory usage as follows:

      That’s a 29% decrease in RAM usage for Plone 4, from 142.5MB to 102.5MB.

      Sweet!  Plone is not only a lot faster than Plone 3, it’s also much more RAM-efficient.  Truth is, though, it’s not really Plone’s fault.  One of the big changes in Plone 4 is that it now uses Python 2.6 instead of Python 2.4.  Python 2.6 is quite a bit more memory efficient, and that’s where Plone’s gains are coming from.

      So, thanks, Python team!

      Update: See comments below from Hanno.  Turns out Python 2.6 is better at garbage collection, so Plone’s memory usage will increase less as it runs, but Python 2.6 actually causes Plone to use slightly more RAM at startup than it would under Python 2.4 (which Plone 4 does not support!).  But, thanks to all of the amazing work that the Plone 4 team has done to make Plone leaner and meaner than ever, Plone 4 more than compensates for Python’s slightly increased drag.  Whee!

      Bonus: If you’re wondering why I clocked lower overall RAM usage when I tested this last year (97MB for Plone 3, and 62MB for Plone 4), you can blame Snow Leopard for that.  Running 64-bit Python makes it use more memory than 32-bit, and Snow Leopard, new since last year, is now (mostly) 64-bit.  You can avoid this by running your production sites on a 32-bit Python.  I’m just too lazy to do it right now.

      Extra special bonus: One of the many benefits of Plone 4’s new “blob storage” infrastructure for handling files and images is that it is way, way more RAM efficient.  We don’t have hard benchmarks on this yet, but in one very large, heavily used intranet site with 16.5 GB of most documents and media files, the team at Jarn was able to cut RAM usage from 10GB to 3GB with substantial increases in performance.  We expect that most sites with large archives of binary files will see similar resource usage improvements as they migrate to Plone 4.

      Ugh.

      If you didn’t already think that one of the most important long-term issues in our society is the twin hydra of corporate personhood and campaign finance reform, today’s Supreme Court ruling should be a shocking eye-opener for you.  Make no mistake, this is serious, worrisome stuff.

      It’s time for all of the groups in the “progressive” spectrum to come together to mount a major, long-term campaign to end the misguided, extra-constitutional notion of corporate personhood.  It seems to me that everyone has thought this is “someone else’s issue.”  No longer.  If we don’t get our act together here, pretty soon we’re not going to have a democracy left to argue about.  It is well past time to see a serious infusion of resources and organizing around these issues.

      Good starting points if you’re new to this whole issue area are POCLAD’s book “Defying Corporations, Defining Democracy“and CELDF’s “Democracy School.”

      Plone 4 is about to leave its alpha testing phase and enter beta testing prior to a final release.  One of the many things the Plone team has worked really hard on in this release cycle is improving Plone’s performance.   Plone core developer Hanno Schlichting has blogged about this a number of times, and deserves a tremendous amount of individual credit for digging deep into Plone’s innards to find and fix inefficiencies.

      When I read Hanno’s most recent performance post, in which he shows Plone 4.0 alpha 3 serving up 22 pages/second without caching on his personal laptop, I  started to wonder how this compares with some of the other common CMS platforms out there.  I was pretty sure none of them could deliver more than 10 pages/second with zero caching or performance tuning.  So I did a bit of quick-and-dirty speed benchmarking.

      I’ll start with results, then explain my methods.  As I suspected, Plone 4 is faster out of the box than some of the most common PHP platforms.  Lots faster.

      That’s right:  Out of the box, Plone 4 alpha 3 served up 14.5 pages/second, that’s over three times faster than Drupal 7 alpha 1’s 4.1 pages/sec, Joomla! 1.5.15’s 3.6 pages/sec or Wordpress 2.9.1’s 4.5 pages/sec.  Plone 3.3.4, our currently shipping release, turned in a snappy 9.4 pages/sec, over twice as fast as its PHP competitors.  Whee!

      Testing methodology

      Here’s how I tested.  Hardware was my 2GHz MacBook with 2GB RAM.  I installed Plone 4.0 alpha 3 using buildout, and used MAMP 1.7.2 to run the PHP products.  I did a default install of each product, no add-on modules, I used whatever default content and initial configuration each product provided.  (Joomla! gives you the option whether or not to install sample content, which I accepted.)  No caching was installed or configured for any system.   I measured performance of the homepage as an anonymous user with trusty ol’ ab -n 10, ran it a few times to get the systems warmed up, then noted the value where the runs stabilized.

      Lies, damn lies and statistics

      So, what does all this mean?  Well, honestly, not much.  (Although Hanno clearly has a faster laptop than I do!) This is obviously a crude benchmark.  I didn’t load up each CMS with realistic sample content.  I tested two pre-release products (Plone 4.0 alpha 3 and Drupal 7 alpha 1) against three production releases (Plone 3.3, Joomla! and Wordpress).   All of these CMSes can easily pump out hundreds of pages per second with a little bit of tuning, reverse proxy and/or database caching (although many real-world users don’t bother with performance optimization!).  So, this benchmark is definitely not an accurate measure of the real-world performance of a site.  (Matt Hamilton recently explored this a bit.)

      But I think that Hanno and the rest of the Plone team can be very, very proud of Plone’s raw speed.  And as Hanno points out, there are even bigger gains just around the corner; he’s targeting 50  pages/second (without caching), as his goal for Plone 5.

      Back in November, Alex Steffen of Worldchanging.com delivered a bravado two-night set of talks at Seattle Town Hall, exploring a hopeful vision for a prosperous, sustainable future and the opportunity that cities like Sattle have to lead this transformation.

      They’re now available online, and I certainly plan to load them up on my iPod ASAP.

      Night One: Building a Planet with a Future

      Introduction by Seattle City Council President Richard Conlin

      Download for iPhone/iPod

      Night Two: Seattle’s Bright Green Momen

      Introduction by Seattle Mayor-Elect Mike McGinn

      Download for iPhone/iPod

      Bright Green: The Seattle Talks

      After some soul-searching, and a prod from my dear friend and inspiration role model Sam Dorman, I’ve decided to unplug myself from “web 2.0,” “the social nets” or whatever we call the rapidly-expanding tarpit of social networking sites these days.

      Long story short: I’m increasingly convinced that the constant stream of tweets, status updates, Facebook wall posts and the like are causing me more cognitive harm than professional or personal benefit.   And I deeply suspect that they’re harming us as a society, too.  (See “Skinner Box?  There’s an App for that!” for more on this.)

      I’m not going cold turkey from the internet.  That’s not what this is about.  I’m going to continue reading email, surfing the web, and maybe taking in a few RSS feeds, since that’s a very convenient way to follow the news.  I will continue to blog (and hope to write more in the future since I won’t be as distracted by constant consumption!)  I might even keep my Facebook account after paring it down to people who are actually real-world personal friends.  But I’m ditching Twitter, unsubscribing from most of my “professional” RSS feeds, and am going to basically pull out of the “real-time web.”  Our brains just aren’t meant to work this way, and I can feel it harming my work, my personal life, and my happiness.

      “Surely you just need to manage this stuff better, Jon,” you might be thinking.  Well, maybe, but if you know me, you know that I am an extremely disciplined person and am about as far from an “addictive personality” as it gets.  Heck, I didn’t even have an internet connection at home until 2001, and then only because my wife made me!  If I am suddenly finding myself experiencing addictive behaviors with web 2.0 tools, I’m pretty sure it’s because these qualities are deeply wired into the technology, not into my personality.  Also, if you think that “technology is completely neutral, it’s just about how we use it,” then please go stop and go read “In the Absence of the Sacred” before deciding whether you really want to pursue that line of argument.

      So, in short, I won’t be seeing you on Twitter or Facebook so much anymore.   But please do drop me a line, give me a call, let’s go get some coffee or a hoist a pint.  Let’s go for a walk, a hike, a bike ride.  Let’s play some music together, or cook some food.

      And if you’re feeling a little stressed out by the constant chatter of your online “friends,” then I invite you to join me in easing back out and into the sunlight.  See you in the real world, person-to-person!

      It occurred to me yesterday that the real challenge we[1] face is not the question of “how do we apply technology tools to organizations?” but more “how do we help organizations & people transform themselves so that they are more able to harness the power of technology?”

      [1] “we” = those of us standing astride the worlds of technology and social change.

      Astrolabe vs. iPhone

      Discussing the merits of the astrolabe vs. the iPhone in a recent TED talk, Tom Wujec offered the following idea, which I paraphrase slightly:

      With “improved” technology, what we gain is precision and accuracy; what we lose is a sense of connection and context and wholeness.

      My mom’s inkjet printer gave up the ghost a couple of weeks ago, and so one of my holiday-visit to-dos was to get her a new printer.  After a bit of online research, I chose a Canon Pixma iP4700, since it was cheap ($50), simple, well-reveiwed and compact enough to fit on her rather small “printer shelf.”   While I was putting it through its paces last night, I was shocked to discover that huge differences in photo quality between very-similar-seeming inkjet photo papers.

      Here’s the photo I was using as a test:

      My Test Photo

      I chose it because: A) I like the photo; B) it has a good range of light and dark areas.  (Really, it was not a very mindful choice.)

      The printer came with a few sample sheets of Canon Photo Paper Plus Glossy II, so I tried that first.  Worked great.  The image looked like it came out of the photo lab, with no fiddling of the print drivers at all.  Bravo!

      Mom had a big box of Kodak Premium Picture Paper (Glossy) on hand, so I decided to give that a whirl.  It has a similar glossy finish and similar weight, so I figured it would work just fine.  Bzzzt.  Wrong.

      Printing with the same settings as I used for the Canon paper above was a disaster!  All of the darker areas of the photo couldn’t absorb the ink, leaving a smeary, pixelated mess.  The lighter areas were better, but still visibly dithered.  Ugh.  Clearly, the printer was laying down more ink than this paper could handle.  And the color balance was totally off — way more magenta and less yellow than on the Canon paper.

      I tried changing the print driver settings from “Canon Photo Paper Plus Glossy II” (obviously, the Canon printer is pre-programmed to know about Canon branded paper) to the more generic “Glossy photo paper” and gave it another whirl.  Nearly identical disaster, but with less ink mess.  Still horrible, grainy look

      I took one more run at it, bumping the quality setting from “Standard” to “High.”  A slight improvement, but still couldn’t hold a candle to the print on Canon paper.  And the color was still way off.

      I did some Googling around and found that Kodak has published sets of “recommended settings” for using its various papers in different printers.  Sure enough, the instructions for a very similar Canon Pixma model suggested choosing “Glossy photo paper” and “High” quality, and tweaking the color balance with less magenta and more yellow!

      Unfortunately, the photos still looked terrible.

      My conclusion: if you want really good photo quality, the paper’s compatibility with your printer really matters.  And there’s no way to tell from the specifications which papers will work best.  Clearly, the folks at Canon know something about how to design or specify paper that is optimally compatible with their ink formulation.  I suspect the same may be true of other printer + ink manufacturers, but really I have no idea if this principle holds for other brands as well.  We’ve had pretty good luck with generic matte photo paper in our old (but remarkably high quality) HP DeskJet 970Cxi at home.

      There wasn’t much I could Google up on this topic when I tried, although there was some mostly-negative discussion of Kodak paper in non-Kodak printers here.

      So, hopefully this article tips the balance a little bit.

      Andreas Jung recently wrote “zopyx.trashfinder,” a quick-and-dirty script for assessing whether folks releasing software via the Python community’s “PyPI” repository are providing minimal metadata and actually making releases.  (Andreas has been on the warpath against sloppy release management, it seems, perhaps having been recently frustrated.)

      Andreas has assessed the zope., plone., and collective.* namespaces so far.  He found 2 of 167 zope.* products with metadata problems, 2 of 117 plone.* products with problems, and 15 of 325 collective.* products with problems.

      I decided to run an assessment against the Products.* namespace, which also contains lots of Plone add-on products.  The news is pretty good… out of 250 products checked, only 4 had problems.

      CRAP: Products.Clouseau==0.8.4dev - description < 40 chars
      CRAP: Products.Clouseau==0.8.4dev - summary < 10 chars
      CRAP: Products.Clouseau==0.8.4dev - no author and no maintainer email given
      CRAP: Products.Clouseau==0.8.4dev - no author and no maintainer name given
      CRAP: Products.listen==0.7.1 - description < 40 chars
      CRAP: Products.listen==0.7.1 - no author and no maintainer email given
      CRAP: Products.listen==0.7.1 - no author and no maintainer name given
      CRAP: Products.LoginLockout==0.2 - no release files, no valid download_url
      CRAP: Products.PloneInvite==1.1-alpha - no release files, no valid download_url
      

      While I think Andreas is being a bit (characteristically) tough in his conclusion that “PyPI is the public data toilet of the Python community,” given the low rate of problems, I really love the idea of regular, automated sanity checking like this, or as Alex Limi and I have called it, “automated shame.”  I hope Andreas adds the product maintainer or author’s name to the listing in a future release. ;-)

      I’d love to see someone regularly interrogate all of the packages in Plone.org’s PyPI server with this query, and regularly publish the results to the Plone product-developers list.

      Update: David Glick also referred me to Matthew Wilkes’ “mr.parker” which checks to make sure that PyPI packages have more than one authorized admins, in order to avoid the “hit-by-a-bus” factor.  Good stuff.

      Older Posts »