JavaScript

DIY Type Safe AOP in TypeScript

In this article, we will demonstrate how to implement a simple type safe utility function for audit logging in TypeScript.

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

React Setup on Bluemix in 10 Minutes

React is one of the most mature and widely used JavaScript libraries. However, the ecosystem of tools around it can be overwhelming. It often takes hours or even days to configure properly a usable development environment. In this post, we’ll show how to set up a sample React web app, and productionise it on Bluemix it in less than 10 minutes …

Back to Top ↑

Java

Gradle Quickstart

Introduces Gradle, its main building blocks, and how to work with them …

Summary of the Oracle JDK8 MOOC

Oracle has recently released a 3-week JDK 8 Massive Open and Online Course called “Lambdas and Streams”, which discusses the new JDK8 functional features in much more details. It’s a great course and if you’re interested in Java and new JDK8 it can help you get started. This article summarises the course and my previous post and can be used as a quick ref-card …

.NET for Java Devs in a nutshell

.Net is a software development platform, which allows code written in different languages to interoperate. C# and the .Net model have some resemblances with some java-based technologies. This article aims to briefly explain some of its core concepts by comparing and contrasting the two “worlds” …

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

C# pitfalls for Java Devs - Overriding [Part 1]

Last week I finally had the time to learn a bit of C#, after a number of years of mostly Java coding. Professional C# developers have described it to me as a “better Java” or “Java with syntactic sugar”, and have claimed that Java programmers should not have problems picking it up. It is true that both languages have a lot in common - i.e. the C-like syntax and single inheritance. However, there are some quite fundamental philosophical differences, which can be mind-boggling for a Java programmer …

CloudSim and CloudSimEx [Part 3] – Delayed VM and Cloudlet actions

Many few CloudSim users have asked how to submit/destroy a VM or a cloudlet with a delay. Unfortunately, this is far from trivial, as it involves launching and handling custom events and ensuring the internal state of the broker is consistent - e.g. all cloudlets of a terminated VM are killed. That’s why CloudSimEx introduced a new broker DatacenterBrokerEX, which among other new features also supports dynamic provisioning and scheduling of VMs and cloudlets …

Starting VM with Custom Image, Security Group and Key-Pair via JClouds

Recently I needed to programatically start EC2 instances from a private AMI (VM Image) as a part of a new provisioning algorithm I was working on. I also wanted to specify my predefined security group and key-pair, so that the new VM is usable right away. Lastly, I wanted to implement it as EC2-independent as possible, so that I can include multiple clouds later on. After struggling a bit with both Apache LibCloud and Apache JClouds I could finally implement this in JClouds …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Java 8 in a Nutshell

Oracle has officially released JDK 8, featuring long-awaited language features like lambdas and a new Date-Time API. This post gives a brief overview of the new functional programming features in Java …

Back to Top ↑

Node

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

React Setup on Bluemix in 10 Minutes

React is one of the most mature and widely used JavaScript libraries. However, the ecosystem of tools around it can be overwhelming. It often takes hours or even days to configure properly a usable development environment. In this post, we’ll show how to set up a sample React web app, and productionise it on Bluemix it in less than 10 minutes …

Back to Top ↑

Python

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

NuPIC Setup in Ubuntu

NuPIC (Numenta Platform for Intelligent Computing) is a biologically inspired library for machine learning in the loose sense of the term. It is an implementation of the HTM (Hierarchical Temporal Memory) model which mimics the structure and organisation of the neocortex. In this post I’ll overview a setup procedure for Ubuntu (tested with version 14.04) …

Monads in 15 minutes

This tutorial explains the intuition behind Monads and demonstrates them with a few simple and short python examples. Its goal is to explain Monads simply in less than 15 minutes and thus it refrains from making insightful philosophical and theoretical reflections …

Back to Top ↑

Cheatsheet

Shell Cheatsheet [Part 1] - Common Bash Scripting, Tmux

This post is a cheat sheet of commonly used shell commands and tools. It is meant to serve as a quick reference guide that you can consult when developing scripts or when working extensively with the Bash shell …

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

Data Science

NuPIC Setup in Ubuntu

