<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: davidalayachew</title><link>https://news.ycombinator.com/user?id=davidalayachew</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 12 Apr 2026 14:44:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=davidalayachew" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by davidalayachew in "The 'Toy Story' You Remember"]]></title><description><![CDATA[
<p>Thanks, you are right. Wish I could edit it.</p>
]]></description><pubDate>Tue, 11 Nov 2025 21:31:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45893170</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=45893170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45893170</guid></item><item><title><![CDATA[New comment by davidalayachew in "The 'Toy Story' You Remember"]]></title><description><![CDATA[
<p>Isn't the entire point of "reinventing the wheel" to address this exact problem?<p>This is one of the tradeoffs of maintaining backwards compatibility and stewardship -- you are required to keep track of each "cause" of that backwards compatibility. And since the number of "causes" can quickly become enumerable, that's usually what prompts people to reinvent the wheel.<p>And when I say reinvent the wheel, I am NOT describing what is effectively a software port. I am talking about going back to ground zero, and building the framework from the ground up, considering ONLY the needs of the task at hand. It's the most effective way to prune these needless requirements.</p>
]]></description><pubDate>Tue, 11 Nov 2025 13:27:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=45887024</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=45887024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45887024</guid></item><item><title><![CDATA[New comment by davidalayachew in "Visualising data structures and algorithms through animation"]]></title><description><![CDATA[
<p>The IDE that I use is called jGRASP (<a href="https://www.jgrasp.org/" rel="nofollow">https://www.jgrasp.org/</a>) and it has a viewer that shows off the changes in data structures over time.<p>Here is an example.<p><a href="https://www.youtube.com/watch?v=D-zrayZQj6w" rel="nofollow">https://www.youtube.com/watch?v=D-zrayZQj6w</a></p>
]]></description><pubDate>Wed, 19 Mar 2025 11:35:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=43410641</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=43410641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43410641</guid></item><item><title><![CDATA[New comment by davidalayachew in "How Spotify Killed Lo-Fi Hip Hop"]]></title><description><![CDATA[
<p>But then it is no longer an apples to apples comparison. This is Spotify. Spotify is the embodiment of the top radio stations idea.<p>By that metric, Spotify is actually doing better than they did, if memory serves.</p>
]]></description><pubDate>Fri, 07 Feb 2025 13:23:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42972219</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=42972219</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42972219</guid></item><item><title><![CDATA[New comment by davidalayachew in "Northeastern's redesign of the CS curriculum"]]></title><description><![CDATA[
<p>Is it fine? How would we determine that? What's the metric?</p>
]]></description><pubDate>Sun, 12 Jan 2025 23:47:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42678308</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=42678308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42678308</guid></item><item><title><![CDATA[New comment by davidalayachew in "Show HN: Brioche – A new Nix-like package manager"]]></title><description><![CDATA[
<p>I strongly disagree.<p>Haskell is great in a pure world, but it has an undue amount of friction when in the IO world. It does work in the IO world just fine, but languages like Java handle the actual concerns of the IO world better than Haskell. And for that reason, I say that no, Haskell is not the one true way to write correct code.<p>It definitely is the One True Way to write happy path code though.</p>
]]></description><pubDate>Wed, 05 Jun 2024 01:42:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=40580641</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40580641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40580641</guid></item><item><title><![CDATA[New comment by davidalayachew in "Show HN: I generated API documentation for all Java packages"]]></title><description><![CDATA[
<p><a href="https://docs.oracle.com/en/java/javase/22/docs/api/index.html" rel="nofollow">https://docs.oracle.com/en/java/javase/22/docs/api/index.htm...</a></p>
]]></description><pubDate>Mon, 27 May 2024 21:06:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=40494704</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40494704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40494704</guid></item><item><title><![CDATA[New comment by davidalayachew in "Show HN: I generated API documentation for all Java packages"]]></title><description><![CDATA[
<p>> Author here. Yes, the search bar is nice already, and the performance is good enough for most use cases.<p>Agreed. If you do have performance improvements in mind, I would recommend you bring them up to the Javadoc jdk team. They would definitely take a look if you can point out a faster solution.<p><a href="https://openjdk.org/projects/javadoc-next/" rel="nofollow">https://openjdk.org/projects/javadoc-next/</a><p>> That's why the search bar in the official java.base documentation is noticeably laggy.<p>On my $400 laptop from 2020, I have a response time of <= 0.25 seconds. Are you seeing something different?</p>
]]></description><pubDate>Sun, 26 May 2024 23:58:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=40486404</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40486404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40486404</guid></item><item><title><![CDATA[New comment by davidalayachew in "Show HN: I generated API documentation for all Java packages"]]></title><description><![CDATA[
<p>> Instead of relying on Javadoc, the built-in doc generator, I created the engine from scratch to give the documentations a modern look, build fast search indexes, and enable link resolution to other packages.<p>Javadoc already gives you an extremely fast search index and search bar. Granted, it's only in the newest versions of Java.</p>
]]></description><pubDate>Sun, 26 May 2024 21:22:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=40485500</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40485500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40485500</guid></item><item><title><![CDATA[New comment by davidalayachew in "Algebraic Data Types for C99"]]></title><description><![CDATA[
<p>It absolutely does. Here is a (modified) snippet of my Java code from yesterday.<p><pre><code>    final boolean hasUncollectedSecret =
       switch (each)
       {
               
          case Wall()    -> false;
          case Goal()    -> false;
          case Player p  -> false;
          case BasicCell(Underneath(_, var collectible), _)
             ->
                switch (collectible)
                {
                        
                   case NONE, KEY -> false;
                   case SECRET -> true;
                        
                };
          case Lock()    -> false;
               
       };</code></pre></p>
]]></description><pubDate>Thu, 09 May 2024 17:08:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=40310348</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40310348</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40310348</guid></item><item><title><![CDATA[New comment by davidalayachew in "I found one of my first programs (Java, 2011) on the Wayback Machine and it runs"]]></title><description><![CDATA[
<p>It's ABSOLUTELY by design.<p>On the Java Mailing Lists, the creators/stewards of Java are constantly fighting back so many feature requests BECAUSE those features would threaten backwards compatibility. And that mailing list has been going on for a long time now. You can see feature requests (and their subsequent rejections) going as far back as the late 90's lol</p>
]]></description><pubDate>Mon, 29 Apr 2024 14:38:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=40198897</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40198897</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40198897</guid></item><item><title><![CDATA[New comment by davidalayachew in "Leaving Rust gamedev after 3 years"]]></title><description><![CDATA[
<p>Very helpful, ty vm.</p>
]]></description><pubDate>Sat, 27 Apr 2024 14:25:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=40180207</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40180207</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40180207</guid></item><item><title><![CDATA[New comment by davidalayachew in "Leaving Rust gamedev after 3 years"]]></title><description><![CDATA[
<p>Complete distraction of a question -- for that video clip, what is the song playing at the time stamp you selected? Is that in-game music? I figure not.</p>
]]></description><pubDate>Sat, 27 Apr 2024 01:14:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=40176184</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40176184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40176184</guid></item><item><title><![CDATA[New comment by davidalayachew in "JEP draft: Exception handling in switch"]]></title><description><![CDATA[
<p>Excellent. I love Checked Exceptions, and this just made them that more useful. Can't wait for it to land.</p>
]]></description><pubDate>Sat, 20 Apr 2024 19:11:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40100081</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40100081</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40100081</guid></item><item><title><![CDATA[New comment by davidalayachew in "If Inheritance is so bad, why does everyone use it?"]]></title><description><![CDATA[
<p>That's fair. Though, my point stands. Once that number starts to grow, that's when inheritance starts to shine. Again, only in Java as is.<p>And yes, excellent wording with the idea of "Should not even know about the concept". I think that is another good place where inheritance shines.</p>
]]></description><pubDate>Sat, 20 Apr 2024 01:59:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=40093962</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40093962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40093962</guid></item><item><title><![CDATA[New comment by davidalayachew in "Here's a puzzle game. I call it Reverse the List of Integers"]]></title><description><![CDATA[
<p>Thanks for posting this. I made a playable version of your game too. Bundled inside is algorithms for solving it as well.<p><a href="https://github.com/davidalayachew/ReverseTheListOfIntegers">https://github.com/davidalayachew/ReverseTheListOfIntegers</a></p>
]]></description><pubDate>Wed, 17 Apr 2024 23:45:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40071342</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40071342</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40071342</guid></item><item><title><![CDATA[New comment by davidalayachew in "Here's a puzzle game. I call it Reverse the List of Integers"]]></title><description><![CDATA[
<p>Lol, they got me too. Mine has an algorithm to find a solution quickly, and another to find the shortest solution possible. I also created a very rudimentary GUI so that the game could be played. I'll clean the GUI up later though.<p><a href="https://github.com/davidalayachew/ReverseTheListOfIntegers">https://github.com/davidalayachew/ReverseTheListOfIntegers</a></p>
]]></description><pubDate>Wed, 17 Apr 2024 23:44:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=40071338</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40071338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40071338</guid></item><item><title><![CDATA[New comment by davidalayachew in "If Inheritance is so bad, why does everyone use it?"]]></title><description><![CDATA[
<p>For me, it was taking the joke too far. The catwalk comment intro was actually really good, but then it just kept running with it the whole way through. That is not in and of itself a sin, but unless there's a good reason to do so, it dries quickly. You need something to keep it flowing, otherwise it just feels like you really needed to write 8 flamboyant lines mocking HN about inheritance with catwalk references stuck in for all of the lines. Feels forced, almost like you are trying to meet a quota. Which is what makes it feel AI-ish, to me at least.<p>Definitely one of the better ones though, very impressive. AI really is great at making some very impressive things. But since AI doesn't "get it", a lot of what it produces just feels off or misses the point.</p>
]]></description><pubDate>Sun, 14 Apr 2024 02:03:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=40028057</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40028057</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40028057</guid></item><item><title><![CDATA[New comment by davidalayachew in "If Inheritance is so bad, why does everyone use it?"]]></title><description><![CDATA[
<p>I can think of one. For Java at least.<p>Imagine that I have a class that has 15 methods -- 14 are a perfect fit as is, but 1 of them needs to be completely overwritten.<p>If I were to do inheritance, I would do `extends` on the class, and then `@Override` the offending method. Problem solved.<p>If I were to do composition, I could use the Delegation Pattern from the Gang of Four, but that would require me to write 14 do-nothing methods just to be able to override the one.<p>In general, composition has more use than inheritance. However, inheritance has a non-zero number of use cases where it is a better choice than composition.</p>
]]></description><pubDate>Sun, 14 Apr 2024 01:43:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=40027982</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40027982</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40027982</guid></item><item><title><![CDATA[New comment by davidalayachew in "Programming Language Scalability"]]></title><description><![CDATA[
<p>I have a scroll bar on mine. I am using the latest version of Firefox (124.0.2). It is the exact same scroll bar that is on this website, Hacker News.</p>
]]></description><pubDate>Sat, 13 Apr 2024 02:50:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40020056</link><dc:creator>davidalayachew</dc:creator><comments>https://news.ycombinator.com/item?id=40020056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40020056</guid></item></channel></rss>