Parser generators vs. handwritten parsers: surveying major languages in 2021
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
What happens inside the WiFi Driver on RISC-V BL602... And how we found the incomplete source code for the driver
I've worked with a number of clients on Elixir projects and I've onboarded myself, I've been onboarded and I've onboarded others. And compared to my experiences with PHP/Python/Javascript and my limited experience with C#/.Net I have experienced quite a difference.
Contrary to popular belief, by default, react component doesn't care whether its props changed or not. It will always re-render when its parent renders.
How to use the python web scraping framework Scrapy to crawl indeed.com. Learn data engineering strategies for getting actionable insights from public information.
I just sat down this morning and organized all deep learning related videos I recorded in 2021. I am sure this will be a useful reference for my future…
In the C programming language, we allocate memory dynamically (on the heap) using the malloc function. You pass malloc a size parameter corresponding to the number of bytes you need. The function returns either a pointer to the allocated memory or the NULL pointer if the memory could not be allocated. Or so you may ……
My perspective when a team member gives their notice
I think we all knew this might be coming once we finished up with our assembler . While we can in theory solve any computable problem by writing the appropriate assembly for our assembler, writing assembly code can be a bit more cumbersome than a high-level language. There is a reason why we did not write our…
Over the last 25 years, I’ve written a lot of event-driven code in C++. A typical example of event-driven code is registering a callback that gets invoked every time a socket has data to be read. Once you have read an entire message, possibly after many invocations, you parse the message and invoke another callback…
André Garzia made a nice blog post called “Lua, a misunderstood language” recently, and unfortunately (but perhaps unsurprisingly) a bulk of HN comments on it was about the age-old 0-based vs. 1-based indexing debate. You see, Lua uses 1-based indexing, and lots of programmers claimed this is unnatural because “every…
In this blog post, we take a look at the Elixir programming language from the engineer/business perspective.
How I reduced Rust incremental debug build times on macOS from 14 seconds down to 4 seconds.
It is said that there are three things you must do in your lifetime: plant a tree, have a child, and write a book. I recently finished the last one. Nevertheless, I wrote a programming book.
Why not the programming language I'm already using or some other language? What makes Clojure uniquely well-suited for modern software development? Instead of…
Science, programming, books, and other interesting stuff
Factorio is a factory-building game involving lots (and I mean, LOTS) of conveyor belts. The code that implements these belts is marvel of optimization, but unfortunately they can't handle every construct.
A few months ago, I stumbled upon this post where someone spent 9 years making a shed . No knocks on them, but it’s not even a particularly good-looking shed.
Three years ago I found a 32 GB memory leak caused by CcmExec.exe failing to close process handles. That bug is fixed, but ever since then I have had the handles column in Windows Task Manager ena…
Learn about type level programming by building a custom theming engine.
Best practices when adding a JSON output option to your command-line application.
An unusual benchmark for programming languages, designed to replace C. Unlike many other benchmarks, this one measures developer productivity and performance.