<feed xmlns="http://www.w3.org/2005/Atom">
	<title>STX</title>
	<link rel="self" href="https://nondev.fuckup.club/mem0.xml"/>
	<updated>0001-01-01T00:00:00Z</updated>
	<id>https://nondev.fuckup.club/mem0.xml</id>


<entry>
	<title type="html"><![CDATA[68a8934e1434ea048dc4b998a64aa98f69907d8a]]></title>
	<id>68a8934e1434ea048dc4b998a64aa98f69907d8a</id>
	<published>2025-08-26T21:21:11Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/habits.md b/habits.md
new file mode 100644
index 0000000..03d0174
--- /dev/null
+++ b/habits.md
@@ -0,0 +1,21 @@
++++
+date = 2025-08-23T17:25:52
+draft = false
+layout = &#39;m&#39;
+title = &#39;Habits&#39;
++++
+
+something to remind myself.
+
+### good:
+- short, simple.
+- make it cute.
+- use less but make more.
+- speak intentionally.
+
+### bad:
+- social media.
+- trying to &#34;connect&#34; with others[^1].
+- arguing.
+
+[^1]: to clarify, it should be organic, not forced.
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[b218cc186fa247363341664d886a1e87611e3339]]></title>
	<id>b218cc186fa247363341664d886a1e87611e3339</id>
	<published>2025-08-27T20:39:17Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ed.md b/ed.md
new file mode 100644
index 0000000..d9cc5f6
--- /dev/null
+++ b/ed.md
@@ -0,0 +1,14 @@
++++
+date = 2025-08-27T10:40:33
+draft = false
+layout = &#39;m&#39;
+title = &#39;ed&#39;
++++
+tips:
+
+* matching the most *unique* part requires the least typing.
+* `,n`.
+* use `g/PAT/ s/PAT/NEW` to report *all* substitutions.
+* use `g/PAT/t. \↲s/PAT/NEW` to copy and modify line.
+* add line spacing by escaping newlines: `s/$/\↲↲`
+  * doublespace the whole document: `,s/$/\↲↲`
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[5d0df7164a4adbf4519c20d5b9138c370092b7c3]]></title>
	<id>5d0df7164a4adbf4519c20d5b9138c370092b7c3</id>
	<published>2025-08-28T01:04:55Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ed.md b/ed.md
index d9cc5f6..9e1a192 100644
--- a/ed.md
+++ b/ed.md
@@ -9,5 +9,7 @@ tips:
 * matching the most *unique* part requires the least typing.
 * `,n`.
-* use `g/PAT/ s/PAT/NEW` to report *all* substitutions.
+* use `g/PAT/ s/PAT/NEW/` to report the first substitions on *all* lines.
+* `s/PAT/NEW/gp` prints line after substitution.
+  * `s/PAT/NEW/gn` prints with line-number.
 * use `g/PAT/t. \↲s/PAT/NEW` to copy and modify line.
 * add line spacing by escaping newlines: `s/$/\↲↲`
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[b28dfed32d48932acb9264e1fb1891af9d6e03dc]]></title>
	<id>b28dfed32d48932acb9264e1fb1891af9d6e03dc</id>
	<published>2025-09-01T15:54:15Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ed.md b/ed.md
index 9e1a192..4989c0f 100644
--- a/ed.md
+++ b/ed.md
@@ -15,2 +15,5 @@ tips:
 * add line spacing by escaping newlines: `s/$/\↲↲`
   * doublespace the whole document: `,s/$/\↲↲`
+* alternate delimiters help with search space with `/`.
+  * e.g.: `s@/bin@/usr/bin@g`
+  * `@` is most people&#39;s first go-to, but i prefer `,`
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[5efa60b9da6f788cc580e18edb22fa4295ac339a]]></title>
	<id>5efa60b9da6f788cc580e18edb22fa4295ac339a</id>
	<published>2025-09-05T23:49:50Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ascii-bits.md b/ascii-bits.md
