<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: jondubois</title><link>https://news.ycombinator.com/user?id=jondubois</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 01 May 2026 22:05:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=jondubois" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by jondubois in "The New York Times' first article about Hitler's rise is stunning"]]></title><description><![CDATA[
<p>Exactly. People can't wrap their minds around the fact that their own country is constantly peddling propaganda. I noticed this after I started travelling around the world working in different countries. Every single country is constantly pushing its own propaganda and they all have some element of truth mixed together with lies. Conspiracy theory is how governments hides aspects of the truth that they don't like.</p>
]]></description><pubDate>Wed, 28 Oct 2020 09:35:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=24916876</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24916876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24916876</guid></item><item><title><![CDATA[New comment by jondubois in "Surviving Disillusionment"]]></title><description><![CDATA[
<p>As an open source developer who enjoys coding, a lot of these thoughts resonate strongly with me but this article is overly pessimistic. It's OK to be pessimistic but that doesn't mean you should stop trying to make things right because otherwise it becomes self-fulfilling.<p>Also, we shouldn't look at fiat currency as the only form of achievement, especially given the artificial economic environment of the past decade.
Many smart people know that Slava co-founded RethinkDB and realize that it's one of the best databases in existence.
That genuine brand value is way more valuable in the long run than worthless fiat paper or company stocks whose earnings are denominated in that same worthless fiat.<p>It's important for millennials to realize that the past 10 years of monetary policy which contributed to significant centralization of wealth and power is not normal and it won't last.</p>
]]></description><pubDate>Mon, 26 Oct 2020 16:58:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=24898312</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24898312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24898312</guid></item><item><title><![CDATA[The harsh economics of open source (2018)]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/hackernoon/the-harsh-reality-of-open-source-8880f6640a34">https://medium.com/hackernoon/the-harsh-reality-of-open-source-8880f6640a34</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24857123">https://news.ycombinator.com/item?id=24857123</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 22 Oct 2020 12:06:21 +0000</pubDate><link>https://medium.com/hackernoon/the-harsh-reality-of-open-source-8880f6640a34</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24857123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24857123</guid></item><item><title><![CDATA[New comment by jondubois in "How tech workers at Kickstarter formed one of the only unions in the industry"]]></title><description><![CDATA[
<p>I think unions make sense for any organization that has a or near-monopoly. I'm surprised that they are not more common among big tech corporations.</p>
]]></description><pubDate>Thu, 08 Oct 2020 12:48:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=24718622</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24718622</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24718622</guid></item><item><title><![CDATA[New comment by jondubois in "Government Is Losing the Trust of the People – California Globe"]]></title><description><![CDATA[
<p>Many governments have already lost the trust of their people.<p>Some countries are about to get brain-drained. They will be left full of fiat money, full of psychopaths, no brains, no humanity.</p>
]]></description><pubDate>Wed, 30 Sep 2020 22:51:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=24644971</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24644971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24644971</guid></item><item><title><![CDATA[New comment by jondubois in "Gitter is joining Matrix"]]></title><description><![CDATA[
<p>I thought Gitter had already been acquired by GitLab?</p>
]]></description><pubDate>Wed, 30 Sep 2020 16:32:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=24640564</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24640564</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24640564</guid></item><item><title><![CDATA[New comment by jondubois in "5k people have pledged to give 10%+ of their income to effective charities"]]></title><description><![CDATA[
<p>I recommend reading up on monetary policy and the Federal reserve (and watch videos) and you will understand what I mean and how it fits into Annand's description of the world (it compounds the problem). It's a lot worse than you think.<p>I recommend also doing your own research to verify all the facts. I had a hard time believing some of the facts presented but all checked out so far.<p>Hidden Secrets of Money: <a href="https://youtu.be/iFDe5kUUyT0?t=69" rel="nofollow">https://youtu.be/iFDe5kUUyT0?t=69</a><p>An interesting recent discussion I found which discusses the current state of the economy: <a href="https://www.youtube.com/watch?v=kGsp45JbvnU" rel="nofollow">https://www.youtube.com/watch?v=kGsp45JbvnU</a><p>Actually the second one is eye-opening for anyone who wants to make sense of the current situation.</p>
]]></description><pubDate>Sun, 27 Sep 2020 14:50:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=24607042</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24607042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24607042</guid></item><item><title><![CDATA[New comment by jondubois in "Stop Asking Me to “Sign Up” (2014)"]]></title><description><![CDATA[
<p>So true. I guess it's a way for giant mega-corporate monopolies to make themselves seem smaller and less monopolistic than they actually are.</p>
]]></description><pubDate>Sun, 27 Sep 2020 14:43:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=24606995</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24606995</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24606995</guid></item><item><title><![CDATA[New comment by jondubois in "5k people have pledged to give 10%+ of their income to effective charities"]]></title><description><![CDATA[
<p>Normally giving away money to charities is great but in our artificial government-controlled economic environment, it just harms capitalism. I'm tired of this artificial top-down winner-takes-all selection.<p>At this stage, I'd rather be the lucky recipient of charity donations than a participating member of the economy. It's just easier and more meritocratic.<p>Everything the elites do seems to destroy the economy and destroy justice.<p>I highly recommend watching Anand Giridharadas on YouTube - He explains this effect very clearly.</p>
]]></description><pubDate>Sun, 27 Sep 2020 13:29:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=24606459</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24606459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24606459</guid></item><item><title><![CDATA[New comment by jondubois in "Things I Was Wrong About: Types"]]></title><description><![CDATA[
<p>Sometimes this will be the best approach possible but adhering with this principle too strongly can overcomplicate the general design/architecture - It can give developers a green light to start passing around complex types all over the place and harms the separation of concerns principle.<p>In terms of modularity and testability, the ideal architecture is when components communicate with each other in the simplest language (interface) possible. Otherwise you become too reliant on mocks during testing (which add brittleness and require more frequent test updates). I think very often, static typing can cause developers to become distracted from what is truly important; architecture and design philosophy. I think this is the core idea that Alan Kay (one of the inventors of OOP) has been trying to get across.<p>'I'm sorry that I long ago coined the term "objects" for this topic because it gets many people to focus on the lesser idea. The big idea is "messaging"' - Alan Kay<p>It's very clear from Alan Kay's writings that when he was talking about 'messaging' he was talking about communication between components and he did not intend for objects to be used in the place of messages.</p>
]]></description><pubDate>Sun, 27 Sep 2020 12:10:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=24606042</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24606042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24606042</guid></item><item><title><![CDATA[New comment by jondubois in "Things I Was Wrong About: Types"]]></title><description><![CDATA[
<p>But still, I think it does not fully solve the architectural issue or encourage good architecture (though it can certainly help reduce bugs)... In this case you may end up with lots of duplicate instances in different blackboxes which may not be a good thing either.<p>The point of good state management is to ensure that each instance has a single home. As soon as you start passing instances between functions/modules/components, you're leaking abstractions between different components. Sometimes it is appropriate to do this, but most of the time it's dangerous. Components should aim to communicate as little information about their internal state to other components as possible.</p>
]]></description><pubDate>Sun, 27 Sep 2020 10:55:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=24605724</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24605724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24605724</guid></item><item><title><![CDATA[New comment by jondubois in "Things I Was Wrong About: Types"]]></title><description><![CDATA[
<p>Type hype is real. It almost seems like job-creation propaganda at this stage.<p>When I judge things, I look at practical outcomes; and the fact is that I produce better software with more features within the same timeframe if I use JavaScript rather than TypeScript and the product in both cases is equally robust. This has been true for me both independently and as part of a team.<p>With JS, I can write more code and more tests within the same amount of time and there is no drop in quality.<p>I'm very surprised that nobody else seems to be experiencing the same thing. I've been back and forth many times between the two paradigms and for me it's clear as day.</p>
]]></description><pubDate>Sun, 27 Sep 2020 10:49:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=24605705</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24605705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24605705</guid></item><item><title><![CDATA[New comment by jondubois in "Things I Was Wrong About: Types"]]></title><description><![CDATA[
<p>I agree. I think the downside of static typing is that it encourages developers to pass around complex types between functions instead of simple types and I think this is a mistake.<p>If you have the option between creating a function which accepts a string (e.g. ID) as argument or accepts an instance of type SomeType, it's better to pass a string because simple types such as strings are pass-by-value so it protects your code from unpredictable mutations (which is probably the single biggest, hardest to identify and hardest to fix problem in software development). I think OOP gets a lot of blame for this and it's why a lot of people have been promoting functional programming but this blame is misguided; the problem is complex function interfaces which encourage pass-by-reference and then hide mutations which occur inside the blackbox, not mutations themselves. Mutations within a whitebox (e.g. a for-loop) are perfectly fine since they're easy to spot and happen in a single central place.<p>If you adopt a philosophy of passing the simplest types possible, then you will not run into these kinds of mutation problems which are the biggest source of pain for software developers. Also you will not run into argument type mismatch issues because you will be dealing with a very small range of possible types.<p>Note that this problem of trying to pass simple types requires an architectural solution and well thought-out state management within components; it cannot be solved through more advanced tooling. More advanced tooling (and types) just let you get away with making spaghetti code more manageable; but if what you have is spaghetti code then problems will rear their ugly heads again sooner or later.<p>For example, a lot of developers in the React community already kind of figured this out when they started cloning objects passed to and returned from any function call; returning copies of some plain objects instead of instances by-reference provided protection from such unexpected mutations. I'm sure that's why a lot of people in the React community are still kind of resistant to TypeScript; they've already figured out what the real culpit is. Some of them may have switched to TS out of peer pressure, but I'm sure many have had doubts and their intuition was right.</p>
]]></description><pubDate>Sun, 27 Sep 2020 10:15:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=24605573</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24605573</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24605573</guid></item><item><title><![CDATA[New comment by jondubois in "Things I Was Wrong About: Types"]]></title><description><![CDATA[
<p>For me it was the opposite. I started out with dynamically typed, then switched to statically typed for many years, then I realized that types were almost worthless (and even harmful in some cases in terms of how they influence design/architecture) and I switched back to dynamically typed and never looked back.<p>Nothing beats good testing and good architecture design.</p>
]]></description><pubDate>Sun, 27 Sep 2020 09:56:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=24605505</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24605505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24605505</guid></item><item><title><![CDATA[New comment by jondubois in "A Short Story for Engineers"]]></title><description><![CDATA[
<p>This is so relevant today. Especially in our corporation-dominated industry where profits will continue to grow no matter what the corporation does.</p>
]]></description><pubDate>Sat, 26 Sep 2020 19:14:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=24601370</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24601370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24601370</guid></item><item><title><![CDATA[New comment by jondubois in "Deprecate GraphQL Subscriptions over WebSockets in Favour of SSE/EventSource API"]]></title><description><![CDATA[
<p>>> I wouldn't consider this a lot of overhead.<p>Depends on how many subscriptions you want. If you have 100s of subscriptions, it can add up.<p>>> You can send a token as query parameter.<p>If using JWT or some other kind of stateless signed (or encrypted) token, that would take up a large part of the URL. Also URL length is limited to around 2000 characters in some browsers. So it encourages short session IDs instead of signed tokens (session IDs are not stateless; so it's going to force an additional database call to be made on the server-side).<p>>> The EventSource API allows you to close the connection at any time. It will automatically reconnect which I consider a feature.<p>Yes there is some control. But if it auto-reconnects too fast, then your servers could end up DDoSed if you had a lot of concurrent clients. If it auto-reconnects too slow, then your users could miss more messages than would be desirable depending on the use case.<p>With WebSockets, you can control the backoff to your needs and you can randomize, so you can ensure that not all clients try to reconnect at the exact same time; you can tailor it to your architecture.<p>>> However, we don't need this flexibility for GraphQL Subscriptions.<p>It seems like it simplifies things but also potentially reduces flexibility and performance. But I'm not familiar with the typical use case for GraphQL so maybe it's worth it.</p>
]]></description><pubDate>Sat, 26 Sep 2020 17:15:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=24600422</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24600422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24600422</guid></item><item><title><![CDATA[New comment by jondubois in "Deprecate GraphQL Subscriptions over WebSockets in Favour of SSE/EventSource API"]]></title><description><![CDATA[
<p>Based on my experience, SSEs add more complexity and brittleness to applications compared to WebSockets.
Having a single WebSocket connection to handle both RPCs and subscriptions is great because it binds all data flows to the lifecycle of a single socket - So if that single connection fails, it's easy to identify the disconnection and recover from it.<p>Another major benefit of WebSockets is that you can control the exact timing of RPCs and subscriptions without having to worry about race conditions when the server expects to receive actions in a specific order.<p>Also, SSEs add a lot of overhead because you need to authenticate each SSE channel independently (unlike with WebSockets where you only need authenticate a socket once at the beginning and then use it to subscribe to almost unlimited channels); so if you have many SSE EventSources, establishing them will waste a lot of resources since you need to pass the auth token (or session ID) to each EventSource that you open - In general, SSE authentication is tricky and forces you to rely on cookies which can be a problem in a lot of situations (e.g. on mobile if the front end is loaded the local file system as part of a WebView, your cookies will not be sent to the server due to cross-origin restrictions).<p>Moreover, the lack of control over the lifecycle of the SSE connection makes it difficult to coordinate recovery from network or server failure/restart; a common problem happens when your server crashes and then all the SSE event sources try to reconnect immediately at the same time and this DDoSes your server again, then the reboot and crash cycle repeats indefinitely...
With WebSockets, you can control the reconnect algorithm to add exponential backoff, for example (it can be customized to your exact requirements).<p>Finally, the statefulness of WebSocket connections can be a huge advantage; you can store data pertaining to a single active client in-memory on the server-side which can be convenient for a lot of use cases (and efficient). For example, you can attach an auth token on the back end socket (in memory) and can use it to quickly check access rights for any channel without having to make an additional database call.<p>SSEs are not a practical abstraction IMO. It's sad that people don't realize how good the WebSocket standard is. It's good because it's simple; it's also what makes it so flexible. WebSockets cover more use cases.<p>Subscriptions as a concept have to support too many use cases (too generic) to be implemented with something as restrictive as SSEs.</p>
]]></description><pubDate>Sat, 26 Sep 2020 16:35:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=24600041</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24600041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24600041</guid></item><item><title><![CDATA[New comment by jondubois in "Hotels of Pyongyang"]]></title><description><![CDATA[
<p>My point is that both communism and capitalism have problems. Both systems have shown themselves to be corruptible.
The 'ideal form' of either system can never be achieved because of corruption.</p>
]]></description><pubDate>Sat, 26 Sep 2020 09:36:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=24597529</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24597529</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24597529</guid></item><item><title><![CDATA[New comment by jondubois in "Hotels of Pyongyang"]]></title><description><![CDATA[
<p>My wife grew up around Moscow during the last phase of the USSR and she said that although there wasn't that much stuff, there was enough for everyone.
People complemented any minor shortcomings by growing stuff in their gardens.<p>I have no doubt that countries in the periphery of major communist states had it worse... Just like countries in the periphery of capitalist states have it worse today.<p>If you ask members of the communist elite how communism was, they would probably tell you it was amazing. If you ask the lowest class of capitalists, they will tell you that capitalism is horrible - These days even many members of the middle class will tell you that capitalism is horrible; unfortunately the US capitalist system can't drain China so much anymore (now that China has become an economic superpower) so now it has to drain its own citizens locally.<p>Why do you think democrats are so keen on increasing immigration? You think they actually want more Elon Musks and Sudar Pichais to compete with them? They want more wage slaves to drain from! Elon and Sundar are immigrant bait!<p>Americans are going to find out for the first time what capitalism is really about.</p>
]]></description><pubDate>Sat, 26 Sep 2020 08:33:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=24597282</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24597282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24597282</guid></item><item><title><![CDATA[New comment by jondubois in "Hotels of Pyongyang"]]></title><description><![CDATA[
<p>Both communism and capitalism do a good job at draining resources from the masses and giving them to a relatively small number of elite. The main difference is that capitalism is better at hiding its shortcomings.<p>Also because capitalism has a much broader global reach, it can hide poverty away in other countries.</p>
]]></description><pubDate>Sat, 26 Sep 2020 08:09:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=24597193</link><dc:creator>jondubois</dc:creator><comments>https://news.ycombinator.com/item?id=24597193</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24597193</guid></item></channel></rss>