What causes Ruby memory bloat?
Ruby apps can use a lot of memory. But why? Various people in the community attribute it to memory fragmentation, and provide two “hacky” solutions. Dissatisfied by the current explanations and provided solutions, I set out on a journey to discover the deeper truth and to find better solutions.
Simpler UI Logic With Finite State Machines
A site for cataloging the many technical musing of Andy Desmarais
Reflecting on the Soul of a New Machine
Long ago as an undergraduate, I found myself back home on a break from school, bored and with eyes wandering idly across a family bookshelf. At school, I had started to find a calling in computing systems, and now in the den, an old book suddenly caught my eye: Tracy Kidder’s The Soul of a New Machine . Taking it off…
An x86 Assembler in 256 LOC (2017)
For the first “real” post in this blog, we’ll build an x86 assembler in less than 256 lines of C code. Obviously, it won’t implement every x86 instruction, but it will implement a surprisingly useful subset: data movement, control flow, integer arithmetic, bitwise operations, and function calls. We won’t be able to…
A Short Intro to Constraints
The essence of constraint is projection.
Fundamental Algorithms III
Three more fundamental algorithms in the series. Today, recursive permutations, subsets of the given set and variations with repetitions. Th...
Working with Errors in Go 1.13
How to use the new Go 1.13 error interfaces and functions.
What SQL Analysts Need to Know About Python (2016)
Explore technical topics, solutions, and resources for building with Twilio – and beyond.
Designing a COM Library for Rust
I interned with Microsoft as a Software Engineering Intern in the MSRC UK team in Cheltenham this past summer. I worked in the Safe Systems Programming Language (SSPL) group, which explores safe programming languages as a proactive measure against memory-safety related vulnerabilities.
Shipping a compiler every six weeks
This blog post is a slightly edited version of the live transcript of the talk I gave at RustFest 2019 in Barcelona on November 10th, 2019. As it's a transcript some parts of it are a bit repetitive or badly worded, but I hope the message behind the talk will be conveyed by this post anyway.
The art of interrupting software engineers
Earlier this month, Broadcom published findings from our frontier model research initiative examining what frontier AI models can do when applied to vulnerability discovery and...
Comparisons in C++20
Now that the Cologne meeting is over and we’ve more or less finalized (at least before the NB comments come in) C++20, I wanted to take the time to describe in detail one of the new language features we can look forward to. The feature is typically referred to as operator<=> (defined in the language as “three-way…
Build a WhatsApp Chatbot with Python, Flask and Twilio
Create a WhatsApp chatbot using Python & Flask with Twilio's API. Follow our step-by-step guide to build, deploy, & enhance your chatbot. Start building with Twilio.
Performance Tuning for .NET Core
Some of you may know I've been spending whatever time I can scrounge together grinding away at a new serialization library for .NET. Serializers can be complicated beasts. They have to be reliable, flexible, and fast beyond reproach. I won't convince you that serialization libraries have to be quick — in this post…
A New R6RS Scheme Compiler
Some readers already know this and a few have suspected. I’ve been working on a new R6RS Scheme compiler for a while. Now I have released it as free software. Read on to learn the many wonderful drawbacks of this niche compiler.
The $10m Engineering Problem
Explore technical topics, solutions, and resources for building with Twilio – and beyond.
BoringTun, a Userspace WireGuard Implementation in Rust
Today we are happy to release the source code of a project we’ve been working on for the past few months. It is called BoringTun, and is a userspace implementation of the WireGuard® protocol written in Rust.
Implementing API Billing with Stripe
Writing new billing and payments code with Stripe for our video call API
Dapr: an open-source project to make it easier to build microservices
Dapr enables all developers using any language and any framework to easily build portable microservices applications.
TypeScript 3.4
Today we're happy to announce the availability of TypeScript 3.4! If you haven't yet used TypeScript, it's a language that builds on JavaScript that adds
I was a 10x engineer and I’m sorry
You probably saw the big discussion this past weekend on Twitter about 10x Engineers. It all started with a tweet about how to recognize a 10x Engineer, followed by tons of responses about how usel…
Common Mistakes and Missed Optimization Opportunities in SQL
Made by Developers and Non-Developers
Building Standalone Python Applications with PyOxidizer
Python application distribution is generally considered an unsolved problem. At their PyCon 2019 keynote talk, Russel Keith-Magee identified code distribution as a potential black swan - an existential threat for longevity - for Python. In their words, Python hasn't ever had a consistent story for how I give my code…
Why Operators Are Useful
This is something I posted on python-ideas, but I think it's interesting to a wider audience. There's been a lot of discussion recently ab...
Coding Problems from Programming Job Interviews
Java Programming tutorials and Interview Questions, book and course recommendations from Udemy, Pluralsight, Coursera, edX etc
Elegant Error Handling with the JavaScript “Either” Monad
JavaScript gives us a built-in language feature for handling exceptions: try…catch statements. And they’re better than littering our code with if-statements. But they can be problematic. And they are not the only way to handle errors. In this article, we’ll take a look at using the ‘Either monad’ as an alternative to…