My winter break project was getting the files off an old PowerBook from the 90s (my dad’s old work computer) that I’ve had lying around for a while. (There’s probably not anything of interest there to anyone but our family, but who knows?) I’ve looked at this before, but it’s hard to get a 25-year-old computer to talk to a modern OS.
Re: Twitter
Twitter was
-
a place where my shitposts started conversations (or at least joke threads), and where I could participate in conversations (or at least joke threads) on other people’s shitposts
-
a comments section for my blog that wasn’t on my blog, and a comments section for others’ blogs even if they don’t have one on their blog
-
a place to learn about other cool people and projects through the people I already know, and a place for other people to learn about me and my projects through the people they already know
The Two Faces of Codable/Serde
Swift has a pair of protocols, Encodable and Decodable, which represent generic encoding of a tree structure. These protocols are special in that the compiler can provide a default implementation for them under many circumstances. Similarly, Rust has a project called Serde which likewise is used for roughly the same purpose; Serde’s traits are even more complicated than Codable’s, but have even more powerful code synthesis via Rust’s proc-macros. Both tools are very useful but occasionally frustrating, and I think some of the frustrating areas come from a tension between two competing use cases.
Older Posts
- 2022-10-09 Swift was always going to be part of the OS
- 2022-05-14 Relative References in ARM64 Disassembly
- 2022-04-24 Default Arguments and Label-based Overloading
- 2022-03-19 #TalkPay
- 2022-02-21 Dynamic Linking Is Bad For Apps And Static Linking Is Also Bad For Apps
- 2021-12-31 Swift Regrets: Wrap-up
- 2021-09-10 Swift Regrets
- 2021-07-05 Keyboard Pants
- 2020-11-15 Negotiate Your Offers!
- 2020-10-20 The Swift Runtime: Enums
- 2020-10-06 The Swift Runtime: Class Metadata Initialization
- 2020-09-29 The Swift Runtime: Class Metadata
- 2020-09-21 The Swift Runtime: Uniquing Caches
- 2020-09-14 The Swift Runtime: Type Metadata
- 2020-09-07 The Swift Runtime: Type Layout
- 2020-08-31 The Swift Runtime: Heap Objects
- 2020-08-26 Objective-Rust
- 2020-07-18 A Letter To My Congressional Representatives on the DHS Abuses of Power in Portland, Oregon
- 2020-07-07 Suffusion: Playing with Filesystems
- 2020-05-24 ROSE-8 on Mac OS 9
- 2020-04-03 Shallow Git Repositories
- 2020-04-01 Swift on Mac OS 9
- 2020-02-06 Flexible Identities in git
- 2020-02-04 Introducing the Game 'by Color
- 2020-01-28 ROSE-8: Console Mode
- 2020-01-22 Setting up gitweb on Shared Hosting
- 2020-01-13 ROSE-8
- 2019-12-24 quasiquarantine
- 2019-11-01 Leaving Apple
- 2019-08-01 > go east
- 2018-04-29 Misleading Metrics and UX Tradeoffs
- 2018-04-03 "FIXME" Doesn't Always Mean "Fix Me"
- 2018-03-22 My Little (String) Optimization, Part 2
- 2018-03-15 My Little Optimization: The Compiler Is Magic
- 2018-02-26 Many-to-Many Protocols
- 2018-01-29 Color Palette #8
- 2017-09-07 The New Kingdom of Nouns
- 2017-09-05 Over-abstraction
- 2016-08-21 Macromancy, Part 2
- 2016-08-07 Macromancy
- 2016-06-19 Pronoun Buttons
- 2016-05-29 Webmailer's Update Bar
- 2016-05-23 So You Want to Be a (Compiler) Wizard
- 2015-12-29 Re: Contempt Culture
- 2015-11-18 Recommendations
- 2015-05-09 Nibblesort: Adventures in Optimization
- 2015-02-22 AlterConf SF/Oakland
- 2015-01-24 “Skip the FFI”
- 2012-12-08 How to Write a Checker in 24 Hours
- 2012-10-02 Git Tricks
- 2012-05-16 Big News
- 2012-04-26 Keyboard Adventures
- 2012-04-10 Mail Aliases
- 2011-08-14 Header Anchors: A Safari Extension
- 2011-08-10 "Little Big Details"
- 2011-07-29 Weak Linking
- 2011-07-25 Using Clang from SVN in Xcode
- 2011-07-22 rm vs. Time Machine
- 2011-07-14 Priorities
- 2011-06-30 Quick Look in TextMate
- 2011-06-27 git add
- 2011-06-20 Automatic Reference Counting
- 2011-06-16 Dealing with "Sandwich Code"
- 2011-06-05 gdba
- 2011-06-03 Chrome vs. Safari
- 2011-05-31 User-Side Troubleshooting
- 2011-05-30 Auspicious Continuation
- 2009-07-21 Scripting Bridge
- 2009-07-08 What Happened to Dockyard?
- 2009-06-26 Garbage Collectors and Stack Drawers
- 2009-06-21 Z shell
- 2009-05-22 “Several New Features”
- 2009-05-05 C++ Templates are Turing-Complete
- 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
- 2009-04-16 Safer Plugin Categories
- 2009-04-02 Hacking Safari 4...for Great Convenience
- 2009-03-27 Const Correctness
- 2009-03-19 Categories and +load
- 2009-03-15 Subversion Checksum Problems
- 2009-03-06 JavaScript Tetris
- 2008-09-04 Objective-J and Objective-C
- 2008-08-28 HTTPS and Name-based Virtual Hosting
- 2008-03-08 Alerts Without Apps (or nibs)
- 2008-01-14 NSNumber, CFNumber, and CFBoolean
- 2007-12-13 GenericToolbar and IB3
- 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
- 2007-09-01 Short Xcode Tip: Plugins
- 2007-07-15 Port 25 Blocked?
- 2007-06-27 GenericToolbar Icon
- 2007-04-13 The Symbolism of Pretty URLS
- 2007-03-07 Flexible PHP
- 2007-01-12 Inauspicious Beginnings