HNHacker News
TopNewBestAskShowJobs

evdubs

619 karma · joined August 10, 2017

submissionscomments
evdubs··on Why Janet? (2023)
S-expressions. Defining data in JSON or XML is way worse than S-expressions.
evdubs··on Can the stockmarket swallow Anthropic, SpaceX and OpenAI?
How much faster? How much cleaner? What tasks are you accomplishing?
evdubs··on SQLite is all you need for durable workflows
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.
evdubs··on GTA 6 Developers Unionize
> What’s an example of a unionized vs non unionized group producing the same thing where unionized is better?

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.

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.

evdubs··on GTA 6 Developers Unionize
Is it so difficult to say, "You're right. I'm wrong. There are actually unions for autoworkers in both China and Japan." ?
evdubs··on I keep bouncing off the Scheme language
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).

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).

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.

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.

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.

[0] https://github.com/racket/plot/commit/7f38feaf6e28a1decec93d...

[1] https://github.com/racket/gui/pull/95

evdubs··on I keep bouncing off the Scheme language
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.

> 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.

So many proficient coders were able to grasp features of Lisp, find the fitness of those features, and implement them in their own languages.

evdubs··on I keep bouncing off the Scheme language
> types don’t have their core functions associated with them concretely.

They do in Racket? You look at the "List" documentation and you find all of the functions for lists. Likewise with hash tables, numbers, strings, sequences, files, etc.

> The only way to know strcat, puts, and strlen exist is…

... to look at the documentation on docs.racket-lang.org. The powerful search includes results not only for the standard ("batteries included") library reference, but also the standard guide and 3rd party libraries.

> once I had my traits that I also wanted compile-time attributes à la Rust/C# and there’s no clean way to add those to Lisp’s syntax

I mean, why are you not able to do (trait whatever) before (define whatever) or (for-each whatever) or (let whatever)?

> Lisp is neat but it just doesn’t fit in the future of programming that Rust and C#

Have you tried it or did you just try to figure out why you don't think you like it from an LLM?

evdubs··on The last six months in LLMs in five minutes
> Widespread supply chain attacks.

This is a bad thing.

evdubs··on Access to frontier AI will soon be limited by economic and security constraints
What's the likelihood that universities eventually become open model providers?
evdubs··on The US is winning the AI race where it matters most: commercialization
> would be the worst geopolitical move of the century

From a political perspective, perhaps.

> doing it forcefully just isn't something China would realistically do

From a military perspective, taking Taiwan by force would allow China to, "threaten the sea lines of communication and to strengthen its sea-based nuclear deterrent in ways that it is unlikely to otherwise be able to do." Taiwan would give China access to the Philippine Sea. https://gwern.net/doc/technology/2022-green.pdf

evdubs··on Cloudflare to cut about 20% of its workforce
Their valuation is crazy. Trading at $260, with no profit, their price:sales ratio was 36x (extremely high). Now, trading at $195, their price:forward earnings ratio is 130x (extremely high). Unless they crushed earnings and revenue estimates and juiced their forward guidance, Cloudflare stock could have gone anywhere. Also, the stock is trading where it was a month ago.
evdubs··on Today I've made the difficult decision to reduce the size of Coinbase by ~14%
Indeed. COIN releases earnings on May 7 in the evening. Q4 2025 was the first quarter where they had a negative EPS in the past couple years. Most analyst estimates for Q1 2026 are trending downward. This "difficult decision" seems to be all about getting in front of a bad earnings release.
evdubs··on The smelly baby problem
With the hope of receiving a reply with proof....

There is absolutely no way a 3 month old is potty trained. As in, the 3 month old infant can communicate and use a toilet. They likely can't even hold their head up at that age.

https://www.babycenter.com/baby/diapering/infant-potty-train... indicates that a potty can be introduced from 4- to 6-months old. Potty trained by 18 months is much more reasonable.

evdubs··on Why I still reach for Lisp and Scheme instead of Haskell
> Lisp hackers have been effortlessly reshaping the language for decades using the powerful macro system and extending and bending the language to their will.

