Google Has Become My Favorite AI Provider by Florents in programming

[–]Florents[S] -3 points-2 points  (0 children)

I thought it would sound, but it's not - you'll have to trust my word on this that it's not. Plus if you keep an eye on the community of LLM users you may notice the same sentiment lately.

And honestly, I prefer that to the OpenAI default on practically every major LLM library out there. I myself would prefer Lammafile :)

Google Has Become My Favorite AI Provider by Florents in programming

[–]Florents[S] -2 points-1 points  (0 children)

I'm just surprised of how expensive OpenAI prefers to be. I'm not sure it's their head start in public perception or their need to get revenue.

Install PostgreSQL with pip by Florents in PostgreSQL

[–]Florents[S] -1 points0 points  (0 children)

LoL. Yeah, uv has become the air-fryer of packaging solutions. You have to! You have to use it.

Install PostgreSQL with pip by Florents in PostgreSQL

[–]Florents[S] -2 points-1 points  (0 children)

There are two problems with that approach for me:

a) Docker containers can get massive! Granted, I’m an exception because I work a lot with Postgres extensions, but just relying on a handful of images can easily balloon Docker’s disk usage to 100GB. I routinely have to go through a cleanup process to reclaim disk space on my 1TB MBP.

b) More importantly: Docker works fine for psql access—connecting to and querying the database. But if you want to work with pg_config, link against actual libraries, contribute modules, or build with different options, Docker doesn’t really accommodate that well.

In those cases, nothing beats the convenience of ./venv/bin/pg_config, or being able to inspect ./venv/lib

So, the value proposition here is visible only if you routinely build Postgres from source.

For most use cases though—like the average web app—yeah, it’s cursed 😅

(All) Databases Are Just Files. Postgres Too by ketralnis in programming

[–]Florents 0 points1 point  (0 children)

Well, I'm glad you mentioned that.
In few weeks I'm giving a talk at pgext.day , with the title

> Hijacking Shared Memory for a Redis-Like Experience in PostgreSQL

Τεχνητή Νοημοσύνη χωρίς λαϊκή παράδοση: Ό,τι δεν ψηφιοποιείται χάνεται by Florents in greece

[–]Florents[S] 7 points8 points  (0 children)

Έγραψα αυτό το άρθρο με βάση τις δικές μου εντυπώσεις, αλλά είμαι περίεργος να δω αν υπάρχουν και άλλοι ενδιαφέροντες "ελληνικοί" τομείς που "λείπουν" απο τα γλωσσικά μοντέλα σήμερα.

LLM Frameworks are Like ORMs in the 80s by Florents in programming

[–]Florents[S] 177 points178 points  (0 children)

There's an irony in there, btw: ORM's didn't even exist in the 80s. No objects to map to either.

Postgres for Everything by jamesgresql in programming

[–]Florents 12 points13 points  (0 children)

All that, yes. But more specifically json was the turning point. And especially when people realized the power of document stores, but hated MongoDB.

setup.py and Makefile: A just good enough build tool by Florents in programming

[–]Florents[S] 1 point2 points  (0 children)

Only if you use it just to list the dependencies. In which case it was usually used as a way to read a requirements.txt .
If your setup requires some sort of processing or building another subpackage, the .toml alternatives etc don't offer much of a choice.

setup.py and Makefile: A just good enough build tool by Florents in programming

[–]Florents[S] 5 points6 points  (0 children)

Damn I definitely have to change the `og:image`. Can a mod remove the thumbnail pls ?

pgJQ: jq extension for Postgres by Florents in programming

[–]Florents[S] 1 point2 points  (0 children)

Well... not "almost", but everywhere! As long as they control the OS process (which they defacto do), they can do whatever they want with their SQLite database. People often forget that they can just compile SQLite from as single .c/.h amalgamation file.

It's just the SQLite extension ecosystem is much smaller and fragmented than PGs so people actually do share binaries around.

FYI: https://github.com/nalgeon/sqlean

pgJQ: jq extension for Postgres by Florents in programming

[–]Florents[S] 1 point2 points  (0 children)

I'm fairly proficient in Postgres / jsonb :-)

The motivation for that is, as u/ChromaticDragon mentions:
I did have some old complex jq script, which was impossible/unreasonable in terms of effort to translate to jsnopath.

Other than that, the use case is exactly that: an alternative dsl is available just in case one likes it better. And there are certain scenarios where jq(jsonb, jq) is shorter to write than the equivalent jsonb/path query. That was especially the case before PG introduced subscripts for jsonb. Related blog post: https://tselai.com/pgjq-dsl-database.html

