Rust is not a programming language, it's a syntax error

Rust is not a programming language, it's a syntax error. It's the ugliest dont-get-things-done language. It passes the duck test for a syntax error – it looks like syntax error, it acts like a syntax error, it prints a syntax error, so it is a syntax error. Rust removes fun, art, … | Continue reading


@catonmat.net | 1 year ago

Top 5 Worst Programming Languages

1 Haskell The ultimate dont-get-anything-done language. You will spend all your time pretending to be clever by matching types and don't get the work done. Absolutely useless language made for exobrain academics to write papers no one will read. 2 Rust A language that is a syntax … | Continue reading


@catonmat.net | 2 years ago

Deploy or Die

At Browserling, we sometimes deploy 50 times a day. Our deployment system, which is a 30 line bash script, lets us deploy in 0.1 seconds. Our mantra at Browserling is deploy or die. If you don't push to production 20 times a day you are doing things wrong. There are no code revie … | Continue reading


@catonmat.net | 2 years ago

Best Introduction to Sed

sed book This is the world's best introduction to sed - the superman of UNIX stream editing. Originally I wrote this introduction for my second e-book, however later I decided to make it a part of the free e-book preview and republish it here as this article. Introduction to sed … | Continue reading


@catonmat.net | 2 years ago

Readline Emacs Editing Mode Cheat Sheet [pdf]

Continue reading


@catonmat.net | 2 years ago

Math Cows

I just posted a new comic to Browserling's comic called Math cows.See you next time! | Continue reading


@catonmat.net | 2 years ago

Ldd Arbitrary Code Execution

The `ldd` utility is more vulnerable than you think. It's frequently used by programmers and system administrators to determine the dynamic library dependencies of executables. Sounds pretty innocent, right? Wrong! In this article I am going to show you how to create an executabl … | Continue reading


@catonmat.net | 2 years ago

Must-Have Windows Software

I am not just a Linux enthusiast, I also happen to use Windows quite often. In fact, Windows is my primary desktop from which I connect to all the other boxes and do my work on. During the years of Windows usage, I have accumulated a list of must-have Windows programs that I woul … | Continue reading


@catonmat.net | 3 years ago

My 100 Favorite Programming, Computer, and Science Books: Part Eight

This is part eight of my 100 favorite programming, mathematics, physics, and science books. Quick intro for anyone joining – I've been collecting interesting books for more than 15 years. I'm interested only in books that push thinking and challenge what I already know. I also li … | Continue reading


@catonmat.net | 3 years ago

The Computer Revolution Hasn't Happened Yet

In this video, Alan Kay talks about his vision of object oriented programming and how to design scalable systems. | Continue reading


@catonmat.net | 3 years ago

Being good at coding competitions correlates negatively with job performance

A few days ago I watched How Computers Learn talk by Peter Norvig. In this talk, Peter talked about how Google did machine learning and at one point he mentioned that at Google they also applied machine learning to hiring. He said that one thing that was surprising to him was tha … | Continue reading


@catonmat.net | 3 years ago

Introduction to Low Level Bit Hacks

I decided to write an article about a thing that is second nature to embedded systems programmers – low level bit hacks. Bit hacks are ingenious little programming tricks that manipulate integers in a smart and efficient manner. Instead of performing operations (such as counting … | Continue reading


@catonmat.net | 3 years ago

Summary of all the MIT Introduction to Algorithms lectures

As you all may know, I watched and posted my lecture notes of the whole MIT Introduction to Algorithms course. In this post I want to summarize all the topics that were covered in the lectures and point out some of the most interesting things in them. Actually, before I wrote thi … | Continue reading


@catonmat.net | 3 years ago

Deriving the Y Combinator

In this post I'll derive the Y-combinator and explain all the steps taken. The key to understanding the Y-combinator is knowing precisely what it does. I am sure many people never understand Y-combinator because of this very reason, or because the introduction is too lengthy to c … | Continue reading


@catonmat.net | 4 years ago

My Job Interview at Google

Two weeks ago I had an on-site job interview at Google. The position I was interviewing for was a Google SRE. SRE stands for Site Reliability Engineering. Site reliability engineers (SREs) are both software engineers and systems administrators, responsible for Google's production … | Continue reading


@catonmat.net | 4 years ago

Curl Cookbook

A cookbook full of organic, nutritious, and completely irresistible curl recipes to pass down for generations. | Continue reading


@catonmat.net | 4 years ago

Downloading YouTube Videos with GNU Awk

Alright! Let's get things going on this blog. This is officially the first blog post on my new blog. As I mentioned in about this blog post, one of the things I love to do is figuring out how to get something done with the wrong set of tools. It usually reveals obscure and unexpe … | Continue reading


@catonmat.net | 5 years ago

Useful Perl One-Liners

Continue reading


@catonmat.net | 5 years ago

Something about functions in Bash (2017)

Continue reading


@catonmat.net | 5 years ago

Low Level Bit Hacks You Absolutely Must Know

Continue reading


@catonmat.net | 5 years ago