Leaving Apple

After seven years, I’m leaving Apple. Today (November 1) is my last day in office.

Those seven years have been good for me. I started off on the Clang Static Analyzer, and eventually moved onto the secret project that became Swift. As someone interested in programming languages and compilers, Swift was…I don’t want to say the chance of a lifetime, but maybe the chance of a decade, at least. I got to shape and contribute to a language used by people all over the world during its early years, and it’s been a heck of an experience. To everyone in the Swift community, thank you and also I’m sorry for the bugs.

> go east

I’ve had a connection with text adventures for a long time, coming back to the format year after year. For the most part I’m not a player of text adventures, but instead an enthusiast for implementations thereof. I’ve talked before about using this as a way to learn a new language and to learn about parsers, but I also just like making them, an effort that has shaded off from actual plausible implementations into mildly unusual attempts at the format. The latest of these is to just host the world in the filesystem.1

Misleading Metrics and UX Tradeoffs

Imagine you have a search feature, and you find that basically no one is using it. That is, the number of loads you get on the dedicated search page is tiny. You make a tweak to your UI, and suddenly way more people are going to the search page! Sounds like a win, right?

Older Posts

  1. 2018-04-03 "FIXME" Doesn't Always Mean "Fix Me"
  2. 2018-03-22 My Little (String) Optimization, Part 2
  3. 2018-03-15 My Little Optimization: The Compiler Is Magic
  4. 2018-02-26 Many-to-Many Protocols
  5. 2018-01-29 Color Palette #8
  6. 2017-09-07 The New Kingdom of Nouns
  7. 2017-09-05 Over-abstraction
  8. 2016-08-21 Macromancy, Part 2
  9. 2016-08-07 Macromancy
  10. 2016-06-19 Pronoun Buttons
  11. 2016-05-29 Webmailer's Update Bar
  12. 2016-05-23 So You Want to Be a (Compiler) Wizard
  13. 2015-12-29 Re: Contempt Culture
  14. 2015-11-18 Recommendations
  15. 2015-05-09 Nibblesort: Adventures in Optimization
  16. 2015-02-22 AlterConf SF/Oakland
  17. 2015-01-24 “Skip the FFI”
  18. 2012-12-08 How to Write a Checker in 24 Hours
  19. 2012-10-02 Git Tricks
  20. 2012-05-16 Big News
  21. 2012-04-26 Keyboard Adventures
  22. 2012-04-10 Mail Aliases
  23. 2011-08-14 Header Anchors: A Safari Extension
  24. 2011-08-10 "Little Big Details"
  25. 2011-07-29 Weak Linking
  26. 2011-07-25 Using Clang from SVN in Xcode
  27. 2011-07-22 rm vs. Time Machine
  28. 2011-07-14 Priorities
  29. 2011-06-30 Quick Look in TextMate
  30. 2011-06-27 git add
  31. 2011-06-20 Automatic Reference Counting
  32. 2011-06-16 Dealing with "Sandwich Code"
  33. 2011-06-05 gdba
  34. 2011-06-03 Chrome vs. Safari
  35. 2011-05-31 User-Side Troubleshooting
  36. 2011-05-30 Auspicious Continuation
  37. 2009-07-21 Scripting Bridge
  38. 2009-07-08 What Happened to Dockyard?
  39. 2009-06-26 Garbage Collectors and Stack Drawers
  40. 2009-06-21 Z shell
  41. 2009-05-22 “Several New Features”
  42. 2009-05-05 C++ Templates are Turing-Complete
  43. 2009-04-21 [Meme] How Many HTML Elements Can You Name in 5 Minutes?
  44. 2009-04-16 Safer Plugin Categories
  45. 2009-04-02 Hacking Safari 4...for Great Convenience
  46. 2009-03-27 Const Correctness
  47. 2009-03-19 Categories and +load
  48. 2009-03-15 Subversion Checksum Problems
  49. 2009-03-06 JavaScript Tetris
  50. 2008-09-04 Objective-J and Objective-C
  51. 2008-08-28 HTTPS and Name-based Virtual Hosting
  52. 2008-03-08 Alerts Without Apps (or nibs)
  53. 2008-01-14 NSNumber, CFNumber, and CFBoolean
  54. 2007-12-13 GenericToolbar and IB3
  55. 2007-10-27 Performance Optimization: Why We Can't Use valueForKeyPath:
  56. 2007-09-01 Short Xcode Tip: Plugins
  57. 2007-07-15 Port 25 Blocked?
  58. 2007-06-27 GenericToolbar Icon
  59. 2007-04-13 The Symbolism of Pretty URLS
  60. 2007-03-07 Flexible PHP
  61. 2007-01-12 Inauspicious Beginnings