This wraps up a pre-trained model for SQLova. Here are some examples using the ‘bridges’ dataset. 👇
Michael Malis at !!Con 2019:
Writing SQL can be hard. SQL code is a bizarre combination of yelling and relational algebra. How can we make writing SQL easier? By embedding our own programming language in our SQL queries of course! In this talk, we’ll take a look at how you use a combination of various Postgres features to build a programming language out of SQL.
EdgeDB combines the simplicity of a NoSQL database with relational model’s powerful querying, strictness, consistency, and performance.
It boasts strongly typed schemas, native GraphQL support, a rich standard library, built-in support for schema migrations, and more.
How does a database work? What format is data saved in? How are indexes formatted? When and how does a full table scan happen? Join Connor Stack on his journey to answer these questions and more…
I’m building a clone of SQLite from scratch in C in order to understand, and I’m going to document my process as I go.
I’ve learned a lot of skills over the course of my career, but no technical skill more useful than SQL. SQL stands out to me as the most valuable skill for a few reasons:
- It is valuable across different roles and disciplines
- Learning it once doesn’t really require re-learning
- You seem like a superhero. You seem extra powerful when you know it because of the amount of people that aren’t fluent
I tend to agree. I still use (and sometimes love) ORMs and database libraries while building apps, but the more I’ve learned SQL over the years, the more I appreciate it for what it is.
Craig drills into each of his 3 points above in this excellent post.
This blog post is about Badger, the key-value database that makes it all happen under the hood, housing all Dgraph data, including Raft logs.
There are many key-value store options in Go-land. Still, the Dgraph team decided to roll their own solution 18 months back. Was it a bad case of NIH? A good idea? Would they do it all over again? This article answers those questions in-depth.
Who knew an audio post-mortem could be so fun to listen to!
On Thursday, November 8, Basecamp 3 went down for almost five hours. It was the worst outage to hit the company in a decade and a stress test of Basecamp’s practices around internal communication, customer support, and calm work. Today’s episode goes inside the company on November 8 to see how the outage unfolded.
The motivation behind NearDB:
While working on building edge applications for higher performance and lower latency there is a need store persistent data also on edge. There are multiple distributed database solutions but they are very involved and costly while having a much lower global footprint than a CDN. The idea came up to leverage ubiquitous and mature infrastructure like cloud storage and CDNs to deliver a persistent data solution from the edge.
Choosing the right open source database is an important decision. Start by asking the right questions. All too often, people put the cart before the horse, making decisions before really understanding their needs.
Solid tips by Barrett Chambers. Here’s another one courtesy of yours truly: Start your database selection journey by asking yourself, “Why not use PostgreSQL?” 😉
Imagine being able to have many connections to the same database, each one reading a separate branch or commit at the same time. Or even writing to separate branches.
This is a good idea and a testament to the versatility of SQLite. Click through to read how it works and how they’ve managed to 2x the performance of SQLite on Linux and macOS.
Careful now, ‘sled’ is in its alpha stage. Heck, its name is a recursive acronym that means “sled likes eating data”, so that should give you an indication of its state (I hope they come up with a new one once the software is stable). The project’s goals are on point:
- don’t make the user think. the interface should be obvious.
- don’t surprise users with performance traps.
- don’t wake up operators. bring reliability techniques from academia into real-world practice.
- don’t use so much electricity. our data structures should play to modern hardware’s strengths.
Dimitri Fontaine, a PostgreSQL major contributor, has written an awesome blog series on PostgreSQL data types to show how to benefit from the PostgreSQL concept of a data type.
The PostgreSQL concept of a data type is more than input validation, a PostgreSQL data type also implements expected behaviors and processing functions. This allows an application developer to rely on PostgreSQL for more complex queries, having the processing happen where the data is — for instance when implementing advanced JOIN operations, then retrieving only the data set that is interesting for the application.
The posts in this series were extracted from his book Mastering PostgreSQL in Application Development — which teaches SQL to developers so they can replace thousands of lines of code with very simple queries.
Matt Jaffe was on a recent episode of Go Time and also gave this talk at OSCON recently on indexes as a first class citizen. In this video Matt talks about a piece of software that’s purely an index, not a database, not a datastore, just the index — and optimizing that single piece of software to be very fast!
Here’s a quick breakdown of an index as a first class citizen:
- Standalone application, not just a data structure
- Horizontally scalable, distributed
- FAST, indexes should make things faster
- Flexible, integrates with other datastores and data types
Also, learn more about Pilosa to see Matt’s work in action.
Straight from the horse’s mouth:
FoundationDB is a distributed datastore, designed from the ground up to be deployed on clusters of commodity hardware.
The key-value store supports fully global, cross-row ACID transactions. That’s the highest level of data consistency possible. What does this mean for you? Strong consistency makes your application code simpler, your data models more efficient, and your failure modes less surprising.
They say it’s “actively developed and has years of production use”. I wish they’d say exactly how it’s being used in production. (Maybe they do and I haven’t found it yet?) Also, if you’re getting hung up on “key-value store”, the vision is much bigger than that.
Dimitri Fontaine shares 3 classic data-modeling anti-patterns. The UUID section lacks strong argumentation, but the real gem in this article is his advice at the end. A snippet:
My advice is to always normalize your database model first, and then only fix the problems you have with that when you actually have them. Well except in those 3% of cases where really, really, it should be done in the design phase of the project. It’s quite hard to recognize those 3% though, and that ability is hard gained with experience.
Experience is the ultimate teacher.
This is plugin is by Tim Pope (the unofficial pope of Vim plugins), so the chances of it being high quality are… high. It supports the typical RDBMSes (Pg, MySQL, Sqlite) as well as a few NoSQL flavors (Mongo, Redis).
If this is a repeat for you, then pay no attention. I was recently introduced to this tool by @jerodsanto who logged this awhile back when he found it. 💫
What do you use when your app needs to provide speed and availability to a global audience?
You need a distributed database that…
- Deploys anywhere
- Reduces latency by performing reads and writes close to users (while still enforcing consistency, even across a distributed deployment)
- Maintains uptime by tolerating faults
- Offers granular control over geographical placement of your data for GDPR compliance
Sounds like a CDN.
Craig Kerstiens put out a tweet the other day, asking:
Whats your favorite hidden gem of Postgres that you wish more people knew about?
The list of resulting hidden gems is… long. Thankfully, he aggregated them in a nice, readable, off-Twitter format. Give it a scan, you’re sure to learn something new.
Randall Degges examines the good and bad uses of Local Storage.
tldr, don’t use it to store sensitive data.
Almost every day I stumble across a new website storing sensitive user information in local storage and it bothers me to know that so many developers are opening themselves up to catastrophic security issues by doing so.
Let’s have a heart-to-heart and talk about local storage and why you should stop using it to store session data.
If so, then this Twitter thread should be a great read for you.
If you’re avoiding services like DynamoDB/Datastore/Spanner/SQS/PubSub out of fear of lock in, remember that managing Cassandra, Kafka, ZooKeeper, etc yourself is also lock in.
This framework is very much in the proof of concept stage. There’s still a lot to do.
The framework provides a seamless GraphQL interface for Rust servers. It is type-safe, ergonomic, very low boilerplate, and customizable. It has potential to be very fast. I believe that it can be one of the best experiences for GraphQL development in any language, as well as one of the fastest implementations (in part, because it seems to me that Rust and GraphQL are a great fit).
Another gem by typicode
a small local JSON database powered by Lodash (supports Node, Electron and the browser)