summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornepèta dyengxuah <nepeta@canaglie.net>2025-04-09 00:03:20 +1000
committernepèta dyengxuah <nepeta@canaglie.net>2025-04-09 00:03:20 +1000
commitc6ff2e34665ab72a8e460b0e08745509c6500233 (patch)
tree8824787ea0db0a03db5840d37d2fc1ceb1dd328b
parent60b603ebd48c3add90ee40fa9421c3919241ccea (diff)
bring shit back in
-rw-r--r--blog/2023-09-30-computing-dystopia-part-1/index.md28
-rw-r--r--blog/2023-10-03-sticky-tiling-windows-in-bspwm/index.md93
-rw-r--r--blog/2024-07-12-occ4-day0/index.md44
-rw-r--r--blog/2024-07-12-occ4-day0/window.jpgbin0 -> 66932 bytes
-rw-r--r--blog/2024-07-14-occ4-day1/index.md33
-rw-r--r--blog/2024-07-14-occ4-day1/uxnbroke.jpgbin0 -> 132873 bytes
-rw-r--r--blog/2024-07-14-occ4-day2/index.md10
-rw-r--r--blog/2024-07-14-occ4-day2/uxn9.jpgbin0 -> 97583 bytes
-rw-r--r--blog/2024-07-16-occ4-day4/index.md6
-rw-r--r--blog/2024-07-18-occ4-day6/index.md8
-rw-r--r--blog/2024-07-20-occ4-day8/index.md53
-rw-r--r--blog/2024-07-21-occ4-day9/index.md32
-rw-r--r--blog/2025-04-08-pissing-forth/index.md23
-rw-r--r--index.md4
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.
+
+![a screenshot of my desktop](window.jpg)
+
+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
new file mode 100644
index 0000000..e2c8b70
--- /dev/null
+++ b/blog/2024-07-12-occ4-day0/window.jpg
Binary files differ
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
+
+![uxnemu says 'no' with regard to running](uxnbroke.jpg)
diff --git a/blog/2024-07-14-occ4-day1/uxnbroke.jpg b/blog/2024-07-14-occ4-day1/uxnbroke.jpg
new file mode 100644
index 0000000..3a364ac
--- /dev/null
+++ b/blog/2024-07-14-occ4-day1/uxnbroke.jpg
Binary files differ
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`
+
+![screenshot of xxiivv uxn docs, man page, many windows](uxn9.jpg)
+
+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
new file mode 100644
index 0000000..9f3884c
--- /dev/null
+++ b/blog/2024-07-14-occ4-day2/uxn9.jpg
Binary files differ
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.
diff --git a/index.md b/index.md
index e48e951..e453962 100644
--- a/index.md
+++ b/index.md
@@ -1,3 +1,3 @@
-# testzone
+# angora pet
-there's nothing here yet. goodbye
+rarely updated [blog](blog/) ([rss](blog/rss.xml))