My latest projects: frab and frabulous

This year’s FrOSCon was a huge success, as always. But one thing was different from the previous years: We replaced pentabarf, our old conference management system, with a new system written by me.

pentabarf served us well for five years. It really is a wonderful system that can save you lots of time and keep you organized while putting on a large-scale event like FrOSCon. However, updates have always been painful and regressions made our lives harder than they should have been. When I learned that pentabarf is basically unmaintained since April 2010, I decided to do what every respectable software developer would do: reinvent the wheel :)

But seriously: I was never happy with some of the design decisions in pentabarf. The beauty of Rails’ conventions is that you can ususally quickly dive into and understand other people’s code. But pentabarf deviates so much from accepted best practices in the Rails world that I always found it unnecessarily hard to make changes in its codebase. Also, pentabarf lost track of new developments in Rails a long time ago.

So I thought rolling my own system might make sense. After all, I am a web developer first and conference organizer second. The result is frab (yes, that is ‘barf’ spelled backwards).

frab is still very rough around the edges, but it has already served us well before and during FrOSCon 2011. In the coming months I plan to polish frab some more and make a formal release.

But there is more

I will not stop there, however. Several things have been bugging me for years now, and with the development of frab, they all seem to fall into place.

First of all, I have been fantasizing of launching a web-based software product for years. With ibird, I already am part of a web-based product company, but sadly, ibird never really reached its full potential. I wanted to try something different and new.

Then there is my deep believe in free and open source software, which do not seem to have a place in today’s SAAS world. (There are exceptions, however. Most notably Teambox.) In the desktop and server software world it is already an established and quite common business model to produce open source software and charge for services etc. instead for licensing. This, however, is very rare on the web, at least as far as SAAS is concerned.

But I strongly believe, that with web-based software, the advantages of such a model are a lot more obvious than with traditional software. Installing a web-based application and keeping it up to date is quite hard. Add to that, that you also need to setup a server, keep that up to date and secure and scale everything when your usage patterns change. That is a lot of work for which you need an expert staff if you want it done right. Simply renting the software and not having to deal with all that is the main motivation for SAAS. I do not see where this is in conflict with open sourcing the software itself.

So, I have been wanting to try this out for a long time now – selling subscriptions to a web-based open source software.

Last, but not least, I always wanted to put everything I learned through FrOSCon to good use elsewhere. FrOSCon is strictly a volunteer effort. No one gets paid to organize FrOSCon, and that is how it should be. But that does not mean that the skills and knowledge we acquired while organizing FrOSCon cannot be applied for other causes as well.

I have been thinking about those three points a lot. And most of the time I thought about them as seperate issues. But as stated before, with frab it all comes together.

Introducing frabulous

frabulous logofrabulous will be a hosted version of frab. If you want to benefit from frab’s wonderful set of features but do not want the hassle of maintaining your own installation, I will happily provide you with one.

Since frab is not yet 100% ready for general use and since most of its features are tailored to FrOSCon’s needs, frabulous will start off with a private beta. During this beta test, I hope to iron out some remaining bugs, but most of all I want to learn from other conference organizers about how they approach their events and what software features could save them a lot of time and trouble.

If you want to be notified when the private beta starts, you can sign up right now. Also, make sure to follow frabulous on Twitter and check the frabulous blog from time to time.

Advertisement

Rails 3: ActionMailer TLS Certificate Verification

Back when Rails 2.2 introduced :enable_starttls_auto => true as default for  ActionMailer configurations it broke many apps. I myself stumbled over this problem several times. It is quite easy to google for workarounds, but I always found it troubling, that those almost always advise you to turn off encryption of your smtp session and send user credentials as plain text.

Yesterday I ran into the problem again with a new Rails 3 application I am writing. After much digging around, I found out that with Rails 3 you have a new option to fix the problem that was not there in Rails 2. As I was unable to find this with Google and it took me quite some time to figure this out, I thought I would write it up here:

