HNHacker News
TopNewBestAskShowJobs

pqdbr

1,461 karma · joined March 3, 2012

submissionscomments
pqdbr··on Returning to Rails in 2026
We've also been running Rails in production for 15+ years (since 2011) in two companies and it has been serving us greatly. Hiring is tough, but I definitely believe the stack makes up for it due to the productivity gains.

In late 2025 we decided to migrate one of them to Inertia. Public facing pages is already done, and we're 80% through migrating the logged in area (it's a huge app). We choose Vue.js.

It's amazing how powerful this stack is and how little you have to change in the backend.

pqdbr··on Cloudflare crawl endpoint
No. I do think that Cloudflare is a great company and got where it's at today because they care for this type of issue, and has a much better chance of contacting their peering traffic partner than me because they take care of ~20% of all internet traffic, while I take care of none.
pqdbr··on Cloudflare crawl endpoint
Off-topic, but I'm having a terrible experience with Cloudflare and would love to know if someone could offer some help.

All of a sudden, about 1/3 of all traffic to our website is being routed via EWR (New York) - me included -, even tough all our users and our origin servers are in Brazil.

We pay for the Pro plan but support has been of no help: after 20 days of 'debugging' and asking for MTRs and traceroutes, they told us to contact Claro (which is the same as telling me to contact Verizon) because 'it's their fault'.

pqdbr··on Gemini 3.1 Pro
How are you prompting it to draw diagrams in drawio
pqdbr··on One Server. Small Business
One Rails app self deployed in VPS can really go a long way.

I'd add:

- Learn tailscale. It's one of those technologies that takes half a day to get used to (claude code will answer all your questions), and you'll never want to live without it in the future. SSH into your VPS, install tailscale and use `tailscale set --ssh`, and shut down `systemctl stop ssh.service`. You don't even have SSH daemon runing anymore, extra safety.

- Use a simple docker compose to run your dependencies like docker. Bind to the tailscale IP, so ports: {{ tailscale_ip_of_this_server}}:5432:5432. This way your database is not exposed to the web, but it's exposed to the tailscale. Use tailscale_ip_of_this_server in your ENV vars to rails to connect - since it's running in the same server, tailscale will route it to localhost (and with localhost latency).

- With claude, set up a second VPS, add it to the same tailscale, turn of SSHD. They can now connect directly via tailscale (try ping or sshing between them).

- Then, install claude code on this second VPS. Since postgres is bound to the tailscale IP on the main, the 'slave' can connect to it. Install postgres via docker, but have claude set up a 'streaming replication' between server MASTER and server SLAVE, using tailscale ip.

100% secure, encrypted, and now you have a postgres replication with zero data loss if something goes wrong.

In the same SLAVE, you can also install barman - claude code will help you set it up.

You then have a postgres BACKUP with point in time recovery.

There you go!

pqdbr··on Speed up responses with fast mode
I redeemed my 50 USD credit to give it a go. In literally less than 10 minutes I spent 10 USD. Insane. I love Claude Code, but this pricing is madness.
pqdbr··on Ask HN: Is Claude Down for You?
Yes, Internal server error as of 5 minutes ago.
pqdbr··on Stop Doom Scrolling, Start Doom Coding: Build via the terminal from your phone
Could you please share more? I can't make dictation work.
pqdbr··on Postgres extension complements pgvector for performance and scale
Are you using a dedicated pg instance for vector or you keep all your data in a single pg instance (vector and non-vector)?
pqdbr··on Analysis finds anytime electricity from solar available as battery costs plummet
Came in the comment section looking to see if it was just me. Had to read it 4 times
pqdbr··on Cloudflare Global Network experiencing issues
I had a lot of fun like you as well, until I got my first DDoS and bot attacks. There's a reason Cloudflare has 20% of internet traffic.
pqdbr··on Cloudflare Global Network experiencing issues
Any project that starts gaining any bit of traction get's hammered with bots (the ones that try every single /wp url even tough you don't even use Wordpress), frequent DDoS attacks, and so on.

I consider my server's real IP (or load balancer IP) as a secret for that reason, and Cloudflare helps exactly with that.

Everything goes through Cloudflare, where we have rate limiters, Web firewall, challenges for China / Russian inbound requests (we are very local and have zero customers outside our country), and so on.

pqdbr··on Cloudflare Global Network experiencing issues
I had just deployed. Started reverting commits like crazy.
pqdbr··on The lazy Git UI you didn't know you need
+1 for GitX. For some reason the most recent version in GitHub doesn't work well for me anymore, so I keep an extremely old version (Version 0.15.1964 dev (0.15.1964) in a Dropbox folder and it's my daily driver for years.
pqdbr··on The Case Against PGVector
Id love to read a blog post like this about S3 Vector buckets. Does anyone have experience with it in production?
pqdbr··on Composer: Building a fast frontier model with RL
I dropped cursor for the precise reason you mention: reliability.