NuPIC (Numenta Platform for Intelligent Computing) is a biologically inspired library for machine learning in the loose sense of the term. It is an implementation of the HTM (Hierarchical Temporal Memory) model which mimics the structure and organisation of the neocortex. In this post I’ll overview a setup procedure for Ubuntu (tested with version 14.04) …

Octave GUI in Ubuntu 13.x - First Impressions

GNU Octave is a powerful open source alternative to Matlab. The latest version 3.7 of Octave introduces a new GUI front-end with an integrated debugger. Octave 3.7 has not been officially released, but you can download the code, build and test it locally …

Back to Top ↑

Functional programming

Big Data Analysis with Scala and Spark - MOOC Summary

Apache Spark has emerged as the premium tool for big data analysis and Scala is the preferred language for writing Spark applications. The “Big Data Analysis with Scala and Spark” course on Coursera is a great, intuitive, and accessible introduction to Spark. This post is a summary of its content …

Summary of the Parallel Programming with Scala MOOC

EPFL has released a new course on Parallel Programming, which is a part of the Functional Programming in Scala Specialisation. This post summarises the course and can be used as a quick ref-card on the topic …

Monads in 15 minutes

This tutorial explains the intuition behind Monads and demonstrates them with a few simple and short python examples. Its goal is to explain Monads simply in less than 15 minutes and thus it refrains from making insightful philosophical and theoretical reflections …

Back to Top ↑

Scala

Big Data Analysis with Scala and Spark - MOOC Summary

Apache Spark has emerged as the premium tool for big data analysis and Scala is the preferred language for writing Spark applications. The “Big Data Analysis with Scala and Spark” course on Coursera is a great, intuitive, and accessible introduction to Spark. This post is a summary of its content …

Summary of the Parallel Programming with Scala MOOC

EPFL has released a new course on Parallel Programming, which is a part of the Functional Programming in Scala Specialisation. This post summarises the course and can be used as a quick ref-card on the topic …

Back to Top ↑

TypeScript

DIY Type Safe AOP in TypeScript

In this article, we will demonstrate how to implement a simple type safe utility function for audit logging in TypeScript.

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

Back to Top ↑

Bash

Shell Cheatsheet [Part 1] - Common Bash Scripting, Tmux

This post is a cheat sheet of commonly used shell commands and tools. It is meant to serve as a quick reference guide that you can consult when developing scripts or when working extensively with the Bash shell …

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

Maven

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

CloudSim and CloudSimEx [Part 3] – Delayed VM and Cloudlet actions

Many few CloudSim users have asked how to submit/destroy a VM or a cloudlet with a delay. Unfortunately, this is far from trivial, as it involves launching and handling custom events and ensuring the internal state of the broker is consistent - e.g. all cloudlets of a terminated VM are killed. That’s why CloudSimEx introduced a new broker DatacenterBrokerEX, which among other new features also supports dynamic provisioning and scheduling of VMs and cloudlets …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Back to Top ↑

Docker

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

How To Start A Debug Container in Kubernetes

This post demonstrates how to start a temporary debug container in a K8S cluster and open up a terminal sessions into it. This will allow us to test various network issues without leaving any permanent pods behind.

Back to Top ↑

React

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

React Setup on Bluemix in 10 Minutes

React is one of the most mature and widely used JavaScript libraries. However, the ecosystem of tools around it can be overwhelming. It often takes hours or even days to configure properly a usable development environment. In this post, we’ll show how to set up a sample React web app, and productionise it on Bluemix it in less than 10 minutes …

Back to Top ↑

AWS

Starting VM with Custom Image, Security Group and Key-Pair via JClouds

Recently I needed to programatically start EC2 instances from a private AMI (VM Image) as a part of a new provisioning algorithm I was working on. I also wanted to specify my predefined security group and key-pair, so that the new VM is usable right away. Lastly, I wanted to implement it as EC2-independent as possible, so that I can include multiple clouds later on. After struggling a bit with both Apache LibCloud and Apache JClouds I could finally implement this in JClouds …

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

CloudSim

CloudSim and CloudSimEx [Part 3] – Delayed VM and Cloudlet actions