I've written a bit of Racket code (https://github.com/evdubs?tab=repositories&q=&type=&language...) and I still haven't written a macro. In only one case did I even think a macro would be useful: merging class member definitions to include both the type and the default value on the same line. It's sort of a shame that Racket, a Scheme with a much larger standard library and many great user-contributed libraries, has to deal with the Scheme/Lisp marketing of "you can build low level tools with macros" when it's more likely that Racket developers won't need to write macros since they're already written and part of the standard library.

> But the success of Parsec has filled Hackage with hundreds of bespoke DSLs for everything. One for parsing, one for XML, one for generating PDFs. Each is completely different, and each demands its own learning curve. Consider parsing XML, mutating it based on some JSON from a web API, and writing it to a PDF.

What a missed opportunity to preach another gospel of Lisp: s-expressions. XML and JSON are forms of data that are likely not native to the programming language you're using (the exception being JSON in JavaScript). What is better than XML or JSON? s-expressions. How do Lisp developers deal with XML and JSON? Convert it to s-expressions. What about defining data? Since you have s-expressions, you aren't limited to XML and JSON and you can instead use sorted maps for your data or use proper dates for your data; you don't need to fit everything into the array, hash, string, and float buckets as you would with JSON.

If you've been hearing about Lisp and you get turned off by all of this "you can build a DSL and use better macros" marketing, Racket has been a much more comfortable environment for a developer used to languages with large standard libraries like Java and C#.

evdubs··on Ubuntu 26.04
This is my experience, too, and my solution has been to run Debian.
evdubs··on Ubuntu 26.04
Doesn't snap come back on the next OS upgrade?

I was using Ubuntu and installed the apt version of Firefox as the snap version would not open html files in locations like /var/tmp and would not work with USB devices. Every time I ran `do-release-upgrade`, all of that work would need to be redone. It was very annoying.

evdubs··on What if database branching was easy?
I, too, have used it. It works well and is especially great for data sharing.
evdubs··on Taste in the age of AI and LLMs
There must be a table with three columns and 4-6 rows.
evdubs··on What Claude Code chooses
You specify which software patents you want it to use?
evdubs··on Rob Pike goes nuclear over GenAI
> When I read Rob's work and learn from it, and make it part of my cognitive core, nobody is particularly threatened by it. When a machine does the same it feels very threatening to many people, a kind of theft by an alien creature busily consuming us all and shitting out slop.

It's not about reading. It's about output. When you start producing output in line with Rob's work that is confidently incorrect and sloppy, people will feel just as they do when LLMs produce output that is confidently incorrect and sloppy. No one is threatened if someone trains an LLM and does nothing with it.

evdubs··on Lotusbail npm package found to be harvesting WhatsApp messages and contacts
Is there no Apache Commons for Javascript? It'd be nice to have a large library from a 'trusted' group.

https://en.wikipedia.org/wiki/Apache_Commons

evdubs··on The programmers who live in Flatland
I am not so sure how it works, but you can define your own evaluation handler for `eval` which, I assume, can be as restrictive as you need if you're dealing with untrusted data.
evdubs··on The programmers who live in Flatland
> Show me a convincing example of something that's simple/clear/elegant/superior in Lisp, and how difficult/complicated/ugly/impossible it would be to do the same thing in Java/C++/Ruby/Python.

Serialize and deserialize data. You're currently using something like XML or JSON for a human readable data serialization format in those languages. JSON and XML are not first class components of those languages. S-expressions are a better version of JSON and are first class components of Lisp.

evdubs··on Racket v9.0
Java has the VisualVM. https://visualvm.github.io/

I would love a similar tool for Racket.

evdubs··on Racket v9.0
I use it for trading options.

https://github.com/evdubs/renegade-way

evdubs··on Tether is now the 17th largest holder of US debt
Ponzi schemes collapse when the participants ask for their money back (redemptions). Tether handled $17B in redemptions in 2022 when their market cap peaked at $83B.
evdubs··on Tether is now the 17th largest holder of US debt
The auditor BDO publishes attestations every quarter.

https://tether.to/en/transparency/?tab=reports

evdubs··on Tether is now the 17th largest holder of US debt
You don't need to trust them, just BDO who attests to Tether's holdings.
evdubs··on Tether is now the 17th largest holder of US debt
Tether banks with Cantor Fitzgerald. Everyone trading large amounts of US Treasury bills knows who Cantor Fitzgerald is.
← PreviousPage 2 of 8Next →