<!-- Content Here -->

Where content meets technology

Dec 15, 2005

Geek Social

Last night I attended the Genius Workshop at Christophers Restaurant in Cambridge. In the words of founder and organizer Shimon Rura, the title is meant to be more aspirational than descriptive. The structure is very informal: just a bunch of smart and creative people talking about what they are working on and new ideas. This is the third one of these events that I have attended and every one has been a fun and interesting experience.

The theme that was discussed on our side of the table was Web 2.0 initiatives. Many people in the group were working on projects (jobs, hobbies or both) that explored new and innovative ways to store and use information. On my end of the table there were:

Many interesting topics were discussed but two that stand out are: that VC's have a hard time getting involved with these Web 2.0 projects which require so little capital (the VCs don't have the bandwidth to manage tens of sub-one million dollar investments); and how can these new services make money when people expect everything for free and the incumbent has very little advantage over the new market entrant willing to give the service away to get market share.

Dec 12, 2005

When Open Source?

A couple of weeks ago, I presented in a session called Open Source vs. Hosted CMS Strategies at the Gilbane Conference on Content Management Technologies. Jim Howard from CrownPeak, and Gregor Rothfuss from Apache Lenya also presented. Lynda Moulton moderated. My presentation, "When Open source," is posted on the Optaros website

I like the concept of the session: alternatives to the traditional software licensing model. I think that the market has moved beyond the over-simplistic "build vs. buy." The primary point in my talk was that the three acquisition models have different strengths and complement each other. Open Source CMS presents the greatest opportunity for small to medium sized, occasionally updated, websites and as frameworks for building unique, high end content based applications (see slide 4 in my presentation).

Jim and Gregor both agreed with my model so those hoping for a debate may have been disappointed. Instead, we all talked about encroaching on the domain of the commercially licensed software market. I guess if we were joined by someone from a traditional CMS vendor, there may have been some sparks. Maybe next year.

Dec 09, 2005

Dec 07, 2005

Boston PHP User Group Meeting

Last night Optaros hosted the Boston PHP Users group. Zend provided the pizza. Addison Wesley pitched in door prizes. IBM provided David Boloker, their CTO of Emerging Technology, who gave an excellent overview of IBM's interest and involvement in PHP. He also brought along two colleagues from his engineering team (Adam and Brian - I didn't catch their last names) who showed demos of some PHP related projects.

In his talk, David discussed the concept of "Situational Applications" where a
not-so-technical person could quickly put together an application to respond to an event or capitalize on an opportunity. The technical skill was compared to a good spreadsheet programmer back in the old days (as in Lotus 1-2-3). This analogy resonated with me as someone who used to build database reports in preparation for corporate management meetings. The concept is the same, pull together all sorts of information and crunch it in different ways for decision support. But now, the information can come from so many more sources including live data feeds.

IBM sees PHP as a key to achieve this agility in application development. PHP can serve as a malleable front end to back end systems through Web Services or RSS. The demo used to make this point was of a project called QED Wiki, which is based on WakkaWiki. In addition to being a regular Wiki, where you can add content, QED is an application development environment where you can script applications based on wiki content and external data. The demo used a scenario of a major hardware store chain and how they can create situational applications based on weather conditions (sales depend on the weather conditions. Hurricanes = tarps and plywood. Snow = shovels and salt). With a little bit of script, similar to writing spreadsheet functions, Adam was able to create a nice little application based on data from NOAA and Google Maps showing the weather conditions of different stores within the chain. I think it was a stretch when David said that a typical store manager could put something like this together, but I see the point.

The next demo was of a project to build a PHP plugin for Eclipse. As someone who has to program in a different language every other project, I have grown to depend on an IDE (Integrated Development Environment) for syntax hints. The PHP plugin, while very early (according to Holoker, our group was among the first to see it), looks very useful. It as all that you would expect: code completion, debugging, navigation.... It was unclear how this fits in with Zend Studio but Zend is collaborating on the project and has contributed its debugging technology. If I had to guess, I would say that Zend Studio will eventually be based on Eclipse and Zend will sell value-add features such as remote debugging and code deployment. The relationship between IBM and Zend was described as happy and productive with success stories like Zend Core for IBM and this Eclipse initiative.

