Skip to content

Instantly share code, notes, and snippets.

View wsgac's full-sized avatar

Wojciech S. Gac wsgac

  • Iagon
  • Warszawa, Poland
View GitHub Profile
@wsgac
wsgac / .psqlrc
Created July 29, 2024 09:41
More reasonable PSQL config
-- prevent noisy loading of psqlrc file
\set QUIET yes
--customize prompt
\set PROMPT1 '\n%[%033[1;31m%]➤ %[%033[2;37m%]%`\! date "+%F %I:%M %p %Z"`%[%033[0m%] %[%033[1;36m%]%n%@%/%[%033[1;31m%]%x %[%033[K%]%[%033[0m%]\n%[%033[1;33m%]%R%#%[%033[0m%] '
\set PROMPT2 '%[%033[1;33m%]%R%#%[%033[0m%] '
--show timing info for queries
\timing
-- allow pasting of values to avoid stupid indenting
\set paste
--get rid of duplicates in history
@wsgac
wsgac / lookup-fiveam-fixtures.lisp
Last active July 25, 2024 22:29
Teach SLIME how to jump to new kinds of definitions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; HACK: Teach SLIME about jumping to FiveAM fixture definitions ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(require 'sb-introspect)
(ql:quickload :swank)
(ql:quickload :fiveam)
;; Poor man's defadvice - stolen from https://gist.github.com/spacebat/46740966846623148c014ab261050bc0
@wsgac
wsgac / paredit-setup.el
Last active July 17, 2024 08:25
A `use-package` enabled configuration of Paredit with an annoying problem worked around
;;;;;;;;;;;;;
;; Paredit ;;
;;;;;;;;;;;;;
(use-package paredit
:ensure t
:init
:config
(show-paren-mode t)
;; Workaround for superfluous spaces inserted in e.g. pathnames, as
@wsgac
wsgac / maze.hs
Created February 23, 2024 09:27
Some snippets from the IOHK Haskell course (https://github.com/input-output-hk/haskell-course)
{-
**************************** IMPORTANT ****************************
This week is a two-step homework. First, you have to solve the
"Maze" challenge, and then the "Forest" challenge. The challenges
are in two separate files in both the homework and solution, so
you can check the solution for the first "Maze" challenge without
spoilers of the "Forest" one. Make sure to check the solution for
"Maze" (and only "Maze," I see you 🥸👀) before starting with the
@wsgac
wsgac / requests_debugging.py
Last active November 30, 2023 12:38
How to enable request debugging in Python `requests` library
# Add debugging outputs to requests
try:
import http.client as http_client
except ImportError:
# Python 2
import httplib as http_client
http_client.HTTPConnection.debuglevel = 1
# You must initialize logging, otherwise you'll not see debug output.
@wsgac
wsgac / lem-improvements.lisp
Created November 29, 2023 23:47
Lem editor - ideas for improvement
(in-package :lem-core)
(defun undefine-key (keymap keyspec)
"Remove binding for KEYSPEC from KEYMAP. Two cases for KEYSPEC are
considered. If it's a symbol, try to remove the corresponding binding
from KEYMAP's FUNCTION-TABLE. If it's a string, parse the string into
chained components, try to extract the innermost chained hash table
from KEYMAP's TABLE and remove the relevant entry."
(check-type keyspec (or symbol string))
(typecase keyspec
@wsgac
wsgac / modify-x509-cert.py
Last active November 23, 2023 15:54
Parse, modify and write an x509 certificate with Python (WIP)
from cryptography import x509
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives import serialization
import os
# Read cert from file
with open("cert.pem", "rb") as f:
cert= x509.load_pem_x509_certificate(f.read(), default_backend())
@wsgac
wsgac / .zshrc
Created November 23, 2023 14:16
Configure a rudimentary `dabbrev-expand`-like contextual completion inside ZSH
# Completion functionality a'la Emacs' dabbrev-expand
zstyle ':completion:history-words:*' list no
zstyle ':completion:history-words:*' remove_all_dups yes
zstyle ':completion:history-words:*' stop yes
zstyle ':completion:history-words:*' menu yes
bindkey "^[/" _history-complete-older
@wsgac
wsgac / y-combinator-common-lisp.lisp
Created November 21, 2023 13:43
Y combinator in various Lisps
(defun factorial-y-combinator (n)
(funcall
(Y (lambda (f n)
(if (zerop n)
1
(* n (funcall f f (1- n))))))
n))
(defun tail-factorial-y-combinator (n)
(funcall
@wsgac
wsgac / .sbclrc
Created November 21, 2023 13:34
A self-updating SBCL config for propagating the same version of Lisp files across multiple systems
;; -*-lisp-*-
(ql:quickload :legit)
(defun sync-utils ()
(let* ((repo (make-instance 'legit:repository
:location "/home/wsg/hack/lisp/util-gist/"))
(remote "git@gist.github.com:9323a1b03108d4ff10570c26a21425c1.git"))
(legit:init repo :if-does-not-exist :clone :remote remote)
(legit:pull repo)