Many few CloudSim users have asked how to submit/destroy a VM or a cloudlet with a delay. Unfortunately, this is far from trivial, as it involves launching and handling custom events and ensuring the internal state of the broker is consistent - e.g. all cloudlets of a terminated VM are killed. That’s why CloudSimEx introduced a new broker DatacenterBrokerEX, which among other new features also supports dynamic provisioning and scheduling of VMs and cloudlets …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Back to Top ↑

CloudSimEx

CloudSim and CloudSimEx [Part 3] – Delayed VM and Cloudlet actions

Many few CloudSim users have asked how to submit/destroy a VM or a cloudlet with a delay. Unfortunately, this is far from trivial, as it involves launching and handling custom events and ensuring the internal state of the broker is consistent - e.g. all cloudlets of a terminated VM are killed. That’s why CloudSimEx introduced a new broker DatacenterBrokerEX, which among other new features also supports dynamic provisioning and scheduling of VMs and cloudlets …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Back to Top ↑

Simulation

CloudSim and CloudSimEx [Part 3] – Delayed VM and Cloudlet actions

Many few CloudSim users have asked how to submit/destroy a VM or a cloudlet with a delay. Unfortunately, this is far from trivial, as it involves launching and handling custom events and ensuring the internal state of the broker is consistent - e.g. all cloudlets of a terminated VM are killed. That’s why CloudSimEx introduced a new broker DatacenterBrokerEX, which among other new features also supports dynamic provisioning and scheduling of VMs and cloudlets …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Back to Top ↑

C#

.NET for Java Devs in a nutshell

.Net is a software development platform, which allows code written in different languages to interoperate. C# and the .Net model have some resemblances with some java-based technologies. This article aims to briefly explain some of its core concepts by comparing and contrasting the two “worlds” …

C# pitfalls for Java Devs - Overriding [Part 1]

Last week I finally had the time to learn a bit of C#, after a number of years of mostly Java coding. Professional C# developers have described it to me as a “better Java” or “Java with syntactic sugar”, and have claimed that Java programmers should not have problems picking it up. It is true that both languages have a lot in common - i.e. the C-like syntax and single inheritance. However, there are some quite fundamental philosophical differences, which can be mind-boggling for a Java programmer …

Back to Top ↑

Pandas

Back to Top ↑

MOOC

Big Data Analysis with Scala and Spark - MOOC Summary

Apache Spark has emerged as the premium tool for big data analysis and Scala is the preferred language for writing Spark applications. The “Big Data Analysis with Scala and Spark” course on Coursera is a great, intuitive, and accessible introduction to Spark. This post is a summary of its content …

Summary of the Parallel Programming with Scala MOOC

EPFL has released a new course on Parallel Programming, which is a part of the Functional Programming in Scala Specialisation. This post summarises the course and can be used as a quick ref-card on the topic …

Summary of the Oracle JDK8 MOOC

Oracle has recently released a 3-week JDK 8 Massive Open and Online Course called “Lambdas and Streams”, which discusses the new JDK8 functional features in much more details. It’s a great course and if you’re interested in Java and new JDK8 it can help you get started. This article summarises the course and my previous post and can be used as a quick ref-card …

Back to Top ↑

NPM

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

React Setup on Bluemix in 10 Minutes

React is one of the most mature and widely used JavaScript libraries. However, the ecosystem of tools around it can be overwhelming. It often takes hours or even days to configure properly a usable development environment. In this post, we’ll show how to set up a sample React web app, and productionise it on Bluemix it in less than 10 minutes …

Back to Top ↑

SonarQube

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑

Ubuntu

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Octave GUI in Ubuntu 13.x - First Impressions

GNU Octave is a powerful open source alternative to Matlab. The latest version 3.7 of Octave introduces a new GUI front-end with an integrated debugger. Octave 3.7 has not been officially released, but you can download the code, build and test it locally …

Back to Top ↑

C++

C# pitfalls for Java Devs - Overriding [Part 1]

Last week I finally had the time to learn a bit of C#, after a number of years of mostly Java coding. Professional C# developers have described it to me as a “better Java” or “Java with syntactic sugar”, and have claimed that Java programmers should not have problems picking it up. It is true that both languages have a lot in common - i.e. the C-like syntax and single inheritance. However, there are some quite fundamental philosophical differences, which can be mind-boggling for a Java programmer …

