XZ Gon' Give It To Ya

Last Friday the internet was rocked with the discovery of an exploit in xz-utils that was not only well-put-together technically, but also an example of extremely effective long game social engineering. I could share my opinions, but the takes I’ve seen have actually been fairly nuanced and thoughtful, if (justifiably!) pessimistic, from people with more experience and more familiarity than I have.

So instead I did this. Which, if you recognize the title, is exactly what you think it is.

Run-time Polymorphism in Swift

This has come up several times on the forums over the years, but I’ve never written it up in a standard place, so here it is: There are only three ways to get run-time polymorphism in Swift. Well, three and a half.

Online Communication

I’ve been thinking about different sorts of internet communities, and how they can feel pretty different based on their primary medium. By “community” I mean a group you specifically choose to be part of, a group where you can recognize other “regulars”…a group that feels like a “place” that feels comfortable. Sometimes this is going to be a closed group of friends; other times it’s friends-of-friends that come and go; still others it’s people oriented around a common interest. But as far as text-based online media go, I think they fit into five main categories: Messaging, Chat Rooms, Livestream Chat, Comment Threads, and Forums.

Older Posts

  1. 2024-01-07 The Biggest Smallest PNG
  2. 2023-12-28 CellLVM
  3. 2023-12-14 Protobuf Is Almost Streamable
  4. 2023-12-13 Daylight Saving Is Temporal Time Zones
  5. 2023-11-26 GitMounter
  6. 2023-10-23 Type Erasure in Rust
  7. 2023-10-09 Soft Orders of Magnitude
  8. 2023-10-04 There's No Such Thing As "Implicitly Atomic"
  9. 2023-08-12 Multiplayer Slipways
  10. 2023-04-01 sNaNs and qNaNs
  11. 2023-02-12 Setting up GoToSocial
  12. 2023-01-22 Rescuing Files From Classic Mac OS...with Swift!
  13. 2022-12-03 Re: Twitter
  14. 2022-11-28 The Two Faces of Codable/Serde
  15. 2022-10-09 Swift was always going to be part of the OS
  16. 2022-05-14 Relative References in ARM64 Disassembly
  17. 2022-04-24 Default Arguments and Label-based Overloading
  18. 2022-03-19 #TalkPay
  19. 2022-02-21 Dynamic Linking Is Bad For Apps And Static Linking Is Also Bad For Apps
  20. 2021-12-31 Swift Regrets: Wrap-up
  21. 2021-09-10 Swift Regrets
  22. 2021-07-05 Keyboard Pants
  23. 2020-11-15 Negotiate Your Offers!
  24. 2020-10-20 The Swift Runtime: Enums
  25. 2020-10-06 The Swift Runtime: Class Metadata Initialization
  26. 2020-09-29 The Swift Runtime: Class Metadata
  27. 2020-09-21 The Swift Runtime: Uniquing Caches
  28. 2020-09-14 The Swift Runtime: Type Metadata
  29. 2020-09-07 The Swift Runtime: Type Layout
  30. 2020-08-31 The Swift Runtime: Heap Objects
  31. 2020-08-26 Objective-Rust
  32. 2020-07-18 A Letter To My Congressional Representatives on the DHS Abuses of Power in Portland, Oregon
  33. 2020-07-07 Suffusion: Playing with Filesystems
  34. 2020-05-24 ROSE-8 on Mac OS 9
  35. 2020-04-03 Shallow Git Repositories
  36. 2020-04-01 Swift on Mac OS 9
  37. 2020-02-06 Flexible Identities in git
  38. 2020-02-04 Introducing the Game 'by Color
  39. 2020-01-28 ROSE-8: Console Mode
  40. 2020-01-22 Setting up gitweb on Shared Hosting
  41. 2020-01-13 ROSE-8
  42. 2019-12-24 quasiquarantine
  43. 2019-11-01 Leaving Apple
  44. 2019-08-01 > go east
  45. 2018-04-29 Misleading Metrics and UX Tradeoffs
  46. 2018-04-03 "FIXME" Doesn't Always Mean "Fix Me"
  47. 2018-03-22 My Little (String) Optimization, Part 2
  48. 2018-03-15 My Little Optimization: The Compiler Is Magic
  49. 2018-02-26 Many-to-Many Protocols
  50. 2018-01-29 Color Palette #8
  51. 2017-09-07 The New Kingdom of Nouns
  52. 2017-09-05 Over-abstraction
  53. 2016-08-21 Macromancy, Part 2
  54. 2016-08-07 Macromancy
  55. 2016-06-19 Pronoun Buttons
  56. 2016-05-29 Webmailer's Update Bar
  57. 2016-05-23 So You Want to Be a (Compiler) Wizard
  58. 2015-12-29 Re: Contempt Culture
  59. 2015-11-18 Recommendations
  60. 2015-05-09 Nibblesort: Adventures in Optimization
  61. 2015-02-22 AlterConf SF/Oakland
  62. 2015-01-24 “Skip the FFI”
  63. 2012-12-08 How to Write a Checker in 24 Hours
  64. 2012-10-02 Git Tricks
  65. 2012-05-16 Big News
  66. 2012-04-26 Keyboard Adventures
  67. 2012-04-10 Mail Aliases
  68. 2011-08-14 Header Anchors: A Safari Extension
  69. 2011-08-10 "Little Big Details"
  70. 2011-07-29 Weak Linking
  71. 2011-07-25 Using Clang from SVN in Xcode
  72. 2011-07-22 rm vs. Time Machine
  73. 2011-07-14 Priorities
  74. 2011-06-30 Quick Look in TextMate
  75. 2011-06-27 git add
  76. 2011-06-20 Automatic Reference Counting
  77. 2011-06-16 Dealing with "Sandwich Code"
  78. 2011-06-05 gdba
  79. 2011-06-03 Chrome vs. Safari
  80. 2011-05-31 User-Side Troubleshooting
  81. 2011-05-30 Auspicious Continuation
  82. 2009-07-21 Scripting Bridge
  83. 2009-07-08 What Happened to Dockyard?
  84. 2009-06-26 Garbage Collectors and Stack Drawers
  85. 2009-06-21 Z shell
  86. 2009-05-22 “Several New Features”
  87. 2009-05-05 C++ Templates are Turing-Complete
  88. 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
  89. 2009-04-16 Safer Plugin Categories
  90. 2009-04-02 Hacking Safari 4...for Great Convenience
  91. 2009-03-27 Const Correctness
  92. 2009-03-19 Categories and +load
  93. 2009-03-15 Subversion Checksum Problems
  94. 2009-03-06 JavaScript Tetris
  95. 2008-09-04 Objective-J and Objective-C
  96. 2008-08-28 HTTPS and Name-based Virtual Hosting
  97. 2008-03-08 Alerts Without Apps (or nibs)
  98. 2008-01-14 NSNumber, CFNumber, and CFBoolean
  99. 2007-12-13 GenericToolbar and IB3
  100. 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
  101. 2007-09-01 Short Xcode Tip: Plugins
  102. 2007-07-15 Port 25 Blocked?
  103. 2007-06-27 GenericToolbar Icon
  104. 2007-04-13 The Symbolism of Pretty URLS
  105. 2007-03-07 Flexible PHP
  106. 2007-01-12 Inauspicious Beginnings