If any of you are in the Boston area on January 3rd, 2006, you should come over to 60 Canal Street to see Mitch Pirtle talk about Joomla.

Dec 05, 2005

Another use for RSS

A little while back, Charlie Wood wrote about using RSS as a mechanism for Lightweight Enterprise Application Integration (EAI). The general idea is that if you need to synchronize data between two applications, you might be able to do it by having each application listen to the other's RSS feed. I like the simplicity of this idea and the fact that it is able to leverage something that many systems are already building in. However, since this is using a "pull" technology it will not support real-time synchronization unless there is some way for the source system to notify the target system to re-check the RSS feed. Otherwise the target system would have to check the source system at fairly frequent intervals. Still, for occasionally updated data (such content in a CMS), it seems very workable.

Something to think about before investing in a heavy messaging architecture.

Dec 05, 2005

Navigating the Open Source CMS Landscape

In November, I presented at the KM World and Intranets conference in San Jose. It was a fun conference. There was a sizable group of CM Professionals and it was great to hang out and enjoy each other's company:

  • Tony Byrne of CMS Watch presentation, "Making Sense of the CMS Vendor Landscape," based on The CMS Report was excellent. Tony brings so much experience and rationality into the CMS selection process. You should definitely read or hear him before making any decisions.

  • James Robertson of Step Two Designs talked about selecting a CMS with narratives. This is such a healthy departure from the old, disfunctional feature matrix based selection process. I talked about the same topic in my presentation but James said it so much more eloquently. After reading his blog and exchanging email, it was great to finally meet him in person.

  • Lisa Welchman from Welchman Consulting gave some valuable homiletic horror stories in her presentation "Lessons Learned from CM Implementations."

  • Although I didn't get to see her presentation ("Making a Business Case for CMS"), I enjoyed meeting Jane McConnell from NetStrategy on a rare visit from France.

  • Speaking of European invasions, Janus Boye of Boye IT from Denmark made the trip and we finally were able to meet face to face. He and Travis Wissink of Anexinet teamed up to talk about content integration through Portals, Content Bridges and Enterprise Services Buses.

  • Jeff Potts from Navigator gave an excellent case study on an intranet initative at Southwest Airlines. It was a nice mix of technical description and methodology and organizational factors that helped the project succeed.

Events like these make the value of a CM Professionals membership obvious.

Another conference highlight was Tony Byrne's production of CMS Idol where several vendors were given 7 minutes to demo their product then be scathingly critiqued by a panel of judges (James Robertson as Simon, Lisa Welchman as Paula, and Janus Boye as Randy) American Idol style. The winner was determined by the audience. Tony hosted another CMS Idol at the Boston Gilbane Conference. It is an excellent concept. In seven minutes you are able to see what the CMS vendor really thinks is important and see the personality of the company. Some companies try to show breadth and range, others highlight simplicity and fitness to task. I also think these events are useful to the vendors because they can see how different demo styles resonate with a sample audience - just like a focus group.

Dec 01, 2005

eZ components vs. Zend PHP Framework

Maarten Manders writes a nice analysis of two application frameworks being developed for PHP: eZ components and Zend PHP Framework. While there is still not enough visibility for a thorough technical comparison, the article does a good job of summarizing the need for a good framework, guessing at the direction of these frameworks, describing the buzz in the PHP community.

One interesting point is that the eZ components framework has the same web templating framework used in eZ publish which is somewhat like the popular Smarty templating engine. It sure would be great not to have to use a different templating syntax with every CMS.

Dec 01, 2005

Zope Development Tools

I just got a chance to view the automatically generated Plone API documentation site: http://api.plone.org/. As someone with a Java background, I was really happy to see such a familiar Javadoc style format. Of course, since Python is a dynamically typed language, the documentation cannot tell the data type of a method's arguments (one of the primary thing I use Javadoc for). In order for that to happen, the documentation generation tool would have to run the program and record what variable types are successfully used as method arguments. The main advantage that the API documentation has over looking at the actual code is that it shows a full inheritance tree and lists methods that are inherited from super-classes.

