<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: bakhy</title><link>https://news.ycombinator.com/user?id=bakhy</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 13:50:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bakhy" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bakhy in "Maybe Functions"]]></title><description><![CDATA[
<p>This looks too easy, the first solution. If there is no logged on user, which User object is fetchUser going to return? Which friends? At the top level, if I were to forget to check if someone is logged in, who knows what would happen here.<p>I've worked on codebases where people were so allergic to the "billion dollar mistake" of nulls, that they created empty objects to return instead of returning null. This bit us in the ass a couple of times, e.g., when caller code was mistakenly passing the wrong ID variable into a fetch method, and just happily continued working and writing garbage into the DB, because it did not realize that its fetch had actually failed. It took data from the empty result object and happily continued its computation with it.</p>
]]></description><pubDate>Mon, 11 Mar 2024 12:38:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39667425</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=39667425</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39667425</guid></item><item><title><![CDATA[New comment by bakhy in "Haraldur Þorleifsson sweeps person of the year awards"]]></title><description><![CDATA[
<p>The same site has an article about all this from today: <a href="https://www.icelandreview.com/business/elon-musk-and-halli-spar-over-termination-at-twitter/" rel="nofollow">https://www.icelandreview.com/business/elon-musk-and-halli-s...</a></p>
]]></description><pubDate>Tue, 07 Mar 2023 15:25:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=35056342</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=35056342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35056342</guid></item><item><title><![CDATA[New comment by bakhy in "Maxima: A computer algebra system written in Common Lisp"]]></title><description><![CDATA[
<p>It's also available as an Android app, MaximaOnAndroid. I love having it on my phone, even though I rarely actually use it :)</p>
]]></description><pubDate>Mon, 06 Feb 2023 09:28:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=34675268</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=34675268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34675268</guid></item><item><title><![CDATA[New comment by bakhy in "Password generator doesn't generate new password in the same session"]]></title><description><![CDATA[
<p>This is quite easy to reproduce. Wow.<p>IMO they should just remove the password generator feature. It's barely usable, and with this behavior it's just dangerous.<p>Why barely usable? Some really simple features are missing. I miss the ability to specify password requirements - for annoying sites which specify length, require so and so many these and those types of characters, or even forbid some types. And another one is that it's not possible to manually generate a password, not even in the password storage UI, when manually adding a new entry. So, if a site did not correctly declare a password field, which happens, you must generate a password yourself somehow.</p>
]]></description><pubDate>Tue, 20 Dec 2022 12:18:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=34064881</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=34064881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34064881</guid></item><item><title><![CDATA[New comment by bakhy in "Web color is still broken"]]></title><description><![CDATA[
<p>I can't see the square either. Firefox 99, Windows 10.</p>
]]></description><pubDate>Thu, 21 Apr 2022 13:34:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=31109176</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=31109176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31109176</guid></item><item><title><![CDATA[New comment by bakhy in "Why does Google use location for language rather than browser settings?"]]></title><description><![CDATA[
<p>Just BTW on the Netflix subtitles issue - I live in Germany, but I'm not German and generally prefer original audio on everything, typically with English subtitles. And some movies and series on Netflix will really only offer German subtitles, or, even worse, only German audio. No option to choose original.<p>All movies that have such limited audio/subtitle options, when I play them, start with a title card of a German distributor, so I would believe Netflix on that one.</p>
]]></description><pubDate>Fri, 11 Mar 2022 15:23:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=30640988</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=30640988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30640988</guid></item><item><title><![CDATA[New comment by bakhy in "Firefox 98 resets your download options without warning"]]></title><description><![CDATA[
<p>Not only resets, you cannot activate the old way in the Settings anymore. It is hidden in about:config (set browser.download.improvements_to_download_panel to false), but even if you switch back to it, there's still changes that break things.<p>* With the about:config setting off, tabs that had PDF files from the internet open in them will now, when first loaded, suddenly show the popup. If you choose "Open in Firefox" there, the file gets downloaded to a temp folder, opened in a new tab for some reason, and the new tab's address is the temp file. So, after restarting the browser again, it's broken, because the temp file has been deleted.<p>* In the new mode (I switched back because of the above...), I have set ZIP files to "Ask me", and even if I pick "Open with ..." in the popup, it still downloads the file into the default downloads folder, instead of the temp folder. So now I have to clean that folder up regularly, I guess.<p>* Lots of people on connect.mozilla.org are complaining that the little Download Manager, the popup you get when clicking on the Downloads icon in the toolbar, now annoyingly always opens whenever you download any file.<p>The FAQ (<a href="https://support.mozilla.org/en-US/kb/manage-downloads-preferences-using-downloads-menu" rel="nofollow">https://support.mozilla.org/en-US/kb/manage-downloads-prefer...</a>) about this also sounds kinda condescending:<p>> I want to approve each download before it happens, is there still a way to do this? Firefox no longer shows the dialog because downloads are usually intentional. Having to click a second time for a download to start is usually unnecessary.<p>This is really irritating, I'm for the first time in a long while considering switching to Chrome.</p>
]]></description><pubDate>Fri, 11 Mar 2022 15:02:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=30640731</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=30640731</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30640731</guid></item><item><title><![CDATA[New comment by bakhy in "Pseudophilosophy encourages confused, self-indulgent thinking"]]></title><description><![CDATA[
<p>There's a contradiction in the conclusion. Foucault was an academic philosopher, got a degree in philosophy, was awarded a doctorate, and is respected by many people who also got a lot of education in philosophy. So, how is more philosophy education supposed to have stopped him?</p>
]]></description><pubDate>Tue, 09 Feb 2021 14:38:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=26077967</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=26077967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26077967</guid></item><item><title><![CDATA[New comment by bakhy in "A Review of Consensus Protocols"]]></title><description><![CDATA[
<p>You're right, my mistake!<p>But it still should not be an issue, since according to what you quoted an acceptor will not reply to a second proposal that bears the same number ("If an acceptor receives... number n <i>greater than</i>...), which means only one of the two proposers can gather the required majority of promises to move to the next phase, and thus only one of the values can end up being accepted. After the crash you describe, there will be only one accepted value the Proposer-C will receive.</p>
]]></description><pubDate>Thu, 15 Oct 2020 09:47:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=24786720</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=24786720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24786720</guid></item><item><title><![CDATA[New comment by bakhy in "A Review of Consensus Protocols"]]></title><description><![CDATA[
<p>I think you're mistaken about the ability of 2 proposers to move to phase 2 - once an acceptor has agreed to a proposal with a certain seq number, it cannot just agree to another one with the same seq number. And that means only one of the two proposers can obtain the required majority of votes to start sending Accept messages, and thus only one of the two values can be accepted by any acceptor.<p>Maybe read the papers on Paxos, like the "Paxos Made Simple" one, it's not too big (though it's not all that simple either, at least to me...).</p>
]]></description><pubDate>Wed, 14 Oct 2020 11:40:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=24775435</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=24775435</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24775435</guid></item><item><title><![CDATA[New comment by bakhy in "Ask HN: How can I pick a side project and stick with it?"]]></title><description><![CDATA[
<p>I've had lots of ideas like that, things I'd like to do which I never get around to. The one I did go through with and still keep working on it on and off is the one that had a connection to my job.<p>I worked on a very concurrent system and thought maybe STM would be a nice fit for it. I found the concept of STMs very interesting. And I noticed that, although there were many implementations for .NET, all were one-off projects, not maintained, and in my opinion not very nice to use. So I ended up writing one myself.<p>I guess that sweet spot for me was having a problem that I dealt with on a daily basis, which gave me the drive and a clear picture of what I'm trying to achieve, and the fact that it was a fun challenge to implement and a learning experience related to a concept that intrigued me. The other ideas I had would mostly have just that second part - they're fun, challenging, but not really solving something I deal with too often.<p>So, I don't have much experience, I don't have many side projects, but for what it's worth, my advice is to try to find something in your day-to-day which bugs you, and for which you have some interesting idea that you'd like to experiment with.</p>
]]></description><pubDate>Mon, 06 Apr 2020 14:41:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=22794125</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=22794125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22794125</guid></item><item><title><![CDATA[New comment by bakhy in "Why GitHub used Haskell for Semantic"]]></title><description><![CDATA[
<p>C# has LINQ. Implement Select and SelectMany extension methods for whatever you like, and you can use the LINQ syntax with your type just as easily as with IEnumerable. Foreach and async/await are baked in, that's true, but the LINQ syntax is easily extendable to new use cases.</p>
]]></description><pubDate>Thu, 06 Jun 2019 07:29:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=20112331</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=20112331</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20112331</guid></item><item><title><![CDATA[New comment by bakhy in "JavaScript Array.push is 945x faster than Array.concat"]]></title><description><![CDATA[
<p>I don't know if this works well on JS, but there is a purely functional way that avoids most of the performance hit - generator methods. In C#, I'd write functions that return IEnumerable<T>, using yield return, and others that combine them with LINQ's Concat, and aside from many iterator objects, only one big array would need to be allocated.<p>When it happens that parts of this work later turn out not to be needed, it's easy to discard an enumerable, and the iteration is not actually performed. It can sometimes lead to really ellegant code that also performs well.</p>
]]></description><pubDate>Thu, 23 May 2019 16:04:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=19992956</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19992956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19992956</guid></item><item><title><![CDATA[New comment by bakhy in "Remote, in-memory key-value stores: An idea whose time has come and gone? [pdf]"]]></title><description><![CDATA[
<p>I'm currently working on a side project, a distributed in-process key/value store for .NET Standard, which might be interesting in this context. I hope you'll pardon the shameless plug, but I'm interested in getting feedback. Particularly, what to focus on, what use cases, missing features... And of course, if you see any issues with the approach.<p><a href="https://github.com/jbakic/Shielded.Gossip" rel="nofollow">https://github.com/jbakic/Shielded.Gossip</a><p>It needs more work, but I think the eventually consistent part could already be useful for a simple distributed cache layer atop a classic relational DB.</p>
]]></description><pubDate>Sat, 04 May 2019 10:49:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=19825666</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19825666</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19825666</guid></item><item><title><![CDATA[New comment by bakhy in "Removing Array Duplicates"]]></title><description><![CDATA[
<p>I think I get it. With doubling, the sum of all the work done for resizing is roughly (written chonologically backwards): n/2 + n/4 + ... ~= n, and O(n) + O(n) is still O(n). Thanks!</p>
]]></description><pubDate>Fri, 12 Apr 2019 13:49:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=19644751</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19644751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19644751</guid></item><item><title><![CDATA[New comment by bakhy in "Removing Array Duplicates"]]></title><description><![CDATA[
<p>This is what I'd do too, and it is quite strange that it was dismissed like that. Maybe because it's not as much fun :)<p>BTW I believe it may be a bit more than just O(n) time on the whole. If your hash-table is auto-growing, you'll have to pay for its resizing. And OTOH if it's sized up front, then you'll have to allocate something proportional to the size of the full array, not just to the number of distinct elements.</p>
]]></description><pubDate>Fri, 12 Apr 2019 11:38:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=19643870</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19643870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19643870</guid></item><item><title><![CDATA[New comment by bakhy in "C# 8: Switch expressions"]]></title><description><![CDATA[
<p>I was also wondering why simply opening curly braces after the => was not allowed. It would be consistent with lambda syntax generally.</p>
]]></description><pubDate>Fri, 15 Feb 2019 16:18:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=19172074</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19172074</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19172074</guid></item><item><title><![CDATA[New comment by bakhy in "Basic income in Finland did not lead to finding work, researchers said"]]></title><description><![CDATA[
<p>This is a weird title. The article says that the people on basic income were equally likely to find a job as those who were not receiving it. I was expecting that basic income might make people less motivated to find jobs, and that would have been an issue. But this result seems like a positive outcome for UBI.</p>
]]></description><pubDate>Fri, 08 Feb 2019 18:42:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=19117307</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=19117307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19117307</guid></item><item><title><![CDATA[New comment by bakhy in "What Makes .NET Core So Special?"]]></title><description><![CDATA[
<p>If you deliver the impossible on time, they'll just ask for the even more impossible next time...</p>
]]></description><pubDate>Sat, 10 Nov 2018 17:21:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=18422263</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=18422263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18422263</guid></item><item><title><![CDATA[New comment by bakhy in "What Makes .NET Core So Special?"]]></title><description><![CDATA[
<p>Here: <a href="https://www.hanselman.com/blog/501DevelopersFamilyAndExcitementAboutTheCraft.aspx" rel="nofollow">https://www.hanselman.com/blog/501DevelopersFamilyAndExcitem...</a><p>I'm not sure if that is the original post.<p>There was a bit of backlash against it, someone even published a 5:01 Manifesto, but that site is not maintained any more :D</p>
]]></description><pubDate>Sat, 10 Nov 2018 17:15:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=18422228</link><dc:creator>bakhy</dc:creator><comments>https://news.ycombinator.com/item?id=18422228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18422228</guid></item></channel></rss>