<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: evdubs</title><link>https://news.ycombinator.com/user?id=evdubs</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 22 Aug 2026 13:39:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=evdubs" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by evdubs in "As AI eats the web, the internet’s collective memory is disappearing"]]></title><description><![CDATA[
<p>Duckduckgo has been incredibly worse with results for me for the past year. I had used Duckduckgo for about a decade, and now it is just littered with AI generated content for search results. I recently switched to a search engine that uses Google results.</p>
]]></description><pubDate>Tue, 11 Aug 2026 20:05:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=49263701</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=49263701</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49263701</guid></item><item><title><![CDATA[New comment by evdubs in "Jellyfin founder Andrew leaves team"]]></title><description><![CDATA[
<p>It has worked flawlessly for me on Linux.</p>
]]></description><pubDate>Tue, 21 Jul 2026 04:56:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48988199</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48988199</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48988199</guid></item><item><title><![CDATA[New comment by evdubs in "Job seekers giving up: Labor force participation falls to lowest in 50 years"]]></title><description><![CDATA[
<p>Laborer rebels against capitalist system by directly enjoying the fruits of his own labor.</p>
]]></description><pubDate>Thu, 02 Jul 2026 20:02:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48766610</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48766610</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48766610</guid></item><item><title><![CDATA[New comment by evdubs in "Meta caps internal AI token spending"]]></title><description><![CDATA[
<p>You don't need to use an online service to do this; you get to avoid spending money on tokens doing it offline.<p>Gemma 4 works perfectly well offline on limited hardware (I have an 8GB video card) and can handle extracting text from image-based PDFs just fine.<p>Take a PDF -> run it through MarkItDown [1], using the OCR plugin if you need (point it to Gemma 4) -> now you can ask Gemma 4 questions about the (markdown) document.<p>I am sure Gemma 4 could even create a GUI to make this process very simple for a non technical user.<p>[1] <a href="https://github.com/microsoft/markitdown" rel="nofollow">https://github.com/microsoft/markitdown</a></p>
]]></description><pubDate>Thu, 02 Jul 2026 01:50:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48755464</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48755464</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48755464</guid></item><item><title><![CDATA[New comment by evdubs in "Rhombus Language 1.0"]]></title><description><![CDATA[
<p>> It's not better than `[1, 2, 3]` is it?<p>If you want to change your vector to a linked list, in Lisp, you can change from `(vector 1 2 3)` to `(list 1 2 3)`. If you have some array `[1, 2, 3]` and you want to change to a linked list for whatever performance concern, you'd have to replace `[1, 2, 3]` with..<p><pre><code>    var list = new List();
    l.insert(1);
    l.insert(2);
    l.insert(3);
</code></pre>
Maybe this example is contrived, but I feel like it is much more of a realistic example to want to change from an unsorted map to a sorted map. You can't just simply switch from `{k1: v1, k2: v2}` to `sorted{k1: v1, k2: v2}` as you could do in Lisp from `(unsorted-map k1 v1 k2 v2)` to `(sorted-map k1 v1 k2 v2)`. You'd need to write out all of your operations as with the list example. And, all of a sudden you are stuck with using the unsorted data structure for your JSON serialization rather than having the ability to reach for a sorted data structure.<p>`(date 2026 6 1)` is better than "2026-06-01" because the latter isn't a date, it's a date string. `(date 2026 6 1)` is better than `new Date(2026, 6, 1);` because the former is how it is serialized and can be deserialized.<p>> there's also the crazy bracket matching<p>At least with reading code, there is almost no reason to try to match brackets at all. It's like complaining about having to read semi-colons in languages that use them to signify the end of a statement. When writing code, Lisp is just another language like all the rest that benefit from an IDE that is syntax-aware. Having highlights for the starting paren and ending paren for an expression and being able to just select a particular expression make bracket matching fairly effortless.</p>
]]></description><pubDate>Thu, 25 Jun 2026 00:15:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48667166</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48667166</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48667166</guid></item><item><title><![CDATA[New comment by evdubs in "Rhombus Language 1.0"]]></title><description><![CDATA[
<p>> `(== a b)` is clearly worse than `a == b`<p>It's clearly worse just because it moved from infix to prefix and is wrapped by parens? Is `(* (+ a b) (+ c d))` clearly worse than `(a + b) * (c + d);`? Both have a bunch of parens, and one even has a semi colon.<p>This works both ways. `(list 1 2 3)` is clearly better than:<p><pre><code>        var l = new List();
        l.add(1);
        l.add(2);
        l.add(3);
</code></pre>
It's also better than `var l = [1, 2, 3];`<p>How often are you trying to make sense of a bunch of infix arithmetic operations when you're programming? Separately, how often are you creating data structures, navigating data structures, handling data in the form of JSON or XML, parsing that data into your language's native data structures, etc.?<p>Reading arithmetic in prefix instead of infix is easy, even if it is counter to how you were taught in elementary school. Working with s-expressions for code and data is clearly better than whatever syntax your language uses for code and either directly instantiating data or reaching for JSON or XML.<p>> justify its lack of static typing<p>Racket has both Typed/Racket as well as contracts.</p>
]]></description><pubDate>Wed, 24 Jun 2026 19:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48664283</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48664283</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48664283</guid></item><item><title><![CDATA[New comment by evdubs in "AI demands more engineering discipline. Not less"]]></title><description><![CDATA[
<p>I hope 99% of that was documentation and testing.</p>
]]></description><pubDate>Wed, 17 Jun 2026 18:13:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48574354</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48574354</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48574354</guid></item><item><title><![CDATA[New comment by evdubs in "Lisp's Influence on Ruby"]]></title><description><![CDATA[
<p>I am pretty sure Racket's `stream` will handle this use case.<p><a href="https://docs.racket-lang.org/reference/streams.html" rel="nofollow">https://docs.racket-lang.org/reference/streams.html</a></p>
]]></description><pubDate>Sun, 14 Jun 2026 20:37:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48532385</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48532385</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48532385</guid></item><item><title><![CDATA[New comment by evdubs in "Lisp's Influence on Ruby"]]></title><description><![CDATA[
<p>Threading macros are nice, though, right?<p><a href="https://docs.racket-lang.org/threading/introduction.html" rel="nofollow">https://docs.racket-lang.org/threading/introduction.html</a></p>
]]></description><pubDate>Sun, 14 Jun 2026 17:42:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48530234</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48530234</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48530234</guid></item><item><title><![CDATA[New comment by evdubs in "Looking Forward to Postgres 19: It's About Time"]]></title><description><![CDATA[
<p>The cool thing about Dolt is that you [eventually] get the features of the databases (MySQL, PostgreSQL, SQLite, MongoDB) they emulate, so you can have your PG 19 temporality features as well as branching and merging.</p>
]]></description><pubDate>Fri, 12 Jun 2026 18:13:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=48507481</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48507481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48507481</guid></item><item><title><![CDATA[New comment by evdubs in "Looking Forward to Postgres 19: It's About Time"]]></title><description><![CDATA[
<p>> Recently, a new type of question has entered the database arena: what did this data look like last Tuesday?<p>This question has been answerable in Dolt for years now.</p>
]]></description><pubDate>Fri, 12 Jun 2026 18:04:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48507383</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48507383</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48507383</guid></item><item><title><![CDATA[New comment by evdubs in "Ask HN: What was your "oh shit" moment with GenAI?"]]></title><description><![CDATA[
<p>I tried to see if an LLM service provider could rewrite some legal docs where nothing was hallucinated in order to follow a consistent format to see what may be missing in the document. It could do that.<p>Next, I wanted to see if this could be done with a local LLM. Gemma-4 handles this fine with an 8GB video card and a large context (128k).<p>Next, I wanted to see if the model could also OCR these docs and translate them. The same model can handle that quite well.<p>This was when I realized LLMs should be great for handling work where:<p>- I already know what I want to do<p>- I already know how to do it<p>- I don't think this task will help develop skills I find to be valuable<p>- If I have to do it manually myself, I will probably cut corners<p>So now I view LLMs through the lens of, "what work can I send to an LLM that I otherwise would not really care about doing."</p>
]]></description><pubDate>Fri, 05 Jun 2026 20:01:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48417445</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48417445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48417445</guid></item><item><title><![CDATA[New comment by evdubs in "Learn SQL Once, Use It for 30 Years"]]></title><description><![CDATA[
<p>> I would emphasize the importance of batching and set operations.<p>Please, preach your gospel more loudly and frequently. It always feels like people complain about RDBMSs being slow because they run insert queries one at a time.</p>
]]></description><pubDate>Thu, 04 Jun 2026 07:52:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=48395524</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48395524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48395524</guid></item><item><title><![CDATA[New comment by evdubs in "Why Janet? (2023)"]]></title><description><![CDATA[
<p>S-expressions. Defining data in JSON or XML is way worse than S-expressions.</p>
]]></description><pubDate>Tue, 02 Jun 2026 16:50:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48372787</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48372787</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48372787</guid></item><item><title><![CDATA[New comment by evdubs in "Can the stockmarket swallow Anthropic, SpaceX and OpenAI?"]]></title><description><![CDATA[
<p>How much faster? How much cleaner? What tasks are you accomplishing?</p>
]]></description><pubDate>Tue, 02 Jun 2026 07:53:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=48367279</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48367279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48367279</guid></item><item><title><![CDATA[New comment by evdubs in "SQLite is all you need for durable workflows"]]></title><description><![CDATA[
<p>Wow, what an apples and aliens comparison. You add a bunch of transaction delays to your postgresql case because you can access a database over a network, but you use transaction batching for sqlite? Maybe just compare a local postgresql with/without batching to a local sqlite with/without batching to be much less misleading.</p>
]]></description><pubDate>Sat, 30 May 2026 05:57:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=48333080</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48333080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48333080</guid></item><item><title><![CDATA[New comment by evdubs in "GTA 6 Developers Unionize"]]></title><description><![CDATA[
<p>> What’s an example of a unionized vs non unionized group producing the same thing where unionized is better?<p>Here's a layup: art. Remember the writer's union strike in 2007-2008? All of the shows whose writers were on strike that still went on were terrible.<p>Edit: also, the purpose of a union is not to "produce something better". The purpose of a union is to protect workers' rights. They generally serve their purpose very well.</p>
]]></description><pubDate>Fri, 29 May 2026 18:54:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48327682</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48327682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48327682</guid></item><item><title><![CDATA[New comment by evdubs in "GTA 6 Developers Unionize"]]></title><description><![CDATA[
<p>Is it so difficult to say, "You're right. I'm wrong. There are actually unions for autoworkers in both China and Japan." ?</p>
]]></description><pubDate>Fri, 29 May 2026 18:52:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48327645</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48327645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48327645</guid></item><item><title><![CDATA[New comment by evdubs in "I keep bouncing off the Scheme language"]]></title><description><![CDATA[
<p>If you're referring to C# (and Java) being the Kingdom of Nouns where a type like ArrayList is defined and contains its methods, sure, Lisp is not exactly like that, but I feel like conventions give you a similar experience. For example, functions related to hash tables all have `hash` in their name and are either constructors or they take a `hash` argument. They are contained in their own file (hash.rkt).<p>Also, doesn't inheritance interfere a bit with your "functions aren't tied concretely together to types" observation? You can examine a source file for ArrayList, but if it extends List, you may not see everything you expect to see, and would just defer to the docs to help you out (or click through more source files).<p>I assume Racket contracts can handle your concern about relating functions and types. An IDE or static analysis tool can help you find all of the functions that operate on a `dict` type if you don't want to rely on conventions where you just seek out a dict.rkt file.<p>For what it's worth, coming from lots of Java experience, as a Racket novice, I poked around the Racket internals and added Candlesticks to its `plot` library [0] and removed a call to a deprecated gdk function that was causing overhead when drawing text [1]. It never felt like an insurmountable task just because methods aren't defined within types.<p>By finding problems with Lisp, you are finding problems with s-expressions, which, to me, are so plainly superior to XML and JSON for defining data that I wish more languages would at least consider adopting them for data definitions.<p>[0] <a href="https://github.com/racket/plot/commit/7f38feaf6e28a1decec93d0789cafcc28b86d6ee" rel="nofollow">https://github.com/racket/plot/commit/7f38feaf6e28a1decec93d...</a><p>[1] <a href="https://github.com/racket/gui/pull/95" rel="nofollow">https://github.com/racket/gui/pull/95</a></p>
]]></description><pubDate>Mon, 25 May 2026 08:18:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264615</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48264615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264615</guid></item><item><title><![CDATA[New comment by evdubs in "I keep bouncing off the Scheme language"]]></title><description><![CDATA[
<p>Assuming your comment applies to Common Lisp as well, if Scheme (and Lisp) truly was, "hard to read, unfit for most purposes and that even proficient coders never seem to fully grasp," it wouldn't be the language that introduced so many features later implemented in other languages.<p>> Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, the self-hosting compiler, and the read–eval–print loop.<p>So many proficient coders were able to grasp features of Lisp, find the fitness of those features, and implement them in their own languages.</p>
]]></description><pubDate>Mon, 25 May 2026 02:17:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48262845</link><dc:creator>evdubs</dc:creator><comments>https://news.ycombinator.com/item?id=48262845</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48262845</guid></item></channel></rss>