Putting a full power search engine in Ecto
My diatribe about adding support for ParadeDB to Ecto
The latest blog posts to take off on Hacker News. 1,888 posts.
My diatribe about adding support for ParadeDB to Ecto
( This is part of a series on the design of zest . See the list of posts here .)
Introduction When modeling a Postgres database, you probably don’t give much thought to the order of columns in your tables. After all, it seems like the kind of thing that wouldn’t affect storage or performance. But what if I told you that simply reordering your columns could reduce the size of your tables and…
Marginalia Search now properly supports phrase matching. This not only permits a more robust implementation of quoted search queries, but also helps promote results where the search terms occur in the document exactly in the same order as they do in the query. This is a write-up about implementing this change. This is…
Last year I was talking with a non-Italian, trying to convey to them how nearly the entirety of contemporary Italian music rests on the shoulders of Gianni Maroccolo — and the parts that don’t, should. In an attempt to find a way out of that conversation, they casually asked “wouldn’t it be cool to map out who…
Benchmarks & Tips for Big Data, Hadoop, AWS, Google Cloud, PostgreSQL, Spark, Python & More...
Ferroelectric memory (FRAM) is an interesting storage technique that stores bits in a special "ferroelectric" material. Ferroelectric memory...
databases plus wibbly wobbly timey wimey stuff
This is my personal site, where I write about Ruby, programming, and any of my varied fascinations.
To help crime analysts get started with python, I am early releasing Data Science for Crime Analysis with Python, an introductory book for analysts.
The article explains the Bell inequality using Monte Carlo simulations in Python, and shows how non-local action-at-a-distance can be used to break it with entangled qubits.
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
Lessons Learned: Sharding for startups is a technical post about database scalability. What caught my eye was the term . What an odd term — “sharding.” Why would a database be described that way?
Exporting graph data to text file and SVG with Datalog
A new paper from Google Research describing custom syntax for analytical SQL queries that has been rolling out inside Google since February, reaching 1,600 "seven-day-active users" by August 2024. A …
Build a retrieval system with semantic, full-text, and fuzzy search in Postgres to be used as a backbone in RAG pipelines.
C. J. Date's Sigmod 1983 keynote, "Database Usability", was prescient. Usability is the most important thing to the customers. They care les...
Data is reductive. It objectifies. It bureaucratizes. But is it a bad idea?
As developers, we use databases all the time. But how do they work? In this series, we'll try to answer that question by building our own SQLite-compatible…
Advice: When you are making a new application that requires persistent storage of data, like is the case for most web applications, your default choice should be Postgres .
I would simply use delimiter characters to delimit data.
When the PostgreSQL project makes a release, the primary artifact of that is the publication of a source code tarball. That represents the output of all the work that went into the creation of the PostgreSQL software up to the point of the release. The source tarball is then used downstream by packagers to make binary…
As a consultant, I have been called in to review and, in many cases, replace dozens of half-finished, abandoned, and sometimes forgotten data infrastructure projects.
I've been thinking a lot about personal data lately: where it's stored, how to extract it, and what to do with it. Here's where I landed.
rqlite is a lightweight, open-source, distributed relational database written in Go. It is built on the Raft consensus protocol and uses SQLite as its storage engine. Development of 9.0 has begun and aims to reduce disk usage by approximately 50%. This goal will be achieved through a high-level design overhaul…
And why it is so easy to get wrong...
A high-level overview of how PostgreSQL stores data on disk, covering segments, pages and more.
Here’s a little “fake stats in the wild” gem that I think you and your followers will find at the least somewhat amusing.