new file mode 100644
index 0000000..5f9930f
--- /dev/null
+++ b/ascii-bits.md
@@ -0,0 +1,42 @@
++++
+date = 2025-09-05T23:02:53
+draft = false
+layout = &#39;m&#39;
+title = &#39;ASCII Bits&#39;
++++
+
+7-bit ASCII is *generally* organized
+over sections of 32 (+0x00 - +0x1F),
+or, in other words, the bottom 5 bits
+(000X XXXX).
+
+the topmost bit isn&#39;t used.
+
+the next top 3 bits determine
+either symbols or modifier keys:
+
+```
+━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+000X XXXX ┃ ctrl-modifier
+001X XXXX ┃ symbols (special case)
+010X XXXX ┃ shift-modifier (uppercase)
+011X XXXX ┃ no modifiers (lowercase)
+━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+```
+
+the 32 symbol entries are divided
+into two 16 intervals, with the
+top 5th bit being a shift modifier:
+
+```
+━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+0010 XXXX ┃ no modifier
+0011 XXXX ┃ shift-modifier
+━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+```
+
+the symbols don&#39;t line up perfectly
+with US standard keyboard.
+
+historically (typewriters and teletypes)
+was a different story.
diff --git a/habits.md b/habits.md
index 03d0174..fda511e 100644
--- a/habits.md
+++ b/habits.md
@@ -13,4 +13,5 @@ something to remind myself.
 - use less but make more.
 - speak intentionally.
+- let others be wrong.
 
 ### bad:
@@ -18,4 +19,6 @@ something to remind myself.
 - trying to &#34;connect&#34; with others[^1].
 - arguing.
+- correcting others.
+- trying to be &#34;funny.&#34;
 
 [^1]: to clarify, it should be organic, not forced.
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[f41079e25324f83281f78ca7799fa623ee5cac2f]]></title>
	<id>f41079e25324f83281f78ca7799fa623ee5cac2f</id>
	<published>2025-09-06T19:07:24Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ed.md b/ed.md
index 4989c0f..501b291 100644
--- a/ed.md
+++ b/ed.md
@@ -18,2 +18,9 @@ tips:
   * e.g.: `s@/bin@/usr/bin@g`
   * `@` is most people&#39;s first go-to, but i prefer `,`
+
+# bonus: sed
+
+tips:
+
+* delete lines that contain PAT, but not if it contains SKIP
+  * `sed &#39;/PAT/{/SKIP/!d}&#39;`
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[2be0bc617135565fd6dc99922e1e6e55398c6bb0]]></title>
	<id>2be0bc617135565fd6dc99922e1e6e55398c6bb0</id>
	<published>2025-09-15T19:35:56Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/roff.md b/roff.md
new file mode 100644
index 0000000..1b55e79
--- /dev/null
+++ b/roff.md
@@ -0,0 +1,47 @@
++++
+date = 2025-09-13T22:14:23
+draft = false
+layout = &#39;m&#39;
+title = &#39;Roff&#39;
++++
+
+typesetting is fun.
+
+ranking of roff implementations
+by fun:
+
+3. `groff`.
+2. `mandoc`[^1].
+1. plan9&#39;s `troff`.
+
+
+plan9&#39;s `troff` is more simplified.
+
+one thing that&#39;s missing from it is the
+translating quotes from:
+
+```
+	`word&#39;
+```
+
+to:
+
+```
+	‘word’
+```
+
+you can implement this yourself:
+
+
+```
+.tr `‘&#39;’     \&#34; single can be simply translated
+.de DQ       \&#34; double should wrap arg.
+\&amp;“\\$1”\\$2
+..
+```
+
+
+
+[^1]: `mandoc` is also a set of macros for `roff`,
+      but it&#39;s also a program that typesets `mandoc`
+      macros.
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[2e0841166676352285fb1ce03860c90e6a3a7d6b]]></title>
	<id>2e0841166676352285fb1ce03860c90e6a3a7d6b</id>
	<published>2025-09-15T19:41:45Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/roff.md b/roff.md
index 1b55e79..8f29078 100644
--- a/roff.md
+++ b/roff.md
@@ -11,7 +11,7 @@ ranking of roff implementations
 by fun:
 
-3. `groff`.
-2. `mandoc`[^1].
 1. plan9&#39;s `troff`.
+2. `mandoc`[^1].
+3. `groff`.
 
 
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[36cf27e399efd79c6f52945d24ee799d8d2c7cdd]]></title>
	<id>36cf27e399efd79c6f52945d24ee799d8d2c7cdd</id>
	<published>2025-09-17T18:46:55Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/habits.md b/habits.md
