diff options
author | nepèta dyengxuah <nepeta@canaglie.net> | 2025-04-09 00:03:20 +1000 |
---|---|---|
committer | nepèta dyengxuah <nepeta@canaglie.net> | 2025-04-09 00:03:20 +1000 |
commit | c6ff2e34665ab72a8e460b0e08745509c6500233 (patch) | |
tree | 8824787ea0db0a03db5840d37d2fc1ceb1dd328b | |
parent | 60b603ebd48c3add90ee40fa9421c3919241ccea (diff) |
bring shit back in
-rw-r--r-- | blog/2023-09-30-computing-dystopia-part-1/index.md | 28 | ||||
-rw-r--r-- | blog/2023-10-03-sticky-tiling-windows-in-bspwm/index.md | 93 | ||||
-rw-r--r-- | blog/2024-07-12-occ4-day0/index.md | 44 | ||||
-rw-r--r-- | blog/2024-07-12-occ4-day0/window.jpg | bin | 0 -> 66932 bytes | |||
-rw-r--r-- | blog/2024-07-14-occ4-day1/index.md | 33 | ||||
-rw-r--r-- | blog/2024-07-14-occ4-day1/uxnbroke.jpg | bin | 0 -> 132873 bytes | |||
-rw-r--r-- | blog/2024-07-14-occ4-day2/index.md | 10 | ||||
-rw-r--r-- | blog/2024-07-14-occ4-day2/uxn9.jpg | bin | 0 -> 97583 bytes | |||
-rw-r--r-- | blog/2024-07-16-occ4-day4/index.md | 6 | ||||
-rw-r--r-- | blog/2024-07-18-occ4-day6/index.md | 8 | ||||
-rw-r--r-- | blog/2024-07-20-occ4-day8/index.md | 53 | ||||
-rw-r--r-- | blog/2024-07-21-occ4-day9/index.md | 32 | ||||
-rw-r--r-- | blog/2025-04-08-pissing-forth/index.md | 23 | ||||
-rw-r--r-- | index.md | 4 |
14 files changed, 332 insertions, 2 deletions
diff --git a/blog/2023-09-30-computing-dystopia-part-1/index.md b/blog/2023-09-30-computing-dystopia-part-1/index.md new file mode 100644 index 0000000..3893cd6 --- /dev/null +++ b/blog/2023-09-30-computing-dystopia-part-1/index.md @@ -0,0 +1,28 @@ +# computing dystopia: part 1 + +hi. on my server i run a javascript-based daemon +(its function is irrelevant here). +i also, seperately, run the rss fetcher +[`sfeed_update`](https://codemadness.org/sfeed.html) which i then +transfer to my laptop where i read it. + +today i noticed my feeds did not seem to be fetching. weird. +after like a minute of investigation i find that my `/tmp` directory, +kept on an 8GB ramdisk, had run out of space... +but what could be causing it? + +so it turned out that my `/tmp` directory was filled with temporary +directories created by the javascript package manager(?) `yarn`, +which would create a new directory every few seconds. + +so i find a github issue about this, open since *november 2018*, +which contains no solution other than running a cron job or +changing to `yarn v2`, which my daemon does not seem to support +and distro does not package. + +of course, while this massive issue affecting quite a few people +is not worth fixing after five years, it is important to hide +a comment, labelling it 'unprofessional' and 'not worth visibility' +for containing a silly image in it. + +writing software in javascript is immoral. diff --git a/blog/2023-10-03-sticky-tiling-windows-in-bspwm/index.md b/blog/2023-10-03-sticky-tiling-windows-in-bspwm/index.md new file mode 100644 index 0000000..ab2fbad --- /dev/null +++ b/blog/2023-10-03-sticky-tiling-windows-in-bspwm/index.md @@ -0,0 +1,93 @@ +# sticky tiling windows in bspwm + +`bspwm` has a useful `sticky` flag, which keeps the window on whatever the focused desktop +is, basically like using `node -d` whenever you change desktops. +for floating windows this works very well, but the situation is more complicated if +you set the `sticky` flag for a tiled window. + +It works, of course, but since the sticky window is moved away from a desktop when it +stops being focused, it loses its location in the desktop's layout, +and switching back to that desktop places the sticky tiled window in the location any +window would be. This is not ideal if you don't want to constantly reconfigure your +layout after switching to a browser or something similar. + +There's actually a draft pull request from 2019 on `bspwm`'s Github that addresses this, +[#1032](https://github.com/baskerville/bspwm/pull/1032), but patching bspwm to solve this +problem is quite bothersome if you use a binary package. Plus, `bspwm`'s great advantage +is how extensible and scriptable it is; there must be a way to solve this problem that way! + +There absolutely is, but it took a while for me to figure it out. I spent a few hours on this, +getting it to *almost* work, but be flawed in a way that made it not worth using. +But I finally got it working after [emanuele6](https://github.com/emanuele6) helped me +on IRC (thanks!), and now I use it. So, here it is, `bsp_movedesk`: + + #!/bin/sh + # deal with sticky windows when moving workspaces. + test -z "$1" && exit + + # path format: desktop/stickywindow: parent + bspc query -N -n '.local.leaf.!hidden.sticky' | while read -r wid; do + [ "$(bsp_countwindows)" = 1 ] && break + dir="$HOME/run/bspsticky/$(bspc query -D -d focused)" + mkdir -p "$dir" + bspc node "$wid" -i + bspc query -N "$wid" -n '@brother.leaf.!window' > "${dir}/${wid}" + done + + bspc desktop -f "$1" + + bspc query -N -n '.local.leaf.!hidden.sticky' | while read -r wid; do + dir="$HOME/run/bspsticky/$(bspc query -D -d focused)" + [ "$(bsp_countwindows)" = 1 ] && break + stdir="${dir}/${wid}" + if [ -s "$stdir" ]; then + rece="$(cat "$stdir")" + bspc node "$wid" -n "$rece" + rm "$stdir" + fi + done + + # remove hidden window's receptacles. sucks but better than the alternative + while bspc node 'any.local.leaf.!window' -k; do :; done + +The script is a wrapper around `desktop -f`, and can be used by replacing instances +of `bspc desktop -f` with `bsp_movedesk` in your `sxhkd` config. + +It works by reading and writing to a special directory +(on my machine `$HOME/run/bspsticky`, kept inside a ramdisk), +which contains directories named with a desktop's ID. +These directories contain files named for a sticky node's ID, +and contain the ID of a receptacle which the window should be +moved to if that desktop is focused. +These receptacles are placed before the focused desktop changes if there +are multiple windows open (because doing this when the sticky window +is the only open window is unnecessary.) + +This is the `bsp_countwindows` script: + + #!/bin/sh + bspc query -N -n '.window.!hidden' -d | wc -l + +There are definitely improvements that could be made here, +but It Works. the end. + +--- + +here's a completely unrelated script, which swaps a window's parent to its sibling, +in case you want that: + + #!/bin/sh + # move focused window to sibling + set -e + + # possibly causes a race condition if focused changes during script? + focused=$(bspc query -N -n) + + if [ "$1" = "2" ]; then + bspc node -f @parent/parent/brother + else + bspc node -f @parent/brother + fi + bspc node -i + bspc node $focused -n $(bspc query -N -n .local.leaf.!window) + bspc node $focused -f diff --git a/blog/2024-07-12-occ4-day0/index.md b/blog/2024-07-12-occ4-day0/index.md new file mode 100644 index 0000000..2c2ab8e --- /dev/null +++ b/blog/2024-07-12-occ4-day0/index.md @@ -0,0 +1,44 @@ +# old computer challenge 4: day 0 + +## occ4 index +if i actually end up writing anything during the challenge i will +link it below. + +* **day 0** (you are here) +* [day 1](../2024-07-14-occ4-day1/) +* [day 2](../2024-07-14-occ4-day2/) +* [day 4](../2024-07-16-occ4-day4/) +* [day 6](../2024-07-18-occ4-day6/) +* [day 8](../2024-07-20-occ4-day8/) +* [day 9 (aftermath)](../2024-07-21-occ4-day9/) + +## what i am doing + +well, i guess i'm doing [occ4](https://occ.deadnet.se/). +after much deliberation i have decided to make my life as hard as possible +by spending the week on [9front](http://www.9front.org/). +i spent the last few days figuring out how to get 9front working well +(with wireless networking) on my dell inspiron 6400 +(1gb ram, from 2005 i think?). +also i guess i will be `ssh`ing into my home server. + +here are some possible issues: +* nobody has bothered to port `sfeed` to 9front. +* i can't get `uxn` to run without crashing. +* i have not figured out how to change the timezone from GMT. +* a lot of the videos on my home server do not work with `treason`. +* i have no clue if i can get my wacom tablet to work. + +## oh no +i had to recompile the kernel for wireless drivers to work. + + + +note the battery percentage of 156% when it is full, +and the time zone which is +wrong. i can not figure out how to change it. +copying the correct timezone to `/adm/timezone/local` seems to +have no effect. problem with the timezone file? + +`ssh`ing for git only *occasionally* works. +usually it just refuses to connect. diff --git a/blog/2024-07-12-occ4-day0/window.jpg b/blog/2024-07-12-occ4-day0/window.jpg Binary files differnew file mode 100644 index 0000000..e2c8b70 --- /dev/null +++ b/blog/2024-07-12-occ4-day0/window.jpg diff --git a/blog/2024-07-14-occ4-day1/index.md b/blog/2024-07-14-occ4-day1/index.md new file mode 100644 index 0000000..dddd8f1 --- /dev/null +++ b/blog/2024-07-14-occ4-day1/index.md @@ -0,0 +1,33 @@ +# old computer challenge 4: day 1 + +it's currently 00:20 on day 2 so this post is dated as such. +i didn't write anything on day 1 proper +but i did make significant progress and continue +setting everything up. + +about 5 minutes ago i finally figured out +why the system time wasn't correct: +by default `/rc/bin/termrc` calls the +`aux/timesync` command with arguments +that treat the system clock as local time +instead of UTC. + +i have practically ruled out video viewing, +some videos crash `treason` outright and the ones that don't +are so slow that the video lags significantly behind +the audio. i think this laptop is too slow for that. +audio actually works pretty well, even opus when +everything is patched. + +i also installed the rio theme patch. +i'm not sure why it isn't merged into 9front. +but regardless it's useful and it works. + +i might try installing uxn again on day 2. +`uxnemu` would not run last time i tried it. +maybe on this install it will magically work +for some reason + +edit: it does not + + diff --git a/blog/2024-07-14-occ4-day1/uxnbroke.jpg b/blog/2024-07-14-occ4-day1/uxnbroke.jpg Binary files differnew file mode 100644 index 0000000..3a364ac --- /dev/null +++ b/blog/2024-07-14-occ4-day1/uxnbroke.jpg diff --git a/blog/2024-07-14-occ4-day2/index.md b/blog/2024-07-14-occ4-day2/index.md new file mode 100644 index 0000000..c823714 --- /dev/null +++ b/blog/2024-07-14-occ4-day2/index.md @@ -0,0 +1,10 @@ +# old computer challenge 4: day 2 + +i am writing an uxn implementation for 9front. +preliminarily named `uxn9` + + + +i have completed a very basic skeleton and i intend +to start implementing the uxn instructions +and then the devices. diff --git a/blog/2024-07-14-occ4-day2/uxn9.jpg b/blog/2024-07-14-occ4-day2/uxn9.jpg Binary files differnew file mode 100644 index 0000000..9f3884c --- /dev/null +++ b/blog/2024-07-14-occ4-day2/uxn9.jpg diff --git a/blog/2024-07-16-occ4-day4/index.md b/blog/2024-07-16-occ4-day4/index.md new file mode 100644 index 0000000..68ee3a6 --- /dev/null +++ b/blog/2024-07-16-occ4-day4/index.md @@ -0,0 +1,6 @@ +# old computer challenge 4: day 4 + +i finally figured out why the uxn emulator wasn't working. +my vga colour depth was set to 16 instead of 32. +it works now. i wonder if a lot of the programs i couldn't get to run +were because i was using 16bit colour. diff --git a/blog/2024-07-18-occ4-day6/index.md b/blog/2024-07-18-occ4-day6/index.md new file mode 100644 index 0000000..5142697 --- /dev/null +++ b/blog/2024-07-18-occ4-day6/index.md @@ -0,0 +1,8 @@ +# old computer challenge 4: day 6 + +i think after this challenge is over i'm going to be using +plan9port a lot more. i may replace my sh-based plumbing script +with the plan 9 plumber. + +i would also like to somehow port webfs to plan9port. +i don't know how hard that would be. diff --git a/blog/2024-07-20-occ4-day8/index.md b/blog/2024-07-20-occ4-day8/index.md new file mode 100644 index 0000000..b18141c --- /dev/null +++ b/blog/2024-07-20-occ4-day8/index.md @@ -0,0 +1,53 @@ +# old computer challenge 4: day 8 + +this is the last day. i've been looking at +writing 9p filesystems, but i barely get around +to writing C code in general and i have never, +for some reason, been able to grasp how to best +read data from a file into a buffer. i think +i overthink everything too much and then +never actually implement anything. + +i thought i had mentioned this before, but +apparently i hadn't, but i was able to watch +some videos via `treason`. before, when opening +a file, the audio and video would be immediately +out of sync. turns out i just had to pause and then +play, and it worked fine. (except for sometimes, +probably because of network issues because the video is +over sshfs, the player would freeze) + +i haven't figured out how to make the plumber deal +well with files with spaces in the name. adding +a space into the regex rule for file names seems +to tokenise the whitespace as separate `rc` arguments. + +will probably try doing occ again next year. +it was fun. +maybe i'll try freeDOS, or duskOS. + +i've been thinking of getting a thinkpad x200 or something. +my dell inspiron is quite bulky and hard to carry around. +x200s seem to be well supported all around, which is nice too. +may even try using it to replace my main laptop, as my main laptop +is falling the fuck apart. the main charging port no longer works, +only USB-C. the headphone jack is broken, so I need to use bluetooth +audio. that laptop is from 2021. this 2006 dell laptop is in better +shape. + +`sam` is a nice editor, even though i never actually read the tutorial +to learn the command syntax. oops + +i think i'll be using 9front more, going forward. +maybe setting this laptop up as a cpu/auth server? + +`git9` is ok. `git/walk` seems to only work from +the repository root, though, because otherwise +it can't find the `.git/fs`. + +i never got around to writing more of `uxn9` +because i got `npe`'s SDL working. or porting +sfeed, which i also wanted to do. + +there are still a few hours left until the challenge +is over though so maybe i could try it tonight. diff --git a/blog/2024-07-21-occ4-day9/index.md b/blog/2024-07-21-occ4-day9/index.md new file mode 100644 index 0000000..a695b07 --- /dev/null +++ b/blog/2024-07-21-occ4-day9/index.md @@ -0,0 +1,32 @@ +# old computer challenge 4: day 9 + +the challenge has been over for almost a day now. +i was thrown off in quite a few places going back to my regular +setup. i grew used to `rio`, and `plan9port`'s `rio` is + +1. janky +2. laggy +3. lacking window swallowing + +i really like automatic window swallowing. +i'm working on getting it set up. +my main laptop lacks any physical buttons, +which is throwing me off. +i am again considering getting a thinkpad X200 or something. + +the plumber is fucked if you need to plumb a file name +with spaces in it. i do not feel like putting in the +annoying amount of effort to fix it. + +plan9port, like 9front, does not have any support for +fallback fonts. maybe there's a program or something that +merges font files together, because that's basically the +one thing that is stopping me from mostly switching from +`vi` to `sam`. + +i like `sam`. i'm writing this in plan9port's `sam` right now. +i would try out `acme` but i would like to +get the p9p plumber configured first, which may be a challenge +because i have a shit load of files with spaces in the name. +also mouse chording was a shit idea and you can't do them at all +on a touchpad without physical buttons. diff --git a/blog/2025-04-08-pissing-forth/index.md b/blog/2025-04-08-pissing-forth/index.md new file mode 100644 index 0000000..01c38f9 --- /dev/null +++ b/blog/2025-04-08-pissing-forth/index.md @@ -0,0 +1,23 @@ +# shitting forth: adventures in non-dipshit computing + +it seems to be a Thing, when writing something about forth, +to give it a title of the format +_\[present participle\] forth_. +there's 'starting forth', 'thinking forth', 'moving forth', +probably other ones, and now there is shitting forth. +there's probably a funnier verb to use but i can't think of one right now. + +i've been trying to write an x86 linux forth recently, +because i do not generally enjoy programming in most languages, +but discovered that i actually kind of like programming in assembly, +and i have been mostly converted to a card-carrying forth cultist +at this point, even though i have written approximately +three lines of code in it, +so i guess i'll see if i can write a halfway usable personal forth system. +i suppose this will mainly be some notes on doing that, +for me or for someone else +(i have completely no idea how much traffic this website actually gets) +to read and presumably take some valuable information away from. + +also: for fucks sake do not take for granted that +anything i have written here is true. @@ -1,3 +1,3 @@ -# testzone +# angora pet -there's nothing here yet. goodbye +rarely updated [blog](blog/) ([rss](blog/rss.xml)) |