Thursday, December 31, 2009

Happy Old Year, Happy New Year for Magnolia CMS

We are happy to say that 2009 has been the best year ever in Magnolia's corporate history. We are entering 2010 in a very strong position. We have a great team, a great product, great customers and our financial position is strong. Our license revenue has increased more than 60% for the third year in a row and has now reached about 75% of total revenue, clearly in line with our strategy to leave services to our partners and focus on product development, sales, marketing and education.

On the documentation front, the realization that documentation is as important as the product has resulted in significant more investment into documentation. While unfortunately, some of it has not yet left a visible trace, documentation has significantly improved in many areas. Most importantly, we have just added a full-time technical writer to our team and fully expect our vision for the documentation become a reality in 2010 (some pretty exciting ideas - stay tuned!)

In addition, 2 more new positions will be filled in January, making Magnolia bigger and stronger than ever. So expect great things form us in 2010 - and we expect great things from you! We have seen growing community activity, many cool modules have been developed and the Magnolia Conference was a personal highlight in my life. Thank you for your continued support!

So Happy New Year to all of you. We are looking forward to a fantastic 2010 together with you!

Tuesday, August 11, 2009

Dynamic Redirects

Have you been in the situation where you want to shorten URL's in your communication? For instance, it is time for a new Magnolia newsletter, the 8th one in our series. Our newsletters are located at http://www.magnolia-cms.com/home/news/newsletters/newsletter-8.html - not exactly brilliant from a communications perspective.

Magnolia allows you to add VirtualURIRedirects, and I have written about their usefulness before in the context of site restructuring.

For our newsletter, we typically add an entry in the configuration like this:


In other words, we add a static entry that forwards www.magnolia-cms.com/nl8 to our newsletter location deep within the site hierarchy, and makes it much easier to send out links or twitter about it.

So far so good, but today saw the 8th time I needed to add such an entry; and what is worse, I realized that we forgot the redirect for our 7th newsletter (which was sent out while I was on holidays, and the person doing the job did not know he had to add it).

Time to dig a little deeper into Magnolia, and avoid future work and worries!

Since sometime in Magnolia 3, you can use regular expressions in the VirtualURIMapping configuration. Here is what you need to do

  1. copy an existing configuration
  2. instead of the default class (aptly named "DefaultVirtualURIMapping") use the class RegexpVirtualURIMapping
  3. define your match ("fromURI"), in our case "/nl([0-9]+)$" which means any URI starting with /nl followed by digits and nothing more (the $ means end of line). The parenthesis denote the dynamic part, which we need to determine the correct destination in the last step:
  4. define your target ("toURI"), in our case the newsletter page deep within the hierarchy, with an added twist: we dynamically add our match to the page name, i.e. "newsletter-$1.html". In this case $1 means replace "$1" with whatever was matched in step 3 between the parenthesis. (And yes, you can have more than one set of parenthesis and reference the matches with $1, $2 etc).
The resulting entry should look as follows, and all you need to do now is activate your configuration and enjoy!


As you can imagine, this is also great for search-engine optimized landing pages.

Friday, March 27, 2009

2009 NBVP Future of Open Source results

The North Bridge Venture Partners 2009 Future of Open Source survey results have been published.

Fascinating for me is slide 13, which shows how the decision criteria for open source have changed from 2008 to 2009. Number one is lower TCO (unchanged). Access to code, which was #2 last year, has dropped to 5th rank in 2009. Now, "Superior Security" is ranked second, up from 7th place in 2008. Third rank is unchanged "Freedom from vendor lock-in" and new this year is 4th rank: "Better quality software".

So open source software is perceived as cheaper, better and more secure than proprietary alternatives. Sounds like a pretty good position to be in for any Open Source vendor.

Tuesday, March 17, 2009

The CMS Vendor meme - a.k.a. CMS vendor reality check


We have been challenged by Day to participate in the CMS Vendor Meme. To repeat:

The rules
  • A CMS vendor is challenged to honestly answer all items on the "Reality checklist for vendors" suggested by CMSWatch's Kas Thomas (aka the "we-get-it checklist for vendors").
  • If possible the vendor has supply screenshots, links or other means to make it easy to verify the answers.
  • The answers also need to be supplied in a short form of one to three stars (denoting "no", "sort-of", "yes").
  • Answering all questions on his blog allows the vendor tag some other WCMS vendors.
  • A tagged vendor should provide a link back to the blog that tagged him.
So here we go:
1. Our software comes with an installer program - Yes

