<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: hks0</title><link>https://news.ycombinator.com/user?id=hks0</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 08:46:04 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hks0" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hks0 in "Didgeridoo playing as alternative treatment for obstructive sleep apnoea (2006)"]]></title><description><![CDATA[
<p>I asked them: twice a day, 10 minutes each. No need to put too much pressure, that is, no need to make yourself uncomfortable during practice. Weight loss & less snoring should appear within a few months ;)</p>
]]></description><pubDate>Fri, 29 May 2026 06:30:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48319765</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48319765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48319765</guid></item><item><title><![CDATA[New comment by hks0 in "Didgeridoo playing as alternative treatment for obstructive sleep apnoea (2006)"]]></title><description><![CDATA[
<p>Sadly the (non-english) whatsapp group is no longer available. There wasn't really more to it; you had to practice circular breathing daily and post an update. But the teacher wanted to create membership schemes and make extra money, so people left.</p>
]]></description><pubDate>Thu, 28 May 2026 13:05:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48308422</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48308422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48308422</guid></item><item><title><![CDATA[New comment by hks0 in "Didgeridoo playing as alternative treatment for obstructive sleep apnoea (2006)"]]></title><description><![CDATA[
<p>Depression</p>
]]></description><pubDate>Thu, 28 May 2026 12:54:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48308264</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48308264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48308264</guid></item><item><title><![CDATA[New comment by hks0 in "Didgeridoo playing as alternative treatment for obstructive sleep apnoea (2006)"]]></title><description><![CDATA[
<p>Just learned from comments here it's called "circular breathing"!</p>
]]></description><pubDate>Mon, 25 May 2026 08:14:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264596</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48264596</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264596</guid></item><item><title><![CDATA[New comment by hks0 in "Didgeridoo playing as alternative treatment for obstructive sleep apnoea (2006)"]]></title><description><![CDATA[
<p>A friend of mine started "blowing air into water with an straw" (making bubbles) very seriously. I was very skeptical to say the least; but after a couple of months the effects have been very eye opening. Not only it has helped sleep apnea and snoring but also helped with reducing their weight. They had an online group and most participants reported the same. The wight loss was reverted when they stopped for some personal reasons. I wonder if making bubbles in the water has the same effect.</p>
]]></description><pubDate>Mon, 25 May 2026 08:12:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264586</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48264586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264586</guid></item><item><title><![CDATA[New comment by hks0 in "Halt and Catch Fire"]]></title><description><![CDATA[
<p>I had an old projector; If the film roll stopped for any reason (operator error, getting stuck, etc...), the lamp was so bright that it'd catch fire.</p>
]]></description><pubDate>Sun, 17 May 2026 08:53:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48167168</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48167168</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48167168</guid></item><item><title><![CDATA[New comment by hks0 in "Building ML framework with Rust and Category Theory"]]></title><description><![CDATA[
<p>I'll remove the comment then</p>
]]></description><pubDate>Fri, 15 May 2026 09:55:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48146642</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48146642</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48146642</guid></item><item><title><![CDATA[New comment by hks0 in "Building ML framework with Rust and Category Theory"]]></title><description><![CDATA[
<p>Off topic, removed</p>
]]></description><pubDate>Fri, 15 May 2026 09:01:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48146239</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=48146239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48146239</guid></item><item><title><![CDATA[New comment by hks0 in "Hidden Overheads (2023)"]]></title><description><![CDATA[
<p>> Locals which the programmer desires to be spilled could be annotated, making the performance cost visible in the source.<p>> I’ve never heard of anyone asking for such a feature.<p>Nevertheless we have/had it (for the other way around though): <a href="https://en.wikipedia.org/wiki/Register_(keyword)" rel="nofollow">https://en.wikipedia.org/wiki/Register_(keyword)</a></p>
]]></description><pubDate>Sun, 08 Mar 2026 06:25:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47295065</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=47295065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47295065</guid></item><item><title><![CDATA[New comment by hks0 in "Green lumber fallacy in software engineering (2022)"]]></title><description><![CDATA[
<p>{Personal experience} many many years when beginning SWE, I used to think the same. I didn't want to admit but it meant I didn't have to learn DSA. There was plenty of evidence to back me up with the same thinking as this article. Life happened and I had to painfully spend time and slowly learn it. Comparing the person before & after, the difference in my software building skills were very tangible. Sadly I cannot point it out and say "I'm wiser and I know how not to make a mess in the codebase, because I learned such & such algorithm and data structures" yet I can fully imagine how the previous person would've been lost in the jungle.<p>{Less of personal experience but more of a anecdotal observation} I see the same pattern in hiring. Those who know DSA, build systems that cost less overal.<p>So maybe it's better not to throw DSA right out out the window, but also not stick to either ends of the spectrum?</p>
]]></description><pubDate>Sun, 22 Feb 2026 20:36:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47114398</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=47114398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47114398</guid></item><item><title><![CDATA[New comment by hks0 in "I found a vulnerability. they found a lawyer"]]></title><description><![CDATA[
<p>Proton let's me bring my own subdomain for those random emails and does a pretty good job of tracking which email is given to whom, and also supports hiding your email even if you want to initiate the email contact, not just reply (plus scheme in mail address doesn't allow this). Otherwise you can also use their domain too, to stay fully anonymous.<p>So far I've been happy. I hope I'll stay happy.</p>
]]></description><pubDate>Sat, 21 Feb 2026 16:52:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47102423</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=47102423</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47102423</guid></item><item><title><![CDATA[New comment by hks0 in "Untapped Way to Learn a Codebase: Build a Visualizer"]]></title><description><![CDATA[
<p>I always thought to do this visualization in 3d and maybe with VR. Not sure how useful or pleasing experience it would be. Kudos to the author of the project to get this done!</p>
]]></description><pubDate>Fri, 20 Feb 2026 12:38:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47087265</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=47087265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47087265</guid></item><item><title><![CDATA[New comment by hks0 in "“Nothing” is the secret to structuring your work"]]></title><description><![CDATA[
<p>I think it's where one plugs the external world into in their brain. For my daily work, I plug the desktop to my current thought stream (or short term memory?). Anything not immediately relevant to what I'm thinking about is an unnecessary speed bump or stutter in my speech, which means minimal window decoration, no status bars, ... and anything not visible can be summoned by a quick single "label" somehow, not by navigating a structure. This is more similar to what the author suggested.<p>{And if I'm getting what you said correctly}
What you described, is similar to how I organize my drawers in my room. Everything is visible at once, but navigating them usually takes 2 or 3 steps. Without this visual map I'm completely lost.</p>
]]></description><pubDate>Thu, 12 Feb 2026 07:33:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46985862</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=46985862</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46985862</guid></item><item><title><![CDATA[New comment by hks0 in "Bash scripts are brittle – simple error handling in bash"]]></title><description><![CDATA[
<p>I declare a `my_die() { echo "$<i>" 1>&2; exit 1; }` on top of each file. Makes life easier by knowing why the script failed instead of having only exit code or having to turn `set -x` on and rerun.<p>Only if I could somehow mix `if` & `set -e`in a readable way... I wanted it to only capture errors of explicit `return 1` from bash functions, not from commands within those bash functions. But I guess I'm doing </i>too much* of the job in bash now and it's getting messy.</p>
]]></description><pubDate>Sat, 07 Feb 2026 08:44:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46922341</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=46922341</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46922341</guid></item><item><title><![CDATA[New comment by hks0 in "The Problem of Teaching Physics in Latin America (1963)"]]></title><description><![CDATA[
<p>I agree with your both of your observations; And I also think what's missing is the acknowledgement that connects the two. Students come with the expectation of "chew it for me" and schools have the expectation of "I'm going to throw the material at you, you can & will handle it yourself".<p>But it doesn't need to be that hopeless. Learning is a skill and schools <i>can</i> help each individual find the ways working best for them. Starting by not packing gazillion number of people in a class.</p>
]]></description><pubDate>Mon, 15 Dec 2025 09:01:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46271990</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=46271990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46271990</guid></item><item><title><![CDATA[New comment by hks0 in "F-Droid and Google’s developer registration decree"]]></title><description><![CDATA[
<p>At the time, the banks weren't app first. It was USSD, SMS and web, so they didn't care.<p>But yes, the banking and streaming apps too (regardless of their existence being good or bad or even justified) are yet another nail on that coffin.</p>
]]></description><pubDate>Tue, 30 Sep 2025 11:59:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45424404</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=45424404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45424404</guid></item><item><title><![CDATA[New comment by hks0 in "Delete FROM users WHERE location = 'Iran';"]]></title><description><![CDATA[
<p>Correction: half a century.</p>
]]></description><pubDate>Mon, 29 Sep 2025 06:41:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45410941</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=45410941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45410941</guid></item><item><title><![CDATA[New comment by hks0 in "F-Droid and Google’s developer registration decree"]]></title><description><![CDATA[
<p>Reminds me of Nokia/Symbian. To install a `.sis(x)` with any useful capabilities (permissions in Android) one needed to sign it with Nokia's keys; which they normally couldn't, at least with non-business email addresses. Until someone found a way to hack the roms and it became a Tom&Jerry struggle between hackers & Nokia who wanted to suffocate them by patching those loopholes.<p>Then came Android. The freedom to sideload any `.apk` on any device was magical. And now we've come full circle.<p>Except that Symbian wasn't source-available, so there was a bigger hope for a successful rebelion.</p>
]]></description><pubDate>Mon, 29 Sep 2025 06:40:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45410934</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=45410934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45410934</guid></item><item><title><![CDATA[New comment by hks0 in "Delete FROM users WHERE location = 'Iran';"]]></title><description><![CDATA[
<p>No country should generally decide something for people of another country, but let's say it's a exceptional case and it's a war tactic, as a response to an external threat.<p>Then half a decade shows that point is not relevant or, the overthrowing is not the point at all.<p>I too wished the wolrd was that simple. But there are dictatorships, who kill, slaughter, coerce, ... and also all the international affairs from which those people are kept an outsider with zero say by the said government. I don't think we can reduce it to "it's people's fault".</p>
]]></description><pubDate>Tue, 23 Sep 2025 06:05:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45343299</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=45343299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45343299</guid></item><item><title><![CDATA[New comment by hks0 in "Geedge and MESA leak: Analyzing the great firewall’s largest document leak"]]></title><description><![CDATA[
<p>The original PoC I had was incredibly simple: Just a python script that read traffic on a port on localhost, rotate each byte by a hard-coded number like 13, and send it over the wire. The counter part would run on the target server, read the byte and undo the rotation. It has zero (minus?) cryptographic security, but that's not the purpose here anyway. The PoV forwarder was transparent and could only tunnel port 22 of target server to 22000 of localhost.<p>Later I made a more elaborate version where it implemented its own HTTP and SOCKS4/5 proxy servers; I think you won't like it :D I wrote it in Java using Netty more than a decade ago, and published to Github when I relocated. Using Java I could run it directly as an android app or on a PC more easily.<p>This is the project: <a href="https://github.com/hkoosha/massrelay" rel="nofollow">https://github.com/hkoosha/massrelay</a><p>Using Netty's vocabulary: If you add one extra HTTP handler to the pipeline, you get what I initially implemented in various forms:<p>- An HTTP handler that reads a header, say `Cache-Control: max-age=N` where N is the rotN to rotate bytes.
- Next handler that starts rotating traffic bytes with the given `N`<p>For favicon-as-packet, my implementation was again with massrelay project but I forgot all the details. It shouldn't be hard: Netty keeps track of the connection state (packet number, etc...) and the handlers wrap/unwrap the traffic within favicon as transferred within HTTP channel.<p>Netty is a beautiful framework. I see you made your warps project in go, so the concepts might make more time to implement if you want to translate directly to a go project; Or you can just forget about massrelay and implement within your go project from scratch the way it makes sense, since the idea is pretty itself simple.<p>(That being said, I think GWF has advanced a lot, that's why something proper like v2ray works better now).</p>
]]></description><pubDate>Sun, 14 Sep 2025 14:26:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45239967</link><dc:creator>hks0</dc:creator><comments>https://news.ycombinator.com/item?id=45239967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45239967</guid></item></channel></rss>