# Structure and Interpretation of Computer Programmers > From programmer to software engineer. > Contact: graham@iamleeg.com ## Full Content Export - **URL**: https://www.sicpers.info/llms-full.txt ### Posts - [(No Title)](https://www.sicpers.info/2006/04/2600/) - [(No Title)](https://www.sicpers.info/2006/04/2599/) - [(No Title)](https://www.sicpers.info/2006/04/2598/) - [(No Title)](https://www.sicpers.info/2006/04/2597/) - [(No Title)](https://www.sicpers.info/2006/04/2596/) - [(No Title)](https://www.sicpers.info/2014/11/1372/) - [(No Title)](https://www.sicpers.info/2014/11/1377/) - [(No Title)](https://www.sicpers.info/2014/11/1381/) - [(No Title)](https://www.sicpers.info/2014/11/1383/) - [(No Title)](https://www.sicpers.info/2014/11/1385/) - ["Brand": you win some, you lose some](https://www.sicpers.info/2018/05/brand-you-win-some-you-lose-some/) - ["Patently" obvious](https://www.sicpers.info/2008/02/patently-obvious/) - ["Patently" secure](https://www.sicpers.info/2011/05/patently-secure/) - ["Reasoning about code" is a scam](https://www.sicpers.info/2021/01/reasoning-about-code-is-a-scam/) - ["When I had that problem"](https://www.sicpers.info/2015/09/when-i-had-that-problem/) - ["You could simply do X" costs more](https://www.sicpers.info/2013/03/you-could-simply-do-x-costs-more/) - [*-Oriented Programming](https://www.sicpers.info/2015/10/oriented-programming/) - [+1-415-312-0555](https://www.sicpers.info/2007/10/1-415-312-0555/) - [...and in the end there will be the command line.](https://www.sicpers.info/2015/01/and-in-the-end-there-will-be-the-command-line/) - [20 things learned in 20 years as a software engineer](https://www.sicpers.info/2021/10/20-things-learned-in-20-years-as-a-software-engineer/) - [2017: the year of configuring Linux (or Windows, or OS X, or...) on the desktop](https://www.sicpers.info/2017/01/2017-the-year-of-configuring-linux-or-windows-or-os-x-or-on-the-desktop/) - [6502](https://www.sicpers.info/2020/08/6502/) - [YOUR development team needs security engineers](https://www.sicpers.info/2010/09/your-development-team-needs-security-engineers/) - [A better bit o' twitter than the bitter twitter Tommy Titter bought](https://www.sicpers.info/2008/09/a-better-bit-o-twitter-than-the-bitter-twitter-tommy-titter-bought/) - [A bit late for that, isn't it?](https://www.sicpers.info/2007/06/a-bit-late-for-that-isnt-it/) - [A bit of backup script](https://www.sicpers.info/2007/05/a-bit-of-backup-script/) - [A brief history of talking on the interwebs (or: why I'm not on app.net)](https://www.sicpers.info/2012/08/a-brief-history-of-talking-on-the-interwebs-or-why-im-not-on-app-net/) - [A brief interlude](https://www.sicpers.info/2015/06/a-brief-interlude/) - [A bunch of monkeys with typewriters](https://www.sicpers.info/2011/12/a-bunch-of-monkeys-with-typewriters/) - [A Cupertino Yankee in the Court of King Ballmer](https://www.sicpers.info/2011/05/a-cupertino-yankee-in-the-court-of-king-ballmer/) - [A first look at appCode, and the future of Cocoa IDEs?](https://www.sicpers.info/2011/04/a-first-look-at-appcode-and-the-future-of-cocoa-ides/) - [A hopefully modern description of Object-Oriented Analysis](https://www.sicpers.info/2021/05/a-hopefully-modern-description-of-object-oriented-analysis/) - [A hopefully modern description of Object-Oriented Design](https://www.sicpers.info/2021/05/a-hopefully-modern-description-of-object-oriented-design/) - [A kata above](https://www.sicpers.info/2015/04/a-kata-above/) - [A lack of CocoaHeads](https://www.sicpers.info/2009/02/a-lack-of-cocoaheads/) - [A little challenge](https://www.sicpers.info/2018/11/a-little-challenge/) - [A note on notes](https://www.sicpers.info/2013/03/a-note-on-notes/) - [A question of focus](https://www.sicpers.info/2019/10/a-question-of-focus/) - [A rap upon the noggin](https://www.sicpers.info/2009/08/a-rap-upon-the-noggin/) - [A site for discussing app security](https://www.sicpers.info/2010/12/a-site-for-discussing-app-security/) - [A sneaky preview of ClassBrowser](https://www.sicpers.info/2013/12/a-sneaky-preview-of-classbrowser/) - [A solution in need of a problem](https://www.sicpers.info/2010/06/a-solution-in-need-of-a-problem/) - [A spot of ultravaiolence, my droogs?](https://www.sicpers.info/2006/10/a-spot-of-ultravaiolence-my-droogs/) - [A subtle [mis]understanding of monads](https://www.sicpers.info/2015/02/a-subtle-misunderstanding-of-monads/) - [A two-dimensional dictionary](https://www.sicpers.info/2013/03/a-two-dimensional-dictionary/) - [About NSMailDelivery and Message.framework](https://www.sicpers.info/2006/04/about-nsmaildelivery-and-message-framework/) - [Acne cream](https://www.sicpers.info/2017/04/acne-cream/) - [Adding components to a GNUstep web / WebObjects app](https://www.sicpers.info/2012/03/adding-components-to-a-gsw-app/) - [Against our values as a company](https://www.sicpers.info/2017/12/against-our-values-as-a-company/) - [Agile application security](https://www.sicpers.info/2013/12/agile-application-security/) - [Ah, the sweet sound of my own voice](https://www.sicpers.info/2008/07/ah-the-sweet-sound-of-my-own-voice/) - [AJAX via jQuery in an Objective-C WebObjects app](https://www.sicpers.info/2013/07/ajax-via-jquery-in-an-objective-c-webobjects-app/) - [All the more reason to like FOSDEM](https://www.sicpers.info/2007/04/all-the-more-reason-to-like-fosdem/) - [All the things](https://www.sicpers.info/2017/12/all-the-things/) - [All you never wanted to know about temporary files and were too ambivalent to ask](https://www.sicpers.info/2008/10/all-you-never-wanted-to-know-about-temporary-files-and-were-too-ambivalent-to-ask/) - [AMA](https://www.sicpers.info/2021/06/ama/) - [An acceptable tool](https://www.sicpers.info/2015/04/an-acceptable-tool/) - [An apology and an opportunity](https://www.sicpers.info/2012/04/an-apology-and-an-opportunity/) - [An apology to readers of Test-Driven iOS Development](https://www.sicpers.info/2012/09/an-apology-to-readers-of-test-driven-ios-development/) - [An entirely unwarranted comparison between software engineering and astronomy](https://www.sicpers.info/2013/05/an-entirely-unwarranted-comparison-between-software-engineering-and-astronomy/) - [An example of unit testing working for me](https://www.sicpers.info/2010/10/an-example-of-unit-testing-working-for-me/) - [An Imagined History of Agile Software Development](https://www.sicpers.info/2021/11/an-imagined-history-of-agile-software-development/) - [An Imagined History of Object-Oriented Programming](https://www.sicpers.info/2021/06/an-imagined-history-of-object-oriented-programming/) - [An observation designed to aid the reading of books on software](https://www.sicpers.info/2013/02/an-observation-designed-to-aid-the-reading-of-books-on-software/) - [An odd thought](https://www.sicpers.info/2014/12/an-odd-thought/) - [An open letter to Xcode](https://www.sicpers.info/2013/01/an-open-letter-to-xcode/) - [An unhelpful distinction](https://www.sicpers.info/2017/12/an-unhelpful-distinction/) - [An update on the HURD project](https://www.sicpers.info/2018/01/an-update-on-the-hurd-project/) - [Anatomy of a software sales scam](https://www.sicpers.info/2010/02/anatomy-of-a-software-sales-scam/) - [Android: the missed opportunities](https://www.sicpers.info/2011/10/android-the-missed-opportunities/) - [Announcing AppScript](https://www.sicpers.info/2026/03/announcing-appscript/) - [Announcing Chiron Codex, a community of software centaurs](https://www.sicpers.info/2026/01/announcing-chiron-codex-a-community-of-software-centaurs/) - [Another non-year of Desktop Linux](https://www.sicpers.info/2020/07/another-non-year-of-desktop-linux/) - [Answer: none of them](https://www.sicpers.info/2016/12/answer-none-of-them/) - [Anti-lock brakes](https://www.sicpers.info/2020/07/anti-lock-brakes/) - [Anyone Can Write A Manifesto And You Can Too!™](https://www.sicpers.info/2013/02/anyone-can-write-a-manifesto-and-you-can-too/) - [Aphorism Considered Harmful](https://www.sicpers.info/2022/02/aphorism-considered-harmful/) - [App security consultancy from your favourite boffin](https://www.sicpers.info/2012/05/app-security-consultancy-under-daveaddeys-thumb/) - [Apple 2, iamleeg 0](https://www.sicpers.info/2008/09/apple-2-iamleeg-0/) - [Apple and Bug Bounties](https://www.sicpers.info/2021/09/apple-and-bug-bounties/) - [Apple and Google sitting in a tree, f-i-g-h...erm...t-i-ng](https://www.sicpers.info/2007/06/apple-and-google-sitting-in-a-tree-f-i-g-h-erm-t-i-ng/) - [Apple Silicon, Xeon Phi, and Amigas](https://www.sicpers.info/2020/11/apple-silicon-xeon-phi-and-amigas/) - [Apple Technical Briefing: Scientific computing and the Intel transition](https://www.sicpers.info/2006/04/apple-technical-briefing-scientific-computing-and-the-intel-transition/) - [Apple's Best Programming Language](https://www.sicpers.info/2016/04/apples-best-programming-language/) - [Apple's Watch and Jony's Compelling Beginning](https://www.sicpers.info/2014/09/apples-watch-and-jonys-compelling-beginning/) - [AppleScript, for once](https://www.sicpers.info/2008/09/applescript-for-once/) - [Applications and Spelling of Boole](https://www.sicpers.info/2019/05/applications-and-spelling-of-boole/) - [APPosite Concerns](https://www.sicpers.info/2014/09/apposite-concerns/) - [APPropriate Behaviour is almost done](https://www.sicpers.info/2013/04/appropriate-behaviour-is-almost-done/) - [APPropriate Behaviour is complete!](https://www.sicpers.info/2013/05/appropriate-behaviour-is-complete/) - [Apres ca, le FOSDEM](https://www.sicpers.info/2007/02/apres-ca-le-fosdem/) - [Are you an [X] programmer?](https://www.sicpers.info/2013/06/are-you-an-x-programmer/) - [AROS](https://www.sicpers.info/2017/12/aros/) - [As the Kaiser Chiefs might say: Ruby ruby ruby n00bie](https://www.sicpers.info/2013/04/as-the-kaiser-chiefs-might-say-ruby-ruby-ruby-n00bie/) - [At the old/new interface: jQuery in WebObjects](https://www.sicpers.info/2013/07/at-the-oldnew-interface-jquery-in-webobjects/) - [Automate all the server Objective-C!](https://www.sicpers.info/2012/03/automate-all-the-server-objective-c/) - [Automated tests with the GNUstep test framework](https://www.sicpers.info/2013/11/automated-tests-with-the-gnustep-test-framework/) - [Back from holiday](https://www.sicpers.info/2008/08/back-from-holiday/) - [Beer improves perception of security](https://www.sicpers.info/2009/06/beer-improves-perception-of-security/) - [Beginner thoughts](https://www.sicpers.info/2018/10/beginner-thoughts/) - [Best.  App.  Evar!](https://www.sicpers.info/2006/10/best-app-evar/) - [Better clear the office out, can't remember what the carpet looks like](https://www.sicpers.info/2006/08/better-clear-the-office-out-cant-remember-what-the-carpet-looks-like/) - [better security, not always more security](https://www.sicpers.info/2008/12/better-security-not-always-more-security/) - [Beware the IDEs](https://www.sicpers.info/2015/04/beware-the-ides/) - [Blame culture](https://www.sicpers.info/2013/06/blame-culture/) - [Blasty from the pasty](https://www.sicpers.info/2006/11/blasty-from-the-pasty/) - [Book update: OOP the Easy Way](https://www.sicpers.info/2018/08/book-update-oop-the-easy-way/) - [Bottom-up teaching](https://www.sicpers.info/2017/10/bottom-up-teaching/) - [Broke track mounting](https://www.sicpers.info/2008/03/broke-track-mounting/) - [BrowseOverflow as a Code Kata](https://www.sicpers.info/2012/05/browseoverflow-as-a-code-kata/) - [Build systems are a huge annoyance](https://www.sicpers.info/2017/03/build-systems-are-a-huge-annoyance/) - [Building a unit test target with GNUstep make](https://www.sicpers.info/2012/05/building-a-unit-test-target-with-gnustep-make/) - [Building an object-oriented dispatch system in Objective-C](https://www.sicpers.info/2012/02/building-an-object-oriented-dispatch-system-in-objective-c/) - [But where to go?](https://www.sicpers.info/2015/01/but-where-to-go/) - [By doing it and helping others do it](https://www.sicpers.info/2021/04/by-doing-it-and-helping-others-do-it/) - [By the river](https://www.sicpers.info/2016/12/by-the-river/) - [By your _cmd](https://www.sicpers.info/2013/12/by-your-_cmd/) - [Bye bye data, hello...the same data](https://www.sicpers.info/2007/05/bye-bye-data-hello-the-same-data/) - [Can code be "readable"?](https://www.sicpers.info/2012/12/can-code-be-readable/) - [Can Objective-C be given safe categories?](https://www.sicpers.info/2013/04/can-objective-c-be-given-safe-categories/) - [Can't you just...](https://www.sicpers.info/2016/11/cant-you-just/) - [Cap in Hand](https://www.sicpers.info/2021/02/cap-in-hand/) - [Careful how you define your properties](https://www.sicpers.info/2010/05/careful-how-you-define-your-properties/) - [Categories will bite you](https://www.sicpers.info/2011/04/categories-will-bite-you/) - [Ch-ch-ch-ch-changes](https://www.sicpers.info/2015/05/ch-ch-ch-ch-changes/) - [Change](https://www.sicpers.info/2019/10/change/) - [Chiron Codex early bird ends soon](https://www.sicpers.info/2026/03/chiron-codex-early-bird-ends-soon/) - [Choose boring employees](https://www.sicpers.info/2017/09/choose-boring-employees/) - [Choose boring employers](https://www.sicpers.info/2017/09/choose-boring-employers/) - [Choosing the correct openings and closures](https://www.sicpers.info/2013/09/choosing-the-correct-openings-and-closures/) - [chord graphics](https://www.sicpers.info/2009/05/chord-graphics/) - [Class clusters, placeholder objects, value-oriented programming, and all that good stuff.](https://www.sicpers.info/2012/05/class-clusters-placeholder-objects-value-oriented-programming-and-all-that-good-stuff/) - [ClassBrowser's public face](https://www.sicpers.info/2014/02/classbrowsers-public-face/) - [ClassBrowser: warts and all](https://www.sicpers.info/2014/01/classbrowser-warts-and-all/) - [Classes are globals, too](https://www.sicpers.info/2012/05/classes-are-globals-too/) - [Classes in objects in object-oriented programming in functional programming in Swift](https://www.sicpers.info/2015/06/classes-in-objects-in-object-oriented-programming-in-functional-programming-in-swift/) - [Classism in software engineering](https://www.sicpers.info/2022/04/classism-in-software-engineering/) - [Cleaner Code](https://www.sicpers.info/2018/12/cleaner-code/) - [Clown Trousers](https://www.sicpers.info/2015/12/clown-trousers/) - [Cocoa Memory Management](https://www.sicpers.info/2008/12/cocoa-memory-management/) - [Cocoa#, Mono and Me](https://www.sicpers.info/2008/07/cocoa-mono-and-me/) - [Cocoa: Model, View, Chuvmey](https://www.sicpers.info/2009/02/cocoa-model-view-chuvmey/) - [CocoaHeads Swindon](https://www.sicpers.info/2008/07/cocoaheads-swindon/) - [CocoaHeads Swindon is this Monday!](https://www.sicpers.info/2009/09/cocoaheads-swindon-is-this-monday/) - [CocoaHeads Swindon tonight!](https://www.sicpers.info/2009/07/cocoaheads-swindon-tonight/) - [CocoaHeads Swindon, January and February](https://www.sicpers.info/2010/01/cocoaheads-swindon-january-and-february/) - [Code longevity](https://www.sicpers.info/2014/04/code-longevity/) - [Code snippit from NSConference presentation](https://www.sicpers.info/2010/02/code-snippit-from-nsconference-presentation/) - [Coding. Standards.](https://www.sicpers.info/2012/07/coding-standards/) - [Come back, purple button, all is forgiven!](https://www.sicpers.info/2008/04/come-back-purple-button-all-is-forgiven/) - [Coming to terms with fewer terms](https://www.sicpers.info/2018/11/coming-to-terms-with-fewer-terms/) - [Coming very shortly...](https://www.sicpers.info/2009/07/coming-very-shortly/) - [Comment word verification](https://www.sicpers.info/2006/08/comment-word-verification/) - [Common sense writ large](https://www.sicpers.info/2008/07/common-sense-writ-large/) - [Comparing Objective-C and Objective-C with Objective-C](https://www.sicpers.info/2012/04/comparing-objective-c-and-objective-c-with-objective-c/) - [Compatibility](https://www.sicpers.info/2013/07/compatibility/) - [Complex things possible](https://www.sicpers.info/2006/05/complex-things-possible/) - [Computing's fundamental Principle of No Learning](https://www.sicpers.info/2017/12/computings-fundamental-principle-of-no-learning/) - [Comrades in OpenStep](https://www.sicpers.info/2006/04/comrades-in-openstep/) - [Concrete freedoms](https://www.sicpers.info/2020/08/concrete-freedoms/) - [Concurrent objects and SCOOP](https://www.sicpers.info/2018/11/concurrent-objects-and-scoop/) - [Configuring CruiseControl.rb in under an hour](https://www.sicpers.info/2010/06/configuring-cruisecontrol-rb-in-under-an-hour/) - [Configuring your computer for local inference with a generative AI coding assistant](https://www.sicpers.info/2026/01/configuring-your-computer-for-local-inference-with-a-generative-ai-coding-assistant/) - [Confine ALL the things!](https://www.sicpers.info/2012/03/confine-all-the-things/) - [Conflicts in my mental model of Objective-C ](https://www.sicpers.info/2013/10/conflicts-in-my-mental-model-of-objective-c/) - [Considered harmless](https://www.sicpers.info/2017/12/considered-harmless/) - [Considering society](https://www.sicpers.info/2026/02/considering-society/) - [Consulting versus micro-ISV development](https://www.sicpers.info/2009/12/consulting-versus-micro-isv-development/) - [Continuous Integration for Amiga](https://www.sicpers.info/2020/05/continuous-integration-for-amiga/) - [Contractually-obligated testing](https://www.sicpers.info/2014/08/contractually-obligated-testing/) - [Controlling opportunity](https://www.sicpers.info/2009/04/controlling-opportunity/) - [Copyleft](https://www.sicpers.info/2006/12/copyleft/) - [Core Data Haiku competition results!](https://www.sicpers.info/2010/02/core-data-haiku-competition-results/) - [Could effortless lecturers make everything seem too easy?](https://www.sicpers.info/2013/05/could-effortless-lecturers-make-everything-seem-too-easy/) - [Coupling in a Cocoa[ Touch] App](https://www.sicpers.info/2013/03/coupling-in-a-cocoa-touch-app/) - [Creating “sub-agents” with Mistral Vibe](https://www.sicpers.info/2026/01/creating-sub-agents-with-mistral-vibe/) - [Criticising the Four Freedoms](https://www.sicpers.info/2015/09/criticising-the-four-freedoms/) - [Culture Smell](https://www.sicpers.info/2017/06/culture-smell/) - [Culture, heritage and apps](https://www.sicpers.info/2012/04/culture-heritage-and-apps/) - [Dark Silicon](https://www.sicpers.info/2015/02/dark-silicon/) - [Data curation during a pandemic](https://www.sicpers.info/2021/01/data-curation-during-a-pandemic/) - [Depending on the self-interest of strangers](https://www.sicpers.info/2014/03/depending-on-the-self-interest-of-strangers/) - [Deprecating yarn](https://www.sicpers.info/2019/05/deprecating-yarn/) - [Design Patterns On Trial](https://www.sicpers.info/2022/02/design-patterns-on-trial/) - [Designing a secure Cocoa application](https://www.sicpers.info/2008/07/designing-a-secure-cocoa-application/) - [Detect the gagh lurking in your system!](https://www.sicpers.info/2009/05/detect-the-gagh-lurking-in-your-system/) - [Detecting overflows, undefined behaviour and other nasties](https://www.sicpers.info/2013/01/detecting-overflows-undefined-behaviour-and-other-nasties/) - [Détournement and Recuperation](https://www.sicpers.info/2014/11/detournement-and-recuperation/) - [Diagnosing a Docker image build problem](https://www.sicpers.info/2022/02/diagnosing-a-docker-image-build-problem/) - [Did that restructuring work actually help?](https://www.sicpers.info/2013/07/did-that-restructuring-work-actually-help/) - [Did that work? Maybe.](https://www.sicpers.info/2015/05/did-that-work-maybe/) - [Did the UK create a new kind of "Crypto Mule"?](https://www.sicpers.info/2010/12/did-the-uk-create-a-new-kind-of-crypto-mule/) - [Did you miss my NSConference talk?](https://www.sicpers.info/2009/04/did-you-miss-my-nsconference-talk/) - [Digital Declutter](https://www.sicpers.info/2019/04/digital-declutter/) - [Discipline doesn't scale](https://www.sicpers.info/2020/10/discipline-doesnt-scale/) - [Discovery](https://www.sicpers.info/2018/02/discovery/) - [Does that thing you like doing actually work?](https://www.sicpers.info/2012/08/does-that-thing-you-like-doing-actually-work/) - [Does the history of making software exist?](https://www.sicpers.info/2013/02/does-the-history-of-making-software-exist/) - [Dogma-driven development](https://www.sicpers.info/2013/09/dogma-driven-development/) - [Dogmatic paradigmatism](https://www.sicpers.info/2016/07/dogmatic-paradigmatism/) - [Don't be a dick](https://www.sicpers.info/2011/09/dont-be-a-dick/) - [Don't go there](https://www.sicpers.info/2008/02/dont-go-there/) - [Dos Amigans](https://www.sicpers.info/2020/09/dos-amigans/) - [Dynamic Method Dispatch in Object-Oriented Programming in Functional Programming in Swift](https://www.sicpers.info/2015/05/dynamic-method-dispatch-in-object-oriented-programming-in-functional-programming-in-swift/) - [Eating one's own dog food](https://www.sicpers.info/2007/01/eating-ones-own-dog-food/) - [Eating the bubble](https://www.sicpers.info/2018/06/eating-the-bubble/) - [Elegant Object-oriented Software Design via Interactive, Evolutionary Computation](https://www.sicpers.info/2013/07/elegant-object-oriented-software-design-via-interactive-evolutionary-computation/) - [Empowered free software](https://www.sicpers.info/2020/02/empowered-free-software/) - [enum class in C++11](https://www.sicpers.info/2013/06/enum-class-in-c11/) - [Essence and accident in language model-assisted coding](https://www.sicpers.info/2025/11/essence-and-accident-in-language-model-assisted-coding/) - [Even more on generalist software engineering](https://www.sicpers.info/2022/05/even-more-on-generalist-software-engineering/) - [Everyone rejecting everyone else](https://www.sicpers.info/2019/11/everyone-rejecting-everyone-else/) - [Experts around the table](https://www.sicpers.info/2019/08/experts-around-the-table/) - [Explicitly considering subtyping in inheritance](https://www.sicpers.info/2021/12/explicitly-considering-subtyping-in-inheritance/) - [e[Mac]s keyboard](https://www.sicpers.info/2006/11/emacs-keyboard/) - [Fairly cool update to GNUstep](https://www.sicpers.info/2007/02/fairly-cool-update-to-gnustep/) - [Fairness](https://www.sicpers.info/2020/08/fairness/) - [Falsehoods programmers believe about programming](https://www.sicpers.info/2017/12/falsehoods-programmers-believe-about-programming/) - [Falsehoods programmers who write "falsehoods programmers believe" articles believe about programmers who read "falsehoods programmers believe" articles](https://www.sicpers.info/2019/06/falsehoods-programmers-who-write-falsehoods-programmers-believe-articles-believe-about-programmers-who-read-falsehoods-programmers-believe-articles/) - [Falsehoods These Programmers Believed About Countries](https://www.sicpers.info/2022/01/falsehoods-these-programmers-believed-about-countries/) - [FAQ update](https://www.sicpers.info/2007/02/faq-update/) - [Fiction: The Ouroborus School pt 1](https://www.sicpers.info/2013/06/fiction-the-ouroborus-school-pt-1/) - [Figurative Programming and Gloom: the [G]raphical [LOOM]](https://www.sicpers.info/2018/12/figurative-programming-and-gloom-the-graphical-loom/) - [Finishing the ObjS story](https://www.sicpers.info/2015/06/finishing-the-objs-story/) - [First, Consider no Harmful.](https://www.sicpers.info/2020/02/2252/) - [Floating point numbers aren't weird](https://www.sicpers.info/2024/02/floating-point-numbers-arent-weird/) - [Follow-up-and-slightly-over on safety/security](https://www.sicpers.info/2009/06/follow-up-and-slightly-over-on-safety-security/) - [Forearmed](https://www.sicpers.info/2020/06/forearmed/) - [FOSDEM](https://www.sicpers.info/2017/02/fosdem/) - [FOSDEM / GNUstep photos](https://www.sicpers.info/2007/02/fosdem-gnustep-photos/) - [Free apps with macdev ticket](https://www.sicpers.info/2008/12/free-apps-with-macdev-ticket/) - [Free as in Water](https://www.sicpers.info/2020/09/free-as-in-water/) - [free as in, well, free(1)](https://www.sicpers.info/2006/06/free-as-in-well-free1/) - [Free Software should welcome contributions by Apple, Google](https://www.sicpers.info/2017/10/free-software-should-welcome-contributions-by-apple-google/) - [From the no-man's-land of the format wars](https://www.sicpers.info/2008/02/from-the-no-mans-land-of-the-format-wars/) - [FSF membership](https://www.sicpers.info/2007/12/fsf-membership/) - [Fuck. This. Shit.](https://www.sicpers.info/2014/10/fuck-this-shit/) - [Full Stack](https://www.sicpers.info/2017/02/full-stack-2/) - [Full-stack](https://www.sicpers.info/2014/10/full-stack/) - [Fun and games (with rewritten rules) in Objective-C](https://www.sicpers.info/2015/02/fun-and-games-with-rewritten-rules-in-objective-c/) - [Functional Programming in Object-Oriented Programming in Functional Programming in Swift](https://www.sicpers.info/2015/06/functional-programming-in-object-oriented-programming-in-functional-programming-in-swift/) - [Further Advances in Objective-Swift](https://www.sicpers.info/2015/06/further-advances-in-objective-swift/) - [Fuzzing as a security testing tool](https://www.sicpers.info/2008/09/fuzzing-as-a-security-testing-tool/) - [GAH!](https://www.sicpers.info/2006/09/gah/) - [Garbage-collected Objective-C](https://www.sicpers.info/2013/07/garbage-collected-objective-c/) - [Gently HURDing the side projects](https://www.sicpers.info/2018/01/gently-hurding-the-side-projects/) - [Getting better at doing it wrong](https://www.sicpers.info/2015/05/getting-better-at-doing-it-wrong/) - [Getting started on my Vampire V4](https://www.sicpers.info/2020/08/getting-started-on-my-vampire-v4/) - [Give me an S](https://www.sicpers.info/2017/09/give-me-an-s/) - [given-when-then in XCTest](https://www.sicpers.info/2018/10/given-when-then-in-xctest/) - [GNU Terry Pratchett](https://www.sicpers.info/2015/03/gnu-terry-pratchett/) - [GNUstep development on LIVEstep](https://www.sicpers.info/2021/01/gnustep-development-on-livestep/) - [GNUstep is more important now than ever](https://www.sicpers.info/2017/11/gnustep-is-more-important-now-than-ever/) - [Goals upon goals upon goals](https://www.sicpers.info/2014/07/goals-upon-goals-upon-goals/) - [Going indie!](https://www.sicpers.info/2009/06/going-indie/) - [Graham Lee Uses This](https://www.sicpers.info/2021/05/graham-lee-uses-this/) - [Great Documentation, Great Software](https://www.sicpers.info/2019/10/great-documentation-great-software/) - [Greetings, Jobs-pickers](https://www.sicpers.info/2006/08/greetings-jobs-pickers/) - [Grooming the Backfog](https://www.sicpers.info/2019/01/grooming-the-backfog/) - [grotag](https://www.sicpers.info/2020/08/grotag/) - [Half a bee](https://www.sicpers.info/2019/04/half-a-bee/) - [Halloween is Over](https://www.sicpers.info/2022/02/halloween-is-over/) - [Happy 19th birthday, Cocoa!](https://www.sicpers.info/2013/10/happy-19th-birthday-cocoa/) - [Happy 25th birthday to the manifesto for agile software development!](https://www.sicpers.info/2026/02/happy-25th-birthday-to-the-manifesto-for-agile-software-development/) - [Happy Birthday, Objective-C!](https://www.sicpers.info/2013/02/happy-birthday-objective-c/) - [HATEOAS app structure explained through some flimsy analogy](https://www.sicpers.info/2013/06/hateoas-app-structure-explained-through-some-flimsy-analogy/) - [Having the right data](https://www.sicpers.info/2022/03/having-the-right-data/) - [Head of Architecture](https://www.sicpers.info/2018/01/head-of-architecture/) - [Hell hath frozen over](https://www.sicpers.info/2006/08/hell-hath-frozen-over/) - [Hi, I'm Graham and I like things](https://www.sicpers.info/2025/06/hi-im-graham-and-i-like-things/) - [Hidden gem](https://www.sicpers.info/2006/07/hidden-gem/) - [Hiding behind messages](https://www.sicpers.info/2015/04/hiding-behind-messages/) - [Holding a problem in your head](https://www.sicpers.info/2007/08/holding-a-problem-in-your-head/) - [HotSwift](https://www.sicpers.info/2018/09/hotswift/) - [How big is an integer?](https://www.sicpers.info/2013/01/how-big-is-an-integer/) - [How exciting](https://www.sicpers.info/2008/04/how-exciting/) - [How I got root on my University's UNIX network](https://www.sicpers.info/2013/07/how-i-got-root-on-my-universitys-unix-network/) - [How much programming language is enough?](https://www.sicpers.info/2014/04/how-much-programming-language-is-enough/) - [How people learn](https://www.sicpers.info/2012/07/how-people-learn/) - [How retrospectives ban shoes](https://www.sicpers.info/2018/02/how-retrospectives-ban-shoes/) - [How to answer questions the smart way](https://www.sicpers.info/2013/11/how-to-answer-questions-the-smart-way/) - [How to excel at IDE design](https://www.sicpers.info/2012/09/how-to-excel-at-ide-design/) - [How to find me](https://www.sicpers.info/2013/02/how-to-find-me/) - [How to handle Xcode in your meta-build system's iOS or Mac app target](https://www.sicpers.info/2013/02/how-to-handle-xcode-in-your-meta-build-systems-ios-or-mac-app-target/) - [How to hire Graham Lee](https://www.sicpers.info/2010/03/how-to-hire-graham-lee/) - [How to solve every problem in Cocoa](https://www.sicpers.info/2008/01/how-to-solve-every-problem-in-cocoa/) - [How to TDD with CATCH](https://www.sicpers.info/2012/03/how-to-tdd-with-catch/) - [How to version a Mach-O library](https://www.sicpers.info/2013/03/how-to-version-a-mach-o-library/) - [How UX Practitioners Produce Findings in Usability Testing](https://www.sicpers.info/2019/01/how-ux-practitioners-produce-findings-in-usability-testing/) - [HPC at FOSDEM 2019](https://www.sicpers.info/2019/02/hpc-at-fosdem-2019/) - [HPC's Shift to the Cloud](https://www.sicpers.info/2019/01/hpcs-shift-to-the-cloud/) - [Hyperloops for our minds](https://www.sicpers.info/2019/03/hyperloops-for-the-mind/) - [I do the stupid so you don't have to](https://www.sicpers.info/2013/05/i-do-the-stupid-so-you-dont-have-to/) - [I don't use version control when I'm writing](https://www.sicpers.info/2021/04/i-dont-use-version-control-when-im-writing/) - [I feel sorry for...](https://www.sicpers.info/2006/10/i-feel-sorry-for/) - [I fix things for a living](https://www.sicpers.info/2016/12/i-fix-things-for-a-living/) - [I have some small idea of what I'm doing](https://www.sicpers.info/2021/11/i-have-some-small-idea-of-what-im-doing/) - [I just updated Appropriate Behaviour](https://www.sicpers.info/2013/02/i-just-updated-appropriate-behaviour/) - [I made a web!](https://www.sicpers.info/2012/08/i-made-a-web/) - [I make mistakes for a living](https://www.sicpers.info/2016/11/i-make-mistakes-for-a-living/) - [I may have not been correct](https://www.sicpers.info/2009/04/i-may-have-not-been-correct/) - [I published a new book!](https://www.sicpers.info/2012/12/i-published-a-new-book/) - [I use mocks and I'm happy with that](https://www.sicpers.info/2014/05/i-use-mocks-and-im-happy-with-that/) - [I was wrong, 80 characters is fine](https://www.sicpers.info/2023/09/i-was-wrong-80-characters-is-fine/) - [I'm probably holding it wrong](https://www.sicpers.info/2018/10/im-probably-holding-it-wrong/) - [I'm sorry, I haven't a Clu](https://www.sicpers.info/2008/11/im-sorry-i-havent-a-clu/) - [I've vastly misunderstood the Single Responsibility Principle](https://www.sicpers.info/2023/10/ive-vastly-misunderstood-the-single-responsibility-principle/) - [Ich habe mein Handy verloren](https://www.sicpers.info/2007/07/ich-habe-mein-handy-verloren/) - [if ([self isKindOfClass:[whore class]]) [self promote];](https://www.sicpers.info/2006/11/if-self-iskindofclasswhore-class-self-promote/) - [If Object-Oriented Programming were announced today](https://www.sicpers.info/2017/07/if-object-oriented-programming-were-announced-today/) - [Illuminative-C](https://www.sicpers.info/2012/07/illuminative-c/) - [Image](https://www.sicpers.info/2019/03/image/) - [Immutable changes](https://www.sicpers.info/2019/11/immutable-changes/) - [Imperative Programming in Swift](https://www.sicpers.info/2015/07/imperative-programming-in-swift/) - [Impossibility and Uncertainty in AI](https://www.sicpers.info/2019/01/impossibility-and-uncertainty-in-ai/) - [Improving a presentation with slides](https://www.sicpers.info/2015/09/improving-a-presentation-with-slides/) - [In defence of assertions](https://www.sicpers.info/2017/05/in-defence-of-assertions/) - [In defence of large teams](https://www.sicpers.info/2017/05/in-defence-of-large-teams/) - [In defense of `id`](https://www.sicpers.info/2018/03/in-defense-of-id/) - [In which a life re-emerges](https://www.sicpers.info/2024/10/in-which-a-life-re-emerges/) - [In which GNUstep confuses and ultimately disappoints](https://www.sicpers.info/2017/09/in-which-gnustep-confuses-and-ultimately-disappoints/) - [In which I interview so you don't have to](https://www.sicpers.info/2016/03/in-which-i-interview-so-you-dont-have-to/) - [In which I misunderstood Objective-C](https://www.sicpers.info/2021/09/in-which-i-misunderstood-objective-c/) - [In which I resolve](https://www.sicpers.info/2014/12/in-which-i-resolve/) - [In which new developer tools are dull](https://www.sicpers.info/2017/10/in-which-new-developer-tools-are-dull/) - [In which things are given names](https://www.sicpers.info/2023/11/in-which-things-are-given-names/) - [In which things are not known](https://www.sicpers.info/2025/01/in-which-things-are-not-known/) - [Indie app milestones part one](https://www.sicpers.info/2009/08/indie-app-milestones-part-one/) - [Inheritance is old and busted](https://www.sicpers.info/2012/07/inheritance-is-old-and-busted/) - [Inheritance still doesn't make any sense](https://www.sicpers.info/2018/04/inheritance-still-doesnt-make-any-sense/) - [Init dead; no casualties](https://www.sicpers.info/2006/10/init-dead-no-casualties/) - [Input-Output Maps are Strongly Biased Towards Simple Outputs](https://www.sicpers.info/2019/02/input-output-maps-are-strongly-biased-towards-simple-outputs/) - [Inside-Out Apps](https://www.sicpers.info/2014/03/inside-out-apps/) - [Inspired by Swift](https://www.sicpers.info/2015/03/inspired-by-swift/) - [Integrating SSH with the keychain on Snow Leopard](https://www.sicpers.info/2010/03/integrating-ssh-with-the-keychain-on-snow-leopard/) - [Intellectual property and software: the nuclear option](https://www.sicpers.info/2014/08/intellectual-property-and-software-the-nuclear-option/) - [Intra-curricular activities](https://www.sicpers.info/2014/07/intra-curricular-activities/) - [Introducing the SICPers Newsletter](https://www.sicpers.info/2022/01/introducing-the-sicpers-newsletter/) - [Introducing: the Labrary](https://www.sicpers.info/2018/11/introducing-the-labrary/) - [Intuitive is the Enemy of Good](https://www.sicpers.info/2014/04/intuitive-is-the-enemy-of-good/) - [iPh0wnage](https://www.sicpers.info/2010/02/iph0wnage/) - [Irresponsible tolerance](https://www.sicpers.info/2012/01/irresponsible-tolerance/) - [Irritating annoying irritationnoyance of the day](https://www.sicpers.info/2006/07/irritating-annoying-irritationnoyance-of-the-day/) - [Is Foundation a Utopian vision?](https://www.sicpers.info/2025/07/is-foundation-a-utopian-vision/) - [Is Freedom Zero such a hot idea?](https://www.sicpers.info/2018/07/is-freedom-zero-such-a-hot-idea/) - [Is it an anti-pattern to use properties everywhere?](https://www.sicpers.info/2012/02/is-it-an-anti-pattern-to-use-properties-everywhere/) - [Is privacy a security feature?](https://www.sicpers.info/2012/05/is-privacy-a-security-feature/) - [Is software engineering a thing?](https://www.sicpers.info/2025/01/is-software-engineering-a-thing/) - [Is spec-driven development the end of Agile software development?](https://www.sicpers.info/2025/12/is-spec-driven-development-the-end-of-agile-software-development/) - [Is TDD Dead? My questions](https://www.sicpers.info/2014/05/is-tdd-dead-my-questions/) - [It depends? It depends.](https://www.sicpers.info/2015/03/it-depends-it-depends/) - [It doesn't take an Oracle to see that coming](https://www.sicpers.info/2014/06/it-doesnt-take-an-oracle-to-see-that-coming/) - [It protects. It also promotes and prevents.](https://www.sicpers.info/2020/06/it-protects-it-also-promotes-and-prevents/) - [It was asked for: the "features" post](https://www.sicpers.info/2008/10/it-was-asked-for-the-features-post/) - [It's about solving problems](https://www.sicpers.info/2014/01/its-about-solving-problems/) - [It's about the thinking](https://www.sicpers.info/2018/02/its-about-the-thinking/) - [It's just a big iPod](https://www.sicpers.info/2010/01/its-just-a-big-ipod/) - [It's just like English](https://www.sicpers.info/2014/05/its-just-like-english/) - [It's not @jnozzi's fault!](https://www.sicpers.info/2012/08/its-not-jnozzis-fault/) - [It's the little things](https://www.sicpers.info/2015/02/its-the-little-things/) - [It's update o'clock](https://www.sicpers.info/2007/08/its-update-oclock/) - [Java By Contract: a Worked Example](https://www.sicpers.info/2019/01/java-by-contract-a-worked-example/) - [Just because Brucie says it...](https://www.sicpers.info/2009/07/just-because-brucie-says-it/) - [Just don't use version numbers](https://www.sicpers.info/2017/01/just-dont-use-version-numbers/) - [King Arthur: By what name are you known?](https://www.sicpers.info/2019/04/king-arthur-by-what-name-are-you-known/) - [Know what counts](https://www.sicpers.info/2013/07/know-what-counts/) - [KVO and +initialize](https://www.sicpers.info/2009/07/kvo-and-initialize/) - [Laggards don't buy apps: devil's advocate edition](https://www.sicpers.info/2014/02/laggards-dont-buy-apps-devils-advocate-edition/) - [Lambda: the ultimate polymath](https://www.sicpers.info/2020/11/lambda-the-ultimate-polymath/) - [Last Chance: Ultimate Programmer Super Stack](https://www.sicpers.info/2019/02/last-chance-ultimate-programmer-super-stack/) - [Layers of Distraction](https://www.sicpers.info/2015/01/layers-of-distraction/) - [Learn Mansplaining The Hard Way](https://www.sicpers.info/2015/01/learn-mansplaining-the-hard-way/) - [Learning about software freedom](https://www.sicpers.info/2016/11/learning-about-software-freedom/) - [Learning phases](https://www.sicpers.info/2015/02/learning-phases/) - [Lest I forget](https://www.sicpers.info/2006/06/lest-i-forget/) - [Let's talk about self-documenting code](https://www.sicpers.info/2018/04/lets-talk-about-self-documenting-code/) - [Licenses aren’t sufficient](https://www.sicpers.info/2022/01/licenses-arent-sufficient/) - [Lighter UIViewControllers](https://www.sicpers.info/2013/06/lighter-uiviewcontrollers/) - [Like Java, only functional](https://www.sicpers.info/2015/02/like-java-only-functional/) - [Linus's Bystanders](https://www.sicpers.info/2015/03/linuss-bystanders/) - [Literate Programming with LibreOffice](https://www.sicpers.info/2017/05/literate-programming-with-libreoffice/) - [Little hack to help with testing](https://www.sicpers.info/2008/06/little-hack-to-help-with-testing/) - [LLMs and reinforcement learning](https://www.sicpers.info/2025/10/llms-and-reinforcement-learning/) - [LLVM projects you may not be aware of](https://www.sicpers.info/2010/05/llvm-projects-you-may-not-be-aware-of/) - [Local KDC on Leopard](https://www.sicpers.info/2008/06/local-kdc-on-leopard/) - [Longer, fuller stacks](https://www.sicpers.info/2019/06/longer-fuller-stacks/) - [Look what the feds left behind…](https://www.sicpers.info/2010/02/look-what-the-feds-left-behind/) - [Losing your identity](https://www.sicpers.info/2010/04/losing-your-identity/) - [Mac App Sandboxing: it may not be for you (but that's probably OK)](https://www.sicpers.info/2011/11/mac-app-sandboxing-it-may-not-be-for-you-but-thats-probably-ok/) - [Mac user Gmail account hack](https://www.sicpers.info/2008/09/mac-user-gmail-account-hack/) - [MacDev 2009!](https://www.sicpers.info/2008/09/macdev-2009/) - [MacFUSE rules](https://www.sicpers.info/2008/02/macfuse-rules/) - [Mach and Matchmaker: kernel and language support for object-oriented distributed systems](https://www.sicpers.info/2019/03/mach-and-matchmaker-kernel-and-language-support-for-object-oriented-distributed-systems/) - [Mach-O FS (no really, MacFUSE does rule)](https://www.sicpers.info/2008/02/mach-o-fs-no-really-macfuse-does-rule/) - [Mach-OFS: aforementioned polish and functionality](https://www.sicpers.info/2008/02/mach-ofs-aforementioned-polish-and-functionality/) - [machoo - Object-Oriented Programming in Object-Oriented Programming in the GNU HURD](https://www.sicpers.info/2018/02/machoo-object-oriented-programming-in-object-oriented-programming-in-the-gnu-hurd/) - [Mail::Box++](https://www.sicpers.info/2007/03/mailbox/) - [Making computing exciting](https://www.sicpers.info/2011/07/making-computing-exciting/) - [Making my peace](https://www.sicpers.info/2018/10/making-my-peace/) - [Management is the wrong analogy for LLM augmentation](https://www.sicpers.info/2025/12/management-is-the-wrong-analogy-for-llm-augmentation/) - [Managers: Don't bend it that far, you'll break it!](https://www.sicpers.info/2008/05/managers-dont-bend-it-that-far-youll-break-it/) - [Mapping software engineering tools](https://www.sicpers.info/2018/12/mapping-software-engineering-tools/) - [Mature Optimization](https://www.sicpers.info/2020/05/mature-optimization/) - [Maybe you are going to need it](https://www.sicpers.info/2019/08/maybe-you-are-going-to-need-it/) - [Me.com. Your identity, everywhere.](https://www.sicpers.info/2008/09/me-com-your-identity-everywhere/) - [Meaningless Vapid Catchphrase](https://www.sicpers.info/2014/01/meaningless-vapid-catchphrase/) - [Messily Veneered C](https://www.sicpers.info/2014/02/messily-veneered-c/) - [Messing about with Clang](https://www.sicpers.info/2012/05/messing-about-with-clang/) - [Meta-writing](https://www.sicpers.info/2013/05/meta-writing/) - [Metacognition-driven development](https://www.sicpers.info/2012/05/metacognition-driven-development/) - [Microblogging](https://www.sicpers.info/2008/07/microblogging/) - [Microservices for the Desktop](https://www.sicpers.info/2018/11/microservices-for-the-desktop/) - [Minimum Viable Controller](https://www.sicpers.info/2017/01/minimum-viable-controller/) - [Miniwindows](https://www.sicpers.info/2007/06/miniwindows/) - [Missing Vital Content](https://www.sicpers.info/2014/02/missing-vital-content/) - [Moderately Valuable Cliché](https://www.sicpers.info/2014/02/moderately-valuable-cliche/) - [More about the privacy pledge](https://www.sicpers.info/2012/03/more-about-the-privacy-pledge/) - [More detail on software requirements](https://www.sicpers.info/2022/06/more-detail-on-software-requirements/) - [More Excel-lent Adventures](https://www.sicpers.info/2014/10/more-excel-lent-adventures/) - [More micros, less Guinness](https://www.sicpers.info/2022/06/more-micros-less-guinness/) - [More NSConf code signing fun](https://www.sicpers.info/2010/02/more-nsconf-code-signing-fun/) - [More on freedom and licensing](https://www.sicpers.info/2018/08/more-on-freedom-and-licensing/) - [More on Layers](https://www.sicpers.info/2014/10/more-on-layers/) - [More on MacDev](https://www.sicpers.info/2008/11/more-on-macdev/) - [More on UIAutomation tests](https://www.sicpers.info/2018/10/more-on-uiautomation-tests/) - [More progress on Parallels](https://www.sicpers.info/2006/04/more-progress-on-parallels/) - [More security processes go wrong](https://www.sicpers.info/2013/05/more-security-processes-go-wrong/) - [More speed, lower velocity](https://www.sicpers.info/2018/12/more-speed-lower-velocity/) - [Most favouritest and least favourite Macs](https://www.sicpers.info/2009/01/most-favouritest-and-least-favourite-macs/) - [Moving on](https://www.sicpers.info/2007/06/moving-on/) - [MUI](https://www.sicpers.info/2018/01/mui/) - [Music](https://www.sicpers.info/2020/07/music/) - [Mutable objects in immutable objects in object-oriented programming in functional programming in Swift](https://www.sicpers.info/2015/06/mutable-objects-in-immutable-objects-in-object-oriented-programming-in-functional-programming-in-swift/) - [My changing relationship with books](https://www.sicpers.info/2019/07/my-changing-relationship-with-books/) - [My discs have been Americanised!](https://www.sicpers.info/2008/03/my-discs-have-been-americanised/) - [My first rails app](https://www.sicpers.info/2019/07/my-first-rails-app/) - [My name in lights](https://www.sicpers.info/2008/05/my-name-in-lights/) - [My platform is no platform](https://www.sicpers.info/2017/11/my-platform-is-no-platform/) - [My proposal for scaling open source: don't](https://www.sicpers.info/2021/07/my-proposal-for-scaling-open-source-dont/) - [My use of Latin: a glossary](https://www.sicpers.info/2014/03/my-use-of-latin-a-glossary/) - [Naming things](https://www.sicpers.info/2021/05/naming-things/) - [Nearly the end-of-year review](https://www.sicpers.info/2009/12/nearly-the-end-of-year-review/) - [NetBSD running on G5](https://www.sicpers.info/2006/06/netbsd-running-on-g5/) - [Netscape won](https://www.sicpers.info/2018/05/netscape-won/) - [New book: APPosite Concerns](https://www.sicpers.info/2016/01/new-book-apposite-concerns/) - [New c.l.o-c alternative FAQ](https://www.sicpers.info/2006/05/new-c-l-o-c-alternative-faq/) - [New project: a dance a day](https://www.sicpers.info/2015/11/new-prpject-a-dance-a-day/) - [New project: the GNUstep developer guide](https://www.sicpers.info/2017/01/new-project-the-gnustep-developer-guide/) - [New Swift hardware](https://www.sicpers.info/2019/04/new-swift-hardware/) - [New website](https://www.sicpers.info/2006/08/new-website/) - [Next CocoaHeads Swindon meet!](https://www.sicpers.info/2009/07/next-cocoaheads-swindon-meet/) - [Next CocoaHeads Swindon meeting](https://www.sicpers.info/2008/08/next-cocoaheads-swindon-meeting/) - [NeXT Luminaries](https://www.sicpers.info/2006/08/next-luminaries/) - [Next Swindon CocoaHeads meeting](https://www.sicpers.info/2009/09/next-swindon-cocoaheads-meeting/) - [Nice things about ObjC](https://www.sicpers.info/2008/03/nice-things-about-objc/) - [Nice-looking LaTeX Unicode](https://www.sicpers.info/2007/10/nice-looking-latex-unicode/) - [NIMBY Objects](https://www.sicpers.info/2013/09/nimby-objects/) - [No True Humpty-Dumpty](https://www.sicpers.info/2018/02/no-true-humpty-dumpty/) - [No worries, mate!](https://www.sicpers.info/2006/07/no-worries-mate/) - [No, you can't ignore politics](https://www.sicpers.info/2016/12/no-you-cant-ignore-politics/) - [Non-standard components](https://www.sicpers.info/2024/04/non-standard-components/) - [Non-subscription updates means charged?](https://www.sicpers.info/2008/02/non-subscription-updates-means-charged/) - [Novel bean incoming](https://www.sicpers.info/2021/01/novel-bean-incoming/) - [NSConference MINI videos available](https://www.sicpers.info/2010/07/nsconference-mini-videos-available/) - [NSConference videos](https://www.sicpers.info/2009/07/nsconference-videos/) - [NSConference: the aftermath](https://www.sicpers.info/2009/04/nsconference-the-aftermath/) - [Nvidia and ARM](https://www.sicpers.info/2020/08/nvidia-and-arm/) - [ObjC FAQ update](https://www.sicpers.info/2006/09/objc-faq-update-2/) - [ObjC FAQ update](https://www.sicpers.info/2008/06/objc-faq-update/) - [Object-Oriented callback design](https://www.sicpers.info/2012/11/object-oriented-callback-design/) - [Object-Oriented Programming in 1714](https://www.sicpers.info/2014/12/object-oriented-programming-in-1714/) - [Object-Oriented Programming in Functional Programming in Swift](https://www.sicpers.info/2015/05/object-oriented-programming-in-functional-programming-in-swift/) - [Object-Oriented Programming in Objective-C](https://www.sicpers.info/2015/05/object-oriented-programming-in-objective-c/) - [Objective-C Design Patterns](https://www.sicpers.info/2007/12/objective-c-design-patterns/) - [Objective-C literals and subscripts](https://www.sicpers.info/2012/06/objective-c-literals-and-subscripts/) - [Objective-C NAQs](https://www.sicpers.info/2008/06/objective-c-naqs/) - [Objective-C, dependencies, linking](https://www.sicpers.info/2013/05/objective-c-dependencies-linking/) - [Objective-Curry](https://www.sicpers.info/2015/02/objective-curry/) - [Obsolescence](https://www.sicpers.info/2020/08/obsolescence/) - [Official Google Mac Blog: Measuring performance of distributed notifications](https://www.sicpers.info/2007/05/official-google-mac-blog-measuring-performance-of-distributed-notifications/) - [Old news](https://www.sicpers.info/2007/09/old-news/) - [OmniWeb 5.6 tip of the day](https://www.sicpers.info/2007/10/omniweb-5-6-tip-of-the-day/) - [On a re-read you realise this isn't really about Swift](https://www.sicpers.info/2014/06/on-a-re-read-you-realise-this-isnt-really-about-swift/) - [On adopting testing, and CocoaDojos](https://www.sicpers.info/2011/05/on-adopting-testing-and-cocoadojos/) - [On advertising's place in the tech industry](https://www.sicpers.info/2012/03/on-advertisings-place-in-the-tech-industry/) - [On Apple's swings and misses](https://www.sicpers.info/2022/01/on-apples-swings-and-misses/) - [On association](https://www.sicpers.info/2023/02/on-association/) - [On authorization proxy objects](https://www.sicpers.info/2010/07/on-authorization-proxy-objects/) - [On Being a Software Person](https://www.sicpers.info/2011/03/on-being-a-software-person/) - [On BizSpark](https://www.sicpers.info/2011/05/on-bizspark/) - [On Blue Agile](https://www.sicpers.info/2018/11/on-blue-agile/) - [On books](https://www.sicpers.info/2017/09/on-books/) - [On comment docs](https://www.sicpers.info/2011/03/on-comment-docs/) - [On community](https://www.sicpers.info/2012/07/on-community/) - [On counting numbers](https://www.sicpers.info/2011/03/on-counting-numbers/) - [On cryptographic file storage](https://www.sicpers.info/2011/04/on-cryptographic-file-storage/) - [On default keychain settings](https://www.sicpers.info/2009/04/on-default-keychain-settings/) - [On designing collections](https://www.sicpers.info/2013/04/on-designing-collections/) - [On detecting God Classes](https://www.sicpers.info/2010/07/on-detecting-god-classes/) - [On device identifiers](https://www.sicpers.info/2011/08/on-device-identifiers/) - [On documentation](https://www.sicpers.info/2010/10/on-documentation/) - [On dynamic vs. static polymorphism](https://www.sicpers.info/2009/04/on-dynamic-vs-static-polymorphism/) - [On entering programming in 2022](https://www.sicpers.info/2022/07/on-entering-programming-in-2022/) - [On explaining stuff to people](https://www.sicpers.info/2011/12/on-explaining-stuff-to-people/) - [On exploding boilers](https://www.sicpers.info/2019/11/on-exploding-boilers/) - [On Fitt's Law and Security](https://www.sicpers.info/2010/07/on-fitts-law-and-security/) - [On free apps](https://www.sicpers.info/2012/07/on-free-apps/) - [On free Mac Anti-Virus](https://www.sicpers.info/2010/11/on-free-mac-anti-virus-2/) - [On Fuzzy Aliens](https://www.sicpers.info/2010/12/on-fuzzy-aliens/) - [On having things to say](https://www.sicpers.info/2015/07/on-having-things-to-say/) - [On home truths in iOS TDD](https://www.sicpers.info/2012/02/on-home-truths-in-ios-tdd/) - [On how to get crypto wrong](https://www.sicpers.info/2010/12/on-how-to-get-crypto-wrong/) - [On Ignoring the Tests](https://www.sicpers.info/2010/10/on-ignoring-the-tests/) - [On immutable data structures…?](https://www.sicpers.info/2016/03/on-immutable-data-structures/) - [On improved tool support for Cocoa developers](https://www.sicpers.info/2010/05/on-improved-tool-support-for-cocoa-developers/) - [On industry malaise](https://www.sicpers.info/2021/05/on-industry-malaise/) - [On Inheritance](https://www.sicpers.info/2018/03/on-inheritance/) - [On internal quality](https://www.sicpers.info/2011/04/on-internal-quality/) - [On interviewing and generalist software engineers](https://www.sicpers.info/2022/05/on-interviewing-and-generalist-software-engineers/) - [On legitimacy and software engineering](https://www.sicpers.info/2023/07/on-legitimacy-and-software-engineering/) - [On localisation and security](https://www.sicpers.info/2010/05/on-localisation-and-security/) - [On McAfee](https://www.sicpers.info/2010/08/on-mcafee/) - [On Mental Health](https://www.sicpers.info/2014/08/on-mental-health/) - [On multitasking](https://www.sicpers.info/2010/02/on-multitasking/) - [On my newer competence](https://www.sicpers.info/2012/04/on-my-newer-competence/) - [On my own competency](https://www.sicpers.info/2011/04/on-my-own-competency/) - [On noodles](https://www.sicpers.info/2009/03/on-noodles/) - [On Nostalgia for Physical Media](https://www.sicpers.info/2025/02/on-nostalgia-for-physical-media/) - [On NSInvocation](https://www.sicpers.info/2011/03/on-nsinvocation/) - [On NSNull as an anti-pattern](https://www.sicpers.info/2010/05/on-nsnull-as-an-anti-pattern/) - [On null](https://www.sicpers.info/2018/05/on-null/) - [On Null Objects](https://www.sicpers.info/2012/07/on-null-objects/) - [On Operation Chokehold](https://www.sicpers.info/2009/12/on-operation-chokehold/) - [On opinionation](https://www.sicpers.info/2015/01/on-opinionation/) - [On or Between](https://www.sicpers.info/2022/04/on-or-between/) - [On phone support scams and fake AV](https://www.sicpers.info/2010/11/on-phone-support-scams-and-fake-av/) - [On platform-specific strategies](https://www.sicpers.info/2011/05/on-platform-specific-strategies/) - [On privacy, hashing, and your customers](https://www.sicpers.info/2012/02/on-privacy-hashing-and-your-customers/) - [On private methods](https://www.sicpers.info/2010/07/on-private-methods/) - [On programmer behaviours that make Scrum so bad](https://www.sicpers.info/2021/08/on-programmer-behaviours-that-make-scrum-so-bad/) - [On protocols that aren't](https://www.sicpers.info/2013/05/on-protocols-that-arent/) - [On rational myths](https://www.sicpers.info/2023/11/on-rational-myths/) - [On repeatable builds](https://www.sicpers.info/2011/02/on-repeatable-builds/) - [On rewriting your application](https://www.sicpers.info/2013/04/on-rewriting-your-application/) - [On running out of words](https://www.sicpers.info/2015/07/on-running-out-of-words/) - [On saying words clearly](https://www.sicpers.info/2020/09/on-saying-words-clearly/) - [On Scarcity](https://www.sicpers.info/2022/11/on-scarcity/) - [On Scientific Computing](https://www.sicpers.info/2013/07/on-scientific-computing/) - [On secrets](https://www.sicpers.info/2010/11/on-secrets/) - [On self-taught coders](https://www.sicpers.info/2022/06/on-self-taught-coders/) - [On Sharecropping](https://www.sicpers.info/2018/09/on-sharecropping/) - [On Singleton(s)](https://www.sicpers.info/2011/02/on-singletons/) - [On software engineering hermeneutics](https://www.sicpers.info/2023/12/on-software-engineering-hermeneutics/) - [On squeezing out that last ounce of performance](https://www.sicpers.info/2011/02/on-squeezing-out-that-last-ounce-of-performance/) - [On SSL Pinning for Cocoa [Touch]](https://www.sicpers.info/2011/12/on-ssl-pinning-for-cocoa-touch/) - [On standards in free software engineering](https://www.sicpers.info/2012/01/on-standards-in-free-software-engineering/) - [On stopping service management abuse](https://www.sicpers.info/2010/07/on-stopping-service-management-abuse/) - [On study-only licences](https://www.sicpers.info/2018/07/on-study-only-licences/) - [On switching to Linux](https://www.sicpers.info/2015/01/on-switching-to-linux/) - [On the "advances" in web development since 1995](https://www.sicpers.info/2017/08/on-the-advances-in-web-development-since-1995/) - [On the broken(?) Mac App Store](https://www.sicpers.info/2011/01/on-the-broken-mac-app-store/) - [On the business case for (or against) software](https://www.sicpers.info/2016/11/on-the-business-case-for-or-against-software/) - [On the Consolation of Software Engineering](https://www.sicpers.info/2024/12/on-the-consolation-of-software-engineering/) - [On the continuous history of approximation](https://www.sicpers.info/2019/01/on-the-continuous-history-of-approximation/) - [On the design of iOS 7 and iconographoclasm](https://www.sicpers.info/2013/06/on-the-design-of-ios-7-and-iconographoclasm/) - [On the economics of software insecurity](https://www.sicpers.info/2012/01/on-the-economics-of-software-insecurity/) - [On the efficient allocation of scarce resources with alternative uses](https://www.sicpers.info/2019/08/on-the-efficient-allocation-of-scarce-resources-with-alternative-uses/) - [On the extension of code signing](https://www.sicpers.info/2010/06/on-the-extension-of-code-signing/) - [On the extremes of computer science](https://www.sicpers.info/2016/10/on-the-extremes-of-computer-science/) - [On the features of a portfolio career](https://www.sicpers.info/2019/06/on-the-features-of-a-portfolio-career/) - [On the fitness for purpose of a software model](https://www.sicpers.info/2017/01/on-the-fitness-for-purpose-of-a-software-model/) - [On the glorification of ignorance](https://www.sicpers.info/2022/01/on-the-glorification-of-ignorance/) - [On the inevitability of Photoshop for iPad](https://www.sicpers.info/2018/10/on-the-inevitability-of-photoshop-for-ipad/) - [On the lesser presentations](https://www.sicpers.info/2017/11/on-the-lesser-presentations/) - [On the locations of the bullet holes on bombers that land successfully](https://www.sicpers.info/2022/05/on-the-locations-of-the-bullet-holes-on-bombers-that-land-successfully/) - [On the Mac App Store](https://www.sicpers.info/2010/12/on-the-mac-app-store/) - [On the magic of key agreement](https://www.sicpers.info/2012/04/on-the-magic-of-key-agreement/) - [On the new Lion security things](https://www.sicpers.info/2011/07/on-the-new-lion-security-things/) - [On the rhetorical cost of ownership](https://www.sicpers.info/2016/11/on-the-rhetorical-cost-of-ownership/) - [On the top 5 iOS appsec issues](https://www.sicpers.info/2011/05/on-the-top-5-ios-appsec-issues/) - [On the tyranny of autoincrementing integer primary keys](https://www.sicpers.info/2020/03/on-the-tyranny-of-autoincrementing-integer-primary-keys/) - [On the value of old principles](https://www.sicpers.info/2025/12/on-the-value-of-old-principles/) - [On thinking machines](https://www.sicpers.info/2026/03/on-thinking-machines/) - [On Timeless Programming Books](https://www.sicpers.info/2011/01/on-timeless-programming-books/) - [On too much and too little](https://www.sicpers.info/2014/04/on-too-much-and-too-little/) - [On Trashing](https://www.sicpers.info/2010/07/on-trashing/) - [On twitter [or otherwise]](https://www.sicpers.info/2018/05/on-twitter-or-otherwise/) - [On type safety and making it harder to write buggy code](https://www.sicpers.info/2010/05/on-type-safety-and-making-it-harder-to-write-buggy-code/) - [On UML](https://www.sicpers.info/2021/04/on-uml/) - [On utilities](https://www.sicpers.info/2010/11/on-utilities/) - [On version 12](https://www.sicpers.info/2018/06/on-version-12/) - [On voices that matter](https://www.sicpers.info/2010/08/on-voices-that-matter/) - [On what makes a "good" comment](https://www.sicpers.info/2013/07/on-what-makes-a-good-comment/) - [On what Marcus said](https://www.sicpers.info/2011/06/on-what-marcus-said/) - [On whiteboard coding](https://www.sicpers.info/2024/02/on-whiteboard-coding/) - [On Windows 8](https://www.sicpers.info/2011/09/on-windows-8/) - [On working machines](https://www.sicpers.info/2026/03/on-working-machines/) - [On writing a book](https://www.sicpers.info/2010/04/on-writing-a-book/) - [On XP mode](https://www.sicpers.info/2009/08/on-xp-mode/) - [On, or rather in, Seattle](https://www.sicpers.info/2011/02/on-or-rather-in-seattle/) - [One decade in](https://www.sicpers.info/2014/08/one-decade-in/) - [One meeellleeon](https://www.sicpers.info/2014/05/one-meeellleeon/) - [One person per task](https://www.sicpers.info/2021/03/one-person-per-task/) - [One reason multiple inheritance sucks](https://www.sicpers.info/2006/11/one-reason-multiple-inheritance-sucks/) - [One Window that is good for Mac security](https://www.sicpers.info/2010/03/one-window-that-is-good-for-mac-security/) - [OOP as an organic approach to computing](https://www.sicpers.info/2017/11/oop-as-an-organic-approach-to-computing/) - [OOP the Easy Way](https://www.sicpers.info/2018/07/oop-the-easy-way/) - [OOP the Easy Way: now 100% complete](https://www.sicpers.info/2018/09/oop-the-easy-way-now-100-complete/) - [Oops. (updated twice)](https://www.sicpers.info/2010/02/oops/) - [Open Source and the Lehrer-von Braun defence](https://www.sicpers.info/2014/05/open-source-and-the-lehrer-von-braun-defence/) - [Open Source: because I got mine, so fuck you](https://www.sicpers.info/2017/07/open-source-because-i-got-mine-so-fuck-you/) - [OPENSTEP/Parallels/VirtualPC/Spam](https://www.sicpers.info/2006/09/openstep-parallels-virtualpc-spam/) - [Opinionated Read: How AI Impacts Skill Formation](https://www.sicpers.info/2026/02/opinionated-read-how-ai-impacts-skill-formation/) - [Or maybe, because we want to](https://www.sicpers.info/2018/06/or-maybe-because-we-want-to/) - [OS r us](https://www.sicpers.info/2006/06/os-r-us/) - [Overdoing the risk management](https://www.sicpers.info/2008/09/overdoing-the-risk-management/) - [Oxford University course on collaborative coding](https://www.sicpers.info/2019/05/oxford-university-course-on-collaborative-coding/) - [Packaging software](https://www.sicpers.info/2018/11/packaging-software/) - [PADDs, not the iPad](https://www.sicpers.info/2014/07/padds-not-the-ipad/) - [Pairing in Github](https://www.sicpers.info/2020/01/pairing-in-github/) - [Parallels 2.1 beta 5](https://www.sicpers.info/2006/04/parallels-2-1-beta-5/) - [Parallels and OpenStep: success!](https://www.sicpers.info/2006/04/parallels-and-openstep-success/) - [Parallels may, in fact, be completely dumb](https://www.sicpers.info/2006/09/parallels-may-in-fact-be-completely-dumb/) - [Parallels RC and OPENSTEP works!](https://www.sicpers.info/2006/05/parallels-rc-and-openstep-works/) - [Password checking with CommonCrypto](https://www.sicpers.info/2012/07/password-checking-with-commoncrypto/) - [Permissions whee!](https://www.sicpers.info/2008/01/permissions-whee/) - [Phrases in computing that might need retiring](https://www.sicpers.info/2022/07/phrases-in-computing-that-might-need-retiring/) - [PL personality theory](https://www.sicpers.info/2015/08/pl-personality-theory/) - [Planet of the Apps](https://www.sicpers.info/2014/06/planet-of-the-apps/) - [Poke the other one, it's got bells on](https://www.sicpers.info/2009/11/poke-the-other-one-its-got-bells-on/) - [Post #100!](https://www.sicpers.info/2007/11/post-100/) - [Pre-order professional Mac security books!](https://www.sicpers.info/2010/02/pre-order-professional-mac-security-books/) - [Preparing for Computing's Big One-Oh-Oh](https://www.sicpers.info/2014/04/preparing-for-computings-big-one-oh-oh/) - [Prepping for WWDC](https://www.sicpers.info/2009/05/prepping-for-wwdc/) - [Principled Lizards](https://www.sicpers.info/2014/03/principled-lizards/) - [Product teams: our products are not our products](https://www.sicpers.info/2018/12/product-teams-our-products-are-not-our-products/) - [Programmer Values](https://www.sicpers.info/2013/07/programmer-values/) - [Programming as a societal roadblock](https://www.sicpers.info/2014/01/programming-as-a-societal-roadblock/) - [Programming is not a craft](https://www.sicpers.info/2015/05/programming-is-not-a-craft/) - [Programming language advent](https://www.sicpers.info/2014/12/programming-language-advent/) - [Programming Literate Manifesto](https://www.sicpers.info/2013/07/programming-literate-manifesto/) - [Programming, language](https://www.sicpers.info/2023/10/programming-language/) - [Programming, maths and the other things](https://www.sicpers.info/2014/08/programming-maths-and-the-other-things/) - [Project: Autonomous Revolutionary Goldfish](https://www.sicpers.info/2008/01/project-autonomous-revolutionary-goldfish/) - [Prompting software or supporting engineering](https://www.sicpers.info/2025/10/prompting-software-or-supporting-engineering/) - [Properties about a year on](https://www.sicpers.info/2008/10/properties-about-a-year-on/) - [Protecting source code](https://www.sicpers.info/2010/12/protecting-source-code/) - [Protocol-Oriented Programming in Objective-C](https://www.sicpers.info/2015/06/protocol-oriented-programming-in-objective-c/) - [Prototypical object-oriented programming](https://www.sicpers.info/2017/05/prototypical-object-oriented-programming/) - [PVS file](https://www.sicpers.info/2006/06/pvs-file/) - [Pythonicity](https://www.sicpers.info/2019/04/pythonicity/) - [Quick antispam observation](https://www.sicpers.info/2009/01/quick-antispam-observation/) - [Quote of the year (so far)](https://www.sicpers.info/2009/01/quote-of-the-year-so-far/) - [Quotes on JavaScript](https://www.sicpers.info/2014/12/quotes-on-javascript/) - [Random collection of amazing stuff](https://www.sicpers.info/2007/08/random-collection-of-amazing-stuff/) - [Ratio](https://www.sicpers.info/2019/03/ratio/) - [Re-evaluating second brains](https://www.sicpers.info/2023/08/re-evaluating-second-brains/) - [Reading List](https://www.sicpers.info/2013/10/reading-list/) - [Reasoning about reasoning about software](https://www.sicpers.info/2017/12/reasoning-about-reasoning-about-software/) - [Rebooting the Programmer Competency Matrix](https://www.sicpers.info/2013/04/rebooting-the-programmer-competency-matrix/) - [Recommend me some books or articles](https://www.sicpers.info/2017/10/recommend-me-some-books-or-articles/) - [Recovering from deleting your login shell on a Mac](https://www.sicpers.info/2020/11/recovering-from-deleting-your-login-shell-on-a-mac/) - [Refactor your code from the command-line](https://www.sicpers.info/2009/07/refactor-your-code-from-the-command-line/) - [Reflections on "Is TDD Dead"](https://www.sicpers.info/2014/06/reflections-on-is-tdd-dead/) - [Reflections on an iBook G4](https://www.sicpers.info/2020/10/reflections-on-an-ibook-g4/) - [Regaining your identity](https://www.sicpers.info/2010/04/regaining-your-identity/) - [Rehearsals in beta!](https://www.sicpers.info/2010/03/rehearsals-in-beta/) - [Related methods and tools](https://www.sicpers.info/2024/04/related-methods-and-tools/) - [Remember the future?](https://www.sicpers.info/2011/08/remember-the-future/) - [Replacing the language](https://www.sicpers.info/2014/02/replacing-the-language/) - [Report from WWDC](https://www.sicpers.info/2006/08/report-from-wwdc/) - [Representativeness in Software Engineering Research](https://www.sicpers.info/2013/07/representativeness-in-software-engineering-research/) - [Research Watch, and Java by Contract](https://www.sicpers.info/2018/12/research-watch-and-java-by-contract/) - [Resolution: Share Subscriptions](https://www.sicpers.info/2017/01/resolution-share-subscriptions/) - [Resolution: Subscribe Self](https://www.sicpers.info/2017/01/resolution-subscribe-self/) - [Resolutions](https://www.sicpers.info/2025/01/resolutions/) - [Rethinking Object-Oriented Design figures](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/) - [Retiring the "Apple developers are insular" meme](https://www.sicpers.info/2013/01/retiring-the-apple-developers-are-insular-meme/) - [Reverse-engineering stringed instruments](https://www.sicpers.info/2009/06/reverse-engineering-stringed-instruments/) - [Reversing the polarity of the message flow](https://www.sicpers.info/2014/10/reversing-the-polarity-of-the-message-flow/) - [Rhetoric, smoothly outlined](https://www.sicpers.info/2008/09/rhetoric-smoothly-outlined/) - [Rootier than root](https://www.sicpers.info/2009/05/rootier-than-root/) - [Rubbies and sores](https://www.sicpers.info/2014/12/rubbies-and-sores/) - [Rumors of your runtime's death are greatly exaggerated](https://www.sicpers.info/2010/10/rumors-of-your-runtimes-death-are-greatly-exaggerated/) - [Running Linux GUI apps under MacOS using Docker](https://www.sicpers.info/2020/10/running-linux-gui-apps-under-macos-using-docker/) - [Runtime verification in Erlang by using contracts](https://www.sicpers.info/2019/03/runtime-verification-in-erlang-by-using-contracts/) - [Rust project organisation](https://www.sicpers.info/2017/02/rust-project-organisation/) - [Sacrilege!](https://www.sicpers.info/2007/01/sacrilege/) - [Scary stuff](https://www.sicpers.info/2007/01/scary-stuff/) - [Scripting confusion](https://www.sicpers.info/2021/10/scripting-confusion/) - [Second Brain](https://www.sicpers.info/2021/11/second-brain/) - [Security consultancy from the other side](https://www.sicpers.info/2017/09/security-consultancy-from-the-other-side/) - [Security flaw liability](https://www.sicpers.info/2010/03/security-flaw-liability/) - [Security: probably doing it wrong](https://www.sicpers.info/2012/01/security-probably-doing-it-wrong/) - [See you at WWDC...?](https://www.sicpers.info/2006/08/see-you-at-wwdc/) - [Selectively caring](https://www.sicpers.info/2015/11/selectively-caring/) - [Self-organising teams](https://www.sicpers.info/2020/09/self-organising-teams/) - [Separating user interface from work](https://www.sicpers.info/2013/06/separating-user-interface-from-work/) - [Server-side Objective-C](https://www.sicpers.info/2012/12/server-side-objective-c/) - [Set the settings set](https://www.sicpers.info/2014/01/set-the-settings-set/) - [Shell scripts and Xcode](https://www.sicpers.info/2013/05/shell-scripts-and-xcode/) - [Short Objective-C on the server update](https://www.sicpers.info/2013/05/short-objective-c-on-the-server-update/) - [SICPers podcast episode 10](https://www.sicpers.info/2020/07/sicpers-podcast-episode-10/) - [SICPers Podcast Episode 3](https://www.sicpers.info/2020/04/sicpers-podcast-episode-3/) - [SICPers podcast episode 4](https://www.sicpers.info/2020/05/sicpers-podcast-episode-4/) - [SICPers podcast episode 5](https://www.sicpers.info/2020/05/sicpers-podcast-episode-5/) - [SICPers podcast episode 9](https://www.sicpers.info/2020/06/sicpers-podcast-episode-9/) - [SICPers podcast episode one](https://www.sicpers.info/2020/04/sicpers-podcast-episode-one/) - [SICPers Podcast episode two](https://www.sicpers.info/2020/04/sicpers-podcast-episode-two/) - [Side-by-side](https://www.sicpers.info/2008/01/side-by-side/) - [Sideloading content into iOS apps](https://www.sicpers.info/2012/11/sideloading-content-into-ios-apps/) - [Sitting on the Sidelines](https://www.sicpers.info/2014/09/sitting-on-the-sidelines/) - [Six Colours](https://www.sicpers.info/2020/08/six-colours/) - [Sleep on it](https://www.sicpers.info/2021/08/sleep-on-it/) - [So are Macs uber-pricey?](https://www.sicpers.info/2008/08/so-are-macs-uber-pricey/) - [So it's not just the Department of Homeland Security, then](https://www.sicpers.info/2010/03/so-its-not-just-the-department-of-homeland-security-then/) - [So that's how it works](https://www.sicpers.info/2022/03/so-thats-how-it-works/) - [So you don't like your IDE](https://www.sicpers.info/2011/09/so-you-dont-like-your-ide/) - [So you're off to WWDC](https://www.sicpers.info/2012/05/so-youre-off-to-wwdc/) - [So, what's the plan? Part 1: what WAS the plan?](https://www.sicpers.info/2020/07/so-whats-the-plan-part-1-what-was-the-plan/) - [So, what's the plan? Part 2: what will the plan be?](https://www.sicpers.info/2020/07/so-whats-the-plan-part-2-what-will-the-plan-be/) - [Social and political requirements gathering](https://www.sicpers.info/2008/05/social-and-political-requirements-gathering/) - [Software design is refinement, not abstraction](https://www.sicpers.info/2022/03/software-design-is-refinement-not-abstraction/) - [Software, Science?](https://www.sicpers.info/2014/03/software-science/) - [Software-ICs and a component marketplace](https://www.sicpers.info/2012/04/software-ics-and-a-component-marketplace/) - [Solaris iPhone Edition](https://www.sicpers.info/2008/10/solaris-iphone-edition/) - [Solving the underlying problem](https://www.sicpers.info/2019/10/solving-the-underlying-problem/) - [Some bloody genius](https://www.sicpers.info/2008/11/some-bloody-genius/) - [Some LightReading about mobile app security](https://www.sicpers.info/2012/02/some-lightreading-about-mobile-app-security/) - [Some so-called expert](https://www.sicpers.info/2014/04/some-so-called-expert/) - [Something old, something new](https://www.sicpers.info/2016/09/something-old-something-new/) - [Sound bites considered harmful](https://www.sicpers.info/2012/07/sound-bites-considered-harmful/) - [Specific physical phenomena](https://www.sicpers.info/2024/04/specific-physical-phenomena/) - [Specifications for interchanging objects](https://www.sicpers.info/2013/05/specifications-for-interchanging-objects/) - [Sprouts](https://www.sicpers.info/2019/10/sprouts/) - [Standing at the Crossroads](https://www.sicpers.info/2013/12/standing-at-the-crossroads/) - [Stay on target…](https://www.sicpers.info/2020/04/stay-on-target/) - [Staying power](https://www.sicpers.info/2015/10/staying-power/) - [Still no silver bullet?](https://www.sicpers.info/2024/02/still-no-silver-bullet/) - [Still trading as ClosedDarwin](https://www.sicpers.info/2007/09/still-trading-as-closeddarwin/) - [Stop ignoring the world](https://www.sicpers.info/2017/11/stop-ignoring-the-world/) - [Storing and testing credentials: Cocoa Touch Edition](https://www.sicpers.info/2011/04/storing-and-testing-credentials-cocoa-touch-edition/) - [Story points: because I don't know what I'm doing](https://www.sicpers.info/2013/11/story-points-because-i-dont-know-what-im-doing/) - [Story points: there's no right way to do it](https://www.sicpers.info/2018/07/story-points/) - [Structured Pruning of Deep Convolutional Neural Networks](https://www.sicpers.info/2019/01/structured-pruning-of-deep-convolutional-neural-networks/) - [Subatomic Chocolate](https://www.sicpers.info/2018/04/subatomic-chocolate/) - [Subconscious operation](https://www.sicpers.info/2006/06/subconscious-operation/) - [Summer of code](https://www.sicpers.info/2007/03/summer-of-code/) - [Supporting both ARC and MRC build settings](https://www.sicpers.info/2012/06/supporting-both-arc-and-mrc-build-settings/) - [Surprising ARC performance characteristics](https://www.sicpers.info/2012/11/surprising-arc-performance-characteristics/) - [Swedish chef](https://www.sicpers.info/2006/07/swedish-chef/) - [Swift](https://www.sicpers.info/2018/06/swift/) - [switching CPUs](https://www.sicpers.info/2006/09/switching-cpus/) - [Synthesized ivars are private](https://www.sicpers.info/2012/02/synthesized-ivars-are-private/) - [Talking about talking](https://www.sicpers.info/2013/02/talking-about-talking/) - [Tautology of the year (so far)](https://www.sicpers.info/2009/01/tautology-of-the-year-so-far/) - [TDD and crypto in one place](https://www.sicpers.info/2012/04/tdd-and-crypto-in-one-place/) - [TDD/unit testing video training for iOS developers](https://www.sicpers.info/2011/07/tddunit-testing-video-training-for-ios-developers/) - [Teaching Programming to People. It's easy, right?](https://www.sicpers.info/2013/07/teaching-programming-to-people-its-easy-right/) - [Teaching Quality Object-Oriented Programming](https://www.sicpers.info/2018/12/teaching-quality-object-oriented-programming/) - [Tech's Meritocracy Problem](https://www.sicpers.info/2014/11/techs-meritocracy-problem/) - [Technical debt and jury service](https://www.sicpers.info/2017/07/technical-debt-and-jury-service/) - [Template change](https://www.sicpers.info/2007/08/template-change/) - [Template class for unit testing Core Data entities](https://www.sicpers.info/2010/06/template-class-for-unit-testing-core-data-entities/) - [Tempus Fugit](https://www.sicpers.info/2015/09/tempus-fugit/) - [Test-Driven iOS Development](https://www.sicpers.info/2012/04/test-driven-ios-development/) - [TGD - begging the question](https://www.sicpers.info/2006/12/tgd-begging-the-question/) - [TGD - expanding the field](https://www.sicpers.info/2007/01/tgd-expanding-the-field/) - [TGD - I'm not dead yet!](https://www.sicpers.info/2006/12/tgd-im-not-dead-yet/) - [TGD - John on acid](https://www.sicpers.info/2006/12/tgd-john-on-acid/) - [TGD - religion leaving the gene pool](https://www.sicpers.info/2006/12/tgd-religion-leaving-the-gene-pool/) - [TGD Responses - selection for religion?](https://www.sicpers.info/2006/12/tgd-responses-selection-for-religion/) - [That can't possibly work.](https://www.sicpers.info/2014/11/that-cant-possibly-work/) - [That syncing feeling](https://www.sicpers.info/2007/01/that-syncing-feeling/) - [The "return a command" trick in Haskell](https://www.sicpers.info/2021/10/the-return-a-command-trick-in-haskell/) - [The ABC of Software Engineering Research](https://www.sicpers.info/2019/01/the-abc-of-software-engineering-research/) - [The age-old problem](https://www.sicpers.info/2006/04/the-age-old-problem/) - [The App that Wasn't (Yet)](https://www.sicpers.info/2019/01/the-app-that-wasnt-yet/) - [The Atoms of Programming](https://www.sicpers.info/2017/11/the-atoms-of-programming/) - [The balloon goes up](https://www.sicpers.info/2019/03/the-balloon-goes-up/) - [The Cataract of Software Delivery](https://www.sicpers.info/2024/06/the-cataract-of-software-delivery/) - [The challenges of teaching software engineering](https://www.sicpers.info/2019/07/the-challenges-of-teaching-software-engineering/) - [The closed-open principle](https://www.sicpers.info/2020/07/the-closed-open-principle/) - [The code you wrote six months ago](https://www.sicpers.info/2013/06/the-code-you-wrote-six-months-ago/) - [The death of scripting](https://www.sicpers.info/2015/08/the-death-of-scripting/) - [The debugger of royalty](https://www.sicpers.info/2012/04/the-debugger-of-royalty/) - [The Design of the Bazaar](https://www.sicpers.info/2015/04/the-design-of-the-bazaar/) - [The difference between NSTableView and UITableView](https://www.sicpers.info/2010/04/the-difference-between-nstableview-and-uitableview/) - [The Dock should be destroyed, or at least changed a lot](https://www.sicpers.info/2008/05/the-dock-should-be-destroyed-or-at-least-changed-a-lot/) - [The feature constraint](https://www.sicpers.info/2019/11/the-feature-constraint/) - [The First Flaw](https://www.sicpers.info/2014/01/the-first-flaw/) - [The Fragile Manifesto](https://www.sicpers.info/2019/02/the-fragile-manifesto/) - [The future will be just like the past, right?](https://www.sicpers.info/2013/07/the-future-will-be-just-like-the-past-right/) - [The gaps between the processes](https://www.sicpers.info/2025/01/the-gaps-between-the-processes/) - [The hardest thing](https://www.sicpers.info/2018/06/the-hardest-thing/) - [The Humpty-Dumpty Guide to OOP](https://www.sicpers.info/2014/10/the-humpty-dumpty-guide-to-oop/) - [The Ignoble Programmer](https://www.sicpers.info/2013/12/the-ignoble-programmer/) - [The Image Model](https://www.sicpers.info/2022/08/the-image-model/) - [The importance of the passive voice is described.](https://www.sicpers.info/2019/06/the-importance-of-the-passive-voice-is-described/) - [The laser physics of software](https://www.sicpers.info/2014/10/the-laser-physics-of-software/) - [The lighter side of open source](https://www.sicpers.info/2014/05/the-lighter-side-of-open-source/) - [The Liskov Citation Principle](https://www.sicpers.info/2013/03/the-liskov-citation-principle/) - [The Logical Fallacy](https://www.sicpers.info/2019/05/the-logical-fallacy/) - [The manifesto for anarchic software development](https://www.sicpers.info/2020/09/the-manifesto-for-anarchic-software-development/) - [The missing principle in agile software development](https://www.sicpers.info/2021/09/the-missing-principle-in-agile-software-development/) - [The new netiquette](https://www.sicpers.info/2007/06/the-new-netiquette/) - [The next million-dollar iPhone application](https://www.sicpers.info/2009/08/the-next-million-dollar-iphone-application/) - [The Nineteen Nineties](https://www.sicpers.info/2020/07/the-nineteen-nineties/) - [The Object is the Advantage](https://www.sicpers.info/2020/08/the-object-is-the-advantage/) - [The Objective-C protocol naming trifecta](https://www.sicpers.info/2014/02/the-objective-c-protocol-naming-trifecta/) - [The other pink dollar](https://www.sicpers.info/2015/01/the-other-pink-dollar/) - [The package management paradox](https://www.sicpers.info/2017/02/the-package-management-paradox/) - [The paradox of scripting](https://www.sicpers.info/2015/08/the-paradox-of-scripting/) - [The Principled Programmer](https://www.sicpers.info/2015/11/the-principled-programmer/) - [The problem with not-Apple](https://www.sicpers.info/2017/01/the-problem-with-not-apple/) - [The reality is not the abstraction](https://www.sicpers.info/2017/01/the-reality-is-not-the-abstraction/) - [The reasonable effectiveness of developer tools](https://www.sicpers.info/2014/07/the-reasonable-effectiveness-of-developer-tools/) - [The repair permissions fiasco](https://www.sicpers.info/2006/04/the-repair-permissions-fiasco/) - [The Requirements Trifecta](https://www.sicpers.info/2022/05/the-requirements-trifecta/) - [The rokeg blood pie^W^W^Wplot thickens](https://www.sicpers.info/2009/05/the-rokeg-blood-piewwwplot-thickens/) - [The security apprentice](https://www.sicpers.info/2012/03/the-security-apprentice/) - [The Silent Network](https://www.sicpers.info/2020/11/the-silent-network/) - [The Software Leviathan](https://www.sicpers.info/2014/03/the-software-leviathan/) - [The Tankard Brigade](https://www.sicpers.info/2015/01/the-tankard-brigade/) - [The times, they mainly stay the same](https://www.sicpers.info/2007/10/the-times-they-mainly-stay-the-same/) - [The trouble with layers](https://www.sicpers.info/2014/10/the-trouble-with-layers/) - [The twitter sitter hit a bitter critter](https://www.sicpers.info/2008/09/the-twitter-sitter-hit-a-bitter-critter/) - [The unreasonable ineffectiveness of considering things harmful](https://www.sicpers.info/2020/02/the-unreasonable-ineffectiveness-of-considering-things-harmful/) - [The value of the things on the left](https://www.sicpers.info/2019/10/the-value-of-the-things-on-the-left/) - [The Vexing Problems in Programming](https://www.sicpers.info/2016/11/the-vexing-problems-in-programming/) - [The view(s) from the hotel](https://www.sicpers.info/2008/10/the-views-from-the-hotel/) - [The Vizzini Effect](https://www.sicpers.info/2021/03/the-vizzini-effect/) - [The Wealth of Applications](https://www.sicpers.info/2014/08/the-wealth-of-applications/) - [The whole 'rockstar developer' thing is backwards](https://www.sicpers.info/2013/08/the-whole-rockstar-developer-thing-is-backwards/) - [The worst phrase in software marketing](https://www.sicpers.info/2017/07/the-worst-phrase-in-software-marketing/) - [There is no "us" in team](https://www.sicpers.info/2021/06/there-is-no-us-in-team/) - [There is no browser, only Zuul](https://www.sicpers.info/2018/02/there-is-no-browser-only-zuul/) - [There's more to it](https://www.sicpers.info/2019/03/theres-more-to-it/) - [There's No Such Thing as a General-purpose Processor](https://www.sicpers.info/2014/11/theres-no-such-thing-as-a-general-purpose-processor/) - [These things are hard](https://www.sicpers.info/2011/12/these-things-are-hard/) - [Things I believe](https://www.sicpers.info/2014/06/things-i-believe/) - [This is fine](https://www.sicpers.info/2016/12/this-is-fine/) - [This means business](https://www.sicpers.info/2008/06/this-means-business/) - [This so goes on my CV](https://www.sicpers.info/2006/05/this-so-goes-on-my-cv/) - [This year's WWDC t-shirt?](https://www.sicpers.info/2006/07/this-years-wwdc-t-shirt/) - [Thoughts on Tech Conferences](https://www.sicpers.info/2012/05/thoughts-on-tech-conferences/) - [Tiger to Catalina: let's port some code](https://www.sicpers.info/2020/07/tiger-to-catalina-lets-port-some-code/) - [To become a beginner, first become an expert](https://www.sicpers.info/2018/02/to-become-a-beginner-first-become-an-expert/) - [Today's broken user interface award...](https://www.sicpers.info/2006/05/todays-broken-user-interface-award/) - [Today's surprisingly short workflow-improving win](https://www.sicpers.info/2014/11/todays-surprisingly-short-workflow-improving-win/) - [Tony Hoare and negative space](https://www.sicpers.info/2025/11/tony-hoare-and-negative-space/) - [Too much confidence is good for you](https://www.sicpers.info/2006/04/too-much-confidence-is-good-for-you/) - [Tracking the invisible, moving, unpredictable target](https://www.sicpers.info/2008/04/tracking-the-invisible-moving-unpredictable-target/) - [Transcendence](https://www.sicpers.info/2022/09/transcendence/) - [Tsundoku](https://www.sicpers.info/2017/02/tsundoku/) - [Turn and face the strange](https://www.sicpers.info/2014/11/turn-and-face-the-strange/) - [Turn it off and back on again](https://www.sicpers.info/2016/03/turn-it-off-and-back-on-again/) - [Two books](https://www.sicpers.info/2018/12/two-books/) - [Two out of three ain't bad](https://www.sicpers.info/2018/09/two-out-of-three-aint-bad/) - [Two Schools](https://www.sicpers.info/2018/09/two-schools/) - [Two ways of thinking](https://www.sicpers.info/2017/07/two-ways-of-thinking/) - [Type safety, undefined behaviour, and us](https://www.sicpers.info/2023/08/type-safety-undefined-behaviour-and-us/) - [Ubiquitous computing](https://www.sicpers.info/2021/01/ubiquitous-computing/) - [Ultimate Programmer Super Stack](https://www.sicpers.info/2018/11/ultimate-programmer-super-stack/) - [Ultimate Programmer Super Stack Reloaded](https://www.sicpers.info/2019/02/ultimate-programmer-super-stack-reloaded/) - [Ultimate Programmer Super Stack: Last day!](https://www.sicpers.info/2018/11/ultimate-programmer-super-stack-last-day/) - [Unfamiliar territory](https://www.sicpers.info/2009/09/unfamiliar-territory/) - [Unintended consequences](https://www.sicpers.info/2025/08/unintended-consequences/) - [Unit test: you keep using this word.](https://www.sicpers.info/2022/03/unit-test-you-keep-using-this-word/) - [Unit testing Cocoa projects in Xcode](https://www.sicpers.info/2009/06/unit-testing-cocoa-projects-in-xcode/) - [Unit testing Core Data-driven apps](https://www.sicpers.info/2009/09/unit-testing-core-data-driven-apps/) - [Unit testing Core Data-driven apps, fit the second](https://www.sicpers.info/2010/01/unit-testing-core-data-driven-apps-fit-the-second/) - [UNIX-like pedantry](https://www.sicpers.info/2015/01/unix-like-pedantry/) - [Up or to the right](https://www.sicpers.info/2014/11/up-or-to-the-right/) - [Upcoming Cocoa nerd stuff](https://www.sicpers.info/2007/11/upcoming-cocoa-nerd-stuff/) - [Updates to JavaByContract](https://www.sicpers.info/2019/01/updates-to-javabycontract/) - [Updating my ObjC web app on git push](https://www.sicpers.info/2013/11/updating-my-objc-web-app-on-git-push/) - [Use of vm_stat(1)](https://www.sicpers.info/2006/06/use-of-vm_stat1/) - [Using Aspect-Oriented Programming for Security Engineering](https://www.sicpers.info/2010/06/using-aspect-oriented-programming-for-security-engineering/) - [Using GNUstep libraries with Xcode](https://www.sicpers.info/2012/05/using-gnustep-libraries-with-xcode/) - [Using Objective-C on the server](https://www.sicpers.info/2012/03/using-objective-c-on-the-server/) - [UX is snake-oil bullshit](https://www.sicpers.info/2012/04/ux-is-snake-oil-bullshit/) - [Verify your backups](https://www.sicpers.info/2007/10/verify-your-backups/) - [Vibe coding and BASIC](https://www.sicpers.info/2025/11/vibe-coding-and-basic/) - [Video podcast: Hisoft C for the ZX Spectrum](https://www.sicpers.info/2020/05/video-podcast-hisoft-c-for-the-zx-spectrum/) - [Walking a mile dans ses chausseurs](https://www.sicpers.info/2008/08/walking-a-mile-dans-ses-chausseurs/) - [Want to hire iamleeg?](https://www.sicpers.info/2011/08/want-to-hire-iamleeg/) - [Warsaw Welcomes Dumbass Commentary](https://www.sicpers.info/2018/06/warsaw-welcomes-dumbass-commentary/) - [We shall return one day](https://www.sicpers.info/2023/11/we-shall-return-one-day/) - [We! Haven't! Thought! This! Through!](https://www.sicpers.info/2008/02/we-havent-thought-this-through/) - [We're off to see the Wozzard....](https://www.sicpers.info/2006/10/were-off-to-see-the-wozzard/) - [Website relaunch!](https://www.sicpers.info/2009/07/website-relaunch/) - [Week five](https://www.sicpers.info/2015/10/week-five/) - [Week four](https://www.sicpers.info/2015/10/week-four/) - [Week One](https://www.sicpers.info/2015/09/week-one/) - [Week Seven](https://www.sicpers.info/2015/11/week-seven/) - [Week six](https://www.sicpers.info/2015/10/week-six/) - [Week three](https://www.sicpers.info/2015/10/week-three/) - [Week Two](https://www.sicpers.info/2015/10/week-two/) - [Well, you could have told me](https://www.sicpers.info/2008/02/well-you-could-have-told-me/) - [What do you think of this?](https://www.sicpers.info/2010/10/what-do-you-think-of-this/) - [What Graham did next](https://www.sicpers.info/2013/07/what-graham-did-next/) - [What happens when you add one to an integer?](https://www.sicpers.info/2013/01/what-happens-when-you-add-one-to-an-integer/) - [What happens when you jailbreak an iPad](https://www.sicpers.info/2011/03/what-happens-when-you-jailbreak-an-ipad/) - [What is software engineering?](https://www.sicpers.info/2022/02/what-is-software-engineering/) - [What it takes to "win" a discussion](https://www.sicpers.info/2014/10/what-it-takes-to-win-a-discussion/) - [What Lenin taught me about software movements](https://www.sicpers.info/2018/04/what-lenin-taught-me-about-software-movements/) - [What Xamarin.Forms taught me about data bindings](https://www.sicpers.info/2021/04/what-xamarin-forms-taught-me-about-data-bindings/) - [What's a software architect?](https://www.sicpers.info/2012/07/whats-a-software-architect/) - [What's better than semver?](https://www.sicpers.info/2018/04/whats-better-than-semver/) - [What's new in 2009](https://www.sicpers.info/2009/01/whats-new-in-2009/) - [What's on the other channel?](https://www.sicpers.info/2019/04/whats-on-the-other-channel/) - [What's the mobile app market up to, then?](https://www.sicpers.info/2013/07/whats-the-mobile-app-market-up-to-then/) - [When all you have is a NailFactory...](https://www.sicpers.info/2013/03/when-all-you-have-is-a-nailfactory/) - [When did people favor composition over inheritance?](https://www.sicpers.info/2025/11/when-did-people-favor-composition-over-inheritance/) - [When Object-Oriented Programming Isn't](https://www.sicpers.info/2017/08/when-object-oriented-programming-isnt/) - [When security procedures go bad](https://www.sicpers.info/2013/05/when-security-procedures-go-bad/) - [When single responsibility isn't possible](https://www.sicpers.info/2013/05/when-single-responsibility-isnt-possible/) - [When techs collide](https://www.sicpers.info/2009/02/when-techs-collide/) - [When to “address” “technical debt”?](https://www.sicpers.info/2022/03/when-to-address-technical-debt/) - [Where am I going with this?](https://www.sicpers.info/2014/03/where-am-i-going-with-this/) - [Where are we going?](https://www.sicpers.info/2007/02/where-are-we-going/) - [Where We Ditched Chipzilla](https://www.sicpers.info/2020/06/where-we-ditched-chipzilla/) - [Which vendor "is least secure"?](https://www.sicpers.info/2010/04/which-vendor-is-least-secure/) - [Whither the codesign interface?](https://www.sicpers.info/2008/12/whither-the-codesign-interface/) - [Whoever "wins", software freedom loses](https://www.sicpers.info/2021/04/whoever-wins-software-freedom-loses/) - [Why 80?](https://www.sicpers.info/2019/02/why-80/) - [Why are we like this?](https://www.sicpers.info/2022/03/why-are-we-like-this/) - [Why are you using the wrong licence?](https://www.sicpers.info/2017/11/why-are-you-using-the-wrong-licence/) - [Why do we annoy our users?](https://www.sicpers.info/2010/03/why-do-we-annoy-our-users/) - [Why I don't have a favourite programming language](https://www.sicpers.info/2017/10/why-i-dont-have-a-favourite-programming-language/) - [Why inheritance never made any sense](https://www.sicpers.info/2018/03/why-inheritance-never-made-any-sense/) - [Why is programming so hard?](https://www.sicpers.info/2014/08/why-is-programming-so-hard/) - [Why Java is so damned lame, part exp(I*M_PI)](https://www.sicpers.info/2007/02/why-java-is-so-damned-lame-part-expim_pi/) - [Why mock objects aren’t popular this week](https://www.sicpers.info/2022/06/why-mock-objects-arent-popular-this-week/) - [Why nerd culture must die](https://www.sicpers.info/2014/11/why-nerd-culture-must-die/) - [Why OS X (almost) doesn't need root any more](https://www.sicpers.info/2010/05/why-os-x-almost-doesnt-need-root-any-more/) - [Why passwords aren't always the right answer.](https://www.sicpers.info/2010/04/why-passwords-arent-always-the-right-answer/) - [Why we don't trust -retainCount](https://www.sicpers.info/2012/02/why-we-dont-trust-retaincount/) - [Why you didn't like that thing that company made](https://www.sicpers.info/2021/09/why-you-didnt-like-that-thing-that-company-made/) - [Why your app is not massively parallel software](https://www.sicpers.info/2017/04/why-your-app-is-not-massively-parallel-software/) - [Why your security UI sucks](https://www.sicpers.info/2011/10/why-your-security-ui-sucks/) - [Wikipedia == fail](https://www.sicpers.info/2008/12/wikipedia-fail/) - [WikityWebsite](https://www.sicpers.info/2006/09/wikitywebsite/) - [Wistfully Wonderful Den of Coders](https://www.sicpers.info/2008/05/wistfully-wonderful-den-of-coders/) - [Withholding the Four Freedoms](https://www.sicpers.info/2016/10/withholding-the-four-freedoms/) - [Wolf! Wolf!](https://www.sicpers.info/2006/04/wolf-wolf/) - [Working Effectively with Legacy Code](https://www.sicpers.info/2017/03/working-effectively-with-legacy-code/) - [Wristwatches in the Future](https://www.sicpers.info/2014/06/wristwatches-in-the-future/) - [WTF is a Veo?](https://www.sicpers.info/2006/08/wtf-is-a-veo/) - [WWDC - day one](https://www.sicpers.info/2008/06/wwdc-day-one/) - [WWDC 2022 is a WWDC watch party](https://www.sicpers.info/2022/04/wwdc-2022-is-a-wwdc-watch-party/) - [WWDC aside](https://www.sicpers.info/2008/06/wwdc-aside/) - [WWDC dates announced](https://www.sicpers.info/2010/04/wwdc-dates-announced/) - [WWDC day 00000000000000000000000000000101](https://www.sicpers.info/2008/06/wwdc-day-00000000000000000000000000000101/) - [WWDC day 2](https://www.sicpers.info/2008/06/wwdc-day-2/) - [WWDC day crosspost](https://www.sicpers.info/2008/06/wwdc-day-crosspost/) - [WWDC day four](https://www.sicpers.info/2008/06/wwdc-day-four/) - [WWDC day three](https://www.sicpers.info/2008/06/wwdc-day-three/) - [WWDC part 0](https://www.sicpers.info/2008/06/wwdc-part-0/) - [WWDC wind-down](https://www.sicpers.info/2009/06/wwdc-wind-down/) - [WWDC: afp548 Venn competition](https://www.sicpers.info/2008/06/wwdc-afp548-venn-competition/) - [Yeah, we've got one of those](https://www.sicpers.info/2008/04/yeah-weve-got-one-of-those/) - [Yes, you may delete tests](https://www.sicpers.info/2014/10/yes-you-may-delete-tests/) - [You keep using that word. I do not think it means what you think it means.](https://www.sicpers.info/2008/12/you-keep-using-that-word-i-do-not-think-it-means-what-you-think-it-means/) - [You say “cave dweller debugging”, I say debug logging](https://www.sicpers.info/2022/05/you-say-cave-dweller-debugging-i-say-debug-logging/) - [Your build needs to be better](https://www.sicpers.info/2017/05/your-build-needs-to-be-better/) - [Your reminder that "British English" and "American English" are fictional constructs](https://www.sicpers.info/2023/01/your-reminder-that-british-english-and-american-english-are-fictional-constructs/) - [YX problem](https://www.sicpers.info/2024/03/yx-problem/) - [Zen and the Art of Software Maintenance](https://www.sicpers.info/2019/10/zen-and-the-art-of-software-maintenance/) - [[objc retain] stream](https://www.sicpers.info/2021/02/objc-retain-stream/) - [[objc retain]; continues apace](https://www.sicpers.info/2022/01/objc-retain-continues-apace/) - [“Best practice” is less of a scam than claimed](https://www.sicpers.info/2021/02/best-practice-is-less-of-a-scam-than-claimed/) - [客観的なc計算機言語](https://www.sicpers.info/2006/12/%e5%ae%a2%e8%a6%b3%e7%9a%84%e3%81%aac%e8%a8%88%e7%ae%97%e6%a9%9f%e8%a8%80%e8%aa%9e/) ### Pages - [About](https://www.sicpers.info/) - [Blog](https://www.sicpers.info/blog/) - [Contact](https://www.sicpers.info/contact/) - [Post Archives](https://www.sicpers.info/archives/) - [Privacy Statement](https://www.sicpers.info/privacy-statement/) - [Software Portfolio](https://www.sicpers.info/software-portfolio/) ### Media - [(No Title)](https://www.sicpers.info/3237/) - [1d6.mp4](https://www.sicpers.info/2016/12/this-is-fine/vid-20161222-wa0004/) - [20180429_185146](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/20180429_185146/) - [20180429_185242](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/20180429_185242/) - [20180429_185256](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/20180429_185256/) - [20180429_185313](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/20180429_185313/) - [20180429_185326](https://www.sicpers.info/2018/04/rethinking-object-oriented-design-figures/20180429_185326/) - [3mpfg-front.JPG](https://www.sicpers.info/2010/06/a-solution-in-need-of-a-problem/3mpfg-front-jpg/) - [3mpfg-side.JPG](https://www.sicpers.info/2010/06/a-solution-in-need-of-a-problem/3mpfg-side-jpg/) - [3mpfg-sun.JPG](https://www.sicpers.info/2010/06/a-solution-in-need-of-a-problem/3mpfg-sun-jpg/) - [amxrci](https://www.sicpers.info/2026/03/on-working-machines/amxrci/) - [AppCode.png](https://www.sicpers.info/2011/09/so-you-dont-like-your-ide/appcode-png/) - [avon-watch.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/avon-watch-png/) - [bigclick.png](https://www.sicpers.info/2010/07/on-fitts-law-and-security/bigclick-png/) - [Bike_with_Training_Wheels.jpg](https://www.sicpers.info/2013/04/as-the-kaiser-chiefs-might-say-ruby-ruby-ruby-n00bie/bike_with_training_wheels-jpg/) - [blogstats.png](https://www.sicpers.info/2012/07/on-community/blogstats-png/) - [breakpointeditor.png](https://www.sicpers.info/2012/04/the-debugger-of-royalty/breakpointeditor-png/) - [Byte Magazine Smalltalk Cover](https://www.sicpers.info/2019/03/the-balloon-goes-up/screenshot-2019-03-01-at-17-03-08/) - [CatchFail.PNG](https://www.sicpers.info/2012/03/how-to-tdd-with-catch/catchfail-png/) - [catchpass.PNG](https://www.sicpers.info/2012/03/how-to-tdd-with-catch/catchpass-png/) - [catch_default.PNG](https://www.sicpers.info/2012/03/how-to-tdd-with-catch/catch_default-png/) - [cb-after.png](https://www.sicpers.info/2013/12/a-sneaky-preview-of-classbrowser/cb-after-png/) - [cb-before.png](https://www.sicpers.info/2013/12/a-sneaky-preview-of-classbrowser/cb-before-png/) - [cb-doit.png](https://www.sicpers.info/2013/12/a-sneaky-preview-of-classbrowser/cb-doit-png/) - [Certificate.png](https://www.sicpers.info/2011/10/why-your-security-ui-sucks/certificate-png/) - [clacks](https://www.sicpers.info/clacks/) - [cmd-line-tool.png](https://www.sicpers.info/2014/03/inside-out-apps/cmd-line-tool-png/) - [Cocoa MVC](https://www.sicpers.info/2014/02/messily-veneered-c/cocoamvc-png/) - [CodeRunner.png](https://www.sicpers.info/2011/09/so-you-dont-like-your-ide/coderunner-png/) - [COMPUTERS.JPG](https://www.sicpers.info/2014/07/padds-not-the-ipad/computers-jpg/) - [confvenn.JPG](https://www.sicpers.info/2012/05/thoughts-on-tech-conferences/confvenn-jpg/) - [connected-data-hoffed](https://www.sicpers.info/connected-data-hoffed/) - [cropped-F7D14238-8296-418F-924B-5CAB0BF65AD9.jpeg](https://www.sicpers.info/cropped-f7d14238-8296-418f-924b-5cab0bf65ad9-jpeg/) - [demolition-man-watch.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/demolition-man-watch-png/) - [discworld-credits.png](https://www.sicpers.info/2013/07/what-graham-did-next/discworld-credits-png/) - [Early Bird Push - SD 480p](https://www.sicpers.info/2026/03/chiron-codex-early-bird-ends-soon/early-bird-push-sd-480p/) - [eliminate-blake.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/eliminate-blake-png/) - [Emacs.png](https://www.sicpers.info/2011/09/so-you-dont-like-your-ide/emacs-png/) - [example-2-1.jpg](https://www.sicpers.info/2012/07/illuminative-c/example-2-1-jpg/) - [explosion](https://www.sicpers.info/explosion/) - [explosion](https://www.sicpers.info/explosion-2/) - [F7D14238-8296-418F-924B-5CAB0BF65AD9](https://www.sicpers.info/f7d14238-8296-418f-924b-5cab0bf65ad9/) - [fingertap.png](https://www.sicpers.info/2010/07/on-fitts-law-and-security/fingertap-png/) - [gloom](https://www.sicpers.info/2018/12/figurative-programming-and-gloom-the-graphical-loom/gloom/) - [grotag.png](https://www.sicpers.info/2020/08/grotag/grotag-png/) - [HelloGSW.png](https://www.sicpers.info/2012/03/using-objective-c-on-the-server/hellogsw-png/) - [iamleeg _FO82FCD66EF46-01](https://www.sicpers.info/about/iamleeg-_fo82fcd66ef46-01/) - [IKBCommand.JPG](https://www.sicpers.info/2013/06/separating-user-interface-from-work/ikbcommand-jpg/) - [image](https://www.sicpers.info/image-2/) - [imagesfolder.jpg](https://www.sicpers.info/2010/02/look-what-the-feds-left-behind/imagesfolder-jpg/) - [imagesIMAG0101.jpg](https://www.sicpers.info/2011/03/on-being-a-software-person/imagesimag0101-jpg/) - [imagesPicture-1.png](https://www.sicpers.info/2010/03/why-do-we-annoy-our-users/imagespicture-1-png/) - [imagesssh-add.png](https://www.sicpers.info/2010/03/integrating-ssh-with-the-keychain-on-snow-leopard/imagesssh-add-png/) - [imagesssh-keychain.png](https://www.sicpers.info/2010/03/integrating-ssh-with-the-keychain-on-snow-leopard/imagesssh-keychain-png/) - [img_0003-1](https://www.sicpers.info/2017/11/the-atoms-of-programming/img_0003-1/) - [IMG_0114.JPG](https://www.sicpers.info/2012/04/culture-heritage-and-apps/img_0114-jpg/) - [IMG_0475](https://www.sicpers.info/2025/02/on-nostalgia-for-physical-media/img_0475/) - [IMG_3356.jpeg](https://www.sicpers.info/2021/05/graham-lee-uses-this/img_3356-jpeg/) - [IMG_3357.jpeg](https://www.sicpers.info/2021/05/graham-lee-uses-this/img_3357-jpeg/) - [IMG_3943](https://www.sicpers.info/2023/11/we-shall-return-one-day/img_3943/) - [Input](https://www.sicpers.info/img_2883-jpg/) - [janus.jpg](https://www.sicpers.info/2014/03/software-science/janus-jpg/) - [kirk-watch.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/kirk-watch-png/) - [knight-watch.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/knight-watch-png/) - [Labrary note template](https://www.sicpers.info/2019/01/the-app-that-wasnt-yet/screenshot-2019-01-02-at-10-48-36/) - [Labrary Prototype](https://www.sicpers.info/2019/01/the-app-that-wasnt-yet/20190102_101601/) - [Labrary prototype screenshot](https://www.sicpers.info/2019/01/the-app-that-wasnt-yet/labrary_screenshot/) - [labrary-colour](https://www.sicpers.info/labrary-colour/) - [layer_cake.png](https://www.sicpers.info/2014/10/the-trouble-with-layers/layer_cake-png/) - [LibreLiteracy](https://www.sicpers.info/libreliteracy/) - [life.png](https://www.sicpers.info/2015/05/object-oriented-programming-in-objective-c/life-png/) - [MacBook Pro](https://www.sicpers.info/2018/10/making-my-peace/20181004_192537/) - [msg-send.png](https://www.sicpers.info/2013/12/by-your-_cmd/msg-send-png/) - [MVC-organisation.png](https://www.sicpers.info/2014/03/inside-out-apps/mvc-organisation-png/) - [MVC1.png](https://www.sicpers.info/2010/07/on-detecting-god-classes/mvc1-png/) - [MVC2.png](https://www.sicpers.info/2010/07/on-detecting-god-classes/mvc2-png/) - [MVC3.png](https://www.sicpers.info/2010/07/on-detecting-god-classes/mvc3-png/) - [ObjC Layers](https://www.sicpers.info/2014/02/messily-veneered-c/objclayers-png/) - [ObjectiveBrowser.png](https://www.sicpers.info/2012/05/messing-about-with-clang/objectivebrowser-png/) - [padd.jpg](https://www.sicpers.info/2014/07/padds-not-the-ipad/padd-jpg/) - [padds.png](https://www.sicpers.info/2014/07/padds-not-the-ipad/padds-png/) - [Path of Parsimony](https://www.sicpers.info/path-of-parsimony/) - [permutations](https://www.sicpers.info/2012/08/i-made-a-web/permutations/) - [Picture 1](https://www.sicpers.info/picture-1/) - [plusminus.png](https://www.sicpers.info/2010/07/on-fitts-law-and-security/plusminus-png/) - [Pub walks in Warwickshire](https://www.sicpers.info/2019/01/grooming-the-backfog/20190129_145946/) - [sav.png](https://www.sicpers.info/2010/11/on-free-mac-anti-virus-2/sav-png/) - [Scream.jpg](https://www.sicpers.info/2013/02/how-to-handle-xcode-in-your-meta-build-systems-ios-or-mac-app-target/scream-jpg/) - [Screen-shot-2011-04-06-at-16.53.22.png](https://www.sicpers.info/2011/04/a-first-look-at-appcode-and-the-future-of-cocoa-ides/screen-shot-2011-04-06-at-16-53-22-png/) - [Screen-shot-2011-04-06-at-17.19.32.png](https://www.sicpers.info/2011/04/a-first-look-at-appcode-and-the-future-of-cocoa-ides/screen-shot-2011-04-06-at-17-19-32-png/) - [Screen-Shot-2013-07-04-at-14.22.27.png](https://www.sicpers.info/2013/07/ajax-via-jquery-in-an-objective-c-webobjects-app/screen-shot-2013-07-04-at-14-22-27-png/) - [Screen-Shot-2013-07-04-at-14.37.26.png](https://www.sicpers.info/2013/07/ajax-via-jquery-in-an-objective-c-webobjects-app/screen-shot-2013-07-04-at-14-37-26-png/) - [Screenshot 2026-01-12 at 09.54.12](https://www.sicpers.info/2026/01/configuring-your-computer-for-local-inference-with-a-generative-ai-coding-assistant/screenshot-2026-01-12-at-09-54-12/) - [Screenshot 2026-01-12 at 10.16.04](https://www.sicpers.info/2026/01/configuring-your-computer-for-local-inference-with-a-generative-ai-coding-assistant/screenshot-2026-01-12-at-10-16-04/) - [Screenshot-2020-07-09-at-19.11.12.png](https://www.sicpers.info/2020/07/tiger-to-catalina-lets-port-some-code/screenshot-2020-07-09-at-19-11-12-png/) - [Screenshot-2020-07-09-at-19.11.12.png](https://www.sicpers.info/2020/07/tiger-to-catalina-lets-port-some-code/screenshot-2020-07-09-at-19-11-12-png-2/) - [Screenshot-2020-07-09-at-19.11.26.png](https://www.sicpers.info/2020/07/tiger-to-catalina-lets-port-some-code/screenshot-2020-07-09-at-19-11-26-png/) - [Screenshot-2020-07-09-at-19.11.26.png](https://www.sicpers.info/2020/07/tiger-to-catalina-lets-port-some-code/screenshot-2020-07-09-at-19-11-26-png-2/) - [Screenshot-2020-10-12-at-17.08.30.png](https://www.sicpers.info/2020/10/running-linux-gui-apps-under-macos-using-docker/screenshot-2020-10-12-at-17-08-30-png/) - [Screenshot-2022-01-28-at-12.33.43](https://www.sicpers.info/about/screenshot-2022-01-28-at-12-33-43/) - [Screenshot-2022-01-28-at-12.47.23](https://www.sicpers.info/about/screenshot-2022-01-28-at-12-47-23/) - [signup-1.png](https://www.sicpers.info/2013/11/updating-my-objc-web-app-on-git-push/signup-1-png/) - [signup-2.png](https://www.sicpers.info/2013/11/updating-my-objc-web-app-on-git-push/signup-2-png/) - [smallclick.png](https://www.sicpers.info/2010/07/on-fitts-law-and-security/smallclick-png/) - [Smalltalk MVC](https://www.sicpers.info/2014/02/moderately-valuable-cliche/smalltalkmvc-png/) - [Smalltalk-80 books](https://www.sicpers.info/2014/02/missing-vital-content/smalltalk_books-jpg/) - [SNfoot.JPG](https://www.sicpers.info/2011/08/remember-the-future/snfoot-jpg/) - [SNneck.JPG](https://www.sicpers.info/2011/08/remember-the-future/snneck-jpg/) - [SNtop.JPG](https://www.sicpers.info/2011/08/remember-the-future/sntop-jpg/) - [SNtrunk.JPG](https://www.sicpers.info/2011/08/remember-the-future/sntrunk-jpg/) - [sophos-eicar.png](https://www.sicpers.info/2010/11/on-free-mac-anti-virus-2/sophos-eicar-png/) - [subscriptions](https://www.sicpers.info/2017/01/resolution-share-subscriptions/subscriptions/) - [Swift tower](https://www.sicpers.info/2019/04/new-swift-hardware/d72a8cc3-68a3-4efb-b128-68e77c6dedcd/) - [table1-1.png](https://www.sicpers.info/2012/09/an-apology-to-readers-of-test-driven-ios-development/table1-1-png/) - [thunderbirds-watch.png](https://www.sicpers.info/2014/06/wristwatches-in-the-future/thunderbirds-watch-png/) - [TMVE](https://www.sicpers.info/2014/01/meaningless-vapid-catchphrase/tvme/) - [Ubuntu](https://www.sicpers.info/2018/10/making-my-peace/img_20141110_080719/) - [win8_1.jpg](https://www.sicpers.info/2014/04/code-longevity/win8_1-jpg/) - [xcode-managedtest.png](https://www.sicpers.info/2010/06/template-class-for-unit-testing-core-data-entities/xcode-managedtest-png/) - [zelda.jpg](https://www.sicpers.info/2014/04/preparing-for-computings-big-one-oh-oh/zelda-jpg/) - [Zim-as-Labrary](https://www.sicpers.info/2019/01/the-app-that-wasnt-yet/screenshot-2019-01-02-at-11-11-58/)