
Yes you can put a database in a container... fight me | Unemployed Bum | Sold @instaclustr to @NetApp | @rust is cool
Christchurch, NZ
Joined May 2012
- Tweets1.3K
- Following596
- Followers659
- Likes2.1K
Pinned Tweet
It's official!
We just closed our acquisition of @Instaclustr, paving the way for NetApp as a PaaS.
Read more from @AnthonyLye on how we can deliver a best-of-suite platform for CloudOps, making it easier for our customers to succeed in complex operational environments. ntap.com/3wDzvXM
There is going to be a couple of generally left leaning / centrist technologists who take a weird hard right turn because they receive some pushback on their positive views on AI… I don’t care or think anyone should change their mind cause of this. Just marking my prediction now
I cant help but feel that the meta will soon be applying this to the software factory itself. I already struggle with the pace of change around agent tooling, observability and ensuring my factory (and changes I made to it) is better than it was a week ago
How does anyone use this stuff on an ongoing basis github.com/DietrichGebert/po… there is so much out there with like 100k+ GH stars and maybe rudimentary evidence from 4 months ago that it was kind of good?
lol this is a chained shitpost... but everyone is going to start experiencing shill issues way harder nowadays
Me using "democratizing" to describe my product 10 years ago - wise, noble, man of the people.
You using "democratizing" to describe your product now - Cringe, grasping for PMF, probably don't like anything thats good
Today is my last day at @Instaclustr. Sad to leave such a rad bunch of amazing humans, excited to spend more time with another rad bunch of amazing humans ( family and friends).
Ben retweeted
Looks like Redis is trying to take over the all the OSS Redis libraries.
Jedis, Lettuce, and redis-py are down, they are now threatening redis-rs (link in reply).
Whoever is responsible for the Microsoft Authenticator push notification flow for otp has done a damn fine job
Super excited to be a part of the OpenSearch foundation as it creates license stability and confidence in collaboration.
We are pleased to announce the launch of the OpenSearch Software Foundation, a community-driven initiative that will support OpenSearch and its search software, which is used by developers around the world.
View the announcement: ntap.com/47spA88
#opensource #opensearch
Ben retweeted
We are pleased to announce the launch of the OpenSearch Software Foundation, a community-driven initiative that will support OpenSearch and its search software, which is used by developers around the world.
View the announcement: ntap.com/47spA88
#opensource #opensearch
Bwahahahahah good luck elastic.co/blog/elasticsearc….... Watch this space.. the reason why they are really doing this will become evident soon
The number of people who thought Telegram was a secure e2e messaging platform with no government ties and not just an unmoderated social network with "interesting" investors is hilarious
This whole post is the best example of how SQL is not great, but it's the best solution we have to the problem right now
For as powerful as it is, SQL isn't exactly a user friendly language to work in. Debugging SQL can be slow and painful. But, you can write more legible SQL by taking advantage of one of the least used functionalities: CTEs (Common Table Expressions).
CTEs are essentially a temporary view within a query.
CTEs are named, and then can be reference later.
CTEs can build upon each other, essentially you get to create your own smaller foundational building blocks for a query just like you would in code.
There are also recursive CTEs, but we'll save that one for another day.
Lets start to take a look at them.
I'm going to start with a query for a project management tracking app that will give me all users current tasks:
WITH users_tasks AS (
SELECT
users.email,
array_agg(tasks.name) as task_list,
projects.title
FROM
users,
tasks,
project
WHERE
users.id = tasks.user_id
projects.title = tasks.project_id
GROUP BY
users.email,
projects.title
)
Using the above CTE I could query it with:
SELECT *
FROM users_tasks;
But where it gets more interesting is when you want to chain various pieces together. So while I have all tasks assigned to each user here, perhaps I want to then find which users are responsible for more than 50% of the tasks on a given project, thus being the bottleneck. To oversimplify this we could do it a couple of ways, total up the tasks for each project, and then total up the tasks for each user per project:
total_tasks_per_project AS (
SELECT
project_id,
count(*) as task_count
FROM tasks
GROUP BY project_id
),
tasks_per_project_per_user AS (
SELECT
user_id,
project_id,
count(*) as task_count
FROM tasks
GROUP BY user_id, project_id
),
Then we would want to combine and find the users that are now over that 50%:
overloaded_users AS (
SELECT tasks_per_project_per_user.user_id,
FROM tasks_per_project_per_user,
total_tasks_per_project
WHERE tasks_per_project_per_user.task_count > (total_tasks_per_project / 2)
)
Now let me combing all of it to get a comma separated list of tasks from all over loaded people so I can then go and figure out how to reprioritize.
--- Initial query to grab project title and tasks per user
WITH users_tasks AS (
SELECT
users.id as user_id,
users.email,
array_agg(tasks.name) as task_list,
projects.title
FROM
users,
tasks,
project
WHERE
users.id = tasks.user_id
projects.title = tasks.project_id
GROUP BY
users.email,
projects.title
),
--- Calculates the total tasks per each project
total_tasks_per_project AS (
SELECT
project_id,
count(*) as task_count
FROM tasks
GROUP BY project_id
),
--- Calculates the projects per each user
tasks_per_project_per_user AS (
SELECT
user_id,
project_id,
count(*) as task_count
FROM tasks
GROUP BY user_id, project_id
),
--- Gets user ids that have over 50% of tasks assigned
overloaded_users AS (
SELECT tasks_per_project_per_user.user_id,
FROM tasks_per_project_per_user,
total_tasks_per_project
WHERE tasks_per_project_per_user.task_count > (total_tasks_per_project / 2)
)
SELECT
email,
task_list,
title
FROM
users_tasks,
overloaded_users
WHERE
users_tasks.user_id = overloaded_users.user_id
CTEs won’t always be quite as performant as optimizing your SQL to be as concise as possible. But generally what they will be is more readable and thus easier to debug and collaborate with others on.
While the formatting may not look amazing on twitter, give them a shot the next time you have to write some SQL report.
Truth. You do enough serious GenAI stuff, you end up spending most of your time on the same old ML and data science problems
Ben retweeted
The difference between Kafka 4.0 and 3.0 will be awesome:
- No ZooKeeper
- Tiered Storage
- New Rebalance Protocol (848)
- EOS support in Connect
- State Updater Thread in Streams
- Improved Txn Protocol (890)
- Custom Stream Task Assignment (924)
#apachekafka is on a roll!















