--- created_at: '2016-06-02T20:38:07.000Z' title: What If I Don't Actually Like My Users? (2008) url: http://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html author: JoshTriplett points: 117 story_text: comment_text: num_comments: 51 story_id: story_title: story_url: parent_id: created_at_i: 1464899887 _tags: - story - author_JoshTriplett - story_11825827 objectID: '11825827' year: 2008 --- [Source](http://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html "Permalink to Rusty's Bleeding Edge Page") # Rusty's Bleeding Edge Page | ----- | | Free Software programmer [rusty@rustcorp.com.au][1] **Subscribe** [Subscribe][2] to a syndicated feed of my weblog, brought to you by the wonders of RSS. This blog existed before my current employment, and obviously reflects my own opinions and not theirs. ![Creative Commons License][3] This work is licensed under a [Creative Commons Attribution 2.1 Australia License][4]. **Categories of this blog:** [IP issues][5] [Technical issues][6] [Personal issues][7] [Restaurants][8] **Older issues:** [All 2008 posts][9] [All 2007 posts][10] [All 2006 posts][11] [All 2005 posts][12] [All 2004 posts][13] [Older posts][14] ![][15] | # [Rusty's Bleeding Edge Page][16] Rusty's Bleeding Edge Page ### Tue, 01 Apr 2008 ### **What If I Don't Actually Like My Users?** Here begins our descent into hell; if an interface manages to achieve negative scores on the Hard To Misuse List, your users may detect the dull red glow of malignancy rather than incompetence. **-1. Read the mailing list thread and you'll get it wrong.** : If the first hit on Google when searching for the symptoms or how to use your interface leads to a convincing but incorrect answer, that puts your interface here. **-2. Read the implementation and you'll get it wrong. ** : This happens most often when the implementation being read is not the one you which ends up being used. Or maybe the implementation comes with test cases which all exercise the unnatural corners of the interface, which mislead instead of enlightening. **-3. Read the documentation and you'll get it wrong. ** : Here's my favorite (now fixed) example, from the glibc snprintf man page: RETURN VALUE snprintf and vsnprintf do not write more than size bytes (including the trailing ' [1]: mailto:rusty%40rustcorp.com.au [2]: http://ozlabs.org/~rusty/index.cgi/index.rss [3]: http://creativecommons.org/images/public/somerights20.png [4]: http://creativecommons.org/licenses/by/2.1/au/ [5]: http://ozlabs.org/~rusty/index.cgi/IP [6]: http://ozlabs.org/~rusty/index.cgi/tech [7]: http://ozlabs.org/~rusty/index.cgi/self [8]: http://ozlabs.org/~rusty/index.cgi/food [9]: http://ozlabs.org/~rusty/index.cgi/2008 [10]: http://ozlabs.org/~rusty/index.cgi/2007 [11]: http://ozlabs.org/~rusty/index.cgi/2006 [12]: http://ozlabs.org/~rusty/index.cgi/2005 [13]: http://ozlabs.org/~rusty/index.cgi/2004 [14]: http://ozlabs.org/~rusty/index-2004.html [15]: http://nosoftwarepatents.com/banners/90x40_3.jpg [16]: http://ozlabs.org/~rusty/index.cgi