Another tool that might be useful for Java programmers looking for a friendly, familiar face is PyDev, a Python plugin for Eclipse. PyDev does source tree navigation, text completion, method definition lookup, auto-indent, parentheses matching, code search, and automatic, real-time error checking just like what you get when you use Eclipse for Java. I find the error checking especially useful because it shows you immediately if your indents are wrong.

For debugging a Zope application, I was recently introduced to the Python debugger PDB. It is not a visual tool integrated into the your IDE, but if you run Zope in the forground (zopectl fg), and you add the line import pdb;pdb.set_trace() into your code, you enter an interactive session where you can step through the code, write code statements, and check variable values. Here is some good documentation to help you out: http://plone.org/documentation/how-to/using_pdb

Nov 23, 2005

Licensing of Plone

There is a very interesting conversation happening in the Blogosphere about the conflicting licensing terms of Zope and Plone. Paul Everitt does a very nice job of summarizing the issue in his blog.

The general gist is that Zope uses the Zope Public License (ZPL) which is modeled after the Apache 1 license and is less restrictive than Plone's GPL license. Plone's use of a more restrictive license is thought by some to be uncooperative with the Zope community and confusing to users. I think Paul raises an excellent point that Zope did the exact same thing by not adopting the OSI Certified Python license.

However, Chris McDonough, in the comments of Paul's blog, raises a very good point that developers on the Plone platform tend to commit code to both Zope and Plone and having different licensing schemes makes things unnecessarily complicated. I definitely hear that. You don't want licensing terms to determine where your code belongs.

I don't think that this problem is going to get solved but I don't think that it necessarily needs to. Paul has a nice status quo solution:

Forget about product re-use. Instead, focus more on avoiding duplication of framework stuff. When somebody needs to do something, get them to do it at the right stack layer, under that layer's license. This is the goal of Goldegg. I think this is a more useful and realistic answer to code sharing in the stack.

By "forget about product reuse" Paul means trying to do things like using a piece of Plone in another (possibly proprietary) product. I think this solution makes sense and it is certainly more actionable than trying to get everyone to change their licensing schemes.

Nov 01, 2005

Z3ECM

I recently wrote about the Goldegg project and was interested to learn about another project related to arrival of Zope 3 : Z3ECM. Z3ECM is a project to build an Enterprise Content Management System (ECM) on Zope 3 and is being supported by France-based Nuxeo software which also manages Collaborative Portal Server (CPS) - an ECM framework built on Zope 2. Some Z3ECM components will be incorporated in CPS in release 3.6 (3.4 is due out next month) and CPS v 4.0 will be built entirely on Z3ECM.

Projects like Five, Goldegg, and Z3ECM are critical to Zope 3's success because they will help products (like Plone and CMF), which made Zope 2 so successful, move forward in a Zope 3 world. Of course, even though Zope 3 is out and seems to be gaining momentum, there is nothing forcing Zope 2 users to upgrade. One of the great things about open source software is that users of open source are free to make decisions of if/when to upgrade. With the large install base of Zope 2, there is likely to be a Zope 2 community for quite some time.

Zope 3 is nearly a total rewrite of the Zope platform. The overall goal is to make Zope easier to develop on by making the code more modular and incorporating some critical features into the core. The use of "interfaces" which are often used in Java applications to make software more object oriented ("polymorphism" is the OO term) Most notably, some aspects of Content Management Framework (CMF), a Zope "Product" (application that runs on Zope) which is used by most Zope based CMS applications, are being folded into the core. One of Goldegg's goals is to develop a new CMF, composed of the features that are not implemented in Zope 3 core, on top of Five (Zope 3 functionality running on Zope 2) and eventually Zope 3. If you want to learn more about Zope 3, there are two professionally published books available: Web Component Development with Zope 3

and Zope 3 Developer's Handbook, First Edition (Paperback)

← Previous Next → Page 68 of 75