<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: Leo_Germond</title><link>https://news.ycombinator.com/user?id=Leo_Germond</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 03 May 2026 21:07:32 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Leo_Germond" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Leo_Germond in "Counting Sheeps with Contracts in Python"]]></title><description><![CDATA[
<p>Hello everyone, I'm starting a new blog where I'm trying to mix my passion and experience for safe programming in critical contexts, and my (over)use of Python, and other techs that are used in... less safe contexts. The "investment hypothesis" if you will is that pieces of tech used daily in critical systems could see a broader use if they stopped being hidden behind mumbo jumbo, bad UX, and general lack of consideration for the common developper. In this blog I'll try to go and discuss fuzzing, contracts, why not some amount of lightweight proofing... and to mix them with application that are hopefully fun and nice to study.<p>This first post is about counting sheeps, with a design-by-contract twist.<p>Let me know what you guys think, it's my first blog at all, so I'm a taker for all matters of feedback, as long as it comes from the heart that is ;)</p>
]]></description><pubDate>Tue, 17 Sep 2024 17:16:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=41570089</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=41570089</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41570089</guid></item><item><title><![CDATA[Counting Sheeps with Contracts in Python]]></title><description><![CDATA[
<p>Article URL: <a href="https://colorsofcode.ghost.io/counting-sheeps-with-contracts-in-python/">https://colorsofcode.ghost.io/counting-sheeps-with-contracts-in-python/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41570088">https://news.ycombinator.com/item?id=41570088</a></p>
<p>Points: 27</p>
<p># Comments: 17</p>
]]></description><pubDate>Tue, 17 Sep 2024 17:16:39 +0000</pubDate><link>https://colorsofcode.ghost.io/counting-sheeps-with-contracts-in-python/</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=41570088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41570088</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Type Safety Doesn't Matter (2023)"]]></title><description><![CDATA[
<p>I think it's not saying that time is wasted but that it could be better spent verifying the same thing with other techniques. For example you could implement a graph type that guarantees absence of cycles at all point. Such a type would be great except for the fact that in most cases you would be better off preventing such cycles by construction, e.g. by only adding edges directed towards nodes that are not added yet.</p>
]]></description><pubDate>Fri, 26 Apr 2024 07:17:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=40166688</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=40166688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40166688</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Type Safety Doesn't Matter (2023)"]]></title><description><![CDATA[
<p>I agree completely with the premise and the conclusion, however I would not describe types as moving errors to compilation time, but as moving effort to the earliest parts of the workflow: more time spent on writing code, more time spent on thinking before doing, more time spent on specifying your interfaces. Agreed on the diminishing return as well: use them as long as your leverage (= time saved debugging / (writing time + reviewing time + maintenance time)) is good, maintenance time in particular is often overlooked: how much time will it take to train the new recruit so that the understand your oh-so-smart custom types?</p>
]]></description><pubDate>Fri, 26 Apr 2024 06:10:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=40166374</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=40166374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40166374</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Make invalid states unrepresentable (2023)"]]></title><description><![CDATA[
<p>I love that, going to reuse that one</p>
]]></description><pubDate>Thu, 25 Apr 2024 07:36:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=40154592</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=40154592</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40154592</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Make invalid states unrepresentable (2023)"]]></title><description><![CDATA[
<p>I would say it's a tool with an optimal point that is located along the "heavy use" side. I think it is interesting to think of them as solidifying your specification. As such if your spec is still changing or it is unclear (e.g. first impl draft, example code...), you should use some lightweight types, whereas a public API should have types that encode basically everything your comments can say about the values, operations, and memory representation of the parameters. That would be the point where I would consider that defining my types is "done" and I would consider switching to e.g. moving the functiona around instead (there are lots of hanging fruits in safe by construction approaches, that might not even require types - can't shoot yourself in the foot if I remove the footgun entirely)</p>
]]></description><pubDate>Thu, 25 Apr 2024 07:35:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=40154586</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=40154586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40154586</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Deleting Software I Wrote Upon Leaving Employment of a Company"]]></title><description><![CDATA[
<p>And yet, most IT will see it as an opportunity for locking down systems and policies, instead of the call for help shadow IT is: people want systems that are reliable, efficient, and adaptable to rapidly changing business needs. Providing them is  part of the core mission of IT, and they're failing at it in some companies. One anecdotal example: I'm responsible for doing trainings at my company. If I see someone providing trainings on their own, creating their own class material, using their own platform... basically wasting company resources; I don't consider it shadow training but I take it as an indication that A. they have a need B. are very willing to work to achieve it and C. I'm not filling up that need properly, maybe not even communicating correctly about it. I take ownership and I don't play vigilante. When IT are providers, helpers to the employees, instead of self-appointed inquisition on a mission to purify the systems and its users, it works for the best.</p>
]]></description><pubDate>Fri, 15 Mar 2024 08:57:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=39713481</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=39713481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39713481</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Shields up: New ideas might make active shielding viable"]]></title><description><![CDATA[
<p>"Just fire discs" well that's easier said than done, and there's probably a tons of reasons nobody uses discs. One of them is already that we have no experience building or using disc-shaped bullets, especially compared to the trove of experience for... bullet-shaped bullets. So that's not a solution as much as it's an indication that this defense mechanism wouldn't be perfect given an adversary with enough time and will. That being said, nothing is ever perfect, and "arms race" are named this way for this exact reason.</p>
]]></description><pubDate>Wed, 13 Mar 2024 06:19:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=39688565</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=39688565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39688565</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Extreme video compression with prediction using pre-trainded diffusion models"]]></title><description><![CDATA[
<p>Ah I got it to work for two movies :)</p>
]]></description><pubDate>Tue, 20 Feb 2024 05:20:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=39438302</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=39438302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39438302</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Vesuvius Challenge 2023 Grand Prize awarded: we can read the first scroll"]]></title><description><![CDATA[
<p>All the 847 chapters of Philodemus fan fiction of MLP (my little Plato)</p>
]]></description><pubDate>Mon, 05 Feb 2024 18:58:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=39265345</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=39265345</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39265345</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Google Cuts Jobs in Engineering and Other Divisions"]]></title><description><![CDATA[
<p>The worse relationship I've had were in small companies. "Oh but we're so small we cannot afford raises" coming from the same people that are selling it millions later in the year.</p>
]]></description><pubDate>Thu, 11 Jan 2024 10:12:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=38950187</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38950187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38950187</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Aim, fire, scan: the 80/20 of executing on big projects"]]></title><description><![CDATA[
<p>I guess it means for some "plan do check act" loop, you want to avoid doing a plan, a do, then to plan again (because you have something important to note), then do a bit etc... This kind of back and forth were you subvert the principle by turning the loop into a 2 step pseudo-iteration.</p>
]]></description><pubDate>Wed, 10 Jan 2024 06:01:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=38936769</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38936769</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38936769</guid></item><item><title><![CDATA[New comment by Leo_Germond in "You can't do that because I hate you"]]></title><description><![CDATA[
<p>Wild fries or something, and a triple burger, there's a hidden menu that is double the calories.</p>
]]></description><pubDate>Fri, 29 Dec 2023 09:10:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=38803044</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38803044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38803044</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Godot: A Collaboration with Google and the Forge"]]></title><description><![CDATA[
<p>No disrespect but judging languages on syntax is a lot like judging a book on its cover. Chosing a language is, for the experienced programmer, a choice of ecosystem, libraries, tools, architecture, and also a matter of long term maintenance, evolution, technical debts. Gscript scores very low on all of these, especially compared to the behemoth that is C#. Only unexperienced programmers and sales people use the "it looks somewhat similar so it must be" argument.</p>
]]></description><pubDate>Sat, 16 Dec 2023 06:57:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=38662322</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38662322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38662322</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Sam Altman returns as CEO, OpenAI has a new initial board"]]></title><description><![CDATA[
<p>I wouldn't say overplayed as much as badly played because they underestimated
how much their CEO's had fortified his position. I find the situation pretty dire: we need more checks and watchmen on billionaire tech entrepreneurs, not less.</p>
]]></description><pubDate>Thu, 30 Nov 2023 07:04:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=38470575</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38470575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38470575</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Sam Altman returns as CEO, OpenAI has a new initial board"]]></title><description><![CDATA[
<p>Ah if only it were that simple, truth is a company, especially old ones, have a value function that is in flux, and this may include revenue generation but more often than not this is completed or replaced by replaced by some variation of political clout acquisition: it makes them unkillable even with a negative balance sheet.</p>
]]></description><pubDate>Thu, 30 Nov 2023 06:59:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=38470542</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38470542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38470542</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Push ifs up and fors down"]]></title><description><![CDATA[
<p>The advice about if up is not bikeshedding though, it is the exact kind of architectural choice you're saying one should decide on. Don't believe me ? Well imagine you have inputs, where should you validate them ? According to this rule of thumb it's at the topmost level, when they are received. Well that seems super sensible, and it's typically something that helps with understanding the code (rather than checking them at thw very last moment). Also for proofs that's technically necessary to allow the preconditions to "percolate up", which has the same effect of moving the if up.<p>So the first advice is definitely not bike shedding, the second one I'm not so clear though ;)</p>
]]></description><pubDate>Thu, 16 Nov 2023 06:20:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=38286308</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38286308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38286308</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Stop making every conversation about yourself"]]></title><description><![CDATA[
<p>If you practice it daily, after about a week pushing that to 60 minutes shouldn't be too hard, it's not physical after all. What's important is to have a great setup so that it's super comfy for you to stay a long time without moving: hot, background noise should stay low, use some mat or pillow to sit on, and here you go...</p>
]]></description><pubDate>Fri, 10 Nov 2023 10:28:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=38217205</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38217205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38217205</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Preview of CLion Nova, which uses the ReSharper C++/Rider C++ language engine"]]></title><description><![CDATA[
<p>You should consider having it paid by your employer, even with some chargeback on your pay you would save on taxes.</p>
]]></description><pubDate>Fri, 10 Nov 2023 07:58:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=38216299</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38216299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38216299</guid></item><item><title><![CDATA[New comment by Leo_Germond in "Stop making every conversation about yourself"]]></title><description><![CDATA[
<p>6 minutes seems awfully short, I havent practiced meditation for a long time but my sessions where 20, 30 or 60 minutes long, it takes time for the mind to settle down and to benefit fully from flowing consciousness. Anything less would feel like a rush job, which is kinda paradoxical for meditation.</p>
]]></description><pubDate>Wed, 08 Nov 2023 08:32:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=38187990</link><dc:creator>Leo_Germond</dc:creator><comments>https://news.ycombinator.com/item?id=38187990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38187990</guid></item></channel></rss>