Keyboard Pants

A year and a half ago, I left Apple, which among other things gave me a lot more time for personal projects. In particular, last March I put a tremendous amount of effort into getting Swift running on Mac OS 9. Which made me happy and proud, but which also had an extremely deleterious effect on my body. And I didn’t really get the message, but continued stressing myself into April and May, and as a consequence, I now have chronic RSI: repetitive strain injury.

Negotiate Your Offers!

As you probably know, I joined Signal after nearly a year between jobs. Signal’s a nonprofit whose goal is to make communication secure and private for everyone, mainly through their open-source messaging app. I feel good about being there.

One of the things I kept in mind, though, was that the interview process isn’t a one-sided thing for us software developers. In particular, if you get an offer, you have some say over the terms of the offer.

The Swift Runtime: Enums

Welcome to the seventh in a series of posts on the Swift runtime. The goal is to go over the functions of the Swift runtime, using what I learned in my Swift on Mac OS 9 project as a reference. We’ve talked about structs and classes, so the obvious next choice is enums, the last of Swift’s three “concrete” user-definable types.

Older Posts

  1. 2020-10-06 The Swift Runtime: Class Metadata Initialization
  2. 2020-09-29 The Swift Runtime: Class Metadata
  3. 2020-09-21 The Swift Runtime: Uniquing Caches
  4. 2020-09-14 The Swift Runtime: Type Metadata
  5. 2020-09-07 The Swift Runtime: Type Layout
  6. 2020-08-31 The Swift Runtime: Heap Objects
  7. 2020-08-26 Objective-Rust
  8. 2020-07-18 A Letter To My Congressional Representatives on the DHS Abuses of Power in Portland, Oregon
  9. 2020-07-07 Suffusion: Playing with Filesystems
  10. 2020-05-24 ROSE-8 on Mac OS 9
  11. 2020-04-03 Shallow Git Repositories
  12. 2020-04-01 Swift on Mac OS 9
  13. 2020-02-06 Flexible Identities in git
  14. 2020-02-04 Introducing the Game 'by Color
  15. 2020-01-28 ROSE-8: Console Mode
  16. 2020-01-22 Setting up gitweb on Shared Hosting
  17. 2020-01-13 ROSE-8
  18. 2019-12-24 quasiquarantine
  19. 2019-11-01 Leaving Apple
  20. 2019-08-01 > go east
  21. 2018-04-29 Misleading Metrics and UX Tradeoffs
  22. 2018-04-03 "FIXME" Doesn't Always Mean "Fix Me"
  23. 2018-03-22 My Little (String) Optimization, Part 2
  24. 2018-03-15 My Little Optimization: The Compiler Is Magic
  25. 2018-02-26 Many-to-Many Protocols
  26. 2018-01-29 Color Palette #8
  27. 2017-09-07 The New Kingdom of Nouns
  28. 2017-09-05 Over-abstraction
  29. 2016-08-21 Macromancy, Part 2
  30. 2016-08-07 Macromancy
  31. 2016-06-19 Pronoun Buttons
  32. 2016-05-29 Webmailer's Update Bar
  33. 2016-05-23 So You Want to Be a (Compiler) Wizard
  34. 2015-12-29 Re: Contempt Culture
  35. 2015-11-18 Recommendations
  36. 2015-05-09 Nibblesort: Adventures in Optimization
  37. 2015-02-22 AlterConf SF/Oakland
  38. 2015-01-24 “Skip the FFI”
  39. 2012-12-08 How to Write a Checker in 24 Hours
  40. 2012-10-02 Git Tricks
  41. 2012-05-16 Big News
  42. 2012-04-26 Keyboard Adventures
  43. 2012-04-10 Mail Aliases
  44. 2011-08-14 Header Anchors: A Safari Extension
  45. 2011-08-10 "Little Big Details"
  46. 2011-07-29 Weak Linking
  47. 2011-07-25 Using Clang from SVN in Xcode
  48. 2011-07-22 rm vs. Time Machine
  49. 2011-07-14 Priorities
  50. 2011-06-30 Quick Look in TextMate
  51. 2011-06-27 git add
  52. 2011-06-20 Automatic Reference Counting
  53. 2011-06-16 Dealing with "Sandwich Code"
  54. 2011-06-05 gdba
  55. 2011-06-03 Chrome vs. Safari
  56. 2011-05-31 User-Side Troubleshooting
  57. 2011-05-30 Auspicious Continuation
  58. 2009-07-21 Scripting Bridge
  59. 2009-07-08 What Happened to Dockyard?
  60. 2009-06-26 Garbage Collectors and Stack Drawers
  61. 2009-06-21 Z shell
  62. 2009-05-22 “Several New Features”
  63. 2009-05-05 C++ Templates are Turing-Complete
  64. 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
  65. 2009-04-16 Safer Plugin Categories
  66. 2009-04-02 Hacking Safari 4...for Great Convenience
  67. 2009-03-27 Const Correctness
  68. 2009-03-19 Categories and +load
  69. 2009-03-15 Subversion Checksum Problems
  70. 2009-03-06 JavaScript Tetris
  71. 2008-09-04 Objective-J and Objective-C
  72. 2008-08-28 HTTPS and Name-based Virtual Hosting
  73. 2008-03-08 Alerts Without Apps (or nibs)
  74. 2008-01-14 NSNumber, CFNumber, and CFBoolean
  75. 2007-12-13 GenericToolbar and IB3
  76. 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
  77. 2007-09-01 Short Xcode Tip: Plugins
  78. 2007-07-15 Port 25 Blocked?
  79. 2007-06-27 GenericToolbar Icon
  80. 2007-04-13 The Symbolism of Pretty URLS
  81. 2007-03-07 Flexible PHP
  82. 2007-01-12 Inauspicious Beginnings