<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: mahkoh</title><link>https://news.ycombinator.com/user?id=mahkoh</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 04:12:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mahkoh" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mahkoh in "MAUI Is Coming to Linux"]]></title><description><![CDATA[
<p>I doubt there is anything incorrect there. See the note here: <a href="https://wayland.freedesktop.org/docs/book/Message_XML.html#allow-nulltrue--false" rel="nofollow">https://wayland.freedesktop.org/docs/book/Message_XML.html#a...</a></p>
]]></description><pubDate>Sun, 22 Mar 2026 22:25:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47482879</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=47482879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47482879</guid></item><item><title><![CDATA[New comment by mahkoh in "Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)"]]></title><description><![CDATA[
<p>WebGPU seems to be enabled by default in chromium 144 on linux at least on AMD GPUs.</p>
]]></description><pubDate>Wed, 21 Jan 2026 21:01:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46711512</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=46711512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46711512</guid></item><item><title><![CDATA[New comment by mahkoh in "Vm.overcommit_memory=2 is the right setting for servers"]]></title><description><![CDATA[
<p>The point of disabling overcommit, as per the article, is that all pages in virtual memory must be backed by physical memory at all times. Therefore all virtual memory must reserve physical memory at the time of the fork call, even if the contents of the pages only get copied when they are touched.</p>
]]></description><pubDate>Fri, 19 Dec 2025 20:46:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46330705</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=46330705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46330705</guid></item><item><title><![CDATA[New comment by mahkoh in "Problems with D-Bus on the Linux desktop"]]></title><description><![CDATA[
<p>>Back when I was writing xdg-desktop-portal-hyprland, I had to use a few dbus protocols (xdg portals run on dbus) to implement some of the communication. If we go to the portal documentation, we can find the protocols.<p>>[...]<p>>None of the apps, I repeat, fucking none followed the spec. [...]<p>>Fun fact: THIS IS STILL THE CASE! The spec advertises a "restore_token" string prop on SelectSources and Start, where no app does this and uses "restore_data" in "options".<p>Wrong. xdg-desktop-portal has a client API and a compositor API. In the client API the property is called restore_token [1]. In the compositor API the property is called restore_data [2]. Clients do not talk directly to the compositor, they talk to the xdg-desktop-portal application which then talks to the compositor. It is not surprising the the properties would not be called the same.<p>In the documentation the APIs for app developers and desktop developers are clearly separated on the left hand side [3]. Not only does this have nothing to do with DBus (it would apply to every API where a middleware is used to translate messages), it also shows that the author did not do his due dilligence.<p>[1]: <a href="https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.ScreenCast.html#org-freedesktop-portal-screencast-selectsources" rel="nofollow">https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.fr...</a><p>[2]: <a href="https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.impl.portal.ScreenCast.html#org-freedesktop-impl-portal-screencast-selectsources" rel="nofollow">https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.fr...</a><p>[3]: <a href="https://flatpak.github.io/xdg-desktop-portal/docs/" rel="nofollow">https://flatpak.github.io/xdg-desktop-portal/docs/</a></p>
]]></description><pubDate>Mon, 15 Dec 2025 20:28:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46280130</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=46280130</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46280130</guid></item><item><title><![CDATA[New comment by mahkoh in "Valve: HDMI Forum Continues to Block HDMI 2.1 for Linux"]]></title><description><![CDATA[
<p>VESA makes you pay $5000 to get legal access to the DisplayPort standard. That is not the issue here.</p>
]]></description><pubDate>Wed, 10 Dec 2025 19:17:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46222208</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=46222208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46222208</guid></item><item><title><![CDATA[New comment by mahkoh in "Don't "optimize" conditional moves in shaders with mix()+step()"]]></title><description><![CDATA[
<p>a can be a vector of booleans.</p>
]]></description><pubDate>Mon, 10 Feb 2025 09:13:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42998359</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42998359</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42998359</guid></item><item><title><![CDATA[New comment by mahkoh in "Don't "optimize" conditional moves in shaders with mix()+step()"]]></title><description><![CDATA[
<p>The author frames his post to be about education:<p><pre><code>    please correct them for me. The misinformation has been around for 20 years
</code></pre>
But his education will fail as soon as you're operating on more than scalars. It might in fact do more harm than good since it leads the uneducated to believe that mix is not the right tool to choose between two values.</p>
]]></description><pubDate>Sun, 09 Feb 2025 15:53:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=42991396</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42991396</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42991396</guid></item><item><title><![CDATA[New comment by mahkoh in "Don't "optimize" conditional moves in shaders with mix()+step()"]]></title><description><![CDATA[
<p><p><pre><code>    So, if you ever see somebody proposing this

    float a = mix( b, c, step( y, x ) );
</code></pre>
The author seems unaware of<p><pre><code>    float a = mix( b, c, y > x );
</code></pre>
which encodes the desired behavior and also works for vectors:<p><pre><code>    The variants of mix where a is genBType select which vector each returned component comes from. For a component of a that is false, the corresponding component of x is returned. For a component of a that is true, the corresponding component of y is returned.</code></pre></p>
]]></description><pubDate>Sun, 09 Feb 2025 14:22:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=42990854</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42990854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42990854</guid></item><item><title><![CDATA[New comment by mahkoh in "U.K. orders Apple to let it spy on users’ encrypted accounts"]]></title><description><![CDATA[
<p>That assumes that Apple's shareholders believe that Apple's privacy reputation (relative to other companies) is more valuable than access to the UK market.<p>All evidence that I have seen suggests that consumers by and large do not care about this kind of privacy. They do not buy iPhones instead of other phones due to the privacy properties.<p>Therefore Apple's shareholders could order Apple to stay in the UK market.<p>And if not, then Apple's customers could be compensated with money and other UK-held assets that the government could confiscate.</p>
]]></description><pubDate>Fri, 07 Feb 2025 15:55:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=42974105</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42974105</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42974105</guid></item><item><title><![CDATA[New comment by mahkoh in "Markdown's Big Brother: Say Hello to AsciiDoc"]]></title><description><![CDATA[
<p>The problem with asciidoc is that it doesn't support nesting. Markdown allows you to nest constructs as much as you want using syntax that are easy to use for both humans and documentation-generating applications.<p>The asciidoc developers don't seem to consider this an important issue: <a href="https://github.com/asciidoctor/asciidoctor/issues/1121">https://github.com/asciidoctor/asciidoctor/issues/1121</a><p>While asciidoc has some nice constructs, this made it a no go the last time I was looking for a documentation language.</p>
]]></description><pubDate>Thu, 06 Feb 2025 11:30:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=42961361</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42961361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42961361</guid></item><item><title><![CDATA[New comment by mahkoh in "Lord of the Io_uring (2020)"]]></title><description><![CDATA[
<p>>Another one is I could not find a benchmark with io_uring - this would confirm the benefit of going from epoll.<p>One of the advantages of io_uring, unrelated to performance, is that it supports non-blocking operations on blocking file descriptors.<p>Using io_uring is the only method I recall to bypass <a href="https://gitlab.freedesktop.org/wayland/wayland/-/issues/296" rel="nofollow">https://gitlab.freedesktop.org/wayland/wayland/-/issues/296</a>. This issue deals with having to operate on untrusted file descriptors where the blocking/non-blocking state of the file descriptions might be manipulated by an adversary at any time.</p>
]]></description><pubDate>Mon, 06 Jan 2025 09:32:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=42609078</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=42609078</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42609078</guid></item><item><title><![CDATA[New comment by mahkoh in "Evolving GitHub Issues"]]></title><description><![CDATA[
<p>C-f thread<p>0/0<p>We shouldn't hope for the impossible.</p>
]]></description><pubDate>Tue, 01 Oct 2024 14:45:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=41709123</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=41709123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41709123</guid></item><item><title><![CDATA[New comment by mahkoh in "Linux 6.11 Released"]]></title><description><![CDATA[
<p>I've had a few hard crashes (system freezes completely, ssh does not work) over the last two weeks on 6.10.x kernels. I am hoping that it is <a href="https://gitlab.freedesktop.org/drm/amd/-/issues/3142" rel="nofollow">https://gitlab.freedesktop.org/drm/amd/-/issues/3142</a> (and not hardware failure) but I've been unable to capture the kernel panic if it does occur.<p>Never had such an issue before.</p>
]]></description><pubDate>Sun, 15 Sep 2024 18:07:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41549174</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=41549174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41549174</guid></item><item><title><![CDATA[New comment by mahkoh in "Packed structs in Zig make bit/flag sets trivial"]]></title><description><![CDATA[
<p>>The in-memory representation of bit fields is implementation-defined. Therefore, if you’re calling into an external API that takes a uint32_t like in the example without an explicit remapping, you may or may not like the results.<p>>In practice, everything you’re likely to come across will be little endian nowadays, and the ABI you’re using will most likely order your struct from top to bottom in memory, so they will look the same most of the time.<p>Unfortunately it is not that simple:<p><a href="https://github.com/mahkoh/repr-c/blob/0c218ac5a6f82034e649fe749e7a902d7a43e8e0/repc/impl/src/builder/sysv_like/sysv.rs#L51-L162">https://github.com/mahkoh/repr-c/blob/0c218ac5a6f82034e649fe...</a></p>
]]></description><pubDate>Fri, 13 Sep 2024 16:05:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=41532494</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=41532494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41532494</guid></item><item><title><![CDATA[New comment by mahkoh in "Orphaning bcachefs-tools in Debian"]]></title><description><![CDATA[
<p>0.2 and 0.4 are different "major releases" of rust crates as you say. The major release is determined by the first non-0 component in the version number. The issue is that debian appears to only allow one version even if there are multiple major versions.<p>If debian is fine with packaging versions 2.0 and 4.0 but not 0.2 and 0.4, then debian does not understand rust version numbers.</p>
]]></description><pubDate>Sat, 31 Aug 2024 14:51:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=41409293</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=41409293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41409293</guid></item><item><title><![CDATA[New comment by mahkoh in "SDL3 new GPU API merged"]]></title><description><![CDATA[
<p>If control flow statements don't require parentheses to be parseable, doesn't that mean that it is the parentheses that are completely unnecessary?</p>
]]></description><pubDate>Fri, 30 Aug 2024 10:34:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=41399430</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=41399430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41399430</guid></item><item><title><![CDATA[New comment by mahkoh in "GCC's new fortification level: The gains and costs (2022)"]]></title><description><![CDATA[
<p>Provenance might be used as justification now but the actual rules are simpler and stricter. After freeing (or reallocing) a pointer, the application must not inspect the pointer value anymore. Even `new_pointer == old_pointer` is not allowed.<p>IIRC, one justification for this was to account for systems with non-flat memory where inspecting the value of the old pointer might cause a processor exception.</p>
]]></description><pubDate>Wed, 26 Jun 2024 23:37:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=40805770</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=40805770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40805770</guid></item><item><title><![CDATA[New comment by mahkoh in "Show HN: Wag, MFA and Enrollment for WireGuard"]]></title><description><![CDATA[
<p>>IPv4 only.<p>You'd think that sites choosing wireguard would have a more modern setup and might make heavy use of (self service) ULAs.</p>
]]></description><pubDate>Sat, 11 May 2024 11:07:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=40327404</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=40327404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40327404</guid></item><item><title><![CDATA[New comment by mahkoh in "Run0, a systemd based alternative to sudo, announced"]]></title><description><![CDATA[
<p>The linked PoC requires that the attacker already has root so that it can disable the default ptrace protection.</p>
]]></description><pubDate>Wed, 01 May 2024 16:36:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=40225633</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=40225633</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40225633</guid></item><item><title><![CDATA[New comment by mahkoh in "Some Fritz!Box modems might have been hijacked"]]></title><description><![CDATA[
<p>Adding the following to your local systemd.network configuration file should resolve the issue:<p><pre><code>  [DHCPv4]
  UseDNS=false
  
  [DHCPv6]
  UseDNS=false
</code></pre>
But you will have to type the IP of the fritz box when you want to access the admin interface.</p>
]]></description><pubDate>Sun, 21 Apr 2024 15:39:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40106595</link><dc:creator>mahkoh</dc:creator><comments>https://news.ycombinator.com/item?id=40106595</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40106595</guid></item></channel></rss>