lukaszkorecki | 3 years ago | on: Ask HN: Is Erlang an albatross to Elixir adoption?
Plugawy's comments
Plugawy | 4 years ago | on: How to use RabbitMQ in service integration
Plugawy | 5 years ago | on: RethinkDB: why we failed (2017)
As a former RethinkDB user (we have migrated to Postgres) I actually don't miss it as much as I would - JSONB in PG does what we need, and the real-time features of RethinkDB never really delivered because of various performance issues in the database itself.
Plugawy | 5 years ago | on: Ask HN: Do you create music? let's hear it
Plugawy | 5 years ago | on: A better Kubernetes from the ground up
Plugawy | 5 years ago | on: Vimflowy
Plugawy | 5 years ago | on: Eliminating Task Processing Outages by Replacing RabbitMQ with Apache Kafka
Plugawy | 5 years ago | on: Launch HN: Doppler (YC W19) – Easily manage your env vars and secrets
Plugawy | 5 years ago | on: Eliminating Task Processing Outages by Replacing RabbitMQ with Apache Kafka
Plugawy | 5 years ago | on: AKAI MPC 3000 sampler/sequencer drum machine
Of course if it’s not a factor for you (it’s not for me, I like my One) - then it’s indeed amazing.
Plugawy | 5 years ago | on: Nubank acquires Cognitect
Plugawy | 5 years ago | on: Programming at the REPL (2018)
Differences:
- Clojure has namespaces, so you can reload just one unit rather than the whole code - I guess load/require would be closest - You can also just evaluate a single form (e.g. a function definition) leaving everything else intact - if you're using something like Component for state management, then you never restart the repl, just stop the system, refresh your repl state and start the system again - closest thing to 'refresh on request' from Rails' dev mode or PHP, but without the nasty surprises
The drawback is that restarting a repl is a slow process, but it's something you do very rarely. Some folks keep their repl process around for weeks.
Plugawy | 5 years ago | on: Why is Kubernetes getting so popular?
Previously we had to deploy a lot of monitoring on each VM to ensure that containers are running, we get alerted when one of the application crashed and didn't restart because Docker daemon didn't handle it etc etc.
Now, we only run stateless services, in a private VPC subnet, Load balancing is delegated to ALB, we don't need service discovery, meshes etc. Configuration is declarative, but written in much friendlier HCL (I'm ok with YAML, but to a degree). ECS just works for us.
Just like K8S might work for a bigger team, but I wouldn't adopt it at our shop, simply because of all of the complexity and huge surface area.
Plugawy | 5 years ago | on: An introduction to RabbitMQ
You don't have to pool connections as channels are multiplexed by them.
Things to watch out for:
- opening too many channels - these map to Erlang processes and can overwhelm your server if you go over ulimits - sharing consumer channels between threads - you might see weird behavior (e.g. acking wrong messages etc)
We've built own library/framework for creating resilient consumers, and it enforces mapping 1:1 channels and consumer threads, as well as automatic reconnections and channel clean ups.
lukaszkorecki | 5 years ago | on: Ask HN: What are your favorite developer-efficiency tips?
Plugawy | 6 years ago | on: Overthinking it and the value of simple solutions (2019)
Author here - I should have tweeted that instead of writing a blog post
Plugawy | 6 years ago | on: Clojure – Fascinated, Disappointed, Astonished (2016)
Plugawy | 6 years ago | on: Clojure – Fascinated, Disappointed, Astonished (2016)
Plugawy | 6 years ago | on: KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
Plugawy | 6 years ago | on: KIP-500: Replace ZooKeeper with a Self-Managed Metadata Quorum
Coming from Ruby/Go/JS to Clojure was definitely harder than I expected but rather than fighting "this stupid JVM" it made more sense to buy into the idea of how Clojure is built and used.