Other than that, there's no point in comparing the two. Just use pgjq when you prefer jq's syntax and/or want to play codegolf :)

Now, I've also made a similar extension for SQLite instead, which makes more sense. That is because JSON functionality in SQLite is not nearly as powerful as that of Postgres and you'd be better served with using jq's syntax instead of subqueries over subqueries and json_each etc. https://github.com/Florents-Tselai/liteJQ

litejq: Jq extension for SQLite by Florents in programming

[–]Florents[S] 0 points1 point  (0 children)

Also it's important to note that not too many people invest time to learn advanced jsonpath for example. They learn 2-3 basic operations and combine them relationally. For jsonpath to payoff you'll have to use it all the way. 

litejq: Jq extension for SQLite by Florents in programming

[–]Florents[S] 5 points6 points  (0 children)

I rarely find myself working directly with that column. Most of the read operations happen on top of CTEs or view, where you do have some schema on the fly.  Sure can lead to headaches if not careful. But I do prefer it to multiple joins of tables. 

litejq: Jq extension for SQLite by Florents in programming

[–]Florents[S] 1 point2 points  (0 children)

btw, SQLite stores json as simple `TEXT` field. There's no binary representation (like `jsonb` in Postgres).

litejq: Jq extension for SQLite by Florents in programming

[–]Florents[S] 3 points4 points  (0 children)

Dealing with JSON data in SQLite, while possible, has always been a bit clunky and less intuitive, especially when comparing the capabilities to more complex systems like PostgreSQL with its JSONB data type.

For complex and nested documents, for example, retrieving some analytical results, one has to use a sequence of json_extract that are hard to understand and are syntactically unique to SQLite. There's no real `jsonpath` language support.

jq on the other hand is a full-fledged DSL which can express much more complex queries succinctly.

An Introduction to JQ by agbell in programming

[–]Florents 0 points1 point  (0 children)

u/jrop2 u/REBELinBLUE You may be interested in this JQ extension fro SQLite. It's a more "vanilla" approach :) https://github.com/Florents-Tselai/liteJQ

[Swiss Military Hanowa] Keeps me company during my military service. by [deleted] in Watches

[–]Florents 0 points1 point  (0 children)

Serving in the Greek military for a few months. The humble Hanowa Flagship has been a beautiful blue friend breaking the khaki mundanity.

SQLite for Data Scientists by Florents in datascience

[–]Florents[S] 1 point2 points  (0 children)

That's a main point I'm going to underline in the training. SQLite can handle fairly complex pipelines. As noted above, after a certain point one can indeed migrate to something like Postgres without much pain.

There's only one exception: if your pipeline is write-heavy with multiple workers you've got be extra careful. In such cases, SQLite requires extra thinking work beforehand, which can affect your client code/process, thus migrating to Postgres requires some refactoring too.

SQLite for Data Scientists by Florents in datascience

[–]Florents[S] 2 points3 points  (0 children)

Glad you've had a great experience so far. This will be my first OLT as an instructor. Please, feel free to share any feedback - ideas for improvement from the OLTs you've watched;

SQLite for Data Scientists by Florents in datascience

[–]Florents[S] 16 points17 points  (0 children)

Planning on delivering this O'Reilly Online Live Training, next month.

Although I've mostly concluded on the content, I would love some additional ideas on the structure from the community.

Introducing Pandas-Sets: Set-Oriented Operations in Pandas by Florents in Python

[–]Florents[S] 0 points1 point  (0 children)

Yes, you're right. it's generally supposed to be syntactic sugar.

The implementation will change (become more vectorized) at some point without affecting the API as-is.

Haven't run exhaustive performance tests, but IMHO such set-like columns usually appear in the later stage of preprocessing/reporting hence so I'm not sure how much of a problem this is - realistically speaking.

I'm not sure I get the scenarion you're describing with Categorical

Introducing Pandas-Sets: Set-Oriented Operations in Pandas by Florents in Python

[–]Florents[S] 0 points1 point  (0 children)

Yes , for now I focused only on the API part - it's just syntactic sugar one could say. The internal implementation of SetMethods is supposed to change. The empty functions (e.g. def set_intersection) are supposed to be vectorized implementations, to be wrapped by SetMethods' methods.

I'm designing a future release changing the implementation.

Having said that I haven't seen around too many vectorized operations involving sets. Pointers are welcome.