<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: i15e</title><link>https://news.ycombinator.com/user?id=i15e</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 13 Jul 2026 00:41:34 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=i15e" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by i15e in "Interview with Mitchell Hashimoto about Ghostty and Zig"]]></title><description><![CDATA[
<p>I'm not seeing any <i>?</i> marks in my code. Are you referring to the instances of <i>$'\t'</i>? In bash (and other shells, including recent versions of the POSIX sh specification) <i>$'...'</i> is treated like a C-style string complete with backslash escape sequences, so <i>$'\t'</i> is a way to have a tab character as a part of a command argument.</p>
]]></description><pubDate>Fri, 10 Jul 2026 19:33:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48864204</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=48864204</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48864204</guid></item><item><title><![CDATA[New comment by i15e in "Interview with Mitchell Hashimoto about Ghostty and Zig"]]></title><description><![CDATA[
<p>A variant:<p><pre><code>  docker image ls -a | stdbuf -oL sed -r 's/\s{2,}/\t/g' | { head -n1; tail -n+2 | sort -hrk5 -t$'\t'; } | column -ts$'\t'
</code></pre>
I used <i>docker</i> since that's what I have installed and I assume the output is equivalent.<p><i>sort</i>'s <i>-t</i> is set to tab for field separation.<p><i>stdbuf</i> sets <i>sed</i>'s output to only buffer a line at a time and flush, so the <i>head</i> in the <i>{...}</i> command group doesn't completely consume <i>stdin</i>'s contents before it's passed to <i>tail</i>.<p>The <i>column</i> command recreates the space-aligned table based on tab-delimited input.</p>
]]></description><pubDate>Fri, 10 Jul 2026 18:06:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48863206</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=48863206</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48863206</guid></item><item><title><![CDATA[New comment by i15e in "Ask HN: Extendable" Shell Commands?"]]></title><description><![CDATA[
<p>You can use <i>Ctrl+z</i> to suspend the foreground process, <i>bg</i> to resume it in the background, and then <i>wait</i> to wait for it to complete. By default <i>wait</i> will wait for all jobs to finish and then return a success exit code, however if you give it a specific job ID it will instead return the exit code of the waited-on process:<p><pre><code>    $ (sleep 10; false)
    ^Z
    [1]+  Stopped                 ( sleep 10; false )
    $ wait %% && echo ok || echo nok
    [1]+  Exit 1                  ( sleep 10; false )
    nok</code></pre></p>
]]></description><pubDate>Thu, 11 Dec 2025 23:10:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=46238645</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=46238645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46238645</guid></item><item><title><![CDATA[New comment by i15e in "WinDirStat – Windows Directory Statistics"]]></title><description><![CDATA[
<p>You could install the Google Drive client and then run WinDirStat against the virtual drive letter that it creates:<p><a href="https://support.google.com/drive/answer/10838124" rel="nofollow">https://support.google.com/drive/answer/10838124</a></p>
]]></description><pubDate>Thu, 23 May 2024 13:58:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40454817</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=40454817</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40454817</guid></item><item><title><![CDATA[New comment by i15e in "What We're Working on in Firefox"]]></title><description><![CDATA[
<p>In Firefox you can go to about:profiles to easily open new windows using other profiles. I bookmark that page with a keyword for quick access. (Also see about:about for a list of other handy 'about' pages)<p>A more classic-style profile switcher is available via the '-P' (or '-ProfileManager') command-line switch. If FF is in your $PATH you can run:<p><pre><code>  firefox -P
</code></pre>
The '-P' switch can also take an argument of a profile name to open it directly.<p>But yes, it would be nice if at least one of these options were exposed in the UI so it was more discoverable by users.</p>
]]></description><pubDate>Wed, 22 May 2024 14:23:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=40441395</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=40441395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40441395</guid></item><item><title><![CDATA[New comment by i15e in "Beej's Quick Guide to GDB (2009)"]]></title><description><![CDATA[
<p><i>gf2</i> is worth looking at: <a href="https://github.com/nakst/gf">https://github.com/nakst/gf</a></p>
]]></description><pubDate>Mon, 06 Nov 2023 03:09:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=38158347</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=38158347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38158347</guid></item><item><title><![CDATA[New comment by i15e in "Exploratory data analysis for humanities data"]]></title><description><![CDATA[
<p>Something to watch out for with <i>nl</i> is that by default it doesn't number empty lines. e.g.:<p><pre><code>  $ printf 'one\n\nthree\n' | nl
     1  one

     2  three
</code></pre>
Set <i>-ba</i> to enable numbering all lines.<p>For this use case I usually end up running <i>cat -n</i> instead since I find it easier to remember.</p>
]]></description><pubDate>Fri, 06 Oct 2023 20:11:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=37795680</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=37795680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37795680</guid></item><item><title><![CDATA[New comment by i15e in "A terminal case of Linux"]]></title><description><![CDATA[
<p>Your original command should work fine.<p><i>find</i> does not pass arguments through an intermediate shell, so there are no quoting concerns with regard to spaces in filenames, etc.<p>And with the form of <i>-exec</i> terminated by a <i>;</i> it runs a single command for each matching filesystem entry, so there will be no issues with exceeding the maximum argument size.<p>You can verify via <i>strace</i>:<p><pre><code>  $ touch 'a b.md' 'c d.md'
  $ strace -fe execve find . -iname '*.md' -exec unbuffer ls {} \;
</code></pre>
At the end of the exec chains you should see the following:<p><pre><code>  execve("/bin/ls", ["ls", "./c d.md"] ...
  execve("/bin/ls", ["ls", "./a b.md"] ...
</code></pre>
The filenames are being passed through spaces and all.<p>However if this were a real scenario, a better solution might be:<p><pre><code>  find . -iname '*.md' -exec unbuffer ls -1 {} +
</code></pre>
(Look up the <i>-1</i> flag for <i>ls</i>, and the <i>+</i> variant of <i>-exec</i> for <i>find</i> for details)</p>
]]></description><pubDate>Tue, 30 May 2023 17:07:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=36127447</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=36127447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36127447</guid></item><item><title><![CDATA[New comment by i15e in "Teleforking a Process onto a Different Computer"]]></title><description><![CDATA[
<p>I did something similar using the 'at' daemon's 'now' time specification to "fork" off background tasks from a web request using the same .php file. It actually worked well for what I needed at the time!</p>
]]></description><pubDate>Mon, 27 Apr 2020 00:21:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=22991644</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=22991644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22991644</guid></item><item><title><![CDATA[New comment by i15e in "Tell HN: Toilet paper, hand sanitizer, and now web cams"]]></title><description><![CDATA[
<p>Another plus of DroidCam is that it supports streaming the video over USB so no WiFi is necessary.</p>
]]></description><pubDate>Wed, 08 Apr 2020 18:17:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=22815484</link><dc:creator>i15e</dc:creator><comments>https://news.ycombinator.com/item?id=22815484</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22815484</guid></item></channel></rss>