Why We Can't Have Nice Things: Unicode, Dates, and Names
summary
Concrete Ruby gotchas and fixes, not philosophy: shows Noël combining diacritic breaking length/reverse, demonstrates timezone pitfalls like 1:30am Nov 2 2014 nonexistent time, points out tzdata ≈ 1MB of historical offsets and the limits of Time/Date/DateTime vs ActiveSupport advance, and catalogs name-edge cases with surprising counts (820,000 Chinese name / 46,000 John Smith). Watch for runnable examples, Ruby code, and concrete rules; skip if only seeking high-level theory.
AI-written summary · about
chapters (12)
- 0:00Start
- 9:10Comparing times
- 20:43Assign character sets to "code pages"
- 25:43Conclusion just because you think a character should be atomic perform Unicode string transformations at your peril be aware of what assumptions your library is making
- 26:02Names are hard
- 26:29Fundamental problem
- 27:25Linda Callahan
- 28:58Bad assumptions
- 29:18Legal names don't change without going through a court
- 29:51People have a single canonical name for legal or financial purposes
- 30:34Names don't contain numbers Number 16 Bus Shelter
- 31:19Conclusion don't filter inputs for the name of anything that is a real world name for a person, place, or thing probably should just have name as a single unrestricted field
related talks
32mWhy We Can't Have Nice Things: FLoats, Dates, and Names
35mRuby and Unicode, what could go wr�ng?
29mThe Dark Side of Ruby
38mTen Unicode Characters You Should Know About as a Programmer
40mWeird Ruby
56mUnicode - going down the rabbit hole
39mThe Pearls and Pitfalls of DateTime
41mTen Things I Hate About Ruby
