Having worked with MySQL for over ten years, and having had the chance to see other storage engines at work during my career, I’ve developed a list of features that I’d like to see MySQL implement. The inspiration of this post comes from the implementation of SKIP LOCKED in v8 — which was one of the items in my bucket list :) TTL I recently bumped into Google Cloud…
Just a quick one as I got back from my holidays and got taken aback by a glitch in my XPS. My right USB-C port stopped recognizing external devices yesterday: it would be able to charge my laptop through the regular charger but I couldn’t get it to recognize or charge neither my airpods or phone. After digging a little bit around the Dell support forums I found someone having luck by just…
I just got back from a week-long restorative holiday, where I found some time to go back digging into my Kindle library. Based on Faraz ’s suggestion, this time I picked up Working Backwards , a book that revolves around Amazon’s culture, its unique approach to solving organizational challenges and its pragmatic (albeit innovative) approaches to product development. Little did I know…
Over the past few months my 2.5yo Dell XPS 13 has started showing signs of age, and I had to worry both about my keyboard as well as the battery. I haven’t really managed to replace the keyboard yet (I’m too scared of doing it on my own, so I’ll wait to go back to the office and ask the IT folks to do it for me), though I managed to replace the battery (got it from Noon ) since…
Over the past couple of years I’ve grown my interest in image and data compression — it’s a very interesting field, with a lot of interesting solutions to important and lucrative problems (think Dropbox). Over the past few days I was running some experiments and bumped into an interesting concept: pairing positive integers into a “unique” number, with the ability to…
Remember me? At the end of last decade I shared a post on a simple way to run a Kubernetes cluster for local development . Today I’d like to show the other side of the medal — running your CI environment on Kubernetes (through Github Actions ). It’s simple, mimics your production environment and it’s automated — let’s get to it! How Github Actions work If…
Short post for the day to address an hopefully even shorter-lived situation we’re all in. I’ve decided to make the WASEC book free, on LeanPub, for the time being. During these uncertain times, folks might find themselves home from their jobs or, even worse, having to deal with the loss of their livelihood. If you, like many others, are facing uncertain times and would want to spend…
This decade’s about to wrap up, so I decided to spend some time describing my development workflow as the year nears its end. What I find interesting in my setup is that it entertains working on a local k8s cluster — mainly to keep in touch with the systems that run in production. Running k8s locally isn’t what you’d want to do to begin with, but rather a natural path once…
I’m pleased to announce (even though you might have already heard about this on my Twitter stream ) that the ebook on web application security I’ve been working on over the past year is now officially available for sale, at the hopefully-reasonable price of $6.99 $9.99. You can now buy the book at leanpub.com/wasec , while Kindle enthusiasts will have to wait a few more days for it to…
This post is part of the WASEC: Web Application SECurity series, which is a portion of the content of WASEC , an e-book on web application security I ve written. Here is a list of all the articles in this series: Web security demystified: WASEC Introduction Understanding the browser Security at the HTTP level HTTP headers to secure your application Hardening HTTP cookies Situationals If you ve…
In the latest release of ABS, we introduced a package manager that fetches an archive from GitHub and installs it locally: like in many other command-line interfaces, we decided to add a “loader” to accompany the process, something that looks like this: I want to take a moment to reflect on how we implemented the simple spinner you see in the video, a process that derives from…
Today, I wave goodbye to the company I supported for the past 7 and a half years, Namshi. It’s with mixed feeling that I write this blog post, as it’s been a hell of a ride and I recognize I was privileged to get on board just at the right time. It is a truly bittersweet moment to leave behind something you’ve dedicate so much to, but I do feel my time is now : after all of these…
A few days ago I released a new minor version of the ABS programming language, 1.7.0 , which adds some syntactic sugar as well as improvments to the REPL — let’s get to them! Reverse search in the REPL through ctrl+r You can type something in the REPL and, by pressing ctrl+r , ABS will try to find the last command that was executed that matches what you typed. See it in action: If you…
Here we are with a new release of ABS, the elegant programming language for all of your scripting needs! Even though small, 1.6 (with 1.6.0 and 1.6.1 ) introduces a couple interesting features, so let’s check them out! Index ranges You can now access ranges within strings and arrays by using the popular [start:end] syntax: [1,2,3,4][0:2] will return [1,2] . Start and end can be ommitted…
Remember the last time you thought “ough, JavaScript”? Well, that’s me every other day: I love JS for its flexibility and dynamism, but I also sometimes find it painful to deal with, especially in some specific programming contexts. If you, like me, hoped to be able to write something other than JavaScript in order to get stuff done on the web, chances are you bumbed into…
A few days ago Fabrice Bellard released QuickJS , a small JS engine that targets embedded systems. Curious to give it a try, I downloaded and set it up on my system to try and understand this incredible piece of software. Installation Setting up QuickJS is dead simple: clone one of the Github mirrors with git clone git@github.com:ldarren/QuickJS.git cd QuickJS make …and that’s it: the…
A few hours ago I released a new minor version of the ABS programming language, 1.5.0 , which includes a couple of interesting features — let’s get to them! File writers Probably one of the most exciting things coming out of this release are file writers: > and >> . 1 2 3 4 5 6 7 8 9 10 11 for x in 1..3 { x >> "file.txt" } `cat file.txt` // 1\n2\n3 for x in 1..3 { x > "file.txt" } `cat…
A few weeks ago I released version 1.4.0 (and 1.4.1, with an additional bugfix) of the ABS programming language: in this post, I’d like to explain everything major that made it in this new minor release. ABS ❤ unicode We have implemented unicode in ABS: you can now use both unicode letters in variable names as well as any unicode character in strings. For example, you can output any code…
Hi there! Just a quick post to announce a bugfix release of the ABS programming language: 1.3.2 fixes a simple yet important performance bug dealing with short-circuit evaluation. Short-circuiting is the amazing property some languages assign to boolean operators (eg. && or || ): if the first parameter in the expression is sufficient to determine the end value of the expression, the second value…