{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:59:49Z","timestamp":1750309189834,"version":"3.41.0"},"reference-count":0,"publisher":"Association for Computing Machinery (ACM)","issue":"12","license":[{"start":{"date-parts":[[2012,12,1]],"date-time":"2012-12-01T00:00:00Z","timestamp":1354320000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2012,12]]},"abstract":"<jats:p>During some recent downtime at work, I\u2019ve been cleaning up a set of libraries, removing dead code, updating documentation blocks, and fixing minor bugs that have been annoying but not critical. This bit of code spelunking has revealed how some of the libraries have been not only used, but also abused. The fact that everyone and their sister use the timing library for just about any event they can think of isn\u2019t so bad, as it is a library that\u2019s meant to call out to code periodically (although some of the events seem as if they don\u2019t need to be events at all). It was when I realized that some programmers were using our socket classes to store strings -- just because the classes happen to have a bit of variable storage attached, and some of them are globally visible throughout the system -- that I nearly lost my lunch. We do have string classes that could easily be used, but instead these programmers just abused whatever was at hand. Why?<\/jats:p>","DOI":"10.1145\/2405116.2407417","type":"journal-article","created":{"date-parts":[[2020,9,3]],"date-time":"2020-09-03T04:09:43Z","timestamp":1599106183000},"page":"30-32","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Code Abuse"],"prefix":"10.1145","volume":"10","author":[{"given":"George","family":"Neville-Neil","sequence":"first","affiliation":[]}],"member":"320","published-online":{"date-parts":[[2012,12,5]]},"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2405116.2407417","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2405116.2407417","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T22:54:15Z","timestamp":1750287255000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2405116.2407417"}},"subtitle":["One programmer\u2019s extension is another programmer\u2019s abuse."],"short-title":[],"issued":{"date-parts":[[2012,12]]},"references-count":0,"journal-issue":{"issue":"12","published-print":{"date-parts":[[2012,12]]}},"alternative-id":["10.1145\/2405116.2407417"],"URL":"https:\/\/doi.org\/10.1145\/2405116.2407417","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2012,12]]},"assertion":[{"value":"2012-12-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}