When not to use Moodle or LearningStone?

In the past half year, while we were working towards going live with LearningStone we often got the question why not use Moodle for professional training. Some of our first clients actually used Moodle in the past and have chosen LearningStone. You probably want to know why.

Moodle?

Moodle is a famous Learning Management System that was developed from 1999 onwards. It can do a lot that LearningStone can’t do so there are certainly situations where we would recommend it.Moodle-scales-small

If you need to upload scorm objects (e-learning packages) and track performance data, Moodle is a great platform. If you need to build custom modules, custom integrations, want to be able to change the HTML, if you want to host it yourself, use it as a student administration or do grading: you should go with Moodle. If you need an e-learning environment (so everything is virtual), then go with Moodle.

23-Oct-13 12-58-27 PM

LearningStone?

If you need a nearly instant way to combine communication, learning material and integrate with external media and don’t want to do the development yourself, LearningStone is a better choice. If you need to be up and running without talking about: hosting, versions, databases, domain registration etc, use LearningStone. If you are a face-to-face trainer and your primary need is to support the training you are providing with easy to use digital tools, go for LearningStone.

Free?

Moodle is open source and totally free. At LearningStone we also use and contribute to open source projects so that’s a good thing. But fact is: open source only means the application is free, not the use of it. Installing and maintaining a system like Moodle might be easy if you’re into server software but to get it working perfectly it’s complicated. In some cases when you’re serious about it, it becomes really hard. This doesn’t always matter: if you have an ICT department and some basic server infrastructure, it’s really doable and then the other advantages of Moodle might outweigh the operational costs.

Hosting?

A big difference between Moodle and LearningStone is that Moodle needs hosting and LearningStone is a so called cloud application (the hosting is part of the service and all things like backups are taken care of). If you do want to host Moodle, have a look for specialized hosters but make sure they can help you with versions of PHP and MySQL as well. Our focus at LearningStone has been to take all those subjects off the table and let a training professional focus on getting started with a course.

Our experience with Moodle in the corporate learning arena is that it works for large organizations and multinationals centralizing their learning. This makes it worthwhile to invest the time in Moodle. But many training agencies, don’t have the focus to work on such a long project and benefit from a cloud based system that offers what they need now.

See for more info:

www.moodle.org

www.learningstone.com 

LearningStone and the color blue

Just a short note on progress: LearningStone has been officially launched… no not fully but softly… it’s a soft launch! We are being used by our first client, the Training agency Driestar (thank you for your confidence!) and all is going well. Very well. We’re now looking for more training agencies so please get in touch if you want use LearningStone. It could be free!

Let’s do some adjectives: LearningStone is a private, secure, easy to use, cloud-based, instant, and flexible, beautifully designed… learning and communication tool for trainers and training agencies. More about that here: www.learningStone.com

The color of LearningStone is blue. It’s a purplish blue (actually the exact same color used in the background of Windows 8) but still blue. Why? Well… we will be serving training companies that we don’t want to out-design so we thought going for the most conservative color would solve that.

My working life has been defined by colors starting with a lighter IBM-style blue at the start of ICATT. The first thing my partner Hanneke van der Horst and I did when we officially launched the company (it had been a foundation at the University of Amsterdam) was to move to orange which – back in 1993 – was a pretty radical move. NO company used orange back then. As the years progressed, just about every online-agency thought it necessary to use orange for its house style, so by the time we needed a redesign of our house style we worked together with Visual Space and switched to bright red. When I then started Maximonster Interactive Things, I thought it fun to move to a dark purple (which had been considered together with orange before).

And now I’m back full circle!

23-Oct-13 1-07-02 PM

 

Zwarte Piet

A year ago I was having a video conference with a client in the US. He asked me, a Dutchman, what this was with this Sinterklaas guy, or Sint Nicolas – our version of Santa Clause. He had heard that there were black helpers called Zwarte Piet or Black Peter who were like servants… or perhaps like slaves owned by Sinterklaas. I carefully explained (he was a client after all) that this was a tradition not very different from the elves who help Santa Clause but that I agreed that it had a strong racist undertone. I explained that few… very few Dutch people agree with me that it had anything with racism. No… Zwarte Piet was black because he had to climb down the chimney (so he’s not black but just plain stupid). But what about those big red lips? Eh… well he scrapes his lips along the chimneys…

