In software I've made open-source creative works in 4 main areas: cryptography, web development, browser technology and utilities.
In total my open-source projects have:
- been used by more than 55000 people
- earned more than 4900 stars on GitHub, and
- been downloaded more than 65000 times across DockerHub, NPM and GitHub releases.
Besides the projects below which are all my own work, here are some other links:
- Triplebyte Front-end certificate (top 10%)
- Triplebyte Generalist certificate (top 10%)
- Triplebyte DevOps certificate (top 10%)
- Stackoverflow Developer Story
- Stackoverflow Profile (from '13)
- Pluralsight Skills IQ
I created ViewFinder to make web scraping easier by delivering the interface without the need for downloads, nor browser extensions. This required turning a browser (actually a remote isolated browser running headless in the cloud) into a client-server app that had a web interface and a back-end. By the magic of Chrome Remote Debugging Protocol (or just "the protocol" to those in the know), I was able to achieve this lofty and seemingly impossible goal. The result is a shining testament to man/woman/humankind's ability to overcome...yada yada yada. It's actually pretty cool, to play with or to try the free demo, because it turns out that live streaming a browser, is actually a product category in and off itself, deeply related to cyber security by being able to isolate threatening websites from your network and devices. So that time I rendered a web browser in a web browser, for fun, or...actually as part of another product, turned into something cool and useful in and of itself. So...check it out?
My browsing technology works (also known as browser controllers) center around enhancements to the way you normally might browse.
22120 (named for the Vatican library) is a browser controller that lets you self host an offline archive of the internet. The part of it you browsed, at least. Your browser never knows the difference.
ViewFinder lets you live-stream the browser interactively. You can build on top of it to create augmented browsing experiences deliverable on any device without download.
Selector-Generalization is novel algorithm for data collection exposed as a package of JavaScript utils to generalize a set of CSS selectors to a single selector that matches them all. Useful for picking columns of data from a view and for mapping the structure of web apps to use as data sources or for automation.
My web development works center around ergonomic "frameworks" to make coding the web easier.
Bepis (named en homage to the meme) is a silly but useful way to write markup in a kindof-sortof shorthand for HTML. It just makes quickly parsing and writing markup easier (when you're not trying to count your pesky . characters, at least). Drincc up!
Dumbass is a tool for stupid people. Aren't we all? Use it when you don't want to think hard about building UIs, and care not for opinions.
My cryptography works are centered around novel takes on existing patterns and primitives and simple, magic-free designs, written in portable, readable code that isn't super-optimized in order to preserve legibility.
Floppsy is a hashing algorithm that passes SMHasher, meaning it stands alongside the best algorithms known. It's slower than most, clocking a modest 200Mb/s on an average workstation. Interstingly, I created it inspired by Egyptian fractions and continued fractions. It uses all floating point arithmetic, a hash-function first.
Discohash (also known as BEBB4185) is a super-fast non-cryptographic hash that passes SMHasher, and runs at 2 - 5GB/s (depending on hardware) in this naive, portable implementation.
Beamsplitter (named for the optical device) is a SMHasher-passing family of hash functions parameterized over the choice of a high-entropy random 10x64 S-box. It's not particularly fast, and at 500 - 800MB/s (depending on hardware) is faster than SHA1, SHA2 and SHA3.
Xen is a set of crypto tools made from mostly unknown primitives I invented. Its output passes Practrand and Dieharder, meaning it is statistically indistinguishable from randomness.
Tarobox (anagram of xor and btoa
) is named based on its constituent parts. It's a Diehard-passing pseudo-random number generator built out of the simple, reusable components of: a base64 expansion function, and a wrap-and-xor compression function. It's simple, but performs really well statistically. It's not fast, however.
Collected, assorted, high-utility miscellania.
Grader.JS, or just Grader, is a tool to help you build accessible, cross-platform desktop app binaries in Node.JS, JavaScript, HTML and CSS, without the bloat of Electron, nor the headaches of Qt.
Lightweight runtime types for vanilla JavaScript and Node.
p2. is a simple PDF to PNG server that also works for XSLX, DOCX, and other documents.
Sir>DB is very simple database on the file system for when you're too small to fail. It's git-diff-able, organized into subdirectories, and all JSON.
servedata is based on sirdb, and is very simple server for its database, incorporating payment, users, groups, permissions and authentication as well as standard landing page and sign in and profile interface.
Abacus is bit arithmetic package to add, subtract, multiply, euclidean divide bit arrays of any size.
Uint1Array is JavaScript's missing TypedArray. Bit-level view of any underlying ArrayBuffer.
My coding environments (some dotfiles, and configs) and useful tools.
I also record some test results I pick up along the way.