Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
matharmin
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
61.
▲
by
matharmin
2y ago
Is this Java/JVM-specific? How are changes captured on the client? From reading through the docs it seems like the CDC work is done in the JDBC driver (SyncLite Logger), but I had to read quite far to see that, and it's difficult
62.
▲
by
matharmin
2y ago
That depends on where you live. In my area, labor is cheap and the costs of panels, batteries and inverters came down significantly over the last 5 years. You can now break even on electricity costs for a residential pitched-roof installati
63.
▲
by
matharmin
2y ago
The article is from 2016, and that point doesn't hold anymore. If you take the Functional Source License (from the current fair.io site), there is no restriction on the number of users or company size - it typically only prevents compe
64.
▲
by
matharmin
2y ago
The article is from 2016, and quite a bit has changed since then - both in the ecosystem (many previously "open source" companies moving away from that model), and in the new licenses available to be used. I really like the Functi
65.
▲
by
matharmin
2y ago
Yeah, I've dealt with some of those edge cases on AWS and GCP. Some examples: 1. I've seen a delay of hours without any messages being sent on the replication protocol, likely due to a large transaction in the WAL not committed wh
66.
▲
by
matharmin
2y ago
1. Do you use logical or physical replication for high availability? It seems like logical replication requires a lot of manual intervention, so I'd assume physical replication? 2. If that's the case, does that mean customers can&
67.
▲
by
matharmin
2y ago
You get concurrency in SQLite by using multiple connections - and typically a dedicated thread per connection. When using async wrappers, a good solution is connection pooling like you mentioned - exactly the same concept as used by client-
68.
▲
by
matharmin
2y ago
Postgres is usually completely happy enough with UUIDv4. Overall architecture (such as allowing distributed id generation, if relevant) is more important than squeezing out that last bit of performance, especially for the majority of web ap
69.
▲
by
matharmin
2y ago
Murder rates are now around half of what it was 30 years ago, while at the same time security around homes went up significantly (and most new developments are security estates). The increase in murder rate over the last 3 years is not sign
70.
▲
by
matharmin
2y ago
In my experience around Cape Town, it's both: High security (or more commonly electric fencing in affluent neighbourhoods) on a single house means the house is safe (or the owners are paranoid). High security on every house in the neig
71.
▲
by
matharmin
2y ago
It's fairly new, but at a couple hundred apps. Lots of indie developers, as well as a couple of larger companies.
72.
▲
by
matharmin
2y ago
My team publishes a cross-platform library/SDK with support for Flutter, React Native, Web and KMP. Right now, we're seeing a lot of interest in Flutter for new cross-platform apps. I personally find it a really pleasant developme
73.
▲
Tldraw – diagram drawing library for React
(tldraw.dev)
1 points
by
matharmin
2y ago
|
0 comments
74.
▲
by
matharmin
2y ago
This is a great list to start with. Postgres logical replication is great for capturing changes, but the documentation is really lacking, and gives the impression that it was really just designed for Postgres -> Postgres replication, wit
75.
▲
by
matharmin
2y ago
These are decent GPUs for anything other than heavy gaming. I'm driving two 4k screens with it, and even for some light gaming (such as factorio) it's completely fine.
76.
▲
by
matharmin
2y ago
These days graphics cards do (optional) frame generation, which gives a much higher framerate than what the game can natively do. Still not sure whether that will get you to 1khz, but it would be closer at least.
77.
▲
by
matharmin
2y ago
If you just need one or two of the commands, just using those queries directly is easy. If you want to support all of them, including handling all the different Postgres versions, it becomes quite a lot to implement.
78.
▲
by
matharmin
2y ago
It's actually not exactly 50K, and likely varies across Chrome/V8 versions, operating system and/or machine architecture. On my browser the threshold is around 22500 elements. For a quick test, see [1]. The difference in V8 a
79.
▲
by
matharmin
2y ago
Updated in 2022, but I don't see anything on <Suspense> for example. That doesn't necessarily mean the info is now wrong, but it's definitely not complete anymore.
80.
▲
by
matharmin
2y ago
What I find interesting is that this approach means the query plan is chosen when "compiling" the statement, not when running it. However, there are still some cases where SQLite will recompile the statement when running, such as
81.
▲
by
matharmin
2y ago
This sounds like the "Closest pair of points problem", which should have fast solutions - O(n log(n)) comparisons instead of O(n^2), which makes a huge difference when you have 10 million vectors. You might not find an off-the-she
82.
▲
by
matharmin
2y ago
Just to expand on this - ElectricSQL and PowerSync (and some others like Evolu) use a simple but quite effective approach to get reactive queries: 1. Listen for updates to the table(s) used by the query, using SQLite's update hook or s
83.
▲
by
matharmin
2y ago
The JSON duality views is quite a neat idea. You can get something similar in SQLite with normal views and triggers using JSON1 functions, but it would be a lot of effort to create those triggers manually.
84.
▲
by
matharmin
3y ago
The sqlite_async lib uses WAL mode by default.
85.
▲
by
matharmin
3y ago
From some further testing: 1. With a batch size of 10k, there is a negligible difference in write performance on my machine (with SQLite taking around 10% longer). 2. Reads are still slower, with the majority of the time spent in decoding.
86.
▲
by
matharmin
3y ago
Author of the sqlite_async package here. There isn't anything obviously wrong with how the lib is used - the writes are properly batched in a single transaction, but the performance is much slower than expected. From a quick look, garb
87.
▲
by
matharmin
3y ago
When it works it's that simple. When it doesn't - perhaps because of some incompatibility between the native model and a recent Expo update, it's hours of debugging through the different layers to figure out what's going
88.
▲
by
matharmin
3y ago
If you don't need any native plugins other than those provided by Expo Go, then yes. If you do need other libraries, or add native code yourself, the package system becomes a nightmare. It is NPM packages on top of Cocoapods on top of
89.
▲
by
matharmin
3y ago
Conceptually that's not hard, but in practice an approach like that can significantly increase the complexity of the app: 1. Do you store the tree structure for every table in your app? If you have 20 tables that could be edited offlin
90.
▲
by
matharmin
3y ago
I have a recent example of rolling out IPv6 in AWS: 1. Create a new VPC, get an auto-assigned /56 prefix from AWS. 2. Create subnets within the VPC. Each subnet needs an explicitly-specified /64 prefix. (Maybe it can be auto-assig
More ›