My dual premises in this series are: – Modern SQL is more valuable as a programming language than you might think (see Markus Winand’s Modern SQL: A lot has changed since SQL-92) –…
Memory-safe programming in the Linux Kernel (No not RUST) — eBPF.
Here at CoScreen many of our engineers and staff are huge Linux enthusiasts. The backend of CoScreen is running on Linux, from our data analytics systems, presence and calling, to our video and backup infrastructure. One could easily say Linux is the real Wizard behind the curtain generating the CoScreen platform.
Bringing CoScreen to Linux is high on our priority list, but due to the fragmentation of the Linux ecosystem, we will likely have to target very specific distributions of Linux, to begin with, and potentially provide a subset of functionality to certain distributions.
Web Developers Not Moving More Business Logic to the Client - The New Stack
Despite some movement around 'headless content management' with Jamstack and even WebAssembly, there is no statistically significant change in where developers are locating their new code.
RabbitMQ (or more specifically the AMQP protocol) provides a degree of flexibility over other message-queue solutions with its exchange-binding-queue model. Some possible solutions to scaling or business issues result in large numbers of bindings being created, perhaps thousands per queue. We tested RabbitMQ to find out what the binding performance limits were and present the results in this post. It seems that large numbers of bindings are not in themselves a performance issue, but on a RabbitMQ cluster, “binding churn” the rate at which they are created and destroyed can have a large impact on message delivery.
Writing a C program to process files is easy when you already know what files you'll operate on and what actions to take. If you "hard code" the filename into your program, or if your program is coded to do things only one way, then your program will always know what to do. But you can make your program much more flexible if it can respond to the user every time the program runs. Let your user tell your program what files to use or how to do things differently. And for that, you need to read the command line.
In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes.
This post is quite long so if you prefer to see an overview, feel free to jump to the index.
Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application written in Vanilla JavaScript when things started going out of control.
How Does an Engineer Create a Programming Language? - The New Stack
Through a podcast, technologist Marianne Bellotti takes listeners on her journey to write a new language from scratch. It's no easy task, but the host has fun while shedding light on the tools programmers use.
Cheap interpreter, part 9: even faster register machines
Last week I showed a few ways in which to improve the performance of
a Haskell intepreter for a register machine. In this post, we start with the
exact same bytecode (same register language, same compiler) and show how to use
a much slower language (Clojure) to end up with a much faster interpreter.This series is based on Neil Mitchell's talk "Cheaply writing a fast
interpeter". The talk compares a number of approaches to writing an
interpreter and tries to find a good balance between complexity and interpreter
overhead.The following topics, while important, are out of scope:
Postgres and JSON: Finding document hotspots (part 1)
One of the compelling aspects of modern SQL is the JSON support built into modern engines, including Postgres. The documentation is well done, but I need examples to motivate my understanding of wh…
Building a Rails CI pipeline with GitHub Actions | Boring Rails: Skip the bullshit and ship fast
GitHub Actions is an automation platform that you run directly from inside a repository. We can use it as a testing CI/CD pipeline and keep everything close to the code.