Highlights


Just Enough FP For OO-Developers

Be a Smarter, Future-Proof Programmer with Monads

As a Java(script) programmer, you already know Lists and Optionals, and have used map and flatMap functions just fine without knowing the underlying Monad concept. However, getting to know it will make your code easier to test with fewer bugs, and make you a competent programmer on nowadays essential, harder topics like asynchronous and reactive programming.

Read More

Just Enough Nix For Programming

The Nix Language for the Functionally Lazy OO Programmer

Nix comes with the powerful, functional Nix (programming) language to manage packages of many ecosystems at once; not just Javascript or Java like Node and Maven do. It’s like writing a declarative package.json or pom.xml file but on steroids: Besides dependency management we get flexible, reproducible development environments for free.

Read More

Just Enough Haskell For XMonad

Configure a light-weight status bar for XMonad: Xmobar

The status bar Xmobar works out of the box on the top edge of your screen and shows useful system info. However, if you want to make it look nice and change what information to show, you can customize it with a tiny bit of Haskell.

Read More

You may also be interested in

Series

Just Enough FP For OO-Developers

Languages and frameworks come and go, but functional programming concepts stay. Learn the most important ones to become an even better OO software developer.

format_align_left View Series
Series

Just Enough Nix For Programming

Learn the most convenient way to setup a reproducible, shareable, rich and easily adaptable development environment, like Docker but better.

format_align_left View Series
Series

Just Enough Productive Haskell

Learn important concepts and how to overcome frequent roadblocks to be productive in Haskell.

format_align_left View Series
Series

Just Enough Haskell For XMonad

Learn to configure XMonad with just enough knowledge about Haskell functions, types and records.

format_align_left View Series

Latest Posts


Just Enough Productive Haskell

How To Use a Record Field Name Within a Haskell Module Twice

We can’t use the same field name for different records in the same module, which is quite annoying in standard Haskell. However, the DuplicateRecordFields extension is a valuable quickfix most of the time.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Better XMonad Keyboard Shortcuts: EZ

Writing keyboard shortcuts for XMonad in native Haskell is straightforward. Yet there is an even shorter, “EZ” notation.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Useful XMonad shortcuts

Knowing and customizing shortcuts is the essence of being productive with XMonad. To get some inspiration it’s helpful to look at how built-in and other shortcuts are defined.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

How To Configure Workspace Shortcuts

The keyboard shortcuts in XMonad to manage screens, workspaces and windows often use hardcore Haskell syntax that may be difficult to understand. But it’s just unfamilar.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

How To Change XMonad's Modifier Key

All XMonad shortcuts use the modifier key modMask, which by default is bound to the left Alt key. Often however, we need another key.

Read More

by Malte Neuss

Just Enough Nix For Programming

Declarative App Builds and Environments: How to create Nix Derivations

Derivations are recipes to build and distribute apps of any ecosystem in Nix. They are similar to Docker files but better, because the Nix programming language permits functions like mkDerivation and mkShell that hide complex details.

Read More

by Malte Neuss

Just Enough Nix For Programming

How to Setup Programming Environments with Nix Shell

With a few lines you can setup programming environments (compilers, packages, databases, browsers, and other tools from different ecosystems) with having only the Nix Package Manager installed.

Read More

by Malte Neuss

Just Enough FP For OO-Developers

Be a Smarter, Future-Proof Programmer with Monads

As a Java(script) programmer, you already know Lists and Optionals, and have used map and flatMap functions just fine without knowing the underlying Monad concept. However, getting to know it will make your code easier to test with fewer bugs, and make you a competent programmer on nowadays essential, harder topics like asynchronous and reactive programming.

Read More

by Malte Neuss

Just Enough FP For OO-Developers

The Best Container Interface: Functor. I Promise.

If you have used the Java Stream Api, the Browser’s Fetch Api or modified a list in Javascript, you’ve come across a Functor. It’s a beautiful, intensively analyzed concept from Category Theory and Functional Programming that you’ll begin to see everywhere.

Read More

by Malte Neuss

Just Enough Nix For Programming

How to Search For Apps and Tools within Nix Packages

Nix is very capable of managing dependencies and creating programming environments. Everything is bundled up as Nix packages. However, when we look for an app in a specific version, it can be difficult to find the right Nix package name.

Read More

by Malte Neuss

Just Enough Nix For Programming

The Nix Language for the Functionally Lazy OO Programmer

Nix comes with the powerful, functional Nix (programming) language to manage packages of many ecosystems at once; not just Javascript or Java like Node and Maven do. It’s like writing a declarative package.json or pom.xml file but on steroids: Besides dependency management we get flexible, reproducible development environments for free.

Read More

by Malte Neuss

Just Enough Nix For Programming

How to Setup a Haskell Programming Environment with Nix

With a few lines you can setup your Haskell programming environment (compilers, packages, databases, browsers, and other tools from different ecosystems) with having only the Nix Package Manager installed.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Configure a light-weight status bar for XMonad: Xmobar

The status bar Xmobar works out of the box on the top edge of your screen and shows useful system info. However, if you want to make it look nice and change what information to show, you can customize it with a tiny bit of Haskell.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Replace XMonad's app launcher with a time-saving alternative: Yeganesh

The minimalistic app Yeganesh improves XMonad’s default app launcher with a small but time-saving feature: It shows your most frequently used apps first. So most of the time you will be able start an app by writing a single character.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Control the audio volume in Ubuntu+XMonad with Alsa and PulseAudio

The terminal app Alsa allows you to audio volume programmatically. You can use it from within XMonad as a workaround when FN function keys don’t work by default.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Control the screen brightness in XMonad with Lux

The terminal app Lux allows you to set the screen brightness programmatically. You can use it from within XMonad as a workaround when FN function keys don’t work by default.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Learn Haskell Functions with XMonad's XConfig example

Small changes to XMonad like changing keyboard shortcuts require little Haskell knowledge. However, bigger customizations, especially to organize your code when adapting other people’s configurations, are easier when you understand Haskell functions.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

Learn Haskell Types and Records with XMonad's XConfig example

Small changes to XMonad like changing keyboard shortcuts require little Haskell knowledge. However, bigger customizations, especially adapting other people’s configurations, are easier when you understand Haskell types and records.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

How To Configure XMonad Keyboard Shortcuts

In XMonad any action is done with a keyboard shortcut: start an app, switch between workspaces, change the layout of your windows, running scripts, etc. This is more efficient than using a mouse, and highly customizable.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

XMonad Layouts

With XMonad you can not only control which apps are shown on which screen or workspace but also how app windows are arranged on a single workspace: These window arrangements are called layouts.

Read More

by Malte Neuss

Just Enough Haskell For XMonad

XMonad Overview

Most computer users use the standard window manager of their operating system that is built to be accessible for newcomers. They are quite happy with it, but only because they don’t know about time-saving tiling window managers like XMonad.

Read More

by Malte Neuss