<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: smarkov</title><link>https://news.ycombinator.com/user?id=smarkov</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 13 Jun 2026 03:02:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=smarkov" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by smarkov in "JavaScript Views, the Hard Way – A Pattern for Writing UI"]]></title><description><![CDATA[
<p>I never said that PHP was universally used, just that it has answers to most problems.<p>jQuery has become obsolete these days because the problems it solves have largely been solved by additions to JS, but the interactivity of websites has continued to increase and browsers have yet to catch up to that. Frameworks like React actively fight against the browser rather than work with it by maintaining its own DOM state and constantly creating copies of state for every re-render of a component, along with a bunch of other magic. That's a lot of unnecessary loopholes just to make up for JS's lack of features when it comes to writing reactive UI.</p>
]]></description><pubDate>Sat, 19 Apr 2025 09:36:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43735298</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=43735298</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43735298</guid></item><item><title><![CDATA[New comment by smarkov in "JavaScript Views, the Hard Way – A Pattern for Writing UI"]]></title><description><![CDATA[
<p>People like to hate on PHP, but PHP provides you with all the tools you need to write a fully working backend, where as JS provides you with half-assed solutions for writing frontend, which is why we have 1000 frameworks and we still can't agree on how to write frontend code. Seriously, we don't even have a convention for writing a simple reusable component with vanilla JS, everyone makes up their own thing. Web components were supposed to be that, but they're a good example of what I meant by "half-assed", because they're ugly, verbose, clunky, don't really solve  the right problems, and nobody likes writing them.</p>
]]></description><pubDate>Sat, 19 Apr 2025 08:55:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=43735148</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=43735148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43735148</guid></item><item><title><![CDATA[New comment by smarkov in "Customizable HTML Select"]]></title><description><![CDATA[
<p>Because it's been trendy to introduce a new unintuitive syntax with every new CSS feature.<p>I am genuinely afraid for the future of CSS as it is becoming increasingly more complex, meanwhile most people haven't been able to properly utilize or understand it for the last decade even without all of that additional complexity.</p>
]]></description><pubDate>Fri, 21 Feb 2025 07:10:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=43124894</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=43124894</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43124894</guid></item><item><title><![CDATA[New comment by smarkov in "On Bloat"]]></title><description><![CDATA[
<p>Remember when we used to be called "web developers"? We then became "software engineers", but forgot the meaning of the word engineer:<p>> Engineering is the practice of using natural science, mathematics, and the engineering design process to solve technical problems, increase efficiency and productivity, and improve systems.<p>We don't increase efficiency or improve systems, we just build garbage on top of garbage. Imagine if a structural engineer did the same and built new floors on top of shaky floors. Our buildings would be collapsing on a daily basis.</p>
]]></description><pubDate>Fri, 14 Feb 2025 11:55:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43047466</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=43047466</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43047466</guid></item><item><title><![CDATA[New comment by smarkov in "We replaced our React front end with Go and WebAssembly"]]></title><description><![CDATA[
<p>I get the potential appeal in having a single language do all things, but in practice the front-end and back-end have vastly different jobs and different capabilities, so I see no issue in them being different languages and letting them utilize their strengths. Not to mention the vast amount of complexity you need to involve at some point in order to bring a language to a side it wasn't meant to be in.</p>
]]></description><pubDate>Tue, 11 Feb 2025 05:29:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=43009306</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=43009306</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43009306</guid></item><item><title><![CDATA[New comment by smarkov in "Ask HN: Who wants to be fired? (February 2025)"]]></title><description><![CDATA[
<p>I'd love to, but I don't really have a choice at the moment.<p>Maybe I'm just at the wrong place at the wrong time, but as a software engineer I don't feel like I'm doing any actual engineering and solving meaningful problems, just spaghetti gluing random frameworks, packages and services together. The only problems I get to solve are those caused by the quirks of all these incompatible things being forced to work together. It's draining.</p>
]]></description><pubDate>Tue, 04 Feb 2025 00:06:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=42925268</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42925268</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42925268</guid></item><item><title><![CDATA[New comment by smarkov in "Sixos: A nix OS without systemd [video]"]]></title><description><![CDATA[
<p>> People have a right to build substitutes and replacements -- I believe in the "Let a hundred flowers bloom" philosopy.<p>It's a blessing and a curse. Look at package managers, they more or less all do the same thing, with one primary job of "go download some binary so I can run it", yet there's so many to choose from. Every time you read some Linux guide they have to list 7 different ways of installing the same package. It's stupid, probably even more so for the maintainers of those packages because they have to distribute their package 7 different ways. At least I'm glad systemd has mostly become the standard, so you don't have to also see 7 different ways of creating a service.</p>
]]></description><pubDate>Fri, 31 Jan 2025 08:35:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=42885751</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42885751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42885751</guid></item><item><title><![CDATA[New comment by smarkov in "Context should go away for Go 2 (2017)"]]></title><description><![CDATA[
<p>> `ctx.Value` is an `any -> any` kv store that does not come with any documentation, type checking for which key and value should be available.<p>On a similar note, this is also why I highly dislike struct tags. They're string magic that should be used sparingly, yet we've integrated them into data parsing, validation, type definitions and who knows what else just to avoid a bit of verbosity.</p>
]]></description><pubDate>Tue, 21 Jan 2025 11:39:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42779032</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42779032</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42779032</guid></item><item><title><![CDATA[New comment by smarkov in "Show HN: Struggle with CSS Flexbox? This Playground Is for You"]]></title><description><![CDATA[
<p>I highly recommend Josh's guide: <a href="https://www.joshwcomeau.com/css/interactive-guide-to-flexbox/" rel="nofollow">https://www.joshwcomeau.com/css/interactive-guide-to-flexbox...</a><p>It goes over more advanced gotchas and tips in detail such as flex-basis, auto margins, min-width, etc.</p>
]]></description><pubDate>Sun, 05 Jan 2025 11:11:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=42601028</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42601028</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42601028</guid></item><item><title><![CDATA[New comment by smarkov in "EU law mandating universal chargers for devices comes into force"]]></title><description><![CDATA[
<p>Huh, I've heard about this for a while but for some reason thought it was strictly regarding phones, maybe because they've been making the biggest headlines about it. Looking forward to it then.</p>
]]></description><pubDate>Sun, 29 Dec 2024 02:50:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=42537004</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42537004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42537004</guid></item><item><title><![CDATA[New comment by smarkov in "EU law mandating universal chargers for devices comes into force"]]></title><description><![CDATA[
<p>It's not my area of expertise so I might just be delusional here, but from my understanding phones are difficult to make waterproof if they had replaceable batteries because they require a massive lid that spans across the entire phone while having a limited amount of thickness to work with and also because they have some expectations about the depth at which they remain waterproof. You don't necessarily have these constraints with a toothbrush. You can have a small opening at the bottom where you insert a tall battery and have plenty of height left to make a waterproof hatch. You're also unlikely to submerge your toothbrush in more than 50cm of water, like in the event of dropping it in the bathtub.<p>> Also, anecdotally, I’ve never had a sonicare toothbrush battery die. They still last weeks after many many years of use.<p>Sure, these exist too, though it doesn't reflect the majority of items which cheap out on all components, including batteries.</p>
]]></description><pubDate>Sun, 29 Dec 2024 02:13:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=42536811</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42536811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42536811</guid></item><item><title><![CDATA[New comment by smarkov in "EU law mandating universal chargers for devices comes into force"]]></title><description><![CDATA[
<p>I'm not denying that there are some trade-offs, but I'm also not strictly speaking about phones here. Think electric toothbrushes, trimmers, Bluetooth speakers and the other endless amounts of electric things with rechargeable batteries that don't have the space constraints of a phone.</p>
]]></description><pubDate>Sun, 29 Dec 2024 01:43:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42536669</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42536669</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42536669</guid></item><item><title><![CDATA[New comment by smarkov in "EU law mandating universal chargers for devices comes into force"]]></title><description><![CDATA[
<p>This is a step in the right direction but still doesn't address my biggest concern with e-waste - the battery.<p>Because almost none of the electronics you buy come with a replaceable battery, the second you buy something and use it on a regular basis it's destined to die and be thrown out within the next 4-8ish years due to the battery degrading and becoming increasingly more dangerous to keep around. Something that might be in perfect working condition and could be used for another 10 years has to be thrown out because of one single component.<p>I understand that batteries come in all shapes, sizes, capacities, yada yada, but imagine if we had standard rechargeable batteries like we have standard non-rechargeable batteries and things were built in a way where you could easily replace batteries like we could on phones a decade ago. You would double or triple the lifespan of a ton of things.</p>
]]></description><pubDate>Sun, 29 Dec 2024 01:32:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=42536589</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42536589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42536589</guid></item><item><title><![CDATA[New comment by smarkov in "C++ is an absolute blast"]]></title><description><![CDATA[
<p>And it'll continue to get worse because JS devs love coming up with their own abstractions over everything and piling complexity. You don't write JS, you write TS. You don't write HTML, you write JSX. You don't write CSS, you write Tailwind. And of course, React has its own compiler as of recently. Now you have to figure out in what order to run these parsers, bundle everything together including your hundreds of dependencies, minimize, obfuscate, tree shake, and whatever else fairy dust magic you want to sprinkle on top. Meanwhile, the default build tool of choice changes about once every 2 years, and now you also have a choice of runtime - node vs bun vs deno. Can't wait to see what the next revolutionary idea would be to contribute to this madness.</p>
]]></description><pubDate>Tue, 24 Dec 2024 15:33:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=42502534</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42502534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42502534</guid></item><item><title><![CDATA[New comment by smarkov in "PHP 8.4"]]></title><description><![CDATA[
<p>Of course it's not required but when you start pushing the boundaries of a language with the goal of achieving a clean interface, obscure features you wouldn't normally resort to become appealing. I dislike all of the magic around Laravel's Eloquent ORM - model relationships, query builder, abuse of ForwardsCalls trait, etc, but at the same time I can appreciate how "clean" it all looks once it's put together.</p>
]]></description><pubDate>Thu, 21 Nov 2024 11:21:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=42203156</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=42203156</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42203156</guid></item><item><title><![CDATA[New comment by smarkov in "Hire HTML and CSS People"]]></title><description><![CDATA[
<p>> what used to be a complex blob of floats is now a simple grid layout.<p>And what used to be relatively simple static layouts designed for a 4:3 screen are now layouts that must accommodate a screen of any arbitrary aspect ratio and physical size. This means that most of your components will now have at least 2 layout states, one for desktop and one for mobile, usually horizontal and vertical respectively, accomplished by switching random layout related properties on and off. Arguably anything related to CSS layout comes with a ton of quirks and flex/grid are no exception. It's those quirks that put most people off CSS, because they're sometimes far from intuitive, hard to debug, and are just things you have to know.</p>
]]></description><pubDate>Wed, 25 Sep 2024 17:11:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=41649561</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=41649561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41649561</guid></item><item><title><![CDATA[Ask HN: Those who run mainly Linux and game on Windows, what's your setup like?]]></title><description><![CDATA[
<p>Do you use any software that made running both easier? Do you dual boot or have separate PCs? If you have separate PCs do you share peripherals with USB/HDMI/DP switches? What about sharing audio input/output? Do you stream one desktop to the other?</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40954255">https://news.ycombinator.com/item?id=40954255</a></p>
<p>Points: 9</p>
<p># Comments: 18</p>
]]></description><pubDate>Sat, 13 Jul 2024 14:19:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=40954255</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=40954255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40954255</guid></item><item><title><![CDATA[New comment by smarkov in "Understanding React Compiler"]]></title><description><![CDATA[
<p>> Declaratively describe your UI, React paints it. That's it. No app state management.<p>"that's it" does not paint the full picture. Yes, UI = function(state) is very convenient but the way React implements it inverts the problem. Now instead of having to figure out ways of updating everything you have to go through numerous hoops to get only the things you need to update.</p>
]]></description><pubDate>Fri, 28 Jun 2024 15:40:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=40821773</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=40821773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40821773</guid></item><item><title><![CDATA[New comment by smarkov in "Creating a matchmaker for your multiplayer game"]]></title><description><![CDATA[
<p>> the matchmaker shuffles the queue to avoid the same players being matched together repeatedly<p>This is actually something I hate about multiplayer games with matchmaking nowadays. I made the majority of my childhood friends only because we stayed on the same server and played together for hours on end. I don't think it's a stretch to say that a key reason for why we play multiplayer rather than single player games is to socialize. This has become increasingly more difficult when you just get a new set of people every 10-30 minutes.</p>
]]></description><pubDate>Sun, 09 Jun 2024 02:35:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=40621626</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=40621626</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40621626</guid></item><item><title><![CDATA[New comment by smarkov in "Half-Ass It"]]></title><description><![CDATA[
<p>As someone who's struggled with starting projects from scratch multiple times over and not releasing anything for many years because it was never good enough, half-assing is not the mindset that helped me start shipping things. Rather, it was gaining an understanding about which parts of my code don't need to be perfect right now and also realizing that practically nothing is perfect the first time you do it.<p>I now leave a bunch of TODOs in my code as a reminder to myself that yes, this isn't the best it can be, I'll come back and make it better when it becomes a bottleneck, but for the time being 80% of something is better than 100% of nothing. This way I'm able to move on and continue doing meaningful work rather than wasting time obsessing over minute details that almost nobody else would care about.</p>
]]></description><pubDate>Fri, 31 May 2024 10:54:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=40533457</link><dc:creator>smarkov</dc:creator><comments>https://news.ycombinator.com/item?id=40533457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40533457</guid></item></channel></rss>