Introduction
Introduction Statistics Contact Development Disclaimer Help
boston.conman.org.rss.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.rss.xml (37448B)
---
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <rss version="0.91">
3
4 <!-- ========================================== -->
5 <!-- Note, there is no AUTHOR tag in this DTD -->
6 <!-- neither in rss-0.92 ... -->
7 <!-- ========================================== -->
8
9 <channel>
10 <title>The Boston Diaries</title>
11 <link>http://boston.conman.org/</link>
12 <description>
13 The on going saga of a programmer who doesn't live in Boston, nor
14 does he even like Boston, but yet named his weblog/journal
15 &#8220;The Boston Diaries.&#8221;
16 </description>
17 <language>en-us</language>
18 <pubDate>Fri, 13 May 2022 05:18:05 GMT</pubDate>
19 <managingEditor>[email protected] (Sean Conner)</managingEditor>
20 <webMaster>[email protected] (Sean Conner)</webMaster>
21 <copyright>
22 Copyright 1999-2022 by Sean Conner. All Rights Reserved.
23 </copyright>
24
25 <item>
26 <title>Programming, up hill, both ways</title>
27 <!-- <author>Sean Conner</author> -->
28 <link>http://boston.conman.org/2022/05/12.2</link>
29 <description>
30 <![CDATA[
31 <BLOCKQUOTE CITE="https://justinjackson.ca/webmaster/" TITLE="I'…
32
33 <P>People would come to us with a <B>problem,</B> and we would
34 figure out a solution. We couldn't just search the web <B>becau…
35 the web was still being written.</B> And you couldn't just punt a
36 hard question to the engineer in the desk next to you. Why?
37 Because you were sitting alone in a utility closet packed with
38 floppy disks and old tape drives.</P>
39
40 <P CLASS="cite"><CITE><A CLASS="external" HREF="https://justinja…
41
42 </BLOCKQUOTE>
43
44 <P>Ah,
45 this takes me back.
46 I got my first computer back in 1984,
47 and if I wanted to know anything about it I was on my own.
48 Google didn't exist
49 (the public Internet didn't exist at the time).
50 I didn't have anyone I could ask about computer related things.
51 I did have books and magazines.
52 So between experimentation and learning to read between the lines,
53 I picked up programming.</P>
54
55 <P>So when it came time to write a <A CLASS="site" HREF="http://www.conm…
56 there were no tutorials.
57 There were no open source metasearch engines to download and use.
58 There was only the problem of writing a metasearch engine,
59 <A CLASS="site" HREF="http://www.conman.org/people/spc/refs/search/searc…
60 (and which itself was less than a year old at the time).</P>
61
62 <P>Fun times.</P>
63
64 <P>So I always found it odd when people would go online asking for tutor…
65 <EM>especially</EM> for writing metasearch engines
66 (and yes, that did happen back then).
67 So when something like <A CLASS="local" HREF="/2021/06/07.3">testing a n…
68 and I can't convince the Powers That Be that it's never a good idea to p…
69 I can't just look up some tutorial on proving negatives—I just have to…
70
71 ]]>
72 </description>
73 </item>
74
75 <item>
76 <title>“This is how we do things around here.”</title>
77 <!-- <author>Sean Conner</author> -->
78 <link>http://boston.conman.org/2022/05/12.1</link>
79 <description>
80 <![CDATA[
81 <BLOCKQUOTE CITE="https://logicmag.io/clouds/agile-and-the-long-…
82
83 <P>And, in fact, anyone with any proximity to software development has l…
84 heard rumblings about Agile. For all the promise of the manifesto, one
85 starts to get the sense when talking to people who work in technology th…
86 laboring under Agile may not be the liberatory experience it’s billed …
87 Indeed, software development is in crisis again—but, this time, it’s…
88 Agile crisis. On the web, everyone from regular developers to some of t…
89 original manifesto authors is raising concerns about Agile practices. T…
90 talk about the “Agile-industrial complex,” the network of consultant…
91 speakers, and coaches who charge large fees to fine-tune Agile processes…
92 And almost everyone complains that Agile has taken a wrong turn: somewhe…
93 in the last two decades, Agile has veered from the original manifesto’s
94 vision, becoming something more restrictive, taxing, and stressful than …
95 was meant to be.</P>
96
97 <P>Part of the issue is Agile’s flexibility. Jan Wischweh, a freelance
98 developer, calls this the “no true Scotsman” problem. Any Agile pra…
99 someone doesn’t like is not Agile at all, it inevitably turns out. The
100 construction of the manifesto makes this almost inescapable: because the
101 manifesto doesn’t prescribe any specific activities, one must gauge the
102 spirit of the methods in place, which all depends on the person experien…
103 them. Because it insists on its status as a “mindset,” not a method…
104 Agile seems destined to take on some of the characteristics of any
105 organization that adopts it. And it is remarkably immune to criticism,
106 since it can’t be reduced to a specific set of methods. “If you do …
107 thing wrong and it’s not working for you, people will assume it’s be…
108 you’re doing it wrong,” one product manager told me. “Not because…
109 anything wrong with the framework.”</P>
110
111 <P CLASS="cite">Via <A CLASS="external" HREF="https://news.ycombinator.c…
112 </BLOCKQUOTE>
113
114
115 <P>That last line,
116 “it's not working for you,
117 people will assume it's because you're doing it wrong,”
118 rings really true to me.
119 At <DEL>The Corporation</DEL>—no,
120 I no longer work for The Corporation,
121 I now work for The Enterprise now that the Corporate Overlords have fina…
122 So,
123 at The Enterprise,
124 I've been informing them pretty much all this year that this “Agile”…
125 Before they <A CLASS="local" HREF="/2021/09/24.1">finally took over</A>,
126 the team I was on was always on time,
127 on budget,
128 smooth deployments
129 (only two bad deployments in ten years)
130 and no show-stopping bugs found in production.
131 As I told upper management,
132 given our prior track record,
133 <EM>why</EM> change how we do development?
134 Why fix what isn't broken?
135 And while upper management never said this directly,
136 through their actions they answered: this is our process,
137 and we're sticking to it,
138 slipped schedules and disasterous deployments be damned!</P>
139
140 <P>As to why I haven't left yet?
141 Because it seems this “Agile” movement has invaded everywhere and th…
142 At least here,
143 <A CLASS="local" HREF="/2022/02/11.3">I'm not forced to use Windows</A>.…
144
145
146 ]]>
147 </description>
148 </item>
149
150 <item>
151 <title>Springfield isn't the most popular city name in the US</title>
152 <!-- <author>Sean Conner</author> -->
153 <link>http://boston.conman.org/2022/05/10.1</link>
154 <description>
155 <![CDATA[
156 <BLOCKQUOTE CITE="https://www.smithsonianmag.com/arts-culture/ma…
157
158 <P><B>OK, why do the Simpsons live in a town called Springfield?
159 Isn't that a little generic?</B></P>
160
161 <P>Springfield was named after Springfield, Oregon. The only re…
162 is that when I was a kid, the TV show “Father Knows Best” to…
163 place in the town of Springfield, and I was thrilled because I
164 imagined that it was the town next to Portland, my hometown. Wh…
165 grew up, I realized it was just a fictitious name. I also figur…
166 out that Springfield was one of the most common names for a city…
167 the U.S. In anticipation of the success of the show, I thought,
168 “This will be cool; everyone will think it's their Springfield…
169 And they do.</P>
170
171 <P CLASS="cite"><CITE><A CLASS="external" HREF="https://www.smit…
172 Groening Reveals the Location of the Real Springfield | Arts &am…
173 Culture| Smithsonian Magazine</A></CITE></P>
174
175 </BLOCKQUOTE>
176
177 <P>So I got to wondering,
178 <I>is Springfield the most popular city name in the <ABBR TITLE="United …
179 I know,
180 weird question,
181 but I'm curious.
182 So some quick searching lead me to the <A CLASS="external" HREF="https:/…
183 With some massaging of the data,
184 I was able to determine that there are 34 States with a “Springfield,�…
185 but it's not alone.
186 There are eight other cities that are also in 34 States:
187 Arlington,
188 Chester,
189 Clinton,
190 Farmington,
191 Florence,
192 Greenville,
193 Milton,
194 and Newport.
195 Okay,
196 maybe not the same 34 states across all those cities,
197 but you get the idea.</P>
198
199 <P>But those cities aren't the most popular names.
200 No,
201 all of them are tied for <EM>ninth place!</EM>
202 The city name that appears in most states is “Riverside” at 46 States
203 (plus Puerto Rico).
204 The States that don't have a “Riverside” are Alaska,
205 Hawaii,
206 Oklahoma,
207 and Louisiana
208 (really?
209 <EM>Louisiana?</EM>
210 One of the world's largest river run straight through that state,
211 and no one bothered to name a town in Louisiana,
212 “Riverside?”).</P>
213
214 <P>And just to satisfy the curious:</P>
215
216 <TABLE>
217 <CAPTION>Top 10 city names in the <ABBR TITLE="United States">US</ABBR…
218 <THEAD>
219 <TR><TH>Place</TH><TH>Name</TH><TH># States</TH></TR>
220 </THEAD>
221 <TBODY>
222 <TR><TH ROWSPAN="1" CLASS="num">1</TH> <TD>Riverside</TD> <TD…
223 <TR><TH ROWSPAN="1" CLASS="num">2</TH> <TD>Centerville</TD> <TD…
224 <TR><TH ROWSPAN="1" CLASS="num">3</TH> <TD>Fairview</TD> <TD…
225 <TR><TH ROWSPAN="1" CLASS="num">4</TH> <TD>Franklin</TD> <TD…
226 <TR><TH ROWSPAN="1" CLASS="num">5</TH> <TD>Midway</TD> <TD…
227 <TR><TH ROWSPAN="3" CLASS="num">6</TH> <TD>Georgetown</TD> <TD…
228 <TR> <TD>Glendale</TD> <TD…
229 <TR> <TD>Greenwood</TD> <TD…
230 <TR><TH ROWSPAN="6" CLASS="num">7</TH> <TD>Lincoln</TD> <TD…
231 <TR> <TD>Marion</TD> <TD…
232 <TR> <TD>Oakland</TD> <TD…
233 <TR> <TD>Pleasant Valley</TD> <TD…
234 <TR> <TD>Salem</TD> <TD…
235 <TR> <TD>Union</TD> <TD…
236 <TR><TH ROWSPAN="3" CLASS="num">8</TH> <TD>Fairfield</TD> <TD…
237 <TR> <TD>Lakeview</TD> <TD…
238 <TR> <TD>Liberty</TD> <TD…
239 <TR><TH ROWSPAN="9" CLASS="num">9</TH> <TD>Arlington</TD> <TD…
240 <TR> <TD>Chester</TD> <TD…
241 <TR> <TD>Clinton</TD> <TD…
242 <TR> <TD>Farmington</TD> <TD…
243 <TR> <TD>Florence</TD> <TD…
244 <TR> <TD>Greenville</TD> <TD…
245 <TR> <TD>Milton</TD> <TD…
246 <TR> <TD>Newport</TD> <TD…
247 <TR> <TD>Springfield</TD> <TD…
248 <TR><TH ROWSPAN="9" CLASS="num">10</TH> <TD>Bethel</TD> <TD…
249 <TR> <TD>Clifton</TD> <TD…
250 <TR> <TD>Eden</TD> <TD…
251 <TR> <TD>Glenwood</TD> <TD…
252 <TR> <TD>Hamilton</TD> <TD…
253 <TR> <TD>Kingston</TD> <TD…
254 <TR> <TD>Lakeside</TD> <TD…
255 <TR> <TD>Mount Pleasant</TD> <TD…
256 <TR> <TD>Summit <TD…
257 </TBODY>
258 </TABLE>
259
260 ]]>
261 </description>
262 </item>
263
264 <item>
265 <title>Star Wars Day?</title>
266 <!-- <author>Sean Conner</author> -->
267 <link>http://boston.conman.org/2022/05/04.1</link>
268 <description>
269 <![CDATA[
270 <P>It's not Star Wars Day—it's Dave Brubeck Day!
271 (and give yourself 10 cool points if you get the reference)
272 Of course,
273 it's only Dave Brubeck day in the <ABBR TITLE="United States">US</ABBR>.
274 Elsewhere in the world,
275 Dave Brubeck Day is April 5<SUP>th</SUP> for some odd reason
276 (give yourself a geek point for getting this reference).</P>
277
278 <P><SPAN CLASS="comments">[And of course Sean didn't tell you he pulled …
279 He's not that cool to think of this. —Editor]</SPAN></P>
280
281 ]]>
282 </description>
283 </item>
284
285 <item>
286 <title>The legality of double slashes in URIs</title>
287 <!-- <author>Sean Conner</author> -->
288 <link>http://boston.conman.org/2022/05/03.2</link>
289 <description>
290 <![CDATA[
291 <P><A CLASS="external" HREF="gemini://gemini.clehaxze.tw/gemlog/…
292 saying that double slashes in <ABBR TITLE="Uniform Resource Indicator">U…
293 and pointed out the <ABBR TITLE="Augmented Backus-Naur Form">ABNF</ABBR>…
294
295 <PRE CLASS="language-ABNF" TITLE="ABNF">
296 path = path-absolute ; begins with "/" but not "//"
297 path-absolute = "/" [ segment-nz *( "/" segment ) ]
298 segment-nz = 1*pchar
299 pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
300 </PRE>
301
302
303 <P>But he didn't quote the <CODE>segment</CODE> rule:</P>
304
305 <PRE CLASS="language-ABNF" TITLE="ABNF">
306 segment = *pchar
307 </PRE>
308
309
310 <P>which translated says,
311 “0 or more <CODE>pchar</CODE> rules.” </P>
312
313 <P>So the <ABBR TITLE="Augmented Backus-Naur Form">ABNF</ABBR> he quoted…
314 It doesn't rule out <CODE>/­boston//­2018/­07/­04.2</CODE>,
315 since by the time we hit the double slash,
316 we're in the <CODE>*( "/" segment )</CODE> part of the <CODE>path-absolu…
317 and <CODE>segment</CODE> can have 0 characters.
318 But what he quoted only applies to relative links,
319 what I receive is an abolute link.
320 If you follow the <ABBR TITLE="Augmented Backus-Naur Form">ABNF</ABBR> f…
321
322 <PRE CLASS="language-ABNF" TITLE="ABNF">
323 URI-reference = URI / relative-ref
324 URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
325 hier-part = "//" authority path-abempty
326 / path-absolute
327 / path-rootless
328 / path-empty
329
330 path-abempty = *( "/" segment )
331
332 ; other rules omitted
333 </PRE>
334
335
336 <P>not only does this allow <CODE>gemini://­gemini.conman.org/­/­bost…
337
338 <P>I can understand why this was done—to simplify the grammar as the v…
339 I don't think the intent was to allow long strings of slashes,
340 but that's the end result of a lax grammar.
341 Martin is also correct that multiple slashes are treated as a single sla…
342 (basically,
343 any Unix system),
344 that's not the case across all operating systems.
345 One exception I can think of Amiga<ABBR TITLE="Operating System">OS</ABB…
346 where each slash represents a parent directory.
347 This command, <CODE>cd ///</CODE> on Amiga<ABBR TITLE="Operating System"…
348 Crazy,
349 I know.
350 And maybe not even relevant these days,
351 but I thought I should mention it.</P>
352
353 ]]>
354 </description>
355 </item>
356
357 <item>
358 <title>I'm hoping this is a joke, because if it's not, I'm not sure …
359 <!-- <author>Sean Conner</author> -->
360 <link>http://boston.conman.org/2022/05/03.1</link>
361 <description>
362 <![CDATA[
363 <P>I finished my lunch of a sub sandwich when I notice a message…
364
365 <DIV CLASS="pf">
366
367 <IMG SRC="/2022/05/03/wrapper.jpg" WIDTH="400" HEIGHT="300" ALT="[A sub …
368
369 </DIV>
370
371 <P>I have no words.</P>
372
373 ]]>
374 </description>
375 </item>
376
377 <item>
378 <title>Notes on an overheard conversation about tea</title>
379 <!-- <author>Sean Conner</author> -->
380 <link>http://boston.conman.org/2022/05/02.1</link>
381 <description>
382 <![CDATA[
383 <P>“You know,
384 you forgot to remind me to make your tea.” </P>
385
386 <P>“Oh.
387 I need to remind you make tea.” </P>
388
389 <P>“Sigh.” </P>
390
391 <P>“So thank you for reminding me to remind you to make tea.” </P>
392
393 <P>“…” </P>
394
395 <P>“Um,
396 doesn't hitting your head against the wall hurt?” </P>
397
398 ]]>
399 </description>
400 </item>
401
402 <item>
403 <title>It was a simple bug, but …</title>
404 <!-- <author>Sean Conner</author> -->
405 <link>http://boston.conman.org/2022/05/01.2</link>
406 <description>
407 <![CDATA[
408 <P>I was right about <A CLASS="local" HREF="/2022/04/30.1">the d…
409 The authors of two Gemini crawlers wrote in about the double slash bug,
410 and from them,
411 I was able to get the root cause of the problem—<A CLASS="site" HREF="…
412 Good thing I hedged my statement about not being the cause yesterday.
413 Sigh.</P>
414
415 <P>Back in Debtember,
416 <A CLASS="local" HREF="/2021/12/06.2">I added support for displaying mul…
417 It's not an easy feature to describe,
418 but basically,
419 it allows one to
420 (by hacking the <ABBR TITLE="Uniform Resource Locator">URL</ABBR>,
421 but who hacks <ABBR TITLE="Uniform Resource Locator">URL</ABBR>s these d…
422 specify posts via a range of dates.
423 And it's on these pages that the double slashed <ABBR TITLE="Uniform Res…
424 Why that happens is easy—I was generating the links directly from stri…
425
426 <PRE CLASS="language-Lua" TITLE="Lua">
427 local function geminilink(entry)
428 return string.format("gemini://%s%s/%s%04d/%02d/%02d.%d",
429 config.url.host,
430 port, -- generated elsewhere
431 config.url.path,
432 entry.when.year,
433 entry.when.month,
434 entry.when.day,
435 entry.when.part
436 )
437 end
438 </PRE>
439
440
441 <P>instead of from a <ABBR TITLE="Uniform Resource Locator">URL</ABBR> t…
442 I think when I wrote the above code,
443 I wasn't thinking in terms of a <ABBR TITLE="Uniform Resource Locator">U…
444 but of constructing a <ABBR TITLE="Uniform Resource Locator">URL</ABBR> …
445 The bug itself is due to <CODE>config.url.path</CODE> ending in a slash,
446 so the third slash in the string literal wasn't needed.
447 The correct way isn't that hard:</P>
448
449 <PRE CLASS="language-Lua" TITLE="Lua">
450 local function geminilink(entry)
451 return uurl.toa(uurl.merge(config.url,
452 {
453 path = string.format("%04d/%02d/%02d.%d",
454 entry.when.year,
455 entry.when.month,
456 entry.when.day,
457 entry.when.part)
458 }))
459 end
460 </PRE>
461
462 <P>and it wouldn't have exhibited the issue.</P>
463
464 <P>With this fix in place,
465 I think I will continue to reject requests with the double slash,
466 as it is catching bugs,
467 which is a Good Thing™.</P>
468
469 ]]>
470 </description>
471 </item>
472
473 <item>
474 <title>A zombie site from May Days past</title>
475 <!-- <author>Sean Conner</author> -->
476 <link>http://boston.conman.org/2022/05/01.1</link>
477 <description>
478 <![CDATA[
479 <P>Given that today is <A CLASS="external" HREF="https://en.wiki…
480 And lo'
481 sixteen years ago <A CLASS="local" HREF="/2006/05/01.2">I wrote about <C…
482 Amazingly,
483 <A CLASS="external" HREF="http://osixs.org/">the website</A> is still ar…
484 although with even less than there was sixteen years ago.
485 I guess I was right when I wrote back then,
486 “I personally don't see this going anywhere fast.” </P>
487
488 ]]>
489 </description>
490 </item>
491
492 <item>
493 <title>Musings on processing malformed Gemini (and web) requests</ti…
494 <!-- <author>Sean Conner</author> -->
495 <link>http://boston.conman.org/2022/04/30.1</link>
496 <description>
497 <![CDATA[
498 <P>I'm still bothered with Gemini requests like <CODE>gemini://g…
499 I thought <A CLASS="local" HREF="/2022/04/16.1">it might be a simple bug…
500 There's a client out there that has made 1,070 such requests,
501 and if that was all,
502 or even most,
503 of the requests,
504 then yes,
505 that's probably a simple bug.
506 But it's not.
507 It turns out to be only 4% of the requests from said client are malforme…
508 Which to me indicates that something out there might be generating such …
509 (and for this case,
510 I checked and <A CLASS="local" HREF="/2022/04/22.3">I don't think I'm th…
511
512 <P>I decided to see what happens on the web.
513 I poked a few web sites with similar “double slash” requests and I g…
514 Most of the sites just accepted them as is and served up a page.
515 The only site that seemed to have issues with it was <A CLASS="external"…
516 and I'm not sure what status it returned since it's difficult to obtain …
517
518 <P>So,
519 I have a few options.</P>
520
521 <OL>
522
523 <LI>I can keep the current code and always reject such requests.
524 In my mind,
525 such requests have no meaning and are malformed,
526 so why shouldn't I just reject them?</LI>
527
528 <LI>I can send a permanent redirection to the “proper” location.
529 This has the upside of maintaining a canonical link to each page,
530 but with the downside of forcing clients through an additional request,
531 and me having to live with the redundant requests in the log files.
532 But it's obvious what resource is being requested,
533 and sending a permenent redirect informs the client of the proper locati…
534
535 <LI>I can just silently clean up the request and carry on.
536 The upside—clean logs with only one request.
537 The downside—two (or more) valid locations for content.
538 On the one hand,
539 this just feels wrong to me,
540 as technically speaking,
541 <CODE>/foo</CODE> and <CODE>//foo</CODE> should be different resources
542 (as per <A CLASS="external" HREF="https://www.ietf.org/rfc/rfc3986.txt">…
543 <CODE>/foo</CODE> and <CODE>/foo/</CODE> are technically different resou…
544 so why not this case?).
545 On the other hand,
546 this issue is generally ignored by most web servers out there anyway,
547 so there's that precendent.
548 On the gripping hand,
549 doing this just seems like a cop out and blindly following what the web …
550
551 </OL>
552
553 <P>Well,
554 how do current Gemini servers deal with it?
555 Pretty much like existing web servers—most just treat multiple slashse…
556 I think <A CLASS="site" HREF="gemini://gemini.conman.org//boston/2015/10…
557 Now the question is—how pedantic do I want to be?
558 Is “good enough” better then “perfect?” </P>
559
560 <P>Perhaps a better question is—why am I worrying about this anyway?</…
561
562 ]]>
563 </description>
564 </item>
565
566 <item>
567 <title>“We're a local newspaper run by a non-local company, we don…
568 <!-- <author>Sean Conner</author> -->
569 <link>http://boston.conman.org/2022/04/23.2</link>
570 <description>
571 <![CDATA[
572 <BLOCKQUOTE CITE="gemini://station.martinrue.com/adou/f3868913db…
573
574 <P>I was reading Conman's latest article, and he linked to a page called
575 «Transilvania Times». I wanted to see it, but for the first time sinc…
576 vote of the GPDR my visit was denied because I'm European.</P>
577
578 <P CLASS="cite"><CITE><CODE><A CLASS="external" HREF="gemini://station.m…
579 </BLOCKQUOTE>
580
581
582 <P>The “GPDR” is a typo—the author actually meant the <A CLASS="ex…
583 And it pains me to see something like this happen.
584 Here's someone from Europe who was interested in reading a story about a…
585 they couldn't because the owners of the news website
586 (which isn't owned locally,
587 but instead by <A CLASS="external" HREF="https://en.wikipedia.org/wiki/C…
588 probably doesn't care about European readers.
589 The company does have a policy for <A CLASS="external" HREF="https://www…
590 so I don't see why it can't be extended for the <ABBR TITLE="General Dat…
591 This is just so short sighted.</P>
592
593 ]]>
594 </description>
595 </item>
596
597 <item>
598 <title>Does that mean I know have to unit test my text-only websites…
599 <!-- <author>Sean Conner</author> -->
600 <link>http://boston.conman.org/2022/04/23.1</link>
601 <description>
602 <![CDATA[
603 <P>I fixed the <A CLASS="local" HREF="/2022/04/22.2">infinite re…
604 And again,
605 like most bugs,
606 it was an easy fix—just don't redirect if you come from <CODE>http://f…
607 It feels weird to think of having to test a text-only website,
608 but there is a form of programming involved,
609 so it shouldn't be as much of a surprise as it is.</P>
610
611 <P>Sigh.</P>
612
613 ]]>
614 </description>
615 </item>
616
617 <item>
618 <title>I have now wrapped my brain around how it got that link</titl…
619 <!-- <author>Sean Conner</author> -->
620 <link>http://boston.conman.org/2022/04/22.3</link>
621 <description>
622 <![CDATA[
623 <P><A CLASS="external" HREF="gemini://gemini.clehaxze.tw/gemlog/…
624 saying that it was his crawler that had sent links like <CODE>gemini://g…
625 Well,
626 he did,
627 and he found it wasn't his issue,
628 but mine.</P>
629
630 <P>Oh my.</P>
631
632 <P>Okay,
633 so how did I end up generating links like <CODE>gemini://gemini.conman.o…
634
635 <P>This is,
636 first and foremost,
637 a blog on the web.
638 Each entry is stored as <ABBR TITLE="HyperText Markup Language">HTML</AB…
639 and when a request is made via <A CLASS="site" HREF="gopher://gopher.con…
640 the entries making up the request are retrieved and <A CLASS="local" HRE…
641 As part of that conversion,
642 links to the blog itself have to be translated appropriately,
643 and that's where the error happened.</P>
644
645 <P>So,
646 for example,
647 the links for the above entry are collected:</P>
648
649 <OL>
650 <LI><CODE>http://www.cisco.com/</CODE></LI>
651 <LI><CODE>http://it.slashdot.org/article.pl?sid=08/04/29/2254242</CODE><…
652 <LI><CODE>http://www.arin.net/</CODE></LI>
653 <LI><CODE>2008/04/30.1#fn-2008-04-30-1-1</CODE></LI>
654 <LI><CODE>http://www.barracudanetworks.com/</CODE></LI>
655 <LI><CODE>http://answers.yahoo.com/question/index?qid=20080219010714AAnF…
656 </OL>
657
658 <P>Those links with a <ABBR TITLE="Uniform Resource Locator">URL</ABBR> …
659 but #4 is special,
660 not only is it a relative link to my blog,
661 but it also contains a <ABBR TITLE="Uniform Resource Locator">URL</ABBR>…
662 and that's where things went pear-shaped.
663 The code to do the <ABBR TITLE="Uniform Resource Locator">URL</ABBR> tra…
664 but for relative links,
665 I used the string,
666 not the parsed <ABBR TITLE="Uniform Resource Locator">URL</ABBR> structu…
667 As such,
668 the code didn't work so well with <ABBR TITLE="Uniform Resource Locator"…
669 and thus,
670 I ended up with links like <CODE>gemini://gemini.conman.org/boston/2008/…
671 (for the record,
672 the same bug was in the gopher translation code as well).</P>
673
674 <P>The fix,
675 as for most bugs,
676 was easy once the core issue was identified.
677 The other issues I talked about are,
678 as far as I can tell,
679 not stuff I can fix.</P>
680
681 ]]>
682 </description>
683 </item>
684
685 <item>
686 <title>Play stupid games, win stupid prizes</title>
687 <!-- <author>Sean Conner</author> -->
688 <link>http://boston.conman.org/2022/04/22.2</link>
689 <description>
690 <![CDATA[
691 <P>It's not only <A CLASS="local" HREF="/2022/01/11.1">Gemini bo…
692 I'm poking around the logs from my webserver,
693 when I scan all of them to see the breakdown of response codes my server…
694 (for this month).
695 And well … it's rather surprising:</P>
696
697 <TABLE>
698 <CAPTION>Breakdown of HTTP response codes from all the sites I host</C…
699 <THEAD>
700 <TR><TH>Status</TH> <TH>Meaning</TH> <TH>Count</TH></TR>
701 </THEAD>
702 <TFOOT>
703 <TR><TH>Status</TH> <TH>Meaning</TH> <TH>Count</TH></TR>
704 </TFOOT>
705 <TBODY>
706 <TR><TD CLASS="num">302</TD> <TD>Found (moved temporarily)</TD> <TD …
707 <TR><TD CLASS="num">200</TD> <TD>OK</TD> <TD CLASS="num">178414</TD>…
708 <TR><TD CLASS="num">304</TD> <TD>Not Modified</TD> <TD CLASS="num">2…
709 <TR><TD CLASS="num">404</TD> <TD>Not Found</TD> <TD CLASS="num">8214…
710 <TR><TD CLASS="num">301</TD> <TD>Moved Permanently</TD> <TD CLASS="n…
711 <TR><TD CLASS="num">405</TD> <TD>Method Not Allowed</TD> <TD CLASS="…
712 <TR><TD CLASS="num">410</TD> <TD>Gone</TD> <TD CLASS="num">685</TD><…
713 <TR><TD CLASS="num">400</TD> <TD>Bad Request</TD> <TD CLASS="num">25…
714 <TR><TD CLASS="num">206</TD> <TD>Partial Content</TD> <TD CLASS="num…
715 <TR><TD CLASS="num">401</TD> <TD>Unauthorized</TD> <TD CLASS="num">4…
716 <TR><TD CLASS="num">500</TD> <TD>Internal Server Error</TD> <TD CLAS…
717 <TR><TD CLASS="num">403</TD> <TD>Forbidden</TD> <TD CLASS="num">4</T…
718 </TBODY>
719 </TABLE>
720
721
722 <P>I was not expecting that many temporary redirects.
723 Was it some massive issue across all the sites?
724 Or just a few?
725 Well,
726 it turned all of the temporary redirects were from one site: <CODE>http:…
727 (and no,
728 I'm not linking to it as the reason why will become clear).
729 I registered the domain way back in 2000 just as a place to play around …
730 The site isn't meant to be at all serious.</P>
731
732 <P>Scanning the log file manually,
733 I was seeing endless log entries like:</P>
734
735 <PRE CLASS="language-data" TITLE="data">
736 <SPAN CLASS="cut">XXXXX­XXXXX­XXXXX</SPAN> - - [10/Apr/2022:20:55:05 -…
737 </PRE>
738
739
740 <P>That log entry indicates a “browser” from <ABBR TITLE="Internet P…
741 identifying itself as “Mozilla (yada yada)” on the 10<SUP>th</SUP> o…
742 attempted to get the main page,
743 as referred by <CODE>http://flummux.org/</CODE>.
744 And for how many times this happened,
745 broken down by browser:</P>
746
747 <TABLE>
748 <CAPTION>Top five user agents making the troublesome requests</CAPTION>
749 <THEAD>
750 <TR><TH>Count</TH> <TH>User agent</TH></TR>
751 </THEAD>
752 <TBODY>
753 <TR><TD CLASS="num">127100</TD> <TD>Mozilla/4.0 (compatible; MSIE 7.…
754 <TR><TD CLASS="num">126495</TD> <TD>Mozilla/4.0 (compatible; MSIE 7.…
755 <TR><TD CLASS="num">42</TD> <TD>Mozilla/5.0 (X11; Linux x86_64) Appl…
756 <TR><TD CLASS="num">36</TD> <TD>CATExplorador/1.0beta (sistemes at d…
757 <TR><TD CLASS="num">15</TD> <TD>Mozilla/5.0 (Windows NT 10.0; Win64;…
758 </TBODY>
759 </TABLE>
760
761
762 <P>Ah,
763 two “browsers” that don't limit the number of redirects they follow.
764 And amusingly enough,
765 <EM>both</EM> agents came from the <EM>same</EM> <ABBR TITLE="Internet P…
766 Or maybe it's the same agent,
767 just lying about what it is.
768 Who knows?
769 Well,
770 aside from the author(s) of said “browser.” </P>
771
772 <P>But what was all horribly confusing to me why the server was issuing …
773 Yes,
774 if you try to go to <CODE>http://flummux.org/</CODE> the server will rep…
775 (the reasons for that is to canonicalize the <ABBR TITLE="Uniform Resour…
776 But the site shouldn't redirect again.
777 I can bring the site up in my browser without issue
778 (which is a visual … pun? Commentary? Joke? on the line “The sky a…
779
780 <P>And then I remembered—back in 2016,
781 I set things up such that if the browser sent in a referring link,
782 the page would temporarily redirect back to the referring link
783 (which is why I'm not linking to it—you would just be redirected right…
784 I set that up on a lark for some reason that now esacapes me.
785 So the above “browsers” kept bouncing back and forth between <CODE>f…
786 For a quarter of a million requests.</P>
787
788 <P>Sigh.</P>
789
790 <P>In other news,
791 bugs are nothing more than an inattention to detail.</P>
792
793 ]]>
794 </description>
795 </item>
796
797 <item>
798 <title>Notes on some extreme lawn ornaments, Brevard edition</title>
799 <!-- <author>Sean Conner</author> -->
800 <link>http://boston.conman.org/2022/04/22.1</link>
801 <description>
802 <![CDATA[
803 <P>Eight years ago
804 (wow! Has it been that long?
805 <SPAN CLASS="comments">[Yes. —Editor]</SPAN>
806 <SPAN CLASS="comments">[Who asked you? —Sean]</SPAN>)
807 while in <A CLASS="external" HREF="http://brevardnc.org/">Brevard</A>,
808 I took a picture of some <A CLASS="local" HREF="/2014/10/29.2">extreme l…
809 I wrote the “eat moar chikin” image caption
810 (if you hold your mouse over the image,
811 it should pop up)
812 because the cows reminded me of the cows used by <A CLASS="external" HRE…
813
814 <P>I'm reading the <A CLASS="external" HREF="https://www.transylvaniatim…
815 “<A CLASS="external" HREF="https://www.transylvaniatimes.com/features/…
816 He owns <A CLASS="external" HREF="https://optaylors.com/">O.P. Taylor's<…
817 a well known toy store in the area,
818 and he's the one with the life sized plastic cows in his front yard.
819 Not only that,
820 but he purchased them from the person who made them for Chick-fil-a.
821 Little did I know that my caption was more correct than I thought.</P>
822
823 ]]>
824 </description>
825 </item>
826
827
828 </channel>
829 </rss>
830
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.