Nota Language
nota-lang.orgA fresh take on typesetting
Nutshell: make expandable, embeddable explanations
ncase.me/nutshellImplementing truly safe semaphores in rust
neosmart.net/blog/implementing-truly-safe-semaphores-in-rustShufflecake: plausible deniability for multiple hidden filesystems on Linux
shufflecake.nettips for systemd services management and hardening in NixOS
git.selfprivacy.org/alexoundos/articles/src/branch/master/systemd-hardening-in-NixOS/article.mdWhen it comes to security, we care about limiting access of each entity of a system to as few other entities as possible. Network input, executables and users must be able to reach only those resources, which are necessary to perform the defined server tasks. Principle of least priviledge.
Generally, it's better to implement as many layers of security as possible. Although, there is no way to make a server 100% bullet proof - it's a huge endless topic, this article covers some feasible essential systemd tunables that give us a layer of protection.
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
bibliography.selflanguage.org/_static/pics.pdfAbstract: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a set of typical object-oriented SELF programs, PICs achieve a median speedup of 11%.
Laurence Tratt: Why Aren't Programming Language Specifications Comprehensive?
tratt.net/laurie/blog/2023/why_arent_programming_language_specifications_comprehensive.htmlLaurence Tratt: How Hard is it to Adapt a Memory Allocator to CHERI?
tratt.net/laurie/blog/2023/how_hard_is_it_to_adapt_a_memory_allocator_to_cheri.htmlChapel: Productive Parallel Programming
chapel-lang.orgCranelift's Instruction Selector DSL, ISLE: Term-Rewriting Made Practical
cfallin.org/blog/2023/01/20/cranelift-isleA New Backend for Cranelift
cfallin.org/blog/2020/09/18/cranelift-isel-1erikbern/git-of-theseus
github.com/erikbern/git-of-theseusAnalyze how a Git repo grows over time
See how I use it:
Codebase as Database: Turning the IDE Inside Out with Datalog
petevilter.me/post/datalog-typecheckingIntrospectable and extensible IDEs with logic programming
RefinedC: Automating the Foundational Verification of C Code with Refined Ownership Types
plv.mpi-sws.org/refinedc/paper.pdfA non-overlapping type level contains operation for heterogeneous lists
blog.weiznich.de/blog/eurorust-non-overlapping-contains-for-hlists
In this blog post we explore how to write a type level contains
operation for HList inspired type lists without running into overlapping trait implementations
Pointers Are Complicated, or: What's in a Byte?
www.ralfj.de/blog/2018/07/24/pointers-and-bytes.htmlExplanation of provenance, uninitialized memory and stuff like that. Useful as an entry point into realization that we don’t live in PDP-11 world anymore.
Text Rendering Hates You
faultlore.com/blah/text-hates-youBreaking Our Latin-1 Assumptions
manishearth.github.io/blog/2017/01/15/breaking-our-latin-1-assumptionsLet's Stop Ascribing Meaning to Code Points
manishearth.github.io/blog/2017/01/14/stop-ascribing-meaning-to-unicode-code-pointsIt’s not wrong that "🤦🏼♂️".length == 7
hsivonen.fi/string-lengthTo Mock a Mockingbird
en.wikipedia.org/wiki/To_Mock_a_MockingbirdTo Mock a Mockingbird and Other Logic Puzzles: Including an Amazing Adventure in Combinatory Logic is a book by the mathematician and logician Raymond Smullyan. It contains many nontrivial recreational puzzles of the sort for which Smullyan is well known. It is also a gentle and humorous introduction to combinatory logic and the associated metamathematics, built on an elaborate ornithological metaphor.
The Sad Bastard Cookbook
nightbeatseu.ca/works/the-sad-bastard-cookbookLife is hard. Some days are at the absolute limit of what we can manage. Some days are worse than that. Eating—picking a meal, making it, putting it into your facehole—can feel like an insurmountable challenge. We wrote this cookbook to share our coping strategies. It has recipes to make when you’ve worked a 16-hour day, when you can’t stop crying and you don’t know why, when you accidentally woke up an Eldritch abomination at the bottom of the ocean. But most of all, this cookbook exists to help Sad Bastards like us feel a little less alone at mealtimes.
Myths about /dev/urandom
www.2uo.de/myths-about-urandomtl;dr: /dev/random is obsolete and /dev/urandom is strictly better except in early boot.
Quantum computing for the very curious
quantum.country/qcvcPresented in an experimental mnemonic medium that makes it almost effortless to remember what you read
Colmena
colmena.cli.rs/unstableColmena is a simple, stateless NixOS deployment tool modeled after NixOps and morph, written in Rust. It's a thin wrapper over Nix commands like nix-instantiate and nix-copy-closure, and supports parallel deployment.
garnix | the nix CI
garnix.ioSimple, fast, and green CI and caching for nix projects
Index 1,600,000,000 Keys with Automata and Rust
blog.burntsushi.net/transducersIt turns out that finite state machines are useful for things other than expressing computation. Finite state machines can also be used to compactly represent ordered sets or maps of strings that can be searched very quickly.
What every programmer should know about memory
lwn.net/Articles/250967A Riddle Wrapped in an Enigma
eprint.iacr.org/2015/1018.pdfIn August 2015 the U.S. National Security Agency (NSA) released a major policy statement on the need for post-quantum cryptography (PQC). This announcement will be a great stimulus to the development, standardization, and commercialization of new quantum-safe algorithms. However, certain peculiarities in the wording and timing of the statement have puzzled many people and given rise to much speculation concerning the NSA, elliptic curve cryptography (ECC), and quantum-safe cryptography. Our purpose is to attempt to evaluate some of the theories that have been proposed.
An Interactive Introduction to Fourier Transforms
www.jezzamon.com/fourier/index.htmlFourier transforms are a tool used in a whole bunch of different things. This is a explanation of what a Fourier transform does, and some different ways it can be useful.
Color: From Hexcodes to Eyeballs
jamie-wong.com/post/colorIf you're curious about rainbows, colorimetry, gamma encoding, and experiments run in the late 1920s, then this is the post for you!
Rust Atomics and Locks by Mara Bos
marabos.nl/atomicsA free book about atomics and locks that also serves as a nice cheatsheet for x86_64, aarch64 and futexes.
Book: Chasing the Scream
chasingthescream.comWhat if everything you think you know about addiction is wrong? One of Johann Hari’s earliest memories is of trying to wake up one of his relatives and not be able to. As he grew older, he realized he had addiction in his family.
What I learned from making a DNS client in Rust
blog.adamchalmers.com/making-a-dns-clientA lot about sockets, syscalls and bits
SimpleX Chat: private and secure messenger without any user IDs (not even random)
simplex.chatSimpleX Chat - a private and encrypted messenger without any user IDs (not even random ones)! Make a private connection via link / QR code to send messages and make calls.
Introducing Riptide: WebKit’s Retreating Wavefront Concurrent Garbage Collector
webkit.org/blog/7122/introducing-riptide-webkits-retreating-wavefront-concurrent-garbage-collectorThe new Riptide garbage collector in WebKit leads to a five-fold improvement in latency in the JetStream/splay-latency test.
Oh-Auth - Abusing OAuth to take over millions of accounts
salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accountsIt’s extremely important to make sure your OAuth implementation is secure. The fix is just one line of code away. We sincerely hope the information shared in our blog post series will help prevent major online breaches and help web service owners better protect their customers and users.
Search-based compiler code generation
jamey.thesharps.us/2017/06/19/search-based-compiler-code-generationIntroducing the B3 JIT Compiler
webkit.org/blog/5852/introducing-the-b3-jit-compilerWebKit's FTL JIT now uses a new backend on OS X — the Bare Bones Backend, or B3 for short, replaces LLVM as the low-level optimizer.
Introducing the WebKit FTL JIT
webkit.org/blog/3362/introducing-the-webkit-ftl-jitDesigned to bring aggressive C-like optimizations to the largest variety of JavaScript programs.
Game: TIS-100
store.steampowered.com/app/370360/TIS100TIS-100 is an open-ended programming game by Zachtronics, the creators of SpaceChem and Infinifactory, in which you rewrite corrupted code segments to repair the TIS-100 and unlock its secrets. It’s the assembly language programming game you never asked for!
Game: Deep Under the Sky
store.steampowered.com/app/315650/Deep_Under_the_SkyFling, jet, grapple and roll through a psychedelic world as you experience the bizarre mating rituals of alien jellyfish. You'll need careful timing and strategy to explore every cleft and cranny in this chill but challenging 1-button arcade game.
OneDev: Self-hosted Git Server with CI/CD and Kanban
onedev.ioSupports a lot of fun stuff, maybe worth trying.
Pernosco debugger
pernos.co/about/overviewA recording debugger promising to “reduce the debugging time dramatically”.
A close encounter with false sharing
morestina.net/blog/1976/a-close-encounter-with-false-sharingAn example of false sharing in real-ish workload.
C++ exception — zero-cost exception handling
blog.the-pans.com/cpp-exception-1Series of posts about how make C++ exceptions fast.
mess with dns
messwithdns.netA website/game that allows you to create some DNS entries and see what happens.
Building Segmented Logs in Rust: From Theory to Production!
arindas.github.io/blog/segmented-log-rustExplore a Rust implementation of the persistence mechanism behind message-queues and write-ahead-logs in databases. Embark on a journey from the theoretical underpinnings to a production grade implementation of the segmented-log data structure.
Trustfall
github.com/obi1kenobi/trustfallTrustfall is a query engine for querying any kind of data source, from APIs and databases to any kind of files on disk.