index fda511e..cfbc54c 100644
--- a/habits.md
+++ b/habits.md
@@ -14,4 +14,5 @@ something to remind myself.
 - speak intentionally.
 - let others be wrong.
+- always be stupid.
 
 ### bad:
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[b66a99aa2b4cf580661b73fba33b4d13e328d928]]></title>
	<id>b66a99aa2b4cf580661b73fba33b4d13e328d928</id>
	<published>2025-09-24T00:53:13Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ascii-bits.md b/ascii-bits.md
index 5f9930f..f68b2ca 100644
--- a/ascii-bits.md
+++ b/ascii-bits.md
@@ -17,10 +17,8 @@ either symbols or modifier keys:
 
</code></pre><p>-━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-000X XXXX ┃ ctrl-modifier
-001X XXXX ┃ symbols (special case)
-010X XXXX ┃ shift-modifier (uppercase)
-011X XXXX ┃ no modifiers (lowercase)
-━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+000X XXXX | ctrl-modifier
+001X XXXX | symbols (special case)
+010X XXXX | shift-modifier (uppercase)
+011X XXXX | no modifiers (lowercase)</p>
<pre tabindex="0"><code>
@@ -30,8 +28,6 @@ top 5th bit being a shift modifier:
</code></pre><p>-━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-0010 XXXX ┃ no modifier
-0011 XXXX ┃ shift-modifier
-━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+0010 XXXX | no modifier
+0011 XXXX | shift-modifier</p>
<pre tabindex="0"><code>
diff --git a/roff.md b/roff.md
index 8f29078..94a27bb 100644
--- a/roff.md
+++ b/roff.md
@@ -22,5 +22,5 @@ translating quotes from:
</code></pre><ul>
<li><code>word' +</code>word'</li>
</ul>
<pre tabindex="0"><code>
@@ -28,5 +28,5 @@ to:
</code></pre><ul>
<li>‘word’
+‘word’</li>
</ul>
<pre tabindex="0"><code>
@@ -35,5 +35,7 @@ you can implement this yourself:
</code></pre><p>-.tr <code>‘'’     \&quot; single can be simply translated +.tr </code>‘&rsquo;’     &quot; single can be simply</p>
<ul>
<li>
<pre><code>        \&quot; translated.
</code></pre>
</li>
<li></li>
</ul>
<p>.de DQ       &quot; double should wrap arg.
&amp;“\$1”\$2</p>
<pre tabindex="0"><code></code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[4356e88d2267eebc48e8045704d235e4d2fce9d9]]></title>
	<id>4356e88d2267eebc48e8045704d235e4d2fce9d9</id>
	<published>2025-09-25T18:53:32Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ideas.md b/ideas.md