My client was totally shocked when I showed him images of the streets of Amsterdam with Zwarte Piets (lots of them) running around giving children candy (he’s a nice black guy). And now it turns out that UN investigator Verene Shepherd has started an investigation into the Sinterklaas tradition and is already against it, saying that we should stick to Santa Clause…. Now that’s the worst approach you can take if you want to deal with the Dutch. Now we’ll probably keep Peter black just to show the UN that we have our own mind…
There are people (most Dutch people) that argue that Piet’s blackness is a tradition that we shouldn’t spoil but the time has come for us to accept that the racist undertones are offensive to many people and that – as history has shown – it’s really not such a problem to adapt a historical character. All you have to do is consider which part of the history, of the story we can easily change without changing the plot. I discussed this with a black friend and we agreed that changing Sinterklaas into a black guy (on a black horse!) would be hard to explain away and would be just plain silly but that many details of the whole tradition could easily be changed. The solution would be to not only add colored Piets* to the celebration but also white ones. And then we can leave the tradition alone for a while as we love Sinterklaas and Zwarte… eh… colored Piet. We certainly refuse to give up Sinterklaas all together which would be giving in to American pressure as we all know that Santa Clause is actually Sinterklaas after he got a full make over last century, sponsored by Coca-cola.

How to build an incredibly fast internet application

I just received two bits of good news about an internet-application that was built under my management. I have to be a bit mysterious about the project itself as I’ve signed a NDA but it’s an application that will be visited extremely often with a totally unpredictable planning. Luckily I love a challenge.

NOTE: This project has gone live since the writing of the blog . It was for the Dutch Monarchy and the Orange Foundation, the largest charity of the Netherlands, on occasion of the inauguration of the new Dutch King Willem-Alexander.

So the good news was:

  1. Our stress tests showed we are over-performing by 10-100 times.
  2. The company that audited us (KPMG) said: “The application was made with love and we don’t see that very often’. They actually said LOVE and  the L-word is not used lightly by this large consultancy firm (and they hardly had any critical points at all).

So I’m a happy camper and thought I would share our approach with you. I’m focusing on performance issues here even though we paid just as much attention to usability, security, browser compatibility, etc etc.

Let me be fair and tell you that I’m just the person that comes up with concepts, knows a bit about the technology and manages things, so who am I to take credit for such a monster of an application? I worked with my Maximonster team:  Marc Worrell, Arjan Scherpenisse and Joost Faber and together with the brilliant team at my former company ICATT interactive media.

First of all, what is  fast?

To test the application, we’re using a scenario that simulates a user going through the application. It’s a simulation of many different types of browsers in about the same percentages as the real world (x% IE, Y% Firefox etc).  We ran tests of up to 400 people doing a complete task in 0.8 seconds. We were serving 120 Megabit/second.
In our case this compares to about 30.000 concurrent users. Enough to run 150.000 users in an hour. And all this while the application runs as smoothly as when it runs with 10 users.  We ran this on two servers, while we will be using at least three and can quickly  deploy more if needed. Why not test further? Well… our test server just can’t do it right now and for now it’s enough – we underpromised anyway. We estimate that we can double or triple this easily.

So here’s how to do it from a birds eye view.

The obvious things

Build a light application and pay attention to performance issues all the time. Every query, every piece of script is going to count. Don’t use images if you don’t need to, don’t add design to things that don’t need it. If you are working for a client, keep stressing the performance issue even if you get on there nerves. They never will be grateful: if there are no problems, nobody will thank you. If there are problems, you will be remembered so you might as well point out the risks ahead of time.

Architecture

In the past year we have built “Elastic Zontonic”, an architecture developed in Erlang that makes it possible to add nodes (virtual servers or hardware) on the fly. Zotonic is a framework built in Erlang which makes it possible for us to build applications and offers us a backend which gives a lot of controls out of the box.

Each Zotonic nodes does the same as the next one and can fail. We don’t even care if it does. If nodes go down, the others will consolidate missing data. If the node comes back up, it’s great but if not, the others will be just as happy.

Have a stress tester with some good software

