<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: Fiahil</title><link>https://news.ycombinator.com/user?id=Fiahil</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 02 May 2026 00:50:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Fiahil" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Fiahil in "Show HN: Clawe – open-source Trello for agent teams"]]></title><description><![CDATA[
<p>Clasp, from Foundation, was nice</p>
]]></description><pubDate>Tue, 10 Feb 2026 21:23:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46967113</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=46967113</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46967113</guid></item><item><title><![CDATA[New comment by Fiahil in "Improved Gemini 2.5 Flash and Flash-Lite"]]></title><description><![CDATA[
<p>Question to the one that tested it : Does it still timeout a lot with unreliable response time (1-5 sec) ?</p>
]]></description><pubDate>Thu, 25 Sep 2025 18:10:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45376609</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=45376609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45376609</guid></item><item><title><![CDATA[New comment by Fiahil in "Rust compiler performance"]]></title><description><![CDATA[
<p>At some point, the community is also responsible for the demanding expectation of a "not slow" compiler.<p>What's "slow"? What's "fast"? It depends. It depends on the program, the programmer, his or her hardware, the day of the week, the hour of the day, the season, what he or she had for lunch, ...<p>It's a never ending quest.<p>I, for exemple, am perfectly happy with the current benchmark of the rust compiler. I find a x2 improvement absolutly excellent.</p>
]]></description><pubDate>Fri, 13 Jun 2025 11:52:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44267688</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=44267688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44267688</guid></item><item><title><![CDATA[New comment by Fiahil in "Lock-Free Rust: How to Build a Rollercoaster While It's on Fire"]]></title><description><![CDATA[
<p>You can go one step further if :<p>- you don't reallocate the array<p>- you don't allow updating/ removing past inserted values<p>In essence it become a log, a Vec<OnceCell<T>> or a Vec<UnsafeCell<Option<T>>>. Works well, but only for a bounded array. So applications like messaging, or inter-thread communication are not a perfect fit.<p>It's a fixed-size vector that can be read at the same time it's being written to. It's no a common need.</p>
]]></description><pubDate>Fri, 16 May 2025 13:07:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44005033</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=44005033</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44005033</guid></item><item><title><![CDATA[New comment by Fiahil in "IAC confirms existence of a Super-earth in the habitable zone of a Sun-like Star"]]></title><description><![CDATA[
<p>Yes, but that’s only a few hours away through hyperspace !</p>
]]></description><pubDate>Tue, 28 Jan 2025 21:38:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42858405</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=42858405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42858405</guid></item><item><title><![CDATA[New comment by Fiahil in "Show HN: Kameo – Fault-tolerant async actors built on Tokio"]]></title><description><![CDATA[
<p>I think you misread :<p>- 2 actors on 1 thread = OK<p>- 1 actor on 2 thread = you are probably doing it wrong.<p>As for the rest, whether or not they are used in communication systems and whether or not they are cpu-bound, consider there are and run the handle on a separate loop from the main message dispatching. Otherwise you _will_ delay messaging if handles don't await.</p>
]]></description><pubDate>Tue, 08 Oct 2024 13:37:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=41777236</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=41777236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41777236</guid></item><item><title><![CDATA[New comment by Fiahil in "Show HN: Kameo – Fault-tolerant async actors built on Tokio"]]></title><description><![CDATA[
<p>> multiple actors can run on a single thread.<p>Right. It's not a very widespread use case, to be honest. You'd find that most would be N actors for M threads (where N <= M ; an Actor in itself is never shared among multiple threads [So `Send` and not `Sync`, in theory] - an inner message handler _could_ have parallel processing but that's up to the user)<p>I think you should assume in Kameo that every Actor's message handler is going to be CPU-bound. For example, it means that your internal message dispatch and Actor management should be on a separate loop from the User's `async fn handle`. I don't know if it's already the case, but it's an important consideration for your design.<p>Nice library, BTW, I think it checks all the marks and I like your design. I've tried most of them but could not find one that I liked and/or that would not have a fatal design flaw (like async_traits, ...) :)<p>PS : Multi-threaded tokio runtime should be the default. Nobody wants a single-threaded actor runtime. It should be in capital letters in the readme.</p>
]]></description><pubDate>Thu, 03 Oct 2024 12:25:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=41730071</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=41730071</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41730071</guid></item><item><title><![CDATA[New comment by Fiahil in "Show HN: Kameo – Fault-tolerant async actors built on Tokio"]]></title><description><![CDATA[
<p>What's the reason for using Async for an Actor framework ?<p>They run in separate tasks / threads anyway and they are cpu-bound. So, why would it be necessary to make them async ?</p>
]]></description><pubDate>Thu, 03 Oct 2024 07:23:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41728094</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=41728094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41728094</guid></item><item><title><![CDATA[New comment by Fiahil in "The OpenAI board was right"]]></title><description><![CDATA[
<p>Yet, legal opinions seems to differ : <a href="https://news.ycombinator.com/item?id=40423224">https://news.ycombinator.com/item?id=40423224</a></p>
]]></description><pubDate>Tue, 21 May 2024 09:38:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40426159</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=40426159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40426159</guid></item><item><title><![CDATA[New comment by Fiahil in "GPT-4o"]]></title><description><![CDATA[
<p>Can I mix french and english when talking to it ?</p>
]]></description><pubDate>Tue, 14 May 2024 07:57:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=40352692</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=40352692</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40352692</guid></item><item><title><![CDATA[New comment by Fiahil in "The extraordinary lives of coast redwoods"]]></title><description><![CDATA[
<p>stomata open, light interacts with chlorophyll, water is moved and creates a tiny depression in the xylem tube, more water moves up through capillarity</p>
]]></description><pubDate>Sat, 09 Mar 2024 00:46:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=39648273</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39648273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39648273</guid></item><item><title><![CDATA[New comment by Fiahil in "Show HN: Hatchet – Open-source distributed task queue"]]></title><description><![CDATA[
<p>How does this compare to ZeroMQ (ZMQ) ?<p><a href="https://zeromq.org/" rel="nofollow">https://zeromq.org/</a></p>
]]></description><pubDate>Fri, 08 Mar 2024 19:36:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=39645296</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39645296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39645296</guid></item><item><title><![CDATA[New comment by Fiahil in "A lock-free ring-buffer with contiguous reservations (2019)"]]></title><description><![CDATA[
<p>> The alternative is to dive into the literature on lock-free mpmc queues, which are kind of gnarly to implement. A lot of the literature handwaves ABA problems with stuff like "use hazard pointers and RCU" without correct pseudo code to help you.<p>Yes and I do think they are fundamentally incorrect or they cannot be translated to the log use case.<p>I also agree that, performance-wise, the lock make little difference. In fact my old benchmarks tend to point that locks were MORE EFFICIENT than atomics on ARM64 (MBP M1), for example. It's more like a fun little exercise, and also to confirm that I'm not completely dumb and that the problem is not solvable with the simple use of 2 atomics and a counter.</p>
]]></description><pubDate>Fri, 01 Mar 2024 11:28:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=39560779</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39560779</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39560779</guid></item><item><title><![CDATA[New comment by Fiahil in "A lock-free ring-buffer with contiguous reservations (2019)"]]></title><description><![CDATA[
<p>For the (un)bounded logs, the whole concept reside on the fact that the log isn't going to move once allocated, and that references to an item will never be invalided until the end of the program</p>
]]></description><pubDate>Fri, 01 Mar 2024 11:19:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=39560728</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39560728</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39560728</guid></item><item><title><![CDATA[New comment by Fiahil in "A lock-free ring-buffer with contiguous reservations (2019)"]]></title><description><![CDATA[
<p>in the case of a bounded log, readers are expected to give an offset at which they want to perfom the read (kafka-like).<p>So the linked list would involve going through all the links and following end tail refs/pointers. It would make reading O(n) and that's a Nope.<p>However, you could imagine having a Vec index that contains a ref to all allocated inner-logs, and query the index first in order to obtain the buffers' location. That works, but then the index has to go through a lock (either a RWLock or a mutex) as the CaS operation isn't enough if we get to the end of the index and it needs to be reallocated. It's fine, and I think that's the most appropriate solution.<p>PS : In fact, there is a sweet spot where you'd like to have a semi-unbounded log. If your index is big enough to contain something like 4Md entries, you'd probably end-up splitting the log in several pieces for archiving and performances purposes. Loading the log (fully or partially) from disk efficiently is then more important than having a real unbounded log. Then you would not necessarily use a lock and could CaS in the index.</p>
]]></description><pubDate>Fri, 01 Mar 2024 11:16:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=39560714</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39560714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39560714</guid></item><item><title><![CDATA[New comment by Fiahil in "A lock-free ring-buffer with contiguous reservations (2019)"]]></title><description><![CDATA[
<p>I used the same approach while designing a lock-free bounded broadcast log (as in a "RWLock<Vec<T>>"; a MCMP, append-only Vec). It's quite easy to do because it's bounded. However, I could not find a way to make it both unbounded and efficient.<p>Any ideas ?</p>
]]></description><pubDate>Thu, 29 Feb 2024 17:06:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=39552099</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39552099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39552099</guid></item><item><title><![CDATA[New comment by Fiahil in "Firefly III: A free and open source personal finance manager"]]></title><description><![CDATA[
<p>I'm a 5y user of Firefly-III, and was very happy with it. Unfortunately, JC5, I discovered Actual recently.<p>It's not that FIII is bad at was it was doing, but simply Actual was a bit faster, a bit simpler, a bit more practical to use when importing. I'm mostly using rules, categories and reporting.</p>
]]></description><pubDate>Fri, 16 Feb 2024 10:03:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=39395137</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39395137</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39395137</guid></item><item><title><![CDATA[AgentKit, a Full-Stack Starter Kit for Building Constrained Agents]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/BCG-X-Official/agentkit">https://github.com/BCG-X-Official/agentkit</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=39370801">https://news.ycombinator.com/item?id=39370801</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 14 Feb 2024 15:21:40 +0000</pubDate><link>https://github.com/BCG-X-Official/agentkit</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39370801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39370801</guid></item><item><title><![CDATA[New comment by Fiahil in "Turning off Rust's borrow checker completely (2022)"]]></title><description><![CDATA[
<p>> No it's not, it's extremely common.<p>Arc-Mutex yes, Arc-Box no.<p>It's like "I want a shared, immutable reference to something recursive, or unsized". The heap part makes no sense because it's already allocated there if you use an Arc : <a href="https://doc.rust-lang.org/std/sync/struct.Arc.html" rel="nofollow">https://doc.rust-lang.org/std/sync/struct.Arc.html</a><p>> The type Arc<T> provides shared ownership of a value of type T, allocated in the heap.<p>Moreover, you don't even need the box for a dyn : <a href="https://gist.github.com/rust-play/f19567f8ad4cc00e3ef17ae6b3c76d2d" rel="nofollow">https://gist.github.com/rust-play/f19567f8ad4cc00e3ef17ae6b3...</a></p>
]]></description><pubDate>Tue, 23 Jan 2024 09:29:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=39101286</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39101286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39101286</guid></item><item><title><![CDATA[New comment by Fiahil in "Turning off Rust's borrow checker completely (2022)"]]></title><description><![CDATA[
<p>> after the number of times I resorted to things like Arc<Box<..>>.<p>... What are you doing ? It's definitively unusual.</p>
]]></description><pubDate>Tue, 23 Jan 2024 09:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=39101205</link><dc:creator>Fiahil</dc:creator><comments>https://news.ycombinator.com/item?id=39101205</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39101205</guid></item></channel></rss>