ABS is a programming language that puts together the productivity of bash scripts with the elegance of high-level languages such as Python or Ruby. It lets you issue system commands by simply wrapping them in backticks (very similar to how you would do it in Bash) and lets you use their output with clear and concise syntax.

This is, for example, a script that would try to issue a curl command, and exit if the server at example.org would not reply within 10 seconds:

A few weeks ago the ABS team managed to pull together a new minor release of…


If you missed my previous post, ABS is a programming language that allows you to interact with the underlying system with a modern syntax. This is an example of it as a version of Bash built in 2019.

In this article, I’ll discuss a fresh new release of the ABS programming language, bringing more syntax you should be familiar with, inspired both by Bash and Python.

This release includes 8 new features and 2 bugfixes, so let’s discover them together!

Better membership testing

The membership testing operator, in, now supports finding whether an object has a particular key as well as allowing it…


Eventually, the time has come: ABS 1.0.0 is finally out!

This wraps up weeks of work since I started the project a little over a month ago, and gives you a fairly stable release with all of the “must” features I originally wanted to introduce in the language.

About this release

There are 5 major talking point in this release (which I will go through in the next paragraphs), but I want to start by saying that ABS is now leaving the preview-x versioning scheme and committing to semantic versioning.

I originally didn’t want to start by using semantic versioning as I thought…


Something I’m extremely fascinated with is the power of simplicity: I’ve found myself fighting complexity far too many times, and always realized that when planning and developing a system, we’d achieve the best results when keeping things simple.

What’s more interesting, simple systems could be combined together to kind of form more structured organizations that would still benefit from their straightforward pillars.

Naturally, my curiosity evolved over time and I wasn’t keen on confining to the tech field — so once I saw this book, I thought I’d like to see if businesses have similar tendencies to the systems we…


Over the past few days I took some time to work on a project I had in mind for ages, a scripting alternative to Bash: let me introduce you to the ABS programming language.

Why

Let me keep this brief: we all love shell programming — automating repetitive tasks without too much effort.

We might probably agree that shell programming is also kind of nuts in terms of syntax:

if [ -z $STRING ]; then
...
fi

Like, ehm, what the hell? fi? -z? brackets?

Fighting with Bash, or the common shell programming language, can get intense from time to time…


Note: this is part 4 of a series on web security. Part 3 was Secure your web application with these HTTP headers.

Imagine being a backend developer who needs to implement sessions in an application: the first thing that comes to your mind is to issue a token to clients and ask them to send this token with their subsequent requests. From there onwards you are going to be able to identify clients based on the token included in their request.

HTTP cookies were born to standardize this sort of mechanism across browsers. They’re nothing more than a way to…


Photo by Daniel Cheung on Unsplash

This is part 3 of a series on web security: part 2 was “Web Security: an introduction to HTTP

As we’ve seen in the previous parts of this series, servers can send HTTP headers to provide the client additional metadata around the response, besides sending the content that the client requested. Clients are then allowed to specify how a particular resource should be read, cached or secured.

There’s currently a very large spectrum of security-related headers that have been implemented by browsers in order to make it harder for attackers to take advantage of vulnerabilities. …


This goes right into the list of books I really wanted to like but kind of disappointed me.

The book is structured extremely well, so it comes out as a very enjoyable read. One downside, though, becomes fairly evident a few chapters in: it isn’t practical at all, describes few patterns and instead focuses a lot on processes, advices and high-level description of approaches you should follow to embrace CN infrastructure.

I was probably expecting too much, but when I read the book’s description on the Kindle store:

This practical guide shows you how to design and maintain infrastructure capable…


A few weeks ago I bumped into mkcert, a tool written by Filippo. He is the same guy behind the popular heartbleed test tool.

The tool in question answers one simple need:

By creating a local root CA file that gets installed in your system, it makes all certificates issued by mkcert trusted.


This was a funny one!

After weeks thinking the Chrome team might have messed up, I finally got frustrated and looked for a solution to one of the weirdest problems I had encountered: the DevTool’s console getting cleared unexpectedly.

I use the console on a daily basis to be able to debug applications, so it was fairly annoying to see the logs being wiped out unless I ticked the “Preserve log” checkbox — an error would occur, I would open the console only to find it blank. …

Alex Nadalin

CTO at @NamshiDotCom, I like distributed systems, Golang, NodeJS, scalability, software design and µseconds. Writing https://leanpub.com/wasec :wq

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store