Skip navigation
1 2 3 Previous Next


66 posts
As you might have noticed, a lot of my past posts on here got corrupted and look pretty much empty. Additionally, publishing new posts had gotten quite painful and time-consuming. So to keep a long story short, a backup of older, often visited posts as well as all new posts are now available elsewhere - on the new Magnolia blogs. I might be publishing something here in the future if the platform gets stable again, but in its current state it's just not very usable. Sorry. Cheers and see you over there! Jan  
After a short hiatus from blogging, I  
Yay, another video blog post! Since the last one on managing campaigns with a new Magnolia app was so well liked by the audience, I figured I'd give it another try - this time, on a completely different topic, though. In just a couple minutes, I want to show you how easy it is to get Magnolia running with Bluemix - IBM's cloud platform that helps developers rapidly build, manage and run web and mobile applications. Why Bluemix when there's plenty of other clouds? For one, because I don't want to bother with a whole VM, having to take care and update all the infrastructure as soon as the next Heartbleed bug or similar stuff is discovered - or perhaps just because it's dead easy. :) 



It seems that campaign management is my readers  
[i]Today, I'd like to introduce you to a colleague of mine: Tomas. Tomas works with Magnolia's marketing team, where he focuses on developing our corporate website, as well as a number of communications tools like newsletters. He's recently taken a liking to blogging, so I'd like to leave him this stage today, as he has some pretty cool pieces of knowledge he'd like to share.[/i] Do your CMS editors need to simply (that is, without knowing html, css and other fancy web technologies) create and send out newsletters every week? Do they additionally want to have these newsletters neatly archived on your website, tied nicely to your existing website theme? If you answer these questions with a resounding  

To change up this blog's format a bit, I'm presenting to you: a video blog post! It's only a couple minutes long and shows you how you can manage your marketing campaigns efficiently with Magnolia. Marketing campaigns take a lot of planning and collaboration, and they're typically made up of a lot of different types of content. That's what we're trying to approach with this app: it lets digital marketing teams gather all the content for a given campaign, send it through a review cycle, and publish it in stages (or all at once, depending on your strategy).

Watch the demo below and let us know what you think!

A few weeks ago, I published a script here that helps you generate new Magnolia apps in practically seconds. From the feedback I received, quite a few of you took advantage of it - that  

Not so DAMned DAM support Blog

