summaryrefslogtreecommitdiffstats
path: root/_log
diff options
context:
space:
mode:
Diffstat (limited to '_log')
-rw-r--r--_log/matrix-digital-rain.md8
-rw-r--r--_log/site-search.md12
2 files changed, 10 insertions, 10 deletions
diff --git a/_log/matrix-digital-rain.md b/_log/matrix-digital-rain.md
index af3cff6..2edc7e7 100644
--- a/_log/matrix-digital-rain.md
+++ b/_log/matrix-digital-rain.md
@@ -7,7 +7,7 @@ thumbnail: thumb_sm.png
---
The 2022 version worked but had some loose ends. Unicode support was
-inflexible--couldn't mix ASCII with Katakana; Phosphor decay was stored in a
+incomplete--couldn't mix ASCII with Katakana; Phosphor decay was stored in a
separate array when it should've been packed with RGB; Code was harder to read
than it needed to be.
@@ -39,10 +39,10 @@ static inline void insert_code(matrix *mat,
uint64_t blk;
uint32_t min, max;
- blk = glyphs[(rand() % glyphlen)];
+ blk = glyphs[(xor() % glyphlen)];
min = (uint32_t)blk;
max = (uint32_t)(blk >> 32);
- mat->code[index(mat, row, col)] = rand() % (max - min) + min;
+ mat->code[index(mat, row, col)] = xor() % (max - min) + min;
}
```
@@ -71,7 +71,7 @@ Optimized RNG--xorshift instead of rand():
```
static inline uint32_t xor(void)
{
- /* Xorshift RNGs, George Marsaglia, The Florida State University. */
+ /* Xorshift RNGs, George Marsaglia, Florida State University. */
static uint32_t y = 2463534242;
y ^= (y << 13);
diff --git a/_log/site-search.md b/_log/site-search.md
index 1752db7..4ccae3c 100644
--- a/_log/site-search.md
+++ b/_log/site-search.md
@@ -4,7 +4,7 @@ date: 2026-01-03
layout: post
---
-Article count is growing. Need a way to search.
+Article count is growing. Need search.
Requirements: matches substrings, case-insensitive, fast, secure. No
JavaScript.
@@ -14,7 +14,7 @@ Architecture: browser → httpd → slowcgi → Perl CGI script.
Perl, httpd, slowcgi are in the OpenBSD base system. Instead of secrets, file
system permissions govern access.
-2025-12-30: Regex search.
+2025-12-30: Regex.
140-line Perl script searches 500 files in 40ms. Fast enough; O(N) pull felt at
higher file counts.
@@ -22,7 +22,7 @@ higher file counts.
Introduces ReDoS and symlink attack vectors. Both can be mitigated. Tempted to
stop here.
-2026-01-03: Suffix Array (SA) based index lookup.
+2026-01-03: Suffix array (SA) based index lookup.
Slurping files on every request bothers me. Regex search depends almost
entirely on hardware for speed.
@@ -36,8 +36,8 @@ $ cd cgi-bin/
$ perl indexer.pl
```
-Indexer extracts HTML, lowercases, encodes into UTF-8 binary sequences. Null
-byte sentinel for document boundaries. sa.bin stores suffix offsets as
+Indexer extracts HTML, lowercases, and encodes into UTF-8 binary sequences.
+Null byte sentinel for document boundaries. sa.bin stores suffix offsets as
32-bit unsigned integers, sorted by lexicographical order:
```
@@ -120,7 +120,7 @@ Resource exhaustion and XSS attacks are inherent. Former mitigated by limiting
concurrent searches via lock-file semaphores. Query length (64B) and result set
(20) capped. All output is HTML-escaped to prevent XSS.
-Secure by default. Fast. Durable.
+Verdict: Fast. Durable. Secure by default.
Commit: <a
href="https://git.asciimx.com/www/commit/?h=term&id=6da102d6e0494a3eac3f05fa3b2cdcc25ba2754e"