Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/o0101/blogfolio

:pencil2: Blogfolio of my creative work in open-source software engineering, 2017 to present.
https://github.com/o0101/blogfolio

archiving bepis blog bona-fides browser cryptography github-stars portfolio rbi selector-generalization types utilities

Last synced: 13 days ago
JSON representation

:pencil2: Blogfolio of my creative work in open-source software engineering, 2017 to present.

Awesome Lists containing this project

README

        

# [THE BLOGFOLIO OF MY CREATIVE WORKS](https://github.com/crislin2046/portfolio/blob/master/README.md#creative-works)

In software I've made open-source creative works in 4 main areas: [cryptography](#cryptography), [web development](#web-development), [browser technology](#browser-technology) and [utilities](#utilities).

## Stats

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.

## Bona Fides

Besides the projects below which are all my own work, here are some other links:

- [Triplebyte Front-end certificate (top 10%)](https://triplebyte.com/tb/cris-stringfellow-daovgil/certificate/track/frontend)
- [Triplebyte Generalist certificate (top 10%)](https://triplebyte.com/tb/cris-stringfellow-daovgil/certificate/track/generalist)
- [Triplebyte DevOps certificate (top 10%)](https://triplebyte.com/tb/cris-stringfellow-daovgil/certificate/track/devops)
- [Stackoverflow Developer Story](https://stackoverflow.com/users/story/10283964)
- [Stackoverflow Profile (from '13)](https://stackoverflow.com/users/907415/Cris%20Stringfellow)
- [Pluralsight Skills IQ](https://app.pluralsight.com/profile/cris-stringfellow-e)

## That time I rendered a web browser in a web browser

I created [ViewFinder](https://github.com/c9fe/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](https://chromedevtools.github.io/devtools-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](https://isolation.site) or to [try the free demo](https://demo.browsergap.dosyago.com), because it turns out that live streaming a browser, is actually a [product category](https://gcn.com/articles/2020/09/08/disa-cbii.aspx) in and off itself, deeply related to [cyber security](https://www.toptal.com/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](https://github.com/dosyago/OuterShell)?

## [Browser Technology](https://github.com/cris691/portfolio/blob/master/README.md#browser-technology)

My browsing technology works (also known as browser controllers) center around enhancements to the way you normally might browse.

### [:classical_building: 22120](https://github.com/c9fe/22120)

#### [![version](https://img.shields.io/npm/v/archivist1.svg?label=&color=0080FF)](https://github.com/dosyago/22120/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/archivist1) ![binary downloads](https://img.shields.io/github/downloads/dosyago/22120/total?label=binary%20downloads) [![GitHub stars](https://img.shields.io/github/stars/dosyago/22120.svg?style=social&label=Star)](https://GitHub.com/dosyago/22120/stargazers/)

**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.

### [:camera: ViewFinder](https://github.com/c9fe/ViewFinder)

#### [![docker pulls](https://img.shields.io/docker/pulls/dosyago/browsergapce)](https://hub.docker.com/r/dosyago/browsergapce) ![version](https://img.shields.io/npm/v/remoteview) [![npm downloads](https://img.shields.io/npm/dt/remoteview)](https://www.npmjs.com/package/remoteview) [![binary downloads](https://img.shields.io/github/downloads/cris691/ViewFinder/total?label=binary%20downloads)](https://github.com/cris691/ViewFinder/releases/latest)[![GitHub stars](https://img.shields.io/github/stars/c9fe/ViewFinder.svg?style=social&label=Star)](https://GitHub.com/c9fe/ViewFinder/stargazers/)

**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.

### [:mag: Selector-Generalization](https://www.npmjs.com/package/selector-generalization)

#### [![version](https://img.shields.io/npm/v/selector-generalization.svg?label=&color=0080FF)](https://github.com/crislin2046/selector-generalization/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/selector-generalization)

**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.

## [Web Development](https://github.com/crislin2046/portfolio/blob/master/README.md#web-development)

My web development works center around ergonomic "frameworks" to make coding the web easier.

### [:dog2: Bepis](https://github.com/dosyago/bepis)

#### [![version](https://img.shields.io/npm/v/bepis.svg?label=&color=0080FF)](https://github.com/dosyago/bepis/releases/latest) ![npm downloads total](https://img.shields.io/npm/dt/bepis) [![GitHub stars](https://img.shields.io/github/stars/dosyago/bepis.svg?style=social&label=Star)](https://GitHub.com/dosyago/bepis/stargazers/)

**Bepis** (named en homage to the [meme](https://www.youtube.com/watch?v=zbqdh5duDuU)) 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!

### [:bug: Dumbass](https://github.com/dosyago/dumbass)

#### [![version](https://img.shields.io/npm/v/dumbass.svg?label=&color=0080FF)](https://github.com/dosyago/dumbass/releases/latest) ![npm downloads total](https://img.shields.io/npm/dt/dumbass) [![GitHub stars](https://img.shields.io/github/stars/dosyago/dumbass.svg?style=social&label=Star)](https://GitHub.com/dosyago/dumbass/stargazers/)

**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.

## [Cryptography](https://github.com/crislin2046/portfolio/blob/master/README.md#cryptography)

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.

### [:baby_chick: Floppsy](https://github.com/dosyago/floppsy)

#### **[200MB/s, passes all SMHasher](https://github.com/rurban/smhasher/blob/master/doc/floppsyhash.txt)** [![version](https://img.shields.io/npm/v/floppsy.svg?label=&color=0080FF)](https://github.com/dosyago/floppsy/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/floppsy)

**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.

### [:dancers: Discohash](https://github.com/cris691/discohash)

#### **[2 - 5 GB/s, passes all SMHasher](https://github.com/rurban/smhasher/blob/master/doc/BEBB4185.txt)** [![version](https://img.shields.io/npm/v/bebb4185.svg?label=&color=0080FF)](https://github.com/cris691/discohash/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/bebb4185) [![GitHub stars](https://img.shields.io/github/stars/cris691/discohash.svg?style=social&label=Star)](https://GitHub.com/cris691/discohash/stargazers/)

**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.

### [:gem: Beamsplitter](https://github.com/cris691/beamsplitter)

#### **[500 - 800MB/s, passes all SMHasher](https://github.com/rurban/smhasher/blob/master/doc/beamsplitter.txt)** [![version](https://img.shields.io/npm/v/beamsplitter.svg?label=&color=0080FF)](https://github.com/cris691/beamsplitter/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/beamsplitter) [![GitHub stars](https://img.shields.io/github/stars/cris691/beamsplitter.svg?style=social&label=Star)](https://GitHub.com/cris691/beamsplitter/stargazers/)

**Beamsplitter** (named for the [optical device](https://www.edmundoptics.com.tw/c/laser-optics/754/?#Categories=Categories%3ANzYy0)) 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.

### [:alien: Xen](https://github.com/dosyago/xen)

#### [![version](https://img.shields.io/npm/v/xen.svg?label=&color=0080FF)](https://github.com/dosyago/xen/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/xen)

**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.

### [:bento: Tarobox](https://github.com/dosyago/tarobox)

#### [![version](https://img.shields.io/npm/v/tarobox.svg?label=&color=0080FF)](https://github.com/dosyago/tarobox/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/tarobox)

**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.

## [Utilities](https://github.com/crislin2046/portfolio/blob/master/README.md#utilities)

Collected, assorted, high-utility miscellania.

### [:goggles: Grader.JS](https://github.com/c9fe/graderjs)

#### ![npm downloads](https://img.shields.io/npm/dt/graderjs?label=npm%20downloads) ![version](https://img.shields.io/npm/v/graderjs?label=version)

**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.

### [:icecream: vanillatype](https://github.com/crislin2046/jtype-system)

#### ![version](https://img.shields.io/npm/v/jtype-system?label=%22%22) ![npm downloads](https://img.shields.io/npm/dt/jtype-system)

Lightweight runtime types for vanilla JavaScript and Node.

### [:page_facing_up: p2.](https://github.com/dosyago/p2.)

#### [![GitHub stars](https://img.shields.io/github/stars/dosyago/p2..svg?style=social&label=Star)](https://GitHub.com/dosyago/p2./stargazers/)

**p2.** is a simple PDF to PNG server that also works for XSLX, DOCX, and other documents.

### [:man: Sir>DB](https://github.com/c9fe/sirdb)

#### [![version](https://img.shields.io/npm/v/stubdb.svg?label=&color=0080FF)](https://github.com/cris691/stubdb/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/sirdb) [![GitHub stars](https://img.shields.io/github/stars/c9fe/sirdb.svg?style=social&label=Star)](https://GitHub.com/c9fe/sirdb/stargazers/)

**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](https://github.com/c9fe/servedata)

#### [![version](https://img.shields.io/npm/v/servedata.svg?label=&color=0080FF)](https://github.com/cris691/servedata/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/servedata) [![GitHub stars](https://img.shields.io/github/stars/cris691/servedata.svg?style=social&label=Star)](https://GitHub.com/cris691/servedata/stargazers/)

**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.

### [:keycap_ten: Abacus](https://github.com/crislin2046/bitmath)

#### [![version](https://img.shields.io/npm/v/bitmath.svg?label=&color=0080FF)](https://github.com/crislin2046/abacus/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/bitmath)

**Abacus** is bit arithmetic package to add, subtract, multiply, euclidean divide bit arrays of any size.

### [:wind_chime: Uint1Array](https://github.com/crislin2046/Uint1Array)

#### [![version](https://img.shields.io/npm/v/uint1array.svg?label=&color=0080FF)](https://github.com/crislin2046/Uint1Array/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/uint1array)

**Uint1Array** is JavaScript's missing TypedArray. Bit-level view of any underlying ArrayBuffer.

### [:small_airplane: environments](https://github.com/cris691/environments)

#### [![version](https://img.shields.io/npm/v/environments.svg?label=&color=0080FF)](https://github.com/cris691/environments/releases/latest) ![npm downloads](https://img.shields.io/npm/dt/environments)

My coding **environments** (some dotfiles, and configs) and useful tools.

-----

## Other Bona Fides

I also record some [test results](TEST_RESULTS.md) I pick up along the way.