Posted by rah003 Oct 13, 2014
[img=919x454][/img] Those of you who have used Magnolia for a while know that it has come with its own Document Management System (DMS) module for years. The purpose of the module was to allow you to manage documents within your CMS. While the module was used extensively by everyone as a common storage of digital assets (images, videos, and other media), it never quite picked up as a traditional DMS. The module itself also had a few architectural compromises in order to let it function as a DMS, and as such was not very extensible. So with Magnolia 5, we finally bit the bullet and outphased the DMS in favour of a new D-module - the Digital Asset Management (DAM) module. And with new module, we also applied lessons we learned with the old one. [b]Following the Open Suite approach for DAM, too[/b] Rather than providing one all encompassing store for your digital assets, with some edit functionality on top, we looked around and noticed that there is a plethora of DAM implementations that we could never compete with. So in typical Magnolia fashion, rather than fighting them, we decided to join forces with them: we made sure that the interfaces and APIs of our DAM implementation allow the exchange of underlying DAM implementations for far more sophisticated ones than we could implement - while still providing a reasonably good default implementation to those who can  
Photo credit: Content Management and related tools have long been about much more than just content management. You might find yourself strategising around managing not just your content, but also the - customer experience - visibility and flow across different channels - multiple domains - and much more In this post, I  
Image source: Today's business world is anything but peaceful. Instead, it is a rather cut-throat environment that doesn  
Have you recently checked out your company  
I've been developing webapps pretty much since the start of the web in the second half of the 90s, and in Java ever since the first edition of Java EE. During that time, I've met many people and have seen many different approaches to both the development and the testing of the code. One of the funnier parts of web app testing was a testing method used by one of the people I worked with. Between me and other colleagues, we secretly called it the Madman's test. The test consisted of starting up a webapp. Once it was up, or at least once the start screen was present, he started to click around the web app like crazy. It didn't matter to him what he clicked or what he did, all that mattered was whether he managed to make the application produce an error message. If there was a single error, the app would fail the test. It was part funny, part annoying. Only lately have I come to appreciate this method of testing. It can certainly help with discovering some of the issues that regular users might run into, for example by double clicking on some action by accident. And as you know, any issue that can be found and fixed in development will make user appreciate the app just a little more. Especially since some of these issues can be fixed with very little effort, once you know the exact cause and right place for the fix. Just like the fix provided in MGNLUI-2701: in the end, the fix was just a single line of code per type of dialog. Kudos to the team for coming up with the UI architecture of Magnolia 5 - their hard work and focus on clean code without duplicates made fixing such issues easy. So I encourage you to try the Madman's test in your next software testing session...Or, if you have experience with it, please share valuable findings in the comments. Image source:  
While parts of the cloud IT that are still being hyped are changing rapidly, the whole segment is not past the hype yet. The cloud report [1] that Gartner published 9 months ago still holds true today. Reports of disillusioned customers of such solutions [2][3] are a clear sign that the hype might have reached its peak for most parts of cloud offerings, though. And while many articles discuss the failure of cloud providers, not so many actually look into what the failures mean for users of cloud services. Understandably, no customer that bet their business on cloud services and is then affected by failure wants to admit to wrong judgement publicly. Take, for example, the failure in Oct 2013 [4], or the outage of Casablanca INT and their Big Blue One cloud service [5] where, even though it is a small cloud, the damage was estimated in the millions - for only a few days of outage [6]. And while clouds as a whole and services they offer continue to mature, their prospective customers are increasingly becoming aware of potential risks. This process, while very natural, re-shapes the cloud offerings towards a new silver bullet solution - hybrid clouds [7]. The trend towards hybrid solutions has been adopted in IT many times, whenever monolithic solutions didn  
Lets start with a small quiz: Can you find 3 differences in the pictures below? Yeah, you got it. That was an easy one. :) Surprisingly, implementing preview for extra asset types has been relatively simple as well. When coming up with the architecture of DAM, the Magnolia team chose to not generate previews and thumbnails of assets directly in the module, but rather delegate this functionality to the imaging module. And in typical Magnolia fashion, the part of the DAM responsible for linking the DAM with imaging is encapsulated in a configurable image provider. To implement this module, all I had to do was create a custom image provider for the DAM and configure extra thumbnail and portrait image generators in the imaging module. Ideally I would have only changed the existing image decoder or the image operation chain and not done anything with the image provider of the DAM, but unfortunately I discovered that theImageDecoder interface of the imaging module has a little bit of a rigid API and provides its read()method only with InputStream without further info. This works fine for various types of images where all theDefaultImageIOImageDecoder does is delegating to ImageIO, but it's not enough when working with other media types such as video or pdf. Yes, an alternative implementation could examine the binary data in the stream to read the header and find out if this is an image or a video or a pdf, but what we can't read from the input stream is info that would typically come from the user, such as which page of a pdf or which frame/second of a video to use for a generated thumbnail. Having discovered this limitation, the choice I made for implementation was using an alternative DAM image provider that still has enough info - at least about the type of media, and using separate image operation chains, overloading the load operation in each of them with the implementation of the load specific for a given media. The limitation of this approach is that load ops are specific to the way how the DAM stores binaries and can't be reused for other scenarios, but perhaps the imaging module will give more power to the decoder in a future release, and the above described limitation will be void. The version of the preview module linked below provides a thumbnail and portrait view for pdfs, using swinglabs pdf-renderer. For video (mp4, m4v), it uses JCodec and for other video types (mov, avi) Xuggle. Let's have a closer look at the configuration in case you want to try support for other video types: As you can see, each media type is associated with the appropriate[thumbnail|portrait]-xxx image operation chain to give you the freedom to swap between jcodec and xuggle or to add more types associated with each. The key is the part of the mime type for a given media that is after the slash (application/pdf, video/quicktime,