Software developer
Event sourcing is the idea that, rather than saving the current state of a system, you save events. The state of the system at any point in time can then be rebuilt by replaying these stored events. You often see event sourcing in conjunction with some other key supporting ideas:
Read more.A small shell snippet that will automatically run pdflatex
when the source file is changed. It will display a nice Notification Center message (OS X only :-/ ) if the compile fails.
To ease the pain of hourregistration, I have created a command line shell for Achievo, the hour registration system we use at Redpill Linpro. The code is hosted on Github, and you can find the code together with install instructions here.
Read more.I usually prefer storing IP addresses as integers (unless the DBMS
have a special data type for it). Using integers gives compact storage
and makes it easy to answer questions like what is the next IP
address? In which subnets does it belong? Etc. IPv6 addresses is 128
bits long, so to store that as an integer in MySQL you need to use
the DECIMAL
data type.
Inspired by Xaprb’s improved graphs for Cacti, I wrote a plugin that creates similar graphs for Munin. The plugin is included in the Munin project. For the newest version, go to my project page on github.
Read more.Recently I wrote a prototype where I needed a quick solution for automatically laying out and drawing undirected graphs. The prototype was written in Ruby using GTK for the GUI.
Read more.In SQL we use NULL
as a placeholder for missing values. It has at
least three different uses:
NULL
. Here a NULL
means unknown, unknown because
information that is needed for evaluating the expression is
missing.To identify the different records in a relational table, we use a primary key. There are two kinds of primary keys with very different characteristics. A natural key uses a column or columns that are a natural part of a record, while a surrogate key is added to the record and uses artificial data. When choosing your strategy, it is important to be aware of the advantages and disadvantages.
Read more.