<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: darioush</title><link>https://news.ycombinator.com/user?id=darioush</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 18:05:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=darioush" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by darioush in "Scaling long-running autonomous coding"]]></title><description><![CDATA[
<p>I find it interesting that this line of adventure quickly lead to locking problems.</p>
]]></description><pubDate>Thu, 15 Jan 2026 16:39:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46635191</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=46635191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46635191</guid></item><item><title><![CDATA[New comment by darioush in "Layered Design in Go"]]></title><description><![CDATA[
<p>A funny quirk about golang is you cannot have circular dependencies at the package level, but you can have circular dependencies in go.mod<p>The tl;dr is don't do that either.</p>
]]></description><pubDate>Sun, 20 Apr 2025 15:57:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43744593</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43744593</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43744593</guid></item><item><title><![CDATA[New comment by darioush in "OpenAI o3 and o4-mini"]]></title><description><![CDATA[
<p>It's becoming a bit like iphone 3, 4... 13, 25...<p>Ok they are all phones that run apps and have a camera.
I'm not an "AI power user", but I do talk to ChatGPT + Grok for daily tasks and use copilot.<p>The big step function happened when they could search the web but not much else has changed in my limited experience.</p>
]]></description><pubDate>Wed, 16 Apr 2025 17:18:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=43707929</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43707929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43707929</guid></item><item><title><![CDATA[New comment by darioush in "Harvard's response to federal government letter demanding changes"]]></title><description><![CDATA[
<p>right, freedom of speech is free as long as it agrees with the viewpoint of who's in power. similar to how history is written by victors but this part is conveniently ignored. it's just facts in the open marketplace of ideas yay!</p>
]]></description><pubDate>Mon, 14 Apr 2025 20:00:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=43685657</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43685657</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43685657</guid></item><item><title><![CDATA[New comment by darioush in "What if we made advertising illegal?"]]></title><description><![CDATA[
<p>the difference here is if you search or seek something, i.e. explicitly consent to viewing advertisements for guitar in your active browsing session vs them being pushed to you without your consent the next day on your phone.<p>I'm not against monetizing advertisement for the 1st use case either.</p>
]]></description><pubDate>Sun, 06 Apr 2025 15:08:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=43601957</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43601957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43601957</guid></item><item><title><![CDATA[New comment by darioush in "An image of an archeologist adventurer who wears a hat and uses a bullwhip"]]></title><description><![CDATA[
<p>don't you think it is empowering and aspiring for artists? they can try several drafts of their work instantaneously, checking out various compositions etc before even starting the manual art process.<p>they could even input/train it on their own work. I don't think someone can use AI to copy your art better than the original artist.<p>Plus art is about provenance. If we could find a scrap piece of paper with some scribbles from Picasso, it would be art.</p>
]]></description><pubDate>Fri, 04 Apr 2025 00:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=43577148</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43577148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43577148</guid></item><item><title><![CDATA[New comment by darioush in "An image of an archeologist adventurer who wears a hat and uses a bullwhip"]]></title><description><![CDATA[
<p>oh they hate it so much when this hypocrisy is pointed out. better put the high school kids downloading books on pirate bay in jail but I guess if your name starts with Alt and ends in man then there's an alt set of rules for you.<p>also remember when GPU usage was so bad for the environment when it was used to mine crypto, but I guess now it's okay to build nuclear power plants specifically for gen-ai.</p>
]]></description><pubDate>Fri, 04 Apr 2025 00:34:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43577117</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43577117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43577117</guid></item><item><title><![CDATA[New comment by darioush in "An 'administrative error' sent a Maryland man to an El Salvador prison"]]></title><description><![CDATA[
<p>just an example of bureaucracy at work.<p>this what happens when you centralize all decision making to people who have no local knowledge of the community they are administrating, and predicate their jobs on following a checklist, usually as implemented by buggy software, instead of making a judgement call based on experience and circumstances.</p>
]]></description><pubDate>Wed, 02 Apr 2025 12:21:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=43555867</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43555867</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43555867</guid></item><item><title><![CDATA[New comment by darioush in "The Real Story Behind Sam Altman’s Firing From OpenAI"]]></title><description><![CDATA[
<p>Yes and the open source models + local inference are progressing rapidly.
This whole API idea is kind of limited by the fact that you need to RT to a datacenter + trust someone with all your data.<p>Imagine when OpenAI has their 23&me moment in 2050 and a judge rules all your queries since 2023 are for sale to the highest bidder.</p>
]]></description><pubDate>Sat, 29 Mar 2025 14:07:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43515661</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43515661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43515661</guid></item><item><title><![CDATA[New comment by darioush in "Take this on-call rotation and shove it"]]></title><description><![CDATA[
<p>deferring to best practice instead of best judgement is a major plague of the software industry these days.<p>best practices usually come from giant companies with tens of thousands of engineers like google (who doesn't seem to be keeping up with competition btw) and amazon (which is notorious for burning out people).<p>what science or evidence drives the best practices?</p>
]]></description><pubDate>Thu, 27 Mar 2025 22:48:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=43499124</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43499124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43499124</guid></item><item><title><![CDATA[New comment by darioush in "Take this on-call rotation and shove it"]]></title><description><![CDATA[
<p>this doesn't always work. many things can go wrong in distributed systems and you cannot test for all of them. also you have no control of your dependencies like when AWS networking degrades or a 3rd party API provider changes their APIs without letting you know.</p>
]]></description><pubDate>Thu, 27 Mar 2025 22:46:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43499110</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43499110</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43499110</guid></item><item><title><![CDATA[New comment by darioush in "Don't Be Afraid of Types"]]></title><description><![CDATA[
<p>yeah this is correct, somehow I jumped to a different conclusion :)</p>
]]></description><pubDate>Mon, 24 Mar 2025 21:04:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=43465394</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43465394</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43465394</guid></item><item><title><![CDATA[New comment by darioush in "Don't Be Afraid of Types"]]></title><description><![CDATA[
<p>Sure, in many languages we have the notation of thing.do_thing(arg1, arg2).<p>I suggest this is a good notation for data structures like, stack.push(10) or heap.pop()<p>I'm suggesting we don't use this notation for things like rules to validate a file, so I suggest we write validate(file, rules) instead of rules.validate(file).<p>Then we can express the rules as a data structure, and keep the IMO unrelated behavior separate.
Note then we don't need to worry about whether it should be file.validate(rules) perhaps. Who does the validation belong to? the rules or the file? the abstractions that are created by non-obvious answers to "who does this behavior belong to" are generally problems for future changes.</p>
]]></description><pubDate>Mon, 24 Mar 2025 21:02:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=43465380</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43465380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43465380</guid></item><item><title><![CDATA[New comment by darioush in "Don't Be Afraid of Types"]]></title><description><![CDATA[
<p>this isn't what I would call an abstraction, that's creating a named type. named types are simple because their algebra is also simple and their maintenance cost is low.<p>problem is more when you have types that "do things" and "have responsibilities" (usually to "do things with other types they hold pointers to, but do not totally own"), such a type is very difficult to maintain because there's now:<p>- a boundary of its responsibilities that is subjective,<p>- responsibility of building collaborators and initializing the type<p>- dealing with test doubles for the collaborators.</p>
]]></description><pubDate>Sat, 22 Mar 2025 23:06:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=43449400</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43449400</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43449400</guid></item><item><title><![CDATA[New comment by darioush in "Don't Be Afraid of Types"]]></title><description><![CDATA[
<p>I'm a big fan of primitive types, in particular byte arrays.<p>It's okay to create a new data structure that combines some primitive data types in a "struct", like an array that tracks its length.<p>But we don't want to "build abstractions and associate behavior to them" (just associate behavior to data structures like push/pop).</p>
]]></description><pubDate>Sat, 22 Mar 2025 16:03:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=43446696</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43446696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43446696</guid></item><item><title><![CDATA[New comment by darioush in "Don't Be Afraid of Types"]]></title><description><![CDATA[
<p>Kind of disagree with this article, when you add a "noun" (aka type), you're often introducing a new abstraction.<p>Abstractions have a maintenance cost associated with it ie, another developer or possibly yourself must be able to recreate the "algebra" associated with that type (your thought process) at the time of making modifications. This creates some problems:<p>1. Since there's no requirement to create a cohesive algebra (API), there was probably never a cohesive abstraction to begin with.<p>2. Requirements may have changed since the inception of the abstraction, further breaking its cohesion.<p>3. Since we largely practice "PR (aka change) driven development", after a few substantial repetitions of step 2, now the abstraction has morphed into something that's actually very tied into the callsites (verbs), and is essentially now tech debt (more like a bespoke rube goldberg machine than a well-designed re-usable software component).<p>You can introduce types if you follow the open/closed principle which means you don't change abstractions after their creation (instead create new ones and then delete old ones when they have no callsites).</p>
]]></description><pubDate>Sat, 22 Mar 2025 15:56:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=43446656</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43446656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43446656</guid></item><item><title><![CDATA[New comment by darioush in "Krazam: Microservices [video]"]]></title><description><![CDATA[
<p>this is a great video to rewatch whenever interacting with non-technical stakeholders.<p>IMO the "microservices" architecture is kind of a failure from an economic perspective. On top of many of the talks like this one [0], which discuss things technically, microservices gave us "tech companies" employing 5-10 eng + PM + EM, which inevitably leads to "org building" and office politics, bloated engineering teams (anecdote: Musk reducing much of X staff).<p>I think we'll see a trend toward monorepos + high velocity programming utilizing LLMs like copilot, enabling higher productivity with smaller teams.<p>[0]: <a href="https://youtu.be/LcJKxPXYudE?si=zPsbuFBWqhH1QhKh" rel="nofollow">https://youtu.be/LcJKxPXYudE?si=zPsbuFBWqhH1QhKh</a></p>
]]></description><pubDate>Sat, 22 Mar 2025 15:38:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=43446512</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43446512</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43446512</guid></item><item><title><![CDATA[New comment by darioush in "Verification-First Development"]]></title><description><![CDATA[
<p>Actually I think we will be writing more of the verification coding and allowing the solution to be re-written as necessary by AI.</p>
]]></description><pubDate>Tue, 18 Mar 2025 21:07:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=43405139</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43405139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43405139</guid></item><item><title><![CDATA[New comment by darioush in "Functional Tests as a Tree of Continuations (2010)"]]></title><description><![CDATA[
<p>the core idea is to model the state and valid state transitions formally (which may be more directly applicable to the audio driver), so they can be enumerated exhaustively up to a certain bound.<p>it may be that a bug only shows when hundreds of transitions are performed (like an overflow or bug due to large data), but that's more stress testing. many bugs have repros involving a few state transitions.<p>relational algebra is a useful tool in my opinion because much of programming involves adding/removing things from sets or testing for their membership in a set. also relations are powerful as they can express recursive ideas like which widgets are contained within others (from the GUI example).<p>relations also allow defining invariants at a high level which must be true at any state. (eg, there should be no state like: audio_buffer_is_empty and audio_playing)<p>additionally we have languages such as SQL or for example <a href="https://alloytools.org/applications.html" rel="nofollow">https://alloytools.org/applications.html</a> that can help programmers specify this in a familiar way.</p>
]]></description><pubDate>Fri, 14 Mar 2025 22:22:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=43367919</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43367919</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43367919</guid></item><item><title><![CDATA[New comment by darioush in "Functional Tests as a Tree of Continuations (2010)"]]></title><description><![CDATA[
<p>If you specify the operations (API) of your system in a relational algebra, then you can use that algebra to generate valid state transitions. (this essentially can construct the tree of continuations the article is discussing or enumerate the paths of this tree)<p>If you create a query language, then the state can be verified to match expectations at any point.<p>I'm not sure why we don't program like this.</p>
]]></description><pubDate>Fri, 14 Mar 2025 00:24:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43358530</link><dc:creator>darioush</dc:creator><comments>https://news.ycombinator.com/item?id=43358530</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43358530</guid></item></channel></rss>