Hi, this is my blog, were I share my thoughts and my experiences as software engineer.

Posts

  • Deployment Models

    A computer is a physical device bound to physical limits: space and time. In other words, the main computer limits are memory size and calculation speed. If a software solution does not fit in one computer’s bounds, a distributed approach is required.

  • Alternative to distorted stock charts

    Data is difficult to understand in a textual representation such as tables. It is much easier to get the picture with a graphical visualization such as a chart. That’s why charts are ubiquitous in the data-driven financial industry. Yet, those charts have a peculiar time axis which violates several best practices. This results in a contracted, dilated or distorted time perception. Also, many charts allow drawing straight lines, which is absurd without a linear x-axis.

  • Bitemporality for dummies

    The average person is familiar with space and time. The space has three dimensions and time has one. So far so good. Having four space dimensions is so uncommon that the tesseract often ends up in Sci-Fi movies. Likewise, a second time dimension seems unnecessary. When computer systems need proper accounting and history management, an additional dimension is indispensable. I have met many people who struggle to grasp the concept of it and are too shy to ask for clarification. That’s why I have created this info-graphic. Digest this difficult topic in private at your own pace. Enjoy.

  • Real numbers

    Here we go again. This topic never gets old. It even seems that it gets worse due to software stacks with automatic type conversion.

  • Cloudless smart devices

    More and more devices are getting smart, which means not much more than they are connected. The connection is often mandatory to one specific cloud. This might not shock everybody as we are used to the cloud as big brother. But I see many drawbacks, especially complexity, dependency, security and privacy. What if the connection to the cloud is disturbed, will your smart devices become dumb? What if an automatic update removes features, fails or even turns into malware?

  • Temporal Consistency

    Humans have problems in the real world. The purpose of computers is to help humans. Many computer systems model the real world in order solve these problems. One fundamental property of the real world is time. It exists everywhere and is predictable. Time is an universal common denominator for everything, including computers. Even if the systems are not connected physically, they are still linked through the time dimension. This allows to correlate data and extract useful information.

  • Actual Bitemporal Matrix

    A bitemporal model consists of two time dimensions. Each of them can be in the past, present or future. This results in nine different possibilities. Yet, many of them are being overlooked or even considered wrong. Time is a complex matter and time travel even more. It seems that only the current and the past is well understood. That’s why there are so many temporal models focusing only on those two possibilities. But if you zoom out a little, you will notice that these are part of a more general model. This will unlock many interesting features for free:

    • the possibility to correct past data, without destroying it
    • the possibility to prepare future data
    • the possibility to cope with delayed or early events
    • the possibility to construct consistent data sets, similar to Double_buffering
  • Bitemporal relativity

    Time is relative. It depends, among other things, on the observer’s perspective. This physical law cannot be avoided and will also occur in computer systems. If a system is not designed to cope with different views on temporal data, it cannot answer temporal questions. This is either an intended limitation or a bug.

  • Temporal models

    Solutions to real-world problems often need time dimensions in the data model. This task seems daunting as there is an endless number of technologies which promise to solve this problem for you. Yet, the core problem is not that complicated because there is a limited amount of theoretical solutions.

  • Docker reduces security?

    1. running Docker containers -> running the Docker daemon (source)
    2. more daemons/services/processes -> larger attack surface (source)
    3. larger attack surface -> lower security (source)
  • TensorFlow with Java on Windows without CUDA

    Yes, its possible today. Google is still working on it, so it might change in the future. And especially the Java API is not stable, and not very beautiful. Here is an example LabelImage.java.

  • Zopfli Maven Plugin

    The JZopfli Maven plugin processes all artifacts and improves the compression using the Zopfli algorithm. In addition it removes useless metadata inside the zip archive to improve further the file size. See the details here.

  • JZopfli command line

    JZopfli has exactly the same command line as the Zopfli original. You can simply download it from the maven central repository and execute it.

  • ZopfliOutputStream

    I have implemented a simple drop-in replacement for the java.util.zip.ZipOutputStream which uses the Zopfli algorithm: JZopfli-Stream.

  • Hello World

    Hello.java

subscribe via RSS