Deriving Spark Encoders and Schemas Using Implicits
Since Apache Spark 2.0 the Dataset API is the preferred way of programming over low level RDDs. However when migrating complex business entities from RDDs to Datasets, a handful of problems arise. One is the lack of support for user defined types, confining the developer to a predefined set of types and severely hindering the usefulness of Datas...
Who's watching? 👀
I have yet to meet a serious frontend programmer who hasn't used file
system watcher tasks to recompile/rebuild/redeploy code and enjoy the
instant feedback. In Javascript land all build tools/bundlers/packers
and whatnot provide watch flags to make them watch for changes
forever. This sounds a good idea at first, but when you have to use
more...
Set up multiple Git users on your machine
It is quite common to have separate users for different git repos. For example having a public account
for all your open-source GitHub stuff, and a work account for your employer’s private git remote.
If you regularly have to clone new repos in each ‘role’, defaulting to one and changing the
local repository config in all others quickly becomes...
Implementing Kleene logic two different ways in Scala
Recently I’ve been writing a graph query engine at Fault Tolerant System
Research Group at uni. The frontend is Cypher, a language popularized
by Neo Technology shipped OOTB with their graph database Neo4j.
Recently Cypher is getting standardized in an open source and open government
initiative under the name openCypher; and other DB vendors, s...
Scripting a MIDI controller with Modern JavaScript
Abstract: Blogpost summarizing the challenges of creating a flexible and customizable MIDI controller mapping for Mixxx targeting multiple Novation Launchpad grid controllers.
Keywords: JavaScript, MIDI, Mixxx, ES6 modules, Babel, Flow
I own two Novation Launchpads. The most iconic use-cases of this cool grid controller is launching samples. L...
Concurrency & Parallelism: Understanding I/O
With this article we are starting a series of blogposts targeting developers who
want to learn or refresh their knowledge about writing concurrent applications
in general. The series will focus on well-known and widely adopted concurrency
patterns in different programming languages, platforms and runtimes. With this,
we are diverting from our us...
Quote: Dealing with awkwardness in functional programs
As you write more functional programs, you’ll sometimes encounter
situations like this where the functional way of expressing a program
feels awkward or tedious. Does this imply that purity is the
equivalent of trying to write an entire novel without using the letter
E? Of course not. Awkwardness like this is almost always a sign of
some missing...
23 post articles, 4 pages.