- JavaScript 12
- Java 11
- Node 8
- Python 6
- Cheatsheet 6
- Data Science 5
- Functional programming 5
- Scala 5
- TypeScript 5
- Bash 4
- Maven 4
- Docker 4
- React 4
- AWS 3
- CloudSim 3
- CloudSimEx 3
- Simulation 3
- C# 3
- Pandas 3
- MOOC 3
- NPM 3
- SonarQube 3
- Ubuntu 2
- C++ 2
- Benchmark 2
- CloudStone 2
- CloudSuite 2
- Web App 2
- Eclipse 2
- Reshape 2
- Jupyter 2
- Category Theory 2
- Shell 2
- Gradle 2
- Redux 2
- Kubernetes 2
- kubectl 2
- Static Analysis 2
- Octave 1
- Octave GUI 1
- Monad 1
- NuPIC 1
- Lambda 1
- Load Balancer 1
- Disk 1
- JClouds 1
- Virtual Machine 1
- VM Image 1
- Generics 1
- Jersey 1
- Jetty 1
- REST 1
- Web Services 1
- .NET 1
- BGP 1
- Network 1
- OSPF 1
- RIP 1
- NAT 1
- Pivot 1
- Actors 1
- Coroutine 1
- Fiber 1
- Goroutine 1
- Lmax-Disruptor 1
- Thread 1
- Process 1
- Parallel Programming 1
- Concurrent Programming 1
- Parallelism 1
- Concurrency 1
- Jdk 1
- Oracle 1
- Github 1
- Applicative Functor 1
- Tmux 1
- Parallel programming 1
- Cloud Foundry 1
- Yarn 1
- Build 1
- Bluemix 1
- Mongo 1
- CSV 1
- Flow 1
- Async 1
- Await 1
- Promise 1
- Spark 1
- WebForm 1
- File Upload 1
- Redux-Form 1
- AOP 1
- Audit Log 1
- Crosss Cutting Concern 1
- API 1
- pyenv 1
- pipenv 1
- Flask 1
- pytest 1
- Hooks 1
- context 1
- ESLint 1
- Husky 1
- Java, Java 9, Java 11, Java 17 1
- HTML 1
- Legacy 1
- Java 17 1
- Javalin 1
- Spotless 1
- Spotbugs 1
JavaScript
Solving Progress Indication Issues in Legacy Web Applications
This post summarises an approach to add progress indication for a legacy web app. This is done globally, without having to rewrite or retest the application.
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
React’s useCallback and useMemo Hooks By Example
This article demonstrates with a few simple examples why we need the useCallback and useMemo hooks and when and how to use them.
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.
Redux-Form with External Submit Button
In this article, I’ll show how to combine a redux-form with an external submission button …
Programmatic Form Submission with Fields and Files
In this article, I’ll show how to wrap the XMLHttpRequest primitives in a simple promise-based function for arbitrary form submission …
Await and Async Explained with Diagrams and Examples
Explains JavaScript Async/Await syntax and semantics with diagrams and examples …
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 …
Mongo Query to CSV Download (Express JS)
Streaming a large Mongo query to a CSV download via Express JS …
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 …
Node.js Cheatsheet [Part 2] - Yarn
Introduces the Yarn package manager and lists common commands in a cheatsheet …
Node.js Cheatsheet [Part 1]
A cheatsheet of common Node.js tools, commands, concepts, and techniques …
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 - Static Members in Template Classes [Part 2]
C# and Java generics differ significantly in terms of the underlying semantics, which can be quite confusing for a Java programmer. In this post we’ll look into it …
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 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
Node
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
Programmatic Form Submission with Fields and Files
In this article, I’ll show how to wrap the XMLHttpRequest primitives in a simple promise-based function for arbitrary form submission …
Await and Async Explained with Diagrams and Examples
Explains JavaScript Async/Await syntax and semantics with diagrams and examples …
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 …
Mongo Query to CSV Download (Express JS)
Streaming a large Mongo query to a CSV download via Express JS …
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 …
Node.js Cheatsheet [Part 2] - Yarn
Introduces the Yarn package manager and lists common commands in a cheatsheet …
Node.js Cheatsheet [Part 1]
A cheatsheet of common Node.js tools, commands, concepts, and techniques …
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…
Pandas in Jupyter - Quickstart and Useful Snippets
This article overviews how to quickly set up and get started with the pandas data analysis library. It also lists common code snippets for parsing, loading, and transforming data …
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
Fast and Simple Sampling in Pandas when Loading Data From Files
In this article I’ll describe a simple and fast approach for sampling data in Pandas as it is loaded from the data file …
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 …
Cheatsheet
Node.js Cheatsheet [Part 2] - Yarn
Introduces the Yarn package manager and lists common commands in a cheatsheet …
Node.js Cheatsheet [Part 1]
A cheatsheet of common Node.js tools, commands, concepts, and techniques …
Shell Cheatsheet [Part 2] – Working with Docker
This post is a cheat sheet of commonly used Docker shell commands …
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 …
Scala Syntax Refcard on Github
A Scala syntax ref card on Jupyter on Github …
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…
Data Science
Pandas in Jupyter - Quickstart and Useful Snippets
This article overviews how to quickly set up and get started with the pandas data analysis library. It also lists common code snippets for parsing, loading, and transforming data …
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
Fast and Simple Sampling in Pandas when Loading Data From Files
In this article I’ll describe a simple and fast approach for sampling data in Pandas as it is loaded from the data file …
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 …
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 …
Functional Programming and Category Theory [Part 2] – Applicative Functors
This post introduces a type of functors called Applicative Functors. Unlike the ordinary functors, applicatives allow us to work with multi-arguement functions and thus turn out to be quite useful in FP.
Functional Programming and Category Theory [Part 1] - Categories and Functors
This series of tutorials defines and illustrates the Category Theory concepts which are most widely adopted in FP. We will use simple Scala and pseudocode examples to illustrate the new terms. In this post we will look into Categories and Functors …
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 …
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 …
Functional Programming and Category Theory [Part 2] – Applicative Functors
This post introduces a type of functors called Applicative Functors. Unlike the ordinary functors, applicatives allow us to work with multi-arguement functions and thus turn out to be quite useful in FP.
Functional Programming and Category Theory [Part 1] - Categories and Functors
This series of tutorials defines and illustrates the Category Theory concepts which are most widely adopted in FP. We will use simple Scala and pseudocode examples to illustrate the new terms. In this post we will look into Categories and Functors …
Scala Syntax Refcard on Github
A Scala syntax ref card on Jupyter on Github …
TypeScript
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
React’s useCallback and useMemo Hooks By Example
This article demonstrates with a few simple examples why we need the useCallback and useMemo hooks and when and how to use them.
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.
Programmatic Form Submission with Fields and Files
In this article, I’ll show how to wrap the XMLHttpRequest primitives in a simple promise-based function for arbitrary form submission …
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 …
Bash
Shell Cheatsheet [Part 2] – Working with Docker
This post is a cheat sheet of commonly used Docker shell commands …
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 …
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 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
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.
Switch Between Multiple Kubernetes Clusters With Ease
This article describes how to work with multiple Kubernetes clusters in a structured and convenient way …
Shell Cheatsheet [Part 2] – Working with Docker
This post is a cheat sheet of commonly used Docker shell commands …
React
React’s useCallback and useMemo Hooks By Example
This article demonstrates with a few simple examples why we need the useCallback and useMemo hooks and when and how to use them.
Redux-Form with External Submit Button
In this article, I’ll show how to combine a redux-form with an external submission button …
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 …
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 …
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 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
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 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
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 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
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 - Static Members in Template Classes [Part 2]
C# and Java generics differ significantly in terms of the underlying semantics, which can be quite confusing for a Java programmer. In this post we’ll look into it …
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 …
Pandas
Pandas in Jupyter - Quickstart and Useful Snippets
This article overviews how to quickly set up and get started with the pandas data analysis library. It also lists common code snippets for parsing, loading, and transforming data …
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
Fast and Simple Sampling in Pandas when Loading Data From Files
In this article I’ll describe a simple and fast approach for sampling data in Pandas as it is loaded from the data file …
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 …
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 …
Node.js Cheatsheet [Part 2] - Yarn
Introduces the Yarn package manager and lists common commands in a cheatsheet …
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.
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
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 …
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) …
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 …
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 …
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 …
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 …
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 …
Reshape
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
Jupyter
Scala Syntax Refcard on Github
A Scala syntax ref card on Jupyter on Github …
Pandas in Jupyter - Quickstart and Useful Snippets
This article overviews how to quickly set up and get started with the pandas data analysis library. It also lists common code snippets for parsing, loading, and transforming data …
Category Theory
Functional Programming and Category Theory [Part 2] – Applicative Functors
This post introduces a type of functors called Applicative Functors. Unlike the ordinary functors, applicatives allow us to work with multi-arguement functions and thus turn out to be quite useful in FP.
Functional Programming and Category Theory [Part 1] - Categories and Functors
This series of tutorials defines and illustrates the Category Theory concepts which are most widely adopted in FP. We will use simple Scala and pseudocode examples to illustrate the new terms. In this post we will look into Categories and Functors …
Shell
Shell Cheatsheet [Part 2] – Working with Docker
This post is a cheat sheet of commonly used Docker shell commands …
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 …
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 …
Redux
Redux-Form with External Submit Button
In this article, I’ll show how to combine a redux-form with an external submission button …
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 …
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.
Switch Between Multiple Kubernetes Clusters With Ease
This article describes how to work with multiple Kubernetes clusters in a structured and convenient way …
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.
Switch Between Multiple Kubernetes Clusters With Ease
This article describes how to work with multiple Kubernetes clusters in a structured and convenient way …
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.
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
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 …
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 …
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 …
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) …
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 …
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 …
Disk
CloudSim and CloudSimEx [Part 2] - Disk operations
In this post I’ll focus on how CloudSimEx enables disk operations modelling …
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 …
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 …
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 …
Generics
C# pitfalls for Java Devs - Static Members in Template Classes [Part 2]
C# and Java generics differ significantly in terms of the underlying semantics, which can be quite confusing for a Java programmer. In this post we’ll look into it …
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 …
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 …
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 …
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 …
.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” …
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…
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…
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…
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…
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…
Pivot
Reshaping in Pandas - Pivot, Pivot-Table, Stack, and Unstack explained with Pictures
In this post, I’ll exemplify some of the most common Pandas reshaping functions and will depict their work with diagrams …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
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 …
Github
Scala Syntax Refcard on Github
A Scala syntax ref card on Jupyter on Github …
Applicative Functor
Functional Programming and Category Theory [Part 2] – Applicative Functors
This post introduces a type of functors called Applicative Functors. Unlike the ordinary functors, applicatives allow us to work with multi-arguement functions and thus turn out to be quite useful in FP.
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 …
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 …
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 …
Yarn
Node.js Cheatsheet [Part 2] - Yarn
Introduces the Yarn package manager and lists common commands in a cheatsheet …
Build
Gradle Quickstart
Introduces Gradle, its main building blocks, and how to work with them …
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 …
Mongo
Mongo Query to CSV Download (Express JS)
Streaming a large Mongo query to a CSV download via Express JS …
CSV
Mongo Query to CSV Download (Express JS)
Streaming a large Mongo query to a CSV download via Express JS …
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 …
Async
Await and Async Explained with Diagrams and Examples
Explains JavaScript Async/Await syntax and semantics with diagrams and examples …
Await
Await and Async Explained with Diagrams and Examples
Explains JavaScript Async/Await syntax and semantics with diagrams and examples …
Promise
Await and Async Explained with Diagrams and Examples
Explains JavaScript Async/Await syntax and semantics with diagrams and examples …
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 …
WebForm
Programmatic Form Submission with Fields and Files
In this article, I’ll show how to wrap the XMLHttpRequest primitives in a simple promise-based function for arbitrary form submission …
File Upload
Programmatic Form Submission with Fields and Files
In this article, I’ll show how to wrap the XMLHttpRequest primitives in a simple promise-based function for arbitrary form submission …
Redux-Form
Redux-Form with External Submit Button
In this article, I’ll show how to combine a redux-form with an external submission button …
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.
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.
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.
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…
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…
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…
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…
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…
Hooks
React’s useCallback and useMemo Hooks By Example
This article demonstrates with a few simple examples why we need the useCallback and useMemo hooks and when and how to use them.
context
Switch Between Multiple Kubernetes Clusters With Ease
This article describes how to work with multiple Kubernetes clusters in a structured and convenient way …
ESLint
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
Husky
Improve Your TypeScript With Static Analysis
This article describes a set of tools for static analysis and automated audits of TypeScript code.
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.
HTML
Solving Progress Indication Issues in Legacy Web Applications
This post summarises an approach to add progress indication for a legacy web app. This is done globally, without having to rewrite or retest the application.
Legacy
Solving Progress Indication Issues in Legacy Web Applications
This post summarises an approach to add progress indication for a legacy web app. This is done globally, without having to rewrite or retest the application.
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.
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.
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.
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.