<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: tych0</title><link>https://news.ycombinator.com/user?id=tych0</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 31 May 2026 17:22:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=tych0" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by tych0 in "The Qtile Window Manager: A Python-Powered Tiling Experience"]]></title><description><![CDATA[
<p>[disclaimer, maintainer here]<p>> Doesn't this require the environment to be owned by root? Doesn't it make more sense to leave things that are in /opt as root-owned anyway? (Or at least, change them back after running the installation as an unprivileged user.)<p>No, it doesn't require that, it just means your user-owned binary will be exec'd by root. But if you want the root -> user owned indirection, you can set `Exec=/etc/X11/xinit/Xsession`, which will exec your ~/.xsession as your user, and then you can keep a local install.<p>> Will any random greeter program just naturally pick up the contents of /usr/share/xsessions, then?<p>Ones that support x11 do, yes.<p>> So does it just ignore all your other dotfiles? Can I safely just try this out regardless of my usual WM/DE choices?<p>We try to read XDG_* things where relevant, e.g. themes and icons. But generally yes, once you point your xsession at qtile, we only use our config file.</p>
]]></description><pubDate>Fri, 21 Nov 2025 15:55:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46005652</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=46005652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46005652</guid></item><item><title><![CDATA[New comment by tych0 in "Debugging a FUSE deadlock in the Linux kernel"]]></title><description><![CDATA[
<p>> Hi Tycho. I was The Guy at LSS who tested positive for COVID about 12 hours after we sat next to each other at that Japanese restaurant in Vancouver the week before last. I really hope you didn't catch it. So far, to my knowledge, my "blast radius" is just me.<p>Hi Mike. So far so good for me.<p>> It looks like you were able to figure things out through some combination of /proc poking, code inspection, and LKML querying. Out of curiosity, would it be feasible for you to have tried enabling some of the kernel hacking options such as WQ_WATCHDOG or DETECT_HUNG_TASK? Do you think that would have sped up your investigation?<p>We do have these both enabled, and have alerts to log them in the fleet. I have found it very useful for saying "there's a bug", but not generally applicable in debugging it. However, we wouldn't catch these things without user reports if we didn't have those tools.<p>Something that might (?) be useful is something like lockdep when there's hung tasks. It wouldn't have helped in this case, since it was a bug in signals wakeup, but I e.g. in the xfs case I cited at the bottom maybe it would.</p>
]]></description><pubDate>Sun, 21 May 2023 14:29:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=36021230</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=36021230</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36021230</guid></item><item><title><![CDATA[New comment by tych0 in "Debugging a FUSE deadlock in the Linux kernel"]]></title><description><![CDATA[
<p>> Or am I misunderstanding you?<p>Oh, I see, you're suggesting exactly,<p>> (Another maybe-interesting thing would be to just delete that check.)<p>I agree.</p>
]]></description><pubDate>Fri, 19 May 2023 22:49:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=36007697</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=36007697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36007697</guid></item><item><title><![CDATA[New comment by tych0 in "Debugging a FUSE deadlock in the Linux kernel"]]></title><description><![CDATA[
<p>> Couple of things: 1. Should prepare_to_wait_event check if the task is in PF_EXITING, and if so, refuse to wait unless a specific flag is provided? I'd be curious if you just add a kprobe to prepare_to_wait_event that checks for PF_EXITING, how many cases are valid?<p>I would argue they're all invalid if PF_EXITING is present. Maybe I should send a patch to WARN() and see how much I get yelled at.<p>> Shouldn't it wake up, even if in its in PF_EXITING, that would trigger as reassessment of the condition, and then the `__fatal_signal_pending` check would make it return -ERESTARTSYS.<p>No, because the signal doesn't get delivered by complete_signal(). wants_signal() returns false if PF_EXITING is set. (Another maybe-interesting thing would be to just delete that check.) Or am I misunderstanding you?<p>> Shouldn't it be "ShdPnd"<p>derp, fixed, thanks.</p>
]]></description><pubDate>Fri, 19 May 2023 22:44:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=36007646</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=36007646</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36007646</guid></item><item><title><![CDATA[New comment by tych0 in "Debugging a FUSE deadlock in the Linux kernel"]]></title><description><![CDATA[
<p>I think they definitely should not. I've considered sending a patch that adds a WARN() or some syzkaller test for it or something, especially now that I've seen it in other filesystems.</p>
]]></description><pubDate>Fri, 19 May 2023 21:51:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=36007239</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=36007239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36007239</guid></item><item><title><![CDATA[New comment by tych0 in "Debugging a FUSE deadlock in the Linux kernel"]]></title><description><![CDATA[
<p>Author here (hi Sargun), it's not really about rediscovering killable vs. unkillable waits, and any confusion is probably a result of my poor writing.<p>The crux of it is that once you've called exit_signals() from do_exit(), signals will not get delivered. So if you subsequently use the kernel's completions or other wait code, you will not get the signal from zap_pid_ns_processes(), so you don't know to wake up and exit.<p>There's a test case here if people want to play around: <a href="https://github.com/tych0/kernel-utils/tree/master/fuse2">https://github.com/tych0/kernel-utils/tree/master/fuse2</a></p>
]]></description><pubDate>Fri, 19 May 2023 21:34:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=36007110</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=36007110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36007110</guid></item><item><title><![CDATA[New comment by tych0 in "An overview of single-purpose Linux distributions"]]></title><description><![CDATA[
<p>docker-the-company maintained <a href="https://github.com/linuxkit/linuxkit">https://github.com/linuxkit/linuxkit</a> when I worked there. I have no idea who maintains it now, but it looks like it is still active (presumably still docker-the-company, since their adopters list [1] lists docker desktop).<p>[1]: <a href="https://github.com/linuxkit/linuxkit/blob/master/ADOPTERS.md">https://github.com/linuxkit/linuxkit/blob/master/ADOPTERS.md</a></p>
]]></description><pubDate>Fri, 17 Feb 2023 19:37:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=34839308</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=34839308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34839308</guid></item><item><title><![CDATA[New comment by tych0 in "FTX tapped into customer accounts to fund risky bets, setting up its downfall"]]></title><description><![CDATA[
<p>And at least in SBF/Alameda's case, they did, and you can google it. IIUC it was basic arbitrage, the hard part was figuring out how to interface with Japan's banks.<p>Maybe the guy is a bad dude, I don't have a horse in that race. But lots of trading strategies that have worked in the past are well known.</p>
]]></description><pubDate>Thu, 10 Nov 2022 20:28:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=33552801</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=33552801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33552801</guid></item><item><title><![CDATA[New comment by tych0 in "The history of sending signals to Unix process groups"]]></title><description><![CDATA[
<p>Use the freezer cgroup to freeze everything, then kill it all off however you like.</p>
]]></description><pubDate>Tue, 06 Sep 2022 17:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=32740484</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=32740484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32740484</guid></item><item><title><![CDATA[New comment by tych0 in "Oracle is the #1 contributor to the core of Linux in 5.18"]]></title><description><![CDATA[
<p>> Could it be that some Oracle employed contributors are using a different email when submitting pull requests?<p>Yes, and if you contribute from an e-mail address that Greg K-H's scripts don't understand, you get an e-mail from him asking you to disclose your employer if you're willing.<p>Some companies mandate you contribute from your corporate address, and it is impossible to contribute from some corporate e-mail accounts, since they don't allow SMTP access for use with git send-email. For example, my understanding is that this is the reason for the linux.ibm.com subdomain, though someone at IBM can probably elaborate.<p>LWN's numbers are probably pretty close to accurate, as I think most people disclose. I haven't read TFA, but I guess Oracle is counting only commits to kernel/+fs/+net/ or something like that.</p>
]]></description><pubDate>Tue, 19 Jul 2022 14:03:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=32151583</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=32151583</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32151583</guid></item><item><title><![CDATA[New comment by tych0 in "Show HN: Porting OpenBSD Pledge() to Linux"]]></title><description><![CDATA[
<p>> Note that seccomp has limited visibility into recvmsg / sendmsg args because bpf can't dereference syscall arg pointers.<p>I guess landlock can't help you here since it is still mostly about filesystem access right now, but maybe someday? It looks like "minimal network access control" is on the long term roadmap: <a href="https://landlock.io/" rel="nofollow">https://landlock.io/</a></p>
]]></description><pubDate>Thu, 14 Jul 2022 19:51:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=32100699</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=32100699</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32100699</guid></item><item><title><![CDATA[New comment by tych0 in "PyCon US 2022 Highlights"]]></title><description><![CDATA[
<p>Hi Matt, speaking of PyCon, thanks for your talk on Qtile many years ago. It remains one of the funniest lightning talks I've seen, and also influenced my talk style to some degree.<p><a href="https://youtu.be/r_8om4dsEmw" rel="nofollow">https://youtu.be/r_8om4dsEmw</a></p>
]]></description><pubDate>Tue, 10 May 2022 22:54:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=31333722</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=31333722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31333722</guid></item><item><title><![CDATA[New comment by tych0 in "The Colorado Safety Stop is the law of the land"]]></title><description><![CDATA[
<p>I have news for you: drivers don't think laws apply to them either. I've nearly been killed several times because of it, and I know people who have been killed.<p>RIP Dan Spira, one of the faster guys in Denver at the time of his death: <a href="https://www.bicyclecolorado.org/join-us/donate/remembering-dan/" rel="nofollow">https://www.bicyclecolorado.org/join-us/donate/remembering-d...</a><p>Thanks to Bicycle Colorado's advocacy, perhaps I won't have drivers intentionally trying to side swipe me next time I ride through stop signs in a safe (and legal!) manner.</p>
]]></description><pubDate>Fri, 15 Apr 2022 15:41:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=31041466</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=31041466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31041466</guid></item><item><title><![CDATA[New comment by tych0 in "Debian still having trouble with merged /usr"]]></title><description><![CDATA[
<p>> Files that were previously in /usr/bin or in /bin can now be found in EITHER of these locations, since one symlinks the other. So no previous expectation was really broken.<p>I don't know, I just hit breakage the other day. I have /usr/bin before /usr in my path (which is the default on Ubuntu at least); I have muscle memory to use dpkg -S `which $foo` to figure out which package a binary is, but that doesn't work if dpkg thinks the binary is in /bin (e.g. ping), since it'll ask dpkg who installed /usr/bin/ping, which is nobody.<p>It is small fiddly things like this all over people's packaging and personal scripts that break.</p>
]]></description><pubDate>Wed, 06 Apr 2022 15:48:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=30933519</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30933519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30933519</guid></item><item><title><![CDATA[New comment by tych0 in "Degoogle: Alternatives to Google products, privacy tips, tricks, links"]]></title><description><![CDATA[
<p>Fastmail has great calendar (CalDAV), contacts (whatever the open protocol for this is) support in addition to their e-mail. I migrated from Google Calendar & friends several years ago and have had no issues.</p>
]]></description><pubDate>Wed, 02 Mar 2022 17:17:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=30529824</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30529824</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30529824</guid></item><item><title><![CDATA[New comment by tych0 in "Fork() is evil; vfork() is goodness; afork() would be better; clone() is stupid"]]></title><description><![CDATA[
<p>The problem with this argument is that the set of programs that just fork() and then exec() is fairly small. Sure, shells are small and do this, but then the article argues that shells are a good use of fork().<p>In larger programs, you're forking because you need to diverge the work that's going to be done and probably where it's going to be done (maybe you want to create a new pid ns, you need a separate mm because you're going to allocate a bunch, whatever). Maybe the argument is that programs should never do this? I don't buy that. Then there's a lot of string-slinging through exec().</p>
]]></description><pubDate>Mon, 28 Feb 2022 18:09:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=30502956</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30502956</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30502956</guid></item><item><title><![CDATA[New comment by tych0 in "Is it time to remove reiserfs?"]]></title><description><![CDATA[
<p>In my experience, integration with products is not really that hard. I've used sqlite3 bindings in half a dozen languages over the years, and they are generally fairly robust.</p>
]]></description><pubDate>Wed, 23 Feb 2022 15:27:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=30442038</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30442038</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30442038</guid></item><item><title><![CDATA[New comment by tych0 in "Linux kernel heap buffer overflow in fs_context.c since version 5.1"]]></title><description><![CDATA[
<p>Yeah, I'd just use whatever the output of ./scripts/get_maintainer.pl says. It will also suggest any recent committers to that area of the code, which I've found useful in the past. Usually I put the maintainers as To:, and everyone else as Cc:.</p>
]]></description><pubDate>Thu, 20 Jan 2022 20:58:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=30014877</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30014877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30014877</guid></item><item><title><![CDATA[New comment by tych0 in "Linux kernel heap buffer overflow in fs_context.c since version 5.1"]]></title><description><![CDATA[
<p>I'd say sending the patch with git send-email --in-reply-to=<the header of your last email> is good. A patch is much easier to apply than write :)</p>
]]></description><pubDate>Thu, 20 Jan 2022 20:30:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=30014404</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30014404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30014404</guid></item><item><title><![CDATA[New comment by tych0 in "Linux kernel heap buffer overflow in fs_context.c since version 5.1"]]></title><description><![CDATA[
<p>Standard advice is to wait two full weeks, then bump your thread (or rebase the patch and send a v2 if there's new conflicts with the maintainer's tree).</p>
]]></description><pubDate>Thu, 20 Jan 2022 18:19:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=30012557</link><dc:creator>tych0</dc:creator><comments>https://news.ycombinator.com/item?id=30012557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30012557</guid></item></channel></rss>