Skip to content

Instantly share code, notes, and snippets.

View zot's full-sized avatar

Bill Burdick zot

  • Jerusalem, Israel
View GitHub Profile
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; BACK UP YOUR LOGSEQ DIR BEFORE RUNNING THIS!
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Copyright (C) Aug 4 2022, William R. Burdick Jr.
;;
;; LICENSE
;; This code is dual-licensed with MIT and GPL licenses.
@zot
zot / org-roam-ivy.el
Last active October 3, 2023 20:20
first cut at scalable incremental completion for org-roam
;;; org-roam-ivy.el --- scalable incremental completion for org-roam -*- coding: utf-8; lexical-binding: t; -*-
;; Copyright © 2021 Bill Burdick <bill.burdick@gmail.com>
;; Author: Bill Burdick <bill.burdick@gmail.com>
;; URL: https://gist.github.com/zot/1d6f164178f41498f912613f2054bbb7
;; Keywords: org-mode, roam, convenience
;; Version: 0.0.15
;; Package-Requires: ((emacs "26.1") (dash "2.13") (f "0.17.2") (org "9.4") (emacsql "3.0.0") (emacsql-sqlite "1.0.0") (magit-section "2.90.1") (org-roam "2.0.0"))
@zot
zot / prep
Last active December 20, 2022 13:01
shell script to prepare steamdeck for development
#!/bin/sh
# use this to prep remote development
#
# ensures sshd is active and multiuser nix is installed
#
# the most common activity here is mounting the local vault
# other activities happen only on installation or after upgrades
#
# activate ssh if it's not activated
if ! systemctl is-active sshd > /dev/null 2>&1; then

What is Leisure?

Simply put, Leisure is a document-oriented, exploratory computing environment for what we call Illuminated Programming. Leisure documents are:

  • editable
  • collaborative
  • interactive
  • web-based (zero install)

Illuminated Programming is our term for application, source code, and data, all rolled up into one interactive, collboratively editable

@zot
zot / juliacon.org
Created July 27, 2022 14:28
Some talks
@zot
zot / prettymd
Last active November 9, 2021 16:44
format markdown docs with https://jez.io/pandoc-markdown-css-theme/ and add TOC sidebar
#!/bin/sh
# format markdown docs with https://jez.io/pandoc-markdown-css-theme/ and add TOC sidebar
# removes the large margin at the top of the body
if [ $# = 0 -o "$1" = --help ]; then
cat <<here
Usage: $(basename $(realpath "$0")) [--help] MARKDOWNFILE
Outputs HTML file from MARKDOWNFILE.
Formats MARKDOWNFILE with jez's template.
Shows a table of contents on the side.
@zot
zot / ob-skewer.el
Last active August 10, 2020 06:39
Small hack to let orgmode babel JS blocks use skewer if it's currently connected
;; modify ob-js to redirect to skewer if it is currently connected
;; this code can go in an emacs settings file
(require 'ob-js)
(require 'cl)
(advice-add 'org-babel-execute:js :around 'bill/org-babel-execute:skewer)
;;(advice-remove 'org-babel-execute:js #'bill/org-babel-execute:skewer)
(defun bill/org-babel-execute:skewer (oldFunc body params)
(if (skewer-ping)
(lexical-let* ((result-type (cdr (assoc :result-type params)))
0x00b97c4e2Af07AcE51A5C1cdf36b7405C1EF0E6a
@zot
zot / differenceLists.md
Last active September 17, 2017 01:07

Difference Lists

A difference list is really a layer on top of another data structure that you can use for cheap appending, later extracting the underlying data structure when you’re done with all the appending. It’s kind of like an array buffer or a string buffer and it’s very simple to implement. You can back a difference list with any data structure that allows you to add an item cheaply to the start or end.

Here are two examples, one using cons-lists in Clojure and one using tables in Lua. Appending two Clojure cons-lists and Lua tables is normally a O(n) operation, making it O(n^2) for appending multiple lists or tables. Difference lists let you append in O(1) and produce the final list or table in O(n), regardless of how many difference lists you’ve appended together.

One interesting thing about difference lists is that a difference list is really a function. Calling it with an argument extracts the backing list from the difference list by appending or prepending to the argument, so calling a

###
Copyright (C) 2013, Bill Burdick, Tiny Concepts: https://github.com/zot/Leisure
(licensed with ZLIB license)
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,