What I Didn't Know About Jury Duty

As of this year I’ve had my first experience serving on a jury, in a criminal case in a California court. Years of TV and a few school electives told me what to expect, while still knowing an actual trial probably wouldn’t be like that at all. And…it was and it wasn’t! Hence this post.

YAML is (not) my preferred configuration format

Sometimes you have configuration files or simple data files that you want to maintain by hand, in a text editor. There are dozen of reusable formats for this, but only a few of them really support hierarchical entries. You can argue that configuration files should stay relatively flat, but if you eventually run into a situation where you need hierarchy, you’ll be unhappy not to have it.

What's in a Button?

A while back I posted this spicily-phrased take:

I appreciate that someone else understands that being a GUI has some basic requirements and “draws to the screen” is not the interesting one. The bar is about 20cm off the floor but everyone forgets to jump.

Despite mostly not working on GUIs in my career, I have strong opinions about consistency and about affordances for beginners and power users alike. So today, let’s take a simple case study: a button.

Older Posts

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