de en es fr nl pl pt sv zh

posts

Django: release code words up to 6.1

Adam Johnson

Did you know that each Django release has a “code word” associated with it? It’s hidden in plain sight, in the announcement blog post describing the list of features coming in the next version. I think this is a lovely little tradition. I last covered the list back in 2021, for Django 3.2 (post)....

Django: introducing django-crawl

Adam Johnson

I recently migrated one of my client projects from the legacy django-csp package to Django 6.0’s built-in Content Security Policy (CSP) support (release note). This security header is a powerful tool for preventing unwanted content from being loaded on your site, so configuration correctness is...

Django: introducing django-orjson

Adam Johnson

Just as cars painted red are known to be faster, libraries implemented in Rust are also known to be faster. Today’s example is orjson, a Rusty replacement for Python’s built-in json module, boasting 10x faster serialization and 2x faster deserialization. Such a library is great, but adopting it...

Python: find all instances of a class with gc.get_objects()

Adam Johnson

Here’s a lovely hack that I’ve used when machete-mode debugging. Say you have a class, and you want to find its live instances, perhaps to check how many there are or what value a certain attribute has across them. Normally you'd have to alter the class initialization to store its instances in a...

Python: store extra data for objects in a WeakKeyDictionary

Adam Johnson

In several programs, I’ve wanted to solve the problem of associating extra data with an object. For example, in django-upgrade, the individual “fixer” functions often want to store extra data per visited ast.Module object. A common pattern in Python is to store the data in an extra attribute...

Somehow, more on distillation

Accidental Factors

The capabilities in a large language model emerge, mysteriously, from the training data. Everyone agrees that you start with a big pile of data, add some compute, and at the end you can vibe code. Opinions differ on what that pile of data should look like. Microsoft AI recently released an...

Clawdbot bought me a car

AJ Stuyvenberg

Car buying in 2026 still sucks Buying a car from a dealership is an objectively awful experience. There’s a long history behind why manufacturers can’t sell directly to customers (without certain workarounds like Tesla/Rivian), so unless you’re going that route you’ll inevitably need to talk with...

Does AWS Lambda have a silent crash in the runtime?

AJ Stuyvenberg