Yes, download the EE trial and you can choose between various bundles meeting your needs, including an installer. All files are installed in a single folder, no additional software except Java is needed. To uninstall either use the uninstaller installed by the installer, or simply remove the folder.

2. Installing or uninstalling our software does not require a reboot of your machine - Yes

No restart required. Why are you asking?

3. You can choose your locale and language at install time, and never have to see English again after that - Yes

You can chose the installer language, but the default locale when you start up Magnolia is English. You can change that in the user preferences for each user separately, so if you have a globally distributed team speaking 15 different languages, no sweat.

4. Eval versions of the latest edition(s) of our software are always available for download from the company website - Yes

Not only eval versions, but even completely functional versions are available from Magnolia - a free trial of a complete Enterprise Edition or a completely free Open-Source Community Edition is available for immediate download.

5. Our WCM software comes with a fully templated "sample web site" and sample workflows, which work out-of-the-box - Yes

Oh yes. And not only is it a sample site, it is a a production-ready, search-engine-optimized, accessible site that works on any browser. CSS driven. XHTML. State of the art.
















6. We ship a tutorial - Yes

We provide all documentation online, including a 300 page user manual. No registration required.

7. You can raise a support issue via a button, link, or menu command in our administrative interface - Yes

Yep, link to our issue-tracker is right in AdminCentral.



8. All help files and documentation for the product are laid down as part of the install - Sort of

All Magnolia documentation is online. Link is right in AdminCentral (see above). As a side-note, I don't think it is a great idea to deliver documentation directly with the product, because it bloats the download and is outdated before it is read.

9. We run our entire company website using the latest version of our own WCMproducts - Sort of

Nearly. Unlike Day, we did not have three years time to release our latest generation of software, and since we just released Magnolia 4.0 last week, I am afraid we did not have time to upgrade our site yet. We'll do it as soon as we have managed to call back all those prospects that inquire about us these days.

10. Our salespeople understand how our products work- Yes

Salespeople? That's a bit last century, no? But the people you talk to know how Magnolia works, because the people you talk to are the people who developed it.

11. Our software does what we say it does - Yes

Of course. We tend to say less and let the software speak for itself though.

12. We don't charge extra for our SDK - Yes

Of course not. We don't even charge for the software unless you want our supported Enterprise Edition.

13. Our licensing model is simple enough for a 5-year-old to understand - Yes

You can get one version for free. You get a better, supported version for 12k $ per server per year. Simple enough for a five year old.

14. We have one price sheet for all customers - Yes

Yes, and Magnolia prices are published on the web. We do give discounts to non-profits and educational clients, though.

15. Our top executives are on Skype, Twitter, or some similar channel, and: Feel free to contact them directly at any time - Yes

CEO Pascal Mangold: Twitter
CTO Boris Kraft: Twitter
... and we are always happy to talk to you on the phone or in person.

And we are tagging:

Jahia, Alfresco, OpenCMS, Hippo, EZ, Core Media, dotCMS

Tuesday, March 10, 2009

Magnolia CMS 4.0 Screencast

With Magnolia CMS 4.0, managing the layout of one or multiple Web sites has become as simple and yet as sophisticated as managing content. Designers and programmers have full control over the look&feel of content input and output interfaces within the front- as well as back-end through the browser-based administration interface. They can quickly build custom Web site designs on top of the Magnolia Standard Templating Kit which provides production-ready templates.

Tuesday, March 03, 2009

Do you ever buy bottled water?

Mark de Visser recently posted about Open Source pricing, asking "Is there a formula for what open source software should cost?".

I don't think there is - or should be - a formula for what Open Source software should cost compared to proprietary software. Foremost, there is rarely an exact proprietary equivalent to an Open-Source offering. Even if there was, the product itself is only part of what you buy. And even within the proprietary world, prices often vary widely for similar products. (Did you ever buy bottled water?)

But I agree that pricing should be straightforward and transparent in general. At Magnolia we originally tried per-user pricing but it quickly turned out to be too complicated, too many questions asked ("what exactly counts as a user"). We have had a per server pricing for the last 2.5 years and we have always published our prices on the web, easy to locate. This way, we minimize our effort, which is a big part of what Open-Source distribution is all about. We focus on the product, not on sales.

Now, this cost reduction can either be propagated to our clients through lower prices or through better software. I don't think the purchase price should be the first reason why you should look at Open Source. If you pay 1000 USD for a car that can only turn left, would you consider that a good deal? Thought so. So the real driver should be value, and the value proposition of Open Source is rather different from the value proposition of closed-source, proprietary software.

