Trunic

Last weekend I spent several hours on Tunic’s “offline” puzzle: its written language, dubbed “Trunic” by its fans. Several hours was actually less than I expected it to take! And figuring out the answer was satisfying and I immediately wanted to write something in Trunic myself.

(Which I have represented here as a screenshot without useful alt text so it doesn't become an unwanted hint.)

AnyObject

When is AnyObject not AnyObject? When it’s a protocol type.

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.

Older Posts

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