<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: komon</title><link>https://news.ycombinator.com/user?id=komon</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 28 Oct 2026 22:29:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=komon" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by komon in "Tell HN: Steamcmd doesn't work on Apple Silicon"]]></title><description><![CDATA[
<p>Can't you just run it under Rosetta?</p>
]]></description><pubDate>Fri, 23 Oct 2026 12:37:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=50208034</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=50208034</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50208034</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: Learning practical system design"]]></title><description><![CDATA[
<p>Effective system design comes from understanding the constraints of the problem, understanding the constraints of technologies you could use to solve the problem, and understanding what parts of your solution needs to change as those constraints change.<p>For instance, a web crawler. Establish your boundaries right away. You can't crawl the entire web right out the gate, so you need to decide where to stop. 1M pages? 1B? Does your crawler run continuously, or in batches, on a schedule? Are you concerned with avoiding crawling duplicate links? How often do you want to revisit links you've seen before? Are you going to limit page sizes you'll keep? Are you keeping images and other files, or only HTML content? Do you need to be able to execute JavaScript? How do you want to access the results: search, machine learning, analytics, etc? How many requests for those results do you expect in a given time frame? What's the maximum time you'd like to wait for a response?<p>All of these questions will affect your system design.<p>Take those answers and do some napkin math to figure out the scale you're working with.<p>If you are crawling only 1M pages and keeping only the HTML of pages 50kB in size you can easily use any database off the shelf with little tuning, for pretty much any use case (modulo response time requirements). For allowing larger files and images you'll probably want to reach for commercial object storage (unless you're a whizzkid file server guy), and if you're crawling a billion links you'll likely need to think carefully about horizontal scale and partitioning, and if you need to provide search or analytical processing you'll likely want to bring in specialized data stores, which means setting up some pipes to connect them through replication or batch processing...<p>It goes on and on like that. You need a broad knowledge of the capabilities and limitations of different softwares across various categories to understand what your options are and when the complication of adding them would be warranted. I find it helps to understand the historical context under which they were first developed, so that you can understand the problem they were trying to solve.<p>In general, I've had the misfortune of not being the dumbest guy in the room at any given time, so I've not received much in the way of mentorship. I've had to mostly learn by doing, which gives me a particular bias towards building over buying and avoiding bringing in new software dependencies where I can help it.<p>I encourage you to learn by doing as well, even if you stop around the first or second roadblock, or about the time you start needing to spend your own money to go further. Maybe try implementing things locally in a way that doesn't let you do more from your personal machine per se, but instructs you in the complication of setting up e.g. kafka or elastic search, and their benefits and tradeoffs.<p>Think hard about how you would monitor the system to make sure it's working well, think about the dashboard you'd want to see to assure you of the health of the system. Think about where the bottlenecks to performance would be. Think about what you'd change to ensure it stays up 99.999% of the time, even when you're deploying changes to it or scaling up the database. Think about what you'd need to do to ensure that you never lose data.<p>And then read other people's experiences, but remember to take a grain of salt with you. People like to talk a big game, you'll hear people say that tool XYZ is the ONLY choice for a serious project and... that may or may not be true. Depends on the scale.<p>But usually in system design interviews people want you to whip out all the keywords and show you know why you're using them and what they're for. So when prepping for those, don't be afraid to say "streaming CDC events with debezium and kafka" instead of "batch job loading new records from postgres" or w/e, as long as it's applicable and you can justify it.<p>System design interviews also tend to revolve around a few categories of problems (web crawling/search, Google docs, building social media feeds, etc etc) so reading other people's answers for those will start giving you the flavor.<p>I give the system design interviews at my company (well, now I mostly train other people how to do them) so usually I look for people to ask this constraint questions, show breadth of knowledge, reveal where they're strongest by going deep on a few topics, and the more senior they are the more I want them to lead the conversation and ask me questions rather than the other way around. I don't really expect people to come in and deliver a rote-memorized google-scale answer off the top of their head, and tbh I'd be really suspicious if they did.</p>
]]></description><pubDate>Sat, 10 Oct 2026 01:42:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=50028674</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=50028674</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50028674</guid></item><item><title><![CDATA[New comment by komon in "FDA clears blood test to aid evaluation for Alzheimer's disease"]]></title><description><![CDATA[
<p>I think you need FDA clearance to be able to market a test as actually being effective for treatment/prevention etc. For exactly the same reason woo-woo supplements must disclaim that they aren't intended for that purpose</p>
]]></description><pubDate>Mon, 24 Aug 2026 13:54:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49419832</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=49419832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49419832</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: Any advice on pivoting out of VC-backed tech?"]]></title><description><![CDATA[
<p>These are mutually exclusive states, actually.<p>The "chance at making FU money" and "100% more work/stress" and "losing funding or... goes bust and can't make payroll", that's stuff that happens at startups that are paying _below_ the VC-backed market rate.<p>Once a company gets money to be paying employees in the third hump of the trimodal distribution of SWE pay, those "exciting" parts are long gone. You're no longer in the running to receive a hilarious amount of money should everything 10-100x, and you're no longer worried about going bust and not making payroll.<p>Even a pre-series A startup I worked at saw the writing on the wall with 5 months of runway left and switched from trying to get funded to finding an M&A deal. At the very least you can get the team acquired by someone in the expansion phase and get the rare chance to interview as a group and compare notes and have an exec try and negotiate your salary _up_ for once.<p>By the time a startup is paying VC-backed market rate, the level of stress you have just comes from the usual suspects: management, culture toxicity, etc. some of that you can absorb, some might prompt you to find a new job, just like normal.<p>There's still a level of "hoo-rah, we're a startup" present of course, but I just consider this a bad attempt to keep the magic of when the company and products were small alive. I let it affect me none.</p>
]]></description><pubDate>Mon, 13 Oct 2025 14:23:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45568656</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=45568656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45568656</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: How did low contrast text become so pervasive?"]]></title><description><![CDATA[
<p>$JOB-2 got sued over website accessibility. The way these cases go is someone uses the WAVE browser extension to identify accessibility issues, and anything yellow or red becomes part of the cause of action. IIRC we settled out of court.<p>We were pretty large, big-name online merchandise retailer. Definitely put our heels to the fire on giving the frontend a design refresh.</p>
]]></description><pubDate>Wed, 02 Jul 2025 22:32:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=44449541</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=44449541</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44449541</guid></item><item><title><![CDATA[New comment by komon in "OpenBSD now enforcing no invalid NUL characters in shell scripts"]]></title><description><![CDATA[
<p>A reference to Postel's Law: be conservative in what you produce and liberal in what you accept.<p>The law references that you should strive to follow all standards in your own output, but you should make a best effort to accept content that may break a standard.<p>This is useful in the context of open standards and evolving ecosystems since it allows peers speaking different versions of a protocol to continue to communicate.<p>The assertion being made here is that the world has become too fraught with exploiting this attitude for it to continue being a useful rule</p>
]]></description><pubDate>Tue, 24 Sep 2024 14:13:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41636663</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=41636663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41636663</guid></item><item><title><![CDATA[New comment by komon in "Clang vs. Clang"]]></title><description><![CDATA[
<p>> Is there some reason a cryptographic algorithm developer must track the latest release of a compiler?<p>Tracking the latest release is important because:<p>1. Distributions build (most? all?) libraries from source, using compilers and flags the algorithm authors can't control<p>2. Today's latest release is the base of tomorrow's LTS.<p>If the people who know most about these algorithms aren't tracking the latest compiler releases, then who else would be qualified to detect these issues before a compiler version bearing a problematic optimization is used for the next release of Debian or RHEL?<p>> Logically, therefore, must we not also expect CPU designers to 
also forego changes that could alter timing behavior?<p>Maybe? [1]<p>> freezing all compiler development<p>There are many, many interesting areas of compiler development beyond incremental application of increasingly niche optimizations.<p>For instance, greater ability to demarcate code that is intended to be constant time. Or test suites that can detect when optimizations pose a threat to certain algorithms or implementations. Or optimizing the performance of the compiler itself.<p>Overall I agree with you somewhat. All engineers must constantly rail against entropy, and we are doomed to fail. But DJB is probably correct that a well-reasoned rant aimed at the community that both most desires and most produces the problematic optimizations has a better chance at changing the tide of opinion and shifting the rate at which all must diminish than yelling at chipmakers or the laws of thermodynamics.<p>[1]<a href="https://en.m.wikipedia.org/wiki/Spectre_(security_vulnerability)" rel="nofollow">https://en.m.wikipedia.org/wiki/Spectre_(security_vulnerabil...</a></p>
]]></description><pubDate>Sun, 04 Aug 2024 07:25:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=41151715</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=41151715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41151715</guid></item><item><title><![CDATA[New comment by komon in "Foundations (1997-2000)"]]></title><description><![CDATA[
<p>I enjoyed Schild's Ladder and Permutation City immensely</p>
]]></description><pubDate>Thu, 28 Dec 2023 18:29:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=38796720</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=38796720</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38796720</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: Does all languages who target LLVM have the same traits?"]]></title><description><![CDATA[
<p>The output from an LLVM frontend compiler is LLVM IR, which is sort of a high-level architecture-agnostic assembly.<p>The LLVM backend compiles this IR to the target architecture's machine code.<p>Some optimizations can (and do?) happen in the backend compiler, but for the most part it is up to the frontend to emit IR that is well optimized within the semantics of the frontend language.<p>The history of Rust, for example, is filled with examples of optimizations made not to the standard library, but to how the frontend emits IR.<p>Beyond that, different languages and ecosystems are going to have differing levels of optimization in their stdlib and runtime that will have an outsize effect on day-to-day performance.</p>
]]></description><pubDate>Fri, 15 Sep 2023 19:23:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=37527997</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=37527997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37527997</guid></item><item><title><![CDATA[New comment by komon in "Noticing when an app is only hosted in us-east-1"]]></title><description><![CDATA[
<p>I wonder what your actual cache hit rate is? Sounds like it could use some tuning since 100-150ms sounds consistent with most requests hitting the origin?</p>
]]></description><pubDate>Thu, 29 Jun 2023 12:01:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=36519282</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=36519282</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36519282</guid></item><item><title><![CDATA[New comment by komon in "PyPI Was Subpoenaed"]]></title><description><![CDATA[
<p>Well, due process is a right co-equal to free speech, so which rights override which others in which circumstances will come down to legal precedent.<p>My understanding is that the FBI or other non-judicial body cannot unilaterally issue a gag order. Subpoenas and gag orders related to them are granted by judges.<p>(Which isn't to say that the relationship between the judicial branch and law enforcement bodies is always pure and equal)</p>
]]></description><pubDate>Wed, 24 May 2023 19:55:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=36063143</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=36063143</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36063143</guid></item><item><title><![CDATA[New comment by komon in "Deno 1.33: Deno 2 is coming"]]></title><description><![CDATA[
<p>KV storage is SQLite, and SQLite replication and syncing using an out-of-process daemon is becoming a solved problem.<p>For that application at least no changes to the runtime would be necessary</p>
]]></description><pubDate>Sat, 29 Apr 2023 15:16:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=35753716</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=35753716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35753716</guid></item><item><title><![CDATA[New comment by komon in "How do companies manage open source and pro/enterprise versions?"]]></title><description><![CDATA[
<p>Here's two models:<p>"Open Core", where the core product is open source and you provide closed source extensions, generally high-value integrations and enteprise-y features like SSO, active directory support, etc.<p>"Paid Services" where you have offerings on top of the open product. You might offer trainings, consultations, support contracts, custom development work (e.g. aforementioned high-value integrations). Also very common is to offer a fully-managed SaaS experience, but I wouldn't expect that to be your key to success; many open-core businesses fail expecting that full hosting to be more attractive than it is.<p>It's becoming more popular to offer "on-prem"/"self-hosted" support. Cloud costs are going to get cut after 3rd party products among your customers, so getting your product counted in column B gives you a little edge. Even if they need to cut their support contract down they're still using your product and are more likely to come back when the storm is over.</p>
]]></description><pubDate>Sun, 09 Apr 2023 21:18:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=35506560</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=35506560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35506560</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: How do you cope/work with endless cycle of webdev?"]]></title><description><![CDATA[
<p>What you're observing is not the rise and fall of best practice and good engineering. All you're seeing is the hype cycle.<p>Best practice and good engineering in web dev is the same as it is in any other software field: the best stack is the one you know cold.<p>Unfortunately, there are many popular stacks, and all of them have something to say about all the others. And 80% of learning materials for any given stack aren't from official sources, but are instead blog posts and videos and tweets from tech influencers. When they parrot those same criticisms, it lends the air of a grassroots shifting of the whole community.<p>The fact of the matter is that despite the huge levels of hype flux, large, popular, stable apps are still being made with technology "boring" tech.<p>Despite SPAs, rails and Django apps are still built rendering server side templates and sprinkling jQuery where necessary. Despite GraphQL, REST APIs are still the state of the art for most APIs. Despite kubernetes and docker, many apps are still deployed to heroku or VPS providers.<p>It can be intimidating for newcomers because it can be difficult to separate hype from fact. My advice is to pick something, the more boring the better, and know it cold and ignore all claims of its death.<p>To address concerns about projects dying, that is pretty legitimate. Unfortunately webdevs deploy trusted code into a highly untrustworthy and antagonistic environment. New technologies do come to play and requires adapters and plugins to be written. I wouldn't worry about overall size of community as long as security issues are getting addressed.</p>
]]></description><pubDate>Sun, 18 Sep 2022 13:23:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=32887340</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=32887340</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32887340</guid></item><item><title><![CDATA[New comment by komon in "How to select the most appropriate DB for your project?"]]></title><description><![CDATA[
<p>DynamoDB is an interesting beast. It's hard for me to recommend it for most use cases anyway.<p>It was designed to power experiences that look like shopping carts: relatively short-lived, mostly append-only, needing a flattish performance curve as the number of items and users go up, with a really natural partition key.<p>Using it as the primary storage of your app means you play the part of query planner a lot of the time.<p>If your data is especially graph-structured you might end up doing so-called "single table design" where all objects end up in the same table that has its keys constructed carefully (compound keys formed by string concatting), And has secondary sparse indices to power other access patterns.<p>And definitely plan on overfetching  as an _optimization_ to prevent many small queries to dynamo, especially in a GraphQL context where we have no idea what fields are being requested at fetch time.</p>
]]></description><pubDate>Tue, 30 Nov 2021 14:34:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=29392511</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=29392511</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29392511</guid></item><item><title><![CDATA[New comment by komon in "How to select the most appropriate DB for your project?"]]></title><description><![CDATA[
<p>FWIW, DynamoDB (at least, an API-co patible, sqlite-backed stand in) can be installed to developer machines.<p>But your point about on-prem stands</p>
]]></description><pubDate>Tue, 30 Nov 2021 11:31:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=29391037</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=29391037</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29391037</guid></item><item><title><![CDATA[New comment by komon in "Good science fiction books about intelligence, AI, artificial life forms, etc.?"]]></title><description><![CDATA[
<p>The Rifters Trilogy, also by Peter Watts is a great read as well. It focuses a bit more on the transhumanism aspects but non-conscious intelligence is a secondary theme of the last two books.<p>Pretty much any book by Greg Egan covers these ideas since nearly all of his stories take place somewhere in a shared universe at different points of humanity approaching the singularity. Check out his short stories in Axiomatic or the full length novels Permutation City and Schild's Ladder.</p>
]]></description><pubDate>Mon, 29 Nov 2021 16:10:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=29381462</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=29381462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29381462</guid></item><item><title><![CDATA[New comment by komon in "Ask HN: Why Blog as a Developer?"]]></title><description><![CDATA[
<p>If a, b, c don't compel you, you may do fine with keeping an engineering journal or a personal wiki if all you need is a place to collect your knowledge.<p>However, to advocate for blogging I've got 2 points:<p>1. Refining your opinions -- related to becoming a better communicator, I think that forming a cogent opinion post requires you to really think through your thoughts, opinion, and experience on a topic. As a project it can be a great learning exercise, I find that I gain a much more solid understanding once I feel the need to back up my opinions with experience and references.<p>Which brings me to 2. Learning in public.<p>Taking the time to write up a good post and share it around exposes you to people who will agree with you, challenge your ideas, and importantly learn from your experience. It's a way to find a community and give back to it, and gain more in return.<p>Does 1 help you with c? Yes. Is 2 also networking, branding, maybe building a following? Sure, if you try at those parts.<p>Most the blogs that I want to read care a lot more about concentrating knowledge and experience so they can learn from and help grow others e.g. Julia Evans or Alexis King</p>
]]></description><pubDate>Sat, 13 Nov 2021 06:13:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=29207846</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=29207846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29207846</guid></item><item><title><![CDATA[New comment by komon in "Why and how to use service injection in Node.js"]]></title><description><![CDATA[
<p>As long as the service container's members are typed you should</p>
]]></description><pubDate>Sun, 31 Oct 2021 17:01:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=29058389</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=29058389</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29058389</guid></item><item><title><![CDATA[New comment by komon in "The Problem with Macros"]]></title><description><![CDATA[
<p>"no notes" is an idiom meaning "I have no suggestions for improvement"<p>The author was being sincere, rather than sarcastic as your initial parse suggests</p>
]]></description><pubDate>Wed, 13 Oct 2021 04:01:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=28848086</link><dc:creator>komon</dc:creator><comments>https://news.ycombinator.com/item?id=28848086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28848086</guid></item></channel></rss>