What happens when you grep the file you've redirected grep to?
I was recently eating lunch with someone who asked a question that I became somewhat obsessed with: what happens when you grep a file and append the contents...
I was recently eating lunch with someone who asked a question that I became somewhat obsessed with: what happens when you grep a file and append the contents...
If you read my recent post about Postgres you may have noted that Postgres operates primarily with fixed-size blocks of memory called “pages.” By default, Postgres pages are 8KB. This number is tuned to match operating system page sizes which are tuned to match hardware cache sizes. If you were to run Postgres on…
Walkthrough of an IoT Potty Button which makes a phone call when a kid has to go. With Python, Twilio, AWS IoT, Lambda and an IoT Button build one-touch alerts to make a phone call. Includes sample code and links to build your own poop button or extend the idea.
This is a tutorial on building your own shell using Rust, in the spirit of the build-your-own-x list. Creating a shell is a great way to understand how the shell, terminal emulator, and OS work together.
By Appu Goundan and Qingyang Chen Containers are bringing Java developers closer than ever to a "write once, run anywhere" workflow, but c...
The Visitor Pattern is one of the most mis-understood of the classic design patterns. While it has a reputation as a slightly roundabout technique for doing simple processing on simple trees, it is actually an advanced tool for a specific use case: flexible, streaming, zero-overhead processing of complex data…
This document comes with a companion example program, available as one file or as multiple files (zipped) .
V8 now supports BigInts, a JavaScript language feature enabling arbitrary-precision integers.
A guide to building a transcoder using Exodus, FFmpeg, and AWS Lambda.
webpack is a brilliant tool for bundling frontend assets. When things start to slow down, though, its batteries-included nature and the ocean of third-party tooling can make it difficult to optimize. Poor performance is the norm and not the exception. But it doesn’t have to be that way, and so — after many hours of…
Agile Software Development may be mainstream, but much of what's done is faux-agile, and we need to push back.
PostgreSQL 11 includes a new component in the execution engine: a JIT expression compiler. A benchmark comparison shows up to 29.31% speed improvements in PostgreSQL 11 using the JIT expression compiler, executing TPC-H Q1 at scale factor 10 in 20.5s instead of 29s when using PostgreSQL 10.
Flattening a single very hot vertical Redis node into a horizontal Redis Cluster at Stripe.
Fast programs are always fast, slow programs are slow even on a most powerful computers. Knowing that fast solution exists makes slow one plain wrong.
Your code is complex and working with it is difficult. Years of development and bug fixes have you ready to declare bankruptcy on your technical debt and start again from scratch. It feels so freeing to leave all your past mistakes behind and start over in a new technology and do everything right this time. Before…
Why it makes sense to model APIs as graphs, and what GraphQL can do for us to help with discovery, batch operations, and gradual enhancement.
As I listen to “Soup” by Can I’m reminded of the time when Alan Kay took some time to post on Hacker News addressing his thoughts and ideas about object-oriented programming. For raw context read the original thread, but in this post I’ll attempt to annotate some of what was posted. For the purpose of this post…
Tips from experts, thoughts from leaders, news from the front line. Join the conversation beyond hyperconverged infrastructure to the enterprise cloud.
In this series of posts, I am going to create a clone of the classic arcade game, space invaders, in C++ using only a few dependencies. In this post I will set up a window with an OpenGL 3.3 context u
I could write a lot of things about the Github acquisition by Microsoft. About Github's embrace and extend of git, and how it passed unnoticed by people who now fear the same thing now that Microsoft is in the picture. About the stultifying effects of Github's centralization, and its retardant effect on general…
A few years ago I started to work on an MPEG1 Video decoder, completely written in JavaScript. Now, I finally found the time to clean up the library, improve its performance, make it more error resilient and modular and add an MP2 Audio decoder and MPEG-TS demuxer. This makes this library not just an MPEG decoder, but…
This is an essay I wrote early-2016. After battling with soundness vs. usability in Typed Clojure for many years, I was starting to reconsider the “obviously wrong” approach of baking unsoundness into the type system from the get-go. I look at some historical examples of intentional unsoundness in type systems, and…
Elastic tabstops - a better way to indent and align code