Entries For: 2008
- June (7)
- May (1)
- March (2)
- February (3)
- January (1)
June 24, 2008
Andrew Burkhalter: Integrated Event Registrations with Plone & Salesforce.com
Simple Event Registration with Plone & Salesforce.com screencast.
As a follow-up to my "what's new with Salesforce PFG Adapter (i.e. Plone/Salesforce.com integration as made possible by PloneFormGen)" entry and screencast, I also needed to make some video on a newer project called RSVP For Salesforce for Jon's use at the latest Plone Symposium. I think the aforementioned project page on Plone.org provides a decent overview of its current features and limitations, but of course a screencast is always more indicative of how it's used.
Hope you enjoy:
NB: While not quite as mature as our PloneFormGen integration code, RSVP for Salesforce has happily pulled in a bunch of online registrations for an upcoming workshop ONE/Northwest is hosting called Strategy and Best Practices for Action Alerts and Other Email Communications. I'm hoping to improve the ease of configuration before we use this more widely.
On a final note, this is an interesting problem space because, as mentioned in the video, the promotion of an event, capture of participants, and ongoing interaction with attendees required by event registration really weaves back and forth between tools for managing content and for managing constituents. An aim to solve this with one tool seems a recipe for an inflexible monolith, which will lead to an inevitable compromise in features and functionality. Having such capable systems as Plone serving as the CMS and Salesforce.com the CRM seems like such a natural separation of concerns where the sum is so much greater than the parts. Marrying the tools together took a fraction of the time and effort required to build even a subset of the functionality from the ground up. That is something I find endlessly exciting.
June 21, 2008
Jon Stahl: Learning From Joomla!Days
June 15, 2008
Steve McMahon: PloneFormGen News
PloneFormGen 1.2.4, just released, has some great new features.
PloneFormGen is due for some refactoring to take advantage of Zope 3 and Plone 3 technologies. But meanwhile, I've taken the opportunity to integrate a couple of handy new contributions.
- Ratings-Scale Field
- Titus Anderson of the University of Louisville has contributed code for a Likert Scale Field. I've renamed it to be "Ratings-Scale Field" to use a more common name and reflect its more general usability. This field supplies a table of question rows, each with radio-button answers.
- Saved-Data Editor
- Andreas Jung contributed an editor for saved data. Switch to the tabular view of your saved data, and you'll have a new option to individual items.
- Egg Cooked
- This was actually added in 1.2.3. PFG is now available as a PyPI egg. Just add Products.PloneFormGen to the eggs section of your buildout . Jens Klein's great ScriptableFields have also been cooked into eggs and declared as requirements for the PFG egg; so dependencies are automatically handled!
Sprint Planning
I'm hoping to make PFG refactoring a sprint topic at the 2008 Plone Conference. If you're interested, visit the planning page for details and sign up. Andrew Burkhalter and I have been scheming for a possible earlier sprint that might lay the technical foundations. Let one of us know if you're excited by that idea.
-- Steve McMahon
June 13, 2008
Andrew Burkhalter: Saving PloneFormGen Data Directly to Salesforce.com, Redux
Saving PloneFormGen Data Directly to Salesforce.com gets more interesting with related records and host of other features and bug fixes.
It's been a while since I've written an update on the progress that's occurred leveraging the fantastic PloneFormGen to save form responses directly within Salesforce.com and the aforementioned article (though still a good source of background information now has several factual inaccuracies.
The 1.5 branch of the code base has seen a couple of initial releases and offers the following features, which I've enjoyed using on some of the sites we've deployed:
- "Parent"/"Chained" adapters - There's now a simple UI and functionality for related record creation within Salesforce.com.
- Support for file uploads (typically stored as an Attachment record related to some other record within the CRM system)
- Better handling of dates
- A whole host of other minor bug fixes
Of course, it's always better to see, rather than read what I'm talking about. The following screencast consists of a pretty advanced example that demonstrates all of the aforementioned features and then some:
Thanks to Jon Stahl, who presented on the above at the latest NOLA Plone Symposium. Without his refusal to demo this live, creating these videos would likely still be on my todo list. Hope you enjoy!
June 09, 2008
Steve McMahon: Buildout for Integrators vs. Buildout for Developers
Buildout is no longer just for developers. Get your products ready!
With the release of Plone 3.2, all the major Plone installers will be buildout-based.
The Unified Installer is already buildout-based, and there are experimental buildout-based binary installers for Windows and OS X available on launchpad.net. The Windows and OS X installers will not require installation of a compiler.
This represents a watershed event for the deployment of Plone: buildout will be our mainstream product installation system. What was once a technology for developers will have become a technology for integrators.
If we're to make Plone's installation story as good as possible for integrators, this is going to require some adjustments by add-on product developers.
- It's time to eggify your products and upload them to PyPI. It's amazingly easy to do so, and there are several examples in the collective that you may use as models. Look in particular for the Products.* products like Products.Clouseau, Products.PloneSoftwareCenter, Products.PloneHelpCenter and Products.PloneSoftwareCenter. Most of these are simple updates of existing products. You may still (and for some time, should) create old-style tarball distributions from the same codebase without much extra work.
- Strongly consider putting your eggified product in the Products.* namespace to simplify installation. That's currently the easiest way to avoid the need for ZCML slugs, which are incomprehensible to many integrators. If you're converting an existing product, it really belongs in the Products.* namespace so that code that imports it doesn't break.
- Once that's done, update your installation instructions to document installation with buildout. It's a lot simpler than the old method.
- Don't tell folks to use your buildout. That's a fine idea while a product is in development and the development team needs to have the same environment. But, it's the wrong thing to tell an integrator. Tell them how to add your product to their buildout with as few side-effects as possible.
June 06, 2008
Jon Stahl: Plone Strategic Planning Follow-Up Sprint Report Out
June 04, 2008
Alan Runyan: Plone Symposium Underway
News from Symposium and some Enfold Systems updates
6/4/08 - New Orleans
The symposium was kicked off at 9:30AM CST this morning. There are two tracks: developers and business. The conference attendees are of an interesting blend: the business track has about 30% of the attendee's. The development track ranges from sophisticated production environments to point-and-click salesforce integration. The symposium will last 2 days. Each evening all the attendees will meet up to have food and drinks at a
local bar. And of course there will be music after 10PM at the venue. Enfold Systems hosted the conference with sponsorships from Diamond Data Systems, Six Feetup and Gocept Consulting.
So far the big news has been that the Plone Handbook for End Users has been released for Plone 3.x. Free under the creative commons and will shortly be available in hard copy at Amazon.com in the United States. You can find the book at http://plonebook.info/ -- check it out! A few other tidbits.
Enfold Systems has announced the releases of their product line. The Microsoft Web Server integration, Enfold Proxy 4.0 (commercial product) with support for Vista with numerous bug fixes and a complete documentation overhaul. Enfold Desktop 4.0, now *FREE* is available in its final form. And the release candidate for Enfold Server 4.0 which ships with Plone 3.1.2 and a complete overhaul of documentation.
The new enfold systems website has been launched! It uses Enfold Systems content deployment platform, Entransit. *VERY* interesting. And demonstrates Enfold System's committment to the content deployment platform. Check out the website and let us know what you think! http://www.enfoldsystems.com/
Desktop 4.0 final offers a superior user experience to past versions and Enfold Systems has committed to merging all DAV/Server component patches to the Zope and Plone platforms.
May 06, 2008
Rob Miller: OpenPlans, now with Plone 3! (and easy to install, too...)
An overview of the OpenPlans software's recently added Plone 3 support and improved installation story.
Wow, it's been a while since I've sent a message out to the greater Plone community. I've been a bit busy over the last few months, what with having a new baby, and with internal-facing improvements to the OpenPlans software.
In the last weeks, though, I've been able to get around to some long-lingering needs which may be of interest to all of you. Specifically, I've been getting the OpenPlans software to work on Plone 3.0, and I've put some finishing touches on the OpenPlans installation process, so that it's now much much easier for someone who wants to play around with a full OpenPlans stack to get started. (OpenPlans, for those of you who don't know, is the largely-but-not-exclusively Plone-based software that powers the collaborative community website openplans.org, among others.)
The Plone 3 support is still experimental; it's not deployed on any of our live sites, and it hasn't yet seen any extensive testing. It installs and works, however, and all of our unit and functional test suites pass. And not only do they pass... they run much more quickly. The zopectl tests are about 2.5 times faster (yes, that's 250%!) than they were before. The flunc tests, which emulate a browser and connect to a running site over HTTP, don't see that much of an improvement, but they are consistently 20-25% faster than they are against a Plone 2.5-based stack. Much (but far from all) of the improvement comes from Helge's refactoring of Membrane's object_implements index implementation; if you run a Remember or Membrane based site and you haven't played around with that code, I strongly recommend you do. In any event, once we get this merged back to the trunk and installed on the openplans.org site, I'm confident there will be a very noticeable performance improvement for our users.
Equally exciting to me is that we now have some nice tools in place for people to get their own local copies of OpenPlans working. It's taken us three iterations, but we've finally got a set of build tools and a build process dialed in that is working for us in managing both our development and production deployment environments. And we've put some thin wrappers around this to make it easy for you to get started. You can learn more at our getting started page. If you're REALLY impatient you can eyeball the steps you'll have to take to get things going in the quick start section, although you'll probably also want to look at what you will need since OpenPlans does require that some other tools and services be available on your server before you can start the build.
Those of us at TOPP have had a great time building this; we hope that you find it valuable, and that you have as much fun using it, either hosted by us on openplans.org or as your own installation elsewhere.
March 11, 2008
Andrew Burkhalter: Sightline Daily Recap
A recap of a developer's favorite features in action on the Sightline Daily Plone-powered website.
Yeah, I know that Jon already let the Sightline Daily cat out of the bag and every day brings ever more impressive and interesting Plone sites, but before I move onto the next project, I'll afford myself a few minutes to get nostalgic. Thanks for humoring me. I figure anything that consumes several hundred hours+ and a few months of your life deserves at least a blog post for posterity. Plus, I'm happy with the result.
So, in no particular order, here are several of the noteworthy pieces that make up Sightline Daily:
- I suppose the first thing anyone notices in a site is the graphic design and, *man*, is Sightline Daily tastefully done. It's clean, skimmable, attractive, and presents a lot of metadata about news clippings in a non-overwhelming way. A few times, I found myself mindlessly clicking around and just absorbing the niceness. Sightline Institute managed the design process with Ryan Swarts and it's a great product. My colleague David Glick implemented the CSS to perfection with some initial bootstrapping and work by ONE/Northwest friend Trey Beck.
- By ONE/Northwest standards, there was a rather large team collaborating on this project. Sightline brings ~10 content editors, bloggers, content creators, and project managers to the table. On the implementation side, we teamed with Web Collective (they focused on the blog features and portlets mostly, while I did the daily news headline-related programming), bringing the number of programmers, templaters, specification writers, and CSSers to 8. On top of the implementation work I was responsible for, I had great time working with my fantastic co-worker, Kelley, helping to manage the biggest team I've worked with to date.
- I believe Jon mentioned the bookmarklet for clipping headlines, but this is fantastic. It's the fastest method I've seen for *manually* pushing content into Plone. Leading up to the implementation, I was a bit nervous about this piece, but equipped with a similar snippet produced for Salesforce.com by a co-worker, Steve, some inspection of the del.icio.us bookmarklet, and some Googling about, this was a cinch. You have to see the screencast below to get a sense for how it works. Money quotes from Sightline Daily editor Kristin Kolb were "You're saving me from carpal tunnel" and "I feel like I just received my Christmas present early" (I first demoed this in early December) upon seeing this. Awesome. I couldn't make that up.
- Auto-generation of related items based on a Plone catalog query for 2 relevant news headlines and 1 blog post. The effort to navigate to and hand pick related items was too time-consuming for the editorial process, so we wrote code that takes into account key terms to use for a query of Plone's "SearchableText" index and creates references to the returned results.
A wizard-esque configlet that logically steps through the entire publishing process from choosing the date for the next "edition" of news clippings through to bulk editing all the way to previewing and publishing for site visitors. The entire process can be done outside the context of the normal Plone user interface. The highlight is definitely the bulk edit screen (seen to the right), which allows for starring news headlines as "top picks", editing of the keywords that should be used for auto-relating items, and drag 'n' drop reordering of stories. Kudos to Jon for brainstorming a solid, implementable specification for this that held pretty closely from mockup to implementation.
- It's been said before, but Zope 3 brings us a fantastic event system. The bookmarklet mentioned and screencasted above uses Javascript to get the current browser location and pre-populates the news headline with a permalink. There's no need to slow the clipping down by forcing the editor to manually type or select the source publication as well (i.e. The New York Times or Washington Post). Rather, site users manage a centralized list of publications (new publications are added organically over time) using ATVocabularyManager. Using each object's permalink and Python's urlparse, we simply index the permalink's netloc for fast retrieval. With this, we can compute and index the publication automatically. This is where Zope 3's event system comes into play. Because ATVocabularyManager fires off custom events upon edit and deletion of vocabulary terms, our headline's source publication stays up-to-date with some super simple event handling code. Thanks to the kind soul that baked this capability into ATVocabularyManager, because I wasn't going to port AT-events back from Archetypes 1.5.x.
- Once launched and under normal load, the site turned out to be unexpectedly fast thanks to Cachefu and some minimal configuration effort.
- The site includes a nice bit of tasteful, interactive Javascript, again mostly implemented by my colleague David Glick. One can quickly expand and collapse the headlines and toggle between the days of the week. This makes the site highly skimmable.
- Every morning, Sightline sends out the top 10 or so headlines via email. In the past, one manual effort involved populating the site, while another involved drafting the daily email for a blast out to subscribers. This was a flat out waste of time and when you mix in how temperamental email clients are about HTML in email, this was a drain on Sightline staff. ONE/Northwest often uses an ASP-based email broadcasting service called WhatCounts for the "email newsletter" part of our projects. This service provides an incredible feature called "Smartget" (and it's near identical siblings "cacheget" and "get" -- which I like to call "Dumbget"). After the morning publishing process is finished on the site, Sightline logs into their WhatCounts instance and are greeted with a 1-line email template that goes out and grabs the raw HTML contents of the following page showing the latest news. Prefer plain text email, yeah, we did that too. No double entry at all. My colleague Sam, did a fantastic job of giving me a plain-old HTML template that was cluttered with the most nasty HTML tables and inline styles needed for a consist look in the wild world that is HTML email compatibility. I don't think in HTML 4 and tables, so this was a huge boost.
- Clean urls for news by topic, news by region, and rss by whatever. I have an unreasonable hatred of nasty urls. Try passing the following out over the phone http://www.domain.com/some/path/page?query_param=@value@&query_param_2=value2&template=some_template.htm. That's not even social. Thanks to Plone, we almost never have to worry about this. Before this project, I had never noticed the "subpath" (update: I intended to write "traverse_subpath" here, not "subpath" -- sorry if that threw anyone off.) parameter that's available in Zope's request. Essentially, you can add whatever directory structure onto the end of a skin-based template and it's right there for your consumption as a Python list in the request's subpath. I do a bit of processing in a browser view and instead of things like ?topic=energy, we have the following clean, friendly urls:
- daily.sightline.org/news/topic/energy
- daily.sightline.org/news/region/washington
- daily.sightline.org/rss/topic/energy/region/washington
- In my opinion, Sightline's best content is their in-depth blog entries that are part of a series. They've done great ones on bicycle neglect and the quest to go an entire year carfree. Brian and Justin of the Web Collective put together a basic "series" content type and extended the blog entry, so that in the context of a blog post, the author can assign an entry to an existing series. This isn't rocket science, but it works really well for Sightline's needs and the graphic design for a series object is one of the best templates on the site.
- Tests, tests, and more tests. I insisted before development started that because this application was so critical to the organization, because it was fairly complex with significant code interaction, and because there was a decent sized team of folks that had no clue what other developers were doing, that we needed to embrace a test driven development approach and push as much presentation logic into easily testable Zope 3 views. I even convinced myself that we had budgeted correctly for it ... oops. Test driven development is paradoxically both time consuming and time saving. At the end of it all, I don't regret the decision to adopt this approach one bit. I doubt few do. At the time of this writing we have 399 unit tests and all of them pass but 1, which I left unfinished to remind me of a feature I couldn't get working within the bulk admin interface and therefore disabled entirely. I wanted to finish that, but it was unnecessary and I needed to move onto other scoped items. The fact that we still have entirely passing tests after site launch for the enabled features signifies that even as we approached the looming deadline, we didn't abandon our agreed upon approach.
So, there you have it. I suppose I could write another post or two covering all the lessons learned and the endless details that went into getting this site launched, but for now, I'll leave things at that. It's best to reflect on what worked well in the end anyways. Furthermore, I think Jon still plans to do a case study and possibly a screencast about the editorial process. That will certainly be interesting and take a closer look at the big picture.
March 10, 2008
David Glick: collective.recipe.omelette: for more navigable eggs
Crack 'em open and mix 'em together...
I've been using zc.buildout for a few months now, and am quite happy with it. However, I got tired of navigating to my egg cache, locating the right package (and version) within a long flat list, and then clicking a few more times to actually get to the contents of the package. And I was looking for a project to practice my buildout recipe fu.
So I created collective.recipe.omelette. It's a simple buildout recipe that takes all your namespace-packaged eggs and merges their contents together into a single directory tree, in its own parts directory, with symlinks to the actual egg contents. The result looks much the lib/python of days gone by. So instead of:
egg-cache/ my.egg.one-1.0-py2.4.egg/ my/ egg/ one/ (contents of first egg) my.egg.two-1.0-py2.4.egg/ my/ egg/ two/ (contents of second egg)
you can now make use of:
parts/ omelette/ my/ egg/ one/ (contents of first egg) two/ (contents of second egg)
with obvious advantages in navigability and greppability.
Collective.recipe.omelette is available from the Cheese Shop. You can add an omelette to your buildout by making the following additions to buildout.cfg (assuming you have a part called instance and you want to generate symlinks for its eggs), and then re-running your buildout:
[buildout]
...
parts =
...
omelette
[omelette]
recipe = collective.recipe.omelette
eggs = ${instance:eggs}
One caveat: Since this makes use of symlinks, it of course won't work on a filesystem that doesn't support symlinks, such as Windows'.
February 17, 2008
Jonah Bossewitch: Fabricating Freedom
Free Software Developers at Work and Play
I haven’t posted much here lately, but I have been writing. I recently finished my first semester as a doctoral student in Columbia's school of journalism and one of the papers I completed draws directly on my experiences in the Plone Community. A few years ago I remember being struck at how different open source development was from what I (and presumably others) imagined it to be. I kept pitching human interest stories to journalists, ones that might emphasize the playfulness, the sprinting, and the organizational experimentation, but got very few nibbles. So, I finally wrote some of this up myself before it all fades from memory:
Fabricating Freedom: Free Software Developers at Work and Play
The paper was for a wonderful class this semester at the New School taught by Paolo Carpignano (The Political Economy of Media - here is the syllabus).
The class was all about the shifting relations between fabrication and
communication, or more colloquially, work and play. We opened with Marx
and Hannah Arendt and closed with Yochai Benkler and danah boyd. The piece I wrote is personal and anecdotal, but reflects on all that our community has taught me about free software, free culture, organizing, consensus building and the day to day politics of software development.
enjoy.
February 16, 2008
Andrew Burkhalter: Increasing Documentation for and Visibility into Plone's Efforts to Integrate with Others
Seeking comments on a plan to "make sure the "strategic integration" story with other systems is visible and documented" as follow-up from the recent Plone Strategic Planning Summit.
On the off chance that you're like me and prone to falling behind on your various Plone list-related reading, I'm soliciting feedback on my plan for ticket #7813 aiming to "make sure the "strategic integration" story with other systems is visible and documented". Comments welcome. Full plan below:
With ongoing support, feedback, and guidance from the broader Plone
community, I volunteer to serve as "champion" of trac issue #7813,
'Make sure the "strategic integration" story with other systems is
visible and documented' (http://dev.plone.org/plone/ticket/7813). I
will do so by offering to invest time/energy within the following two
focus areas:
1) Developing code, making increasingly better releases, documenting,
and marketing for the Plone integration with Salesforce.com as the/a
Plone Customer Relationship Management (CRM) story
2) Beg, bribe, borrow, and steal case studies and documentation of
successful implementations of Plone integrating with system X for
plone.net and plone.org/documentation. I'm not able to offer code in
this department, but I will aim to highlight successes and possibly
over time aggregate pain and resources for new integration territories
we'd collectively like to explore.
=-=-=-=-=-=-
Deliverables - I.E. what will exist in 6-9 months
=-=-=-=-=-=-
Plone with Salesforce.com serving as CRM:
- Increasingly more mature releases of the following suite of
products: http://snipurl.com/plonesfproducts
- A solid manual at:
http://plone.org/documentation/manual/integrating-plone-with-salesforce.com
- Personal and Plone community participation in:
http://groups.google.com/group/plonesf/topics
- Increased use of the term "CRM" in close proximity to the word
Plone, so that folks Googling for a CRM that works with Plone see this
as a strength for Plone, rather than a weakness.
Shed light on the "strategic integration" story:
- 3-5 "integration-centric" case studies exist on plone.net
- A "3rd party integration" category for: http://plone.org/products.
Ensure tagging is happening.
- Enhance "Plays well with others" section of Plone.org homepage
under the "Standards Compliant" section
- Bonus points: Hightlight commonly needed integration stories
hopefully causing new tools/documentation to emerge
=-=-=-=-=-=-
What success looks like
=-=-=-=-=-=-
I don't think the above alone will accomplish this, but it's a start.
I think longterm success would be:
- Members of other software communities (i.e. Salesforce.com, Moodle,
Facebook, <insert system that can be integrated with here>) learn
about and deem Plone a viable and *complimentary* CMS. This knowledge
is learned within the context of their existing communities.
- Integrates well with X is easily found and helps certain decision
makers decide to use Plone. Seminal "why we chose Plone" blog posts
appear citing integration as a key reason :)
- Plone continues to thrive by staying focused on what it does best
(as seen with future code Plone releases). When strategic, Plone
integrates nicely in order to avoid spreading itself too thin.
=-=-=-=-=-=-
Call for Participation
=-=-=-=-=-=-
If Plone's integration makes you excited. Logical next steps include:
1) Give me feedback on this plan
2) Watch ticket #7813 at http://dev.plone.org/plone/ticket/7813
3) Tell me on list of off list what you've integrated Plone with and
why you think it's interesting. We'll turn interesting stories into
case studies.
4) If Salesforce.com as a CRM for Plone excites you, join this Google
Group: http://groups.google.com/group/plonesf/
Hopefully this is pretty clear and actionable. I look forward to the
ensuing discussions. Let me know what I'm missing and what seems
vague or unachievable.
February 14, 2008
Andrew Burkhalter: In the Wild: PloneFormGen Speaking Directly to Salesforce.com ...
The Salesforce Adapter for PloneFormGen sees the light of day.
... or "So, we're hiring a database developer to help with CRM implementations ..." But, that alternate title isn't really the point (unless you're interested ;) )
As far as I know, the following PloneFormGen "Form Folder" is the first publicly available, advertised, and production use of the Salesforce Adapter for PloneFormGen (please correct me, if I'm wrong). If you haven't heard about this piece of code that connects Plone to Salesforce.com via PloneFormGen, you might want to start here or here.
This is great for a couple reasons:
- The particular use case (i.e. collecting applicants for an open job offering) is one that I certainly never would have thought of -- and that's the point. Creating these shouldn't take a Plone developer. Nor should coming up with the possible use cases. It should be the responsibility of staff that need to build the relationships they need in order to do their work. My colleague Steve is no slouch with CRM and Salesforce.com, but the portion of getting this on our Plone-powered site doesn't take any additional expertise.
- It will help flush out any bugs, so that we can push onto a more mature-sounding release (i.e. final, not beta or release candidate)
- It comes equipped with the following explanation, which I think is fantastic:
Geek FYI: this is a form built in Plone that sends your data directly to our Salesforce.com database. We'll receive a notification when that data gets created. You'll also be automatically added to a Campaign that will capture all applicants. I've got a view in the Console for keeping track of all the applicants for this position. If you understood all that, or really want to, that's a good sign...
So, um, test it out if you want...
January 24, 2008
Alan Runyan: Enfold Desktop 4 - Free and Server Independent
Enfold Desktop is now server agnostic and free. Desktop will work with any DAV server including: Zope, mod_dav, IIS, etc. Plone is no longer a requirement. Also its has a much better user experience than any previous version. A must-have for Windows users.
Finally the software has been released. Last year there was a Ploneability High Education event held in November at the University of Houston. I promised a few things during that presentation. We have followed through and I want to explain to the wider community our motivations.
At the Ploneability event I said Desktop 4 would be free. Desktop is now available to download. I also want to highlight some features: decoupled Desktop from Plone, the UI is now mostly asynchronous, fixed tons of bugs. We now feel that Desktop 4 should be widely distributed and urge everyone to use it.
Specific highlights:
- Enfold Desktop no longer requires Plone. The Desktop Server components for CMF/Plone add "more functionality" to the user's experience. Such as workflow control and property sheets. But the server components are no longer required. In this mode Desktop users simply have fewer options. They have a very nice and reliable DAV client that is more predictable than Microsoft
Web Folders. You can now use Enfold Desktop with Plone, Zope, CMF, mod_dav, IIS, etc. In fact we urge you to use it on any DAV server! - Performance. The UI was originally synchronous. This meant you could do one thing at a time. If an operation took a long time (say uploading a 100MB file) your Enfold Desktop would become unresponsive. This is no longer the case. You can upload and download multiple files at once and edit files -- all simultaneously! The user experience is significantly better because of these performance enhancements. Give it a shot and tell us.
- Bug squishing. Not much else I can say. We added a
Report a bugfeature. Also if desktop does something unexpected it will prompt the user to send us a message (it also sends internal logging). This has helped tremendously. We have uncovered loads of bugs and fixed them. Often bugs that end users were unaware of but were still happening under the covers.
Why we released:
Enfold Systems is very interested in acting as a good community citizen. We believe that Enfold Desktop will enable people to win more consulting projects. If they want support and to remove the ads - they can pay us. But the result is the consulting community is often asked for Windows Desktop integration and there was no de-facto standard. Enfold Desktop aims to be that standard. By having the broadest adoption of Enfold Desktop there will be a coherent Plone / Windows Desktop integration story.
This is only the beginning. We have laid one piece of the foundation. Plone has a complete DAV integration (server and client). But it needs much more. Specifically we need software developers to make their software DAV compliant. This requires the entire community to buy-in. There are many reasons for DAV compliance. One example could be import/export.
An example is having a representation of content outside of the CMS, say in the case of exporting. Also a way to create content by importing this representation. So the import/export story, I believe, could be tied to having a DAV representation for content. Plone still does not have a full import/export story that is 100% textual and independent of the storage medium. Customers want repeatable import/export.
Another could be creating a cross platform editor for content. We now have Enfold Desktop and External Editor. But we can not edit "rich content types". This could be very interesting. Double click on content and have it open up in a rich editor that supported calendar controls. We have a higher level of abstraction other than "File". It would be a pity for everything to be file oriented.
If you do not keep up with IT analysts writings. Plone is the big kid on the block when it comes to Open Source content management. Desktop integration is one facet to CMS. The plone community now has a great foundation to make a much richer experience. And an immediately useful Folder/File-level DAV integration for the Windows Desktop. But it will require more from the community. Specifically users asking product writers to support DAV. Because it is the product aftermarket that makes the Plone CMS so powerful. Commercial CMS's do not have such a flourishing aftermarket. The Plone aftermarket is continually building and sharing 24 hours 7 days per week.
Lastly I would like to clarify Enfold System's position when it comes to open source and Plone. Enfold Systems is the Windows open source content management system specialist. We focus on providing product, services, and integration to organizations that want the power of the open source Plone content management system while reusing their existing Windows infrastructure. This is very important for large organizations. This is our niche. Our customer's want a vibrant community. So as we provide service to a wide variety of organizations from small-medium size non-profits to fortune 100 companies - Enfold Systems is trying to build a sustainable open source model. A part of this manifests in big releases like Enfold Desktop 4 being released. But more often than not you can see aftermarket Plone components such as the magnificent UploadReferenceWidget and the visionary Entransit Content Deployment all the way to unseen bug fixes to Python COM bindings, Zope, and Plone. PLIP 187 is an example of us feeding changes from product development back into Plone proper. Enfold Systems sees releasing Desktop as a way to grow the Plone ecosystem. Also to maintain visibility that Enfold Systems is both the premier Open Source Windows CMS provider and the Plone experts.