Blog

Blog-Post

Blockchain hausgemacht

120 Mitarbeiterinnen und Mitarbeiter bauen eine Blockchain in 12 Sprachen. Bei INNOQ veranstalten wir jedes Jahr einen so genannten Hands-On-Event. Dieser ist Teil unserer regulären Mitarbeiter-Events und findet typischerweise im Frühjahr statt. Wir treffen uns alle für zwei Tage an einem Ort und versuchen mit der Programmiersprache unserer Wahl in Gruppen eine definierte Aufgabe zu lösen. Optimal also, um neue Sprachen und neue Kolleginnen und Kollegen in Gruppenarbeit kennenzulernen. Die Aufgabenstellung lautete in diesem Jahr: Baue eine Blockchain!

Blog-Post

Native Clojure with GraalVM

The newly-released GraalVM changes the status quo in the realm of JVM-based programming languages. In this instalment we’ll explore its impact on Clojure. We’ll start small, but by the end we’ll compile an entire Ring web application into a self-contained native binary.

Blog-Post

Domain- und Test-driven Development mit Spring Boot 2 Softwarearchitektur

Blog-Post

Spring-less testing

Spring is a great project, it helps a lot with common, usually mundane, tasks. But it’s not always unicorns and rainbows. Too much Spring in tests can cause a few issues like long execution time and fragility. Here, I’m showing how to avoid such pitfalls.

Blog-Post

Oracles GraalVM für „Native Java“?

Vor Kurzem wurde von Oracle die GraalVM in der Version 1.0.0-rc1 released. Und für mich als großer Scala- und Docker-Fan ging die Sonne auf.

Blog-Post

Schubladendenken - aber konstruktiv

Verwendung von Stereotypen im Code als Basis für ein gemeinsames Architekturverständnis - und mehr

Blog-Post

Domain Exceptions?

In jedem Softwaresystem kommt es zu Ausnahmesituationen. In der Regel handelt es sich um technische Ausnahmen, die in Java als Exceptions auftreten und behandelt werden. Gibt es aber auch fachliche Ausnahmen, also quasi «Domain Exceptions»? Und ist es sinnvoll, diese in Java als Exceptions zu modellieren? Einige Beispiele aus einem Kundenprojekt zeigen, dass dies häufig nicht der Fall ist.

Blog-Post

Sichere Kubernetes Cluster

Container und Kubernetes haben die Art und Weise, wie wir Software in Produktion bringen stark vereinfacht. Anwendungen lassen sich in Container Images verpacken und auf einem Kubernetes-Cluster mit mehreren Knoten betreiben. Bei all der Einfachheit sollte aber nicht vergessen werden, dass trotz der Kapselung in Container verschiedene Aspekte der Sicherheit noch immer eine wichtige Rolle spielen müssen.

Blog-Post

dprox – Declarative Reverse Proxy

Blog-Post

Java 10 – Evolution statt Revolution

Gerade erst ist Java 9 erschienen, da steht auch schon das nächste Release, Java 10, an. Dieser Artikel betrachtet die Neuerungen von Java 10 und wagt einen kurzen Blick in die Zukunft.

Blog-Post

Taking Screenshots of DOM Elements

Now that PhantomJS is dead, we need an alternative. Turns out that Puppeteer, Google’s official remote-control API for Chrome, is just the ticket.

Blog-Post

Mundane Bash Tips

Blog-Post

Have YOU been pwned?

With the V2 release of the «pwned passwords» database came a new feature called range search, which allows to securely check passwords with only minor efforts. Here’s how to use it.

Blog-Post

Enforce strong passwords!

Frequent leaks of large user databases highlight how important it is to enforce strong passwords. Let’s discuss what makes a strong password and why it is a good idea to additionally check it against a dictionary.

Blog-Post

Service Mesh und Kubernetes

Warum eine dezidierte Infrastruktur wie Istio notwendig ist

Blog-Post

It All Looks the Same to Me

In the previous post, pHash helped us to summarize our photo album. Now it’s time to employ BK-trees and efficiently search through the metric space of perceptual hashes. Let’s roll up the sleeves; more Rust awaits!

Blog-Post

FaaS und Kubernetes

Inzwischen gibt es bei den meisten Cloudanbietern die Möglichkeit kleine Codeteile als sogenannte Functions zu hinterlegen. Da kein expliziter Server existiert, dort spart das Kosten. Aber auch sonst bieten Functions eine interessante Abstraktion, deren Vorteile man ebenso gerne innerhalb eines Kubernetes Clusters nutzen möchte.

Blog-Post

DDD mit Onion Architecture

Blog-Post

The language of maths is not the language of your business

Abstractions from category theory can be powerful. But there are reasons why you may want to keep your domain model free of them.

Blog-Post

Proof of Existence via HTTPS

Übliche «Proof of existence» - Konzepte nutzen die Blockchain von Kryptowährungen. Das geht auch einfacher und billiger.

Blog-Post

Formatting with first-class types

Stringly-typed APIs under strict supervision.

Blog-Post

That looks oddly familiar

Perceptual hashing is an exciting technique for processing media files and finding similar content. In this post, we combine Rust and pHash to find perceptual similarities in our photo library.

Blog-Post

Carbon dioxide monitoring with Rust, InfluxDB and Grafana

Carbon dioxide monitoring with Rust, InfluxDB and Grafana.

Blog-Post

Health-Checks in Java-Anwendungen

Die Gesundheit immer im Blick

Blog-Post

Medienkunst schafft neue Perspektiven

Je weiter technologische Entwicklungen voranschreiten, desto mehr nutzen wir digitale Innovationen, um unser Leben zu gestalten. Dabei spielen Codes und Algorithmen eine entscheidende Rolle, wie wir Informationen nutzen und wahrnehmen. Medienkünstler bleiben davon nicht unberührt. Sie beziehen mit ihren digitalen Kunstwerken Stellung zu vielen Fragen, die unsere Gesellschaft beschäftigen. Medienkunst zeigt neue Perspektiven, erinnert aber auch an die Verantwortung, die Technologieunternehmen und Softwareentwickler hierbei tragen.