gVisor has made several improvements recently that help containerized applications run faster inside the sandbox including an improvement to the conta
gVisor has made several improvements recently that help containerized applications run faster inside the sandbox including an improvement to the conta
Dog is an animal. Car is a vehicle. Why doesn't OOP ever talk about time control?
Sahan Serasinghe - Engineering Blog
Learn common options for parallelizing Python code, including process-based parallelism, specialized libraries, Ray, IPython Parallel & more.
In a previous article on Inter-Thread Latency I showed how it is possible to signal a state change between 2 threads with less than 50ns of...
Do you ever wish you could turn a Java object into a stream of bytes as fast as it can be done in a native language like C++? If you use s...
Table of contents Preface: Giving first insight into the idea and why I think that hooking into a browser is a good idea. Many different ways to make browser game bots: Discussion various techniques to write HTTP/WebSocket bots How does chess.com internally look like?: Investigation of the client side behavior of chess.com How the bot works: Explaining how my shared library hooks firefox network functions Conclusion: Summary of my discoveries Demo Video and another, better demo video: You might only watch that video, but make sure you read the explanation on the very bottom of this blog post! You may find the sources to the shared library (so) on my github account. Preface Usually I don't have good ideas in forms of flashes of genius. On the contrary, I think that many endeavors and interesting projects might be reasonable if realized, but often so, there's a huge amount of work involved and too many variables and strategic decisions in the process that could eventually render the project a failure. What I try to say: A mediocre idea well engineered might be a good product. But a good idea badly implemented and designed is usually just bad in …
Should I use fork or exec? What is a shell? How to start an external process. How to communicate with a Linux process? Is it possible to have bidirectional pipes?
How kubectl exec, docker exec, and docker attach commands are implemented under the hood.
Apple will soon be allowing alternative browser engines on iOS, so I built one.
The operating system on a single machine.
Unix Processes What is the difference between a process and a thread? A thread is a lightweight process. Each process has a separate stack, text, data and heap. Threads have their own stack, but sh…
Our composition models are poor and don’t scale well.
It’s FOSDEM time! I have fond memories of the Microkernel and Component-based OS devroom in particular. It’s a fun meetup of extremely skilled low-level software engineers. This year I cannot attend, so it’s a good time to ramble reflect on it.
Another installment in my look at all the new features added to Python in each 3.x release, this one covering 3.2. There’s a lot covered including the argparse module, support for futures, changes to the GIL implementation, SNI support in SSL/TLS, and much more besides. This is my longest article ever by far! If you’re puzzled why I’m looking at releases that are years old, check out the first post in the series.
A brief history of Ouroboros
In a previous article on Inter-Thread Latency I showed how it is possible to signal a state change between 2 threads with less than 50ns of...
Since leaving LMAX I have been neglecting my blog a bit. This is not because I have not been doing anything interesting. Quite the opposi...
Do you ever wish you could turn a Java object into a stream of bytes as fast as it can be done in a native language like C++? If you use s...
This is my Code BEAM Europe 2025 talk, converted to a blogpost.
Essays on programming, technology and other things
A Tale of Tests and Fools in the Land of Asynchronicity April 16, 2019 in Software ...
I had an interesting discussion with my buddy Ali after he read my previous post, Python Multiprocessing Pool and KeyboardInterrupt Revisited. The discussion was around the question, “what are the benefits of using the python multiprocessing.Pool class over writing a simple process-based job management system in C?” We started …
🏵️ A curated list of Emacs Lisp development resources - emacs-tw/awesome-elisp
In collaboration with the Rust Foundation, Rust Project, and appropriate external stakeholders, make C++ and Rust interoperability easily accessible and approachable to the widest possible audience...
Swift Concurrency Manifesto. GitHub Gist: instantly share code, notes, and snippets.
Intel Processor Trace is a hardware technology that can record all program execution flow along with timing information accurate to around 30ns. As far as I ...
Type annotations are a workaround for compiler limitations, not a feature—a well-designed language should infer all types automatically, forcing programmers to write smaller, cleaner modules.
Learn about .NET diagnostic ports