Lessons learned from 15 years of SumatraPDF, an open source Windows app (2021)
Lessons learned from 15 years of writing SumatraPDF, a great open-source PDF, eBook, and comic book reader for Windows
Lessons learned from 15 years of writing SumatraPDF, a great open-source PDF, eBook, and comic book reader for Windows
Join me as we take a look at common application data patterns, and how they relate to the inner-workings of databases. In this post, we discuss data caching, indexing, optimistic mutations, and recursive cache invalidation. We will see how life might be easier if we could just use a frontend optimized database like…
I'm going to be slightly contrarian and say that I like Discord. It's great to be able to get real-time help on a problem. And it is fun to see, again in real-time, what other people are working on and struggling with. In truth, Discord is no harder to sign up to than Slack, Matrix, Gitter, IRC, or whatever. And of…
Challenging projects every programmer should try
As a data format, yaml is extremely complicated and it has many footguns. In this post I explain some of those pitfalls by means of an example, and I suggest a few simpler and safer yaml alternatives.
The second block has more real work going on. If the character stored in the variable _ does not match the first character of the string a , the code recurses in such a way that this same block of code will again be entered. That is, t=-65 forces a return to the if (t < -50) block. The recursion steps through string a…
It’s 2004 and I’m sitting in one of the largest lecture halls at my university. I’m a computer science major but I’m taking a course on natural history — plants and animals — as one of my electives.
This has been a ground-breaking year for my C skills, and paradigm shifts in my technique has provoked me to reconsider my habits and coding style. It’s been my largest personal style change in years, so I’ve decided to take a snapshot of its current state and my reasoning. These changes have produced significant…
Deno is a relatively new JavaScript runtime. I find it quite interesting and aesthetically appealing, in-line with the recent trend to rein in the worse-is-better law of software evolution. This post explains why.
July 20, 2023 by Anders Hejlsberg, Steve Lucco, Daniel Rosenwasser, Pierce Boggan, Umesh Madan, Mike Hopcroft, and Gayathri Chandrasekaran
Demystify shaders with this beginner-friendly guide. Explore fragment shaders, signed distance functions, and metaballs through interactive code examples. Learn how to create beautiful blob animations and effects using just a few lines of code.
Posted by Natalia Bidart on Dec. 4, 2023
Seth Michael Larson pointed out that the Python gzip module can be used as a CLI tool like this:
sourcehut is a network of useful open source tools for software project maintainers and collaborators, including git repos, bug tracking, continuous integration, and mailing lists.
A little essay on the amusement or horror that may bring to learn that both test and [ are binaries on your typical Unix system, and that [[ is subject to completely different rules.
Generated knowledge and chain of thought prompting of an LLM can generate useful code.
As of this week and after almost four years, I'm not a Twilio employee anymore. I'm writing this while I work through a range of conflicting emotions, and try to adapt to new daily routines without…
You can check out a YouTube recording of a talk based on this blog post.
In my day job, I work on a JavaScript framework (LWC). And although I’ve been working on it for almost three years, I still feel like a dilettante. When I read…
Relational (inner) joins are really common in the world of databases, and one weird thing about them is that it seems like everyone has a different idea of what they are. In this post I’ve aggregated a bunch of different definitions, ways of thinking about them, and ways of implementing them that will hopefully be…
PostgreSQL provides the necessary building blocks for you to combine and create your own search engine for full-text search. Let's see how far we can take it.
If you don't often look beyond established comfortable defaults, you might be surprised to learn just how far the world of frontend has moved away from React, and how big that gap continues to grow.
At Shopify, we have spent the last year writing a new Ruby parser, which we’ve called YARP (Yet Another Ruby Parser). As of the date of this post, YARP can parse a semantically equivalent syntax tree to Ruby 3.3 on every Ruby file in Shopify’s main codebase, GitHub’s main codebase, CRuby, and the 100 most popular gems…
Back in December, we wrote an article detailing three different options for CSS Nesting.
Reflections on the benefits of tweaking an existing app, instead of starting from scratch.
Llama from scratch I want to provide some tips from my experience implementing a paper. I'm going to cover my tips so far from implementing a dramatically...
Blog about linguistics, programming, and my projects
I've been using GitHub since I was eleven years old. To be fair, I didn't really understand git at the time, but I was able to fumble my way through it...
The Nim team is proud and happy to announce Nim version 2.0.