I don't use my car that often but when I do I want to be able to access my music library. Right now I'm stuck with Plex and Prism on iOS because other solutions are not good in that regard as far as I've seen in my testing.
516 karma · joined November 25, 2014
I don't use my car that often but when I do I want to be able to access my music library. Right now I'm stuck with Plex and Prism on iOS because other solutions are not good in that regard as far as I've seen in my testing.
Software wise, I use Fedora Server, although if I had to reinstall now I would use AlmaLinux because I don't need the new stuff coming with Fedora Server on my NAS.
I appreciated some things, like the fact that the syntax is close to Go, the easy interop with C, the fast compilation, somewhat complete stdlib.
Other things I didn't like much: pointers have changed to '^', I'm sure there's a reasonable but I just don't like it, I'm used to '*'. Error handling is a PITA as far as I can remember. Meta programming felt clunky.
This is all subjective based on my limited experience, but I felt that Zig worked better for me.
Configuration complexity: there are a couple of things we had to tune over the years, mainly regarding the log cleaner once we started leveraging compacted topics, but other than that it's pretty much the default config. Is it the most optimal ? No but it's fast enough. Hardware choice in my opinion is not really an issue: we started on HDDs switching to SSDs later on, the cluster continued working just fine with the same configuration.
Scaling I'll grant can be a pain. We had to scale our clusters mainly for two reasons: 1) more services want to use Kafka therefore there are more topics and more data to serve. This is not that hard to scale: just add brokers to have more capacity. 2) is when you need more partitions for a topic; we had to do this a couple of times over the years and it's annoying because the default tooling to do data redistribution is bad. We ended up using a third party tool (today Cruise Control does this nicely).
Maintenance: yes, you need to monitor your stuff. Just like any other system you deploy on your own hardware. Thankfully monitoring Kafka is not _that_ hard, there are ready made solutions to export the JMX monitoring data. We use Prometheus (prometheus-jmx-exporter and node_exporter) almost since the beginning and it works fine. We're still using ZooKeeper but thankfully that's no longer necessary, I just have to say our zookeeper clusters have been rock solid over the years.
Development overheads: I really can't agree with that. Yes, the "main" ecosystem is Java based but it's not like librdkafka doesn't exist, and third party libraries are not all "sub par", that's just a mischaracterization. We use Go with sarama since 2014, recently switched to using franz-go: both work great. You do need to properly evaluate your options though (but that's part of your job). With that said, if I were to start from scratch I would absolutely suggest starting with Kafka Streams, even if your team doesn't hava java experience (I mean learning Java isn't that hard), just because it makes building a data pipeline super straightforward and handle a lot of the complexities mentioned.
* using an external tool, just like any other RDBMS (I know and use https://github.com/golang-migrate/migrate)
* embedding migrations in the app and letting the app manage migrating up.
And yes you need to make sure GOTOOLCHAIN=auto, my colleague had to explicitly set it because it defaults to local on Gentoo.
When we migrated to it we replaced 6 prometheus servers with only 1 victoria metrics server, it was crazy efficient. We ran with a single node for all our metrics for 3 years while the number of data points observed kept growing. Today we run a 7 node cluster.
I have no idea if today Prometheus could serve our workload as efficiently but for information, a provider wanted to quote us like 300k€ per year to serve the same metrics; our setup doesn't cost anywhere near that.
Writing a tree-sitter parser is not that easy though. I wrote tree-sitter-templ to parse templ files and I still have a hard time identifying some parsing errors, especially since I had to implement a custom external scanner which in my experience was the source of a lot of bugs.
does this mean instant SEPA transfers must now be free ? Because currently my french bank charges 1€ or something for instant SEPA transfers but doesn't charge anything for non-instant SEPA transfers.
A couple of weeks ago I built a static site generator using Go, Templ and Goldmark so now I can write my articles directly in markdown. The HTML pages and CSS files are still served by Caddy.
I’m also still using Notion to write the articles but this time exporting to markdown.
IMO, any stack that lets you write articles in markdown is enough for a blog.
I have used Kagi for the last 4 months and I’m happy with the experience. The results are good enough that I rarely fallback to Google, even for searches localized to France.
This site says about the time crate: "The original datetime crate which was split out of std pre-rust-1.0" but as far as I can tell the time crate as it is now is not the original crate and is maintained. The book zero2prod uses chrono.
What's the recommended crate to use for time today ?
The two major downsides of this device in my opinion: - the battery life is terrible. If I'm on a video call not plugged in the battery lasts 2h at most and doing basic work (writing on Notion, using Slack, etc) it's at most 5h. Compared to my coworkers with M1 laptops it's just terrible. - the CPU and device gets way too hot without even doing much. I can't recommend a Framework laptop if you intend to type on it, I can't see myself using it to work without an external keyboard. Also, when I'm on a video call the CPU fan is spinning fast which is annoying.
For video calls I'm usually plugging a Logitech thing via USB-C which acts as a webcam, a microphone and an external monitor (which is a TV for me). This works surprisingly well. Sometimes I use a simple USB-A microphone and my laptop webcam, which also works. Right now with Fedora 37 beta I can't use my bluetooth headphones because something crashes with pipewire.
When the laptop is plugged into the LG monitor everything works fine and it's basically a workstation at this point. It's fast enough for what I do which is Go and Java mainly (I have a 1165G7, 32G of RAM and 1TB of SSD).
One annoying thing with an external monitor is that _something_ causes Gnome to move my windows to random workspaces when I unlock Gnome. I have no idea why; it doesn't happen when I'm not plugged in.
If you have more specific questions I'd be happy to answer.