<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <title>jjrscott</title>
 <link href="https://jjrscott.com/atom.xml" rel="self"/>
 <link href="https://jjrscott.com" rel="alternate"/>
 <id>https://jjrscott.com/</id>
 <updated>2025-09-15T18:21:32+00:00</updated>
 <author>
   <name>John Scott</name>
   <uri>https://jjrscott.com</uri>
 </author>

 
 <entry>
   <title>Understanding Deflate</title>
   <link href="https://jjrscott.com/to-deflate-or-not/"/>
   <updated>2025-09-14T00:00:00+00:00</updated>
   <id>https://jjrscott.com/to-deflate-or-not</id>
   <content type="html">A very simple worked example</content>
 </entry>
 
 <entry>
   <title>Combine and SwiftUI onReceive</title>
   <link href="https://jjrscott.com/combine-and-swiftui-onreceive/"/>
   <updated>2025-09-08T00:00:00+00:00</updated>
   <id>https://jjrscott.com/combine-and-swiftui-onreceive</id>
   <content type="html">A few informative SwiftUI/Combine traces</content>
 </entry>
 
 <entry>
   <title>Decoding JSON from scratch in Swift</title>
   <link href="https://jjrscott.com/json-from-scratch-in-swift/"/>
   <updated>2025-08-30T00:00:00+00:00</updated>
   <id>https://jjrscott.com/json-from-scratch-in-swift</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Output JSON AST directly from tsc</title>
   <link href="https://jjrscott.com/output-json-ast-directly-from-tsc/"/>
   <updated>2025-02-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/output-json-ast-directly-from-tsc</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>It should be simpler to support piping input</title>
   <link href="https://jjrscott.com/it-should-be-simpler-to-support-piping-input/"/>
   <updated>2025-02-04T00:00:00+00:00</updated>
   <id>https://jjrscott.com/it-should-be-simpler-to-support-piping-input</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Add a tag in remote repository without adding the repo on local</title>
   <link href="https://jjrscott.com/add-a-tag-in-remote-repository-without-adding-the-repo-on-local/"/>
   <updated>2024-06-13T00:00:00+00:00</updated>
   <id>https://jjrscott.com/add-a-tag-in-remote-repository-without-adding-the-repo-on-local</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Add a preference key to NSViewPepresentable/UIViewRepresentable in SwiftUI</title>
   <link href="https://jjrscott.com/add-a-preference-key-to-nsviewpepresentable-uiviewrepresentable-in-swiftui/"/>
   <updated>2024-06-01T00:00:00+00:00</updated>
   <id>https://jjrscott.com/add-a-preference-key-to-nsviewpepresentable-uiviewrepresentable-in-swiftui</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Loga-</title>
   <link href="https://jjrscott.com/loga/"/>
   <updated>2023-09-02T00:00:00+00:00</updated>
   <id>https://jjrscott.com/loga</id>
   <content type="html">A logarithmic unit prefix for big and small numbers</content>
 </entry>
 
 <entry>
   <title>Serialisation formats</title>
   <link href="https://jjrscott.com/serialisation-formats/"/>
   <updated>2023-02-09T00:00:00+00:00</updated>
   <id>https://jjrscott.com/serialisation-formats</id>
   <content type="html">The alphabet&apos;s just to big (or small)</content>
 </entry>
 
 <entry>
   <title>Ship the Template</title>
   <link href="https://jjrscott.com/ship-the-template/"/>
   <updated>2023-01-23T00:00:00+00:00</updated>
   <id>https://jjrscott.com/ship-the-template</id>
   <content type="html">Pipeline first, product second</content>
 </entry>
 
 <entry>
   <title>LZW without pre-populated string table / alphabet</title>
   <link href="https://jjrscott.com/lzw-without-pre-populated-alphabet/"/>
   <updated>2022-09-11T00:00:00+00:00</updated>
   <id>https://jjrscott.com/lzw-without-pre-populated-alphabet</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>How to get device make and model on iOS?</title>
   <link href="https://jjrscott.com/how-to-get-device-make-and-model-on-ios/"/>
   <updated>2022-08-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/how-to-get-device-make-and-model-on-ios</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Leaky wire formats</title>
   <link href="https://jjrscott.com/leaky-wire-formats/"/>
   <updated>2022-04-08T00:00:00+00:00</updated>
   <id>https://jjrscott.com/leaky-wire-formats</id>
   <content type="html">Leaky abstraction in the Protocol Buffers wire format</content>
 </entry>
 
 <entry>
   <title>Cache JIRA issues to SQLite</title>
   <link href="https://jjrscott.com/cache-jira-issues-to-sqlite/"/>
   <updated>2022-02-14T00:00:00+00:00</updated>
   <id>https://jjrscott.com/cache-jira-issues-to-sqlite</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>How to convert ASCII character to CGKeyCode?</title>
   <link href="https://jjrscott.com/how-to-convert-ascii-character-to-cgkeycode/"/>
   <updated>2022-02-09T00:00:00+00:00</updated>
   <id>https://jjrscott.com/how-to-convert-ascii-character-to-cgkeycode</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Word for Word</title>
   <link href="https://jjrscott.com/word-for-word/"/>
   <updated>2022-02-06T00:00:00+00:00</updated>
   <id>https://jjrscott.com/word-for-word</id>
   <content type="html">Literal translation in action</content>
 </entry>
 
 <entry>
   <title>Incremental migration to Structured Concurrency</title>
   <link href="https://jjrscott.com/incremental-migration-to-structured-concurrency/"/>
   <updated>2022-01-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/incremental-migration-to-structured-concurrency</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Override iOS volume buttons</title>
   <link href="https://jjrscott.com/override-ios-volume-buttons/"/>
   <updated>2022-01-22T00:00:00+00:00</updated>
   <id>https://jjrscott.com/override-ios-volume-buttons</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Convenience asynchronous completion handlers</title>
   <link href="https://jjrscott.com/convenience-asynchronous-completion-handlers/"/>
   <updated>2021-10-11T00:00:00+00:00</updated>
   <id>https://jjrscott.com/convenience-asynchronous-completion-handlers</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Bidirectional messaging between your iOS app and UI tests</title>
   <link href="https://jjrscott.com/xctestbackchannel/"/>
   <updated>2021-09-03T00:00:00+00:00</updated>
   <id>https://jjrscott.com/xctestbackchannel</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>iOS Application state diagrams</title>
   <link href="https://jjrscott.com/ios-application-state-diagrams/"/>
   <updated>2021-08-08T00:00:00+00:00</updated>
   <id>https://jjrscott.com/ios-application-state-diagrams</id>
   <content type="html">A selection of informative iOS traces</content>
 </entry>
 
 <entry>
   <title>Probabity of Death</title>
   <link href="https://jjrscott.com/probability-of-death/"/>
   <updated>2020-05-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/probability-of-death</id>
   <content type="html">Relationship between Speed and Risk of Fatal Injury</content>
 </entry>
 
 <entry>
   <title>Index based binary search</title>
   <link href="https://jjrscott.com/index-based-binary-search/"/>
   <updated>2020-01-26T00:00:00+00:00</updated>
   <id>https://jjrscott.com/index-based-binary-search</id>
   <content type="html">We need the array itself and the key, which we supplied to the algorithm</content>
 </entry>
 
 <entry>
   <title>Filenames as metadata</title>
   <link href="https://jjrscott.com/filenames-as-metadata/"/>
   <updated>2019-02-12T00:00:00+00:00</updated>
   <id>https://jjrscott.com/filenames-as-metadata</id>
   <content type="html">Filename and file size are the only metadata you can rely on</content>
 </entry>
 
 <entry>
   <title>Dependency injection</title>
   <link href="https://jjrscott.com/dependency-injection-with-typealias/"/>
   <updated>2018-11-18T00:00:00+00:00</updated>
   <id>https://jjrscott.com/dependency-injection-with-typealias</id>
   <content type="html">Swift DI with type alias declarations</content>
 </entry>
 
 <entry>
   <title>Unidecode</title>
   <link href="https://jjrscott.com/unidecode/"/>
   <updated>2018-10-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/unidecode</id>
   <content type="html">Plain ASCII transliterations of Unicode text</content>
 </entry>
 
 <entry>
   <title>Migrating to Swift</title>
   <link href="https://jjrscott.com/migrating-to-swift/"/>
   <updated>2018-10-07T00:00:00+00:00</updated>
   <id>https://jjrscott.com/migrating-to-swift</id>
   <content type="html">Migrating a very old project from Object-C to Swift</content>
 </entry>
 
 <entry>
   <title>Future proofing library APIs</title>
   <link href="https://jjrscott.com/future-proofing-library-apis/"/>
   <updated>2018-10-06T00:00:00+00:00</updated>
   <id>https://jjrscott.com/future-proofing-library-apis</id>
   <content type="html">Moving version checking to the runtime</content>
 </entry>
 
 <entry>
   <title>Code layout and display</title>
   <link href="https://jjrscott.com/code-layout-and-display/"/>
   <updated>2018-06-14T00:00:00+00:00</updated>
   <id>https://jjrscott.com/code-layout-and-display</id>
   <content type="html">Moving passed Objective-C&apos;s square brackets</content>
 </entry>
 
 <entry>
   <title>Importing CommonCrypto as a Swift framework</title>
   <link href="https://jjrscott.com/importing-commoncrypto-as-a-swift-framework/"/>
   <updated>2018-05-09T00:00:00+00:00</updated>
   <id>https://jjrscott.com/importing-commoncrypto-as-a-swift-framework</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Fully Linked</title>
   <link href="https://jjrscott.com/fully-linked/"/>
   <updated>2018-04-08T00:00:00+00:00</updated>
   <id>https://jjrscott.com/fully-linked</id>
   <content type="html">An example wikipedia page where every word is linked</content>
 </entry>
 
 <entry>
   <title>Basic English</title>
   <link href="https://jjrscott.com/basic-english/"/>
   <updated>2017-09-11T00:00:00+00:00</updated>
   <id>https://jjrscott.com/basic-english</id>
   <content type="html">A dictionary of C. K. Ogden’s 850 Basic English words</content>
 </entry>
 
 <entry>
   <title>Last Resort Font 1</title>
   <link href="https://jjrscott.com/last-resort-font-1/"/>
   <updated>2016-12-29T00:00:00+00:00</updated>
   <id>https://jjrscott.com/last-resort-font-1</id>
   <content type="html">A Last Resort Font (for latin readers).</content>
 </entry>
 
 <entry>
   <title>Strictly Scores</title>
   <link href="https://jjrscott.com/stictly-scores/"/>
   <updated>2016-11-26T00:00:00+00:00</updated>
   <id>https://jjrscott.com/stictly-scores</id>
   <content type="html">An example of SVG charts embedded in HTML</content>
 </entry>
 
 <entry>
   <title>Unicode browser</title>
   <link href="https://jjrscott.com/unicode-browser/"/>
   <updated>2016-04-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/unicode-browser</id>
   <content type="html">A browser of Unicode code points</content>
 </entry>
 
 <entry>
   <title>iOS devices</title>
   <link href="https://jjrscott.com/ios-devices/"/>
   <updated>2015-09-19T00:00:00+00:00</updated>
   <id>https://jjrscott.com/ios-devices</id>
   <content type="html">A matrix of iOS devices by size</content>
 </entry>
 
 <entry>
   <title>Pinyin Font 1</title>
   <link href="https://jjrscott.com/pinyin-font-1/"/>
   <updated>2015-03-05T00:00:00+00:00</updated>
   <id>https://jjrscott.com/pinyin-font-1</id>
   <content type="html">A Last Resort Font</content>
 </entry>
 
 <entry>
   <title>World time</title>
   <link href="https://jjrscott.com/world-time/"/>
   <updated>2015-02-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/world-time</id>
   <content type="html">24 … 3 … 1</content>
 </entry>
 
 <entry>
   <title>Desktop iOS</title>
   <link href="https://jjrscott.com/desktop-ios/"/>
   <updated>2014-02-04T00:00:00+00:00</updated>
   <id>https://jjrscott.com/desktop-ios</id>
   <content type="html">An example of what VoiceOver can do for sighted users</content>
 </entry>
 
 <entry>
   <title>Problems with languages</title>
   <link href="https://jjrscott.com/problems-with-languages/"/>
   <updated>2011-04-22T00:00:00+00:00</updated>
   <id>https://jjrscott.com/problems-with-languages</id>
   <content type="html">Welcome to the Hotel California</content>
 </entry>
 
 <entry>
   <title>On the UI of links</title>
   <link href="https://jjrscott.com/on-the-ui-of-links/"/>
   <updated>2011-02-19T00:00:00+00:00</updated>
   <id>https://jjrscott.com/on-the-ui-of-links</id>
   <content type="html">Handling pages with a lot of links</content>
 </entry>
 
 <entry>
   <title>2010 Calendar</title>
   <link href="https://jjrscott.com/2010-calendar/"/>
   <updated>2009-12-15T00:00:00+00:00</updated>
   <id>https://jjrscott.com/2010-calendar</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>2009 Calendar</title>
   <link href="https://jjrscott.com/2009-calendar/"/>
   <updated>2009-01-15T00:00:00+00:00</updated>
   <id>https://jjrscott.com/2009-calendar</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Oatmeal and Raisin Cookies</title>
   <link href="https://jjrscott.com/oatmeal-and-raisin-cookies/"/>
   <updated>2008-12-07T00:00:00+00:00</updated>
   <id>https://jjrscott.com/oatmeal-and-raisin-cookies</id>
   <content type="html">Tasty cookies that should be good for you (but aren&apos;t)</content>
 </entry>
 
 <entry>
   <title>Kardashev scale</title>
   <link href="https://jjrscott.com/kardashev-scale/"/>
   <updated>2008-11-16T00:00:00+00:00</updated>
   <id>https://jjrscott.com/kardashev-scale</id>
   <content type="html">How much power a Type I citizen would have</content>
 </entry>
 
 <entry>
   <title>Exchange rates</title>
   <link href="https://jjrscott.com/exchange-rates/"/>
   <updated>2008-11-09T00:00:00+00:00</updated>
   <id>https://jjrscott.com/exchange-rates</id>
   <content type="html">Time is money</content>
 </entry>
 
 <entry>
   <title>Curtains</title>
   <link href="https://jjrscott.com/curtains/"/>
   <updated>2008-10-30T00:00:00+00:00</updated>
   <id>https://jjrscott.com/curtains</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Designing a better calendar</title>
   <link href="https://jjrscott.com/designing-a-better-calendar/"/>
   <updated>2008-08-21T00:00:00+00:00</updated>
   <id>https://jjrscott.com/designing-a-better-calendar</id>
   <content type="html">Tthe learning is in the doing</content>
 </entry>
 
 <entry>
   <title>Georgia</title>
   <link href="https://jjrscott.com/georgia/"/>
   <updated>2008-07-26T00:00:00+00:00</updated>
   <id>https://jjrscott.com/georgia</id>
   <content type="html">Flores, but with objects and integers</content>
 </entry>
 
 <entry>
   <title>Marriage</title>
   <link href="https://jjrscott.com/marriage/"/>
   <updated>2008-05-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/marriage</id>
   <content type="html">Pairing up in the UK</content>
 </entry>
 
 <entry>
   <title>Dear Scotland</title>
   <link href="https://jjrscott.com/dear-scotland/"/>
   <updated>2008-05-21T00:00:00+00:00</updated>
   <id>https://jjrscott.com/dear-scotland</id>
   <content type="html">A lament</content>
 </entry>
 
 <entry>
   <title>In search of a crime</title>
   <link href="https://jjrscott.com/in-search-of-a-crime/"/>
   <updated>2008-01-20T00:00:00+00:00</updated>
   <id>https://jjrscott.com/in-search-of-a-crime</id>
   <content type="html">Peeling apart the crime</content>
 </entry>
 
 <entry>
   <title>The game is on</title>
   <link href="https://jjrscott.com/the-game-is-on/"/>
   <updated>2007-06-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/the-game-is-on</id>
   <content type="html">and on, and on, …</content>
 </entry>
 
 <entry>
   <title>Flores</title>
   <link href="https://jjrscott.com/flores/"/>
   <updated>2007-04-12T00:00:00+00:00</updated>
   <id>https://jjrscott.com/flores</id>
   <content type="html">A programming language in 639 lines</content>
 </entry>
 
 <entry>
   <title>Tax Loopholes</title>
   <link href="https://jjrscott.com/tax-loopholes/"/>
   <updated>2007-03-04T00:00:00+00:00</updated>
   <id>https://jjrscott.com/tax-loopholes</id>
   <content type="html">On donating to the state</content>
 </entry>
 
 <entry>
   <title>Choices</title>
   <link href="https://jjrscott.com/choices/"/>
   <updated>2007-03-04T00:00:00+00:00</updated>
   <id>https://jjrscott.com/choices</id>
   <content type="html">The country&apos;s favourite word</content>
 </entry>
 
 <entry>
   <title>In search of no crime</title>
   <link href="https://jjrscott.com/in-search-of-no-crime/"/>
   <updated>2007-01-03T00:00:00+00:00</updated>
   <id>https://jjrscott.com/in-search-of-no-crime</id>
   <content type="html">On lowering the crime rate to zero</content>
 </entry>
 
 <entry>
   <title>Pilgrim's rest</title>
   <link href="https://jjrscott.com/pilgrims-rest/"/>
   <updated>2006-10-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/pilgrims-rest</id>
   <content type="html">I miss my mother.</content>
 </entry>
 
 <entry>
   <title>Russian roulette at 30 miles per hour</title>
   <link href="https://jjrscott.com/russian-roulette-at-30-miles-per-hour/"/>
   <updated>2006-09-13T00:00:00+00:00</updated>
   <id>https://jjrscott.com/russian-roulette-at-30-miles-per-hour</id>
   <content type="html">A dangerous game should always beat an everyday occurrence</content>
 </entry>
 
 <entry>
   <title>The physical network stack</title>
   <link href="https://jjrscott.com/the-physical-network-stack/"/>
   <updated>2006-09-05T00:00:00+00:00</updated>
   <id>https://jjrscott.com/the-physical-network-stack</id>
   <content type="html">Working out what the difference is between the road and rail network</content>
 </entry>
 
 <entry>
   <title>Marking multiple arbitrary points on Google Maps</title>
   <link href="https://jjrscott.com/marking-multiple-arbitrary-points-on-google-maps/"/>
   <updated>2006-08-27T00:00:00+00:00</updated>
   <id>https://jjrscott.com/marking-multiple-arbitrary-points-on-google-maps</id>
   <content type="html">Back to Oakland with more!</content>
 </entry>
 
 <entry>
   <title>Rape on trial</title>
   <link href="https://jjrscott.com/rape-on-trial/"/>
   <updated>2006-07-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/rape-on-trial</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>My Strengths</title>
   <link href="https://jjrscott.com/my-strengths/"/>
   <updated>2006-03-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/my-strengths</id>
   <content type="html">I took an online test</content>
 </entry>
 
 <entry>
   <title>Imagine</title>
   <link href="https://jjrscott.com/imagine/"/>
   <updated>2006-02-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/imagine</id>
   <content type="html">Imagine the perfect journey</content>
 </entry>
 
 <entry>
   <title>Yet Another Programming Language</title>
   <link href="https://jjrscott.com/yet-another-programming-language/"/>
   <updated>2006-02-07T00:00:00+00:00</updated>
   <id>https://jjrscott.com/yet-another-programming-language</id>
   <content type="html">Do not design and write a programming language</content>
 </entry>
 
 <entry>
   <title>Becoming An Early Riser: The Aftermath</title>
   <link href="https://jjrscott.com/becoming-an-early-riser-the-aftermath/"/>
   <updated>2005-11-16T00:00:00+00:00</updated>
   <id>https://jjrscott.com/becoming-an-early-riser-the-aftermath</id>
   <content type="html">Turns out there is, an actual Saturday morning</content>
 </entry>
 
 <entry>
   <title>Rules of the road</title>
   <link href="https://jjrscott.com/rules-of-the-road/"/>
   <updated>2005-10-28T00:00:00+00:00</updated>
   <id>https://jjrscott.com/rules-of-the-road</id>
   <content type="html">Sprint towards the wall as fast as you can</content>
 </entry>
 
 <entry>
   <title>Death is Nothing at all</title>
   <link href="https://jjrscott.com/death-is-nothing-at-all/"/>
   <updated>2005-10-19T00:00:00+00:00</updated>
   <id>https://jjrscott.com/death-is-nothing-at-all</id>
   <content type="html">All is well</content>
 </entry>
 
 <entry>
   <title>A JavaScript Calendar</title>
   <link href="https://jjrscott.com/a-javascript-calendar/"/>
   <updated>2005-10-16T00:00:00+00:00</updated>
   <id>https://jjrscott.com/a-javascript-calendar</id>
   <content type="html"></content>
 </entry>
 
 <entry>
   <title>Markers at arbitrary points on Google Maps</title>
   <link href="https://jjrscott.com/markers-at-arbitrary-points-on-google-maps/"/>
   <updated>2005-10-08T00:00:00+00:00</updated>
   <id>https://jjrscott.com/markers-at-arbitrary-points-on-google-maps</id>
   <content type="html">Nudging the marker</content>
 </entry>
 
 <entry>
   <title>Rich Dad, Poor Dad</title>
   <link href="https://jjrscott.com/rich-dad-poor-dad/"/>
   <updated>2005-09-25T00:00:00+00:00</updated>
   <id>https://jjrscott.com/rich-dad-poor-dad</id>
   <content type="html">What the rich allegedly teach their kids about money</content>
 </entry>
 
 <entry>
   <title>Becoming An Early Riser</title>
   <link href="https://jjrscott.com/becoming-an-early-riser/"/>
   <updated>2005-09-20T00:00:00+00:00</updated>
   <id>https://jjrscott.com/becoming-an-early-riser</id>
   <content type="html">I never knew that there was an actual Saturday morning</content>
 </entry>
 
 <entry>
   <title>The lot of women and men</title>
   <link href="https://jjrscott.com/the-lot-of-women-and-men/"/>
   <updated>2005-08-24T00:00:00+00:00</updated>
   <id>https://jjrscott.com/the-lot-of-women-and-men</id>
   <content type="html">A tale of two groups</content>
 </entry>
 

</feed>