In our case we used Visual Studio running off a virtual server running at Rackspace. Rackspace sells servers time by the hour, so you can do this quite easily. Stress testing itself is complicated and hard to understand. You’ll need time from the developers to help build a stress-script and you’ll need to do it several times. Some user scenarios really can’t be simulated and you’ll have to make some guesses. Though we haven’t used it yet there are some interesting cloud based testing products being launched. If you haven’t invested in time and money into offline web-stress-software, you should definitely go that way.

Work with extremely flexible, cheap hosting

Now I’ll start this by saying: I don’t get commission from Rackspace. I compared several hosters at the start of this project and found their pricing to fit the project (our client kept part of the planning a secrete so charging by the hour makes things easier). Rackspace isn’t all perfect (some of the DNS software had some problems) but their service was great, the pricing easy to understand and they won my heart when I called them about stress testing. I had been warned that if we do extreme testing at a virtual server provider, you could get kicked out. So I called Rackspace to check this and they told me; “Oh… do what you like. We probably won’t even notice it.”  What a bold thing to say.

We actually developed a module to automatically configure servers with the Rackspace DNS API, so we might just come back.

Content delivery network

Now I’m old enough to remember the days that bandwidth was a problem for websites. Those days are over for most sites but not for high performance situations like this one. So that’s why Amazon and Rackspace offer storage for files, be it images, video’s or just documents. It takes some extra work to use a cdn (it’s a bit more complicated than just a remote ftp site) but once you’ve got it running, it takes all the stress out of storage.

Don’t have a server too far away (Ping!)

One reason you might think that hosting at a hoster like Rackspace is a bad idea is that they are far away and the responstime (measured by the ping time) is much lower if the server is far away. Luckily we found out that Rackspace has a datacenter in the UK, making it much faster for us (in Amsterdam) that it would be in the USA.  Most of the visitors will be coming from the Netherlands so that’s important. The difference can be quite dramatic. Before (!) we started, we checked a few sites hosted at the site in the UK and found a ping of 7-8 ms which is fine compared to a server in the US.

Unlimited loadbalancing

Loadbalancing is a tricky subject. You have to configure things and it’s quite common that things go wrong if a loadbalancer looses track of the server. One thing we got from Rackspace is for all practical purposes and unlimited loadbalancer. It’s not free and all data is charged for but it’s cheap enough and it’s one less thing to worry about. What we did to make things a lot simpler is to have a sessionless application. This certainly not always possible but if you can, there are lots of reasons for it.

Underpromise

From a less technical perspective: really underpromise. What ever an individual developer will think, combining technology in general makes things go slower. And if you’re talking hundreds of thousands or millions of users, things will be really massively slower. So – be smart and under promise, add extra hosting budget to your plan, add redundancy and expect the worse.  We actually expected our application to run on one third of the hardware that we are using. And when one of the nodes did actually crash during our first major stress test, we were happy to see everything kept running smoothly. Your client will be totally impressed when things are even faster than they expected.

Michiel Klønhammer

Thanks to Marc Worrell and Arjan Scherpenisse!

So looking for an Erlang dream team? Check out www.maximonster.com and get in touch.

Zotonic the Movie – the making of

We had a lot of fun making “Zotonic – the movie”.  Here’s the “Making of ”

I’m working on the team as… um… what is my role? I guess in the Open Source world it might be “Community Manager” or manager of business affairs. In a ‘regular’ business it would be General Manager or  Marketing Manager. For the time being I’m eh… Michiel.

Want to know more about Zotonic – the Erlang Web Framework and Content Management system?
Check it out at http://www.zotonic.com

Zotonic: The Movie

This is a video I produced with Peet Sneeks to promote Zotonic, the Erlang web framework & content management system.

It features Charlotte, a successful “twitter girl” who wonders if she needs Zotonic. Charlotte is actually for real!  Marc Worrell and Arjan Scherpenisse explain what Zotonic is all about. The Video is available on Vimeo and Youtube or on the site.

I’m really excited about Zotonic: it’s an open source framework being used for many mission critical applications. I got involved in the project due to my sponsorship during the MaxClass project. The movie is our most recentl project, but a long list of activites are going to follow (like an article the next edition of “The architecture of Open Source Applications“, called the Performance of Open Source Applications) and an upcoming interview

Want to keep posted? follow @Zotonic or test. We’re developing professional services too soon.

