Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

122 total results found

Miscellaneous notes

Here you'll find my miscellaneous, mostly-unsorted notes on various topics.

Projects

Documentation about various (technical) projects that I run or am involved in in some way.

Learning NixOS

A non-linear, wiki-style guide on learning to work with Nix and NixOS. Work in progress, and constantly improving.

NixOS

Miscellaneous notes

seekseek.org

Projects

A collection of specialized search engines

Validatem

Projects

An ergonomic and modular validation system for Javascript code - argument validation, arbitrary value validation, everything.

Promistreams

Projects

Easy-to-use, composable, universal streams for Javascript.

Project ideas

Miscellaneous notes

Various ideas for projects that I do not yet have the time, knowledge or energy to work on. Feel free to take these ideas if they seem interesting, though please keep them non-commercial and free of ads!

Hardware

Miscellaneous notes

Associated notes about hardware hacking, maintenance, etc.

Node.js

Miscellaneous notes

Things that are specific to Node.js. Note that things about Javascript in general, are found under their own "Javascript" chapter!

Privacy

Miscellaneous notes

Maths and computer science

Miscellaneous notes

Articles and notes that are more about the conceptual side of maths and computer science, rather than anything specific to a particular programming language.

Security

Miscellaneous notes

The computer kind, mostly.

The Fediverse and Mastodon

Miscellaneous notes

Cryptocurrency

Miscellaneous notes

Server administration

Miscellaneous notes

General Linux server management notes, not specific to anything in particular.

Databases and data management

Miscellaneous notes

Rust

Miscellaneous notes

Javascript

Miscellaneous notes

Anything about Javascript in general, that isn't specific to Node.js.

Concepts

Learning NixOS

This chapter introduces you to a number of different core concepts in Nix and NixOS, as well as various of the important tools in the ecosystem.

Deploying with morph

Learning NixOS

Security considerations

Learning NixOS

Running unpackaged software

Learning NixOS

This chapter guides you through a number of ways in which you can run software that isn't packaged for NixOS (yet), including proprietary and custom software and games that likely never will be packaged.

Setting up Bookstack

Miscellaneous notes NixOS

Turned out to be pretty simple. deployment.secrets.bookstack-app-key = { source = "../private/bookstack/app-key"; destination = "/var/lib/bookstack/app-key"; owner = { user = "bookstack"; group = "bookstack"; }; permissions = "0700"; }; services.b...

What is seekseek?

Projects seekseek.org

SeekSeek is a search engine project. But instead of being one general search engine, the goal is to build many smaller, highly specialized search engines with specially designed search interfaces, to work optimally for the specific kind of information you're l...

How does it work?

Projects seekseek.org

The following text was originally published on the seekseek website, at https://seekseek.org/technology. The information on this page is currently changing. While the current deployment of seekseek still does use the technology as described here, a next versi...

What is Validatem?

Projects Validatem

This article is derived from the documentation at https://www.npmjs.com/package/@validatem/core. The last validation library you'll ever need. Does every kind of validation, and does it well: it doesn't matter whether you're validating function arguments, ...

Why are there so many packages?

Projects Validatem

This article is derived from the documentation at https://www.npmjs.com/package/@validatem/core. Dependencies often introduce a lot of unnecessary complexity into a project. To avoid that problem, I've designed Validatem to consist of a lot of small, separate...

What are Promistreams?

Projects Promistreams

This article (and most of the others in this chapter) were derived from a formerly-private draft. It is still subject to change, as Promistreams are polished further towards their first stable release. Despite this, you can test out Promistreams today! Promis...

Known issues

Projects Promistreams

Currently there is a single known issue: a design change was fairly recently made, in the process of formalizing the spec, where it was decided that a 'happy abort' (ie. a cancellation under expected circumstances, like the successful completion of a process t...

How do I use Promistreams?

Projects Promistreams

Here's a simple example of a valid Promistream pipeline: "use strict"; const pipe = require("@promistream/pipe"); const fromIterable = require("@promistream/from-iterable"); const map = require("@promistream/map"); const collect = require("@promistream/...

The behaviours and responsibilities of different types of streams

Projects Promistreams

While you don't need to know much about the internals of Promistreams to use the libraries, there are a few things that are useful to know, mostly around which streams are responsible for what. In the Promistreams design, much of the behaviour is 'emergent'; i...

Missing from this documentation

Projects Promistreams

Here are some of the things not (yet) covered in this documentation: Interoperating with Node streams (see example.js in @promistream/from-node-stream - this is pretty trivial and it's even entirely valid to only use Node streams in your pipeline, using thi...

Commonly useful Promistream packages

Projects Promistreams

All of the existing Promistream packages can be found in the package list, but they're not very well-explained. The majority of these should be functional and have an example.js demonstrating their use. Here's a selection of the packages you are most likely t...

Troubleshooting

Projects Promistreams

My process just exits and/or my pipeline doesn't run! You most likely forgot to call .read() on the pipeline. This is easy to forget. I still do it regularly! I get a weird error! All @promistream libraries are meant to produce clear and understandable erro...

Automatic authentication keys

Miscellaneous notes Project ideas

Problem: Every website needs you to create an account. This is a pain to manage, and a barrier. This is especially problematic for self-hosted things like Forgejo, because it gives centralized platforms an advantage (everyone already has an account there). It ...

Cleaning sticky soda spills in a mechanical keyboard without disassembly

Miscellaneous notes Hardware

Follow these instructions at your own risk. This is an experimental approach that may or may not cause long-term damage to your keyboard. This approach was only tested using Kailh Choc switches on a Glove80. It may not work with other switch designs. A Glove...

Hacking the Areson L103G

Miscellaneous notes Hardware

This article was originally published many years ago at http://cryto.net/~joepie91/areson/, when I just started digging into supply chains more. The contents have not been checked for accuracy since! (it's called the Areson G3 according to the USB identific...

Running a Node.js application using nvm as a systemd service

Miscellaneous notes Node.js

This article was originally published at https://gist.github.com/joepie91/73ce30dd258296bd24af23e9c5f761aa. Hi there! Since this post was originally written, nvm has gained some new tools, and some people have suggested alternative (and potentially better) ap...

Secure random values

Miscellaneous notes Node.js

This article was originally published at https://gist.github.com/joepie91/7105003c3b26e65efcea63f3db82dfba. Not all random values are created equal - for security-related code, you need a specific kind of random value. A summary of this article, if you don't...

Don't use VPN services.

Miscellaneous notes Privacy

This article was originally published at https://gist.github.com/joepie91/5a9909939e6ce7d09e29. No, seriously, don't. You're probably reading this because you've asked what VPN service to use, and this is the answer. Note: The content in this post does not a...

ES Modules are terrible, actually

Miscellaneous notes Javascript

This post was originally published at https://gist.github.com/joepie91/bca2fda868c1e8b2c2caf76af7dfcad3, which was in turn adapted from an earlier Twitter thread. It's incredible how many collective developer hours have been wasted on pushing through the turd...

Quick reference for `checkit` validators

Miscellaneous notes Javascript

This article was originally published at https://gist.github.com/joepie91/cd107b3a566264b28a3494689d73e589. Presence exists - The field must exist, and not be undefined. required - The field must exist, and not be undefined, null or an empty string. empt...