Monday, 18 November 2024

letz Congeo treadding

We are presenting a tree of things on the screen.

As many have done. Usually they stick to a two level tree, so you get a table! But sometimes you are representing a computation that seems to have more space in it than space typically has.

The phenomenon is printing out, and flooding the room with its printout.

The kommit part of this tree of things...


Kommit is a collection of states (of treeh, aka "the tree" in git) across time. The less significant shall squash together. Basically a similarity grouper, only thinking about grouping times for now.

Con.svelte represents each of the things in the tree, recursively. Each white C in the above figure is about where one starts.

It is represented by this set of things in a row:


Containers of stuff on the screen.

Giverto inflates fully into the space, to feel how much of it there is.

Takerto, the inner, is supposed to cling to the contents.

Then we can find wasted space in a nested-table display of the tree.

But it is, invisibly unless you hover over the above dom node, like this:


Not sure why html does this. Fix is:

<takerto
style="display:block;"

So that we can find this:

let see_what = () => {
let it = o_(C).map(n => {
return map(
(el) => {
return {el,x:el.offsetWidth,y:el.offsetHeight}
},
[n.y.el_giverto,n.y.el_takerto]
)
})
console.log("En kommit", it)
}

Here:


Showing the first two don't need as much space as the last one, but not as clearly as:


Here's a feng shui decider function:


import { hak,ex,dex,map,dec,haks,joint } from "$lib/Y/Pic"
import {o_,o_up} from '$lib/St.svelte'
function uninlineablelabelable(C) {
let el_size = (el) => el.offsetWidth * el.offsetHeight

$fail = 0
$it = o_(C).map(n => {
if (!(n.y.el_takerto && n.y.el_giverto)) return fail = 1
let use = el_size(n.y.el_takerto) / el_size(n.y.el_giverto)
return {el:n.y.el_giverto, use}
})
fail and return null
# it is Con/(Cont,Kom?,Conz)
# < all the possibilities
# eg Kom probably wants to overlay on Conz/Con*/Kom/...
let Conz = it.pop()
$doit = Conz.use > 0.6 && !it.some(c => c.use > 0.5) && "UNIN"
ex(Conz.el.style,
doit ? {display:'block', 'margin-left':'1em'}
: {display:'table-cell','margin-left':'none'}
)
it.push(Conz)
$it_uses = it.map(c=>dec(c.use,2))
console.log("Ennn kommit", it_uses)
return doit ? 1 : 0
}
export {uninlineablelabelable}

Which does inadvisable non-Sveltey style adjustments that omits the margin-left:


When we aren't just seeing:


Because indeed those properties stop existing... 

I believe the C** is being selectively replanted all the time...

It is generated by Co.ts, displayed and called back into in a Con.svelte** system, hosted by TestBetimes.

Anyway, I eventually found the ResizeObserver browser API, and applied to all things:


This is a pretty average result.
The kommit and times don't get next to each other...
With cytoscaping they would, since one is downstream of the other.

I write myself up:

mo Aug 5

  hmming about GiveTake.

 we

   might be no problem that transition animations dont work anymore

    because of all the sleeving of snippets that goes on

   since we want to scale the GiveTake gently

    and starting it from 0 etc would give the same effect

  so

   make that n.y.el_giverto etc persist...

mo Aug 26

 we

  use browser API ResizeObserver for GiveTake

 th

   is good, but GiveTake function is disappointing

   perhaps it wants using laterer?

    to detect the box model tearing apart, wasting space

    when we basically want to \n\t indent, rather than \t along the row

 fr

  cytoscaping everything seems like the only way

  got flowers again

mo Sep 2

  we need to use cytoscape to io layouts together with a few drags

   codemirror chunks position absolutely...

 tu

  we need codemirror to do io expressing

   rewrite iooia to make A as X was?

   or just a &Sarg kinda thing

   a way to load all dependencies as .svelte.ts

    so your text can travel to a running instance...

  also,

   storage needs sorting out...

   the history graph needs climbables, resyncs

    dragging from one branch to another?

 we

  pull out

 mo

  somehow brack again, with cytoscape?

  or just the Con** scape? since it has lateral .y.*

mo Sep 16

  nada

 th

  ...


Hope you LEARNT SOMETHING!?





Thursday, 14 November 2024

video stabilisation via ffmpeg

First

ffmpeg -i Greenart.mp4 -vf vidstabdetect=stepsize=32:shakiness=10:accuracy=15:result=transforms.trf -f null - 

ffmpeg -i Greenart.mp4 -vf yadif,format=yuv420p,vidstabtransform=zoom=2:optzoom=0 -c:v libx264 -c:a copy -b:v 5m Greenarts.mp4 

rm transforms.trf

 Lovely.





Saturday, 19 October 2024

Indian Dances

Mohiniyattam

https://www.youtube.com/watch?v=m_avP6toESU

Bharatanatyam

https://www.youtube.com/watch?v=JWhA3ldZcyY


The Difference

Is you. Could be that the dancers are doing the same thing separately or being one thing together.