The Problem: By default, ActionMailer will test if your smtp server knows TLS and then try to start a TLS session using the Ruby bindings for the OpenSSL library. OpenSSL will check the server’s certificate and if it finds a problem with that raise an exception (OpenSSL::SSL::SSLError: hostname was not match with the server certificate) .

In theory this is fine, because it is clearly a misconfiguration of the smtp server. But in practice this is annoying if a) your smtp server runs on the same host as the application and you do not want to use TLS at all or b) you do not control the server’s configuration but still want to use TLS.

Most workarounds show how to disable TLS, which is trivial, but a rather bad solution for b) as you start sending user credentials in plain text over the internet.

Fortunately, Rails 3 offers another solution: ActionMailer in Rails 3 uses the mail gem instead of the older TMail library. The mail gem offers a configuration option to disable OpenSSL’s certificate check. All of ActionMailers configuration options get passed to the mail library, so simply adding

:openssl_verify_mode => 'none'

to your ActionMailer configuration does the trick.

So now you have 3 options when you are confronted with the above exception. Please consider them in the following order:

  1. If you control the smtp server, go ahead, learn about TLS and configure the server properly.
  2. If you cannot change the smtp server’s configuration, think hard about the risk involved when accepting random certificates and if you cannot avoid it, disable certificate checking.
  3. If you only deliver to localhost or really, really know what you are doing, disable TLS.

New version of Kalua; SSL for kalendr.net

One of my clients managed to trash a website installation I was slated to work on today. That left me with some time to hack on Kalua.

I made a few small changes:

  • Bumped versions of Rails and the Javascript libraries
  • Fixed my pet peeve after using Kalua for some time now: When creating events you can now choose the corresponding calendar.
  • Made some “design” tweaks. I am pondering investing in a “real” web design for Kalua/kalendr.net, but please do not hold your breath…

All in all this is not much, but I decided to release a new version (0.1.1) anyway. Get it at the github project page.

SSL for kalendr.net

In related news, kalendr.net has finally got an SSL certificate and I decided to make the service SSL-only. I would not expect anything less if I used a similar service from some other provider so this was actually long overdue.

Kalua Version 0.1.0 released

I have bragged about releasing early, but have not actually made something you could call a release. Until now.

I just released Kalua Version 0.1.0. Not much has changed, but at least it is something to measure the coming progress against. Also, it feels good to finally have a release version.

Features

Instead of concentrating on what Kalua cannot do (yet), as I have done until now, let’s see what it can do:

  • Add, edit and delete events/appointments in your browser, most of the time using a beautiful JS calendar widget (Adam Shaw’s FullCalendar)
  • Simple recurrence of events.
  • Manage different calendars and have events of each calendar displayed in different colors.
  • Configure (two) different date/time formats and your local time zone.
  • Import and display iCalendar data from the web (e.g. to display events from your Google Calendar).

A Big Thank You

A big Thank You goes out to Adam Shaw, for his wonderful Calendar widget, to @duckattack and @zeisss for early alpha testing and valuable feedback and to Rick DeNatale for saving me a lot of headaches.

Try It Out

Test drive Kalua all you want at kalendr.net or download the source at github and install it yourself.

Either way, feedback is appreciated. Please use the Issue Tracker at github to post bug reports and/or feature requests.

Blog facelift

I originally created this blog over a year ago. I chose a theme that I thought fitted in well with my website. What I did not have until very recently was content.

Having and finally seeing a few posts somehow made the theme less attractive to me. So, I went ahead and chose something, that hopefully is a little easier on the eye.

Updates to Kalua: Multiple calendars and recurring events

The initial announcement worked well for me and relieved me of quite a few worries. And that motivated me to hack on two features that were really important to me:

Multiple Calendars

You can now create as many calendars as you like and give every one a unique color. Events belong to a calendar and get displayed in their calendar’s color.

This one was quite important to me, as I want to distinguish between private and business-related events at a glance.

Recurring events

Kalua now sports a very simple (and probably naive) implementation for events that reccur every day, week, month or year. Again, that is standard and nothing exciting, but it allows me to store birthdays and all my weekly appointments.

