Dhall: A Gateway Drug to Haskell
Personal blog of Saurabh Nanda
The latest blog posts to take off on Hacker News. 21,826 posts.
Personal blog of Saurabh Nanda
In a blog post last year, I took a look at lossy image formats and how they stack up. This time, I thought it might be interesting to do a comparison of lossless image formats.
Preface (by Jimmy Hartzell) I am a huge fan of Jon Gjengset’s Rust for Rustaceans, an excellent book to bridge the gap between beginner Rust programming skills and becoming a fully-functional member of the Rust community. He’s famous for his YouTube channel as well; I’ve heard good things about it (watching video…
Emacs's buffers are so much more than their name implies. They're not just a vessel for you to read or write from. Buffers in Emacs host network processes, shells, and transient data. They're also a key part to understanding why Elisp is designed the way it is.
WebKit has had a big year, with over 162 new features and improvements shipping in WebKit browsers — including Safari 15.2, Safari 15.4, and Safari 15.5.
iOS 27 with all-new Siri AI powered by Apple Intelligence and new features for a more responsive, delightful experience.
Linked lists are often overused in introductory algorithmics courses, due to a heavy focus on theorical complexities. Unfortunatly, in practice, computers are complex beasts. They don’t execute instructions sequentially 1 with the same cost 2 . This means that a data structure with faster theorical complexities does…
When I was still researching this fabled obscure language called Lisp one thing people kept saying about it is that “Lisp is a programmable programming language”, but I could never figure out what they meant by that. It sounds like a smug buzzword or like a gimmick from an academic toy language. Lisp programmers have…
Sorry, this post will read like a “dear diary” entry rather than some life-changing HN-worthy guidance. Back in November 2020, almost on a whim I started work on a new parser for the Ruby programming language. It was almost exactly a year after I had started working on my compiler project (I hope to write a longer…
When writing concurrent Rust you will encounter Arc and Mutex types sooner or later. And although Mutex might already sound familiar as it's a concept known in many languages, chances are you haven't heard about Arc before Rust. What's more, you can't fully understand these concepts without tying them to the ownership…
We're sharing open source code that can sort arrays of numbers about ten times as fast as the C++ std::sort
An article titled Rust Is Hard, Or: The Misery of Mainstream Programming came out today and it's getting a lot of attention. I have a feeling that it's viewed in a wrong context, so I'd like to comment on the issue raised there.
A large C++ codebase meets a new linker: The good, the bad and the performance improvements <a class="more-link" href="https://www.productive-cpp.com/using-the-mold-linker-for-fun-and-3x-8x-link-time-speedups/">... Read More</a>
When you use Rust, it is sometimes outright preposterous how much knowledge of language, and how much of programming ingenuity and curiosity you need in order to accomplish the most trivial things. When you feel particularly desperate, you go to rust/issues and search for a solution for your problem. Suddenly, you…
The DeWitt clause lets database vendors forbid publishing benchmarks. What the clause is, which vendors still use it, and what you can legally publish.
A tutorial how to use a monorepo architecture in frontend JavaScript and TypeScript with tools like npm/yarn/pnpm workspaces, Turborepo/NX/Lerna, Git Submodules, ...
Use Connect to build simple, stable, browser and gRPC-compatible APIs.
Mutation-based fuzzing is based on the idea that new, bug-triggering inputs can often be created by randomly modifying existing, non-bug-triggering inputs. For example, if we wanted to find bugs in a PDF reader, we could grab a bunch of PDF files off the web, mutate them by flipping a few bits or something, and feed…
Two-Factored Authentication (2FA) is now enforced for maintainers of the top-500 packages, by dependents, on the npm registry. To learn more about configuring 2FA, see Configuring two-factor authentication. To learn…
In this month’s episode of the Functional Futures podcast, our guest is Bernard Kolobara – the creator of Lunatic, an Erlang-inspired runtime for WebAssembly. Listen to the episode to find out how Erlang's guiding principles helped Bernard create a runtime that's fast, robust, and scalable.
A climate change what-if Over a few beers... Growing up, I was obsessed with space. Like many tech workers, I consumed everything I could find about space and space travel. Young me was convinced we were on the verge of space travel, imagining I would live to see colonies
The Threading library Starting in Emacs 26 some very ambitious changes were added. Basic thread support was enabled, laying the groundwork for a future concurrent emacs. The docs layout this possibility: Emacs Lisp provides a limited form of concurrency, called threads. All the threads in a given instance of Emacs…
Like many hackers, my first real programming language love was Lisp. Paul Graham, who inspired my own explorations of the language, is a particular advocate and has written quite a bit about Lisp a…
What did whiteboards ever do to you?
When exposing large data sets through APIs, it needs to provide a mechanism to paginate the list of resources. There are multiple…
I used to obsess about code quality earlier in my career. My experience indicates that I'm in good company here; a lot of us developers spend so much time growing our programming skills, and that kind of drive comes from intrinsic motivation. We care about what we do, and we want to do it well.