Thursday, 10 October 2024

The Phone Ringing

 We all want to play music over the telephone.

the hub piece of a bamboo roundhouse, freshly fabricated black steel with one rainy night's rust on it

This steel jointing device illustrates the radiant vibe of real time action.
The technology creates an inside, in which it is a certain time... Better, more real...

I wonder if you've

seen anything for playing music together, on a call?

we loosen our sense of time until the latency doesn't bother us.
I'd like to go for audio quality too though, and record everything, multitrackily.
I think here|there would want mixing with an offset of the latency, sometimes, depending on:
whether they were playing in time with me
as I turned up there, $late*1
and they got back at $late*2
or vise versa
or perhaps having some sync animation to take as sheet music.

this is goddamn researchalicious.




seen any decent WebRTC things at all?

I desire a mixer y transporter y synchroniser for a personal area network of phones and tablets that is my stage gear...

Jitsi is FOSS, powers talk.brave.com, can be yours as long as you have https so WebRTC will come out of its shell.





What does apparently exist,

via https://writing.exchange/@ernie/113285588015442907

As y’all probably know I have not really found a recording process for Linux I’m really happy with. Nothing hits the sweet spot for me. But I think I’ve gotten somewhat closer. - Video: GPU Screen Recorder https://flathub.org/apps/com.dec05eba.gpu_screen_recorder - Audio: Noisetorch https://github.com/noisetorch/NoiseTorch - Audio-to-text: Buzz https://chidiwilliams.github.io/buzz/docs Still not perfect. But getting there.

Sunday, 14 July 2024

migrating zap.py -> docker compose = codium nirvana?

 I have a script doing containers, I want to move them to docker compose. 

the init:

        podman build -t cos .

        podman build -t py py


the run:

        podman run -v ~/v:/v:ro -v .:/app:exec -p 5000:5000 --rm -it --name py1 py bash -c 'python py/serve.py'

        podman run -v .:/app:exec -p 3000:3000 --rm -it --name cos1 cos bash -ci 'npm run dev -- --port 3000 --host 0.0.0.0'


Also, some other things. These all become:

version: '3.8'

x-defaults: &defaults
stdin_open: true
tty: true
restart: always

services:
cos:
build:
context: .
dockerfile: Containerfile
volumes:
- .:/app:exec
ports:
- "3000:3000"
command: bash -ci 'npm run dev -- --port 3000 --host 0.0.0.0'
container_name: cos1
<<: *defaults

py:
build:
context: py
dockerfile: Containerfile
volumes:
- ~/v:/v:ro
- .:/app:exec
ports:
- "5000:5000"
command: bash -c 'python py/serve.py'
container_name: py1
<<: *defaults
py2:
build:
context: py
dockerfile: Containerfile
volumes:
- .:/app:exec
ports:
- "8000:8000"
command: bash -c 'python py/ipfs.py'
container_name: py2
<<: *defaults

pl:
build:
context: pl
dockerfile: Containerfile
volumes:
- ../../stylehouse:/app:exec
ports:
- "1812:1812"
command: ./serve.pl
container_name: pl1
<<: *defaults

docker underworld

Then there's a haze of commands as I tried to install...

sudo apt install docker-compose

sudo pip3 install docker-compose

sudo apt install docker-desktop-4.30.0-amd64.deb

sudo apt install ./docker-desktop-4.30.0-amd64.deb

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

sudo apt install docker-compose-v2

sudo apt install docker-compose-v2

sudo apt install docker-compose-v2

sudo apt install docker-compose-v2

sudo apt install docker

sudo apt install docker-ce

I think I also tried via pip at one point.
I would get python errors, eg "no such param ... on HTTP...", indicating program-library version mismatch - also known as dependency hell.
Instructions (found on the web) are varied, so I'm not sure what's running.
dpkg -l 'docker-compose*' says
un  docker-compose-v2     <none>                      <none>       (no description available)
snap list says
docker                     24.0.5           2915   latest/stable    canonical✓     -

Weird. The codium installed via... flatpak.

start over

I needed to:

apt install docker-compose-v2 from ubuntu (rather than docker's apt repo),

And:

`snap install codium --classic`
this is less secure, enough to be able to connect to /var/run/docker.sock

And: 

`adduser $USER docker` and relogin, as per this

The "and relogin" thing caused a lot of confusion
    Until the computer crashes every few days..? What the hell.
    There's this *nix concept of your shell|session|environment containing a bunch of variables that hang around
    And your group membership state there can go stale, so you need to restart reality.

Now how to "have" the docker-compose cluster in codium...

Is via its right click menu in the file exporer:


I don't get the impression it can present me with the errors coming from my development, if it involves multiple containers.
Whereas I'd hoped for finding source file locations mentioned in error messages.

I assumed we had made more developer experience progress than this by now.


weeks later

the py container never starts with the others...
So I must `docker compose up`, which provides errors.
    This window I leave a tiny slat of visible beneath the code editor, as having it in the code editor console eats too much screen.

The many-little-slats approach to visual structure...


Now back to auto-git the user's world for them...