<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: nathan_long</title><link>https://news.ycombinator.com/user?id=nathan_long</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 14:52:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nathan_long" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nathan_long in "But no, 80-column terminals in 2020 isn't “reasonable” any more"]]></title><description><![CDATA[
<p>On my 15-inch MacBook, I have a full-screen terminal running tmux, split down the middle with Vim in the left pane and a shell in the right pane. At the smallest font size I can stand in decent lighting, I can get 88 columns in the left pane. Usually I want the font larger.<p>80 seems good to me.</p>
]]></description><pubDate>Tue, 02 Jun 2020 15:07:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=23391809</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23391809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23391809</guid></item><item><title><![CDATA[New comment by nathan_long in "Scaling Up with Elixir"]]></title><description><![CDATA[
<p>A discussion of how Erlang processes help us build scalable and reliable systems in Elixir.<p>This may not be news to developers, but might be useful for broader company discussions.</p>
]]></description><pubDate>Tue, 02 Jun 2020 15:01:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=23391739</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23391739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23391739</guid></item><item><title><![CDATA[Scaling Up with Elixir]]></title><description><![CDATA[
<p>Article URL: <a href="https://dockyard.com/blog/2020/05/28/scaling-up-with-elixir">https://dockyard.com/blog/2020/05/28/scaling-up-with-elixir</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=23391730">https://news.ycombinator.com/item?id=23391730</a></p>
<p>Points: 4</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 02 Jun 2020 15:00:20 +0000</pubDate><link>https://dockyard.com/blog/2020/05/28/scaling-up-with-elixir</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23391730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23391730</guid></item><item><title><![CDATA[New comment by nathan_long in "Show HN: Obsidian – A knowledge base that works on local Markdown files"]]></title><description><![CDATA[
<p>This is really murky to me. As a professional, I keep notes as I learn things which may or may not relate to my current employment. The notes are my property and part of my knowledge base that I bring to any job. But I suppose I indirectly receive compensation for knowing things, so I need a commercial license?<p>Or what if I start taking notes on some random subject for fun, and eventually I write and sell a book based on them? All of a sudden I need to start paying a yearly fee?<p>It's not a prohibitive amount of money, but I'd be much happier with paying a one-time fee for the current version, then buying future versions if I choose to.</p>
]]></description><pubDate>Thu, 28 May 2020 15:10:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=23338234</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23338234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23338234</guid></item><item><title><![CDATA[New comment by nathan_long in "Twitter Will Allow Employees to Work at Home Forever"]]></title><description><![CDATA[
<p>> I work at a large tech company on a young team (average age is late twenties). In my experience many don't view working from home regularly as a benefit. I understand that must change drastically when you're middle aged<p>Yes, and there is some correlation between age and seniority. If companies are so eager to hire senior developers, they might consider the preferences of candidates who have been working long enough to fit that description.</p>
]]></description><pubDate>Tue, 12 May 2020 18:49:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=23158036</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23158036</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23158036</guid></item><item><title><![CDATA[New comment by nathan_long in "Twitter Will Allow Employees to Work at Home Forever"]]></title><description><![CDATA[
<p>So you're considering Candidate A, who lives in SF, and B, who lives in a small town.<p>You decide that B has to compete with A on talent, but A doesn't have to compete with B on price.<p>Does that make strategic sense?</p>
]]></description><pubDate>Tue, 12 May 2020 18:45:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=23157982</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23157982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23157982</guid></item><item><title><![CDATA[New comment by nathan_long in "Twitter Will Allow Employees to Work at Home Forever"]]></title><description><![CDATA[
<p>It cuts both ways, right?<p>Companies: "I don't have to pay you $big_city rates because you live in $small_town and nobody there will offer you $big_city rates."<p>Candidates: "I don't have to accept $small_town rates because I work remotely and can work for a company in $big_city."</p>
]]></description><pubDate>Tue, 12 May 2020 18:38:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=23157878</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=23157878</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23157878</guid></item><item><title><![CDATA[New comment by nathan_long in "Ask HN: What is your strongest argument against remote work?"]]></title><description><![CDATA[
<p>> Hiring is more difficult. It's not that you can't find applicants, but the people capable of performing without direct supervision is (mostly) a subset of those capable of performing in an office.<p>OTOH, your applicant pool is limited only to the time zones and legal jurisdictions you're willing to hire from. If you're office-based, it's limited to those who can reasonably commute there.</p>
]]></description><pubDate>Fri, 24 Apr 2020 18:13:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=22971262</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22971262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22971262</guid></item><item><title><![CDATA[New comment by nathan_long in "Ask HN: What is your strongest argument against remote work?"]]></title><description><![CDATA[
<p>Yep. But I'm not lugging a crock pot on a plane. :)</p>
]]></description><pubDate>Fri, 24 Apr 2020 17:51:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=22970992</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22970992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22970992</guid></item><item><title><![CDATA[New comment by nathan_long in "Ask HN: What is your strongest argument against remote work?"]]></title><description><![CDATA[
<p>> There can be a fair amount of lag time over messenger and this occasionally blocks the completion of work.<p>Agreed. But the reverse is also true: it's harder for people to interrupt you.</p>
]]></description><pubDate>Fri, 24 Apr 2020 17:46:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=22970920</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22970920</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22970920</guid></item><item><title><![CDATA[New comment by nathan_long in "Ask HN: What is your strongest argument against remote work?"]]></title><description><![CDATA[
<p>It's impossible to have a company potluck.</p>
]]></description><pubDate>Fri, 24 Apr 2020 17:44:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=22970897</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22970897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22970897</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>> That's the same risk you have with any open source project.<p>Yes and no. The larger the number of dependencies you have, and the larger number of maintainers that are behind them, the more chances you have of one of them containing malicious code.<p>I think you're pretty safe from Phoenix or Rails or NodeJS getting owned because so many people work on them. But one of the thousand small packages you use may belong to someone careless or malicious.</p>
]]></description><pubDate>Thu, 23 Apr 2020 15:33:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=22957104</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22957104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22957104</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>Lumen may be the answer to this in the future: <a href="https://www.youtube.com/watch?v=uMgTIlgYB-U&list=PLqj39LCvnOWYTNs1n3ZNMSNO3Svv_XweT&index=3&t=0s" rel="nofollow">https://www.youtube.com/watch?v=uMgTIlgYB-U&list=PLqj39LCvnO...</a></p>
]]></description><pubDate>Thu, 23 Apr 2020 15:28:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=22957052</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22957052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22957052</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>The common retort from SPA devs is "what about offline?" Since LiveView keeps state on the server, it doesn't really work offline.<p>However, 1) you can add custom JS using LiveView's hooks, which might be enough for very simple offline behavior and 2) many SPAs don't work offline either.<p>If offline support is a major part of your app's design, LiveView isn't a good fit. But you could still use Phoenix Channels (the building block underneath LiveView) to provide fast push updates to your client. See the channels docs for an idea of how they work - <a href="https://hexdocs.pm/phoenix/channels.html" rel="nofollow">https://hexdocs.pm/phoenix/channels.html</a></p>
]]></description><pubDate>Thu, 23 Apr 2020 15:24:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=22957015</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22957015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22957015</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>> The only modern web problem that Elixir isn't ideally suited for is heavy number crunching.<p>I would caveat that in a couple of ways.<p>First, suppose you have a web app where some requests involve heavy number crunching and others don't. In web frameworks where 1 request ties up 1 OS thread, a burst of heavy requests could gobble up all your available connections. Phoenix would use one cheap BEAM process per request, and the BEAM's preemptive scheduler would ensure that other requests are answered in a timely way and that all the heavy ones continue to make steady progress. So although the heavy requests might be completed more slowly than in another language, the overall system would remain more responsive.<p>Second, if you have need for heavy computation or data structures that work better with mutability, it's possible to (eg) use Rustler (<a href="https://github.com/rusterlium/rustler" rel="nofollow">https://github.com/rusterlium/rustler</a>) to implement that part in Rust. See <a href="https://github.com/rusterlium/rustler" rel="nofollow">https://github.com/rusterlium/rustler</a> for a story about doing this.</p>
]]></description><pubDate>Thu, 23 Apr 2020 15:16:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=22956924</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22956924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22956924</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>The answer is applicable. LiveView is implemented using Phoenix Channels.</p>
]]></description><pubDate>Thu, 23 Apr 2020 15:07:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=22956837</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22956837</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22956837</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>You can see some other examples of LiveView apps at <a href="https://phoenixphrenzy.com/results" rel="nofollow">https://phoenixphrenzy.com/results</a></p>
]]></description><pubDate>Wed, 22 Apr 2020 20:58:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=22950130</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22950130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22950130</guid></item><item><title><![CDATA[New comment by nathan_long in "Build a real-time Twitter clone with LiveView and Phoenix 1.5"]]></title><description><![CDATA[
<p>Chris McCord has given some talks and explained this - eg see <a href="https://www.youtube.com/watch?v=8xJzHq8ru0M" rel="nofollow">https://www.youtube.com/watch?v=8xJzHq8ru0M</a> at about 22 minutes in</p>
]]></description><pubDate>Wed, 22 Apr 2020 20:57:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=22950118</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22950118</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22950118</guid></item><item><title><![CDATA[New comment by nathan_long in "Phoenix LiveDashboard"]]></title><description><![CDATA[
<p>I like to say that the BEAM's preemptive scheduling provides non-blocking IO AND non-blocking computation.<p>To expand on your workload description: things like waiting for a database query or an API result are smoothly handled in this paradigm; the process goes to sleep for a bit whle another request is processed.<p>If your workflow is like a delivery truck which makes a lot of stops, "faster trucks" doesn't help much with throughput. "More trucks" is better.</p>
]]></description><pubDate>Fri, 17 Apr 2020 13:52:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=22898967</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22898967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22898967</guid></item><item><title><![CDATA[New comment by nathan_long in "Phoenix LiveDashboard"]]></title><description><![CDATA[
<p>Another consideration: Phoenix PubSub makes it simple and performant to add more servers. So if one (say) chat app server can provide acceptable performance for N users, you can serve N more users by adding another node.<p>See the architecture of Phoenix Channels (which powers LiveView and other websocket-based solutions in Phoenix): <a href="https://hexdocs.pm/phoenix/channels.html" rel="nofollow">https://hexdocs.pm/phoenix/channels.html</a></p>
]]></description><pubDate>Fri, 17 Apr 2020 13:45:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=22898914</link><dc:creator>nathan_long</dc:creator><comments>https://news.ycombinator.com/item?id=22898914</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22898914</guid></item></channel></rss>