<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: privethedge</title><link>https://news.ycombinator.com/user?id=privethedge</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 25 Apr 2026 22:25:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=privethedge" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by privethedge in "Being Alone"]]></title><description><![CDATA[
<p>I'm alone and don't feel bad at all. Actually, I prefer to be alone. There are so many interesting things to do, so many interesting books to read, etc, I don't understand how someone can be bored. It's really strange to me that so many people suffer from being alone and feel lonely.</p>
]]></description><pubDate>Mon, 22 Jun 2020 13:22:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=23599863</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=23599863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=23599863</guid></item><item><title><![CDATA[New comment by privethedge in "What I Wish I Knew When Learning Haskell"]]></title><description><![CDATA[
<p>For those who really want to blow their mind, I suggest  learning Coq instead <a href="https://softwarefoundations.cis.upenn.edu/" rel="nofollow">https://softwarefoundations.cis.upenn.edu/</a></p>
]]></description><pubDate>Sun, 12 Apr 2020 09:26:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=22846993</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=22846993</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22846993</guid></item><item><title><![CDATA[New comment by privethedge in "From Zero to Main(): Bare Metal Rust"]]></title><description><![CDATA[
<p>This is great and I love Rust, but<p>> However, when working directly with the hardware, which has no knowledge of Rust’s guarantees, it is necessary to work in Rust’s unsafe mode, which allows some additional behaviors, but requires the developer to uphold certain correctness guarantees manually.<p>If the whole code will be wrapped in unsafe blocks, then what is the point of using Rust?</p>
]]></description><pubDate>Wed, 18 Dec 2019 01:18:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=21820868</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21820868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21820868</guid></item><item><title><![CDATA[New comment by privethedge in "Algebraic Data Types: Things I wish someone had explained about FP"]]></title><description><![CDATA[
<p>There are also union types.
And sum types can be implemented in terms of union types:
<a href="https://waleedkhan.name/blog/union-vs-sum-types/" rel="nofollow">https://waleedkhan.name/blog/union-vs-sum-types/</a></p>
]]></description><pubDate>Tue, 19 Nov 2019 17:39:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=21575725</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21575725</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21575725</guid></item><item><title><![CDATA[New comment by privethedge in "Parse, Don’t Validate"]]></title><description><![CDATA[
<p>What if there is another application (or e.g. a stored procedure) that uses this DB table so you cannot control all saving operations from your application?</p>
]]></description><pubDate>Fri, 08 Nov 2019 10:37:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=21481159</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21481159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21481159</guid></item><item><title><![CDATA[New comment by privethedge in "Parse, Don’t Validate"]]></title><description><![CDATA[
<p>> Sure, I didn’t say it does.<p>Sorry, I implied it from your "foo" example.<p>> two phases<p>So maybe we need to change the mantra to “parse, and validate as little as possible”?</p>
]]></description><pubDate>Fri, 08 Nov 2019 10:31:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=21481128</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21481128</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21481128</guid></item><item><title><![CDATA[New comment by privethedge in "Parse, Don’t Validate"]]></title><description><![CDATA[
<p>> head :: [a] -> a<p>> This function returns the first element from a list. Is it possible to implement?<p>But the type itself doesn't say that it must return the first element.<p>> If you see why parseNonEmpty is preferable, you understand what I mean by the mantra “parse, don’t validate.”<p>Okay, what about more complex cases? E.g. how do you describe type "such value doesn't exist in the db table yet"?</p>
]]></description><pubDate>Thu, 07 Nov 2019 22:25:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=21477964</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21477964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21477964</guid></item><item><title><![CDATA[New comment by privethedge in "Algebraic Structures: Things I wish someone had explained about FP"]]></title><description><![CDATA[
<p>Then why do I have the following results?<p><pre><code>    const a = [...Array(1000000).keys()];
    const m = 8;
    let leftAvg = .0;
    for(let _ of Array(m)) {
        const t0 = performance.now();
        a.map(Math.tan).map(Math.sin);
        const t1 = performance.now();
        leftAvg += (t1 - t0)/m;
    }
    let rightAvg = .0;
    for(let _ of Array(m)) {
        const t0 = performance.now();
        a.map(x => Math.sin(Math.tan(x)));
        const t1 = performance.now();
        rightAvg += (t1 - t0)/m;
    }
    console.log(leftAvg, rightAvg, leftAvg/rightAvg);
    // JS Firefox 70:  264 360.75 0.7318087318087318




    var a = Enumerable.Range(0, 10000000).Select(x => (double)x).ToArray();
    double[] xs1 = null;
    double[] xs2 = null;
    var m = 16;

    var leftAvg = .0;
    foreach (var _ in Enumerable.Range(0, m))
    {
        var watch = System.Diagnostics.Stopwatch.StartNew();
        xs1 = a.Select(Math.Tan).ToArray().Select(Math.Sin).ToArray();
        watch.Stop();
        leftAvg += (double)watch.ElapsedMilliseconds / m;
    }

    var rightAvg = .0;
    foreach (var _ in Enumerable.Range(0, m))
    {
        var watch = System.Diagnostics.Stopwatch.StartNew();
        xs2 = a.Select(x => Math.Sin(Math.Tan(x))).ToArray();
        watch.Stop();
        rightAvg += (double)watch.ElapsedMilliseconds / m;
    }

    Console.WriteLine($"{leftAvg} {rightAvg} {leftAvg / rightAvg}");
    // C# Results: 505.75 602.25 0.839767538397675</code></pre></p>
]]></description><pubDate>Tue, 05 Nov 2019 21:06:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=21456701</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21456701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21456701</guid></item><item><title><![CDATA[New comment by privethedge in "Algebraic Structures: Things I wish someone had explained about FP"]]></title><description><![CDATA[
<p>Then it is 8Gb of pointers. I doubt it's practical to worry about such extreme cases.</p>
]]></description><pubDate>Tue, 05 Nov 2019 06:50:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=21450265</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21450265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21450265</guid></item><item><title><![CDATA[New comment by privethedge in "Algebraic Structures: Things I wish someone had explained about FP"]]></title><description><![CDATA[
<p>> a.map(g).map(f) ≣ a.map(x => f(g(x)))<p>> But the one on the left will be slower and use a lot more memory.<p>Is it really true?
I mean, GC will clean the intermediate array, won't it?
And the speed won't be significantly slower.
It's still linear complexity anyway.</p>
]]></description><pubDate>Mon, 04 Nov 2019 23:01:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=21447621</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21447621</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21447621</guid></item><item><title><![CDATA[New comment by privethedge in "Text Rendering Hates You"]]></title><description><![CDATA[
<p>> If you're in Safari or Edge, this might still look ok! If you're in Firefox or Chrome, it looks awful, like this: <a href="https://gankra.github.io/blah/text-hates-you/transparent-cursive.png" rel="nofollow">https://gankra.github.io/blah/text-hates-you/transparent-cur...</a><p>It doesn't look awful in Firefox, it looks perfect (it's version 26 of Firefox though.) This is what I see <a href="https://i.imgur.com/sjvqycv.png" rel="nofollow">https://i.imgur.com/sjvqycv.png</a></p>
]]></description><pubDate>Sun, 29 Sep 2019 18:41:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=21108822</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=21108822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21108822</guid></item><item><title><![CDATA[New comment by privethedge in "Why Haskell Is Important"]]></title><description><![CDATA[
<p>There was Liskell, but it seems it's dead.<p><a href="https://wiki.haskell.org/Haskell_Lisp" rel="nofollow">https://wiki.haskell.org/Haskell_Lisp</a></p>
]]></description><pubDate>Sun, 08 Sep 2019 13:05:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=20910333</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20910333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20910333</guid></item><item><title><![CDATA[New comment by privethedge in "Why Haskell Is Important"]]></title><description><![CDATA[
<p>> Purity and side-effect isolation<p>This can be solved in many ways [1][2] and I don't think haskell's approach is the one that can be imported.<p>[1]: <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/08/algeff-tr-2016-v2.pdf" rel="nofollow">https://www.microsoft.com/en-us/research/wp-content/uploads/...</a><p>[2]: <a href="https://en.wikipedia.org/wiki/Uniqueness_type" rel="nofollow">https://en.wikipedia.org/wiki/Uniqueness_type</a></p>
]]></description><pubDate>Sun, 08 Sep 2019 10:32:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=20909660</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20909660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20909660</guid></item><item><title><![CDATA[New comment by privethedge in "Firefox has lots of room to improve if it wants to beat Chrome"]]></title><description><![CDATA[
<p>I mostly use Console, Network and Inspector tabs and I rarely debug (in general.)
Especially Network tab in Firefox's dev tools is much superior to Chrome's one, IMHO.</p>
]]></description><pubDate>Sun, 01 Sep 2019 15:12:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=20852689</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20852689</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20852689</guid></item><item><title><![CDATA[New comment by privethedge in "Firefox has lots of room to improve if it wants to beat Chrome"]]></title><description><![CDATA[
<p>Can I say please that it's very annoying that Chrome (and everything Blink based) doesn't let you to open a file in an application you can choose and see the size of the file before downloading it?<p><a href="https://www.ghacks.net/wp-content/uploads/2013/07/firefox-download-dialog.png" rel="nofollow">https://www.ghacks.net/wp-content/uploads/2013/07/firefox-do...</a></p>
]]></description><pubDate>Sun, 01 Sep 2019 11:19:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=20851663</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20851663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20851663</guid></item><item><title><![CDATA[New comment by privethedge in "Firefox has lots of room to improve if it wants to beat Chrome"]]></title><description><![CDATA[
<p>I personally prefer firefox's dev tools to chrome's ones.</p>
]]></description><pubDate>Sun, 01 Sep 2019 10:02:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=20851442</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20851442</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20851442</guid></item><item><title><![CDATA[New comment by privethedge in "DSVPN – VPN using TCP at port 80 and 443"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/SoftEther_VPN" rel="nofollow">https://en.wikipedia.org/wiki/SoftEther_VPN</a>
> Firewalls performing deep packet inspection are unable to detect SoftEther's VPN transport packets as a VPN tunnel because HTTPS is used to camouflage the connection.</p>
]]></description><pubDate>Wed, 31 Jul 2019 16:40:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=20575875</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20575875</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20575875</guid></item><item><title><![CDATA[New comment by privethedge in "Thaddeus Kosciusko"]]></title><description><![CDATA[
<p><a href="https://www.nytimes.com/2019/07/07/world/europe/kosciusko-belarus-memorial.html" rel="nofollow">https://www.nytimes.com/2019/07/07/world/europe/kosciusko-be...</a>
> “Belarus did not even exist when he was born,” said Veslav Wychodzki, a retiree from Poland who traveled to Kosava recently to pay tribute to Kosciuszko. “This was Polish land. They only put up a statue to him last year and never really talked about him before.”<p>> Mr. Nesterchuk, the Belarus historian, said: “The Poles say he belongs to them. The Lithuanians, the Ukrainians say the same thing. The Americans, too.”<p>> “But I always say that Kosciuszko does not belong to anyone,” Mr. Nesterchuk added. “He belongs to the whole world as a true democrat and a fighter for freedom.”</p>
]]></description><pubDate>Fri, 12 Jul 2019 12:21:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=20420133</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=20420133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20420133</guid></item><item><title><![CDATA[New comment by privethedge in "Ask HN: What influenced your personal growth the most?"]]></title><description><![CDATA[
<p>I doubt that you doubt it.</p>
]]></description><pubDate>Mon, 15 Jan 2018 17:03:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=16151726</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=16151726</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16151726</guid></item><item><title><![CDATA[New comment by privethedge in "Ask HN: What influenced your personal growth the most?"]]></title><description><![CDATA[
<p>Scepticism.</p>
]]></description><pubDate>Mon, 15 Jan 2018 16:40:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=16151537</link><dc:creator>privethedge</dc:creator><comments>https://news.ycombinator.com/item?id=16151537</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16151537</guid></item></channel></rss>