NuPIC Setup in Ubuntu

NuPIC (Numenta Platform for Intelligent Computing) is a biologically inspired library for machine learning in the loose sense of the term. It is an implementation of the HTM (Hierarchical Temporal Memory) model which mimics the structure and organisation of the neocortex. In this post I’ll overview a setup procedure for Ubuntu (tested with version 14.04) …

Back to Top ↑

Benchmark

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

CloudStone

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

CloudSuite

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

Web App

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Automated CloudStone Setup in Ubuntu VMs

One of the major obstacles in Cloud computing research is the lack of representative “cloudy” applications and workloads. The CloudSuite 2.0 suite of benchmarking applications tries to address just that. It comprises 8 benchmarks, which represent a large spectrum of typical applications run in cloud environments. Among them is CloudStone, which is a social media 3-tier web application benchmark. However, its installation is not straightforward. This article introduces several scripts that automate CloudStone’s installation on 64bit Ubuntu 14.04 virtual machines …

Back to Top ↑

Eclipse

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

CloudSim and CloudSimEx [Part 1]

CloudSim is one of the most popular Cloud infrastructure simulators and is used throughout academia and industry. Being one of its maintainers I often get emails with requests for new features. Thus, I’ve started the CloudSimEx project, which brings some of these extensions together. CloudSimEx is a set of CloudSim extensions making simulation development easier and enabling the modelling of new types of applications, not supported by CloudSim …

Back to Top ↑

Reshape

Back to Top ↑

Jupyter

Back to Top ↑

Category Theory

Back to Top ↑

Shell

Shell Cheatsheet [Part 1] - Common Bash Scripting, Tmux

This post is a cheat sheet of commonly used shell commands and tools. It is meant to serve as a quick reference guide that you can consult when developing scripts or when working extensively with the Bash shell …

Back to Top ↑

Gradle

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Gradle Quickstart

Introduces Gradle, its main building blocks, and how to work with them …

Back to Top ↑

Redux

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

Back to Top ↑

Kubernetes

How To Start A Debug Container in Kubernetes

This post demonstrates how to start a temporary debug container in a K8S cluster and open up a terminal sessions into it. This will allow us to test various network issues without leaving any permanent pods behind.

Back to Top ↑

kubectl

How To Start A Debug Container in Kubernetes

This post demonstrates how to start a temporary debug container in a K8S cluster and open up a terminal sessions into it. This will allow us to test various network issues without leaving any permanent pods behind.

Back to Top ↑

Static Analysis

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑

Octave

Octave GUI in Ubuntu 13.x - First Impressions

GNU Octave is a powerful open source alternative to Matlab. The latest version 3.7 of Octave introduces a new GUI front-end with an integrated debugger. Octave 3.7 has not been officially released, but you can download the code, build and test it locally …

Back to Top ↑

Octave GUI

Octave GUI in Ubuntu 13.x - First Impressions

GNU Octave is a powerful open source alternative to Matlab. The latest version 3.7 of Octave introduces a new GUI front-end with an integrated debugger. Octave 3.7 has not been officially released, but you can download the code, build and test it locally …

Back to Top ↑

Monad

Monads in 15 minutes

This tutorial explains the intuition behind Monads and demonstrates them with a few simple and short python examples. Its goal is to explain Monads simply in less than 15 minutes and thus it refrains from making insightful philosophical and theoretical reflections …

Back to Top ↑

NuPIC

NuPIC Setup in Ubuntu

NuPIC (Numenta Platform for Intelligent Computing) is a biologically inspired library for machine learning in the loose sense of the term. It is an implementation of the HTM (Hierarchical Temporal Memory) model which mimics the structure and organisation of the neocortex. In this post I’ll overview a setup procedure for Ubuntu (tested with version 14.04) …

Back to Top ↑

Lambda

Java 8 in a Nutshell

Oracle has officially released JDK 8, featuring long-awaited language features like lambdas and a new Date-Time API. This post gives a brief overview of the new functional programming features in Java …

Back to Top ↑

Load Balancer

Advanced Automated CloudStone Setup in Ubuntu VMs [Part 2]

