Multithreading in the MRI Ruby Interpreter

Multithreading in Ruby is still not widespread within the community, even though concurrency yields huge benefits for certain kinds of programs. This is especially true in server environments. For instance, using multithreaded HTTP servers increases a server’s throughput and reduces its memory footprint.

  ·  Christoph Schiessl on Ruby

map and fmap in Haskell

Haskell’s standard module ships with two functions, called map and fmap. The first one, map, is the typical function we are all used to in functional programming. Looking at its definition, reveals that it’s recursive implementation is exactly what one would expect:

  ·  Christoph Schiessl on Haskell | Ruby | Functional Programming

Defining The Cloud

There’s no consent among experts on what “the Cloud” actually is.

  ·  Christoph Schiessl on Business | Software

A Quick Check for Pending Migrations Before Running your Test Suite

As Rails developers, we are constantly switching between writing application code & tests and running our tests. While this is a great workflow, it sometimes leads to problems. Namely, if we change our database schema, but forget to migrate the DB before re-running the test suite.

  ·  Christoph Schiessl on Ruby | Rails | Testing

Life is a Game. Or is it?

I think it is. And I’m not the only one. Not by a long shot.

  ·  Christoph Schiessl on Business | Guideline

Generating Random Numbers According to a Continuous Probability Distribution with PostgreSQL

When working with statistics, generating pseudo-random samples that are distributed according to a given probability distribution is a frequent requirement. For me, being able to generate these numbers directly with SQL would be very convenient (and might also improve performance). In this post, I’m taking a look at some of the most important continuous probability distributions…

  ·  Christoph Schiessl on PostgreSQL

Benchmark: Single-Column Indexes vs. Compound Indexes

I’ve known about compound indexes for many years but never really thought about them in detail. That doesn’t mean, I’ve never used them – quite on the contrary. At some point in the past I’ve made up some assumptions about when to use them and when to avoid them. However, until now I’ve never taken the time to put my assumptions to the test.

  ·  Christoph Schiessl on PostgreSQL

Organizing Java Command-Line Utilities with the Command Pattern

I’m currently working on a command-line utility written in Java to encapsulate a WSDL web service. As you might expect, the web service is exposing a variety of operations with pre-defined parameters to be called. My tool should make these operations accessible to the user, through an easy-to-use command-line interface. Since the web service I’m working with is composed of dozens of operations, I started looking for a design pattern to help me organize my code and discovered the Command Pattern.

  ·  Christoph Schiessl on Java | Pattern

Simplicity Isn’t Simple

Everybody is talking about simplicity and its promise of leading us to create great products. The underlying assumption here is, that simpler products are more accessible to everyone: the customers, the users, and last but not least the developers themselves. Therefore, simple products are supposed to be easier to sell, a lot easier to use, and easier to maintain.

  ·  Christoph Schiessl on Business | Software

Software Start-Ups without Technical Co-Founders

Software start-ups are everywhere. Every single day, you can read about dozens of new and ambitious start-ups in the news. There are many special websites to report about start-ups and other topics that entrepreneurs and developers might be interested in – yes, I’m looking at you HackerNews.

  ·  Christoph Schiessl on Business

Customers and Users Are Not The Same

A few weeks ago, I discovered a fatal flaw in my thinking about customers, users and consequently about business in general. To fix that flaw, I had to re-evaluate the feature set of my products as well as my entire approach to communicating with (potential) customers.

  ·  Christoph Schiessl on Business