For Erlang Geeks: in the course of the video we make a joke that has kept us laughing all through the production. You might notice that there is an old fashion telephone that resembles the phones from “Erlang: the movie” .  So when Arjan hears the phone ringing and picks up with “Hello Mike”, this isn’t me, but the Mike (Mike Williams, the co-inventorof Erlang). from the original movie. :-).

Totally Erlang – a site in one day

Now I don’t often believe start-up stories when people say the ‘site was nearly free’ or  “all it was, was a brilliant idea”. No, my experience is that everything – and I mean everything – is hard work. Fun, but hard work. The stories about cheap projects usually don’t cover the work that people put into it them selves.

In one case, I was involved in a small success that was actually born in one day: Totally Erlang.

In 2010, I started Maximonster Interactive Things with Marc Worrel and we set out to create new and exciting applications using Erlang (MaxClass, Zotonic and more). We needed an Erlang developer and I was researching how to find them. Recruiters I had worked with at my previous company ICATT, couldn’t really help and I didn’t want to waste money on the mainstream job sites.

So one morning, Marc and I decided we should make our own Erlang job site. We were really busy, so we gave ourselves exactly one day. I came up with a name, a logo, registered the domain, came up with some ideas and Marc set the site up with Zotonic – the Erlang web framework and content management system. We actually did do some spellchecking and bug fixing the next day, but it was minor. I am still impressed that Marc could build something in one day that has had virtually no downtime in two years.

The site did what it had to: Atilla Erdodi, a talented Hungarian developer who had done an internship at Erlang Solutions, joined the company and has since then joined the Zotonic core group. But we wanted the site to keep going. So we tweeted about it and told a few friends and the “rest is history”.

Totally Erlang

