In-depth introduction to flexbox
Modern CSS is loaded with features; many things that in the past required JavaScript and tooling now can be done with plain CSS. If I were to recommend one feature that is worth learning in detail, it would be flexbox.
Alternate Ways of Creating Single Case Discriminated Unions in F#
There are quite a few ways of creating single case discriminated unions in F# and this makes them popular for wrapping primatives. In this post, I will go through a number of the approaches that I have seen.
Introduction to Web Programming in F# with Giraffe – Part 2
In this series we are investigating web programming with Giraffe and the Giraffe View Engine. In this post, we will creating a simple API.
Introduction to Web Programming in F# with Giraffe – Part 3
In the last post, we created a simple API for managing a Todo list. In this post, we are going to start our journey into HTML views with the Giraffe View Engine.
Function Composition in F# with Unfriendly Functions
This is a short post looking at how to solve the problem of using F# unfriendly libraries in an F# function composition pipeline. One of my colleagues asked a question about this and I thought it might be interesting to look at some of the options available to us to solve it.
Innovation Incubator Round 1
In 2020 we started an Innovation Incubator. It is a learning and sharing process that tries to connect people from the different teams together. This is especially important for a remote company with people working all across Europe. This is the retrospective of Round 1 of the incubator.
Tracing IO in .NET Core
In this post we introduce OpenTelemetry to trace IO calls in our .NET apps.
Using GCP Cloud Functions with F#
I've recently been writing a new feature in one of our projects and I thought I'd take advantage of the new .NET support in GCP Cloud Functions. As the project I work on is fully F# based my cloud function was going to be written in F#.
Introduction to Partial Function Application in F#
Partial Function Application is one of the core functional programming concepts that everyone should understand as it is widely used in most F# codebases.In this post I will introduce you to the grace and power of partial application. We will start with tupled arguments that most devs will recognise and then move onto curried arguments that allow us to use partial application.
Innovation Incubator at Trustbit
Trustbit has a policy that we could spend 10-20% of our weekly time on learning new things. We are starting a new experimental process, called "Innovation Incubator".
Introduction to Functional Programming in F# – Table of Contents
This series of posts will introduce you to the world of functional programming (FP) in F#. Rather than start with theory or formal definitions, we will look at some typical business problems and explore how we can use some of the exciting functional programming features in F# to solve them.
Introduction to Functional Programming in F# – Part 12
In this post we will start to learn how to use Computation Expressions, create our own simple one and look at a more complex example where we combine two effects together - Async and Result.
Understanding F# Type Aliases
In this post, we discuss the difference between F# types and aliases that from a glance may appear to be the same thing.
Understanding F# applicatives and custom operators
In this post, Jonathan Channon, a newcomer to F#, discusses how he learnt about a slightly more advanced functional concept - Applicatives.
My Workflows at Trustbit During the Quarantine
The current situation has deeply affected our daily lives. However, in retrospect, it also had a surprisingly small impact on how we get the work done at Softwarepark. “We”, for the purpose of this article is “a small team that focuses on data science projects for one particular customer”.
Introduction to Functional Programming in F# – Part 8
In this post we are going to look at adding validation to the code we worked on in Part 6. We will use active patterns that we looked at in the last post (Part 7) and we will see how you can easily model domain errors.