This is a list of domains currently on the email blocklist of the Virtual Steamie; I'll try to keep it up to date.
- bacrko.fun
- beioxaf.xyz
- ceponla.eu
- cerjoxa.pres
- cerjoxa.press
- dedanka.top
- hoalqur.top
- irewal.asia
<script src="/blog/js/jquery-3.7.0.min.js" type="application/javascript"></script> | |
<div class="social-media"> | |
<hr/> | |
<h4>Recent Mastodon posts</h4> | |
<ol id="mastodon"></ol> | |
<script type="text/javascript"> | |
const RSS_URL = "https://mastodon.scot/@simon_brooke.rss"; | |
function getRSSFeed(feed, target) { |
(def pid | |
"OK, this is hacky as fuck, but I hope it works. The problem is that the | |
way to get the process id has changed several times during the history | |
of Java development, and the code for one version of Java won't even compile | |
in a different version." | |
(let [java-version (read-string (apply str (take 2 | |
(split | |
(System/getProperty "java.version") | |
#"[_\.]")))) | |
cmd (case java-version |
(ns migrate | |
" | |
## Leiningen to deps.edn migration tool | |
I'm as yet unpersuaded of the merits of `deps.edn` vis-a-vis leiningen. | |
Leiningen puts all the metadata about your project and how to build it | |
in one place in a clear, well understood and easily-extensible format. | |
The `deps.edn` format intentionally does not. | |
Worse, `clojure.cli` uses a subtly but significantly different algorithm |
(defn bargraph | |
"Quick'n'dirty bargraph from these `freqs`, the output from the function | |
`clojure.core/frequencies`." | |
[freqs] | |
(let [u (/ (apply max (vals freqs)) 20) | |
p (/ (apply +' (vals freqs)) 100)] | |
(join "\n" | |
(map #(format "%7d : %s (%d %%)" | |
% | |
(apply str (take (/ (freqs %) u) (repeat "#"))) |
#!/bin/awk -f | |
BEGIN { | |
FS=","; | |
OFS=", "; | |
print("delete from covid;"); | |
} | |
NR > 1 { | |
$1 = gensub( /(.*)/, "'\\1'", 1, $1); | |
$7 = gensub( /(.*)/, "'\\1'", 1, $7); |
(ns walkmap.tag | |
"Code for tagging, untagging, and finding tags on objects. Note the use of | |
the namespaced keyword, `:walkmap.tag/tags`, denoted in this file `::tags`. | |
This is in an attempt to avoid name clashes with other uses of this key." | |
(:require [clojure.set :refer [difference union]])) | |
(defn tagged? | |
"True if this `object` is tagged with each of these `tags`." | |
[object & tags] | |
(if |
#!/bin/bash | |
# Set the timestamp of the JPEG files which are specified as arguments to the current | |
# date, if its timestamp is zero. | |
# | |
# Background: My Olympus E20p, which I like and still use, is so old that it has no | |
# clock, and doesn't timestamp photographs. In order that Shotwell should file them | |
# properly, I like them timestamped. | |
# | |
# Weirdly, although the timestamp appears in the EXIF as it comes off the camera as |
(ns url-query.query | |
(:require [clojure.string :as cs])) | |
;; I wrote this function for a wee side project and ended up not using it - but it is quite a useful function. | |
;; Freeware, not copyrighted, no warranty. Use at your own risk. | |
(defn get-query-part-as-map | |
"Returns the query part of the current document URL as a keyword-string map." | |
[] | |
(let [query-nvs (map #(cs/split % "=") (cs/split (subs js/window.location.search 1) "&"))] |
(def NIL (symbol "NIL")) | |
(deftype ConsCell [CAR CDR] | |
clojure.lang.ISeq | |
(cons [this x] (ConsCell. x this)) | |
(first [this] (.CAR this)) | |
;; next and more must return ISeq: | |
;; https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/ISeq.java | |
(more [this] (if | |
(= (.CDR this) NIL) |
This is a list of domains currently on the email blocklist of the Virtual Steamie; I'll try to keep it up to date.