<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: nathanhammond</title><link>https://news.ycombinator.com/user?id=nathanhammond</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 22 Jun 2026 21:22:01 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nathanhammond" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nathanhammond in "Did my old job only exist because of fraud?"]]></title><description><![CDATA[
<p>If you can read it, here's the same story happening in Hong Kong, but with outright fraud on the recipients' end.<p><a href="https://thecollectivehk.com/%e7%a7%91%e6%8a%80%e5%88%b8%e8%aa%bf%e6%9f%a51%e6%95%b8%e6%93%9a%e5%88%86%e6%9e%9035%e8%90%ac%e5%80%8b%e9%a0%85%e7%9b%ae%e8%bf%912000%e9%a0%85%e7%9b%ae%e5%90%8c%e6%89%b9190312-5/" rel="nofollow">https://thecollectivehk.com/%e7%a7%91%e6%8a%80%e5%88%b8%e8%a...</a></p>
]]></description><pubDate>Mon, 22 Jun 2026 11:56:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48628958</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=48628958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48628958</guid></item><item><title><![CDATA[New comment by nathanhammond in "Show HN: I trained a 9M speech model to fix my Mandarin tones"]]></title><description><![CDATA[
<p>I did guess it was you; but wasn't sure. :P</p>
]]></description><pubDate>Mon, 02 Feb 2026 13:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=46855790</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=46855790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46855790</guid></item><item><title><![CDATA[New comment by nathanhammond in "Show HN: I trained a 9M speech model to fix my Mandarin tones"]]></title><description><![CDATA[
<p>You both are in violent agreement and it is amusing to see in the wild.<p>As an 外國人 who learned Cantonese as an adult (I moved to HK) I'm jealous of the quantity and quality of materials that exist for learning (not Cantonese). That being said, there are _enough_ materials so it's nowhere near as rough as e.g. Shanghainese.<p>My opinions on hard language reduces to "is this the first language you're learning from a particular language family?" If so, it's hard to learn. But "is ontologically hard" isn't something that I think is really worth ranking. Any four year old can speak their mother tongue just fine.<p>But the perception of "hard to learn" did work in my favor for learning Cantonese: as a 鬼佬 who speaks Cantonese I was given lots of latitude to be bad while learning because of that perception. And now I could go back and learn Mandarin now and it would be _much_ simpler than the task that I had in learning Cantonese.<p>That being said I still write in 口語. Slowly learning 書面語 as I read more and more of it.</p>
]]></description><pubDate>Mon, 02 Feb 2026 07:11:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46853289</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=46853289</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46853289</guid></item><item><title><![CDATA[New comment by nathanhammond in "UTF-8 is a brilliant design"]]></title><description><![CDATA[
<p>Seeing your handle I am at risk of explaining something you may already know, but, this exists! And it was standardized in 1993, though I don't know when Unicode picked it up.<p>Ideographic Description Characters: <a href="https://www.unicode.org/charts/PDF/U2FF0.pdf" rel="nofollow">https://www.unicode.org/charts/PDF/U2FF0.pdf</a><p>The fine people over at Wenlin actually have a renderer that generates characters based on this sort of programmatic definition, their Character Description Language: <a href="https://guide.wenlininstitute.org/wenlin4.3/Character_Description_Language" rel="nofollow">https://guide.wenlininstitute.org/wenlin4.3/Character_Descri...</a> ... in many cases, they are the first digital renderer for new characters that don't yet have font support.<p>Another interesting bit, the Cantonese linguist community I regularly interface with generally doesn't mind unification. It's treated the same as a "single-storey a" (the one you write by hand) and a "two-storey a" (the one in this font). Sinitic languages fractured into families in part because the graphemes don't explicitly encode the phonetics + physical distance, and the graphemes themselves fractured because somebody's uncle had terrible handwriting.<p>I'm in Hong Kong, so we use 説 (8AAC, normalized to 8AAA) while Taiwan would use 說 (8AAA). This is a case my linguist friends consider a mistake, but it happened early enough that it was only retroactively normalized. Same word, same meaning, grapheme distinct by regional divergence. (I think we actually have three codepoints that normalize to 8AAA because of radical variations.)<p>The argument basically reduces "should we encode distinct graphemes, or distinct meanings." Unicode has never been fully-consistent on either side of that. The latest example, we're getting ready to do Seal Script as a separate non-unified code point. <a href="https://www.unicode.org/roadmaps/tip/" rel="nofollow">https://www.unicode.org/roadmaps/tip/</a><p>In Hong Kong, some old government files just don't work unless you have the font that has the specific author's Private Use Area mapping (or happen to know the source encoding and can re-encode it). I've regularly had to pull up old Windows in a VM to grab data about old code pages.<p>In short: it's a beautiful mess.</p>
]]></description><pubDate>Mon, 15 Sep 2025 05:55:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=45246541</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=45246541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45246541</guid></item><item><title><![CDATA[New comment by nathanhammond in "MixedName – Bilingual baby name finder"]]></title><description><![CDATA[
<p>Is this published anywhere? Constraints I'm trying to solve for:<p>- Reasonable English corollary. (Doesn't have to be 1:1.)<p>- English-pronounceable Cantonese romanization.<p>- English-pronounceable Mandarin romanization.<p>- Doesn't diverge too much between the three.<p>- Characters that are identical in Traditional and Simplified.<p>- Pleasing to the relatives.</p>
]]></description><pubDate>Thu, 27 Aug 2020 02:35:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=24289627</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=24289627</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24289627</guid></item><item><title><![CDATA[Medium blog covering Uyghur Camps returning 410 (Gone)]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@shawnwzhang/list-of-re-education-camps-in-xinjiang-%E6%96%B0%E7%96%86%E5%86%8D%E6%95%99%E8%82%B2%E9%9B%86%E4%B8%AD%E8%90%A5%E5%88%97%E8%A1%A8-99720372419c">https://medium.com/@shawnwzhang/list-of-re-education-camps-in-xinjiang-%E6%96%B0%E7%96%86%E5%86%8D%E6%95%99%E8%82%B2%E9%9B%86%E4%B8%AD%E8%90%A5%E5%88%97%E8%A1%A8-99720372419c</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=20702742">https://news.ycombinator.com/item?id=20702742</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 15 Aug 2019 05:11:32 +0000</pubDate><link>https://medium.com/@shawnwzhang/list-of-re-education-camps-in-xinjiang-%E6%96%B0%E7%96%86%E5%86%8D%E6%95%99%E8%82%B2%E9%9B%86%E4%B8%AD%E8%90%A5%E5%88%97%E8%A1%A8-99720372419c</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=20702742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20702742</guid></item><item><title><![CDATA[New comment by nathanhammond in "Ask HN: Who needs contributors?"]]></title><description><![CDATA[
<p>Ember A11y<p>We're making Ember accessible by default.<p>Monthly Goals:<p><pre><code>  - Support Ember.js' internal upgrade to the new rendering engine.
  - Adopt dynamically scoped variables to make ember-a11y function.
</code></pre>
Skills needed: Ember.js, Glimmer, Accessibility<p>Slack: <a href="https://ember-community-slackin.herokuapp.com/" rel="nofollow">https://ember-community-slackin.herokuapp.com/</a><p>Ember A11y: <a href="https://github.com/ember-a11y" rel="nofollow">https://github.com/ember-a11y</a>
Ember A11y Addon: <a href="https://github.com/ember-a11y/ember-a11y" rel="nofollow">https://github.com/ember-a11y/ember-a11y</a><p>License: MIT</p>
]]></description><pubDate>Thu, 01 Sep 2016 15:15:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=12405893</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=12405893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12405893</guid></item><item><title><![CDATA[New comment by nathanhammond in "Ask HN: Who needs contributors?"]]></title><description><![CDATA[
<p>Ember CLI<p>We're building a tool that makes it easy to build and maintain Ember applications.<p>Monthly Goals:<p><pre><code>  - Finish moving off of Bower and onto our npm infrastructure.
  - Upgrade our internal npm usage from 2.X to 3.X.
  - Make our story for caching using Broccoli far more efficient.
  - Improve the Node ecosystem's publishing patterns for the projects we use.
</code></pre>
Skills needed: Node, npm. Familiarity with Ember.js & Broccoli unnecessary but a bonus.<p>Slack: <a href="https://ember-community-slackin.herokuapp.com/" rel="nofollow">https://ember-community-slackin.herokuapp.com/</a><p>Ember CLI: <a href="https://github.com/ember-cli/ember-cli" rel="nofollow">https://github.com/ember-cli/ember-cli</a><p>License: MIT</p>
]]></description><pubDate>Thu, 01 Sep 2016 15:12:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=12405856</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=12405856</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12405856</guid></item><item><title><![CDATA[Asmodee (board game company) Pitch Deck]]></title><description><![CDATA[
<p>Article URL: <a href="https://drive.google.com/a/nathanhammond.com/file/d/0B5nSRONV3LTVOF9GSWlFVnVnRWc/view">https://drive.google.com/a/nathanhammond.com/file/d/0B5nSRONV3LTVOF9GSWlFVnVnRWc/view</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8938718">https://news.ycombinator.com/item?id=8938718</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 24 Jan 2015 03:33:01 +0000</pubDate><link>https://drive.google.com/a/nathanhammond.com/file/d/0B5nSRONV3LTVOF9GSWlFVnVnRWc/view</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8938718</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8938718</guid></item><item><title><![CDATA[Reporting on cyberattacks: the media's urgent problem]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@davelee/reporting-on-cyberattacks-the-medias-urgent-problem-d6c450a3383a">https://medium.com/@davelee/reporting-on-cyberattacks-the-medias-urgent-problem-d6c450a3383a</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8868504">https://news.ycombinator.com/item?id=8868504</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Sun, 11 Jan 2015 00:10:59 +0000</pubDate><link>https://medium.com/@davelee/reporting-on-cyberattacks-the-medias-urgent-problem-d6c450a3383a</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8868504</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8868504</guid></item><item><title><![CDATA[The Programming Interview]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.nathanhammond.com/the-programming-interview">http://www.nathanhammond.com/the-programming-interview</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8862826">https://news.ycombinator.com/item?id=8862826</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 09 Jan 2015 16:17:08 +0000</pubDate><link>http://www.nathanhammond.com/the-programming-interview</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8862826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8862826</guid></item><item><title><![CDATA[Mecklenburg County District Attorney's office to review surveillance cases]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.charlotteobserver.com/2014/11/20/5330929/mecklenburg-county-district-attorneys.html">http://www.charlotteobserver.com/2014/11/20/5330929/mecklenburg-county-district-attorneys.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8642215">https://news.ycombinator.com/item?id=8642215</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 21 Nov 2014 17:21:55 +0000</pubDate><link>http://www.charlotteobserver.com/2014/11/20/5330929/mecklenburg-county-district-attorneys.html</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8642215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8642215</guid></item><item><title><![CDATA[Mr. Miller Doesn't Go to Washington]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.politico.com/magazine/story/2014/10/mr-miller-doesnt-go-to-washington-112173_full.html">http://www.politico.com/magazine/story/2014/10/mr-miller-doesnt-go-to-washington-112173_full.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8581211">https://news.ycombinator.com/item?id=8581211</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 09 Nov 2014 23:00:41 +0000</pubDate><link>http://www.politico.com/magazine/story/2014/10/mr-miller-doesnt-go-to-washington-112173_full.html</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8581211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8581211</guid></item><item><title><![CDATA[Why I Went from Queasy to Hopeful at MIT's Breast Pump Hackathon]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.fastcompany.com/3036052/healthware/why-i-went-from-queasy-to-hopeful-at-mits-breast-pump-hackathon">http://www.fastcompany.com/3036052/healthware/why-i-went-from-queasy-to-hopeful-at-mits-breast-pump-hackathon</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8359976">https://news.ycombinator.com/item?id=8359976</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 24 Sep 2014 04:58:14 +0000</pubDate><link>http://www.fastcompany.com/3036052/healthware/why-i-went-from-queasy-to-hopeful-at-mits-breast-pump-hackathon</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8359976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8359976</guid></item><item><title><![CDATA[Mailbox stickers let communities display items they have to share]]></title><description><![CDATA[
<p>Article URL: <a href="http://www.springwise.com/neighborhood-mailbox-stickers-communities-display-items-share/">http://www.springwise.com/neighborhood-mailbox-stickers-communities-display-items-share/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8245658">https://news.ycombinator.com/item?id=8245658</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 30 Aug 2014 04:33:56 +0000</pubDate><link>http://www.springwise.com/neighborhood-mailbox-stickers-communities-display-items-share/</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8245658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8245658</guid></item><item><title><![CDATA[Curiosity Rover's Wheels Are Falling Apart (And How It's Being Addressed)]]></title><description><![CDATA[
<p>Article URL: <a href="http://gizmodo.com/curiositys-wheels-are-falling-apart-and-how-we-can-sol-1626826935">http://gizmodo.com/curiositys-wheels-are-falling-apart-and-how-we-can-sol-1626826935</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8229796">https://news.ycombinator.com/item?id=8229796</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 26 Aug 2014 21:56:28 +0000</pubDate><link>http://gizmodo.com/curiositys-wheels-are-falling-apart-and-how-we-can-sol-1626826935</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=8229796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8229796</guid></item><item><title><![CDATA[New comment by nathanhammond in "Ember Tutorial"]]></title><description><![CDATA[
<p>There is going to be some future work on some of the form elements. They're really not quite where they need to be.</p>
]]></description><pubDate>Fri, 13 Jun 2014 05:58:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=7887587</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=7887587</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7887587</guid></item><item><title><![CDATA[New comment by nathanhammond in "Ember Tutorial"]]></title><description><![CDATA[
<p>1. Are you using Ember.computed's array methods? I tend to go with intermediately calculated arrays which I then union/diff/whatever is necessary for filters. It is also significantly faster than function-defined computed properties. The only bug I know of for this functionality was fixed in the 1.5 branch by @hjdivad.<p>2. The typical pattern is lots of computed properties. They're lazily calculated, so that makes them pretty cheap.</p>
]]></description><pubDate>Thu, 12 Jun 2014 16:32:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=7884360</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=7884360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7884360</guid></item><item><title><![CDATA[New comment by nathanhammond in "Comparing Ember and Angular"]]></title><description><![CDATA[
<p>Here is a pretty complete list of significant Ember applications:<p><a href="https://docs.google.com/document/d/1ZWYq3gwkPTzUiyqr4x_asSj8wIgfvg8XyLmU3Yx_FPE/edit?usp=sharing" rel="nofollow">https://docs.google.com/document/d/1ZWYq3gwkPTzUiyqr4x_asSj8...</a></p>
]]></description><pubDate>Thu, 01 May 2014 15:11:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=7680236</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=7680236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7680236</guid></item><item><title><![CDATA[New comment by nathanhammond in "Comparing Ember and Angular"]]></title><description><![CDATA[
<p>In general:<p><pre><code>    how much code the browser needs to parse and execute on every page load
</code></pre>
The caveat being that that code only needs to be parsed and executed once in a single page application.<p><pre><code>    weight of execution payloads across operations in your app
</code></pre>
Presumably this cost is providing value to the developer in terms of reduced development time, reduced complexity, or improved correctness. You shouldn't typically incur significant wasted cost in execution, just a selection of tradeoff. Besides, rendering to DOM is still the longest tentpole by far compared to microseconds for JS execution.<p>EDIT:
With regards to the "independent test," that is in no way a realistic use case. You would never add items to the DOM individually when you're in that tight of a loop. You would instead build up a cache and write once. The only thing of consequence that is being measured in that benchmark is each framework's DOM insertion speed.</p>
]]></description><pubDate>Thu, 01 May 2014 15:02:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=7680159</link><dc:creator>nathanhammond</dc:creator><comments>https://news.ycombinator.com/item?id=7680159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=7680159</guid></item></channel></rss>