<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> <link rel="stylesheet" href="https://hiragana.jp/style/ruby.css"> <span style="font-size:xx-small">(Translated by <a href="https://www.hiragana.jp/">https://www.hiragana.jp/</a>)</span><br/><script type="text/javascript" src="http://sh.adingo.jp/?G=1000015709&guid=ON"></script> <script type="text/javascript"> //<![CDATA[ if(typeof(adingoFluct)!="undefined") adingoFluct.showAd('1000021890'); //]]> </script> <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'> <html xmlns:og='https://ogp.me/ns#' lang='en'> <head> <title>ongoing by Tim Bray ツキ Colophon</title> <meta name='viewport' content='width=device-width, initial-scale=1.0, shrink-to-fit=no'/> <meta property='og:site_name' content='ongoing by Tim Bray'/> <meta property='og:title' content='Colophon'/> <meta property='og:image' content='/ongoing/misc/podcast-default.jpg'/> <meta property='og:type' content='website'/> <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/> <link rel='stylesheet' type='text/css' media='screen' title='serif' href='http://www.tbray.org/ongoing/serif.css' /> <script type='text/javascript' src='http://use.typekit.net/ugm7uwx.js'></script> <script type='text/javascript'>try{Typekit.load();}catch(e){}</script> <script type='text/javascript' src='http://www.tbray.org/ongoing/ongoing.js'></script> <link rel='alternate' type='application/atom+xml' title='Atom (full content)' href='http://www.tbray.org/ongoing/ongoing.atom' /> <!-- Generated from XML source code using Perl, Expat, Emacs, Mysql, Ruby, Java, and ImageMagick. Industrial-strength technology, baby. --> </head><body itemscope='' itemtype='http://schema.org/Blog'> <div id='payload'> <div id='banner'><h1 itemprop='name'>Colophon</h1><div id='search'><form action="https://trans.hiragana.jp/ruby/https://www.google.com/search" target="_parent">Search <input size="20" name="as_q" /><input type="hidden" name="hl" value="en" /><input type="hidden" name="ie" value="UTF-8" /><input type="hidden" name="btnG" value="Google+Search" /><input type="hidden" name="as_qdr" value="all" /><input type="hidden" name="as_occt" value="any" /><input type="hidden" name="as_dt" value="i" /><input type="hidden" name="as_sitesearch" value="tbray.org" /></form></div></div> <div id='center-and-right'><div id='centercontent'> <p id='p-2' class='p1'><span class='h2'>Principles</span> ツキ The following are important:</p> <ol> <li><p itemprop='description'>The words and pictures here are generally not AI-generated; the rare exceptions are clearly labeled.</p> </li> <li><p>The blog is plain HTML+CSS, with a few snippets of handcrafted JavaScript for minor on-screen fine-tuning. This is the best way to deliver on the World Wide Web and should be used unless there窶冱 a reason it can窶冲 be.</p> </li> <li><p>I have no plans to open-source any of the code discussed below, because I窶冦 not proud of it.</p> </li> </ol> <p id='p-3' class='p1'><span class='h2'>Details</span> ツキ I write <span class="o">ongoing</span> in an XML dialect that is mostly HTML with a few little extras; I edit with <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/What/Technology/Emacs/'>Emacs</a> but any old text editor would do.</p> <p>The essay fragments that make up <span class="o">ongoing</span> are organized by date into a directory tree (visible in the URIs), and each is filed into one or more hierarchical categories; you can navigate around both the <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/'>date</a> and <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/What/'>category</a> apparatus.</p> <p>The paragraph font is <a href='https://trans.hiragana.jp/ruby/http://typekit.com/fonts/ff-tisa-web-pro'>FF Tisa Web Pro</a>, delivered via <a href='https://trans.hiragana.jp/ruby/http://typekit.com/'>Typekit</a>; I <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/201x/2011/07/17/Tisa'>wrote the process up</a>.</p> <p>Since I'm a hopeless geek, I couldn't possibly use any one of the excellent personal-web-site or blogging tools out there; it's all done with a Perl script imaginatively named <code>ong.pl</code>, less than three thousand lines in total, that maintains a <a href='https://trans.hiragana.jp/ruby/http://www.mysql.com/'>MySQL</a> database containing basic metadata for each essay. The Perl script runs over the source tree, figures out what needs to be updated, generates any new notes, and always regenerates the top-level page and RSS/Atom feeds. It's not rocket science, there are less than 3,000 lines of Perl representing weeks not months of effort.</p> <p>Then there窶冱 the comment system, which is under 1,000 lines of Ruby; its design is <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2006/05/15/Comment-System'>brutally minimal</a>, involving no databases or framework code.</p> <p>The little picture on the right that changes every so often involves <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2006/02/07/Thumbnail'>some JavaScript voodoo</a>.</p> <p>A lot of the work is in handling the pictures, which exist in three sizes. Some are resized by hand but often it窶冱 <a href='https://trans.hiragana.jp/ruby/http://www.imagemagick.org/'>ImageMagick</a>. I used to <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2006/04/08/Picture-Frames'>add my own drop shadows</a>, but modern CSS takes care of that.</p> <p>The JavaScript code that makes the expended versions of the pictures go away is generated by GPT-4.</p> <p>The text <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/201x/2011/04/01/Straight-Right'>used to be right-justified</a> but eventually I became convinced that that hurt readability. So now I don窶冲 have to <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/201x/2014/03/16/New-Hyphenation'>think about hyphenation</a>.</p> <p>One virtue of the setup is that it works exactly the same on my MacOS laptop staging environment and the Debian box where <span class="o">ongoing</span> lives. The blog is entirely served out of static files, but窶ヲ no wait. If you can possibly serve something like this that way, you should. Linux contains literally engineer-millennia of investment in making the filesystem fast in and of itself, and caching hot files intelligently. <span class="o">Ongoing</span> runs on a very basic VPS and stands up to the load when something I write catches fire and gets fetched a few hundred thousand times. Because static files.</p> <p>Anyhow, static files, but the production process depends crucially on MySQL, ImageMagick, and many big ol窶� Perl libraries. Getting all this software to work together is dead easy on the Debian box, but a major pain in the butt on my Mac. For many years I was depending on <a href='https://trans.hiragana.jp/ruby/http://brew.sh/'>Homebrew</a>, but recently switched to <a href='https://trans.hiragana.jp/ruby/https://www.macports.org'>MacPorts</a>, which has less trouble getting Perl to play nice with MySQL.</p> <p>The layout tries pretty hard to be good clean CSS; the original 2003 version, stolen from the best, namely <a href='https://trans.hiragana.jp/ruby/http://www.glish.com'>Eric Costello</a> and <a href='https://trans.hiragana.jp/ruby/http://www.tantek.com'>Tantek テ㌃lik</a>, survived until 2011; an intermediate big step is described in <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/201x/2011/04/21/Reflowing'>Reflowing</a>. Well, except then I <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/201x/2014/09/13/Styling-more-pixels'>figured out how to expand pix into the left margin</a> because size matters. But eventually I gave up on mastering modern CSS without being a serious student and in 2023 <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/202x/2023/06/21/CSS-plus'>paid someone to fix mine</a>.</p> <p>Also, there's a <code>DOCTYPE</code> declaration that claims the output is <a href='https://trans.hiragana.jp/ruby/http://www.w3.org/TR/xhtml11/'>XHTML 1.1</a> and the W3C validator seems to agree, so to the extent that窶冱 virtuous, so is <span class="o">ongoing</span>.</p> <p>I've got it all terribly automated so I can start a new entry, proof an entry, and publish it to the website with single key-chords in <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/What/Technology/Emacs/'>Emacs</a>; I recognize lots of people wouldn't be OK with that.</p> <p>On the "pro" side I can type in any HTML weirdness that strikes my fancy, which might be a "con" except for the XML processor in the pipeline helps keep me honest.</p> <p id='p-1' class='p1'><span class='h2'>Header Graphics</span> ツキ Occasionally I get mail asking 窶忤hat窶冱 that picture behind the title?</p> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/beams60.jpg.html'><img alt='Header graphic: Big Island sunset detail' title='Header graphic: Big Island sunset detail' class='norm' src='http://www.tbray.org/ongoing/misc/beams60.png' /></a></div> <div class="caption"><p>Hawai窶冓an sunset from a <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2006/04/08/Picture-Frames'>Big Island mountainside</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Amar60.jpg.html'><img alt='Header graphic: Regina amaryllis detail' title='Header graphic: Regina amaryllis detail' class='norm' src='http://www.tbray.org/ongoing/misc/Amar60.png' /></a></div> <div class="caption"><p>Detail of an amaryllis blossom in <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2006/03/14/Saskatchewan'>Regina, Saskatchewan窶冱 city conservatory</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Toronto60.jpg.html'><img alt='Header graphic: Toronto skyline from the airport, spot the CN Tower' title='Header graphic: Toronto skyline from the airport, spot the CN Tower' class='norm' src='http://www.tbray.org/ongoing/misc/Toronto60.png' /></a></div> <div class="caption"><p><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/10/29/Flight-Pix'>Toronto skyline</a> from the airport; spot the CN Tower.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/sake60.jpg.html'><img alt='Header graphic: Sake bottle detail' title='Header graphic: Sake bottle detail' class='norm' src='http://www.tbray.org/ongoing/misc/sake60.png' /></a></div> <div class="caption"><p>Detail of a <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/11/18/XML-Abstracts'>sake bottle</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/branches60.jpg.html'><img alt='Header graphic: leaves' title='Header graphic: leaves' class='norm' src='http://www.tbray.org/ongoing/misc/branches60.png' /></a></div> <div class="caption"><p>Leaves.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/oed60.jpg.html'><img alt='Header graphic: Oxford English Dictionary plate detail' title='Header graphic: Oxford English Dictionary plate detail' class='norm' src='http://www.tbray.org/ongoing/misc/oed60.png' /></a></div> <div class="caption"><p>Detail of <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2004/11/30/Lustrous'>one of the plates</a> used to print the original 1928 version of the Oxford English Dictionary.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/door60.jpg.html'><img alt='Header graphic: Koper-Capodistria door detail' title='Header graphic: Koper-Capodistria door detail' class='norm' src='http://www.tbray.org/ongoing/misc/door60.png' /></a></div> <div class="caption"><p>Detail of a door in the old town in <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/10/02/Koper-Capodistria'>Koper-Capodistria</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Countryside60.jpg.html'><img alt='Header graphic: English countryside detail' title='Header graphic: English countryside detail' class='norm' src='http://www.tbray.org/ongoing/misc/Countryside60.png' /></a></div> <div class="caption"><p><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/08/02/Lyme-Light'>Wiltshire countryside</a> under clouds.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Bodley60.jpg.html'><img alt='Header graphic: Bodleian library courtyard detail' title='Header graphic: Bodleian library courtyard detail' class='norm' src='http://www.tbray.org/ongoing/misc/Bodley60.png' /></a></div> <div class="caption"><p><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/08/02/Bodleian'>Bodleian library courtyard</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/MakuhariPrince60.png.html'><img alt='Header graphic: Makuhari Prince hotel detail' title='Header graphic: Makuhari Prince hotel detail' class='norm' src='http://www.tbray.org/ongoing/misc/MakuhariPrince60.png' /></a></div> <div class="caption"><p>The side of the <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/05/11/May-Tokyo'>Makuhari</a> Prince hotel, not far from <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/05/15/Japan-Notes'>the beach</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/moss60.jpg.html'><img alt='Header graphic: Moss on a tree' title='Header graphic: Moss on a tree' class='norm' src='http://www.tbray.org/ongoing/misc/moss60.png' /></a></div> <div class="caption"><p>Close-up of <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/03/12/Anticipation'>springtime</a> moss on a tree-side.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/mainst60.jpg.html'><img alt='Header graphic: Brick storefront on Main Street detail' title='Header graphic: Brick storefront on Main Street detail' class='norm' src='http://www.tbray.org/ongoing/misc/mainst60.png' /></a></div> <div class="caption"><p>Sunlit brick storefront on Vancouver窶冱 <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2005/03/17/Main-Street-Pix'>Main Street</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/darkwater60.jpg.html'><img alt='Header graphic: seawater.' title='Header graphic: seawater.' class='norm' src='http://www.tbray.org/ongoing/misc/darkwater60.png' /></a></div> <div class="caption"><p>Ocean waves.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/skyline60.jpg.html'><img alt='Header graphic: Vancouver sunset detail' title='Header graphic: Vancouver sunset detail' class='norm' src='http://www.tbray.org/ongoing/misc/skyline60.png' /></a></div> <div class="caption"><p>Vancouver sunset.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/jellybeans60.jpg.html'><img alt='Header graphic: Jellybean slide scan detail' title='Header graphic: Jellybean slide scan detail' class='norm' src='http://www.tbray.org/ongoing/misc/jellybeans60.png' /></a></div> <div class="caption"><p>Old <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2003/03/27/Scanner'>scanned</a> 35mm slide of some jellybeans.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/blurs60.jpg.html'><img alt='Header graphic: Trans-Canada highway in Coquitlam detail' title='Header graphic: Trans-Canada highway in Coquitlam detail' class='norm' src='http://www.tbray.org/ongoing/misc/blurs60.png' /></a></div> <div class="caption"><p>Trans-Canada highway in Coquitlam, shot from moving car heading west and home.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/binding60.jpg.html'><img alt='Header graphic: Book binding detail' title='Header graphic: Book binding detail' class='norm' src='http://www.tbray.org/ongoing/misc/binding60.png' /></a></div> <div class="caption"><p>Binding of an old book.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/pansies60.jpg.html'><img alt='Header graphic: Pansies at Murray窶冱 detail' title='Header graphic: Pansies at Murray窶冱 detail' class='norm' src='http://www.tbray.org/ongoing/misc/pansies60.png' /></a></div> <div class="caption"><p>Pansies at <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2003/03/23/NastySpring'>Murray窶冱</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/rose60.jpg.html'><img alt='Header graphic: Rose shot with the then-new Canon S50 detail' title='Header graphic: Rose shot with the then-new Canon S50 detail' class='norm' src='http://www.tbray.org/ongoing/misc/rose60.png' /></a></div> <div class="caption"><p>Rose shot with the then-new <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2003/06/01/S50'>Pentax S50</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/redclouds60.jpg.html'><img alt='Header graphic: Red sunset clouds detail' title='Header graphic: Red sunset clouds detail' class='norm' src='http://www.tbray.org/ongoing/misc/redclouds60.png' /></a></div> <div class="caption"><p>Detail, red sunset clouds.</p> </div> <img class='inline' alt='Header graphic: Mom窶冱 carpet detail' title='Header graphic: Mom窶冱 carpet detail' src='http://www.tbray.org/ongoing/misc/rug60.png' /> <p>This is the first header graphic <span class="o">ongoing</span> ever had. It窶冱 a close-up of a piece of oriental carpet in my Mom窶冱 collection. For the first couple of years after launch, it was tiled across the top, until I got tired of looking at the same thing all the time; and it窶冱 still the basis of the little diamond-shaped <span class="o">ongoing</span> icon that might be appearing right now in your browser窶冱 address bar.</p> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/windshield60.jpg.html'><img alt='Header graphic: Fourth Ave. in Vancouver detail' title='Header graphic: Fourth Ave. in Vancouver detail' class='norm' src='http://www.tbray.org/ongoing/misc/windshield60.png' /></a></div> <div class="caption"><p><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2003/08/25/AugPix'>Shot through the windshield</a> on Vancouver窶冱 Fourth Avenue.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Fireworks60.jpg.html'><img alt='Header graphic: Fireworks at the ballpark detail' title='Header graphic: Fireworks at the ballpark detail' class='norm' src='http://www.tbray.org/ongoing/misc/Fireworks60.png' /></a></div> <div class="caption"><p>Fireworks <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2004/07/24/WillYou'>at the ballpark</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/Shingles60.jpg.html'><img alt='Header graphic: Shingles at #3 West 19th Ave. detail' title='Header graphic: Shingles at #3 West 19th Ave. detail' class='norm' src='http://www.tbray.org/ongoing/misc/Shingles60.png' /></a></div> <div class="caption"><p>Shingles on the old house at #3 West 19th Ave., Vancouver, in a eulogy for the old <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2004/11/17/S70'>Canon S50</a>.</p> </div> <div class='main-image'><a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/-big/slug60.jpg.html'><img alt='Header graphic: Vancouver slug detail' title='Header graphic: Vancouver slug detail' class='norm' src='http://www.tbray.org/ongoing/misc/slug60.png' /></a></div> <div class="caption"><p>Extreme close-up of Vancouver wildlife, <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/When/200x/2004/09/23/Slug'>caught in motion</a>.</p> </div> <hr /> <div id='commentHere'></div> <div id='footer'><p class='footer'><b>Updated: 2024/08/09</b></p> </div> </div> <div id='rightcontent'> <div class='oo'><a id='to-home' href='https://trans.hiragana.jp/ruby/https://www.tbray.org/ongoing/'><span id='home'>ongoing</span></a></div> <div> <div class='principles'> <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/WhatItIs'>What this is</a> ツキ <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/ongoing.atom'><img title="Subscribe to ongoing" alt="Subscribe to ongoing" src="http://www.tbray.org/ongoing/Feed.png"/></a><br/> <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/Truth'>Truth</a> ツキ <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/Biz'>Biz</a> ツキ <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/Tech'>Tech</a></div> <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/Tim'>author</a> ツキ <a href='https://trans.hiragana.jp/ruby/http://www.textuality.com/BillBray/'>Dad</a><br/> <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/Colophon'>colophon</a> ツキ <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/Copyright'>rights</a> </div> <div id='potd'><a id='tnA' href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/goto-potd/'><img id='tnI' src='http://www.tbray.org/ongoing/potd.png' alt='Random image, linked to its containing fragment' title='Random image, linked to its containing fragment' /></a></div> <br/> <div class="employ"> <p>By <a rel="author" href="https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/Tim">Tim Bray</a>.</p> <p>The opinions expressed here <br/> are my own, and no other party<br/> necessarily agrees with them.</p> <p>A full disclosure of my<br/> professional interests is<br/> on the <a href='https://trans.hiragana.jp/ruby/http://www.tbray.org/ongoing/misc/Tim'>author</a> page.</p> <p>I窶冦 on <a rel="me" href="https://trans.hiragana.jp/ruby/https://cosocial.ca/@timbray">Mastodon</a>!</p> </div> </div></div></div> </body> </html>