<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: pkolaczk</title><link>https://news.ycombinator.com/user?id=pkolaczk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 07:38:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pkolaczk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pkolaczk in "Use boring languages with LLMs"]]></title><description><![CDATA[
<p>There is a huge semantic difference between sharing an object by providing a reference to it, passing the ownership of the object and passing a copy. It’s not a technical low level detail because the results can differ. Many developers use those distinctions in Rust to encode business rules, not to optimize memory use.<p>Similarly there is an important semantic difference between something you can change and something you shouldn’t change. Again - this can be used to express  business logic constraints, similarly to how you can use static types to enforce other properties like e.g. „age must be a number”.<p>While you may say you can get away with just sharing references everywhere like Java or JS do, and not care about immutability, that’s like saying the only type you need is string and hashmap and you can code everything. And you just document in comments when strings contain numbers. I saw code like that in PHP once. Fun.</p>
]]></description><pubDate>Wed, 27 May 2026 05:47:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48290153</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48290153</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48290153</guid></item><item><title><![CDATA[New comment by pkolaczk in "'No way to prevent this,' says only package manager where this regularly happens"]]></title><description><![CDATA[
<p>As a heavy user of Java I can assure you that Java is very very far from boring, especially when building it with maven or gradle. There are millions ways something can screw up the build. Rust (and Go too) in comparison is much more boring actually - it maybe I was just lucky, but the majority of stuff just builds with zero issues.<p>Especially the number of times I had to clean all the caches in order for maven and gradle to build the project is just far too high for me. It shouldn’t ever be needed if an ecosystem is meant to be considered boring. I feel like Java doesn’t build when I look at it wrong.</p>
]]></description><pubDate>Sat, 16 May 2026 07:33:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48157727</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48157727</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48157727</guid></item><item><title><![CDATA[New comment by pkolaczk in "Async Rust never left the MVP state"]]></title><description><![CDATA[
<p>Only if you ever deal with one future at a time. But async allows things like awaiting one of N events in a very natural way. Those patterns are much less readable when done with threads.</p>
]]></description><pubDate>Sun, 10 May 2026 06:17:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48081459</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48081459</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48081459</guid></item><item><title><![CDATA[New comment by pkolaczk in "Bun's experimental Rust rewrite hits 99.8% test compatibility on Linux x64 glibc"]]></title><description><![CDATA[
<p>That code was optimized for performance for 1980s hardware. It’s very far from optimized for modern CPUs.</p>
]]></description><pubDate>Sun, 10 May 2026 05:45:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48081337</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48081337</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48081337</guid></item><item><title><![CDATA[New comment by pkolaczk in "Async Rust never left the MVP state"]]></title><description><![CDATA[
<p>Threads are neither better or worse than async+callbacks. They are different. There are problems which map nicely to threads and there are problems which are much nicer to express with async.</p>
]]></description><pubDate>Tue, 05 May 2026 08:21:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48019514</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48019514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48019514</guid></item><item><title><![CDATA[New comment by pkolaczk in "A couple million lines of Haskell: Production engineering at Mercury"]]></title><description><![CDATA[
<p>Rust (and Scala) type systems are somewhat stronger and more expressive in some areas than Haskell. Weaker in some other. But it’s not a clear cut that Haskell type system offers more safety guarantees.</p>
]]></description><pubDate>Mon, 04 May 2026 06:14:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=48005220</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48005220</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48005220</guid></item><item><title><![CDATA[New comment by pkolaczk in "A couple million lines of Haskell: Production engineering at Mercury"]]></title><description><![CDATA[
<p>Java escape analysis is very weak, much weaker than what stack allocation and moving allows in languages like C, C++, Rust.</p>
]]></description><pubDate>Mon, 04 May 2026 06:08:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48005188</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=48005188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48005188</guid></item><item><title><![CDATA[New comment by pkolaczk in "John Ternus to become Apple CEO"]]></title><description><![CDATA[
<p>They do work for me either, but I have learned to double check the locations of POIs with Google Maps to make sure I’ll arrive at the correct place.</p>
]]></description><pubDate>Tue, 21 Apr 2026 08:45:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47846252</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=47846252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47846252</guid></item><item><title><![CDATA[New comment by pkolaczk in "John Ternus to become Apple CEO"]]></title><description><![CDATA[
<p>The interface and the direction instructions on Apple Maps are way ahead of Google Maps. The app performance is also much smoother / snappier, it connects to the car instantly and reliably, where with Android Auto it’been always waiting and pain. But the accuracy of maps is indeed worse.<p>However my biggest gripe with Apple Maps in Poland is that Siri does not understand Polish and cannot be told to navigate to a Polish address. It just can’t understand the street and city names :(<p>Btw: I haven’t counted the times Google Maps wanted me to go through the worst possible traffic jam (where the traffic jam was not visible on the map) or a closed road. I guess it just happens with every navigation system that errors happen.</p>
]]></description><pubDate>Tue, 21 Apr 2026 08:35:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47846176</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=47846176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47846176</guid></item><item><title><![CDATA[New comment by pkolaczk in "D Programming Language"]]></title><description><![CDATA[
<p>It still is an unbelievable memory hog. It got faster though.</p>
]]></description><pubDate>Fri, 13 Feb 2026 21:58:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47008395</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=47008395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47008395</guid></item><item><title><![CDATA[New comment by pkolaczk in "Making Ferrite Core Inductors at Home"]]></title><description><![CDATA[
<p>What do you mean it would destroy the valuable part of the signal?<p>If the signal has a carrier (like in AM or FM) or some other regular pattern (e.g. digital signal) then the typical the way to recover it from under the noise floor is to use a narrow-band PLL.<p>I’m experimenting with it right now and just found that a quartz/ceramic oscillator pulled by a varicap controlled by a PLL gives pretty good results - low phase noise, good noise rejection and ability to recover the carrier from a very noisy signal. But for that to work, the signal has to be shifted to a constant frequency through heterodyning first.</p>
]]></description><pubDate>Thu, 05 Feb 2026 21:50:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46905870</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46905870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46905870</guid></item><item><title><![CDATA[New comment by pkolaczk in "Making Ferrite Core Inductors at Home"]]></title><description><![CDATA[
<p>That’s why you probably want to use it in an oscillator rather than a filter. Then some of those problems go away. Although, some new ones appear like having to add a mixer …
Some time ago I thought making a double superhet would be too complex but apparently it turned out quite a nice DYI project.</p>
]]></description><pubDate>Thu, 05 Feb 2026 18:40:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46903173</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46903173</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46903173</guid></item><item><title><![CDATA[New comment by pkolaczk in "Making Ferrite Core Inductors at Home"]]></title><description><![CDATA[
<p>If you can afford losing a bit of frequency stability, you can use a varicap instead and control it by voltage. Precise multiturn potentiometers are much cheaper. Or just buy a programmable clock signal generator based on PLL and then make it into a superhet (you can still have analog filtering and detection, but digital frequency synthesis so it can look more like a modern radio with frequency display).<p>There are so many options and all are very cool to explore.</p>
]]></description><pubDate>Thu, 05 Feb 2026 15:27:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46900710</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46900710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46900710</guid></item><item><title><![CDATA[New comment by pkolaczk in "There's a ridiculous amount of tech in a disposable vape"]]></title><description><![CDATA[
<p>> Which is why when folks nowadays say "you cannot use XYZ for embedded", given what most embedded systems look like, and what many of us used to code on 8 and 16 bit home computers, I can only assert they have no idea how powerful modern embedded systems have become.<p>Yet, I still need to wait about 1 second (!) after each key press when buying a parking ticket and the machine wants me to enter my license plate number. The latency is so huge I initially thought the machine was broken. I guess it’s not the chip problem but terrible programming due to developers thinking they don’t need to care about performance because their chip runs in megahertz.</p>
]]></description><pubDate>Wed, 14 Jan 2026 08:09:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46613551</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46613551</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46613551</guid></item><item><title><![CDATA[New comment by pkolaczk in "Apple Maps claims it's 29,905 miles away"]]></title><description><![CDATA[
<p>Hack or not a hack, it shouldn't hit the UI. It's a bug.</p>
]]></description><pubDate>Tue, 16 Dec 2025 16:04:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46290242</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46290242</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46290242</guid></item><item><title><![CDATA[New comment by pkolaczk in "Apple Maps claims it's 29,905 miles away"]]></title><description><![CDATA[
<p>I’ve had that bug a few times. I think it’s related to some roads being closed and/ or under reconstruction. I’ve seen this happen multiple times on the same route, and it always fixed itself after I passed the construction site.</p>
]]></description><pubDate>Sun, 14 Dec 2025 17:57:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46265157</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=46265157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46265157</guid></item><item><title><![CDATA[New comment by pkolaczk in "Garbage collection is useful"]]></title><description><![CDATA[
<p>Technically it's not a <i>pause</i> as the pauses introduced by a typical STW tracing GC. It does not stop the other threads. The app can still continue to work during that cleanup.<p>And it pops up in the profiler immediately with a nice stack trace showing where it rooted from. Then you fix it by e.g. moving cleanup to background to unlock this thread, not cleaning it at all (e.g. if the process dies anyway soon), or just remodel the data structure to not have so many tiny objects, etc.<p>Essentially this is exactly "way more deterministic and easier to understand and model". No-one said it is free from performance traps.<p>> And free itself can be expensive.<p>The total amortized cost of malloc/free is usually much lower than the total cost of tracing; unless you give tracing GC a horrendous amount of additional memory (> 10x of resident live set).<p>malloc/free are especially efficient when they are used for managing bigger objects. But even with tiny allocations like 8 bytes size (which are rarely kept on heap) I found modern allocators like mimalloc or jemalloc easily outperformed modern GCs of Java (in terms of CPU cycles spent, not wall clock).</p>
]]></description><pubDate>Mon, 17 Nov 2025 10:01:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45952260</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=45952260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45952260</guid></item><item><title><![CDATA[New comment by pkolaczk in "Digital ID, a new way to create and present an ID in Apple Wallet"]]></title><description><![CDATA[
<p>We don’t need it in Poland. We’ve been using a similar but official government issued app with ID, driving license, car documents for years now. Works both on Android and iPhone. Can be also used for logging into government web apps like taxes, for document signing or for voting. And it reminds me whenever my car insurance expires or it needs the annual check. Pretty impressive IMHO.</p>
]]></description><pubDate>Wed, 12 Nov 2025 19:04:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45904536</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=45904536</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45904536</guid></item><item><title><![CDATA[New comment by pkolaczk in "Radios, how do they work? (2024)"]]></title><description><![CDATA[
<p>Oh, thanks, good to know. Now I feel more motivated. Because actually it’s not as easy as it looks from the text books. It’s like with drawing an owl. Yeah, pass the signal through a mixer and feed recovered carrier to its LO port and you’re done. Sure. Simple. Now just recover the carrier. So far I have built a PLL that locks to a clean signal but stops locking when the signal is modulated too much. Aargh.</p>
]]></description><pubDate>Thu, 23 Oct 2025 18:10:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45684950</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=45684950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45684950</guid></item><item><title><![CDATA[New comment by pkolaczk in "Radios, how do they work? (2024)"]]></title><description><![CDATA[
<p>You can use a germanium diode or even Shottky now instead of a “crystal”.<p>Such a simple radio can be a gateway drug to a very complex and deep hobby. In my case it went like that:<p>1. Built a simple radio<p>2. Could hardly hear anything, need to add an amplifier to it
3. Now it’s better but captures a lot of noise<p>4. Design a filter to select just that one station<p>5. Now I want to listen to more stations.<p>6. Ugh, you can’t design a good filter with variable frequency. Enter the superheterodyne world.<p>7. Now finally got something that resembles a tunable AM radio, but it kinda whistles / hums a lot. Ah, so the mirror image is  a real thing?!<p>8.  Need a higher IF to be able to better reject the image before the mixer. Ok, let’s make a double conversion superhet then.<p>9. Buy a set of ceramic filters and play with them to get the best selectivity.<p>10. Try to add more amplification only to learn if you go too far you get an oscillator instead of an amplifier.<p>11. The sound level is not stable. Add AGC.<p>12. Pick up some stations from 5000+ km away. Nice. But there is some weird distortion. Oh, I’ve been a culprit of frequency selective fading…<p>Fast forward and now I’m building a PLL synchronized AM product demodulator with a squaring loop for carrier recovery.<p>Fun. Lot of fun! Wholeheartedly recommend!</p>
]]></description><pubDate>Thu, 23 Oct 2025 10:01:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45680149</link><dc:creator>pkolaczk</dc:creator><comments>https://news.ycombinator.com/item?id=45680149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45680149</guid></item></channel></rss>