HNHacker News
TopNewBestAskShowJobs

snthpy

973 karma · joined November 29, 2011

snthpy.at.hn

Chief Excel Officer, MAD* Scientist, Pythonista, Rustacian, PRQL Core Contributor (: ML, AI, Data)

* twitter: [@T0bias_Brandt](https://x.com/T0bias_Brandt) * github: [@snth](https://github.com/snth/) * [PRQL](https://prql-lang.org/)

submissionscomments
snthpy··on Google pulls AI model after senator says it fabricated assault allegation
I've held similar opinions in the past and debated them with friends. It's a tricky issue.

Why do need a licence to drive but not to vote? Except non-birth citizens effectively had to acquire a licence.

Philosophers have probably thought about this and can provide an answer. Unfortunately I'm not familiar with their literature.

I like Rawls' Veil of Ignorance as a principle for thinking about issues of fairness. Would I choose to live in a society where only informed citizens could vote even if that might preclude me? Probably. Hard to honestly put oneself behind that veil though.

snthpy··on What is a manifold?
Nicely done!

Initially I recoiled at the thought of the stiffness of the CD, but of course your absolutely right, at least for 2d manifolds.

snthpy··on Why is Python's OrderedDict ordered?
Thanks, How makes much more sense. The post title is dumb.

Why is Hackernews news for hackers?

snthpy··on An individual can change an organization
Also, as our Voices are becoming increasingly silenced in online discourse, either through cancelling or self-censorship, Exiting becomes one of our last avenues to effect change.
snthpy··on An individual can change an organization
Very interesting, thank you!

The following stood out to me:

"Exit and voice themselves represent a union between economic and political action. Exit is associated with Adam Smith's invisible hand, in which buyers and sellers are free to move silently through the market, constantly forming and destroying relationships. Voice, on the other hand, is by nature political and at times confrontational."

In national and international politics we see a lot of "Voice" (in these terms) but I feel they are often ineffective because they are blunted by threshold effects, i.e. the resultant change is a softmax with temperature near zero.

People don't realise and utilise the power they hold by means of "Exit", especially as wealthy consumers who engage in these debates, who have more consumption and hence more influence as it's a "one dollar, one vote" system rather "one person, one vote". See for example how effective the response to Jimmy Kimmel was. The same thing was effective against Apartheid in the 1980s and can be applied through things like the BDS Movement.

Exit applies a much more continuous pressure where the effect of each actor is cumulative whereas Voice is more discontinous and requires a critical mass.

snthpy··on Text-to-SQL is dead, long live text-to-SQL
Yeah, we deliberately left out DML to focus on DQL exclusively. I also find that appealing from a philosophical angle since it allows PRQL to remain completely functional.

I haven't thought about DML too much but what I could envision is an approach like the Elm or React architecture where you specify a new state for a table as a PRQL query and then the compiler computes the diff and issues an efficient update.

For example

    DELETE FROM table_name WHERE id = 1;
would be something like

    table_name = from table_name | filter id != 1
SQL:

    INSERT INTO table_name (id, name) VALUES (1, 'Jane');
PRQL:

   table_name = from table_name | append [{id=1, name='Jane'}]
Update is the trickiest to not have clunky syntax. For example what should the following look like?

SQL:

    UPDATE table_name SET name = 'John' WHERE id = 1;
I can think of `filter` followed by `append` or maybe a case statement but neither seems great.

Any ideas?

snthpy··on Run interactive commands in Gemini CLI
I couldn't tell from the post how this will affect Gemini's ability to assist better as a result.

I guess for Google this will be a treasure trove of real developer interactions to train on.

I might try this once Gemini 3 comes out. Until then, if you're running tmux or zellij, this seems like a worse user experience since you're in a subwindow and have less screen real estate to work with.

snthpy··on Physical activity increases total daily energy use, study shows
Agree. Much more interesting is the nugget that "your car keys always travel farther than your car" (assuming you're only using one set of course).
snthpy··on Modeling Others' Minds as Code
https://youtu.be/VLq8RPwDnMc?si=hKQWkGpA2ahTJoDn&t=397

> Pond party later. Too many ducks, too many voices, too many rules. None written down.

Still a good duck, always a good duck!

snthpy··on Show HN: I'm making a detective game built on Wikipedia
Where in the wiki is Commons Atribution?
snthpy··on Bible and Quran apps flagged NSFW by F-Droid
Seems legit. These topics should not form any part of work or government. What you do in your own time is of course completely up to you, as with any other NSFW content.
snthpy··on Who invented deep residual learning?
> That said, I do respect the extent to which he continues his credit-attribution crusade even to his own reputational detriment.

Lol, I still used to notice him before covid when he was railing against Bengio, Hinton, and LeCun. Can't believe he's still going.

snthpy··on Functions Are Asymmetric
> In my dream PL syntax a function call would be a function name followed by a tuple, and that tuple would be no different than the tuples you would use in any other part of the program

So PRQL (prql-lang.org) is kind of like that, with the limitation that control flow is limited to the List Monad bind, i.e. the tuples from one step are piped to the function call in the next step one at a time producing 0..* result tuples and the resulting multiset is flatmapped. At the moment it just transpiles to SQL but a couple of months ago I was exploring different Lambda Calculi and how to extend this to a more general PL. Alas, that won't take shape until AI is at the level that it can write that code for me. I guess LINQ and similar Language Integrated Query Languages already provide this functionality.

P.S. Writing the above made me think that it's not quite what you asked for; in the PRQL case each function receives an implicit `this` argument which is the tuple I was thinking of. However the function can also take other arguments, including keyword arguments. Those are arbitrary. I guess they are implicitly ordered and could be represented as a tuple as well. What would you see as the benefit of that?

> (and so you could use all the tuple manipulation library goodies)

Other than indexing into tuples, I can't really think of anything else, at least for single tuples. I initially thought of something like `zip(*args)` but that's only really useful when you have list of tuples or tuple of lists and then you're back in PRQL land. Indexing into tuples is also brittle and does not produce self-documenting code so I prefer the PRQL and SQL namedtuples/structs where fields are referenceable by name.

I have this suspicion that PRQL functions are parameterised natural transformations but my Category Theory at that level is too rusty to check without extra work. If that's the case though then having the explicit function arguments be simple values feels justified to me since they're just indexing families of related transformations and are not the primary data being transformed (if that makes sense?).

snthpy··on Examples are the best documentation
Totally agree but there is tldr for that.

I learned recently that tldr also has separate pages for subcommands.

snthpy··on Show HN: Open source, logical multi-master PostgreSQL replication
Not the OP nor knowledgeable in this area but I would suspect / hope postgres compatibility as a start. The last time I looked into whether I could use cockroachdb as a backend for my Airflow cluster, it wasn't possible due to compatibility issues.
snthpy··on Benefits of choosing email over messaging
Thank you. This is a very insightful comment that pinpoints something I could never quite put my finger on.

So the issue is that you need a git pull or something like it to prevent branching. Chat etc... achieves this through real-time state management. In an async setting you need something else.

snthpy··on Signal Protocol and Post-Quantum Ratchets
I'm in the opposite position: known about SPQR for decades but never heard of this meme and clearly missed it.

Can you explain the meme please because I didn't understand the hits I got when I just googled it.

snthpy··on Signal Protocol and Post-Quantum Ratchets
TIL Ozymandian. Great word. Love it. Thanks!
snthpy··on F3: Open-source data file format for the future [pdf]
Not sure if this is what you had in mind but here are the links to the two papers that I was referencing.

[1] covers the first 40 years of databases. [2] fills in the gap of the last 20 years and gives their thoughts on the future.

My apologies, the first one was actually Stonebraker & Hellerstein and didn't involve Pavlo. They're both excellent papers though for anyone working with data.

Stonebraker, for those who don't know, is the creator of Postgres, a database you might have heard of.

1: Stonebraker & Hellerstein, "What Goes Around Comes Around", 2005, https://people.csail.mit.edu/tdanford/6830papers/stonebraker...

2: Stonebraker & Pavlo, "What Goes Around Comes Around... And Around...", 2024, https://db.cs.cmu.edu/papers/2024/whatgoesaround-sigmodrec20...

snthpy··on F3: Open-source data file format for the future [pdf]
I was also concerned about the wasted overhead. However I guess it's just there for compatibility (since space is cheap) and for common encodings you'll be able to skip reading it with range requests and use your trusted codec to decode the data. Smart move imho.
snthpy··on F3: Open-source data file format for the future [pdf]
Andy Pavlo also deserves a shout out; he's an authority on databases and lives a "data oriented lifestyle". See his two "What goes around comes around ..." papers for great overviews of the past and future 50 years in databases respectively (as well as all the amazing CMU Seminar Series). I'm excited to see him involved in this.

My apologies to the Chinese coauthors who I'm not familiar with.

Bookmarked for thorough reading!

snthpy··on F3: Open-source data file format for the future [pdf]
I'm a big fan of Wes' work and Pandas was incredibly influential. However technically it wasn't his best work. In terms of selling points, I think that the Arrow data format is technically much better and more influential on the data ecosystem as a whole, see DataFusion, etc...

That said, now let me see what F3 is actually about (and yes, your comment is what actually made me want to click through to the link) ...

snthpy··on MCP Server Could Have Been a JSON File
Nope. The tool definition is just the request spec. Actually response spec was added but in June only. Who knows what resources are for, not very clear tbh.
snthpy··on In Praise of Idleness (1932)
Great quote. Thank you!
snthpy··on A new experimental Google app for Windows
Alt+Space is already a universal shortcut key binding on Windows.
snthpy··on After AI Led to Layoffs, Coders Are Being Hired to Fix 'Vibe-Coded' Screwups
What we wanted was AI that cleared our technical debt and did our maintenance so we could focus on greenfield projects.

What we got was AI producing slop on greenfield projects which we have to debug and maintain.

snthpy··on Microsoft PowerToys
One missing feature is Windows Explorer Shell integration for File Hash checks, e.g. for downloads. Hopefully it won't be too much longer until this lands: https://github.com/microsoft/PowerToys/issues/57#issuecommen...

I found OpenHashTab to be a good tool for this in the meantime: https://github.com/namazso/OpenHashTab

snthpy··on Microsoft PowerToys
One issue I had in the past was with the Advanced Clipboard/Paste so I've disabled it on my new laptop until I can figure out what the issue was.

That said, PowerToys was the first thing I installed on the new laptop.

snthpy··on A love letter to the CSV format (2024)
The benefits are that ASV / USV files are trivial to parse with simple string splitting since you don't have to worry about nesting and quoting.

Here's an example of what a USV looks like:

Folio1␟␞ Sheet1␟␞ a␟b␟␞ c␟d␟␞ ␝ Sheet2␟␞ e␟f␟␞ g␟h␟␞ ␝␜ Folio2␟␞ Sheet3␟␞ a␟b␟␞ c␟d␟␞ ␝ Sheet4␟␞ e␟f␟␞ g␟h␟␞ ␝␜

snthpy··on A love letter to the CSV format (2024)
So ASCII actually had dedicated characters for this, 0x1C-0x1F. The problem is that they are non-printing.

Unicode has rendered analogs, U+241C-U+241F, but they take more bytes to encode, which can significantly increase file size in large USV files.

So my ideal would be to use ASV files rendered as USV in editors.

https://github.com/SixArm/usv

← PreviousPage 8 of 28Next →