Opaque Datatypes Considered Awesome I am periodically reminded that many people don’t realize that C actually allows the creation of opaque data types. This is a possibly-surprising side effect of the option of never completing a type.
Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. It provides an expressive syntax with its lightweight type system and comes with concurrency as a built-in feature at the language level.
In this post, we’ll look at how to build Go programs – such as compilers and static analysis tools – that interact with the LLVM compiler framework using the LLVM IR assembly language.
Introduction
Goroutine Leaks are a common cause of memory leaks in Go programs. In my previous post, I presented an introduction to Goroutine leaks and provided one example of a common mistake that many Go developers make. Continuing that work, this post presents another scenario...
Let me start by thanking all contributors for feedback on Watermill - it drives us to add new features. Thanks!
It’s been almost a month since the initial release of Watermill. However, it’s just the beginning and we are still working hard to ship new features.
What i...
Today we will see how Apache Arrow could be useful for data science, or – really – a lot of analysis workloads.
Lingua franca In Data Science and in many scientific fields, the lingua franca is Python.
Overview Apache Beam (batch and stream) is a powerful tool for handling embarrassingly parallel workloads. It is a evolution of Google’s Flume, which provides batch and streaming data processing based on the MapReduce concepts.
Caching things can be hard to do and hard to test. In this post I’ll demonstrate a convenient way of doing that using interfaces.
The problem
Let’s suppose we want to cache calls to the GitHub API. Let’s say we want
to get the my repository list for whatever re...
Interfaces are one of the fundamental tools for abstraction in Go. Interfaces store type information when assigned a value. Reflection is a method of examining type and value information at runtime.
Debuggers. Traditionally they are used to find complex bugs and reason about how they happen. But what if you cannot explain why some changes happen between steps?