<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: seanwilson</title><link>https://news.ycombinator.com/user?id=seanwilson</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 00:54:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=seanwilson" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by seanwilson in "CSS: Unavoidable Bad Parts"]]></title><description><![CDATA[
<p>This is still adding wrapper elements to get the layout you want. Even if you can force yourself to come up with some vague semantics behind the wrapper elements (that you wouldn't have otherwise added), I don't see how it's much better than using a generic tag and it shows you need to modify HTML to modify the presentation in practice.<p>Visual design involves a lot of grouping and aligning elements, and there isn't always semantic reasons for it. Grouping is usually best done in the HTML, so it's hard keep this part of the visual design out of your HTML.</p>
]]></description><pubDate>Thu, 11 Jun 2026 12:47:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48489616</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48489616</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48489616</guid></item><item><title><![CDATA[New comment by seanwilson in "CSS: Unavoidable Bad Parts"]]></title><description><![CDATA[
<p>I was thinking more of a document with multiple paragraphs and images, where some paragraphs are grouped with images and some aren't.<p>In the code from the link, the <body> element is serving as the wrapper element, that gives you a hook to get the layout you want. But when you're not lucky enough to have a semantic wrapper tag like that, you've usually got to add a generic tag help. Or write CSS that's closely coupled with the HTML, so they aren't really separate anyway.</p>
]]></description><pubDate>Thu, 11 Jun 2026 12:06:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48489242</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48489242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48489242</guid></item><item><title><![CDATA[New comment by seanwilson in "CSS: Unavoidable Bad Parts"]]></title><description><![CDATA[
<p>The concept makes more sense for styling simple document style pages from 20 years ago, but it hasn't scaled to modern designs, complex web UIs and responsive pages that we want to code now, which isn't that surprising.<p>> we would all be writing purely semantic html with completely orthogonal and swappable css. And today literally no one designs web sites that way - html today is mostly specific to presentation<p>I think of HTML + CSS as the presentation layer now, and the data lives in your e.g. database and Markdown files, so the data and its presentation are still separate enough.<p>The idea of just swapping out the CSS to completely restyle a complex site is nice, but people need to accept this hasn't worked out (and not because devs are bad at CSS) and move on.</p>
]]></description><pubDate>Thu, 11 Jun 2026 11:40:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48488995</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48488995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48488995</guid></item><item><title><![CDATA[New comment by seanwilson in "CSS: Unavoidable Bad Parts"]]></title><description><![CDATA[
<p>> If you “View Source” on any “real” website, you’ll notice that everything has layers and layers of wrapper elements, so you might be tricked into thinking that wrappers are how you solve layout problems. I can’t really agree or disagree here, as I never wrote “production” CSS, but, in my experience, it’s much easier to understand if you do the opposite — restrict yourself to using only markup-meaningful semantic tags, and then figure out CSS which works with the markup you have.<p>CSS isn't powerful enough by itself to create any layout you want without modifying the HTML. You almost always need wrapper elements to group elements you want to align together for presentation purposes only (e.g. "a vertically centered row containing one paragraph next to two vertically stacked images"), so there often aren't semantic HTML tags that would make sense.<p>It's similar to how you use numerous groups/frames in design apps like Inkscape and Figma to help align elements, where nobody would suggest you were a bad designer for using groups that don't have semantic meaning.<p>You can only really avoid wrapper elements for simple Markdown style pages with simple designs, where the CSS for that is straightforward.<p>I think in these discussions, it needs to be clearer how complex the page designs being discussed are. The CSS advice that makes sense for simple Markdown style pages is very different to what makes sense for a complex web app UI or a highly designed marketing page.</p>
]]></description><pubDate>Thu, 11 Jun 2026 10:37:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48488548</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48488548</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48488548</guid></item><item><title><![CDATA[New comment by seanwilson in "Ask HN: Who wants to be hired? (June 2026)"]]></title><description><![CDATA[
<p>Location: Edinburgh, UK<p>Remote: Yes (I’m used to time zone differences and async work)<p>Willing to relocate: No<p>Technologies: Figma, Sketch, TypeScript, JavaScript, Vue, Hugo, Jekyll, WordPress, Django, HTML/CSS, Bootstrap, Tailwind, OCaml, Java, Python, C, analytics, WCAG accessibility, website SEO/speed optimisation.<p>Résumé/CV: See <a href="https://seanw.org/" rel="nofollow">https://seanw.org/</a> for portfolio, and <a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a> and <a href="https://inclusivecolors.com/" rel="nofollow">https://inclusivecolors.com/</a> for live example projects<p>Email: sw@seanw.org<p>---<p>SEEKING FREELANCE WORK | UX/UI & web design<p>I help startups with the UX/UI and web design of their products. This includes web apps, websites, landing pages, copywriting, and I can assist with frontend development where needed. My background of launching my own products and being a full stack developer helps me create practical designs that balance usability, aesthetics, development effort, and performance. I work to fixed price quotes for self-contained projects.<p>---<p>The best live example of my work is Checkbot (<a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a>), a browser extension that tests websites for SEO/speed/security problems. The entire project is my own work including coding the extension itself, UX/UI design, website design (the homepage is optimised to load in 0.7 seconds, 0.3MB data transferred), marketing, website copy, and website articles on web best practices.<p>[ Rated 4.9/5, 80K+ active users, 100s of paying subscribers ]<p>---<p>I have 10+ years of experience, including a PhD in software verification and 5+ years working for myself helping over 25 companies including Just Eat, Triumph Motorcycles and Fogbender (YC W22). See my website for testimonials, portfolio and more: <a href="https://seanw.org" rel="nofollow">https://seanw.org</a></p>
]]></description><pubDate>Fri, 05 Jun 2026 15:43:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48414087</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48414087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48414087</guid></item><item><title><![CDATA[New comment by seanwilson in "Programmers will document for Claude, but not for each other"]]></title><description><![CDATA[
<p>> I keep seeing programmers say how angry it makes them that people are willing to write detailed CLAUDE.md and PROJECT.md files for Claude to use, but they weren't willing to write them for their coworkers.<p>Similar for adding static type checking, which makes it easier for AI and coworkers to understand the code, catch mistakes, and to refactor. And now there's coders willing to add static type checking to help AI but didn't see the benefit before for some reason.</p>
]]></description><pubDate>Fri, 05 Jun 2026 13:53:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48412602</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48412602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48412602</guid></item><item><title><![CDATA[The end of seats: pricing Netlify for 3B builders]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.netlify.com/blog/pricing-netlify-for-3-billion-builders/">https://www.netlify.com/blog/pricing-netlify-for-3-billion-builders/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48008054">https://news.ycombinator.com/item?id=48008054</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 04 May 2026 12:51:31 +0000</pubDate><link>https://www.netlify.com/blog/pricing-netlify-for-3-billion-builders/</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=48008054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48008054</guid></item><item><title><![CDATA[New comment by seanwilson in "Ask HN: Who wants to be hired? (May 2026)"]]></title><description><![CDATA[
<p>Location: Edinburgh, UK<p>Remote: Yes (I’m used to time zone differences and async work)<p>Willing to relocate: No<p>Technologies: Figma, Sketch, TypeScript, JavaScript, Vue, Hugo, Jekyll, WordPress, Django, HTML/CSS, Bootstrap, Tailwind, OCaml, Java, Python, C, analytics, WCAG accessibility, website SEO/speed optimisation.<p>Résumé/CV: See <a href="https://seanw.org/" rel="nofollow">https://seanw.org/</a> for portfolio, and <a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a> and <a href="https://inclusivecolors.com/" rel="nofollow">https://inclusivecolors.com/</a> for live example projects<p>Email: sw@seanw.org<p>---<p>SEEKING FREELANCE WORK | UX/UI & web design<p>I help startups with the UX/UI and web design of their products. This includes web apps, websites, landing pages, copywriting, and I can assist with frontend development where needed. My background of launching my own products and being a full stack developer helps me create practical designs that balance usability, aesthetics, development effort, and performance. I work to fixed price quotes for self-contained projects.<p>---<p>The best live example of my work is Checkbot (<a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a>), a browser extension that tests websites for SEO/speed/security problems. The entire project is my own work including coding the extension itself, UX/UI design, website design (the homepage is optimised to load in 0.7 seconds, 0.3MB data transferred), marketing, website copy, and website articles on web best practices.<p>[ Rated 4.9/5, 80K+ active users, 100s of paying subscribers ]<p>---<p>I have 10+ years of experience, including a PhD in software verification and 5+ years working for myself helping over 25 companies including Just Eat, Triumph Motorcycles and Fogbender (YC W22). See my website for testimonials, portfolio and more: <a href="https://seanw.org" rel="nofollow">https://seanw.org</a></p>
]]></description><pubDate>Fri, 01 May 2026 18:09:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47978017</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47978017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47978017</guid></item><item><title><![CDATA[New comment by seanwilson in "Ask HN: Who wants to be hired? (April 2026)"]]></title><description><![CDATA[
<p>Location: Edinburgh, UK<p>Remote: Yes (I’m used to time zone differences and async work)<p>Willing to relocate: No<p>Technologies: Figma, Sketch, TypeScript, JavaScript, Vue, Hugo, Jekyll, WordPress, Django, HTML/CSS, Bootstrap, Tailwind, OCaml, Java, Python, C, analytics, WCAG accessibility, website SEO/speed optimisation.<p>Résumé/CV: See <a href="https://seanw.org/" rel="nofollow">https://seanw.org/</a> for portfolio, and <a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a> and <a href="https://inclusivecolors.com/" rel="nofollow">https://inclusivecolors.com/</a> for live example projects<p>Email: sw@seanw.org<p>---<p>SEEKING FREELANCE WORK | UX/UI & web design<p>I help startups with the UX/UI and web design of their products. This includes web apps, websites, landing pages, copywriting, and I can assist with frontend development where needed. My background of launching my own products and being a full stack developer helps me create practical designs that balance usability, aesthetics, development effort, and performance. I work to fixed price quotes for self-contained projects.<p>---<p>The best live example of my work is Checkbot (<a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a>), a browser extension that tests websites for SEO/speed/security problems. The entire project is my own work including coding the extension itself, UX/UI design, website design (the homepage is optimised to load in 0.7 seconds, 0.3MB data transferred), marketing, website copy, and website articles on web best practices.<p>[ Rated 4.9/5, 80K+ active users, 100s of paying subscribers ]<p>---<p>I have 10+ years of experience, including a PhD in software verification and 5+ years working for myself helping over 25 companies including Just Eat, Triumph Motorcycles and Fogbender (YC W22). See my website for testimonials, portfolio and more: <a href="https://seanw.org" rel="nofollow">https://seanw.org</a><p>Note: For large projects, my partner usually assists me in the background (I’m working on starting a design studio with her in the future)<p>---<p>Email sw@seanw.org with a short description of 1) your project 2) how you think I can help 3) the business outcome you’re looking for and 4) any deadlines. I can get back to you in one working day to arrange a call to discuss a quote and how we can work together!</p>
]]></description><pubDate>Fri, 03 Apr 2026 20:47:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47632047</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47632047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47632047</guid></item><item><title><![CDATA[New comment by seanwilson in "The Claude Code Source Leak: fake tools, frustration regexes, undercover mode"]]></title><description><![CDATA[
<p>Anyone else have CI checks that source map files are missing from the build folder? Another trick is to grep the build folder for several function/variable names that you expect to be minified away.</p>
]]></description><pubDate>Tue, 31 Mar 2026 18:42:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47591670</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47591670</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47591670</guid></item><item><title><![CDATA[New comment by seanwilson in "I haven't used a mouse for 14 years"]]></title><description><![CDATA[
<p>I like laptop trackpads because it means you're always close to the keyboard, so you can easily switch between cursor and typing without only relying on one. It's good for UI design work for example.</p>
]]></description><pubDate>Wed, 18 Mar 2026 18:56:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47429922</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47429922</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47429922</guid></item><item><title><![CDATA[New comment by seanwilson in "US Job Market Visualizer"]]></title><description><![CDATA[
<p>For color deficiencies, different lightnesses are safe e.g. dark for loss and light for gain (could be dark reds for loss and light greens for gain, but don't mix the lightnesses). Other options are icons/shapes (like up/down arrows) or pattern fills (like stripes for loss).<p>The general trick is you can rely on differences in color lightness, patterns, text and icons, but not differences in color hue. The page should be usable in grayscale.</p>
]]></description><pubDate>Mon, 16 Mar 2026 17:09:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47401764</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47401764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47401764</guid></item><item><title><![CDATA[New comment by seanwilson in "It's time to move your docs in the repo"]]></title><description><![CDATA[
<p>> It is a bit weird to see LLMs suddenly being presented as the reason to follow what are basically long standing best practices.<p>Maybe it's the speed of LLM iteration that makes the benefit more immediately obvious, vs seeing it unfold with a team of people over a longer time? It's almost like running a study?<p>I have a similar reaction to strong static types being advocated to help LLMs understanding/debugging code, catching bugs, refactoring... when it's obvious to me this helps humans as well.<p>Curious how "this practice helps LLMs be more productive" relates to studies that try to show this with human programmers, where running convincing human studies is really difficult. Besides problems with context sizes, are there best practices that help LLMs a lot but not humans?</p>
]]></description><pubDate>Sat, 14 Mar 2026 22:20:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47381882</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47381882</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47381882</guid></item><item><title><![CDATA[New comment by seanwilson in "Python: The Optimization Ladder"]]></title><description><![CDATA[
<p>>  The real story is that Python is designed to be maximally dynamic -- you can monkey-patch methods at runtime, replace builtins, change a class's inheritance chain while instances exist -- and that design makes it fundamentally hard to optimize. ...<p>> 4 bytes of number, 24 bytes of machinery to support dynamism. a + b means: dereference two heap pointers, look up type slots, dispatch to int.__add__, allocate a new PyObject for the result (unless it hits the small-integer cache), update reference counts.<p>Would Python be a lot less useful without being maximally dynamic everywhere? Are there domains/frameworks/packages that benefit from this where this is a good trade-off?<p>I can't think of cases in strong statically typed languages  where I've wanted something like monkey patching, and when I see monkey patching elsewhere there's often some reasonable alternative or it only needs to be used very rarely.</p>
]]></description><pubDate>Sat, 14 Mar 2026 13:31:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47376498</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47376498</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47376498</guid></item><item><title><![CDATA[New comment by seanwilson in "Ask HN: What Are You Working On? (March 2026)"]]></title><description><![CDATA[
<p>An accessible color palette editor for creating branded palettes built from the ground up that pass WCAG/APCA contrast rules (which is much quicker and less of a headache compared to doing manual contrast checks and fixes later):<p><a href="https://www.inclusivecolors.com/" rel="nofollow">https://www.inclusivecolors.com/</a><p>The current web tool lets you export to CSS, Tailwind and Figma, and uses HSLuv for the color picker. HSL color pickers that most design tools like Figma use have the very counterintuitive property that the hue and saturation sliders will change the lightness of a color (which then impacts its WCAG contrast), which HSLuv fixes to make it much easier to find accessible color combinations.<p>I'm working on a Figma plugin version so you can preview colors directly on a Figma design as you make changes. It's tricky shrinking the UI to work inside a small plugin window!</p>
]]></description><pubDate>Mon, 09 Mar 2026 01:27:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47303742</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47303742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47303742</guid></item><item><title><![CDATA[New comment by seanwilson in "From RGB to L*a*b* color space (2024)"]]></title><description><![CDATA[
<p>The colors are all roughly the same lightness? If so, for people with color deficiency, you want the lightnesses to vary because people that can't easily tell certain hues apart should still be able to tell different lightnesses apart (although, if you need a color for lots of different pie slices, the lightnesses you can pick will start getting too close together and you might have to resort to patterns).</p>
]]></description><pubDate>Sun, 08 Mar 2026 14:51:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47297795</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47297795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47297795</guid></item><item><title><![CDATA[New comment by seanwilson in "From RGB to L*a*b* color space (2024)"]]></title><description><![CDATA[
<p>I'm a fan of HSLuv (<a href="https://www.hsluv.org/comparison/" rel="nofollow">https://www.hsluv.org/comparison/</a>) for design work (when sRGB is fine and you don't need P3 colors). It's perceptual uniformity like Lab, but has familiar looking hue, saturation and lightness sliders instead like you'd see in a regular HSL color picker.<p>I've used HSLuv for an accessible palette editor (<a href="https://www.inclusivecolors.com/" rel="nofollow">https://www.inclusivecolors.com/</a>), so you get the familiarity of an HSL color picker, but unlike with HSL, when you change hue or saturation, the lightness and WCAG contrast stay the same, which makes HSLuv a great for exploring accessible color combinations without breaking the contrast you've set up already between your existing color pairs.<p>OKLCH is becoming a popular choice if you need P3 colors and perceptual uniformity because it's built into CSS now, but I find the colors pickers for OKLCH tend to look really complex and unfamiliar to use so I'm skeptical it's going to get popular with designers (it's mostly developers recommending OKLCH that are interested in the technical/coding part rather than the design part?). What are good choices if you want P3, perceptual uniformity, and an intuitive color picker UI?</p>
]]></description><pubDate>Sun, 08 Mar 2026 13:16:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47297094</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47297094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47297094</guid></item><item><title><![CDATA[New comment by seanwilson in "Ask HN: Who wants to be hired? (March 2026)"]]></title><description><![CDATA[
<p>Location: Edinburgh, UK<p>Remote: Yes (I’m used to time zone differences and async work)<p>Willing to relocate: No<p>Technologies: Figma, Sketch, TypeScript, JavaScript, Vue, Hugo, Jekyll, WordPress, Django, HTML/CSS, Bootstrap, Tailwind, OCaml, Java, Python, C, analytics, WCAG accessibility, website SEO/speed optimisation.<p>Résumé/CV: See <a href="https://seanw.org/" rel="nofollow">https://seanw.org/</a> for portfolio, and <a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a> and <a href="https://inclusivecolors.com/" rel="nofollow">https://inclusivecolors.com/</a> for live example projects<p>Email: sw@seanw.org<p>---<p>SEEKING FREELANCE WORK | UX/UI & web design<p>I help startups with the UX/UI and web design of their products. This includes web apps, websites, landing pages, copywriting, and I can assist with frontend development where needed. My background of launching my own products and being a full stack developer helps me create practical designs that balance usability, aesthetics, development effort, and performance. I work to fixed price quotes for self-contained projects.<p>---<p>The best live example of my work is Checkbot (<a href="https://checkbot.io/" rel="nofollow">https://checkbot.io/</a>), a browser extension that tests websites for SEO/speed/security problems. The entire project is my own work including coding the extension itself, UX/UI design, website design (the homepage is optimised to load in 0.7 seconds, 0.3MB data transferred), marketing, website copy, and website articles on web best practices.<p>[ Rated 4.9/5, 80K+ active users, 100s of paying subscribers ]<p>---<p>I have 10+ years of experience, including a PhD in software verification and 5+ years working for myself helping over 25 companies including Just Eat, Triumph Motorcycles and Fogbender (YC W22). See my website for testimonials, portfolio and more: <a href="https://seanw.org" rel="nofollow">https://seanw.org</a><p>Note: For large projects, my partner usually assists me in the background (I’m working on starting a design studio with her in the future)<p>---<p>Email sw@seanw.org with a short description of 1) your project 2) how you think I can help 3) the business outcome you’re looking for and 4) any deadlines. I can get back to you in one working day to arrange a call to discuss a quote and how we can work together!</p>
]]></description><pubDate>Mon, 02 Mar 2026 18:16:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47221801</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=47221801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47221801</guid></item><item><title><![CDATA[New comment by seanwilson in "Parse, Don't Validate (2019)"]]></title><description><![CDATA[
<p>> All the functions taking a string that might end up being a PhoneNumber need to be highly defensive<p>Yeah, I can't relate at all with not using a type for this after having to write gross defensive code a couple of times e.g. if it's not a phone number you've got to return undefined or throw an exception? The typed approach is shorter, cleaner, self-documenting, reduces bugs and makes refactoring easier.</p>
]]></description><pubDate>Tue, 10 Feb 2026 16:48:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=46962664</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=46962664</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46962664</guid></item><item><title><![CDATA[New comment by seanwilson in "Parse, Don't Validate (2019)"]]></title><description><![CDATA[
<p>Maybe I'm missing something and I'm glad this idea resonates, but it feels like sometime after Java got popular and dynamic languages got a lot of mindshare, a large chunk of the collective programming community forgot why strong static type checking was invented and are now having to rediscover this.<p>In most strong statically typed languages, you wouldn't often pass strings and generic dictionaries around. You'd naturally gravitate towards parsing/transforming raw data into typed data structures that have guaranteed properties instead to avoid writing defensive code everywhere e.g. a Date object that would throw an exception in the constructor if the string given didn't validate as a date (Edit: Changed this from email because email validation is a can of worms as an example). So there, "parse, don't validate" is the norm and not a tip/idea that would need to gain traction.</p>
]]></description><pubDate>Tue, 10 Feb 2026 16:06:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46961759</link><dc:creator>seanwilson</dc:creator><comments>https://news.ycombinator.com/item?id=46961759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46961759</guid></item></channel></rss>