The real value of Open-Source is in the its openness, which for true Open-Source products goes far beyond source code availability. Some ideas:

If your IT team is working with an Open-Source product, they will have more interesting and more satisfying work to do and they will learn things that are actually useful for many years to come, as Open-Source products tend to be based on standards. The result is not only cost savings down the road (because your in-house-team can and wants to do more themselves), but also a generally better implementation because you have a motivated team close to the client. Finally, your IT staff turnover is reduced, which further improves your ROI.

So if you pay 20% or 120% for Open-Source compared to a proprietary product has little to do with the value you get. In fact, I would argue that Open-Source provides more value, which is exactly why Magnolia is Open-Source software.

Thursday, February 26, 2009

Personalization in Magnolia for the Van Lanschot web site

(by guest author Edgar Vonk, software architect at Amsterdam-based full service internet agency Info.nl)

As described in the case study on the Magnolia web site Info.nl has recently created a new corporate and marketing web site for Van Lanschot Bankiers, the oldest independent bank in The Netherlands.

In this blog post we will shed some light on the technical realization of the personalization functionality that is part of this (Dutch) web site. The post will not cover details on the concept behind this functionality nor aspects concerning privacy.

The concept is based on Info.nl's model of Virtual Warmth where an online dialogue is sought with the potential client (prospect). The prospect can enter some details on his (or her) financial situation. The web site then displays topics (often concerning financial products) that are related to the prospect's situation. Also, any topics that are visited by the prospect during the active session are tracked and stored as part of the prospect's session. This way a 'personal file' is created on the fly:



Magnolia Enterprise

Info.nl has chosen Magnolia as its open source Java CMS of choice, which has resulted in Info.nl being a Magnolia implementation partner. In this case Magnolia Enterprise was chosen because of the extra features, guarantees and support that come with this edition. Info.nl deemed Magnolia Enterprise a good choice for the Van Lanschot case because of the openness of the product, the reliance on open standards, the extensibility (by means of custom modules) and the intuitive user interface.

Tracking visited topics

The visitor (prospect) is always anonymous. No personal data is stored by the system; hence there is no authentication mechanism. For each prospect a HTTP session is created in which the personal file is stored. Each time a topic is visited the ID (a JCR UUID) of this topic is stored in the personal file in 'last seen' order. Care is taken that topics are not stored twice. This online dialogue is implemented as a single-page-interface using AJAX technology. To realize this functionality a custom Magnolia Filter was written that was set to intercept all topic 'pages' using a virtual URI mapping. The screenshot below shows the filter in the Magnolia filter chain:



In our JSP templates the personal file data is then read from the HTTP session in order to show the list of topics visited by the prospect.

Storage and retrieval of the personal file

The prospect can also choose to save his personal file for later use. The prospect then receives an e-mail with a unique (machine-generated) link back to the stored personal file. The persistent storage of the file is implemented in a Magnolia Page (the Controller in the MVC pattern):



Using a virtual URI mapping this Page is activated upon a storage request. The visited topics are stored in the form of a comma separated list of unique IDs (taken from the current HTTP session of the prospect).

Retrieval of the personal file is done using the unique link that was sent in the e-mail. The associated page retrieves the corresponding personal file from the database and places this data in the current HTTP session. The web site then shows an overview page where the visitor can quickly navigate to any topics that were visited in his previous session.

During this process no sensitive data is stored that could be traced back to the visitor. The stored personal file does not contain any details about the visitor; the e-mail address and name of the prospect are not stored outside of the session.

User generated data and Magnolia

The hosting infrastructure consists of one Magnolia authoring and two Magnolia public instances. We thought about storing the personal files in the JCR repository (Jackrabbit) but decided on a simple custom database in the end. The reason why we chose this option is that using the JCR it would have been tricky to make sure that this 'user generated content' would be available to both public instances as well as to the authoring instance. A separate database that is shared by all three instances was easy to implement. I would be interested to hear from readers if they feel that JCR storage could have been a good option too, using Jackrabbit clustering as a way to synchronize this data across the Magnolia instances.

Result

Magnolia has turned out to be a good CMS for the realization of the new Van Lanschot Bankiers web site. Extending the product with custom functionality part of which was described in this blog post turned out to be relatively easy. This is due to the low learning curve of Magnolia, the openness and extensibility of the product and the reliance on open standards. And thanks to the intuitive interface of Magnolia the content editors of Van Lanschot have no problem in maintaining this dynamic web site.