Skip to content

Instantly share code, notes, and snippets.

View davidbgk's full-sized avatar
Let’s escape GAFAM+ when/while we can!

David Larlet davidbgk

Let’s escape GAFAM+ when/while we can!
View GitHub Profile
davidbgk /
Created February 13, 2023 13:45 — forked from baldurbjarnason/
Book production files for Out of the Software Crisis

Book production files

For Out of the Software Crisis.

These are under the MIT License. Do what you want, essentially. Probably doesn't work out of the box. Uses Pandoc, zx, weasyprint, and Literata.

You'll need to download them for this to work. And you'll need to edit the build script to point at the correct CSS files. And you'l need to edit the CSS to point at the correct font files.

davidbgk /
Created October 20, 2022 02:41 — forked from eyeseast/
How to set up Python in 2022


This is my recommended Python setup, as of Fall 2022. The Python landscape can be a confusing mess of overlapping tools that sometimes don't work well together. This is an effort to standardize our approach and environments.

Tools and helpful links:

davidbgk /
Created June 9, 2022 22:47 — forked from willurd/
Big list of http static server one-liners

Each of these commands will run an ad hoc http static server in your current (or specified) directory, available at http://localhost:8000. Use this power wisely.

Discussion on reddit.

Python 2.x

$ python -m SimpleHTTPServer 8000
davidbgk / previewImageUploads.js
Created May 15, 2022 23:04 — forked from adactio/previewImageUploads.js
Show inline previews of images that are going to be uploaded.
// Licensed under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
(function (win,doc) {
'use strict';
if (!win.FileReader || !win.addEventListener || !doc.querySelectorAll) {
// doesn't cut the mustard.
doc.querySelectorAll('input[type="file"][accept="image/*"]').forEach( function (fileInput) {
davidbgk / github-proxy-client.js
Created March 17, 2022 02:39 — forked from DavidWells/github-proxy-client.js
Full Github REST api in 34 lines of code
/* Ultra lightweight Github REST Client */
// original inspiration via
const token = 'github-token-here'
const githubClient = generateAPI('', {
headers: {
'User-Agent': 'xyz',
'Authorization': `bearer ${token}`
davidbgk / userChrome.css
Created October 12, 2021 13:34 — forked from maxlath/userChrome.css
Hide "Firefox suggests" text in Firefox 93 search menu
Create or edit userChrome.css in your Firefox profile folder,
typically found on Linux at ~/.mozilla/firefox/[some firefox profile folder]/chrome/userChrome.css
margin-block-start: 0 !important;
davidbgk / Makefile
Created September 27, 2021 17:55 — forked from baldurbjarnason/Makefile
node-less frontend testing using Firefox and TAP
rm -rf ./my-profile; mkdir ./my-profile && echo "user_pref('devtools.console.stdout.content', true);user_pref('dom.allow_scripts_to_close_windows', true);user_pref('datareporting.policy.firstRunURL', '');" > ./my-profile/user.js && firefox --headless -profile ./my-profile -no-remote `pwd`/index.html | sed -n "/console.log: /p" | sed -e 's/console.log: "//' -e 's/"$$//' | ./tapview
// WARNING: There's much more to know/do around hooks, and
// this is just a simplification of how these work.
// shared references, updated
// per each hook invoke
let execution = null;
let current = null;
let context = null;
let args = null;
Implements a simple HTTP/1.0 Server
import socket
def handle_request(request):
"""Handles the HTTP request."""
(function (context, trackingId, options) {
const history = context.history;
const doc = document;
const nav = navigator || {};
const storage = localStorage;
const encode = encodeURIComponent;
const pushState = history.pushState;
const typeException = 'exception';
const generateId = () => Math.random().toString(36);
const getId = () => {