The site has now hit the nr.1 position on Google for Erlang jobs and is really starting to grow and we have decided to spend more time on it  – to start off with, we  finally have a Twitter account (Follow us on www.twitter.com/totallyerlang and a new logo!

We have moved on to organize a Erlang Talent Community  for a more personal network of developers but Totally Erlang will continue to grow and we hope to be adding more services to support the Erlang community.

 

 

 

 

 

Support us by following us on Twitter

Zotonic!

I proudly joined the Zotonic core team.

Zotonic is an open source framework for developing web and mobiles systems. My start-up Maximonster built MaxClass and other projects with it. Besides funding via the MaxClass project, I will be developing the business perspective and have started contributing by organizing a survey. If you are an open source thinker, developer or just plain smart. Feel free: http://zotonic.com/survey-future

zotonic

A new era in (scalable) technology (a blog for the ‘rest of us’ about Erlang and other things)

When I started my new company Maximonster Interactive Things, I was as excited as anyone about the cloud and nearly called my company the Silver lining (as in “every cloud has a silver lining’’). We were setting out to build some new technology (starting off with MaxClass) and everything would be in the cloud and for the cloud. Now two years on, we have achieved just that: we’re very distributed (I just got out of a video conference with developers in the US, Estonia and the Netherlands) and we’re using a totally new category of tooling. It really feels like a new era! Developers are giving and getting open source solutions freely across the borders of corporations, start-ups are building amazing applications without getting tangled in corporate licenses and development is funner than ever. May I call this a paradigm shift?

Michiel Klønhammer – Maximonster interactive Things

Thanks for comments (all mistakes remain mine :-): Arjan Scherpeniss, Marc Worrell, George Serbanut

TOOLS DESCRIBED FOR THE REST OF US

I’m not a developer (those would be Marc Worrell and Arjan Scherpenisse and others in in the Erlang Talent Community – thank you everyone) and have noticed how little easy-to-read information there is out there for ‘the rest of us’. So I thought I would describe some of the tools we use, using slightly-less-tech-jargon.  Key is scalability: affordable, well managed growth with little redesign of web applications.

Erlang

Erlang

Erlang is a programming language that is extremely good for building sites and systems that need to be extremely scalable, extremely stable, are distributed across many servers (so it doesn’t matter if a few break down) and can do many things at the same time. Erlang is used for a growing number of websites, many chat-like systems like Facebook chat, IMVU and Jabber and for building tools that need to be fast too (see some of the tools below). Erlang is (depending on who you ask) both a reference to the Danish mathematician Agner Erlang and an abriviation of Ericsson Language as it was originally developed at Ericsson. Thank you Ericsson!

Note: You might have heard of Erlang/OTP. OTP is simply a set of development libraries for Erlang.

More info: www.erlang.org

Riak

RiakRiak  (written in Erlang) is a datastore which is particularly useful for storing massive amounts of data distributed across many servers without any one of the servers being the ‘master’ (basically all servers are equal making it very scalable) . Riak is open source but is mainly developed by Basho, a company which sells support and offers products like Riak search and Riak CS.  Riak and other NoSQL solutions like MongoDB and CouchDB have disadvantages too: no standard consistency like SQL databases like Postgres, MySQL and MS SQL can have, no standard indexing to make search easy and limited support for ad-hoc queries. So for typical business solutions it isn’t always the best solution but for situations where data is ‘big’ and less structured (no tables), NoSQL solutions can be useful.

Riak was partly based on research done at Amazon. Users include: GitHub, Ask, Mozilla and Conduit

More info: www.basho.com

Zotonic

ZotonicA framework for building Erlang based web applications. Zotonic helps developers build super-fast websites or mobile applications by providing standard functionalities, an integrated webserver and a way of building the front-end of a site, which typical Erlang developer find difficult. Zotonic also provides a standard back-end for things like managing content and adding functions to a site. Though Zotonic has been dubbed a content management system, I prefer calling it a framework as it’s suitable for a wide range of (very fast) applications. Examples are: MaxClass.com,  Channel.me, Women on Waves. Alternatives are: Chicago Boss and Nitrogen (which Zotonic was originally based on).

Warning: I am involved with the Zotonic open source team as a non-developer contributor so don’t believe anything I say – have a look yourself.

More info: www.zotonic.com

RabbitMQ

RabbitmqRabbitMQ is an application (written in Erlang) used for passing messages between parts of large systems. MQ stands for Message Queues. You might think of it as an API with an advanced way of dealing with queues. For example: big banking systems need to pass information from one part of their system to the next and do this very very quickly. They would use RabbitMQ or other message queuing systems like the hosted Amazon SQS. RabbitMQ is an built on top of the AMQP protocol, a standard for messaging.
RabbitMQ is part of SpringSource, recently acquired by VMWare.

More info: www.rabbitmq.com

Elasticsearch

Scalable applications mean scalable search. Elasticsearch is an application built on top of the existing Apache Lucene search. Elasticsearch makes it possible to build one or many indexes (searchable lists) based on content in a data store and then distribute the index across servers. Again: for stability and speed.

Another open source search solution is IndexTank, open sourced by LinkedIn. There is a wave of start-ups stepping up to provide hosted services based on both Elasticsearch and IndexTank.
Users include: Mozilla, StumbleUpon, Klout.

More info: www.elasticsearch.com

MochiWeb

Scalable applications need a ‘webserver’ (the actual software serving the content) that is easy to use across lots of webservers and doesn’t  slow anything down. MochiWeb is a set of tools that form the webserver originally written (in Erlang) by developers from MochiMedia, a games company. Zotonic (above) has MochiWeb integrated into it. Other popular erlang-based webservers are Cowboy and Yaws.

More info: https://github.com/mochi/mochiweb

GitHub

The list of open source tools above could go on for quite a bit, and for an average scalable application it does. Nearly all open source ‘projects’ or tools (certainly the Erlang related ones) are hosted on Github, a website which hosts code, making it possible to work together on code, add comments and manage versions. “Git” is one of the popular systems for storing- and managing versions of code. Alternatives are Google Code and Bitbucket, but Github is by far the most popular one. Github is a company with a huge following. An active Github profile has become essential for the CV of open source developers.

More info: www.github.com

Rackspace

RackspaceNot long ago I was struggling with complicated contracts for hosting web applications. It could be scary at times as tiny errors in judgment could turn out to be fatal (or at least shockingly expensive when a site got busy). Now developers (certainly at ambitious start-ups)are turning to services by Amazon or – in our case – Rackspace, two category-killer-companies that are offering (low) pricing by the hour and unlimited amounts of servers that are ready to use within minutes. A new contender in this area is Joyent, focusing on hosting Riak, MongoDB (another noSQL datastore) and other new technologies.
More info: www.rackspace.com

Interested in the new era in technology too?  Need a speaker? Need a development team? Need a job? Please check us out at www.maximonster.com