<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: zlynx</title><link>https://news.ycombinator.com/user?id=zlynx</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 04 Jun 2026 09:23:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zlynx" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zlynx in "Stop mocking your system"]]></title><description><![CDATA[
<p>If you have a web API that returns a 200 OK with a JSON object with a missing entry when an item is not found, instead of a 404 error, then you have a bug in your API.<p>But you cannot allow it to change because your users are relying on the existing behavior.</p>
]]></description><pubDate>Mon, 05 Jul 2021 01:57:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=27734080</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27734080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27734080</guid></item><item><title><![CDATA[New comment by zlynx in "Avoiding Complexity with Systemd"]]></title><description><![CDATA[
<p>The people who matter, who write init scripts, in other words the distro maintainers, were happy to switch.<p>Why else do you think so many distributions switched?<p>Yes, the resistance is noisy and stubborn Unix neckbeards. Not even Unix, since every other Unix had something similar to systemd already. LINUX neckbeards.</p>
]]></description><pubDate>Sun, 27 Jun 2021 22:28:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27656063</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27656063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27656063</guid></item><item><title><![CDATA[New comment by zlynx in "Avoiding Complexity with Systemd"]]></title><description><![CDATA[
<p>The journalctl binary format seems to handle corruption pretty well. That was a design criteria.<p>Everyone forgets or tries to ignore that text files ARE A BINARY FORMAT. It is encoded in 7-bit ASCII with records delimited by 0x0a bytes.<p>Corruption tends to be missing data, and so the reader has to jump ahead to find the next synchronization byte, aka 0x0a. This also leads to log parsers producing complete trash as they try to parse a line that has a new timestamp right in the middle of it.<p>Or there's a 4K block containing some text and then padded to the end with 0x00 bytes. And then the log continues adding more after reboot. Again, that's fixed by ignoring data until the next non-zero byte and/or 0x0a byte. This problem makes it really obvious that text logs are binary files.<p>See the format definition at <a href="https://www.freedesktop.org/wiki/Software/systemd/journal-files/" rel="nofollow">https://www.freedesktop.org/wiki/Software/systemd/journal-fi...</a><p>And here, this isn't perfect but if you had to hack out the text with no journalctl available you could try this:<p>grep -a -z 'SYSLOG_TIMESTAMP=\|MESSAGE=' /var/log/journal/69d27b356a94476da859461d3a3bc6fd/system@4fd7dfdde574402786d1a1ab2575f8fb-0000000001fc01f1-0005c59a802abcff.journal  | sed -e 's/SYSLOG_TIMESTAMP=\|MESSAGE=/\n&/g'</p>
]]></description><pubDate>Sun, 27 Jun 2021 21:59:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=27655865</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27655865</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27655865</guid></item><item><title><![CDATA[New comment by zlynx in "Star Citizen Progress Tracker v1.0"]]></title><description><![CDATA[
<p>That isn't exactly switching engines. That's the Vulkan renderer they're working on. It is a component of the same engine they're already using.</p>
]]></description><pubDate>Fri, 25 Jun 2021 16:06:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=27632534</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27632534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27632534</guid></item><item><title><![CDATA[New comment by zlynx in "Did Windows 10 slow down with each feature update?"]]></title><description><![CDATA[
<p>LOL! No, the HDD never was reasonably fast. Our expectations changed.<p>I booted up an old Windows XP box about two years ago before recycling it. It took almost TWO MINUTES to finish booting to the desktop. Some kind of fairly standard 500 GB Western Digital Blue drive. No, I don't know if it had ever been defragmented or had its TEMP files cleared or had old driver modules removed... It was just slow.</p>
]]></description><pubDate>Mon, 21 Jun 2021 18:58:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=27582698</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27582698</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27582698</guid></item><item><title><![CDATA[New comment by zlynx in "Did Windows 10 slow down with each feature update?"]]></title><description><![CDATA[
<p>I have a Windows virtual machine that was doing this to me a lot, and making Ubuntu reboots take a long time, and then requiring a disk check after the unclean shutdown.<p>I found a registry key that tells Windows to force stop apps that block shutdown. I may lose an unsaved document once in a while but I would have lost it anyway, and I am pretty good about saving things when necessary.<p>HKEY_CURRENT_USER\Control Panel\Desktop AutoEndTasks REG_SZ 1</p>
]]></description><pubDate>Mon, 21 Jun 2021 18:41:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=27582382</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27582382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27582382</guid></item><item><title><![CDATA[New comment by zlynx in "Did Windows 10 slow down with each feature update?"]]></title><description><![CDATA[
<p>Not counting BIOS time it is about 5 seconds to Windows login on my Windows with NVMe systems. It does take about 20 seconds after login for it to finish loading all of the tiny startup notification icons, but that's actually intentional by Windows so it does not overload and prevent you from launching the apps you want. After login I can click on the web browser or email and it will launch instantly for me.<p>If you are doing a lot of waiting look into getting an SSD for your boot drive.<p>Or you're running some kind of corporate security product that is going to a remote server for "Mother, may I launch this?" on every EXE and DLL.</p>
]]></description><pubDate>Mon, 21 Jun 2021 18:28:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=27582154</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27582154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27582154</guid></item><item><title><![CDATA[New comment by zlynx in "The Ransomware Problem Is a Bitcoin Problem"]]></title><description><![CDATA[
<p>I believe the benefits of cryptocurrency outweigh problems.<p>I <i>like</i> having options that can be anonymous, don't require banks, immune to government influence, and even completely outside any law. Because laws are not always moral and <i>should</i> be ignored and evaded.<p>That's freedom. Having it is worth the significant amount of problems that come along with it.</p>
]]></description><pubDate>Fri, 04 Jun 2021 20:14:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=27398591</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27398591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27398591</guid></item><item><title><![CDATA[New comment by zlynx in "How to look at the stack with gdb"]]></title><description><![CDATA[
<p>Old tools stay around because they are good tools.<p>See windbg also.</p>
]]></description><pubDate>Fri, 21 May 2021 01:28:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=27229530</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27229530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27229530</guid></item><item><title><![CDATA[New comment by zlynx in "Before the iPhone, I worked on a few games for what were called "feature phones""]]></title><description><![CDATA[
<p>But it would be transpiled so the programmer would never need to look at the very ugly stuff. The idea reminds me of the original asm.js</p>
]]></description><pubDate>Thu, 20 May 2021 21:13:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=27227361</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27227361</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27227361</guid></item><item><title><![CDATA[New comment by zlynx in "Undefined behavior in C is a reading error"]]></title><description><![CDATA[
<p>> Wouldn’t all sequence points executed before undefined behavior is encountered be required to occur as if the undefined behavior wasn’t there? It would seem so:<p>No. Code optimization is a series of logic proofs. It is like playing Minesweeper. If a revealed square has 1 neighboring mine and a count of 1, then you know that all 7 other squares are safe. In other Minesweeper situations you make a proof that is much more complex and allows you to clear squares many steps away from a revealed mine. If you make a false assumption of where a mine is, via a faulty proof, then you explode.<p>The compiler is exactly like that. "If there is only one possible code path through this function, then I can assume the range of inputs to this function, then I can assume which function generated those inputs..."<p>You can see how the compiler's optimization proof goes "back in time" proving further facts about the program's valid behavior.<p>If the only valid array indexes are 0 and 1 then the only valid values used to compute those indexes are those values that produce 0 and 1.<p>This isn't even program execution. In many cases the code is collapsed into precomputed results which is why code benchmarking is complicated and not for beginners. Many naive benchmark programs collapse 500 lines of code and loops into "xor eax,eax; ret;" A series of putchar, printf and puts calls can be reduced to a single fwrite and a malloc/free pair can be replaced with an implicit stack alloca because all Standard Library functions are known and defined and there is no need to actually call them as written.</p>
]]></description><pubDate>Thu, 20 May 2021 20:47:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=27227018</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27227018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27227018</guid></item><item><title><![CDATA[New comment by zlynx in "Before the iPhone, I worked on a few games for what were called "feature phones""]]></title><description><![CDATA[
<p>Your other choices are:<p>- Never GC via using object pools. This code is nastier than C++ because Java is not intended to be used this way.<p>- GC whenever needed randomly. The game will just pause occasionally. Very annoying as a player.<p>- Write the actual game in C++. Make a few JNI calls here and there. On feature phones I only remember this being possible for some vendor apps.</p>
]]></description><pubDate>Thu, 20 May 2021 16:05:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=27222954</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27222954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27222954</guid></item><item><title><![CDATA[New comment by zlynx in "Building a Space-Based ISP"]]></title><description><![CDATA[
<p>It is about making money. Starlink is a money generating system that makes use of low cost launch made possible by SpaceX.<p>If it does use up most of the low orbit space it is because SpaceX is the only company that is even capable of launching that many satellites and making money on it. Until there is another challenger there is zero point in complaining, because competition is not even an option.<p>Since it is low orbit it is self limiting problem. Any low orbit satellite has a limited lifetime of a few years without power.</p>
]]></description><pubDate>Wed, 12 May 2021 17:20:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=27132777</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27132777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27132777</guid></item><item><title><![CDATA[New comment by zlynx in "FragAttacks: new security vulnerabilities that affect wi-fi devices"]]></title><description><![CDATA[
<p>Build better walls. Don't try to outlaw people "looking at you", no matter what frequency they use.<p>I find it equally ridiculous to try to outlaw software radio that might listen to "unapproved" radio bands, or listening to clear-text WiFi, baby monitors and cell phones.<p>It's almost as stupid as people who would want brain implant computers to implement DRM so people can't record and share their own memory of a movie.<p>Another analogy would be a country of blind people trying to legislate sighted people wearing blindfolds, because all of their privacy fences have huge holes in them.<p>Technology improves people's abilities. Adapt.</p>
]]></description><pubDate>Wed, 12 May 2021 06:39:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27127381</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27127381</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27127381</guid></item><item><title><![CDATA[New comment by zlynx in "ABI Mistakes"]]></title><description><![CDATA[
<p>Copy-on-write is exactly what G++ and libstdc++ did with std::string before C++11 changed the spec. And it was terrible and full of bugs.<p>I remember how I had to solve a pile of thread bugs in a C++ project by changing string assignments into iterator constructors which would bypass the GNU CoW reference counter.<p>They tried, and tried, but never quite succeeded in fixing every single possible race condition with the reference count CoW implementation.</p>
]]></description><pubDate>Sun, 09 May 2021 03:24:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=27092959</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27092959</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27092959</guid></item><item><title><![CDATA[New comment by zlynx in "Use Alacritty instead of Termite"]]></title><description><![CDATA[
<p>Some applications using OpenGL or Vulkan and Wayland compositing end up with latency related to one or two frames of the screen refresh. Which means that characters appear onscreen much faster on a 144 or 240 Hz display.<p>Not really a surprise but something to be aware of.</p>
]]></description><pubDate>Sat, 08 May 2021 02:57:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=27083358</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27083358</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27083358</guid></item><item><title><![CDATA[New comment by zlynx in "Linux and Glibc API Changes"]]></title><description><![CDATA[
<p>I like to nitpick and point out gets() can be used safely, as a stunt.<p>Memory map a read/write page and after that memory map a no-permissions guard page. Now you can safely use gets() to read a page size string without allowing a buffer overflow.</p>
]]></description><pubDate>Wed, 05 May 2021 19:06:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=27054243</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27054243</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27054243</guid></item><item><title><![CDATA[New comment by zlynx in "Stars that race through space at nearly the speed of light"]]></title><description><![CDATA[
<p>In relativity, everything is relative. You can choose any "rest frame" that you like and all the math still works out.<p>For the star, from its point of view its mass has not changed at all. So yes fusion still works.</p>
]]></description><pubDate>Mon, 03 May 2021 00:52:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=27020506</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=27020506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27020506</guid></item><item><title><![CDATA[New comment by zlynx in "Linus Torvalds on Rust support in kernel"]]></title><description><![CDATA[
<p>Yes, if allocation failure is not tested, it is not likely to work correctly. SQLite is also famous for its strict and complete test sets.</p>
]]></description><pubDate>Fri, 16 Apr 2021 15:30:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=26835097</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=26835097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26835097</guid></item><item><title><![CDATA[New comment by zlynx in "You can now turn on Nvidia's excellent noise cancellation with any GeForce GPU"]]></title><description><![CDATA[
<p>Being good as headphones does not necessarily make a headset bad as a microphone.<p>I have a set of Bluetooth Plantronics Backbeat PRO. There is no boom mic, but everyone I have talked to on cell phone with them has said they sound good. Even when I am out for a walk they filter out all the vehicle noise and wind.</p>
]]></description><pubDate>Wed, 07 Apr 2021 21:22:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=26731515</link><dc:creator>zlynx</dc:creator><comments>https://news.ycombinator.com/item?id=26731515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26731515</guid></item></channel></rss>