Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
markusw
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
151.
▲
Show HN: Goqite, a persistent message queue Go library built on SQLite
(goqite.com)
99 points
by
markusw
3y ago
|
69 comments
152.
▲
goqite: A persistent message queue Go library built on SQLite
(goqite.com)
1 points
by
markusw
3y ago
|
0 comments
153.
▲
by
markusw
3y ago
Hey all! I'm the author of gomponents, a mature and production-ready way to build server-side HTML components in pure Go. I've seen a recent surge in interest for building simpler web apps by scraping away the SPAs, the frontend b
154.
▲
gomponents: Server-side HTML5 components in pure Go
(gomponents.com)
1 points
by
markusw
3y ago
|
1 comments
155.
▲
by
markusw
3y ago
I'm really happy you like it. :) And thank you for your comment, I really appreciate newcomer viewpoints especially. Have a look at the `Classes` helper component already available: https://github.com/maragudk/gomp
156.
▲
by
markusw
3y ago
You're welcome! :) I'm always open for feedback, so if you think there's room for improvement, feel free to open an issue for discussion on the repo. (That said, I'm fairly conservative about the API, trying to keep it s
157.
▲
by
markusw
3y ago
Hmm. I see what you mean, but <text> isn't a valid HTML element, so that wouldn't work for that alone. But try dot imports for the html package and you don't have to have a package qualifier for most of your view code a
158.
▲
by
markusw
3y ago
Love the name. :D
159.
▲
by
markusw
3y ago
I've got my own super simple service template that I use internally for this: https://github.com/maragudk/service . I don't think I've added HTMX here (because I add it when needed), but it has auth and
160.
▲
by
markusw
3y ago
Thank you for the mention! :) Relevant libraries, for those who want to dive directly into it: - https://github.com/maragudk/gomponents - https://github.com/maragudk/gomponents-htmx
161.
▲
Proposal: Alternate spelling of .go in file names
(github.com)
8 points
by
markusw
3y ago
|
0 comments
162.
▲
by
markusw
3y ago
…and it also disables FaceID. Source: just tried it. Holding the power and volume up buttons also works and is arguably easier.
163.
▲
by
markusw
3y ago
Cool! :D
164.
▲
by
markusw
3y ago
Then you did something wrong. SQLite has phenomenal performance for many workloads: https://www.golang.dk/articles/benchmarking-sqlite-performan...
165.
▲
by
markusw
4y ago
No joke: I use a local SQLite db with three tables (clients, projects, work). Accessed with a GUI client. Works great!
166.
▲
Benchmarking SQLite Performance in Go
(golang.dk)
3 points
by
markusw
4y ago
|
0 comments
167.
▲
by
markusw
4y ago
As my test above shows, use a mutex for writes in Go directly and whatever locking performance problems SQLite exhibits disappear. I suspect because of the polling used in SQLite as described elsewhere on this page.
168.
▲
by
markusw
4y ago
My mistake, this isn’t parallel. See https://news.ycombinator.com/item?id=33911491 for a parallel version with no readers.
169.
▲
by
markusw
4y ago
Okay, fair enough. I thought my previous test was parallel as well, but I was mistaken. Here's one for 64 parallel writes: https://gist.github.com/markuswustenberg/f35ab7e191137dca5f7... $ make benchmark go
170.
▲
by
markusw
4y ago
My article on using Go and SQLite in the cloud ( https://www.golang.dk/articles/go-and-sqlite-in-the-cloud ) generated some great discussions yesterday, so I thought I'd post the followup article as well, for distr
171.
▲
Distributed SQLite with LiteFS in Go
(golang.dk)
8 points
by
markusw
4y ago
|
1 comments
172.
▲
by
markusw
4y ago
I did a small benchmark on some trivial code: https://gist.github.com/markuswustenberg/8be63c6e95dc5bb50ff... Results vary a bit on my machine, but it's pretty much the same (unless I'm doing something wrong,
173.
▲
by
markusw
4y ago
SQLite is designed for concurrent access to the same db from multiple processes. All relevant locking happens in the DB file itself.
174.
▲
by
markusw
4y ago
The implementation used in this article is actually in C (which is the official, extremely well-tested one), with bindings to the Go language through something called CGo. There's no "server", it's all just code run in y
175.
▲
by
markusw
4y ago
Well, that claim is fairly easy to test. So I did: https://gist.github.com/markuswustenberg/0030360d7d4679f2656... Nothing fancy, just a small table that holds some blog posts with an ID, a title, some content, and a c
176.
▲
by
markusw
4y ago
Feel free to reach out, markus@maragu.dk
177.
▲
by
markusw
4y ago
Ooooh, I didn’t know that detail. Thank you for sharing!
178.
▲
by
markusw
4y ago
Interesting, thanks! I didn’t know this was a configurable tradeoff. Might update the article with a little bonus info.
179.
▲
by
markusw
4y ago
I believe systemd can do something similar, essentially replacing the binary and queueing network calls while doing so.
180.
▲
by
markusw
4y ago
I don’t think there’s too much difference to “regular” distributed SQLite, but I’ll have to think about that.
More ›