What’s next?

The two features were the missing pieces for making the software useful for my own purposes. There is still one problem I want to solve, sharing of calendars, but that is probably a bit more complicated, so I might concentrate on other things first.

You can help me by test-driving Kalua (it takes less than two minutes to create an account at kalendr.net), post bug reports and feature requests to the github issue tracker and vote on feature requests there.

Announcing Kalua and kalendr.net

After leaving my company last year and starting to do freelancing jobs, I started several side-projects that never saw the light of day. On some I simply lost interest, others are only stalled. It was getting on my nerves that nothing I started seemed to work out within a reasonable timeframe and at the same time the freelancing took up more and more time.

This meant I had to change my tactics, lower my own expectations and get rid of my perfectionism. So I worked towards pushing out something. It is not a lot really, but I do believe in “Release Early, Release Often”, so I am confident, that something might grow from this. So without further ado, I present to you:

Kalua – a free (as in speech), light-weight, web-based calendar

Kalua is my aKalua Screenshotttempt to build a light-weight, web-based calendar for my everyday use. I do not wish to take on Google Calendar, but rather build enough functionality to cater to my own humble calendaring needs.

As I said, it is not much, that I have released. In fact, it is ridiculously little. But I am lucky to be able to base my work upon two wonderful frameworks (Ruby on Rails and jQuery) and a ready-made client-side calendaring widget, Adam Shaw’s jQuery FullCalendar. I owe Adam a lot. He showed me, it was possible to have a decent open source calendaring experience in the browser. And everything that currently works in Kalua is probably due to Adam.

I hope, over time that I can grow the project to become more than a trivial backend to FullCalendar. To get there, I will start using Kalua as my one and only calendar starting today. I will feel the pain and hopefully find the motivation to make it go away.

Kalua is free software, released under an MIT-License. The source and the issue tracker can be found on github: http://github.com/oneiros/kalua

If you want to test-drive Kalua, you can do so at

kalendr.net

If I want to use Kalua regularly I need it available on the internet somewhere. So why not open it to everyone, hoping it may help someone and attract some people who are willing to help out with the project? That is what I thought early on when I had the idea for the project and that is why I created kalendr.net.

At the moment kalendr.net is not much more than a playground for testing Kalua and its deployment. It is open for the public, so feel free to register, but keep in mind that this is pre-alpha software without many features you probably expect and need. In the beginning I will update the platform frequently, so there will be downtimes. Plenty of them. Oh, and there is no backup or anything. So, you probably should not try it. But if you still want to, you are welcome.

Disclaimer

I think I have sufficiently described the very early stages of this project, but let me state this again: Kalua/kalendr.net are not even a version 0.1 right now. The list of shortcomings is long and includes:

  • Apart from FullCalendar and jQueryUI eyecandy, it is ugly as hell
  • No support for recurring events (Update 2010-10-11: simple recurrence now available)
  • No calendar sharing
  • No export/import/syncing whatsoever
  • No I18n and only very limited L10N
  • No <enter your favourite calendar feature here>
  • No tests
  • No SSL for kalendr.net
  • and so on…

So, you are still here. Thanks for that ;)

Contributing

Feel free to go ahead, fork the project over at Github and send me wonderful pull requests. But, seriously, I doubt that this is interesting for anyone right now. There just is not enough code to base ones work on.

I would however really appreciate bug reports and feature requests in the Github project’s issue tracker. If you have a feature request that is already in there, please vote on it. This helps me prioritize.

The Future

I have no idea, what this project will lead to, but I sure am committed to make it at least suitable for my own everyday use. And I am confident that this might lead to something that is also useful for others. Also, it might inspire others to enhance it in a way that everyone benefits from. Either way, I am looking forward to it and so should you. So stay tuned!

New Blog

I never got the hang of blogging and at some point simply deleted my old blog.

But now I have some small announcements to make, so I will use this blog for that. And maybe, just maybe I will start to write more regularly. Let’s see…