Rax 1.1 released

We are happy to announce that Rax 1.1 is avalaible from today! This release contains many stability and performance improvements. Most importantly: Added r’years and a’weeks magic tags to relative duration. Added a sample \ operator for sets: some_set\10 will list random 10 elements of some_set. In explorative analytics scenarios this is handy as it’s …

Welcome Snowflake

Snowflake Computing has recently emerged from stealth with a bold claim of having reinvented the data warehouse. Ease of use is their main motto and I dare to say they live up to this promise. Since one of Snowflake’s co-founders, Marcin Żukowski, is a good friend of mine, I’ve got a chance to play with …

Rax/MySQL vs. Rax/Azure vs. Rax/Redshift

Our SQL-backend family is contantly growing. Rax could already connect to SQLite, MySQL and PostgreSQL databases. Now we have also ported Rax to two major cloud databases: Microsoft Azure and AWS Redshift. The port to Azure gave us some headache due to problems with their ODBC driver for Linux. The port to Redshift was straightforward, …

Understanding Time

With behavioral data, time plays a very important role. Yet, time-related data is especially hard to analyze. The main culprit is the fact that time concepts are confusing. While humans can handle time intuitively, passing these intuitions to a computer program is hard. For example, implementing a growth rate using a relative duration of “twelve …

Sets, Multisets and… SQL

Those of you who paid attention at your ‘Introduction to Databases’ class will probably remember that SQL is based on Relational Algebra. Maybe you also remember that Relational Algebra operates on relations, which are a special category of sets. As such, they do not contain duplicates. An SQL table, however, can easily contain duplicate rows and therefore it’s …

Kinda Like Assert

In 1983 my math teacher wrote on the blackboard: P{Q}R. Ever since, my code is loaded with assertions. “Assertions should be used to document logically impossible situations and discover programming errors […] This is distinct from error handling: most error conditions are possible, although some may be extremely unlikely“. (Wikipedia) [Assertion] We all have seen, …

Pointer To Pointer

Some hold that pointers in a language like C are dangerous and hard to master. Both maybe true, but so are scalpels. Since you are reading this, you know that pointer practice makes pointer perfect. The same goes for pointers to pointers. I remember vividly when I first saw some elegant code that used a …