<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: ggorlen</title><link>https://news.ycombinator.com/user?id=ggorlen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 17 Sep 2026 12:14:00 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ggorlen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by ggorlen in "Anecdotally, programmers dislike "reduce""]]></title><description><![CDATA[
<p>Reduce is a good illustration of the principle of least power[1]: it's powerful, flexible, general and low-level and can technically achieve any combination of summation, map, filter, find/includes, some/any/every, etc. But reduce is misused if it's reimplementing patterns available in higher-level form.<p>In cases when reduce is required because (for example) JS doesn't have a sum function, it should be kept simple. `arr.reduce((acc, el) => el + acc, 0)` is acceptable if lodash _.sum() is not available.<p>In cases when reduce is required because the higher-level operations like map/filter aren't flexible enough, decompose the reduction operation into simpler steps and use map/filter with multiple passes, or write a traditional for..of loop.<p>This principle also explains why enhanced/range/of loops are preferred over counter-based `for` loops, and counter-based loops over `while`. Technically all loops can be handled by `while`, but it's seldom needed because enhanced loops handle the common case with the cleanest syntax. Reduce/while/counter-based `for` loops are antipatterns where higher-level, less powerful abstractions exists.<p>[1]: <a href="https://wiki.c2.com/?PrincipleOfLeastPower" rel="nofollow">https://wiki.c2.com/?PrincipleOfLeastPower</a></p>
]]></description><pubDate>Thu, 17 Sep 2026 02:24:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49735709</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=49735709</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49735709</guid></item><item><title><![CDATA[New comment by ggorlen in "We’ll be ending web hosting for your apps on Glitch"]]></title><description><![CDATA[
<p>Here's a sampling of the projects I've found on glitch. Many great projects will be lost. Are there any preservation efforts being undertaken?<p><a href="https://magnet-caper.glitch.me/" rel="nofollow">https://magnet-caper.glitch.me/</a><p><a href="https://cave-in.glitch.me/" rel="nofollow">https://cave-in.glitch.me/</a><p><a href="https://hydra-book.glitch.me/" rel="nofollow">https://hydra-book.glitch.me/</a><p><a href="https://fishdraw.glitch.me/" rel="nofollow">https://fishdraw.glitch.me/</a><p><a href="https://generative-placeholders.glitch.me/" rel="nofollow">https://generative-placeholders.glitch.me/</a><p><a href="https://spades.glitch.me/" rel="nofollow">https://spades.glitch.me/</a><p><a href="https://spurious-soup.glitch.me/" rel="nofollow">https://spurious-soup.glitch.me/</a><p><a href="https://likelike.glitch.me/" rel="nofollow">https://likelike.glitch.me/</a><p><a href="https://chordal-ps.glitch.me/" rel="nofollow">https://chordal-ps.glitch.me/</a><p><a href="https://purrdata.glitch.me/" rel="nofollow">https://purrdata.glitch.me/</a><p><a href="https://tempeh.glitch.me/" rel="nofollow">https://tempeh.glitch.me/</a><p><a href="https://dither-cam.glitch.me/" rel="nofollow">https://dither-cam.glitch.me/</a><p><a href="https://conways-webcam.glitch.me/" rel="nofollow">https://conways-webcam.glitch.me/</a><p><a href="https://doodle-jump-html.glitch.me/" rel="nofollow">https://doodle-jump-html.glitch.me/</a><p><a href="https://fragmatic-glsl.glitch.me/" rel="nofollow">https://fragmatic-glsl.glitch.me/</a><p><a href="https://glitch.com/@potch" rel="nofollow">https://glitch.com/@potch</a><p><a href="https://glitch.com/@PatrickWeaver" rel="nofollow">https://glitch.com/@PatrickWeaver</a><p><a href="https://glitch.com/@ggorlen/my-stuff" rel="nofollow">https://glitch.com/@ggorlen/my-stuff</a></p>
]]></description><pubDate>Mon, 26 May 2025 02:11:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=44093307</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=44093307</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44093307</guid></item><item><title><![CDATA[New comment by ggorlen in "Don’t look down on print debugging"]]></title><description><![CDATA[
<p>> print debugging is problematic since the developer has to be diligent about removing it once it is not longer needed.<p>Linters make this a non-issue, and most modern development environments support them.<p><a href="https://eslint.org/docs/latest/rules/no-console" rel="nofollow">https://eslint.org/docs/latest/rules/no-console</a><p><a href="https://docs.astral.sh/ruff/rules/print/" rel="nofollow">https://docs.astral.sh/ruff/rules/print/</a><p>In situations where for whatever reason it's infeasible to use a linter, a basic grep can surface prints in a codebase reliably enough.</p>
]]></description><pubDate>Sat, 23 Nov 2024 14:11:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=42220955</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=42220955</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42220955</guid></item><item><title><![CDATA[New comment by ggorlen in "Avoiding False Positives in Node.js Tests"]]></title><description><![CDATA[
<p>Author here. I'd be happy to hear feedback on the post or noteworthy false positives you've encountered in tests.</p>
]]></description><pubDate>Thu, 21 Nov 2024 03:47:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42200901</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=42200901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42200901</guid></item><item><title><![CDATA[New comment by ggorlen in "Web scraping with your web browser: Why not?"]]></title><description><![CDATA[
<p>I wrote a similar post on in-browser scraping: <a href="https://serpapi.com/blog/dynamic-scraping-without-libraries/" rel="nofollow">https://serpapi.com/blog/dynamic-scraping-without-libraries/</a><p>My approach is a step or two more automated (optionally using a userscript and a backend) and runs in the console on the site under automation rather than cross-origin, as shown in OP.<p>In addition to being simple for one-off scripts and avoiding the learning curve of a Selenium, Playwright or Puppeteer, scraping in-browser avoids a good deal of potential bot detection issues, and is useful for constant polling a site to wait for something to happen (for example, a specific message or article to appear).<p>You can still use a backend and write to file, trigger an email or SMS, etc. Just have your userscript make requests to a server you're running.</p>
]]></description><pubDate>Wed, 02 Oct 2024 05:09:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=41717371</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41717371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41717371</guid></item><item><title><![CDATA[New comment by ggorlen in "Compiling to Assembly from Scratch"]]></title><description><![CDATA[
<p>As is often the case, the title is unfortunately overloaded. I initially read this as writing code in the Scratch programming language[1] that compiles to assembly.<p>[1]: <a href="https://en.wikipedia.org/wiki/Scratch_(programming_language)" rel="nofollow">https://en.wikipedia.org/wiki/Scratch_(programming_language)</a></p>
]]></description><pubDate>Mon, 23 Sep 2024 01:04:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=41621469</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41621469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41621469</guid></item><item><title><![CDATA[New comment by ggorlen in "CS Career fair cancelled at community college because no companies reached out"]]></title><description><![CDATA[
<p>CCSF alum here (AA, completed over 20 CS courses). I attended a similar CCSF job fair in 2017 and there were only 2-3 companies involved even then. If I recall, it was Lawrence Livermore National Lab and Mission Bit, maybe a third that must not have been interesting enough to stay in my memory. There were ~10 students at the fair.<p>The LLNL internship seemed too IT-oriented to interest me. Mission Bit involved teaching high school kids to code after school, which I did for over a year and received course credit at CCSF for.<p>So it's not that surprising to me that they went from ~2 companies to 0, even disregarding the major drop in attendance at CCSF since 2017 [1]. I didn't attend any other fairs so maybe I missed something, but I never got the impression that they were especially "bumping".<p>[1]: <a href="https://sfstandard.com/2022/01/27/by-the-numbers-sf-higher-ed-enrollment-in-6-charts/" rel="nofollow">https://sfstandard.com/2022/01/27/by-the-numbers-sf-higher-e...</a></p>
]]></description><pubDate>Fri, 13 Sep 2024 18:13:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=41533652</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41533652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41533652</guid></item><item><title><![CDATA[New comment by ggorlen in "Ask HN: Is a Masters in CS/Engineering worth it for a mid-career PM?"]]></title><description><![CDATA[
<p>It was the first online cohort of DC so I didn't realize how intensely difficult it'd be. I'd taken GIOS with Ada which was gentle, so I figured DC wouldn't be significantly harder.<p>It was a good life experience even though I wound up sacrificing my 4.0 by a few grade points. In hindsight, had I realized how steep the curve would be for DC, I'd have pushed a bit harder to squeeze out a few more test cases, but I was pretty mentally defeated at the time and felt like I'd exhausted all of the ideas I had on the projects multiple times over.<p>I found DC more difficult than compilers by a wide margin because of the nondeterminism, debugging difficulty and trying to figure out what the test harness was even doing. Compilers involved writing more lines of code, but it was manageable, synchronous greenfield application design.</p>
]]></description><pubDate>Fri, 13 Sep 2024 13:45:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=41531224</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41531224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41531224</guid></item><item><title><![CDATA[New comment by ggorlen in "Ask HN: Is a Masters in CS/Engineering worth it for a mid-career PM?"]]></title><description><![CDATA[
<p>Good to know. <a href="https://www.omscentral.com/" rel="nofollow">https://www.omscentral.com/</a> and talking to other students helped a great deal with planning.<p>Two difficult classes I took together were Embedded Systems Optimization and Compilers, both taught by the same instructor and with similar concepts, so working on one helped solidify concepts in the other.<p>On the other hand, I took Distributed Computing during its first offering alongside Graduate Algorithms and was super overwhelmed.</p>
]]></description><pubDate>Fri, 13 Sep 2024 00:50:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=41527149</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41527149</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41527149</guid></item><item><title><![CDATA[New comment by ggorlen in "Ask HN: Is a Masters in CS/Engineering worth it for a mid-career PM?"]]></title><description><![CDATA[
<p>> Consider that taking 5-10 graduate courses and writing a master's level thesis or project will generally take all of your free time and a bunch of your savings over the course of two or more years. (I sure hope you're not thinking to take on debt for this!)<p>OMSCS graduate. The program certainly ate up most of my free time for 2.5 years, but on the other hand, the whole degree was about $8k for me and required no thesis or capstone project--just grinding through 10 classes worth of assignments and exams. Also, it was 100% online, so that flexibility frees up time.<p>Theoretically, if you do 1-2 easy-ish classes per semester, you can minimize the free time impact. But I was less interested in the credential and more interested in the learning experience, so I took difficult classes and worked as a TA.<p>Caveat: I graduated in 2021 so things may have changed since then.</p>
]]></description><pubDate>Thu, 12 Sep 2024 23:53:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=41526877</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41526877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41526877</guid></item><item><title><![CDATA[New comment by ggorlen in "Japan police: Nearly 4k who died alone at home not found for over a month"]]></title><description><![CDATA[
<p>Related Wikipedia articles:<p>- <a href="https://en.wikipedia.org/wiki/Kodokushi" rel="nofollow">https://en.wikipedia.org/wiki/Kodokushi</a>, the Japanese phenomenon of people dying alone and remaining undiscovered for a long period of time<p>- <a href="https://en.wikipedia.org/wiki/Joyce_Vincent" rel="nofollow">https://en.wikipedia.org/wiki/Joyce_Vincent</a>, a British woman who had been dead over two years before discovery</p>
]]></description><pubDate>Fri, 30 Aug 2024 16:42:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=41402388</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41402388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41402388</guid></item><item><title><![CDATA[New comment by ggorlen in "[dead]"]]></title><description><![CDATA[
<p>Reminds me of Boyd Rice's rotoguitar (a fan attached to a guitar) and the extratone genre (extreme techno kick drums that run so fast they turn into pitched tones).</p>
]]></description><pubDate>Mon, 12 Aug 2024 04:21:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=41221145</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=41221145</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41221145</guid></item><item><title><![CDATA[New comment by ggorlen in "A ChatGPT mistake cost us $10k"]]></title><description><![CDATA[
<p>There wouldn't be much industry if everyone who trusted ChatGPT and other ways of quickly getting code up (copy-pasting Stack Overflow, "try random stuff until it works" debugging, hopping on calls with random freelancers, etc) followed your advice.<p>Many programmers I've encountered in early stage tech startups (and in general) are not craftspeople--they're scrambling to get a product to market as quickly as possible and quality and process are very much secondary. Many are working in unfamiliar languages by necessity, or are relatively new or even untrained as professional programmers. I mentor such folk regularly. (Actually, these untrained hackers are often "better" at programming in many respects than senior engineers with 10 years of experience, but that's another story).<p>If the company survives long enough, they might pay off the tech debt later. OP's team just got unlucky doing the same strategy many other startups are doing nowadays and are willing to admit it.<p>To be clear, I'm not excusing the mistake or endorsing the process they followed, only noting that their actions aren't out of the ordinary (other than admitting to the mistake) and empathy is due.</p>
]]></description><pubDate>Mon, 10 Jun 2024 01:02:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=40629041</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40629041</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40629041</guid></item><item><title><![CDATA[New comment by ggorlen in "Don't Worry about LLMs"]]></title><description><![CDATA[
<p>Thanks for the reminder, but anyone visiting this site on a restricted data plan may be in for a surprise. Websites that download a quarter gigabyte of data without warning is more than an annoyance.<p>How do you suggest I warn others to avoid this site? I don't think it's suitable for HN in its current state.</p>
]]></description><pubDate>Fri, 31 May 2024 02:40:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=40530968</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40530968</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40530968</guid></item><item><title><![CDATA[New comment by ggorlen in "Don't Worry about LLMs"]]></title><description><![CDATA[
<p>Warning: this page loads 234 MB of data! Images are up to 7 MB each.<p><a href="https://pagespeed.web.dev/analysis/https-vickiboykis-com-2024-05-20-dont-worry-about-llms/ey90uxt3x5?form_factor=mobile" rel="nofollow">https://pagespeed.web.dev/analysis/https-vickiboykis-com-202...</a></p>
]]></description><pubDate>Fri, 31 May 2024 02:32:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=40530916</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40530916</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40530916</guid></item><item><title><![CDATA[New comment by ggorlen in "Static Chess"]]></title><description><![CDATA[
<p><a href="https://fav.farm" rel="nofollow">https://fav.farm</a> seems like a cool service at first, but it doesn't actually do a whole lot. I'd just assume inline the one-liner they mention (similar to <a href="https://css-tricks.com/emoji-as-a-favicon/" rel="nofollow">https://css-tricks.com/emoji-as-a-favicon/</a>) and avoid the external dependency for the price of 117 characters.</p>
]]></description><pubDate>Tue, 14 May 2024 00:23:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=40350197</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40350197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40350197</guid></item><item><title><![CDATA[New comment by ggorlen in "Steve Albini has died"]]></title><description><![CDATA[
<p>Zeni Geva deserves more credit, great to see them mentioned. You probably know Neurosis and Melt Banana but those might also be up your alley.<p>Other noteworthy Albini-engineered bands for me: Oxbow, Low, Whitehouse, Labradford, Burning Witch, Godspeed's U.X.O album. Peter Sotos' Buyer's Market is one of the most insane albums I've ever had the displeasure to listen to, and Albini apparently produced it, although I don't hear any obvious influence.</p>
]]></description><pubDate>Thu, 09 May 2024 03:58:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40305184</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40305184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40305184</guid></item><item><title><![CDATA[New comment by ggorlen in "César Aira's Magic"]]></title><description><![CDATA[
<p>I recently read Aira's Fulgentius and found it to be an engaging, tongue-in-cheek meditation (for lack of a better term) on art, history, conquest and nature.<p>I consider Varamo (comedic) and Episode in the Life of a Landscape Painter (tragic) to be standouts among the half-dozen Aira books I've read in English. I imagine a good deal is lost in translation.<p>There's a certain absurd, freewheeling alchemy to his works, but as tends to be the case with improvisation, they're somewhat hit or miss and require a bit of indulgence on the part of the reader. Luckily, they're mostly novella-length and don't wear out their welcome, so I don't mind giving him my time.<p>According to the article, he writes in places like McDonald's, which is comical and unsurprising. Likewise that he's an admirer of Raymond Roussel.<p>I didn't expect that he'd be a Morton Feldman fan, though. His books aren't as methodical, claustrophobic and somber as Feldman's works, but maybe share a similar sense of reflectiveness and focus on small, ephemeral moments.</p>
]]></description><pubDate>Thu, 02 May 2024 02:56:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=40232275</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40232275</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40232275</guid></item><item><title><![CDATA[New comment by ggorlen in "TSAC: Low Bitrate Audio Compression"]]></title><description><![CDATA[
<p>I might be missing something obvious, but it's not clear to me how to get an mp3 out of this on Ubuntu 22.04.<p>Following the docs, `./tsac c myfile.mp3 myfile.tsac` generates a tsac file that's unplayable with mpv. Trying ffmpeg to convert to mp3 didn't work: `ffmpeg -i myfile.tsac compressed.mp3` ("myfile.tsac: Invalid data found when processing input"). Using a wav input file has the same result.<p>I can use `./tsac d myfile.tsac output.wav` (I don't really want to decompress anything, but worth a try) but then after compressing `output.wav` with `ffmpeg -i output.wav output.mp3`, output.mp3 is the same size as if I hadn't used tsac (of course). If I use ffmpeg with a low bitrate like `-b:a 16k`, I get the usual low-quality gargle rather than the tsac output.</p>
]]></description><pubDate>Fri, 19 Apr 2024 19:30:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=40091051</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=40091051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40091051</guid></item><item><title><![CDATA[New comment by ggorlen in "Ugly Avatar"]]></title><description><![CDATA[
<p>Thanks, I appreciate seeing the code! For code with database access, you could use an environment variable from a .env file and gitignore that file, making it safe to share. (you're probably already aware of this practice and may have another reason not to want to push it)</p>
]]></description><pubDate>Mon, 25 Mar 2024 22:49:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=39822119</link><dc:creator>ggorlen</dc:creator><comments>https://news.ycombinator.com/item?id=39822119</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39822119</guid></item></channel></rss>