Skip to content

Instantly share code, notes, and snippets.

View jasalt's full-sized avatar

Jarkko Saltiola jasalt

View GitHub Profile
~~~~~~~~~~
Error in 'validator-fn > always-falsey validator can't initialize atom' (/home/user/dev/phel/clojure-test-suite/test/clojure/core_test/atom.cljc:6)
Test: (thrown? (atom {} :validator (constantly nil)))
threw exception: InvalidArgumentException
~~~~~~~~~~
Error in 'validator-fn > always-falsey validator can't initialize atom' (/home/user/dev/phel/clojure-test-suite/test/clojure/core_test/atom.cljc:6)
Test: (thrown? (atom {} :validator (constantly false)))
threw exception: InvalidArgumentException
@jasalt
jasalt / gist:00200bb14d3b19ccf968a97057024d13
Created April 12, 2026 02:04
Stacktraces in test output
Stack trace:
#0 /tmp/phel/cache/compiled/phel_core.php(13497): Phel\Lang\AbstractFn@anonymous->{closure:Phel\Lang\AbstractFn@anonymous()
#1 /tmp/phel/cache/compiled/phel_core.php(14273): Phel\Lang\AbstractFn@anonymous->__invoke()
#2 /tmp/phel/cache/compiled/phel_core.php(9003): Phel\Lang\AbstractFn@anonymous->__invoke()
#3 /tmp/phel/cache/compiled/phel_core.php(9000): Phel\Lang\AbstractFn@anonymous->__invoke()
#4 /tmp/phel/cache/compiled/phel_core.php(6245): Phel\Lang\AbstractFn@anonymous->__invoke()
#5 /tmp/phel/cache/compiled/phel_test.php(422): Phel\Lang\AbstractFn@anonymous->__invoke()
#6 /tmp/phel/cache/compiled/phel_test.php(468): Phel\Lang\AbstractFn@anonymous->__invoke()
#7 /tmp/phel/cache/compiled/clojure_core-test_assoc-bang.php(3680): Phel\Lang\AbstractFn@anonymous->__invoke()
#8 /tmp/phel/cache/compiled/phel_test.php(2014): Phel\Lang\AbstractFn@anonymous->__invoke()
@jasalt
jasalt / google-parser.phel
Last active January 10, 2026 15:51
Phel & PHP 8.4 HTML API testing: scraping Google search results page
(ns seo-tools\google-parser
(:require phel\trace :refer [dbg])
(:use \DOMDocument)
(:use \DOMXPath)
(:use Dom\XPath)
(:use Dom\HTMLDocument))
(php/libxml_use_internal_errors true)
;; TODO update with try catch as parse-search-page
@jasalt
jasalt / dbustest.sh
Created January 10, 2026 09:52
"Awaiting" D-Bus message in Bash
#!/usr/bin/env bash
# Senging expected message:
# dbus-send --session --type=signal /org/example/Test org.example.Test.TestSignal
set -euo pipefail
# Match the precise signal we’re interested in.
MATCH="type='signal',interface='org.example.Test',member='TestSignal'"
@jasalt
jasalt / video_embed_stats.py
Last active September 17, 2025 04:47
Plot tabular time-series data as overlay to a video (matplotlib + ffmpeg)
# Author: Jarkko Saltiola
# License: BSD-3
#
# Convert TSV time-series to SRT subtitles or burn overlays into a video aligned to --video-start.
#
# Also supports a real-time rolling plot overlay of selected columns via --plot-columns.
#
## Example input TSV data format:
# id timestamp device_id p1 p2 p3 w1 w2 w3 w-total
# 53285 2025-09-14 13:01:12 1 3.6 3.61 3.73 828 830.3 857.9 2516.2

+++ title = "API" weight = 110 template = "page-api.html" aliases = [ "/api" ] +++

{{ api_listing_entry(fn_name="decode", namespace="base64", doc="```phel (decode s & [strict?])

@jasalt
jasalt / bindings.php
Created August 15, 2025 15:23
Block binding example for twig-templating block
<?php
// Example for https://github.com/jasalt/twig-templating-block (2025-08-15 714be3a)
// Example template
// <div class="favourited-videos {{ editor_classes }}">
// {% if videos %}
// {% for video in videos %}
// {{ include_template_part('cpt-video-card', video.id) }}
// {% endfor %}
@jasalt
jasalt / vendor_to_json.php
Created May 16, 2025 04:57
Convert Composer `vendor` dir to JSON object that can be preloaded with PHP-WASM
#!/usr/bin/env php
<?php
// PHP script `vendor-to-json` that is run on composer project root and traverses through folders in `./vendor/` storing each file handle into nested associative array in format required by PHP-WASM files constructor parameter (and data-files attribute). Ignores folders.
// As of 2025-05-16 requires modified PhpBase.js with support to create missing dirs (Draft PR https://github.com/seanmorris/php-wasm/pull/82)
// Usage:
// ./vendor-to-json.php [prefix]
//
// Parameters:
#!/bin/bash
input_image="full.jpg"
output_prefix="part_"
max_width=3840
max_height=2160
aspect_ratio=$(bc -l <<< "$max_width / $max_height")
# Get image dimensions
dimensions=$(identify -ping -format "%w %h" "$input_image")
@jasalt
jasalt / phel-cider-light.el
Last active February 6, 2025 08:13
"Phel Cider Light" Phel programming config preview
;; "Phel Cider Light" Phel-lang programming config
;; Stand-alone preview version separated from from personal .emacs.d
;; https://github.com/jasalt/.emacs.d/blob/007083f149cf3954a6f38328c962c6788e179705/personal/phel.el#L1
;; Written during two days during winter cold largely with Claude Sonnet 3.5 LLM
;; and gptel.el. While surprisingly good experience for a quick proof of concept,
;; may come with hidden defects that need to be smoothed out by hand during use.
;; Attempts to emulate some useful Clojure and Elisp editing functionalities