<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: dmytroi</title><link>https://news.ycombinator.com/user?id=dmytroi</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 27 Jun 2026 06:27:17 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dmytroi" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dmytroi in "Linear Address Spaces: Unsafe at any speed (2022)"]]></title><description><![CDATA[
<p>armv8/VMSAv8-64 has huge table support with optional contiguous bit allowing mapping up to 16GB at a time [0] [1]. Which will result in (almost) no address translations on any practical amount of memory available today.<p>Likely the issue is between most user systems not configuring huge tables and developers not keen on using things they can't test locally. Though huge tables are prominent in single-app servers and game consoles spaces.<p>- [0] <a href="https://docs.kernel.org/arch/arm64/hugetlbpage.html" rel="nofollow">https://docs.kernel.org/arch/arm64/hugetlbpage.html</a>
- [1] <a href="https://developer.arm.com/documentation/ddi0487/latest" rel="nofollow">https://developer.arm.com/documentation/ddi0487/latest</a> (section D8.7.1 at the time of writing)</p>
]]></description><pubDate>Sun, 04 Jan 2026 20:55:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46492093</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=46492093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46492093</guid></item><item><title><![CDATA[New comment by dmytroi in "Modelling the archetype of a message-passing bug with TLA+ (2022)"]]></title><description><![CDATA[
<p>Then it will be too noisy or too slow to be useful due to too many intermediate states. The feature of TLA+ is that it forces you to greatly dumb down the code to be able to use it, so it's more of verifying an algorithm represented as visual graph blocks rather than verifying assembly instructions.<p>I understand the wish for a magic bullet to just verify already existing code, but I recon the answer to this is to verify code before it's even written.</p>
]]></description><pubDate>Thu, 19 Sep 2024 20:57:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=41596311</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=41596311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41596311</guid></item><item><title><![CDATA[New comment by dmytroi in "DiyPresso: DIY Espresso Machine"]]></title><description><![CDATA[
<p>Same here with v3 and now being flabbergasted that my "open" project is suddenly dead-ended. (Re)doing an alternative software for PCB v3 is definitely possible, it just runs into economics, at average hourly rate we would put into it it just cheaper to buy decent espresso machine and move on.</p>
]]></description><pubDate>Fri, 13 Sep 2024 08:23:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41529140</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=41529140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41529140</guid></item><item><title><![CDATA[New comment by dmytroi in "Swimmable Cities"]]></title><description><![CDATA[
<p>Some popular in inner city: Tanto strandbad, Långholmsbadet, Smedsuddsbadet, Fredhällsbadet, Kristinebergsbadet, Brunnsviksbadet. Plenty of folks swim during hot periods in summer.</p>
]]></description><pubDate>Fri, 13 Sep 2024 08:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=41529035</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=41529035</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41529035</guid></item><item><title><![CDATA[New comment by dmytroi in "Adding 16 kb page size to Android"]]></title><description><![CDATA[
<p>Also ELF segment alignment, which is defaults to 4k.</p>
]]></description><pubDate>Fri, 23 Aug 2024 17:54:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41331295</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=41331295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41331295</guid></item><item><title><![CDATA[New comment by dmytroi in "Unreal Engine 5 ported to WebGPU"]]></title><description><![CDATA[
<p>UE5 dropped support for 32 bit platforms, so at the moment not without some code changes.<p>WebAssembly is working on adding support for 64 bit address space though.</p>
]]></description><pubDate>Thu, 15 Feb 2024 20:48:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=39388579</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=39388579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39388579</guid></item><item><title><![CDATA[New comment by dmytroi in "Hardware Intrinsics in .NET 8"]]></title><description><![CDATA[
<p>C# has support for unsafe code / pointer arithmetic / memory pinning / unmanaged types [1]. Using them it's possible to write performant computations where needed.<p>- [1] <a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/unsafe-code" rel="nofollow noreferrer">https://learn.microsoft.com/en-us/dotnet/csharp/language-ref...</a></p>
]]></description><pubDate>Tue, 19 Dec 2023 11:37:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=38694396</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=38694396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38694396</guid></item><item><title><![CDATA[New comment by dmytroi in "Setenv Is Not Thread Safe and C Doesn't Want to Fix It"]]></title><description><![CDATA[
<p>Mostly integration, for example some library can only be configured via env variables, but a developer might want to configure it from with-in the app it's integrated into and used from.<p>Also, few weeks ago I found a use for them when trying to pass configuration from Java/Kotlin to C++ library to be used during static constructors (invoked during dlopen) on Android, because at that phase native code cannot call back to JVM.</p>
]]></description><pubDate>Mon, 20 Nov 2023 08:54:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=38345027</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=38345027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38345027</guid></item><item><title><![CDATA[New comment by dmytroi in "Software that supports your body should always respect your freedom"]]></title><description><![CDATA[
<p>100% agree for "read only" software, like scanning, diagnostics, etc.<p>Control software is much more involved topic, let me illustrate it with a scenario: one family member is non-techy but has an insulin pump, another family member is techy and likes to hack around, they made a change to the insulin pump software to "improve it", but by accident the change triggered insulin overdose at night during sleep and family member died. We have rules and regulations not just to have rules and regulations, we have rules and regulations because they are written in blood.<p>While advocating for ability to freely modifying any life dependant control software is a noble goal, in my opinion it's the wrong end to approach it, instead it would be more constructive if we as computer science industry figure out ways how to make software such as we don't kill people, how to "certify" it in self service fashion (validation passed == no-one will die), etc, it's no trivial and it feels this particular part of our industry is not as developed/main stream as compared to something like civil engineering. If we have easy ways to ensure that modifying software will not lead to death then it will be easier to change the legislation to enforce this freedom.</p>
]]></description><pubDate>Sat, 04 Nov 2023 20:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=38144809</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=38144809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38144809</guid></item><item><title><![CDATA[New comment by dmytroi in "Linux on the Arm-Based ThinkPad X13S: Getting There"]]></title><description><![CDATA[
<p>AFAIK Android updates are not as fast as they could be due to need for mobile operators to re-certify every update as the OS blob contains modem firmware. Apple is able to update iOS faster because modem firmware is separate from the rest of iOS. Hence having open source drivers in the kernel will not improve the situation much.</p>
]]></description><pubDate>Fri, 08 Sep 2023 12:16:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=37432544</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=37432544</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37432544</guid></item><item><title><![CDATA[New comment by dmytroi in "WASM: Big deal or little deal?"]]></title><description><![CDATA[
<p>WASM itself is likely to be successful in some niches, the industry has a know-how for bytecode VM's and integration with LLVM will make it stick for a long while. My bet are computation kernels for web, and porting whole native apps to web browsers via emscripten.<p>WASI is probably doomed to fail, so far it was proven to be challenging to make "write once run everywhere" API, for example it's difficult to abstract over epoll vs IOCP vs io_uring without reinventing libuv, but making a standard out of libuv API will make adopting any platform changes too slow, because of losing control over the implementation of the API. Having a single standard implementation where the industry is collaborating might be a better way, similar to how .NET is an abstraction over platform API.</p>
]]></description><pubDate>Tue, 05 Sep 2023 11:41:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=37390401</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=37390401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37390401</guid></item><item><title><![CDATA[New comment by dmytroi in "Bad Apple Font"]]></title><description><![CDATA[
<p>A font is processed by software, one part of the font rendering stack is converting a string into glyphs and their positions, other part is rasterizing glyphs into bitmap. In this case one library from the stack, HarfBuzz [1], got the support for, I assume, an extension to OpenType format, that allows to embed an extra section into the file [2]. So HarfBuzz can open these special OpenType files and make run wasm embedded into them. Which means software based on it, like Chrome browser or Android, will also be open these font files, but Windows likely not.<p>- [1] <a href="https://en.wikipedia.org/wiki/HarfBuzz" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/HarfBuzz</a>
- [2] <a href="https://www.phoronix.com/news/HarfBuzz-8.0" rel="nofollow noreferrer">https://www.phoronix.com/news/HarfBuzz-8.0</a></p>
]]></description><pubDate>Thu, 31 Aug 2023 11:00:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=37335279</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=37335279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37335279</guid></item><item><title><![CDATA[New comment by dmytroi in "Bad Apple Font"]]></title><description><![CDATA[
<p>In theory, a font is purely set of vector graphics. In practice, just rasterizing vector graphics usually doesn't lead to good results on small font sizes combined with small pixel density, so vector graphics needs to be adjusted to better fit into pixel grid. There are multiple ways to do it, one of the ways is to write a script to adjust graphics so it better fits the pixel grid. For example TypeType fonts contain a virtual machine that is capable of just that [1]. By conceptual extension, then a font format might just as well contain a full blown virtual machine with potentially a program per glyph, WASM is a reasonable candidate for something like that.<p>- [1] <a href="https://learn.microsoft.com/en-us/typography/truetype/hinting-tutorial/hinting-and-truetype-instructions" rel="nofollow noreferrer">https://learn.microsoft.com/en-us/typography/truetype/hintin...</a></p>
]]></description><pubDate>Wed, 30 Aug 2023 13:33:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=37321906</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=37321906</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37321906</guid></item><item><title><![CDATA[New comment by dmytroi in "The halting problem is decidable on a set of asymptotic probability one (2006)"]]></title><description><![CDATA[
<p>Self recursion is not solvable if assuming stack is unlimited, which is never a case in reality. Stack on real computers is usually limited to a fixed size (100-1000kb). Another way to look at it, take all possible bits on a real computer, so all of RAM, all of storage, etc and then iterate over all possible values of it, it will be 2^bits possible values, sure it's a large value but it's still bounded. So it's possible to iterate over all possible states of any program on bounded computer in a bounded time. Hence why it's possible to decide if any program halts on any real computer in bounded time.<p>Sure one can say input is coming from a network stream then what? For practical issues then we can limit input size to N bits ... For theoretical issues we can discuss if there is a difference between halting or waiting for more input :)</p>
]]></description><pubDate>Thu, 01 Jun 2023 08:04:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=36148618</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=36148618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36148618</guid></item><item><title><![CDATA[New comment by dmytroi in "The halting problem is decidable on a set of asymptotic probability one (2006)"]]></title><description><![CDATA[
<p>Let's take the _complete_ program state (input, output, RAM, program counter, stack, registers, rand gen entropy source state, etc) and for every possible such state make a node in a graph. Then when we execute a given program for a given state, we get one edge to the next program state node. Then deciding if program halts or not is answering a question if graph has a node with no outgoing edges. It's also possible to build such graphs for programs that never halt. That's the basic idea behind TLA+.<p>So it's definitely possible to decide halt problem for a bounded computer (any physical computer), it's just not practical in most cases, e.g. amount of memory needed to store graph of all states be bigger than amount of matter in the universe, etc.</p>
]]></description><pubDate>Mon, 29 May 2023 12:22:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=36113249</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=36113249</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36113249</guid></item><item><title><![CDATA[New comment by dmytroi in "Success Story: Chip-Scale Atomic Clock (2020)"]]></title><description><![CDATA[
<p>Richard Hoptroff was prototyping the idea of a wrist watch [1], though the company pivoted into networking equipment later on.<p>- [1] <a href="https://www.hodinkee.com/articles/richard-hoptroffs-atomic-watch-prototype-combines" rel="nofollow">https://www.hodinkee.com/articles/richard-hoptroffs-atomic-w...</a></p>
]]></description><pubDate>Sun, 02 Jan 2022 10:11:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=29767412</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=29767412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29767412</guid></item><item><title><![CDATA[New comment by dmytroi in "Going forward, Unity devs will need Unity Pro to publish on consoles"]]></title><description><![CDATA[
<p>Unity is completely irrelevant here, your first question should be "Will Sony give me the software and the hardware to make a PS3 game/software?" and answer in 2021 will most likely be hard no because PS3 is so old at this point (remember that retail console is not a devkit nor a testkit). Which only leaves homebrew toolchains to explore, and they are not supported by any of big engines today.</p>
]]></description><pubDate>Thu, 05 Aug 2021 18:20:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=28077520</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=28077520</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28077520</guid></item><item><title><![CDATA[New comment by dmytroi in "The Next Car You Buy Should Be Electric"]]></title><description><![CDATA[
<p>It almost almost starts to work with latest models. I just got Kona 64KWh version last week and my math was among the lines of: it can do 400km/250miles of realistic driving, I do need a 20-40 min break after 400-500km anyway, that is enough to charge it up on fast charger to continue my trip. Kona is not ideal because it needs 40-50 min to charge, but Tesla Model 3, VW id.3/id.4 and others can do 125kwh+ charge rates so can charge in <30min. I think I'll stay with Kona for 2-3 years and then jump to something that can charge faster.<p>So math of getting to destination starts to work, then you get to destination charging and that is more tricky. The car wants 16KWh per 100km, and charging from power socket you can realistically pull 1.6-2KWh, so overnight you can expect to be able to charge 100km of range without much of infrastructure (without level 2 chargers I mean).<p>So my conclusion is that it's not plug-and-play just yet, but it nearly works, and benefits of electrics starts to outweigh the disadvantage of looking for a power socket.</p>
]]></description><pubDate>Tue, 29 Jun 2021 08:15:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=27673219</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=27673219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27673219</guid></item><item><title><![CDATA[New comment by dmytroi in "The free lunch is over: a fundamental turn toward concurrency in software (2005)"]]></title><description><![CDATA[
<p>My 5 cents would be wrong abstraction and wrong tooling, let me elaborate a bit of them:<p>- Current abstractions are mostly based on POSIX threads and C++/Java memory models. I think they are poorly representing what is actually happening in hardware. For example Acquire barrier in C++ makes it really hard to understand that in hardware it equals to a flush of invalidation queue of the core, to sanity check your understanding try answering the question "do you need memory barriers if you have multithreaded application (2+ threads) running a lock-free algorithm on a single core?", correct answer is no, because same core always sees it's own writes as they would happen in program order, even if OOO pipeline would reorder them. Or threads, they seem to be an entity that can either run or stop, but in hardware there are no threads, CPU just jumps to a different point in memory (albeit through rings 3->0->3). Heck even whole memory allocation story, we have generations of developers thinking about memory allocation and it's safety, yet hardware doesn't have that concept at all, memory range mapping concept would be the closest to what MMU actually does. Hence the impedance mismatch between hardware and current low level abstractions created a lot of developers who "know" how all of this works but doesn't actually know, and a bit afraid to crush through layers. I want more engineers to not be afraid and be comfortable with all low level bits even if they would never touch them, because one day you will find a bug like broken compare-exchange implementation in LLVM or similar.<p>- Tooling is way off, the main problem with multithreading is that it's all "in runtime" and dynamic, for example if I'm making a lockfree hashmap, the only way for me to get into the edgecases of my algorithm (like two threads trying to acquire same token or something) is to run a bruteforce test between multiple threads and wait until it actually happens. Bruteforce-test-development scales very poorly, and testing something like consensus algorithms for hundreds of threads is just a nightmare of complexity of test fixtures involved. Then you get into ok, so how much testing is enough? How do you measure coverage? Lines of code? Branches? Threads-per-line? When are you sure that your algorithm is correct? Don't get me wrong, I've seen it multiple times, simple 100 lines of code passing tons of reviews only for me to find a race condition (algorithmical one) half a year later, and now it's deployed everywhere and very costly to fix. Another way would be to skip all of that and start modeling your algorithms first, TLA+ is one of the better tools for that out there, prove that your model is correct, and then implement it. Using something like TLA+ can make your multithreading coding a breeze in any language.<p>And probably absence of transactional memory also contributes greatly, passing 8 or 16 bytes around atomically is easy, but try 24 or 32? Now you need to build out an insanely complicated algorithm that involves a lot of mathematics just to prove that it's correct.</p>
]]></description><pubDate>Mon, 28 Jun 2021 12:47:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=27661207</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=27661207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27661207</guid></item><item><title><![CDATA[New comment by dmytroi in "Microsoft Game Development Kit (GDK)"]]></title><description><![CDATA[
<p>GDK is on a same level as iOS SDK, you use it to develop for Xbox. Before it there was Xbox Development Kit (XDK). The difference now is Microsoft is more keen on bringing PC and Xbox development to one SDK, hence why GDK.<p>Any game or game engine (like Unity or Unreal) which wants to run on Xbox natively is required to use GDK. But the details are only available to licensed developers.</p>
]]></description><pubDate>Thu, 24 Jun 2021 21:16:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=27623880</link><dc:creator>dmytroi</dc:creator><comments>https://news.ycombinator.com/item?id=27623880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27623880</guid></item></channel></rss>