Introduction
Introduction Statistics Contact Development Disclaimer Help
boston.conman.org.atom.xml - sfeed_tests - sfeed tests and RSS and Atom files
git clone git://git.codemadness.org/sfeed_tests
Log
Files
Refs
README
LICENSE
---
boston.conman.org.atom.xml (60119B)
---
1 <?xml version="1.0" encoding="UTF-8"?>
2 <feed xmlns="http://www.w3.org/2005/Atom">
3
4 <title>The Boston Diaries</title>
5 <updated>2023-02-24T08:41:07Z</updated>
6 <id>http://boston.conman.org/</id>
7
8 <link
9 rel = "self"
10 type = "application/atom+xml"
11 hreflang = "en-US"
12 href = "http://boston.conman.org/index.atom"
13 title = "The Boston Diaries"
14 />
15
16 <link
17 rel = "alternate"
18 type = "text/html"
19 hreflang = "en-US"
20 href = "http://boston.conman.org/"
21 title = "The Boston Diaries"
22 />
23
24 <author>
25 <name>Sean Conner</name>
26 <email>[email protected]</email>
27 <uri>http://www.conman.org/people/spc/</uri>
28 </author>
29
30 <generator uri="http://boston.conman.org/about/" version="mod_blog v52…
31 <rights>&#169; 1999-2023 by Sean Conner. All Rights Reserved</rights>
32
33 <entry>
34 <id>tag:boston.conman.org,2023-02-23:/2023/02/23.1</id>
35 <title type="text">A breakdown of the triple-star pointer</title>
36 <updated>2023-02-24T00:44:41Z</updated>
37 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
38 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
39 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
40 <category term="programming"/>
41 <category term="C programming"/>
42 <category term="char ***"/>
43 <category term="pointer to a pointer to a pointer"/>
44 <category term="C"/>
45
46 <content type="html">&lt;P&gt;I few days ago I read “&lt;A CLASS=&…
47 (via &lt;A CLASS=&quot;external&quot; HREF=&quot;https://lobste.rs/s/r8b…
48 and one of the problems of C stated stood out to me: “Avoid constructs…
49 pass around &lt;CODE&gt;char ***&lt;/CODE&gt; and it’s insane—almost…
50 do you need a pointer to a pointer to a pointer.”
51 Yes,
52 it happens,
53 but come on!
54 That doesn't happen often enough to complain about!&lt;/P&gt;
55
56 &lt;P&gt;And then I found one &lt;A CLASS=&quot;external&quot; HREF=&quo…
57
58 &lt;P&gt;Sigh.&lt;/P&gt;
59
60 &lt;P&gt;Okay,
61 at least I can explain why I needed a &lt;CODE&gt;char ***&lt;/CODE&gt;.
62 It's not insane,
63 and it's not impossible to comprehend why.
64 I'll start with &lt;CODE&gt;char *'&lt;/CODE&gt;.
65 In C,
66 that means “string”
67 (the exceptions are just that—exceptions).
68 We can replace &lt;CODE&gt;char *&lt;/CODE&gt; with &lt;CODE&gt;typedef …
69 leaving effectively &lt;CODE&gt;cstring **&lt;/CODE&gt;.&lt;/P&gt;
70
71 &lt;P&gt;Now,
72 when you see &lt;CODE&gt;char **&lt;/CODE&gt;,
73 say in &lt;CODE&gt;int main(int argc,char **argv)&lt;/CODE&gt;,
74 it generally has the meaning of an array of strings:
75 &lt;CODE&gt;int main(int argc,char *argv[])&lt;/CODE&gt;.
76 Sometimes it could mean just a pointer to a pointer,
77 but I'm using the “array of strings” meaning in my code.
78 Translated using the custom type I defined above,
79 &lt;CODE&gt;char **&lt;/CODE&gt; becomes becomes &lt;CODE&gt;cstring []&…
80 &lt;CODE&gt;char ***&lt;/CODE&gt; becomes &lt;CODE&gt;cstring *[]&lt;/CO…
81 And this idiom,
82 when it happens,
83 usually means the callee is going to allocate the memory for the array o…
84 Which is exactly what the function I wrote does.&lt;/P&gt;
85
86 &lt;P&gt;So when I expect a &lt;CODE&gt;char ***&lt;/CODE&gt; here,
87 what I'm asking for is a pointer to an array of strings
88 (aka character pointers or character arrays).
89 The only thing insane about this is the syntax,
90 and maybe the semantics
91 (pointers and arrays are near enough the same that it's dangerous)
92 but I've been working with C long enough that I just kind of accept it.&…
93
94 &lt;P&gt;Now,
95 just don't ask about &lt;CODE&gt;char ****&lt;/CODE&gt;—that's just si…
96 </content>
97 </entry>
98 <entry>
99 <id>tag:boston.conman.org,2023-02-16:/2023/02/16.1</id>
100 <title type="text">I guess now Bunny can add “upholsterer” to he…
101 <updated>2023-02-22T04:57:24Z</updated>
102 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
103 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
104 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
105 <category term="daily life"/>
106 <category term="repairs"/>
107 <category term="upholstry"/>
108
109 <content type="html">&lt;P&gt;A few weeks ago,
110 the top arm coverings of my office chair basically crumbled and fell off…
111
112 &lt;DIV CLASS=&quot;pf&quot;&gt;
113
114 &lt;IMG SRC=&quot;/2023/02/16/naked-chair.jpg&quot; WIDTH=&quot;400&quot…
115
116 &lt;/DIV&gt;
117
118 &lt;P&gt;The old coverings were some combination of rubber and plastic a…
119 they just became brittle or dried out,
120 and fell apart.
121 This exposed the underlying hard plastic frame underneath.
122 It wouldn't be that bad actually,
123 except for all the square holes,
124 used to both lessen the amount of hard plastic required,
125 and to give the old covers something to grip onto.&lt;/P&gt;
126
127 &lt;DIV CLASS=&quot;pf&quot;&gt;
128
129 &lt;IMG SRC=&quot;/2023/02/16/naked-arm.jpg&quot; WIDTH=&quot;400&quot; …
130
131 &lt;/DIV&gt;
132
133 &lt;P&gt;Resting my arms on the bare arm rests is uncomfortable—it's n…
134 but I can feel the square holes which is unpleasant,
135 and left a square pattern on my arms.
136 My idea was to take some foam and wrap some cloth type material around i…
137 But it was Bunny who made the new covers from material lying about Chez …
138
139 &lt;DIV CLASS=&quot;pf&quot;&gt;
140
141 &lt;IMG SRC=&quot;/2023/02/16/new-sleeve.jpg&quot; WIDTH=&quot;400&quot;…
142
143 &lt;/DIV&gt;
144
145 &lt;P&gt;It's basically a tube of cloth wrapping the foam, with some ext…
146 Here I am demonstrating how it works with my fingers.&lt;/P&gt;
147
148 &lt;DIV CLASS=&quot;pf&quot;&gt;
149
150 &lt;IMG SRC=&quot;/2023/02/16/flap.jpg&quot; WIDTH=&quot;400&quot; HEIGH…
151
152 &lt;/DIV&gt;
153
154 &lt;P&gt;The material has some stretch ability,
155 which helps to keep it on the arm rests.&lt;/P&gt;
156
157 &lt;DIV CLASS=&quot;pf&quot;&gt;
158
159 &lt;IMG SRC=&quot;/2023/02/16/clothed-chair.jpg&quot; WIDTH=&quot;400&qu…
160
161 &lt;/DIV&gt;
162
163 &lt;P&gt;It adds a nice bit of color to the chair,
164 and it's a lot more confortable than the old covering.
165 Nice job indeed!&lt;/P&gt;
166 </content>
167 </entry>
168 <entry>
169 <id>tag:boston.conman.org,2023-02-13:/2023/02/13.1</id>
170 <title type="text">The Nile is nice this time of year</title>
171 <updated>2023-02-15T20:49:44Z</updated>
172 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
173 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
174 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
175 <category term="daily life"/>
176 <category term="glasses"/>
177 <category term="new glasses"/>
178 <category term="Flexons"/>
179 <category term="eye glasses"/>
180 <category term="spectacles"/>
181 <category term="denial"/>
182 <category term="The Nile"/>
183
184 <content type="html">&lt;P&gt;On Friday,
185 February 3&lt;SUP&gt;rd&lt;/SUP&gt;,
186 I broke &lt;A CLASS=&quot;local&quot; HREF=&quot;/2004/05/10.1&quot;&gt;…
187 I was out and someone complemented me on my shades.
188 I pointed out that they were just clip on shades,
189 but I went further to show that my glasses were flexible.
190 That's when I snapped off the left arm of my glasses at the hinge.
191 In retrospect,
192 I should not have done that.&lt;/P&gt;
193
194 &lt;P&gt;But they were nineteen years old.
195 And it was clear to Bunny that I needed new glasses anyway.
196 As she keeps pointing out,
197 my glasses would slowly creep down my face,
198 but that was only to keep things in focus.
199 It had nothing to do with my eye sight changing.&lt;/P&gt;
200
201 &lt;P&gt;Nope.&lt;/P&gt;
202
203 &lt;P&gt;But now I had no excuse.
204 The next day I picked out new frames
205 (&lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.flexon.com/&quo…
206 same manufactorer as my old ones).
207 One of the store employees tried to fix my existing pair of glasses with…
208 and all I can say about that—it was an attempt.
209 The employee also managed to knock off the nose pad on the left side of …
210 (sigh)
211 so now the glasses were even less stable on my face than before.
212 I did manage to get an appointment for an eye exam on Monday the 6&lt;SU…
213
214 &lt;P&gt;Monday,
215 and I go for the exam.
216 Things were going well until the end,
217 when the doctor pointed out that it was time for me to get progressive l…
218 Or,
219 you know,
220 bifocals.&lt;/P&gt;
221
222 &lt;P&gt;No!
223 I am not that old!
224 I don't need bifocals!
225 I'm still only … um … oh … &lt;I&gt;mumblety-mum&lt;/I&gt; years o…
226
227 &lt;P&gt;Man,
228 the Nile is a nice place,
229 isn't it?&lt;/P&gt;
230
231 &lt;P&gt;I could expect the new glasses to be ready in seven to ten days…
232
233 &lt;P&gt;Eight days of my old glasses falling off my face
234 (and constantly adjusting them when they don't),
235 and my new glasses are ready.
236 With “progressive” lenses.
237 I have up to 30 days to decide if I like them,
238 and if I don't,
239 I can get … sigh … &lt;EM&gt;bifocals&lt;/EM&gt;.&lt;/P&gt;
240
241 &lt;DIV CLASS=&quot;pf&quot;&gt;
242
243 &lt;IMG SRC=&quot;/2023/02/13/glasses.jpg&quot; WIDTH=&quot;400&quot; HE…
244
245 &lt;/DIV&gt;
246
247 &lt;P&gt;The progressive lenses are &lt;EM&gt;weird&lt;/EM&gt;.
248 Parts of my peripheral vision are blurry.
249 If I move my head back and forth,
250 surfaces along the bottom of my glasses undulate in an unnerving manner.
251 Sometimes when I tilt my head,
252 it feels like
253 (to borrow a movie term)
254 a zoom-in but with improper focusing.
255 It's trippy,
256 but without the side effects of a bad drug trip.&lt;/P&gt;
257
258 &lt;P&gt;We'll see if I can get used to them.&lt;/P&gt;
259
260 &lt;P&gt;Oh,
261 and one more amusing fact about my new glasses—the lenses are so think…
262 that the arms don't fold down all the way.&lt;/P&gt;
263 </content>
264 </entry>
265 <entry>
266 <id>tag:boston.conman.org,2023-02-04:/2023/02/04.1</id>
267 <title type="text">Notes about an overheard conversation while drivi…
268 <updated>2023-02-05T00:48:40Z</updated>
269 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
270 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
271 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
272 <category term="overheard conversations"/>
273 <category term="driving"/>
274 <category term="around the bus"/>
275
276 <content type="html">&lt;P&gt;“Why the convoluted way home?” &lt…
277
278 &lt;P&gt;“Are you driving?” &lt;/P&gt;
279
280 &lt;P&gt;“No. I'm just curious.” &lt;/P&gt;
281
282 &lt;P&gt;“Because you told me to go around.” &lt;/P&gt;
283
284 &lt;P&gt;“I told you to get into the other lane to go around &lt;EM&gt…
285
286 &lt;P&gt;“No,
287 you just told me to go around.” &lt;/P&gt;
288
289 &lt;P&gt;“The bus.” &lt;/P&gt;
290
291 &lt;P&gt;“Around.
292 Besides,
293 this way, I don't have to take a left turn.” &lt;/P&gt;
294
295 &lt;P&gt;“Pththththththth.” &lt;/P&gt;
296
297 &lt;P&gt;“Argument of last resort, I see.” &lt;/P&gt;
298 </content>
299 </entry>
300 <entry>
301 <id>tag:boston.conman.org,2023-01-24:/2023/01/24.2</id>
302 <title type="text">Notes on a seriously first world problem</title>
303 <updated>2023-01-25T01:46:31Z</updated>
304 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
305 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
306 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
307 <category term="smart TVs"/>
308 <category term="foreign language interface"/>
309 <category term="modern technology"/>
310 <category term="first world problem"/>
311
312 <content type="html">&lt;P&gt;“채널 하나 둘 셋 …” &lt;/P…
313
314 &lt;P&gt;“Why is the TV speaking Korean?” &lt;/P&gt;
315
316 &lt;P&gt;“채널 하나 둘 넷 …” &lt;/P&gt;
317
318 &lt;P&gt;“I don't know.
319 It just started happening!” &lt;/P&gt;
320
321 &lt;P&gt;“채널 하나 둘 다섯 … ” &lt;/P&gt;
322
323 &lt;P&gt;“Let me see … wait!
324 The configuration menu is also in Korean!” &lt;/P&gt;
325
326 &lt;P&gt;“당연하지 …” &lt;/P&gt;
327
328 &lt;P&gt;“I guess we're just going to have to learn Korean.” &lt;/P&…
329
330 &lt;P&gt;“무아하하하하 …” &lt;/P&gt;
331 </content>
332 </entry>
333 <entry>
334 <id>tag:boston.conman.org,2023-01-24:/2023/01/24.1</id>
335 <title type="text">Notes on an overheard conversation about “Muskr…
336 <updated>2023-01-25T02:01:00Z</updated>
337 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
338 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
339 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
340 <category term="overheard conversations"/>
341 <category term="Captain and Tennille"/>
342 <category term="the Bionic Watermelon"/>
343
344 <content type="html">&lt;P&gt;“If you would have asked me who sang…
345 I wouldn't have been able to answer.” &lt;/P&gt;
346
347 &lt;P&gt;“Wow!
348 Captain and Tennille!
349 That takes me back.” &lt;/P&gt;
350
351 &lt;P&gt;“Me too.” &lt;/P&gt;
352
353 &lt;P&gt;“Do you want to know what else the Captain and Tennille remin…
354
355 &lt;P&gt;“What?” &lt;/P&gt;
356
357 &lt;P&gt;“The Bionic Watermelon.” &lt;/P&gt;
358
359 &lt;P&gt;“What?” &lt;/P&gt;
360
361 &lt;P&gt;“&lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.yout…
362
363 &lt;P&gt;“You are weird, sir.” &lt;/P&gt;
364
365 </content>
366 </entry>
367 <entry>
368 <id>tag:boston.conman.org,2023-01-23:/2023/01/23.1</id>
369 <title type="text">A few small differences</title>
370 <updated>2023-01-24T10:08:02Z</updated>
371 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
372 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
373 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
374 <category term="programming"/>
375 <category term="library design"/>
376 <category term="DNS"/>
377 <category term="mDNS"/>
378
379 <content type="html">&lt;P&gt;I received the following patch for &lt…
380
381 &lt;BLOCKQUOTE CITE=&quot;https://github.com/spc476/SPCDNS/pull/13#issue…
382
383 &lt;P&gt;I am hoping to use this library to encode and decode &lt;ABBR T…
384 responses. It seems that the &lt;ABBR TITLE=&quot;multicast Domain Name…
385 for a few small differences which I aim to add to this &lt;ABBR TITLE=&q…
386 them.&lt;/P&gt;
387
388 &lt;P CLASS=&quot;cite&quot;&gt;&lt;CITE&gt;&lt;A CLASS=&quot;external&q…
389 &lt;/BLOCKQUOTE&gt;
390
391
392 &lt;P&gt;Those “few small differences” turn out not to be so small.&…
393
394 &lt;P&gt;The main &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&…
395 The first are a bunch of flags,
396 defined in &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&lt;/ABB…
397 The first deals with “Questions Requesting Unicast Responses.”
398 Most flags are defined in the header section,
399 but for this,
400 it's “the top bit in the class field of a &lt;ABBR TITLE=&quot;Domain …
401 And because &lt;ABBR TITLE=&quot;multicast Domain Name Service&quot;&gt;…
402 it's seems like it could be set per-question,
403 and not per the request as a whole,
404 as the &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&lt;/ABBR&gt…
405 question, it indicates that the querier is willing to accept unicast
406 replies in response to this specific query, as well as the usual
407 multicast responses.”
408 To me,
409 that says,
410 “each resource record needs a flag for a unicast reponse.”
411 The other bit the “outdated cache entry” bit.
412 which again applies to individual resource records and not to the reques…
413 And again,
414 to me,
415 that says,
416 “each resoure record needs a flag to invalidate previously cached valu…
417
418 &lt;P&gt;How to handle this … well,
419 one way would be to a Boolean field to each resource record type to hide…
420 (which was the point in this library frankly).
421 But that can break existing code as the new fields will need initializat…
422
423 &lt;PRE CLASS=&quot;language-C&quot; TITLE=&quot;C&quot;&gt;
424 dns_question_t domain;
425
426 domain.name = host;
427 domain.type = RR_A;
428 domain.class = CLASS_IN;
429 domain.uc = true; /* we want unicast reply */
430
431 /* and the other flag */
432
433 dns_a_t addr;
434
435 addr.name = host;
436 addr.type = RR_A;
437 addr.class = CLASS_IN;
438 addr.ttl = 0;
439 addr.ic = true; /* invalidate cache data */
440 addr.address = address;
441 &lt;/PRE&gt;
442
443
444 &lt;P&gt;and document that the &lt;VAR&gt;uc&lt;/VAR&gt; and &lt;VAR&gt;…
445 if you aren't using &lt;ABBR TITLE=&quot;multicast Domain Name Service&q…
446 then they should be set to &lt;CODE&gt;false&lt;/CODE&gt;.&lt;/P&gt;
447
448 &lt;P&gt;Another approach is to leak protocol details and require the us…
449
450 &lt;PRE CLASS=&quot;language-C&quot; TITLE=&quot;C&quot;&gt;
451 /* We're making a query and want a unicast reply */
452 dns_question_t domain;
453
454 domain.name = host;
455 domain.type = RR_A;
456 domain.class = CLASS_IN | UNICAST_REPLY;
457
458 /* We're replying to a query and want to invalidate this record */
459 dns_a_t addr;
460
461 addr.name = host;
462 addr.type = RR_A;
463 addr.class = CLASS_IN | INVALIDATE_CACHE;
464 addr.ttl = 0;
465 addr.address = address;
466 &lt;/PRE&gt;
467
468
469 &lt;P&gt;And that's a less-breaking change,
470 but on the decoding side,
471 I still need some form of flag in the structure to indicate these flags …
472
473 &lt;P&gt;I'm not sure which approach is best.
474 The first does a better job of hiding the &lt;ABBR TITLE=&quot;Domain Na…
475 but breaks more code.
476 The second is less breaking,
477 as I could ignore any cache flags on encoding,
478 but it leaks details of &lt;ABBR TITLE=&quot;Domain Name Service&quot;&g…
479 I tend to favor the first but I really dislike the breaking aspect of it.
480 And That's just the first &lt;ABBR TITLE=&quot;Request For Comment&quot;…
481
482 &lt;P&gt;The other &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC…
483 The &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&lt;/ABBR&gt; t…
484 &lt;A CLASS=&quot;local&quot; HREF=&quot;https://www.ietf.org/rfc/rfc103…
485 describes the format for a text resource record,
486 but is silent as to semantics.&lt;/P&gt;
487
488 &lt;P&gt;Individual resource records come with a 16-bit length,
489 so in theory,
490 a resource record could be up to 65535 bytes in size,
491 but it's rare to get a record that size.
492 The base type of a text resource record is a “string.”
493 and &lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&lt;/ABBR&gt;-1…
494 followed by that many bytes as the contents.
495 The length of a “string” is defined as one byte,
496 which limits the length of 255 bytes in size.
497 This means,
498 in practice,
499 that a text resource record can contain several “strings.”
500
501 &lt;P&gt;How SPCDNS handles this now is that I assume a text resource re…
502
503 &lt;PRE CLASS=&quot;language-C&quot; TITLE=&quot;C&quot;&gt;
504 typedef struct dns_txt_t /* RFC-1035 */
505 {
506 char const *name;
507 dns_type_t type;
508 dns_class_t class;
509 TTL ttl;
510 size_t len;
511 char const *text;
512 } dns_txt_t;
513 &lt;/PRE&gt;
514
515
516 &lt;P&gt;When encoding such a record,
517 I break the given string into as few &lt;ABBR TITLE=&quot;Domain Name Se…
518 Give this a 300 byte string,
519 and you get two &lt;ABBR TITLE=&quot;Domain Name Service&quot;&gt;DNS&lt…
520 one being 255 byte long, and the other one 45 bytes long.
521 Upon decoding,
522 all the strings in a single text resource record are concatenated into a…
523 As I said,
524 &lt;ABBR TITLE=&quot;Domain Name Service&quot;&gt;DNS&lt;/ABBR&gt;-1035 …
525 and I did what I felt was best.&lt;/P&gt;
526
527 &lt;P&gt;&lt;ABBR TITLE=&quot;Request For Comment&quot;&gt;RFC&lt;/ABBR&…
528
529 &lt;PRE CLASS=&quot;language-data&quot; TITLE=&quot;data&quot;&gt;
530 Apple TV - Office._airplay._tcp.local. 10 IN TXT…
531 &quot;acl=0&quot;
532 &quot;btaddr=00:00:00:00:00:00&quot;
533 &quot;deviceid=A8:51:AB:10:21:AE&quot;
534 &quot;fex=1d9/St5/FbwooQ&quot;
535 &quot;features=0x4A7FDFD5,0xBC157FDE&quot;
536 &quot;flags=0x18644&quot;
537 &quot;gid=F014C3FF-1420-4374-81DE-237CD6892579&quot;
538 &quot;igl=1&quot;
539 &quot;gcgl=1&quot;
540 &quot;model=AppleTV14,1&quot;
541 &quot;protovers=1.1&quot;
542 &quot;pi=c6fe9e6e-cec2-44c8-9c66-8994c6ad47&quot;
543 &quot;depsi=4A342DB4-3A0C-47A6-9143-9F6BF83F0EDD&quot;
544 &quot;pk=5ab1ac3988a6a358db0a6e71a18d31b8d525ec30ce81a4b7b20f263…
545 &quot;srcvers=670.6.2&quot;
546 &quot;osvers=16.2&quot;
547 &quot;vv=2&quot;
548 )
549 &lt;/PRE&gt;
550
551
552 &lt;P&gt;I have to admit,
553 this is ingenious—each &lt;ABBR TITLE=&quot;Domain Name Service&quot;&…
554 But I did not see this use at all.&lt;/P&gt;
555
556 &lt;P&gt;I wonder how much code out there dealing with &lt;ABBR TITLE=&q…
557 would treat these records:&lt;/P&gt;
558
559 &lt;PRE CLASS=&quot;language-DNS&quot; TITLE=&quot;DNS&quot;&gt;
560 IN TXT &quot;v=spf1 +mx +ip4:71.19.142.20/32 -all&…
561 IN TXT &quot;google-site-verification=&lt;SPAN CLA…
562 &lt;/PRE&gt;
563
564
565 &lt;P&gt;the same way as:&lt;/P&gt;
566
567 &lt;PRE CLASS=&quot;language-DNS&quot; TITLE=&quot;DNS&quot;&gt;
568 IN TXT (
569 &quot;v=spf1 +mx +ip4:71.19.142.20/32 -all&quot;
570 &quot;google-site-verification=&lt;SPAN CLASS=&quot;cut&…
571 )
572 &lt;/PRE&gt;
573
574
575 &lt;P&gt;The first returns two text resource records,
576 each consisting of a single &lt;ABBR TITLE=&quot;Domain Name Service&quo…
577 the second one text resource record but with two &lt;ABBR TITLE=&quot;Do…
578 My gut feeling is “not many would deal with the second format” but I…
579
580 &lt;P&gt;And changing how I deal with text resource records in SPCDNS wo…
581
582 &lt;P&gt;This is one change I really don't know how to approach.&lt;/P&g…
583 </content>
584 </entry>
585 <entry>
586 <id>tag:boston.conman.org,2023-01-19:/2023/01/19.1</id>
587 <title type="text">The good news? Somebody wants to use my blogging…
588 <updated>2023-01-20T05:58:02Z</updated>
589 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
590 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
591 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
592 <category term="mod_blog"/>
593 <category term="blogging"/>
594 <category term="documentation"/>
595 <category term="program assumptions"/>
596 <category term="assumptions in mod_blog"/>
597
598 <content type="html">&lt;P&gt;Over the 23 year history of &lt;CODE&g…
599 I've given up on the notion of anyone other than me using it.
600 There was only one other person who used it for just a few months before…
601 So it was completely by surprise that I recently received &lt;A CLASS=&q…
602
603 &lt;P&gt;Oh my … someone else is trying to use it.&lt;/P&gt;
604
605 &lt;P&gt;I never did fully document it.
606 And there are,
607 as I'm finding,
608 an amazing number of things I'm assuming about the environment,
609 such as:&lt;/P&gt;
610
611 &lt;UL&gt;
612
613 &lt;LI&gt;&lt;P&gt;That it's running under &lt;A CLASS=&quot;ext…
614 I do make use of the environment variable &lt;CODE&gt;$D…
615 which technically is Apache specific
616 (per the &lt;ABBR TITLE=&quot;Common Gateway Interface&q…
617 and,
618 as I found out over the years,
619 the variables &lt;CODE&gt;$REDIRECT_REMOTE_USER&lt;/CODE…
620 Other web servers might not define those,
621 or might work differently.
622 I don't know,
623 I only have ever used &lt;CODE&gt;mod_blog&lt;/CODE&gt; …
624
625 &lt;LI&gt;&lt;P&gt;How to configure Apache to run &lt;CODE&gt;mo…
626 I wanted to hide the fact that I'm running a &lt;ABBR TI…
627 not for “security-through-obscurity” reasons,
628 but for “easy to understand and modify the &lt;ABBR TI…
629 I think &lt;ABBR TITLE=&quot;Uniform Resource Locator&qu…
630 (and nevermind the hideousness of &lt;CODE&gt;https://bo…
631 The other benefit is that if I ever do get around to mak…
632 (which was my original intent)
633 &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.…
634
635 &lt;P&gt;As such,
636 I use Apache's &lt;CODE&gt;&lt;A CLASS=&quot;external&qu…
637 The code base also assumes this as it relies upon the en…
638 which isn't a given,
639 depending upon how a &lt;ABBR TITLE=&quot;Common Gateway…
640
641 &lt;LI&gt;&lt;P&gt;The environment variable &lt;CODE&gt;$BLOG_CO…
642 The configuration file can be either specified via the c…
643 I added the environment to avoid having to embed the loc…
644 And again,
645 this comes back to the previous point—how to configure…
646 I also have it set in my own environment
647 (command line)
648 as it makes it easy to test.
649 It also makes it easy to fix spelling mistakes on the se…
650 which leads into the next point.&lt;/P&gt;&lt;/LI&gt;
651
652 &lt;LI&gt;&lt;P&gt;All the files used by &lt;CODE&gt;mod_blog&lt…
653 My blog is,
654 as far as I can tell,
655 unique in that I can send in posts via email,
656 in addition to a web page.
657 Email support,
658 for me,
659 was non-negotiable.
660 I get to use my preferred editor for writing,
661 and by posting it via email,
662 everything is handled automatically.
663 I'm not aware of any other blogging system set up this w…
664 and this is only viable because I run my own email serve…
665
666 &lt;P&gt;The issue becomes one of permissions.
667 The web server runs as its own user.
668 Email is delivered as the user of the recipient.
669 Both can add new posts.
670 I solved that issue my making &lt;CODE&gt;mod_blog&lt;/C…
671 (it's “setuid” for the technically proficient).
672 This means I don't have to make a bunch of files world w…
673 I can make edits on the files directly as me.
674 I can add entries via the web,
675 email,
676 or as a file from the command line
677 (which &lt;CODE&gt;mod_blog&lt;/CODE&gt; also supports).…
678
679 &lt;/UL&gt;
680
681 &lt;P&gt;And that's just off the top of my head.
682 There's probably more assumptions made that I'm just not thinking of.
683 It's issues like these where one can spend 90% of the time writing 90% o…
684 and then spend another 90% of the time writing the final 10% of the code…
685
686 &lt;P&gt;I'm also amused by the timing.
687 Back in August,
688 I removed a ton of optional code that I never used,
689 and because no one else was using &lt;CODE&gt;mod_blog&lt;/CODE&gt;,
690 it was just sitting there untested.
691 And now someone wants to use the code.&lt;/P&gt;
692
693 &lt;P&gt;Heh.&lt;/P&gt;
694
695 &lt;P&gt;But also, gulp!
696 I've got 23 years of experience with the code,
697 so I know all the ins and outs of using it.
698 Documenting this?
699 So someone else can use this?
700 Good lord!&lt;/P&gt;
701 </content>
702 </entry>
703 <entry>
704 <id>tag:boston.conman.org,2023-01-16:/2023/01/16.1</id>
705 <title type="text">The other SFTP that never was</title>
706 <updated>2023-01-17T02:44:59Z</updated>
707 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
708 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
709 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
710 <category term="RFC-913"/>
711 <category term="Simple File Transfer Protocol"/>
712 <category term="SFTP"/>
713 <category term="Internet protocols"/>
714
715 <content type="html">&lt;P&gt;For reasons,
716 I'm doing some research into the history of &lt;ABBR TITLE=&quot;File Tr…
717 Only this isn't the &lt;A CLASS=&quot;external&quot; HREF=&quot;https://…
718 but instead the &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.…
719 Unlike &lt;ABBR TITLE=&quot;Trivial File Transport Protocol&quot;&gt;TFT…
720 it uses &lt;ABBR TITLE=&quot;Transmission Control Protocol&quot;&gt;TCP&…
721 and unlike &lt;ABBR TITLE=&quot;File Transport Protocol&quot;&gt;FTP&lt;…
722 it only uses a single network connection.&lt;/P&gt;
723
724 &lt;P&gt;But this bit is why I'm writing about this:&lt;/P&gt;
725
726 &lt;BLOCKQUOTE&gt;
727
728 &lt;H4&gt;Random Access&lt;/H4&gt;
729
730 &lt;P&gt;Pro: Wouldn't it be nice if (WIBNIF) SFTP had a way of
731 accessing parts of a file?&lt;/P&gt;
732
733 &lt;P&gt;Con: Forget it, this is supposed to be SIMPLE file transfer.
734 If you need random access use real &lt;ABBR TITLE=&quot;File Transport P…
735 have random access either – invent another protocol?).&lt;/P&gt;
736
737 &lt;P&gt;Resolution: I have not made any provision for Random Access.&l…
738
739 &lt;/BLOCKQUOTE&gt;
740
741 &lt;P&gt;That “other protocol” would take several more years to be i…
742 and then take over the networking world.&lt;/P&gt;
743 </content>
744 </entry>
745 <entry>
746 <id>tag:boston.conman.org,2023-01-12:/2023/01/12.1</id>
747 <title type="text">It's probably a good thing some malformed URLs ar…
748 <updated>2023-01-13T04:01:30Z</updated>
749 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
750 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
751 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
752 <category term="testing"/>
753 <category term="debugging"/>
754 <category term="URLs"/>
755 <category term="malformed URLs"/>
756
757 <content type="html">&lt;P&gt;It seems it's all too easy to generate…
758 because I received via email a report that my
759 &lt;A CLASS=&quot;local&quot; HREF=&quot;/bostondiaries.rss&quot;&gt;cur…
760 &lt;A CLASS=&quot;local&quot; HREF=&quot;/index.atom&quot;&gt;feed&lt;/A…
761 &lt;A CLASS=&quot;local&quot; HREF=&quot;/index.json&quot;&gt;files&lt;/…
762 all had that issue.&lt;/P&gt;
763
764 &lt;P&gt;Sigh.&lt;/P&gt;
765
766 &lt;P&gt;I made a change a few months ago in how I internally store the …
767 It used to be that I did not store the trailing slash
768 (so that &lt;CODE&gt;&quot;https://boston.conman.org/&quot;&lt;/CODE&gt;…
769 so I had code to keep adding it back in when generating links.
770 I changed the code to store the tailing slash,
771 but missed one section of code because I don't subscribe to any of my fe…
772
773 &lt;P&gt;I also fixed an actual crashing bug.
774 All I have to say about that is that web robots are quite good at genera…
775 Woo hoo!
776 &lt;EM&gt;Sob!&lt;/EM&gt; &lt;/P&gt;
777 </content>
778 </entry>
779 <entry>
780 <id>tag:boston.conman.org,2023-01-11:/2023/01/11.1</id>
781 <title type="text">It's apparently a valid URL, despite it being mal…
782 <updated>2023-01-11T21:35:07Z</updated>
783 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
784 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
785 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
786 <category term="URLs"/>
787 <category term="parsing URLs"/>
788 <category term="WhatWG living standard"/>
789 <category term="bug"/>
790
791 <content type="html">&lt;P&gt;I've had a &lt;A CLASS=&quot;local&quo…
792 Lobsters supports &lt;A CLASS=&quot;external&quot; HREF=&quot;https://ww…
793 yet I never received a webmention for those two posts.
794 I checked the logs and yes,
795 they were received but I rejected them with a “bad request.”
796 It took a bit of sleuthing,
797 but I found the root cause—the &lt;ABBR TITLE=&quot;Uniform Resource L…
798 accoring to my code,
799 invalid.
800 Lobsters was sending in a &lt;ABBR TITLE=&quot;Uniform Resource Locator&…
801 My code was having none of that.&lt;/P&gt;
802
803 &lt;P&gt;I'm not sure why Lobsters was sending a &lt;ABBR TITLE=&quot;Un…
804 but when I checked &lt;A CLASS=&quot;external&quot; HREF=&quot;https://l…
805 As it's considered valid by the &lt;A CLASS=&quot;external&quot; HREF=&q…
806 I ended up having to accept what I consider a malformed &lt;ABBR TITLE=&…
807
808 &lt;P&gt;Sigh.&lt;/P&gt;
809 </content>
810 </entry>
811 <entry>
812 <id>tag:boston.conman.org,2023-01-09:/2023/01/09.1</id>
813 <title type="text">An epiphany about bloated web pages might be the …
814 <updated>2023-01-17T06:30:14Z</updated>
815 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
816 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
817 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
818 <category term="networks"/>
819 <category term="dumb networks"/>
820 <category term="smart networks"/>
821 <category term="Internet"/>
822 <category term="telephony"/>
823 <category term="the web"/>
824 <category term="C2 Wiki"/>
825 <category term="John Carmack quote"/>
826
827 <content type="html">&lt;P&gt;I was scared by an epiphany I had the …
828 But before I get to the quote and the ephiphany,
829 I need to give some background to understand where I was,
830 and where I am.&lt;/P&gt;
831
832 &lt;P&gt;First,
833 for the years I was working for The Corporation
834 (and later,
835 The Enterprise),
836 I was in essense,
837 working in telephony networking,
838 and I was never a fan of telephony networking
839 (the &lt;A CLASS=&quot;local&quot; HREF=&quot;/2012/01/31.1&quot;&gt;Pro…
840
841 &lt;P&gt;Basically,
842 the paradigm in telephony is a “smart network” and a “dumb edge.”
843 All the “intelligence” of an application on telephony is on the netw…
844 In the old days,
845 this was an on-off switch,
846 a microphone and a speaker.
847 Later models this device included a tone generator.
848 So any features needed to be handled on the network side because the end…
849 (the “edge”)
850 was incapable of doing much at all.
851 If a person wants a new feature,
852 they have to get it implemented on the entire network,
853 or it's effectively not supported at all
854 (because there's not much one can do with an on-off switch,
855 speaker,
856 microphone and a tone generator).&lt;/P&gt;
857
858 &lt;P&gt;Contrast this with the Internet—it's a “dumb network” wit…
859 not concerning itself with the contents.
860 The “edge” in this case is (was?) a general purpose computer that ca…
861 So if a person wants a new feature,
862 all that's needed is a program on at least two endpoints and said featur…
863 as long as the “dumb network” can do its job and sling the data betw…
864 Want an alternative to the web?
865 &lt;A CLASS=&quot;external&quot; HREF=&quot;https://gemini.circumlunar.s…
866 Want an alternative to &lt;ABBR TITLE=&quot;Internet Relay Chat&quot;&gt…
867 &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.lifewire.com/wha…
868 &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.jabber.org/&quot…
869 &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.signal.org/&quot…
870
871 &lt;P&gt;Second,
872 I have always had a hard time understanding why people keep insisting on…
873 when the user is already using a web browser has already been written to…
874 The poster child for this
875 (in my opinion)
876 is the &lt;A CLASS=&quot;external&quot; HREF=&quot;https://wiki.c2.com/&…
877 a large repository of programming wisdom,
878 that,
879 for whatever reason,
880 Ward Cunningham
881 (creator of the site)
882 felt that a normal web browser wasn't good enough to browse a text-only …
883 He's free to do so,
884 but I find it annoying that I can no longer read a site I enjoyed
885 (and even contributed to),
886 just because I haven't updated my browser for the past twenty minutes.
887 I'm not even asking to participate in editing the site any more,
888 I just want to &lt;EM&gt;read&lt;/EM&gt; it!&lt;/P&gt;
889
890 &lt;P&gt;And finally we get to the John Carmack quote:&lt;/P&gt;
891
892 &lt;BLOCKQUOTE CITE=&quot;https://twitter.com/id_aa_carmack/status/13506…
893
894 &lt;P&gt;It is amusing to consider how much of the world you cou…
895 something like Twitter to from a single beefy server if it really
896 was just shuffling tweet sized buffers to network offload cards.
897 Smart clients instead of web pages could make a very large
898 difference.&lt;/P&gt;
899
900 &lt;P CLASS=&quot;cite&quot;&gt;&lt;CITE&gt;&lt;A CLASS=&quot;ex…
901
902 &lt;/BLOCKQUOTE&gt;
903
904 &lt;P&gt;Oh crap.&lt;/P&gt;
905
906 &lt;P&gt;“Smart clients”—“smart edge.” &lt;/P&gt;
907
908 &lt;P&gt;“Web pages”—“data.” &lt;/P&gt;
909
910 &lt;P&gt;My dislike of the Portland Pattern Repository just got ran over…
911
912 &lt;P&gt;Ward Cunningham wants a smarter edge to view his site
913 (and to “improve server performance” if you read the comments in the…
914 and I can't begrudge him that—&lt;EM&gt;I&lt;/EM&gt; like smart edges!
915 It makes more sense to me than a smart network.
916 But at the same time,
917 I want a web site to just return text to a “dumb browser,”
918 even if the browser I'm using is not particularly dumb.&lt;/P&gt;
919
920 &lt;P&gt;Do we,
921 in fact,
922 have too much intelligence in web servers?
923 Do we want to push all the intelligence to the client?
924 Do I have to reconcile my love of simple web clients and intelligent web…
925 (And to spell it out—the “network” in this analogy is the web serv…
926 Where does the simplicity need to reside?&lt;/P&gt;
927 </content>
928 </entry>
929 <entry>
930 <id>tag:boston.conman.org,2023-01-08:/2023/01/08.1</id>
931 <title type="text">Today's date happens more frequently on Sunday th…
932 <updated>2023-01-08T05:25:22Z</updated>
933 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
934 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
935 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
936 <category term="frequency of dates on days of weeks"/>
937 <category term="somebody's birthday"/>
938
939 <content type="html">&lt;P&gt;&lt;A CLASS=&quot;local&quot; HREF=&qu…
940 I posted that January 8&lt;SUP&gt;th&lt;/SUP&gt; is less like to occur o…
941 At the time,
942 I just accepted it,
943 but when I recently came across that post a few days ago,
944 I figured I should actually see if that's true.
945 I ran the numbers from 1583
946 (the first full year under the Gregorian calendar) to now:&lt;/P&gt;
947
948 &lt;TABLE&gt;
949 &lt;CAPTION&gt;Number of times January 8&lt;SUP&gt;th&lt;/SUP&gt; fell…
950 &lt;TBODY&gt;
951 &lt;TR&gt;&lt;TD&gt;Sunday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;&g…
952 &lt;TR&gt;&lt;TD&gt;Friday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;&g…
953 &lt;TR&gt;&lt;TD&gt;Tuesday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;&…
954 &lt;TR&gt;&lt;TD&gt;Wednesday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot…
955 &lt;TR&gt;&lt;TD&gt;Thursday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;…
956 &lt;TR&gt;&lt;TD&gt;Saturday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;…
957 &lt;TR&gt;&lt;TD&gt;Monday&lt;/TD&gt; &lt;TD CLASS=&quot;num&quot;&g…
958 &lt;/TBODY&gt;
959 &lt;/TABLE&gt;
960
961
962 &lt;P&gt;What are the odds I'd find this result on a Sunday?
963 &lt;SPAN CLASS=&quot;comments&quot;&gt;[High, given your results. —Edi…
964 &lt;SPAN CLASS=&quot;comments&quot;&gt;[Har har. —Sean]&lt;/SPAN&gt;
965 I was expecting the results to be nearly equal.
966 I also find it funny that the actual average,
967 63,
968 happens on Wednesday,
969 the most average day of the week
970 (you see, Wednesday being in the middle of the week and the average is �…
971 I wonder what causes this?&lt;/P&gt;
972 </content>
973 </entry>
974 <entry>
975 <id>tag:boston.conman.org,2023-01-06:/2023/01/06.1</id>
976 <title type="text">“The street finds its own uses for things.”</…
977 <updated>2023-01-09T03:18:26Z</updated>
978 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
979 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
980 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
981 <category term="Gemini"/>
982 <category term="toxic Gemini community"/>
983 <category term="naysayers"/>
984 <category term="Gemini support"/>
985 <category term="William Gibson quote"/>
986
987 <content type="html">&lt;P&gt;There's a little bit of pushback on th…
988 Sandra wrote:&lt;/P&gt;
989
990 &lt;BLOCKQUOTE CITE=&quot;gemini://idiomdrottning.org/gem-mentions&quot;…
991
992 &lt;P&gt;I had Atom and was pretty happy with that and people we…
993 “why don’t you implement Gemini too” and I did and it was …
994 a half because back then almost no Gemini server supported diffe…
995 languages for different pages without serious hoops and then gmi…
996 and then broken redirects and then dir traversal and then this a…
997 then that and then the other and after a while it’s all hackin…
998 no writing.&lt;/P&gt;
999
1000 &lt;P&gt;…&lt;/P&gt;
1001
1002 &lt;P&gt;I really, really don’t wanna implement this and that …
1003 there’s a non-zero amount of grumpy grognards who don’t wann…
1004 (in which case you’re gonna have to use the other methods anyw…
1005 like Cosmos), so there’s no point in doing it, or I’m gonna …
1006 dragged kicking and screaming into doing it which I really hope …
1007 not happen.&lt;/P&gt;
1008
1009 &lt;P&gt;I think bacardi55 is cool and I haven’t wanted to say…
1010 the project out of the “if you can’ [sic] say anything nice�…
1011 but then it seemed as if it were picking up steam and getting
1012 implemented.&lt;/P&gt;
1013
1014 &lt;P CLASS=&quot;cite&quot;&gt;&lt;CITE&gt;&lt;A CLASS=&quot;ex…
1015
1016 &lt;/BLOCKQUOTE&gt;
1017
1018 &lt;P&gt;I'm not familiar with the “was a bee and a half” idiom,
1019 but I suspect it means something like “annoying,”
1020 given the context.
1021 And if supporting Gemini was “annoying” then why even continue with …
1022 The issues brought up,
1023 like the lack of per-page language support,
1024 were found by people trying to use Gemini,
1025 finding issues,
1026 and solving the issues.
1027 It would have been easy for most of the issues to be ignored,
1028 thanks to Gemini's “simplicity of implementatin &lt;SPAN LANG=&quot;de…
1029 That would not have been a good idea long term,
1030 and thus,
1031 Gemini gets complex.&lt;/P&gt;
1032
1033 &lt;P&gt;And Gemini mentions aren't mandatory,
1034 just like not every website supports &lt;A CLASS=&quot;external&quot; HR…
1035 Don't like it?
1036 Don't bother with it.
1037 Taken to the limit,
1038 “I really hope does not happen” applied to Gemini means Gemini doesn…
1039 (and there are plenty of people who questioned the concept of Gemini).&l…
1040
1041 &lt;P&gt;And as bacardi55 said:&lt;/P&gt;
1042
1043 &lt;BLOCKQUOTE CITE=&quot;gemini://gmi.bacardi55.io/gemlog/2022/02/28/wh…
1044
1045 &lt;P&gt;The main reason I &quot;jumped&quot; into this &quot;is…
1046
1047 &lt;P CLASS=&quot;cite&quot;&gt;&lt;CITE&gt;&lt;A CLASS=&quot;ex…
1048
1049 &lt;/BLOCKQUOTE&gt;
1050
1051 &lt;P&gt;If others find it useful,
1052 so be it.
1053 &lt;!-- And at times, I find the Gemini community to be rather toxic. I…
1054 As William Gibson said: “The street finds its own uses for things.”
1055 Besides,
1056 given my past experience with the Gemini community&lt;!-- who tend to cr…
1057 I think there will be only two sites supporting Gemini mentions.&lt;/P&g…
1058 </content>
1059 </entry>
1060 <entry>
1061 <id>tag:boston.conman.org,2023-01-04:/2023/01/04.1</id>
1062 <title type="text">Thoughts on an implementation of Gemini mentions<…
1063 <updated>2023-01-04T21:09:54Z</updated>
1064 <link rel="alternate" type="text/html" hreflang="en-US" href="http…
1065 <link rel="alternate" type="text/gemini" hreflang="en-US" href="gemi…
1066 <link rel="alternate" type="text/plain" hreflang="en-US" href="goph…
1067 <category term="programming"/>
1068 <category term="Gemini mentions"/>
1069
1070 <content type="html">&lt;P&gt;The &lt;A CLASS=&quot;local&quot; HREF…
1071 Now that I've implemented it for my Gemini site
1072 (the &lt;A CLASS=&quot;site&quot; HREF=&quot;gemini://gemini.conman.org/…
1073 &lt;A CLASS=&quot;external&quot; HREF=&quot;gemini://gmi.bacardi55.io/ge…
1074
1075 &lt;P&gt;First, having the location locked to &lt;CODE&gt;/.well-known/m…
1076 but it doesn't work that well for sites that host multiple users under a…
1077 Alice who has pages under &lt;CODE&gt;gemini://example.com/alice/&lt;/CO…
1078 So might Dave under &lt;CODE&gt;gemini://example.com/dave/&lt;/CODE&gt;.
1079 Bob,
1080 who has pages under &lt;CODE&gt;gemini://example.com/bob/&lt;/CODE&gt; d…
1081 nor does Carol,
1082 under &lt;CODE&gt;gemini://example.com/carol/&lt;/CODE&gt;.
1083 How to manage &lt;CODE&gt;gemini://example.com/.well-known/mentions&lt;/…
1084 and the other half don't?
1085 Having the ability to specify individual endpoints,
1086 say with a &lt;ABBR TITLE=&quot;Common Gateway Interface&quot;&gt;CGI&lt…
1087 would at least let Alice and Dave participate without having to bug the …
1088
1089 &lt;P&gt;Second,
1090 not every person may want to have every page to receive a mention.
1091 I know I don't—I want to restrict mentions to the blog portion of my G…
1092 The proposal only states that “a capsule owner MUST implement a basic …
1093 but it says nothing about limiting what pages can be the target of a men…
1094 I suppose having a link to &lt;CODE&gt;/.well-known/mentions&lt;/CODE&gt…
1095 but the implication is that the endpoint link doesn't have to be mention…
1096 For now,
1097 I just filter requests to my blog entries and for other pages I return a…
1098
1099 &lt;P&gt;Third,
1100 I'm still unsure about sending a single &lt;ABBR TITLE=&quot;Uniform Res…
1101 My implementation does scan the given &lt;ABBR TITLE=&quot;Uniform Resou…
1102 and will grab the first link that matches a blog entry from the &lt;ABBR…
1103 (and ignores other links to my Gemini site—see point above).
1104 Sending in two links,
1105 as in a &lt;A CLASS=&quot;external&quot; HREF=&quot;https://www.w3.org/T…
1106
1107 &lt;P&gt;Fourth,
1108 I don't check for the “RE:” in the link text as I don't think it's n…
1109 The specification implies it has to be “RE:”
1110 (in all caps),
1111 but I can see “Re:” and “re:” being used as well,
1112 because humans are going to human and be lazy
1113 (or trollish and use “rE:” just to mess with people; or not include …
1114 all).&lt;/P&gt;
1115
1116 &lt;P&gt;I also did a &lt;A CLASS=&quot;site&quot; HREF=&quot;gemini://g…
1117 (and the &lt;A CLASS=&quot;site&quot; HREF=&quot;gemini://gemini.conman.…
1118 I guess I'll see which one becomes more popular.&lt;/P&gt;
1119 </content>
1120 </entry>
1121
1122
1123 </feed>
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.