Countless times my requests in the AI chat just hang there for 30+ seconds more until I can retry them.

When I decided to give Claude Code a try (I thought I didn't need it because I used Claude in Cursor) I couldn't believe how faster it was, and literally 100% reliable.

EDIT: given today's release, decided to give it a go. The Composer1 model _is_ fast, but right at the second new agent I started I got this:

> Connection failed. If the problem persists, please check your internet connection or VPN

pqdbr··on Exploring PostgreSQL 18's new UUIDv7 support
Great article, specially for this part:

> What can go wrong with using UUIDv7 Using UUIDv7 is generally discouraged for security when the primary key is exposed to end users in external-facing applications or APIs. The main issue is that UUIDv7 incorporates a 48-bit Unix timestamp as its most significant part, meaning the identifier itself leaks the record's creation time.

> This leakage is primarily a privacy concern. Attackers can use the timing data as metadata for de-anonymization or account correlation, potentially revealing activity patterns or growth rates within an organization. While UUIDv7 still contains random data, relying on the primary key for security is considered a flawed approach. Experts recommend using UUIDv7 only for internal keys and exposing a separate, truly random UUIDv4 as an external identifier.

pqdbr··on Migrating from AWS to Hetzner
Would like to know more about your postgres offering: does it offer streaming replicas and streaming backup? Or just dump stored to s3?
pqdbr··on Just talk to it – A way of agentic engineering
With Claude Code, I can 'tune' the prompt by feeling how much context the model needs to perform it's task. I can mention more files or tell it to read more code as needed.

With one hour of experience of Codex CLI, every single prompt - even the most simple ones - are 5+ minutes of investigation before anything gets done. Unbearable and totally unnecessary.

pqdbr··on Just talk to it – A way of agentic engineering
One more article praising Codex CLI over Claude Code. Decided to give it a try this morning.

A simple task that would have taken literally no more than 2 minutes in Claude Code is, as of now, 9m+ and still "inspecting specific directory", with an ever increasing list of read files, not a single line of code written.

I might be holding it wrong.

pqdbr··on Claude now has access to a server-side container environment
Same here. Even with Opus in Claude Code I'm getting terrible results, sometimes feeling we went back to the GPT 3.5 eon. And it seems they are implementing heavily token-saving measures: the model does not read context anymore unless you force it to, making up method calls as it goes.
pqdbr··on Hexatetrahedral Rails
The article has this gist:

  user.log_entries.delete_all
  user.log_entries.create!(message: "User account reset")
  user.log_entries #=> [], will be empty until reloaded
This is false. At least not in Rails 7+ (haven't tested earlier), user.log_entries will return exactly what you'd expect (one instance of LogEntry).
pqdbr··on FDA has approved Yeztugo, a drug that provides protection against HIV infection
What is the target audience for these bi-anual shots? Only populations at high risk or are we supposed to start vaccinating everyone that is sexually active?

Btw, nothing on the article about potential side effects.

pqdbr··on Kiro: A new agentic IDE
The previous title stated Kiro as being "Amazon's Cursor clone", which I agree was not adequate.
pqdbr··on Building Modular Rails Applications: A Deep Dive into Rails Engines
"one basic thing like handling file uploads" - say no more.

Actually, the article isn't even about handling file uploads - it's about deliberately creating a modular admin panel for dealing with file uploads.

It's not modularity for "framework-y" sake, but to easily deploy that admin panel in other applications with literally a one-liner.

pqdbr··on Building Modular Rails Applications: A Deep Dive into Rails Engines
Rails is not only alive and well, but actually booming.
pqdbr··on OpenAI’s Windsurf deal is off, and Windsurf’s CEO is going to Google
It has worked perfectly for me every time, and it’s such a great feature.
pqdbr··on A Deep Dive into Solid Queue for Ruby on Rails
Great writeup. I'd love to know more about how the Supervisor works, and how it. "fork[s] a separate process for each supervised worker/dispatcher/scheduler".

In a Rails app served with Puma, I've always had a hard time understanding what would be the canonical way for having a loop doing some periodic work.

I know Puma has plugin support but I don't see much documentation there.

Forking a process / threads is something that we're used having Rails / Puma take care for us.

Pressed for time and without having time to deep dive, we ended up settling with sidekiq-cron, and it's been serving us so nicely.

pqdbr··on Frequent reauth doesn't make you more secure
I'm trying to understand why my Rails application constantly logs me out in my iPhone/Chrome.

The same web app stays logged in forever in my mac and I access both of them with the same time intervals.

pqdbr··on Gemini-2.5-pro-preview-06-05
How do you choose which model to use with Claude Code?
← PreviousPage 2 of 11Next →