Posts

  • Deploy your clojure app with docker

    You’ve built an app in clojure and you’d like to share it with the world (or at least show it to someone)? Then one of the easiest ways to do it, is with the help of docker.

  • Elm - "Haskell for the web"

    Elm is a language that was mostly designed to handle web frontend development using functional programming and immutable languages. It was mainly inspired by Haskell, so you won’t have a hard time learning the language if you are familiar with Haskell and its strong typed, pure functional way. The philosophie of Elm is to find problems at compile time thanks to its strong typing and to have zero runtime errors.

  • What are Monads?

    When you read about which programming languages you can learn to understand some language concepts, Haskell is often stated as represantant for a pure functional language. Often the next thing you can read is that Haskell has the unique concept of Monads, usually with no further explanation. I’ll try to explain in a simple way what Monads are about and how they are used in Haskell to keep the language pure.

  • Back to Haskell after 14 years

    When I started my Bachelor in Computer Science in 2004, we had a programming lecture where we mostly learned to program in Java. But we didn’t only learn Java, but also had a few weeks where we learned a bit of Haskell. I enjoyed programming in Haskell at the time, but couldn’t understand at the time how I could use this language to solve real world problems. Now more than 14 years later as a more experienced developer who likes functional programming, I decided to try Haskell again as I wanted to see how it’ll fell like to solve a bit more complex problems with it. And of course, I wanted to know what Monads are and understand them, as that’s what Haskell is known for, but we didn’t touch this subject when I learned Haskell at university.

  • Building a RESTful webservice for MongoDB with Kotlin

    I’ve already explained to you how to access MongoDB with Kotlin. Now, we’ll go one step further and expose a MongoDB connection via REST. We’ll build a RESTful webservice to perform the basic CRUD operations on a MongoDB database.

  • Building a CRUD webservice for Clojure

    In my previous posts, I explained how to access MongoDB from Clojure and how to manage your configurations. In this post, we’ll use this knowledge to create a small webservice which supports the basic CRUD operations (create, update, delete) on a MongoDB database.

  • Configuration handling in Clojure projects

    One of the difficult points when managing software projects, is the separation of configuration and source code. Often when you start a project to get started quickly, you just hard-code the password of your development database in the source code until your application gets more mature and you need to have it configurable outside of your code, so that you can change the config without the need to recompile. To these purposes there are some useful Clojure libraries, cprop and mount, which help you to retrieve configuration values and to make them accessible in the source code. Both libraries are used by Luminus.

  • Using MongoDB in Clojure

    I’ve already showed you in previous posts, how to do simple CRUD queries and how to execute aggregate functions in the Mongo Console. I’ve also shown you, how to use MongoDB with Kotlin. Today we’ll look at how to do these things from Clojure using the library Monger.

  • Prolog - a logical programming language - Introduction

    Today we’ll look at Prolog which is the most prominent representant of logical programming languages. It was already developed in the 1970s and is not really relevant anymore today. But it still influences a few other languages used today, especially in the context of graph databases. The database query language Datalog (used for example by Datamic) is a subset of it.

  • Which programming language should you learn?

    As most of the others software developers I know, I learned programming in an object oriented language (Java in my case). I learned a few other similar languages along the way (C++, C#, Python) and it was always pretty straight forward as they share similar paradigms.

  • Getting started with Couchbase

    After having a quick glance to MongoDB in my previous articles, I decided to compare it to another document store. First, I wanted to look at CouchDB, but I rapidly discovered that the founder of CouchBase has developed another product named Couchbase Server which expanded the key-value store Membase with lots of concept used in the docstore CouchDB. So Couchbase Server is not only a document store but rather a key-value store that support queries like in document stores so that you can find and aggregate your values based on their attributes. Another important concept behind Couchbase is that it was build to run on multiple nodes, supporting both partitioning and replication.

  • Using MongoDB in Kotlin

    In my previous posts, we only did simple CRUD queries and aggregate functions in the Mongo Console. But to really benefit from your MongoDB, you need to be able to use it in your programs. MongoDB provides drivers for multiple programming languages: C, C++, C#, Java, Node.js, Perl, PHP, Python, Ruby, Scala. We’ll have a look at how to use MongoDB to do some queries in Kotlin. We can of course use the Java driver as Kotlin can use any Java library. We’ll read in the CIA factbook from a JSON file, load it into Mongo and perform an aggregate function on it.

  • MongoDB: Advanced queries using elemMatch and aggregate

    After doing some basic CRUD operations in my previous post, we’ll now have a look at little more advanced queries.

  • Getting started with MongoDB

    In this post, we’ll have a first look at mongo db. So first, you’ll want to install it. As starting point you can go to the [MongoDB Homepage Community Edition download page][mongodb-download]. There download the newest installer for your operating system. If you use Linux, go to the Linux Download Page where you’ll get instructions on how to install MongoDB with your package manager. If you don’t want to install it on your own machine, MongoDB also offers to host your instance on its cloud [MongoDB Atlas][mongo-atlas] (free until 512MB storage, paid offerings if you need more).

  • Document Stores: MongoDB, CouchDB and others

    The first NoSQL databases that I want to have a closer look are document stores. The most popular document store at the moment is MongoDB. In document stores the data is stored in self contained documents, other members are denormalized.

  • NoSQL databases with Kotlin

    After reading about NoSQL databases for years now, I finally decided to try them out a bit more in depth. One thing that prevented me doing this earlier, is that I often can’t think of a concrete use case to use them, mostly because I don’t know how to make up useful data.

  • Why I use Jekyll for my homepage

    When I decided to publish my website about software development, I started thinking which technology I should use to run it. I didn’t want to use anything that is heavy weight as I only plan to publish text and other static content at the moment.

subscribe via RSS