A blog post went very viral in the AWS space recently which asserts that there’s a silent crash in AWS Lambda’s NodeJS runtime when HTTP calls are made from a Lambda function. The post is nearly 23 pages long and mostly pertains to the handling of the issue by AWS (which seems like it could have...

AudioGuard : controlling microphone access on per-process basis

Windy Bug

Intro Long-term surveillance hinges (among other things) on microphone capture and recording capabilities, serving as a cornerstone of persistent monitoring operations. Threat actors can silently harvest sensitive intelligence from team meetings, voice chats, and internal discussions - providing...

Avoiding the Lambda Doom Loop

AJ Stuyvenberg

There have been a number of recent changes in the Lambda sandbox environment, mostly transparent ones like changing the Runtime API IP address and port to a link-local IP. But recently I noticed a change in how Lambda handles function crashes and re-initialization, and after confirming this...

RansomGuard : an anti-ransomware filter driver

Windy Bug

Intro Ransomware is one of the simplest, yet significant threats facing organizations today. Unsuprisingly, the rise and continuing development of ransomware led to a plentitude of research aimed at detecting and preventing it. AV vendors, independent security reseachers and academies all...

BASE Jumps & Backups - how I use Synology and AWS to store my data

AJ Stuyvenberg

If you mostly know me because of this blog or my cloud talks, it may surprise you to learn that I’m also an avid parachutist. I’ve been skydiving since 2010 and BASE jumping since 2012, and have more than 1200 combined jumps all over the world. It’s a neat hobby! Contrary to popular belief, it’s...

Ultimate guide to secrets in Lambda

AJ Stuyvenberg

We all have secrets. Some are small secrets which we barely hide (sometimes I roll through stop signs on my bike). Others are so sensitive that we don’t even want to think about them (serverless actually has servers). Managing and securing secrets in your applications have similar dimensions! As...

How Lambda starts containers 15x faster (deep dive)

AJ Stuyvenberg

In the first post of this series, we demonstrated that container-based Lambda functions can initialize as fast or faster than zip-based functions. This is counterintuitive as zip-based functions are usually much smaller (up to 250mb), while container images typically contain far more data and are...

The case for containers on Lambda (with benchmarks)

AJ Stuyvenberg

Note: the second part of this post is available here. When AWS Lambda first introduced support for container-based functions, the initial reactions from the community were mostly negative. Lambda isn’t meant to run large applications, it is meant to run small bits of code, scaled widely by...

You shouldn’t use Lambda layers

AJ Stuyvenberg

Why you shouldn’t use Lambda layers Lambda layers are a special packaging mechanism provided by AWS Lambda to manage dependencies for zip-based Lambda functions. Layers themselves are nothing more than a sparkling zip file, but they have a few interesting properties which prove useful in some...

Understanding AWS Lambda Proactive Initialization

AJ Stuyvenberg

This post is both longer and more popular than I anticipated, so I’ve decided to add a quick summary: TL;DR Lambda occasionally pre-initializes execution environments to reduce the number of cold start invocations. This does NOT mean you’ll never have a cold start The percentage of true...

Respect for PHP 🐘

Anthony Scotti

While PHP isn't my favorite language by any means, it's one that I've used throughout my career at various points. This fact was recently brought to my attention during a conversation with a colleague about my past experiences. I wouldn't label myself a dedicated PHP developer, but my history with...

Thawing your Lambda Cold Starts with Lazy Loading

AJ Stuyvenberg

If you’ve heard anything about Serverless Applications or AWS Lambda Functions, you’ve certainly heard of the dreaded Cold Start. I’ve written a lot about Cold Starts, and I spend a great deal of time measuring and comparing various Cold Start Benchmarks. In this post we’ll recap what a Cold...

New Home and a puppy too!

Anthony Scotti

I've never been great at keeping up with blogging, but I believe it's important, especially as a software engineer as it exercises our ability to document and write things down. I typically blog when I have free time and my mind isn't focusing on other things. As I've taken a vacation day today, I...

ClojureScript: Functional Programming for the Web

Anthony Scotti

As I sit next to a gas store in Vermont, I once again have a hard copy book with me to read on vacation. This time it's "Learning ClojureScript" by Andrew Meredith, and just like Clojure For the Brave and True it's another free book that can easily be downloaded and read from any fancy gizmos....

Clojure Defmulti and Defmethod

Anthony Scotti

As I continue my journey with learning functional programming, I have started to explore deeper into the languages that I enjoy and do some experimenting with interesting parts of those languages. This has led me to defmulti and defmethod, enabling you to create methods that deal with different...

Optional Types and Pipes in F#

Anthony Scotti

For this first topic of showing off parts of F# I want to use a code challenge I have used for interviewing candidates at a couple different companies. This challenge is simple to solve but is left open ended to allow the candidate to discuss and debate the decisions they have made. The main point...

A Look Into F#

Anthony Scotti

As I'm sure, so many other people have also found their lives disrupted due to the pandemic and other world events; I'm just getting to the point where I can think about blogging again due to getting a sense of normality back. One of the things I have been doing is continuing my journey with...

Taste of Clojure

Anthony Scotti

Clojure seems to be coming up a lot in postings, books, and social media. Some most notable mentions are by Gene Kim in a couple of different instances, Love Letter To Clojure being the biggest but also in his book The Unicorn Project where Clojure is a beloved language by Maxine the main...

Google Fi

Anthony Scotti

In my last posting, I talked about bringing a book on my trip to Italy and nothing about the technology that I brought. This was a clever (not really) way to be able to talk about Clojure and "Clojure for the Brave and True" but being who I am, I did bring some technology with me on my trip. I...

For the Brave and True

Anthony Scotti

In my last post, I said I was in Italy on vacation and you may be thinking to yourself (most likely not, but just go with it) "what high tech gizmos did he bring with him on his travels?" and I would happily reply "A book!", yes a paper book. Being a software developer, I have access to tons of...

Not All Who Wander Are Lost

Anthony Scotti

As I sit here in Venice on my vacation, I figure this would be a great time to dust off my blog. I haven't put much time into it lately, I find myself wanting to write when I have a good balance with work and life with some learning on the side. Sadly, this balance has been missing for a bit,...

Google WiFi

Anthony Scotti

I have lived through a lot of the major WiFi technology updates, I have also replaced a lot of WiFi routers in my lifetime. With wanting to spend less time dealing with WiFi issues I decided to buy something that was a better quality. Around 2013 the Apple Airport Extreme 6th generation just came...

Setting Up a Local Python Development Environment

Anthony Scotti

Over the past couple months, I've been working on fine tuning my Python skills, part of this has been taking tutorials online along with building some applications. One of the things I’ve been wanting to document, mostly for myself, is setting up a new environment for developing with Python. I’m...

Hugo and Netlify

Anthony Scotti

So, it was time for a bit of change for the blog. I have been using an older version of Jekyll for some time and upgrading for me has always been a pain. I picked to move away from Jekyll to something new, this is where Hugo comes into play. Hugo Hugo is another static site generator like Jekyll...

I just want to tail my log files!

Anthony Scotti

I've had the opportunity to use the Elastic Stack (formally known as ELK) for some time now, there's a great number of use cases that the Elastic Stack can fit, but one of the primary uses is to help aggregate logs files into one centralized location. This gives you the ability to analyze and...

Older →