Here's my breadcrumbs thing.
* the 12 is just to show a call returning nothing.


#;16> (load "wiki/db.scm")
; loading wiki/db.scm ...
#;17> (import wiki/db)
#;18> (get-breadcrumbs db 12)
()
#;19> (get-breadcrumbs db 4)
(((id . 4) (title . "title123") (level . 0)) ((id . 2) (title . "shild123123") (level . 1)) ((id . 1) (title . "root..") (level . 2)))
#;20>


Here's the code ... i love it so much :P
I am working on a way to use optional list arg
and not need to have that 'a b c arg semantics.
But, I also like the 'a b c, because it's clear that
is a placeholder of 3 things.
(like 'a b c d e is clearly a placeholder for 5 things.)


#|
Get a list of nodes from the current node
up to the root.
|#
(define (get-breadcrumbs db node-id)
(let* ((sql #<#_end_
WITH RECURSIVE hierarchy AS (
SELECT id, parent_id, title, 0 as level
FROM wiki_node
WHERE id = #node-id

UNION ALL

SELECT w.id, w.parent_id, w.title, level + 1
FROM wiki_node as w, hierarchy as h
WHERE w.id = h.parent_id
AND h.parent_id IS NOT NULL
)
SELECT id, title, level
FROM hierarchy
_end_
))
(sqli:map-row
(lambda (a b c)
(zip-alist '(id title level) (list a b c)))
db
sql)))


#scheme #chicken #sql #CTE
* I normally use #ssql but they don't have the 'with recursive thing,
and anyways chicken's multi-line literals with substitution are
pretty great :)

Something for #Node.js programming enthusiasts

If you ever wanted to understand how browsers work this project is your place to be : ladybird.org from Andreas Kling.

https://github.com/LadybirdBrowser/ladybird
https://github.com/awesomekling

GitHub - LadybirdBrowser/ladybird: Truly independent web browser

Truly independent web browser. Contribute to LadybirdBrowser/ladybird development by creating an account on GitHub.

GitHub
Senior Software Engineer at Aircall

Aircall is hiring Senior Software Engineer

Brie Wensleydale (@SlipperyGem)

AHEKOT๊ฐ€ HunYuan World 2.0์šฉ ComfyUI ๋…ธ๋“œ๋ฅผ ๊ณต๊ฐœํ–ˆ๋‹ค. ComfyUI ์›Œํฌํ”Œ๋กœ์—์„œ HunYuan World 2.0์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ƒˆ๋กœ์šด ๋„๊ตฌ ์ถ”๊ฐ€ ์†Œ์‹์ด๋‹ค.

https://x.com/SlipperyGem/status/2045126144513741264

#comfyui #hunyuan #node #workflow #opensource

Brie Wensleydale๐Ÿง€๐Ÿญ (@SlipperyGem) on X

Holy crap! Nice! AHEKOT has made a HunYuan World 2.0 ComfyUI node!

X (formerly Twitter)

So I ran into an unexpected and suddenly new issue with my #friendica today, it was all of a sudden killing my bin/console jetstream and claiming [Error] Invalid opcode '12' provided, knowing I had done no recent work to my #node codebase, I reached out to my hosting providers tech support, which albeit they are really amazing, they were stumped, it would appear #cloudlinux pushed an update on April 14, 2006 that was significant to the ALT-PHP 8.5 stack specifically to fix path-traversal issues and CageFS isolation for PHP-FPM, however after a few hours in which I had put my instance in full maintenance lockdown, they were still trying to figure out the issue and had to put in their own support request to cloudlinux and told me they would let me know when they have more info, so I re-engaged my instance and of course the issue is still there, so then I have to create a script that runs via cron, to get this check that jetstream is dead or alive if dead it starts it, and it runs every 60seconds because we are still experiencing the ghost kill with [Error] Invalid opcode '12' provided, I swear my instance is built with bailing wire and duct tape, but boy it sure gets up and moves like a starship, the scariest thing at the moment is, I really have no idea what I am doing, I search a little code a little, try a little, and somehow I get it going, if I ever catch on to what I am doing, I may just have to write a book, but for now, I am making a totally random post about my #fediverse adventures in #programing, with #friendica, now I am downloading a full backup of my instance along with the DB, my special crons, and a special python program I created originally to handle worker processor, then I have some light file clean up on my host server, and after I make sure everything downloaded right, I will maybe get some rest tonight, for now I am just relishing in my accomplishment of creating bridges over potholes in my server environment;

You can encourage my continued useless #poetry, creativity and expression of self, #commentary, random thoughts, #philosophy and ideas, and by doing so your helping to feed, house and clothe a #disabled man living in #poverty, $5-10-15 It All Helps, via #cashapp at $woctxphotog or via #paypal at paypal.com/donate?campaign_id=โ€ฆ

Please Help Philip

Unterstรผtzen Sie Philip A. Swiderski Jr, indem Sie spenden oder diese Nachricht mit Ihren Freunden teilen.

Ahora me entero que #node tiene una API nativa de #WebSockets ๐Ÿง‘โ€๐ŸŽ“

From five optional fields to a discriminated union: CLI parsing with Optique 1.0

https://hackers.pub/@hongminhee/2026/optique-10-discriminated-unions-for-cli

#Optique 1.0.0์„ ๋ฆด๋ฆฌ์Šคํ–ˆ์Šต๋‹ˆ๋‹ค.

Haskell์˜ optparse-applicative ์Šคํƒ€์ผ์˜ #TypeScript #CLI ํŒŒ์„œ๊ฐ€ ํ•„์š”ํ•ด์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ž‘์€ ํƒ€์ž… ํŒŒ์„œ๋“ค์„ ์กฐํ•ฉํ•˜๋ฉด TypeScript๊ฐ€ ๊ฒฐ๊ณผ ํƒ€์ž…์„ ์ž๋™์œผ๋กœ ์ถ”๋ก ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ์ปค๋งจ๋“œ, ์˜ต์…˜ ๊ฐ„ ์˜์กด์„ฑ, ์…ธ ์™„์„ฑ, ๋งจ(man) ํŽ˜์ด์ง€ ์ƒ์„ฑ ๋“ฑ์„ ์ง€์›ํ•˜๊ณ , #Deno, #Node.js, #Bun ๋“ฑ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ๋ฒ„์ „์—์„œ๋Š” @optique/env (ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํด๋ฐฑ) ํŒจํ‚ค์ง€์™€ @optique/inquirer (Inquirer.js ํ”„๋กฌํ”„ํŠธ ํด๋ฐฑ) ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. API์˜ ์–ด์ƒ‰ํ•œ ๋ถ€๋ถ„๋“ค๋„ ๋งŽ์ด ์ •๋ฆฌํ•˜๊ณ , ๋‹ค์„ฏ ๊ฐ€์ง€ ์…ธ์˜ ์™„์„ฑ ์Šคํฌ๋ฆฝํŠธ ๋ฒ„๊ทธ๋„ ํ•œ๊บผ๋ฒˆ์— ์žก์•˜์Šต๋‹ˆ๋‹ค.

JSR๊ณผ npm์—์„œ ์„ค์น˜ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/dahlia/optique/discussions/796

Optique 1.0.0: environment variables, interactive prompts, and 1.0 API cleanup ยท dahlia optique ยท Discussion #796

Optique is a type-safe combinatorial CLI parser for TypeScript, inspired by Haskell's optparse-applicative and TypeScript's Zod. It takes a functional approach: you compose small, typed parsers int...

GitHub

#Optique 1.0.0 is out! If you build #CLI tools with #TypeScript, it might be worth a look.

I started it because I wanted a TypeScript CLI parser that felt more like optparse-applicative than the usual builder-style APIs. You build up small typed parsers, compose them, and TypeScript infers the result. It handles subcommands, option dependencies, shell completion, and man pages, and it runs on #Deno, #Node.js, and #Bun.

For 1.0 I added @optique/env, so env vars can fill in missing flags, and @optique/inquirer, so missing values can fall back to Inquirer.js prompts. I also cleaned up a lot of awkward API edges and fixed a long backlog of completion bugs across five shells.

Packages are on JSR and npm.

https://github.com/dahlia/optique/discussions/796

Optique 1.0.0: environment variables, interactive prompts, and 1.0 API cleanup ยท dahlia optique ยท Discussion #796

Optique is a type-safe combinatorial CLI parser for TypeScript, inspired by Haskell's optparse-applicative and TypeScript's Zod. It takes a functional approach: you compose small, typed parsers int...

GitHub

#npm is such a pest. Dependency from a folder (or a git repo):

# npm i -D file:/...../some-package --install-links

How to configure some-package to "install" shit? You find in the docs that install runs 6 life-cycle scripts. Yet I had to find by trial and error:

1) prepare runs in a copy of some-package
2) The "files": declaration defines which files are copied over to $PWD/node-modules/some-package
3) install and postinstall run in node_modules/some-package

#javascript #node #webdev