Acyclic directed graphs are a very useful concept that has many real world applications: hierarchical groups, organisation charts and product categories are just a few of all the situations of where they can be essential.
This article contains a complete demonstration of an acyclic and directed graph implemented in Postgres mainly by using the LTREE extension and table triggers. It also contains some useful queries related to the graph such as getting all parents of a node and more.
I’ve resolved to become more privacy conscious during 2020. I’m going to do this mainly by decreasing or eliminating my use of Google products. This post is the first of what is to become a series were I explore both free and paid-for alternatives to the suite of online products that Google offers.
First up we are going to look for a replacement for Google Analytics. Analytics is a tool that offers statistics and insights into what your visitors are doing on your websites. By some accounts more than 50 % of all websites use Analytics – a literal treasure trove of data about what people are doing on the internet given away by site owners to a mega-corporation for free.
Let’s see if we can find something else.
Just posting a quick headsup that my open-source node.js library Jayson this month reached a cumulative 10 million downloads in its 8 years of existence.
Jayson is a library that enables easy setup of a JSON-RPC client and server in node. I wrote it for internal use at a previous job eight years ago. Today it is the number one tool for JSON-RPC implementations in node, and at the time of writing gets approximately 500 000 downloads/month.
Here’s some SQL that might be useful if you are working on an application that is backed by PostgreSQL.
I’m going to show you how to get the set of changed columns inside of a
UPDATE trigger handler that can then
be used to send out a
NOTIFY. This notification could then be picked up with a PostgreSQL
LISTEN and easily passed on
to browsers connected to your application via a web socket. This allows your clients to stay updated of any
changes to any rows without resorting to inefficient polling.
Pingdom is a service that automatically checks the health of your domains. It returns up/down information, response times, status codes and more. If something goes wrong it sends you notifications. Here I’d like to show a simple shell script that I’ve been using that replicates some of that functionality and notifies by email when something goes wrong.
This is the first in a two part series of how to architect a medium-sized node.js web application. It is designed for testability and long-term maintainability. Part 1 is going to be a high level overview of the directory structure and how it fits together. In part 2 (not yet finished) we’re going to look into some specific highlights of the architecture.
Stripe is a great service — it enables you to easily start accepting card payments in a multitude if currencies. But Stripe lacks good support for one feature that is important for many business customers: manual invoicing. In this short article I will show you how I tackled this problem as part of my work with Linknow.
As part of my work with Linknow the last few months I’ve been working extensively with Microsoft Graph, which is an API for accessing data from Azure, and other Microsoft services. Here’s a list of some of the things I’ve learned.
Lately I’ve been trying out some new technologies that may change web development. The GraphQL query language combined with a serverless architecture enabled by Lambda form a wonderful combination that makes the work of developing an API and managing a server obsolete. Or does it? Let’s have a peek into the future!
Here’s a quick intro to swap space and how you can create new swap space on Ubuntu 16.04. It will most likely work verbatim on other Ubuntu versions, as well as other distributions of GNU/Linux too.
Here’s the problem. You want to prevent access to parts of your app for users that are not logged in, and additionally you want to prevent logged in users without the right role or access level (non-admins typically) from accessing yet more parts of your app.