<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: jforberg</title><link>https://news.ycombinator.com/user?id=jforberg</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 24 May 2026 21:59:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jforberg" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jforberg in "Building an ARM64 home server the hard way"]]></title><description><![CDATA[
<p>Maybe the store was recently opened? This project is from last year, I just finished the write-up now.</p>
]]></description><pubDate>Sun, 19 Feb 2023 20:09:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=34861321</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34861321</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34861321</guid></item><item><title><![CDATA[New comment by jforberg in "Building an ARM64 home server the hard way"]]></title><description><![CDATA[
<p>NUC is a single board computer :)<p>If you think the price is high, I would point out that the SSD I used cost €200 new when I purchased it back in mid 2022. A used 120 GB SSD by contrast can be had for maybe €10 which alone would explain the difference in cost.<p>Now if 120 GB is enough for your application, that's a good value so more power to you.</p>
]]></description><pubDate>Sun, 19 Feb 2023 14:52:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=34858037</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34858037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34858037</guid></item><item><title><![CDATA[New comment by jforberg in "Building an ARM64 home server the hard way"]]></title><description><![CDATA[
<p>I probably would have if it had been available at the time. This project was actually done last spring/summer.</p>
]]></description><pubDate>Sun, 19 Feb 2023 13:33:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=34857423</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34857423</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34857423</guid></item><item><title><![CDATA[New comment by jforberg in "Building an ARM64 home server the hard way"]]></title><description><![CDATA[
<p>If this was going to be used for some "big and serious" application, maybe different choices would have been made. Hopefully it was clear from the post that my goals here were the exact opposite!<p>In my own anecdotal experience of running a hobby server on Arch for several years, I haven't experienced anything to make me think the distro is unsuitable for server work.</p>
]]></description><pubDate>Sun, 19 Feb 2023 13:30:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=34857397</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34857397</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34857397</guid></item><item><title><![CDATA[New comment by jforberg in "Building an ARM64 home server the hard way"]]></title><description><![CDATA[
<p>Yes, I considered that and agree that it would have been nicer! I didn't pursue it for this project because my jury-rigged SD boot was working fine and I wanted to move on to other parts of the system.</p>
]]></description><pubDate>Sun, 19 Feb 2023 13:10:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=34857297</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34857297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34857297</guid></item><item><title><![CDATA[Building an ARM64 home server the hard way]]></title><description><![CDATA[
<p>Article URL: <a href="https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html">https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=34856866">https://news.ycombinator.com/item?id=34856866</a></p>
<p>Points: 258</p>
<p># Comments: 118</p>
]]></description><pubDate>Sun, 19 Feb 2023 12:02:49 +0000</pubDate><link>https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=34856866</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34856866</guid></item><item><title><![CDATA[New comment by jforberg in "Off-Facebook Activity"]]></title><description><![CDATA[
<p>> challenges<p>rm -rf /var/tracking_data/jforberg</p>
]]></description><pubDate>Tue, 20 Aug 2019 16:59:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=20749202</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20749202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20749202</guid></item><item><title><![CDATA[New comment by jforberg in "Why Const Doesn't Make C Code Faster"]]></title><description><![CDATA[
<p>It rarely makes sense. Pointer to const is a contact between caller and callee. A signature like char <star>strdup(const char <star>) says "I take a pointer to memory that I promise not to modify, and you get a pointer to memory that you may modify".<p>Const pointer is a statement about the internal variables of a function definition, usually not of any interest outside the function itself and therefore rarely used.</p>
]]></description><pubDate>Mon, 19 Aug 2019 22:15:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=20742312</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20742312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20742312</guid></item><item><title><![CDATA[New comment by jforberg in "Detailed analysis of a star’s orbit near supermassive black hole"]]></title><description><![CDATA[
<p>> Our observations are consistent with Einstein’s general theory of relativity.</p>
]]></description><pubDate>Thu, 25 Jul 2019 22:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=20530527</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20530527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20530527</guid></item><item><title><![CDATA[New comment by jforberg in "Flakes – Proposed mechanism to package Nix expressions into composable entities"]]></title><description><![CDATA[
<p>I mostly deal with openembedded at work and I have few positive things to say about it. I'm sure Nix is much faster and nicer. Frankly it's hard to imagine that the opposite could be true.<p>But your example looks nothing like Json.</p>
]]></description><pubDate>Sat, 20 Jul 2019 22:52:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=20488830</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20488830</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20488830</guid></item><item><title><![CDATA[New comment by jforberg in "Flakes – Proposed mechanism to package Nix expressions into composable entities"]]></title><description><![CDATA[
<p>That looks completely inscrutable to me. Like a sequence of magic words. I don't see the connection with JSON at all.</p>
]]></description><pubDate>Sat, 20 Jul 2019 20:01:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=20487980</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20487980</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20487980</guid></item><item><title><![CDATA[New comment by jforberg in "Ask HN: Why do new(ish) programming languages eschew OOP features?"]]></title><description><![CDATA[
<p>If you'd like to hear the case against OOP in modern programming, the Rich Hickey talks are a pretty good place to start:<p>* The value of values<p>* Simple made easy<p>* Are we there yet?<p>I'm on mobile, but you'll find these easily on the google.</p>
]]></description><pubDate>Sun, 30 Jun 2019 22:39:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=20321022</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20321022</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20321022</guid></item><item><title><![CDATA[New comment by jforberg in "“The books will stop working.”"]]></title><description><![CDATA[
<p>> "Virtually all Server OSs get hacked/have had security bugs. Nobody should use them to host or store anything."<p>Your comparison is flawed. Most server installations are not broken into during their lifetime. But it only takes one copy of a movie getting onto thepiratebay to make it accessible to everyone who wants it. So if DRM cannot prevent every attempt at circumvention, it's useless and can only serve to hinder legitimate use of the product.<p>> If we accept your premise that DRM == disrespecting customers, then you'll have to account for why people are still selling stuff with DRM, and continuing to make millions and millions of dollars.<p>No, I don't. The fact that some people accept the deal doesn't prove that there's nothing wrong with it. In this case, the seller unilaterally went back on the deal without the customers being involved at all.<p>I'm not a DRM fanatic and I do use DRM services on a daily basis. But if a vendor pulls a trick like in the OP, they can't then turn around and ask why some potential customers are pirating the product instead. Their addition of DRM has made the service less convenient than piracy. Remember, it's only your legitimate paying customers who have to deal with your DRM. The pirated version has no DRM.<p>> The success of DRM'd products refutes your claim, entirely.<p>The purpose of DRM is to prevent piracy. This has mostly been a failure.</p>
]]></description><pubDate>Fri, 28 Jun 2019 07:09:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=20302138</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20302138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20302138</guid></item><item><title><![CDATA[New comment by jforberg in "“The books will stop working.”"]]></title><description><![CDATA[
<p>Are you implying that DRM is a solution to piracy? If anything, DRM is a big driver  for piracy, and its success rate is near zero. Virtually all major DRM-"protected" works are available on thepiratebay shortly after release. Sometimes before release.<p>The "better solution" is to treat your customers with respect and let them own their bought goods. Gog.com is a good example here, in my opinion.<p>What definitely doesn't work is to burden your paying customers with digital locks and hurdles to enjoyment, that the pirates will shortly find a way to remove for the non-paying audience.</p>
]]></description><pubDate>Thu, 27 Jun 2019 22:44:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=20299632</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20299632</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20299632</guid></item><item><title><![CDATA[New comment by jforberg in "Takes: Java web framework without static methods or annotations"]]></title><description><![CDATA[
<p>Gotta get rid of all those nasty pure functions. Can't have any of that cruft in muh object oriented language.</p>
]]></description><pubDate>Mon, 24 Jun 2019 21:28:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=20268706</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20268706</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20268706</guid></item><item><title><![CDATA[New comment by jforberg in "EINTR and PC Loser-Ing: The “Worse Is Better” Case Study (2011)"]]></title><description><![CDATA[
<p>This is true, but if anything it reinforces my point that continuing past a signal is the exception, not the rule.<p>In the general case services are not at liberty to just exit(), they need to perform some kind of active cleanup action before exit. So the signal handler would set an "exit flag" somewhere and the EINTR would be an indication for the main loop to check this flag before continuing.<p>The only common case I can think to continue past signals is SIGHUP, which some services interpret as a command to re-read their configuration file. In this case, you are essentially doing a shutdown and startup sequence anyway, only in a possibly more efficient way. E.g. the case of a web server, if you were previously listening on port N there's no reason to believe that the new config file won't ask you to instead listen on port M. So you will be closing down most connections anyway, and catching SIGHUP is mostly an optimisation as exiting and restarting would have a similar effect.</p>
]]></description><pubDate>Wed, 19 Jun 2019 22:05:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=20227830</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20227830</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20227830</guid></item><item><title><![CDATA[New comment by jforberg in "EINTR and PC Loser-Ing: The “Worse Is Better” Case Study (2011)"]]></title><description><![CDATA[
<p>This discussion seems to ignore the fact that being blocked in a "long-running system call" is the normal state for many (most?) Unix services.<p>If you look at `ps ax` on your system, you'll likely see about a hundred processes. But if you look at `top`, you'll see only a handful of processes having non-zero CPU usage. Why? Because most processes are just waiting (in a system call) for something to do. A web server is blocked in a select/poll/epoll() call waiting for a connection. Your shell is blocked in a read() call waiting for you to type something. This is just the normal way that a main loop is implemented on Unix.<p>When you kill one of these processes, they need a way to break out of their loop and with the EINTR approach, they get a chance to break and exit.<p>I'm far from convinced that a "majority" of services want to just catch signals and carry on.</p>
]]></description><pubDate>Wed, 19 Jun 2019 21:39:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=20227633</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=20227633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20227633</guid></item><item><title><![CDATA[New comment by jforberg in "After 15 Years, the Pirate Bay Still Can’t Be Killed"]]></title><description><![CDATA[
<p>Spotify did it right; they managed to put together a service that is actually <i>better</i> than piracy in the ways that matter to a typical consumer.<p>The movie and TV industry have instead put great effort into building services that are significantly <i>worse</i> than piracy.<p>And nobody can understand why movie piracy is still rampant, while music piracy is receding.</p>
]]></description><pubDate>Thu, 23 May 2019 22:34:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=19996692</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=19996692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19996692</guid></item><item><title><![CDATA[New comment by jforberg in "Free Wolfram Engine for Developers"]]></title><description><![CDATA[
<p>No, your point is still extremely muddled. Cuda and Wolfram are both compilers/runtimes, they fill exactly the same role of translating high-level code into something that can run on hardware.</p>
]]></description><pubDate>Tue, 21 May 2019 18:06:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=19972903</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=19972903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19972903</guid></item><item><title><![CDATA[New comment by jforberg in "Show HN: Oya – New projects set up lightning fast"]]></title><description><![CDATA[
<p>What if we could have examples on our homepage that actually made the product seem useful in some way...</p>
]]></description><pubDate>Mon, 20 May 2019 14:58:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=19960991</link><dc:creator>jforberg</dc:creator><comments>https://news.ycombinator.com/item?id=19960991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19960991</guid></item></channel></rss>