41554 blogs · [ { "id": "01a0878e-1e8d-73b7-8802-4a03471b80d2", "title": "Understanding Deflate", "url": "https://jjrscott.com/to-deflate-or-not/", "published_at": "2025-09-14T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0347b2260d", "title": "Combine and SwiftUI onReceive", "url": "https://jjrscott.com/combine-and-swiftui-onreceive/", "published_at": "2025-09-08T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034879bd52", "title": "Decoding JSON from scratch in Swift", "url": "https://jjrscott.com/json-from-scratch-in-swift/", "published_at": "2025-08-30T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0349329532", "title": "Output JSON AST directly from tsc", "url": "https://jjrscott.com/output-json-ast-directly-from-tsc/", "published_at": "2025-02-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03496e63ad", "title": "It should be simpler to support piping input", "url": "https://jjrscott.com/it-should-be-simpler-to-support-piping-input/", "published_at": "2025-02-04T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034a0e44bd", "title": "Add a tag in remote repository without adding the repo on local", "url": "https://jjrscott.com/add-a-tag-in-remote-repository-without-adding-the-repo-on-local/", "published_at": "2024-06-13T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034afdf583", "title": "Add a preference key to NSViewPepresentable/UIViewRepresentable in SwiftUI", "url": "https://jjrscott.com/add-a-preference-key-to-nsviewpepresentable-uiviewrepresentable-in-swiftui/", "published_at": "2024-06-01T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034ba682c2", "title": "Loga-", "url": "https://jjrscott.com/loga/", "published_at": "2023-09-02T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034c719b9c", "title": "Serialisation formats", "url": "https://jjrscott.com/serialisation-formats/", "published_at": "2023-02-09T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034cd9b597", "title": "Ship the Template", "url": "https://jjrscott.com/ship-the-template/", "published_at": "2023-01-23T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034d91819f", "title": "LZW without pre-populated string table / alphabet", "url": "https://jjrscott.com/lzw-without-pre-populated-alphabet/", "published_at": "2022-09-11T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034df4d40d", "title": "How to get device make and model on iOS?", "url": "https://jjrscott.com/how-to-get-device-make-and-model-on-ios/", "published_at": "2022-08-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034e4e1213", "title": "Leaky wire formats", "url": "https://jjrscott.com/leaky-wire-formats/", "published_at": "2022-04-08T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034f3441d3", "title": "Cache JIRA issues to SQLite", "url": "https://jjrscott.com/cache-jira-issues-to-sqlite/", "published_at": "2022-02-14T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a034fe440ae", "title": "How to convert ASCII character to CGKeyCode?", "url": "https://jjrscott.com/how-to-convert-ascii-character-to-cgkeycode/", "published_at": "2022-02-09T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0350d80659", "title": "Word for Word", "url": "https://jjrscott.com/word-for-word/", "published_at": "2022-02-06T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035167269b", "title": "Incremental migration to Structured Concurrency", "url": "https://jjrscott.com/incremental-migration-to-structured-concurrency/", "published_at": "2022-01-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0351d69842", "title": "Override iOS volume buttons", "url": "https://jjrscott.com/override-ios-volume-buttons/", "published_at": "2022-01-22T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0352044c2a", "title": "Convenience asynchronous completion handlers", "url": "https://jjrscott.com/convenience-asynchronous-completion-handlers/", "published_at": "2021-10-11T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03520f6e53", "title": "Bidirectional messaging between your iOS app and UI tests", "url": "https://jjrscott.com/xctestbackchannel/", "published_at": "2021-09-03T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035254d9ff", "title": "iOS Application state diagrams", "url": "https://jjrscott.com/ios-application-state-diagrams/", "published_at": "2021-08-08T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035280e005", "title": "Probabity of Death", "url": "https://jjrscott.com/probability-of-death/", "published_at": "2020-05-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0353175c95", "title": "Index based binary search", "url": "https://jjrscott.com/index-based-binary-search/", "published_at": "2020-01-26T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03531fd7c7", "title": "Filenames as metadata", "url": "https://jjrscott.com/filenames-as-metadata/", "published_at": "2019-02-12T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0353497df4", "title": "Dependency injection", "url": "https://jjrscott.com/dependency-injection-with-typealias/", "published_at": "2018-11-18T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0353674f98", "title": "Unidecode", "url": "https://jjrscott.com/unidecode/", "published_at": "2018-10-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03538c2802", "title": "Migrating to Swift", "url": "https://jjrscott.com/migrating-to-swift/", "published_at": "2018-10-07T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0353fba627", "title": "Future proofing library APIs", "url": "https://jjrscott.com/future-proofing-library-apis/", "published_at": "2018-10-06T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0354c5d78f", "title": "Code layout and display", "url": "https://jjrscott.com/code-layout-and-display/", "published_at": "2018-06-14T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0355090e64", "title": "Importing CommonCrypto as a Swift framework", "url": "https://jjrscott.com/importing-commoncrypto-as-a-swift-framework/", "published_at": "2018-05-09T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0355b95354", "title": "Fully Linked", "url": "https://jjrscott.com/fully-linked/", "published_at": "2018-04-08T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035632fab4", "title": "Basic English", "url": "https://jjrscott.com/basic-english/", "published_at": "2017-09-11T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0356f840a7", "title": "Last Resort Font 1", "url": "https://jjrscott.com/last-resort-font-1/", "published_at": "2016-12-29T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035711a890", "title": "Strictly Scores", "url": "https://jjrscott.com/stictly-scores/", "published_at": "2016-11-26T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0357ae6be2", "title": "Unicode browser", "url": "https://jjrscott.com/unicode-browser/", "published_at": "2016-04-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03580a072a", "title": "iOS devices", "url": "https://jjrscott.com/ios-devices/", "published_at": "2015-09-19T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035829f0d5", "title": "Pinyin Font 1", "url": "https://jjrscott.com/pinyin-font-1/", "published_at": "2015-03-05T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0358c5c682", "title": "World time", "url": "https://jjrscott.com/world-time/", "published_at": "2015-02-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03594ab746", "title": "Desktop iOS", "url": "https://jjrscott.com/desktop-ios/", "published_at": "2014-02-04T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035a49d129", "title": "Problems with languages", "url": "https://jjrscott.com/problems-with-languages/", "published_at": "2011-04-22T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035abaa3f4", "title": "On the UI of links", "url": "https://jjrscott.com/on-the-ui-of-links/", "published_at": "2011-02-19T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035adc2bc4", "title": "2010 Calendar", "url": "https://jjrscott.com/2010-calendar/", "published_at": "2009-12-15T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035b6c8643", "title": "2009 Calendar", "url": "https://jjrscott.com/2009-calendar/", "published_at": "2009-01-15T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035c24b9f6", "title": "Oatmeal and Raisin Cookies", "url": "https://jjrscott.com/oatmeal-and-raisin-cookies/", "published_at": "2008-12-07T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035c353996", "title": "Kardashev scale", "url": "https://jjrscott.com/kardashev-scale/", "published_at": "2008-11-16T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035c4f143e", "title": "Exchange rates", "url": "https://jjrscott.com/exchange-rates/", "published_at": "2008-11-09T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035cfa3bdb", "title": "Curtains", "url": "https://jjrscott.com/curtains/", "published_at": "2008-10-30T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035da1a106", "title": "Designing a better calendar", "url": "https://jjrscott.com/designing-a-better-calendar/", "published_at": "2008-08-21T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035e4a951e", "title": "Georgia", "url": "https://jjrscott.com/georgia/", "published_at": "2008-07-26T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035edcab4b", "title": "Marriage", "url": "https://jjrscott.com/marriage/", "published_at": "2008-05-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035f1ca4d0", "title": "Dear Scotland", "url": "https://jjrscott.com/dear-scotland/", "published_at": "2008-05-21T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a035f7b238b", "title": "In search of a crime", "url": "https://jjrscott.com/in-search-of-a-crime/", "published_at": "2008-01-20T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036077f3e3", "title": "The game is on", "url": "https://jjrscott.com/the-game-is-on/", "published_at": "2007-06-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036143b7f2", "title": "Flores", "url": "https://jjrscott.com/flores/", "published_at": "2007-04-12T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0361a9bcef", "title": "Tax Loopholes", "url": "https://jjrscott.com/tax-loopholes/", "published_at": "2007-03-04T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03624342c1", "title": "Choices", "url": "https://jjrscott.com/choices/", "published_at": "2007-03-04T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0362d36610", "title": "In search of no crime", "url": "https://jjrscott.com/in-search-of-no-crime/", "published_at": "2007-01-03T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0363cde0a3", "title": "Pilgrim's rest", "url": "https://jjrscott.com/pilgrims-rest/", "published_at": "2006-10-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0363f72b46", "title": "Russian roulette at 30 miles per hour", "url": "https://jjrscott.com/russian-roulette-at-30-miles-per-hour/", "published_at": "2006-09-13T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a03647f9bdf", "title": "The physical network stack", "url": "https://jjrscott.com/the-physical-network-stack/", "published_at": "2006-09-05T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0365018435", "title": "Marking multiple arbitrary points on Google Maps", "url": "https://jjrscott.com/marking-multiple-arbitrary-points-on-google-maps/", "published_at": "2006-08-27T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0365eeb9aa", "title": "Rape on trial", "url": "https://jjrscott.com/rape-on-trial/", "published_at": "2006-07-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0366afca33", "title": "My Strengths", "url": "https://jjrscott.com/my-strengths/", "published_at": "2006-03-24T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0366fd6a3e", "title": "Imagine", "url": "https://jjrscott.com/imagine/", "published_at": "2006-02-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0367e0e3fc", "title": "Yet Another Programming Language", "url": "https://jjrscott.com/yet-another-programming-language/", "published_at": "2006-02-07T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036879cf5c", "title": "Becoming An Early Riser: The Aftermath", "url": "https://jjrscott.com/becoming-an-early-riser-the-aftermath/", "published_at": "2005-11-16T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036889f5f3", "title": "Rules of the road", "url": "https://jjrscott.com/rules-of-the-road/", "published_at": "2005-10-28T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0368fbde89", "title": "Death is Nothing at all", "url": "https://jjrscott.com/death-is-nothing-at-all/", "published_at": "2005-10-19T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a0369b7f1c3", "title": "A JavaScript Calendar", "url": "https://jjrscott.com/a-javascript-calendar/", "published_at": "2005-10-16T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036a77cff0", "title": "Markers at arbitrary points on Google Maps", "url": "https://jjrscott.com/markers-at-arbitrary-points-on-google-maps/", "published_at": "2005-10-08T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036ab7726e", "title": "Rich Dad, Poor Dad", "url": "https://jjrscott.com/rich-dad-poor-dad/", "published_at": "2005-09-25T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036b4dc8b5", "title": "Becoming An Early Riser", "url": "https://jjrscott.com/becoming-an-early-riser/", "published_at": "2005-09-20T00:00:00+00:00" }, { "id": "01a0878e-1e8d-73b7-8802-4a036c24160e", "title": "The lot of women and men", "url": "https://jjrscott.com/the-lot-of-women-and-men/", "published_at": "2005-08-24T00:00:00+00:00" } ] posts Claim your blog
Back to jjrscott.com
Blog · corpus.blog/blogs/jjrscott.com/posts

jjrscott.com

jjrscott.com

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2011

2009

2008

2007

2006

2005