Skip to content

Instantly share code, notes, and snippets.

View danielsz's full-sized avatar

Daniel Szmulewicz danielsz

View GitHub Profile
@danielsz
danielsz / titles.clj
Created July 13, 2026 09:07
Bioscoop title slides
(defgraph title
(let [background-screen (screen 16)
base-text {:font "Cormorant SC" :fontsize 110}
part1 (drawtext (merge base-text {:textfile "/tmp/sentence1.txt" :x "(w-text_w)/2" :y "(h-text_h)/2" :fontcolor "white" :enable "'between(t,0,6)'"}))
part2 (drawtext (merge base-text {:textfile "/tmp/sentence2.txt" :x "(w-text_w)/2" :y "(h-text_h)/2" :fontcolor_expr "'FF0000%{eif\\: clip(255 * (t/5), 0, 255) \\:x\\:2}'" :enable "'between(t,0,6)'"}))
part3 (drawtext (merge base-text {:textfile "/tmp/sentence1.txt" :x "(w-text_w)/2" :y "(h-text_h)/2" :fontcolor_expr "'FFFFFF%{eif\\: clip(255 * (1 - (t - 6)/6), 0, 255) \\:x\\:2}'" :enable "'between(t,6,12)'"}))
part4 (drawtext (merge base-text {:textfile "/tmp/sentence2.txt" :x "(w-text_w)/2" :y "(h-text_h)/2" :fontcolor "red" :enable "'between(t,6,12)'"}))
part5 (drawtext (merge base-text {:textfile "/tmp/sentence2.txt" :x "(w-text_w)/2" :y "(h-text_h)/2" :fontcolor_expr "'FF0000%{eif\\: clip(255 * (1 - (t
(ns bioscoop.slideshow
(:require [bioscoop.macro :refer [bioscoop defgraph]]
[bioscoop.render :refer [to-ffmpeg]]
[bioscoop.ffmpeg :as ffmpeg :refer [with-inputs]]
[bioscoop.built-in :refer [help]]))
(defn screen [duration] (bioscoop (color {:color "black" :size "hd1080" :rate 120 :duration duration})))
(defgraph padding (chain (pad {:width "'iw*1.25'" :height "'ih*1.25'" :x "'(ow-iw)/2'" :y "'(oh-ih)/2'"})
@danielsz
danielsz / bsky.clj
Created December 15, 2024 20:12
Text decoration à la Bluesky
(defn size-table [{:keys [text urls tags mentions]}]
{:text {:content text
:size (count (.getBytes text StandardCharsets/UTF_8))}
:urls (map (fn [url] {:content url
:size (count (.getBytes url StandardCharsets/UTF_8))}) urls)
:tags (map (fn [tag] {:content tag
:size (count (.getBytes tag StandardCharsets/UTF_8))}) tags)
:mentions (map (fn [mention] {:content mention
:size (count (.getBytes mention StandardCharsets/UTF_8))}) mentions)})
@danielsz
danielsz / pr.scm
Last active August 31, 2024 00:35
Primitive recursion
(use-modules (srfi srfi-26))
;; Zero function
(define Z (lambda _ (const 0)))
;; Successor function
(define (S n) (+ n 1))
;; Projector function
(define (P i) ;
@danielsz
danielsz / pr.clj
Last active August 31, 2024 00:18
Primitive Recursion
(ns pr.core)
;;; basic functions on numbers: zero, successor and projection
(def Z #(fn [& _] 0))
(def S inc)
(defn P [i]
(fn [& args] (nth args (dec i))))
@danielsz
danielsz / http.clj
Last active May 23, 2024 15:04
Ring-compliant web server from scratch
(ns socket.http
(:require
[clojure.java.io :as io]
[clojure.string :as str]
[clojure.tools.logging :as log])
(:import [java.net ServerSocket]
[java.net SocketException]
[java.nio.file Files]
[java.io File]
[java.io InputStream OutputStream]))
@danielsz
danielsz / cbor.clj
Created March 24, 2024 04:46
Cbor-clj parser
(ns recursiveparser.cbor
(:require [clojure.tools.logging :as log])
(:import [com.google.iot.cbor CborMap CborTextString CborInteger CborArray CborByteString CborSimple]
[co.nstant.in.cbor.model Map Array SimpleValue UnicodeString ByteString]
[peergos.shared.cbor CborObject$CborMap CborObject$CborString CborObject$CborByteArray CborObject$CborBoolean CborObject$CborList CborObject$CborLong CborObject$CborMerkleLink]))
(defprotocol Cbor
(parse [this]))
(extend-type CborMap
@danielsz
danielsz / polling.clj
Last active October 7, 2024 05:05
Polling endpoint with core.async
(ns clojure.polling
(:require [clj-http.client :as client]
[clojure.core.async :as async :refer [>!! timeout <! go-loop]]
[cheshire.core :as json]
[clojure.tools.logging :as log]))
(defn client
([endpoint]
(client/get endpoint))
([endpoint c e]
@danielsz
danielsz / meyvn.org
Last active October 14, 2021 11:05
Meyvn: going Clojureless

Mevyn

Download Meyvn to your local repository

mvn org.apache.maven.plugins:maven-dependency-plugin:3.2.0:get -Dartifact=org.meyvn:meyvn:1.6.0

Check out https://meyvn.org/

{
"run_type": "client",
"local_addr": "127.0.0.1",
"local_port": 1080,
"remote_addr": "naphtali.tuppu.net",
"remote_port": 443,
"password": ["yourpassword"],
"log_level": 1,
"ssl": {
"verify": true,