This post covers how to achieve a more advanced CloudStone deployment with a dedicated load balancer in front of the web server, so that new web servers can be added dynamically. To accommodate multiple web servers we configure a central repository for the media filestore, which is shared across all of them …

Back to Top ↑

Disk

Back to Top ↑

JClouds

Starting VM with Custom Image, Security Group and Key-Pair via JClouds

Recently I needed to programatically start EC2 instances from a private AMI (VM Image) as a part of a new provisioning algorithm I was working on. I also wanted to specify my predefined security group and key-pair, so that the new VM is usable right away. Lastly, I wanted to implement it as EC2-independent as possible, so that I can include multiple clouds later on. After struggling a bit with both Apache LibCloud and Apache JClouds I could finally implement this in JClouds …

Back to Top ↑

Virtual Machine

Starting VM with Custom Image, Security Group and Key-Pair via JClouds

Recently I needed to programatically start EC2 instances from a private AMI (VM Image) as a part of a new provisioning algorithm I was working on. I also wanted to specify my predefined security group and key-pair, so that the new VM is usable right away. Lastly, I wanted to implement it as EC2-independent as possible, so that I can include multiple clouds later on. After struggling a bit with both Apache LibCloud and Apache JClouds I could finally implement this in JClouds …

Back to Top ↑

VM Image

Starting VM with Custom Image, Security Group and Key-Pair via JClouds

Recently I needed to programatically start EC2 instances from a private AMI (VM Image) as a part of a new provisioning algorithm I was working on. I also wanted to specify my predefined security group and key-pair, so that the new VM is usable right away. Lastly, I wanted to implement it as EC2-independent as possible, so that I can include multiple clouds later on. After struggling a bit with both Apache LibCloud and Apache JClouds I could finally implement this in JClouds …

Back to Top ↑

Generics

Back to Top ↑

Jersey

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

Back to Top ↑

Jetty

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

Back to Top ↑

REST

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

Back to Top ↑

Web Services

REST with Embedded Jetty and Jersey in a Single Jar - Step by Step

Setting up a simple RESTful Java based development environment to play with can be surprisingly difficult. In this tutorial, I will show how to set up a RESTful server (Jetty+Jersey) to start from a standard Java main method. Furthermore, using Maven we’ll package the entire application in a single executable jar file, which can be started from any machine with a Java environment. Finally, we’ll see how to import it into Eclipse, so we can develop and debug there …

Back to Top ↑

.NET

.NET for Java Devs in a nutshell

.Net is a software development platform, which allows code written in different languages to interoperate. C# and the .Net model have some resemblances with some java-based technologies. This article aims to briefly explain some of its core concepts by comparing and contrasting the two “worlds” …

Back to Top ↑

BGP

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

Network

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

OSPF

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

RIP

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

NAT

Basic Networks: Cheatsheet [Part 1]

The purpose of this cheat-sheet is to briefly overview the main networking principles without going into too much technical details…

Back to Top ↑

Pivot

Back to Top ↑

Actors

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Coroutine

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Fiber

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Goroutine

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Lmax-Disruptor

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Thread

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Process

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Parallel Programming

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Concurrent Programming

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Parallelism

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Concurrency

Overview of Modern Concurrency and Parallelism Concepts

Most software engineers know about operating system (OS) level processes and threads. They are taught in all university OS courses. However, newer concepts promising higher throughput, less overhead, latency, and development efforts have emerged. The goals of this article are to summarise, exemplify and compare terms like green threads, fibres, goroutine, actors etc …

Back to Top ↑

Jdk

Summary of the Oracle JDK8 MOOC

Oracle has recently released a 3-week JDK 8 Massive Open and Online Course called “Lambdas and Streams”, which discusses the new JDK8 functional features in much more details. It’s a great course and if you’re interested in Java and new JDK8 it can help you get started. This article summarises the course and my previous post and can be used as a quick ref-card …

Back to Top ↑

Oracle

Summary of the Oracle JDK8 MOOC

Oracle has recently released a 3-week JDK 8 Massive Open and Online Course called “Lambdas and Streams”, which discusses the new JDK8 functional features in much more details. It’s a great course and if you’re interested in Java and new JDK8 it can help you get started. This article summarises the course and my previous post and can be used as a quick ref-card …

Back to Top ↑

