Talking AngularJS and Internationalizing in Berlin

Yesterday we attended the AngularJS Meetup Berlin, that took place at the Bitcrowd offices. Pascal Precht (CouchCommerce, talked about ‘i18n with angular-translate‘, or:
“going beyond basic localization with angular-translate”.

Starting with an introduction to AngularJS, Pascal evangelized the JavaScript framework (or rather: HTML compiler) that gives you two way binding (ng-model, ng-repeat) and dependency injection. And is built with testability in mind. (more…)

How to use the anynines Swift service with Paperclip

Web applications often produce files such as images, videos or documents. For a long time it was standard to put those files into the filesystem. Today this is considered a bad practice.

Why is storing to filesystem bad?

Using the filesystem as persistent storage breaks with rule number 6 of the 12factor manifest. This introduces two major architectural flaws:

1. Filesystems don’t scale well.
When storing a large number of files there is a point where a single server is not enough anymore. At this point filesystems become a problem as they don’t span across servers. Managing distributed filesystems is… painful.

2. A filesystem is a single point of failure.
Servers die and so will file servers. Making NFS servers, for example, redundant is an awkward task because it was never designed to be highly available.

Instead we want a storage service that is scalable and highly available by nature.

That’s where OpenStack Swift comes in.

Swift is highly scalable and can serve up to hundreds of petabytes. More than that it is also redundant. Data is replicated across a number of storage nodes. This allows Swift to survive the outage of one or multiple servers. (more…)

A recap of yesterday’s Berlin Ruby User Group meetup

We like developer meetups. That’s probably the reason why we found ourselves at the Berlin Ruby User Group (short: RUG::B) meetup at the Crealytics office yesterday. Just to recap the three talks and lightning talks real quick:

RabbitMQ to the rescue

First up was ‘Ruby Storm – Distributed work on a self-scaling system using RabbitMQ‘, where Steve Creedon and two of his co-workers at Wimdu walked us through their complicated integration processes of daily (data) feeds from partners for properties, availability and prices. Wimdu currently manages 360 000 properties with information on their availability and price, from 1700 partners. Creedon: “The first feed contained of 670MB XML, 30.000 prop, a steady daily feed for 1 partner. It took 27 for 1 script.” (more…)