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?

"FIXME" Doesn't Always Mean "Fix Me"

If you browse through the Swift (or LLVM) codebase for a while, you’ll see a comment like this:

// FIXME: Dependencies should be de-duplicated at serialization time,
// not now.

My Little (String) Optimization, Part 2

Previously, I talked about how Clang is smart enough to optimize a series of comparisons against constant strings in C++ by starting out with a switch on the length. I left off with the idea that while this is good, you might be able to do better if your strings have a unique character at a certain offset. Today we’re going to see what that looks like.

Older Posts

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