new file mode 100644
index 0000000..136b18a
--- /dev/null
+++ b/ideas.md
@@ -0,0 +1,37 @@
++++
+date = 2025-09-25T16:51:23
+draft = false
+layout = &#39;m&#39;
+title = &#39;Ideas&#39;
++++
+
+bad ideas.
+
+---
+
+#### a tiny linux distro
+
+- `musl`, busybox/toybox/*box
+  - [tin-can](https://tincan-linux.github.io/)
+  - [alice](https://codeberg.org/emmett1/alicelinux)
+  - [sabotage](https://sabotage-linux.github.io/)
+- very thin-client-ish
+  - [os/1337](https://github.com/OS-1337/OS1337)
+- immutable
+  - need to look more into OSTREE (maybe)
+  - also: [overlayroot](https://github.com/chesty/overlayroot)
+  - NO NIX
+- &#34;containerize&#34; extra software/tools
+  - maybe OCI conformant
+  - [minimal containers](https://github.com/arachsys/containers)
+  - undertand namespacing better.
+- no package manager
+  - build system to generate root image
+  - another to build &#34;container images&#34;
+- will probably have to do a custom kernel
+  - look into patchsets for different
+distros.
+  - prefer &#34;linux-hardened&#34; kernel,
+but getting it to work is a pain.
+
+---
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[7ec24a913a30ec6910bdf73ac0bd59aa227eb222]]></title>
	<id>7ec24a913a30ec6910bdf73ac0bd59aa227eb222</id>
	<published>2025-10-01T00:47:21Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/toxicity.md b/toxicity.md
new file mode 100644
index 0000000..811e5c2
--- /dev/null
+++ b/toxicity.md
@@ -0,0 +1,48 @@
++++
+date = 2025-09-30T23:47:06
+draft = false
+layout = &#39;m&#39;
+title = &#39;Toxicity&#39;
++++
+
+two rules:
+
+1. if you act shitty, you end up being shitty
+2. if you let shittiness into your space, your
+space ends up being shitty
+
+---
+
+people impart opinions more than they do
+knowledge.
+
+people impart opinions disguised as
+knowledge, sometimes unknowingly.
+
+opinions from people to which you
+are not connected[^1] are a huge
+waste of time.
+
+opinions are not a substitute for
+knowledge, and no amount of exceptional
+knowledge validates an opinion.
+
+if someone acts shitty when asserting
+their opinion, then validating their
+opinion validates their shittiness. (rule 2)
+
+---
+
+boundaries are necessary.
+
+asserting boundaries doesn&#39;t make you a shitty person.
+
+defending boundaries doesn&#39;t make you a shitty person.
+
+if you act shitty as a way to assert
+or defend boundaries, that makes you
+a shitty person. (rule 1)
+
+not accepting other people&#39;s boundaries makes you a shitty person.
+
+[^1]: deep, emotional, bi-directional
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[c2da8bee98d1a4aba645f77186373b92248f5e86]]></title>
	<id>c2da8bee98d1a4aba645f77186373b92248f5e86</id>
	<published>2025-10-05T21:36:58Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/toxicity.md b/toxicity.md
index 811e5c2..394b098 100644
--- a/toxicity.md
+++ b/toxicity.md
@@ -46,3 +46,15 @@ a shitty person. (rule 1)
 not accepting other people&#39;s boundaries makes you a shitty person.
 
+---
+
+you can dislike things without being shitty.
+
+you can despise things without being shitty.
+
+you can be angry without being shitty.
+
+if you express these things in a shitty
+way, that makes you a shitty person. (rule 1)
+
+
 [^1]: deep, emotional, bi-directional
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[e2c911a2ca6d3983dcc1133ec1405104f9e407ac]]></title>
	<id>e2c911a2ca6d3983dcc1133ec1405104f9e407ac</id>
	<published>2025-10-14T17:25:38Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/ideas.md b/ideas.md
index 136b18a..a1d1de4 100644
--- a/ideas.md
+++ b/ideas.md
@@ -19,5 +19,5 @@ bad ideas.
   - [os/1337](https://github.com/OS-1337/OS1337)
 - immutable
-  - need to look more into OSTREE (maybe)
+  - ~~need to look more into OSTREE~~ (no)
   - also: [overlayroot](https://github.com/chesty/overlayroot)
   - NO NIX
@@ -36,2 +36,27 @@ but getting it to work is a pain.
 
 ---
+
+#### link aggreg.
+
+- cgi+sqlite
+- cgi lang:
+  - C? works with sqlite, but docgen is clunky.
+  - python? good gen/templating, but boring AF
+  - tcl? also good gen/templating, but no support for sqlite on tilde.club
+  - shell? easy, but is more clunky than c
+    - added tool supports: `awk`, `sed`, &amp;etc.
+  - perl? better than shell but incomprehensible
+  - php? no
+- weekly update (fri)
+- simple design
+- schema:
+  - table for each week (1 - 52/53)
+    - URL
+    - title/name
+    - short description/commentary
+    - &#34;theme&#34; tag (only one per entry)
+  - either week or theme lookup
+- easiest: update database locally and sync
+- build/write cgi code remote
+
+---
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[8d7e215e311e95d7267eaf0fa6320dc1a129a063]]></title>
	<id>8d7e215e311e95d7267eaf0fa6320dc1a129a063</id>
	<published>2025-10-20T12:46:54Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/web.md b/web.md
new file mode 100644
index 0000000..3f370a1
--- /dev/null
+++ b/web.md
@@ -0,0 +1,64 @@
++++
+date = 2025-10-20T12:07:50
+draft = false
+title = &#39;Web&#39;
++++
+
+### FOUC
+
+browser render engines try too hard.
+
+possible remedies to FOUC:
+
+#### `rel=preload` in `&lt;link&gt;`
+
+more of a placebo, tbh.
+
+```
+&lt;link rel=&#34;preload&#34;
+	href=&#34;[URL]&#34;
+	as=&#34;style&#34; /&gt;
+```
+
+
+if `as` attribute is `font`, it additonally
+requires `crossorigin` attribute
+(THANKS, CORS).
+
+
+#### hide until loaded
+
+there are multiple ways to do it,
+but most use javascript.
+
+all of them start the same way:
+make hiding the absolute first thing.
+
+```
+&lt;html&gt;
+  &lt;head&gt;
+    &lt;style&gt;
+html {
+  visibility: hidden;
+  opacity: 0;
+  background: [background color];
+}
+    &lt;/style&gt;
+```
+
+setting the background color
+prevents the whole page from flashing
+white.
+
+the CSS method doesn&#39;t require JS,
+and it&#39;s probably the easiest: just
+append this to the last line of the
+last CSS file loaded:
+
+```
+html {
+	visibility: visible;
+	opacity: 1;
+}
+```
+
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[6c524e8b85251535e4de34ac4cde9ae535b3a352]]></title>
	<id>6c524e8b85251535e4de34ac4cde9ae535b3a352</id>
	<published>2025-10-23T20:12:29Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/compile.md b/compile.md
new file mode 100644
index 0000000..30b145b
--- /dev/null
+++ b/compile.md
@@ -0,0 +1,45 @@
++++
+date = 2025-10-23T19:54:19
+draft = false
+title = &#39;Compile&#39;
++++
+
+### pkg-config
+
+```
+get list of available pkgs:
+$ pkg-config --list-all
+
+get additional CFLAGS:
+$ pkg-config --cflags[-only-[I|other]]
+--cflags-only-I     - only include dirs
+--cflags-only-other - anything not include dirs
+
+get lib linking flags:
+$ pkg-config --libs
+```
+
+### make
+
+recipes are hard.
+
+generally:
+
+```
+CC = [compiler]
+CFLAGS = [CFLAGS]
+LDFLAGS = [LDFLAGS]
+LIBS = `pkg-config --libs [libs]`
+
+%.o: %.c
+	$(CC) $(CFLAGS) $&lt; -c
+
+[output]: [input]
+	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
+```
+
+### CFLAGS
+
+```
+CFLAGS=-O2 -Wall -pipe -D_FORTIFY_SOURCE=2 -fpie
+```
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[e7d6cb9e2c25baa2f0ca4b09047da8ef0682438b]]></title>
	<id>e7d6cb9e2c25baa2f0ca4b09047da8ef0682438b</id>
	<published>2025-10-23T20:48:13Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/compile.md b/compile.md
index 30b145b..26a82ee 100644
--- a/compile.md
+++ b/compile.md
@@ -13,6 +13,8 @@ $ pkg-config --list-all
 get additional CFLAGS:
 $ pkg-config --cflags[-only-[I|other]]
---cflags-only-I     - only include dirs
---cflags-only-other - anything not include dirs
+--cflags-only-I
+  - only include dirs
+--cflags-only-other
+  - anything not include dirs
 
 get lib linking flags:
@@ -42,4 +44,9 @@ LIBS = `pkg-config --libs [libs]`
 
</code></pre><p>-CFLAGS=-O2 -Wall -pipe -D_FORTIFY_SOURCE=2 -fpie
+CFLAGS = \</p>
<ul>
<li>-O2 \</li>
<li>-Wall \</li>
<li>-pipe \</li>
<li>-D_FORTIFY_SOURCE=2 \</li>
<li>-fpie</li>
</ul>
<pre tabindex="0"><code></code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[c0ab3080fa6c174dffb794e1e4bbbee1c9e8a49d]]></title>
	<id>c0ab3080fa6c174dffb794e1e4bbbee1c9e8a49d</id>
	<published>2025-11-02T15:51:25Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/sqlite.md b/sqlite.md
new file mode 100644
index 0000000..c8a4bef
--- /dev/null
+++ b/sqlite.md
@@ -0,0 +1,51 @@
++++
+date = 2025-11-02T15:32:13
+draft = false
+title = &#39;Sqlite&#39;
++++
+
+sqlite has some idiosyncracies.
+
+### newlines in text
+
+newlines can&#39;t be escaped (`\n`), so
+you need to have the bytes in question
+be the value of ␊, (`0x0A`, or 10).
+
+there are 3 ways to do it:
+
+text with the raw character value
+in the string.
+
+```
+&#39;this is
+
+a broken line&#39;
+```
+
+or the two other ways using `||` (concat).
+
+```
+&#39;this is&#39; || char(10) || &#39;a broken line&#39;
+
+&#39;this is&#39; || x&#39;0A&#39; || &#39;a broken line&#39;
+```
+
+the first one uses the `char()` function.
+
+the second one uses some kind of &#39;blob&#39;
+notation (???).
+
+### strings and quotes
+
+strings are surrounded by single-quotes
+(`&#39;`).
+
+double-quotes don&#39;t work.
+
+if you need single-quotes in your string,
+just escape them by doubling up:
+
+```
+&#39;this string&#39;&#39;s single quotes are few&#39;
+```
</code></pre>]]></content>
</entry>

<entry>
	<title type="html"><![CDATA[0c3ea5f547dbc18197770cb316b3df38be2e6640]]></title>
	<id>0c3ea5f547dbc18197770cb316b3df38be2e6640</id>
	<published>2025-11-22T13:15:35Z</published>
	<content type="html"><![CDATA[<pre tabindex="0"><code>diff --git a/sqlite.md b/sqlite.md
deleted file mode 100644
index c8a4bef..0000000
--- a/sqlite.md
+++ /dev/null
@@ -1,51 +0,0 @@
-+++
-date = 2025-11-02T15:32:13
-draft = false
-title = &#39;Sqlite&#39;
-+++
-
-sqlite has some idiosyncracies.
-
-### newlines in text
-
-newlines can&#39;t be escaped (`\n`), so
-you need to have the bytes in question
-be the value of ␊, (`0x0A`, or 10).
-
-there are 3 ways to do it:
-
-text with the raw character value
-in the string.
-
-```
-&#39;this is
-
-a broken line&#39;
-```
-
-or the two other ways using `||` (concat).
-
-```
-&#39;this is&#39; || char(10) || &#39;a broken line&#39;
-
-&#39;this is&#39; || x&#39;0A&#39; || &#39;a broken line&#39;
-```
-
-the first one uses the `char()` function.
-
-the second one uses some kind of &#39;blob&#39;
-notation (???).
-
-### strings and quotes
-
-strings are surrounded by single-quotes
-(`&#39;`).
-
-double-quotes don&#39;t work.
-
-if you need single-quotes in your string,
-just escape them by doubling up:
-
-```
-&#39;this string&#39;&#39;s single quotes are few&#39;
-```
diff --git a/web.md b/web.md
deleted file mode 100644
index 3f370a1..0000000
--- a/web.md
+++ /dev/null
@@ -1,64 +0,0 @@
-+++
-date = 2025-10-20T12:07:50
-draft = false
-title = &#39;Web&#39;
-+++
-
-### FOUC
-
-browser render engines try too hard.
-
-possible remedies to FOUC:
-
-#### `rel=preload` in `&lt;link&gt;`
-
-more of a placebo, tbh.
-
-```
-&lt;link rel=&#34;preload&#34;
-	href=&#34;[URL]&#34;
-	as=&#34;style&#34; /&gt;
-```
-
-
-if `as` attribute is `font`, it additonally
-requires `crossorigin` attribute
-(THANKS, CORS).
-
-
-#### hide until loaded
-
-there are multiple ways to do it,
-but most use javascript.
-
-all of them start the same way:
-make hiding the absolute first thing.
-
-```
-&lt;html&gt;
-  &lt;head&gt;
-    &lt;style&gt;
-html {
-  visibility: hidden;
-  opacity: 0;
-  background: [background color];
-}
-    &lt;/style&gt;
-```
-
-setting the background color
-prevents the whole page from flashing
-white.
-
-the CSS method doesn&#39;t require JS,
-and it&#39;s probably the easiest: just
-append this to the last line of the
-last CSS file loaded:
-
-```
-html {
-	visibility: visible;
-	opacity: 1;
-}
-```
-
</code></pre>]]></content>
</entry>


</feed>
