- Written by Ingo
- Created: 03 July 2013
- Last Updated: 03 July 2013
Checking out the source code, installing the database and adding the demo data may be difficult if you are not an experienced developer with some free time.
The alternative is: download the Cinnamon-Server-VM
The username is 'tex', with password 'tex'. Once unpacked, it will require about 11 GByte of your hard drive. You will need either VMware workstation (commercial) or VMware Player (free) to run the VM.
The Cinnamon developer VM contains the source code for the Cinnamon 3 server, including the dependencies (cinnamon-db and cinnamon-humulus) as well as a PostgreSQL server with a demo repository. So, you just can start up Cinnamon from the command line and open the browser to start exploring Cinnamon.
You can even connect with the desktop client from a Windows machine, for example if you wish to debug the code.
Also included is the Spring Groovy Grails Tool Suite, which is a free integrated development environment.
- Written by Ingo
- Created: 02 July 2013
- Last Updated: 02 July 2013
Cinnamon is an enterprise CMS (not: a web CMS) which allows you to create and manage complex modular technical documentation - for example version safe authoring of a repair handbook for a truck with thousands of build combinations (different motors, transmission system, axles, chassis, electronic systems etc) and multiple languages. It's also suitable for document management workflows (with Word / Excel / PDF files) and you can store and search all kinds of data and files.
The new version is based completely on the Grails framework and marks the transition from a custom servlet solution to the use of a large and stable framework which offers higher maintainability, faster production time and easier extensibility.
The source code for the server and its dependencies is available from the Github repositories:
- https://github.com/dewarim/cinnamon/ - the main server module
- https://github.com/dewarim/cinnamon-humulus - authorization and authentication for multi-tenant, multi-database access
- https://github.com/dewarim/cinnamon-db - the database layer
You can use Cinnamon as a standalone application, installed in a servlet container of your choice (for example, Apache Tomcat or Jetty) - or you can embed it into your own applications. It is a Grails plugin, so you can easily reuse all the features of a powerful enterprise CMS.
There is also a VMware virtual machine available: you can download the Cinnamon-Server-VM, which contains a ready-to-run server on an Ubuntu / PostgreSQL system. By using the desktop client, you can connect to this VM and experiment without having to do a manual install of the server code.
Cinnamon is licensed under the LGPL 2.1 (or later), included open source libraries may have different (compatible) licenses. So you can use Cinnamon for free in your commercial and non-commercial software.
- Written by Ingo
- Created: 30 June 2013
- Last Updated: 30 June 2013
Development on Little Goblin has resumed. To get reacquainted with the code, I have cleaned up some controllers and added the user management feature to the administrator's section.
Version 0.3.4 "Users" / 2013-06-30
- #4: Added / fixed UserController. Still a little rough, but works.
- Upgraded to Grails 2.2.3
- Code cleaning
- Upgrade resources plugin to 1.2
Next on the issues list is the order management and a general critical review of the layout and GUI. Also I want to flesh out Schedim, the example of a Little Goblin based game used in the documentation.
- Written by Ingo
- Created: 09 June 2013
- Last Updated: 09 June 2013
Sometimes, I have difficulties entrusting my data to software that I do not understand. With regard to web content, this has led me to inventing the wheel or at least rebooting my sites several times over by now.
I started in about 1999-2000 with creating my own web pages completely by hand, learning how to do so with the help of SelfHTML. I learned soon that it is quite a lot of work to manually handle folder hierarchies and internal links. Of course, there is nothing a little Perl script cannot fix, and as a student I could not afford a proper server, so manual web pages it was.
Website management with Perl
My first hand-written CMS system was using Perl and CGI. I learned how to store content in MySQL (and why it is not a good idea to use the name of a page as its primary key). Then, during my vicariate, I wrote a website management system with Perl and CGI::Application. The main goal was to have a simple system with which non-technical people could add pages to the parish's website. And it offered a user interface in German, which was quite rare those days.
I could have used a PHP CMS / blogging system, but those were the days when every time you opened a IT news page, you would see another report about an expoit in a piece of PHP software. So I decided to keep my server's pages free from PHP (:poop:). And CGI::Application is quite powerful - I have encountered it later in my first IT job and used it to write a medium sized web application for SMS messaging (before starting with Catalyst).
Later, I would use a simple script based approach to generate my personal web pages, because I didn't really need dynamic features then.
But why create your own Web-CMS, when there are hundreds of viable alternatives? And some of them even sported a good security track record, like Plone. Plone is written in Python and is incredibly complex. It comes with its own database and a lot of plugins. So, tired of tinkering with my little CMS, I decided to go for the professional solution and deployed Plone. "I just want it to work" ... which it did. Sort of. My Plone experience was one of an easy setup and then slowly discovering that there is no real learning curve, just a hard wall. Which I hit every time I wanted to change something like user management, permissions, installing plugins etc. You see, Plone has been around for some time and it has embraced the Perl motto of "there is more than one way to do it" - but without a clear path to do so. Of course, it may have been my reluctance to dive deeper into this ecosystem to learn it properly. When an upgrade broke one of my sites completely (without *any* way of getting it to work again), I decided it was time for a change again.
You may use Plone if you have to maintain a large website with many editors and you can afford to have someone on staff whose sole responsibility is to manage your site. As for creating personal blogs, it's complete overkill.
Octopress is quite nice. You can write posts in markdown format (which is as close to pure text as you will probably get) and then have a Ruby script run and generate a static site and deploy it to your web server. It offers syntax highlighting for code, which is useful when adding little code snippets to your blog articles. Of course, even a simple blogging system may break completely if you update it. I could have done a rollback, but I lacked the motivation to do so, as by now I wanted something a little nicer, preferably with the ability to edit my pages from different machines (tablet, smartphone).
Yeah, it's written in PHP. But then, it has been around for some time, the obvious security bugs should be gone and I do not recall reading much about core Joomla security breaches in recent times. And the administrator's GUI sure looks nice and it was easy to setup. And they promise that upgrades will be easy, which is important to me...
So, I have started with handwritten HTML code, wrote my own Web-CMS, used a professional enterprisy piece of software followed by a simple script-based approach and now I am trying to "just get stuff done" with the current version of Joomla instead of falling prey to the NIH-syndrome again and spending weeks to extend the Cinnamon webclient with a web-CMS interface for public pages. We will see how that works out...
Descriptions of error messages and possible solutions