Fable: Functional programming in F# meets JavaScript

Fable is a new compiler for F# to JavaScript, mainly developed by Alfonso Garcia-Caro.

Fable makes it possible to use functional-first programming with F# to produce clean JavaScript code with static type checking, IntelliSense and all the other advantages of the F# compiler and common F# code editors.

Continue reading Fable: Functional programming in F# meets JavaScript

Dockermen’s introduction to private docker hub with GitLab


Since end of May, thanks to the great efforts of the GitLab project developers, an open source authorization-layer for the docker-registry(v2) is available.
Within this article I´d like to introduce my collegues into the basic steps to work with docker and our new private docker-registry.

Continue reading Dockermen’s introduction to private docker hub with GitLab

Webrunners GmbH erhalten Präqualifizierung für das öffentliche Auftragswesen

Im Februar 2016 bescheinigte uns die IHK Mittlerer Niederrhein im Auftrage der Industrie- und Handelskammern in Nordhrhein-Westfalen, dass wir in den Bereichen

  • Datenbanksysteme (48610000-7)
  • IT-Dienste: Beratung, Software-Entwicklung, Internet und
    Hilfestellung (72000000-5)
  • Softwareprogrammierung und -beratung (72200000-7)
  • Programmierung von Anwendersoftware (72212000-4)
  • Entwicklung von Vernetzungs-, Internet- und Intranetsoftware (72212200-1)
  • Systemanalyse und Programmierung (72240000-9)
  • Internetdienste (72400000-4)
  • Diensteanbieter (72410000-7)
  • Anbieter von Internetdiensten (ISP) (72411000-4)
  • Internetseitenbetreiberdienste (72415000-2)
  • Internet-Domänennamen (72417000-6)
  • Internet-Entwicklung (72420000-0)
  • Entwicklung von Internet- oder Intranet-Kundenanwendungen (72421000-7)
  • Entwicklung von Internet- oder Intranet-Serveranwendungen (72422000-4)

fachkundig, leistungsfähig und zuverlässig sind.

Continue reading Webrunners GmbH erhalten Präqualifizierung für das öffentliche Auftragswesen

How to write cleaner parsing code

When tasked to extract information from a string, most seasoned developers – especially the ones with some kind of Linux background – will resort to regular expressions. While regular expressions are incredibly powerful and very well suited for most parsing jobs, they don’t scale very well. With increasing complexity they tend to become very cryptic, if not unreadable and therefore eventually unmaintainable.

Another alternative is to use parser combinators that combine small atomic parsers to build a complex rule set.

Let’s see how we can use parser combinators in an (admittedly simple) context. One of our customers runs a fascinating web service: Using a easy-to-understand URL scheme, you can remotely control a rendering engine that can effectively combine hundreds of different car parts to render a photo-realistic image of a specific car configuration. One task in a recent project was to extract car configuration data from a web service call.

Continue reading How to write cleaner parsing code

SQL Type Providers and Continuous Integration with FAKE

This post was re-blogged with permission of Leif Battermann from here.

If you want to access a relational database from an F# (or C#) application, SQL F# type providers are commonly used. SQL type providers will provide all the types, properties and methods needed to access and interact with the tables of a SQL database, without having to write any extra boilerplate code. Everything is type checked and if the actual database schema gets out of synch with the database related code, compilation will fail. This is very valuable because it gives you high confidence in the application’s data access code.

Continue reading SQL Type Providers and Continuous Integration with FAKE

Eine neue Tabellenklasse zum RTE in TYPO3 6.2 hinzufügen

Mit dieser Anleitung möchte ich Ihnen zeigen, wie Sie ganz einfach eine neue Tabellenklasse zum RTE hinzufügen können um Ihre Webseite nach Ihrem belieben zu personalisieren.


Es gibt insgesamt nur 3 Dateien, um die Sie sich kümmern müssen.

  • typo3conf/ext//Configuration/TypoScript/RTE.ts
  • typo3conf/ext//Configuration/TypoScript/setup.txt
  • typo3conf/ext//Resources/Public/css/rte.css

Continue reading Eine neue Tabellenklasse zum RTE in TYPO3 6.2 hinzufügen

Django CMS: Permission pitfalls

On my latest journey through the lands of Django CMS, I struggled with some permission issues.
While Django CMS is convenient and a good CMS choice in general, it turns out to have some inconsistencies buried in the permission system.

My scenario

The requirements I have for the permission system in my current project are:

  • All CMS pages should be available only for authenticated users
  • Editing shall only be allowed for staff
  • Some pages should be only visible to a certain group

These requirements are somehow basic, right?

Continue reading Django CMS: Permission pitfalls

Software and code quality

Software and code quality matters because it is directly related to maintainability and therefore to the costs for developing software systems, and for extending them with new features.

Measuring and evaluating software and code quality objectively is a difficult task which is illustrated by the following quote in a funny way:

The only valid measurement of code quality is WTFs/minute
Thom Holwerda

This implies that the only way to measure software quality is a subjective, individual and broad process. This is certainly true to some extend, but we believe that it is possible to apply concrete practices and methods to ensure a good software quality.
Continue reading Software and code quality