Skip to content

Instantly share code, notes, and snippets.

(setq tailwind-shorthands
'((":float-right" "float: right")
(":float-left" "float: left")
(":float-none" "float: none")
(":min-w-0" "min-width: 0")
(":min-w-full" "min-width: 100%")
(":row-auto" "grid-row: auto")
(":row-span-1" "grid-row: span1/span1")
(":row-span-2" "grid-row: span2/span2")
(":row-span-3" "grid-row: span3/span3")
(module encode_decode
(:import
[fs :from "node:fs"]))
(def in (fs.readFileSync "/home/arne/tmp/screenshot_00.png"))
(def out (js:ArrayBuffer. (* 2 (count in))))
(def out-arr (js:Uint8Array. out))
(def [widx ridx] [0 0])
release:
#!/bin/bash
git clean -xfd ext
export VERSION=$(just version_bump_version)
just update_changelog "${VERSION}"
git add .
git commit -m "Release v${VERSION}"
git tag "v${VERSION}"
update_changelog version:
;; Logging is a bit of a lost art. I see people use it the same way they use
;; println debugging, putting in lots of (log/debug "HERE") kind of stuff, and
;; then removing it afterwards.
;;
;; But with a good logging library these logging statements can continue to
;; provide value, even if (especially if) most of the time you turn them off.
;; For this you need to make good use of log levels like
;; error/warn/info/debug/trace. What follows is an illustrated example of how I
;; tend to use them.
(ns co.gaiwan.slack-widgets.ui.components
(:require
[clojure.string :as str]
[clojure.walk :as walk]
[reagent.core :as reagent]
[reagent.ratom :as ratom]
[lambdaisland.glogi :as log]
[co.gaiwan.slack-widgets.ui.state :as state]
[lambdaisland.ornament :as o])
(:require-macros [co.gaiwan.slack-widgets.ui.macros :refer [for!]]))
(ns lambdaisland.trikl1.simple-object-system
"Clojure's missing object system
An 'object' for us is an (r)atom which contains the object state, and metadata on
that atom which contains the methods, keyed by symbol.
A 'klass' is a map of methods, which can then be used as metadata on an object
to 'instantiate' an object.
[[call]] handles calling a method, passing it `this` (the atom) and any
(ns the-clouncil)
(def posts
(sort-by :date (read-string (slurp "posts.edn"))))
;; Original version: mapcat + reduce
;; <-- in | code | out -->
(ns the-clouncil)
(def posts
(sort-by :date (read-string (slurp "posts.edn"))))
(->> posts
(mapcat (fn [{:keys [categories] :as post}]
(map (fn [category]
[category post])
categories)))
{:paths
["src" "resources"]
:deps
{org.clojure/clojure {:mvn/version "1.11.0"}
protojure/protojure {:mvn/version "1.7.3"}}}