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.
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.
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 MoreYou 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 SeriesSeries
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 SeriesSeries
Just Enough Productive Haskell
Learn important concepts and how to overcome frequent roadblocks to be productive in Haskell.
format_align_left View SeriesSeries
Just Enough Haskell For XMonad
Learn to configure XMonad with just enough knowledge about Haskell functions, types and records.
format_align_left View SeriesLatest Posts
Just Enough Productive Haskell
How To Use a Record Field Name Within a Haskell Module Twice
We cannot 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.
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 MoreJust 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 MoreJust 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 MoreJust 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.
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 allows custom functions like mkDerivation
and mkShell
to hide complex details.
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 MoreJust 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.
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 MoreJust 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 MoreJust 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.
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 MoreJust 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 MoreJust 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 MoreJust 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
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
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 MoreJust 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 MoreJust 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 MoreJust 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 MoreJust 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