13 May 2024

33 links · Monday

Morphing Arbitrary Paths in SVG

While the SVG format gives us a way to morph between two paths with the same number of points using `<animate>`, we can use a few tricks to morph between arbitrary paths too!

Snappy UI Optimization with useDeferredValue

useDeferredValue is one of the most underrated React hooks. It allows us to dramatically improve the performance of our applications in certain contexts. I recently used it to solve a gnarly performance problem on this blog, and in this tutorial, I'll show you…

I was wrong about "agile" software development

Way back in 2004, I did a short contract job with a certain major insurance company. It was starting the process of getting out of the old mainframe world. To help with this, they brought in a certain well-known consulting company to coach Agile software devel…

Are Redis ACL password protections weak? – Gonçalo Valério

Earlier this year, I decided to explore Redis functionality a bit more deeply than my typical use-cases would require. Mostly due to curiosity, but also to have better knowledge of this tool in my “tool belt”.

Scraping thousands of temporary (disposable) phone numbers

Temporary phone numbers are virtual numbers used for a short period, allowing users to receive calls and messages without revealing their personal number. In this article we create a scraper to download more than 5,000 temporary numbers and 393K messages they …

AlphaFold opens new opportunities for Folding@home – Folding@home

Folding@home has long sought to understand how proteins self-assemble, or fold, into their functional structures and what the functional implications of dynamics within the context of a folded protein are. As such, many may wonder what it means for the project…

PenroseKiteDart User Guide

Introduction PenroseKiteDart is a Haskell package with tools to experiment with finite tilings of Penrose’s Kites and Darts. It uses the Haskell Diagrams package for drawing tilings. As well …

New preprint and Monitoring Time Between Events

Will be a long post today, have some updates on a preprint, quotes on Flock cameras, an upcoming webinar, plus some R analysis examples of monitoring time between rare crime events. Pre-print on JT…

Hello GPT-4o

We’re announcing GPT-4 Omni, our new flagship model which can reason across audio, vision, and text in real time.

Interesting links of the week 2024-20

Here are the best and most interesting articles, blog posts, videos, podcasts, and GitHub repositories I’ve run into over the last week (May 6, 2024 - May 12, 2024). Enjoy!

Collection Performance: Optimizing Sequence Comparison

The article discusses different methods for comparing two collections for identity in programming. It introduces the use of the SequenceEqual() method for comparing sequences in the LINQ extension …

Controlling Parallelism with Wolverine Background Processing

A couple weeks back I started a new blog series meant to explore Wolverine’s capabilities for background processing. Working in very small steps and only one new concept at a time, the first time o…

NCronJob - Big Updates

Since the last blog post a lot has happened and many new features have been added to NCronJob. In this blog post I would like to introduce you to the new features and explain how you can use them.

Exploring the c4... compiler?

This week I found myself digging through the code of c4, an implementation of C “in four functions”, by Robert Swierczek. I remember coming across c4 when it was released ten years ago. It got me excited: hey, C in four functions, that means it’s easy to under…

GPUs Go Brrr

how make gpu fast?