Skip to content

Instantly share code, notes, and snippets.

stelcodes / bb-postgresql-backup-restore.edn
Last active Sep 1, 2021
Babashka Tasks for PostgreSQL Backups
View bb-postgresql-backup-restore.edn
; run `bb backup` to backup database
; run `bb restore` to restore latest backup
{:min-bb-version "0.4.0",
:tasks {; CONSTANTS
db-name "dev_blog",
backup-dir "backups",
now (str (java.time.LocalDateTime/now)),
create-backup-dir {:depends [backup-dir], :task (babashka.fs/create-dirs backup-dir)},
coltenkrauter / fix-wsl2-dns-resolution
Last active Sep 27, 2021
Fix DNS resolution in WSL2
View fix-wsl2-dns-resolution
More recent resolution:
1. cd ~/../../etc (go to etc folder in WSL).
2. echo "[network]" | sudo tee wsl.conf (Create wsl.conf file and add the first line).
3. echo "generateResolvConf = false" | sudo tee -a wsl.conf (Append wsl.conf the next line).
4. wsl --terminate Debian (Terminate WSL in Windows cmd, in case is Ubuntu not Debian).
5. cd ~/../../etc (go to etc folder in WSL).
6. sudo rm -Rf resolv.conf (Delete the resolv.conf file).
7. In windows cmd, ps or terminal with the vpn connected do: Get-NetIPInterface or ipconfig /all for get the dns primary and
evancz /
Last active Aug 14, 2021
Why do I have to write JSON decoders in Elm?

A vision for data interchange in Elm

How do you send information between clients and servers? What format should that information be in? What happens when the server changes the format, but the client has not been updated yet? What happens when the server changes the format, but the database cannot be updated?

These are difficult questions. It is not just about picking a format, but rather picking a format that can evolve as your application evolves.

Literature Review

By now there are many approaches to communicating between client and server. These approaches tend to be known within specific companies and language communities, but the techniques do not cross borders. I will outline JSON, ProtoBuf, and GraphQL here so we can learn from them all.

stuarthalloway / errors_as_data.clj
Created Mar 16, 2017
Errors as data compose, error messages not so much
View errors_as_data.clj
;; spec errors are data, and as such are composable with all the rest
;; of Clojure. The forms below show getting to an interesting part
;; of an error in a larger data structure, taking advantage of
;; edn-reading, pretty-printing, *print-length* and threading macro.
;; It is difficult to maintain the compositionality shown here
;; once you convert error data into e.g. ASCII art.
'[clojure.edn :as edn]
fab1an / GeoJsonMapLayer.js
Last active May 6, 2020
React / Leaflet combination
View GeoJsonMapLayer.js
export default class GeoJsonMapLayer extends React.Component {
render() {
return (
componentWillUnmount() {
if (this.layer) {
gfredericks / defn+spec.clj
Created Jun 9, 2016
A defn-like macro powered by clojure.spec
View defn+spec.clj
(ns user.defn+spec
(:require [clojure.spec :as s]))
(defn non-&-sym? [x] (and (symbol? x) (not= '& x)))
(s/def ::arglist
(s/cat :normal-args (s/* (s/cat :name non-&-sym?
:spec-form (s/? (s/cat :- #{:-}
:spec ::s/any))))
:varargs (s/? (s/cat :& #{'&}
aphyr / with-retry.clj
Created Jan 20, 2016
Recur from within catch block
View with-retry.clj
(defrecord Retry [bindings])
(defmacro with-retry
"It's really fucking inconvenient not being able to recur from within (catch)
expressions. This macro wraps its body in a (loop [bindings] (try ...)).
Provides a (retry & new bindings) form which is usable within (catch) blocks:
when this form is returned by the body, the body will be retried with the new
[initial-bindings & body]
(assert (vector? initial-bindings))
martndemus / .travis.yml
Last active Sep 10, 2016
When you don't want to test with PhantomJS on Travis-CI...
View .travis.yml
language: node_js
- "stable"
dist: trusty
sudo: required
philandstuff /
Last active Nov 16, 2015
Code mesh 2015 notes

Kush, an introduction to schedulers

about me

  • I work for GDS
  • Cabinet Office
  • we started by building GOV.UK
    • replaced older sites like direct gov, business link
  • we’re not just fixing websites
    • we also build and run digital services
    • working with depts across the country
    • eg: register to vote
jadeallenx /
Last active Nov 25, 2015
Yeah, I think I See What You Mean

tl;dr You should watch this.

It's interesting to me that a significant number of talks in this year's Strange Loop conference referenced a 1966 paper by Peter Landin called (somewhat tongue in cheek) "The Next 700 Programming Languages". In this paper, Landin describes a programming language which he says in a footnote might be aptly called "Church without the lambda" - but which in the paper is called "If You See What I Mean" (ISWIM).

Alvaro's talk delved deeply into the question of "What is the semantics or meaning of a program?" Alvaro's thesis is that the meaning of a program is to produce desired outcomes from a computing system but that current languages focus on