Github

Back to Top ↑

Applicative Functor

Back to Top ↑

Tmux

Shell Cheatsheet [Part 1] - Common Bash Scripting, Tmux

This post is a cheat sheet of commonly used shell commands and tools. It is meant to serve as a quick reference guide that you can consult when developing scripts or when working extensively with the Bash shell …

Back to Top ↑

Parallel programming

Summary of the Parallel Programming with Scala MOOC

EPFL has released a new course on Parallel Programming, which is a part of the Functional Programming in Scala Specialisation. This post summarises the course and can be used as a quick ref-card on the topic …

Back to Top ↑

Cloud Foundry

Cloud Foundry [Part 1] - Orgs, Spaces, Buildpacks, and Services

Cloud Foundry is an open source Platform as a Service (PaaS) technology giverned by the Cloud Foundry Foundation. Multiple PaaS providers offer cloud services based on Cloud Foundry. This allows for “portbale” applications which are based on open standards and can be easily migrated across clouds. In this post, we will overview the main concepts and building blocks in Cloud Foundry and will provide a cheatsheet of common Cloud Foundry commands …

Back to Top ↑

Yarn

Back to Top ↑

Build

Gradle Quickstart

Introduces Gradle, its main building blocks, and how to work with them …

Back to Top ↑

Bluemix

React Setup on Bluemix in 10 Minutes

React is one of the most mature and widely used JavaScript libraries. However, the ecosystem of tools around it can be overwhelming. It often takes hours or even days to configure properly a usable development environment. In this post, we’ll show how to set up a sample React web app, and productionise it on Bluemix it in less than 10 minutes …

Back to Top ↑

Mongo

Back to Top ↑

CSV

Back to Top ↑

Flow

Common Types for Redux Actions and Reducers

In my past React/Redux projects which use Flow or Typescript, I ended up writing similar type definitions for the Redux actions and reducers. I decided to extract these as generic type definitions, which can be reused in the future …

Back to Top ↑

Async

Back to Top ↑

Await

Back to Top ↑

Promise

Back to Top ↑

Spark

Big Data Analysis with Scala and Spark - MOOC Summary

Apache Spark has emerged as the premium tool for big data analysis and Scala is the preferred language for writing Spark applications. The “Big Data Analysis with Scala and Spark” course on Coursera is a great, intuitive, and accessible introduction to Spark. This post is a summary of its content …

Back to Top ↑

WebForm

Back to Top ↑

File Upload

Back to Top ↑

Redux-Form

Back to Top ↑

AOP

DIY Type Safe AOP in TypeScript

In this article, we will demonstrate how to implement a simple type safe utility function for audit logging in TypeScript.

Back to Top ↑

Audit Log

DIY Type Safe AOP in TypeScript

In this article, we will demonstrate how to implement a simple type safe utility function for audit logging in TypeScript.

Back to Top ↑

Crosss Cutting Concern

DIY Type Safe AOP in TypeScript

In this article, we will demonstrate how to implement a simple type safe utility function for audit logging in TypeScript.

Back to Top ↑

API

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

Back to Top ↑

pyenv

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

Back to Top ↑

pipenv

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

Back to Top ↑

Flask

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

Back to Top ↑

pytest

Python API With Flask and Flask RESTPlus

This article will describe how to get started with the python ecosystem, so we can write APIs and test them. We’ll leave out application specific aspects like authentication and database access and will focus on the basics. As an example, we’ll build a simple REST-ful API…

Back to Top ↑

Hooks

Back to Top ↑

context

Back to Top ↑

ESLint

Back to Top ↑

Husky

Back to Top ↑

Java, Java 9, Java 11, Java 17

New Features in Java 9 and Later Versions

This post summarises the new features in Java after version 9. It covers the most prominent features from a developer’s perspective. It either omits or gives a high level overview of less commonly used features.

Back to Top ↑

HTML

Back to Top ↑

Legacy

Back to Top ↑

Java 17

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑

Javalin

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑

Spotless

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑

Spotbugs

Simple and Unopinionated Java API

This post summarises how to build a simple and unopinionated Java API with Javalin. It demonstrates how to test it, analyse code and dependncies, package it, externalise, and run it.

Back to Top ↑