Hacker News new | past | comments | ask | show | jobs | submit | kenrose's comments login

I’m the CTO at OpsLevel, where we’ve been running a Rails monolith for ~6 years. We started on Rails 5, upgraded to 7, and are currently moving to 8. Before this, I worked on Rails at PagerDuty (including splitting a monolith into microservices) and on Shopify’s “majestic” monolith.

The best thing about Rails is its strong, opinionated defaults for building web applications. It handles HTTP request routing, data marshalling, SQL interactions, authentication/authorization, database migrations, job processing, and more. That means you can focus on business logic instead of wiring up the basics.

Rails isn’t as fast or lightweight as Go, but they solve different problems. For most web apps, the bottleneck is I/O, not CPU. Rails optimizes for developer productivity, not raw performance, and that tradeoff is often worth it, especially when speed of iteration matters more than squeezing out every last cycle.


>For most web apps, the bottleneck is I/O, not CPU.

We just have blog post submission on HN that suggest otherwise. At least for RoR.

Luckily we have YJIT and we are finally understanding may be we are actually CPU bound, which means we could look into it rather than always thinking it is a I/O DB Problems.


Fair enough, but the system isn’t set up to optimize for the happiness of founders and employees. It’s set up to maximize returns, which agreed ends up concentrated in a very few rich outcomes.

(btw, big fan of Lost and Founder).


Dilbert... or any place that practices continuous delivery?

Sounds like your current/previous companies have heavier weight release processes that reduces how often releases go out?


> Sounds like your current/previous companies have heavier weight release processes that reduces how often releases go out?

Yes, that probably describes 98% of companies. So what?


When you control the devices to which you're deploying to, there is little reason why you wouldn't deploy as often as you can. It helps a great deal in isolating bugs to keep your changesets small, and you can either do that by slowing down the product iterations (and getting poor feedback from each), or releasing more often. This is ubiquitous with web development.

Weekly releases (or slower) is appropriate when you rely on users to update their software or firmware. Most mobile app development does this.


> Yes, that probably describes (a very high percentage) of companies. So what?

So good practices are not widely used; therefor the state of the industry on average, is poor.


47.6% of statistics mentioned in comments are completely made up


I thought Subversion was the answer to complaints about CVS? Then git followed afterwards.

/s


if a CVS competitor comes along and names the chain subversion, then i for one will be shopping there


It's great to see jq get some releases again.

It's a big part of our check evaluation infra at OpsLevel.


I have to ask: how are you using this in prod?


He could tell you, but then he would have to kill you.


You said it, not me.


Maybe they meant movie production.


To decrypt stuff. Duh.


Not the OP but it’s a good way of encrypting your shell.


Clearly, they lost their encryption keys.


He works for Setec Astronomy.


I actually have a shell identity/company that I use for special projects that is a different anagram of Setec Astronomy.


Cootys Rat Semen?


My Socrates Note?

Montereys coast?


Acme Stoner Toys? Steamer Tycoons? Ace Monster Toys? Comatose Sentry? Amnesty Scooter? Economy Tasters? Ceremony Toasts? A Torn Ecosystem? Necessary Motto?


BMath 2005 here.

I worked with a bunch of smarter-than-me UW grads after graduating.

My “how to write large systems” takeaway from that early point in my career was to focus on the interfaces between various parts. What I’d never thought about until now is that is a very data centric viewpoint.

- What system has what data?

- In what shape?

- What shape does the next system need its data in?

- Are the interfaces between these orthogonal? Shallow? Easy to grok? Tight (as opposed to leaky)?

Great article.


great way to put it.

>Shallow?

too many deep inheritance typescript libraries being built today I find!


Same here re: opt out.

You tell the agent you want to opt out. They scream “Opt out!” at the top of their lungs.

Then another agent takes you through the plexiglass door beside the metal detector.

That agent recites a brief script about how they’ll pat you down and then do so.

Pat down complete, they check their gloves for residues in a machine. Once that’s done, you’re free to go.

It generally adds 5-10 mins to the security line. Sometimes, if they really backed up and you say opt out early enough, it can actually be faster.

You have the right to opt out and can exercise it.


In addition to the "show your dev work to the CEO" use case, tunnels (ahem, "funnels") like this are useful when you're building functionality that requires pointing webhooks at your devlocal environment.

e.g., if you're building an integration with any of the myriad of SaaS tools that fire webhooks, you can test in devlocal and have a URL of whatever.tunnel.com.

There are tools like ngrok and localtunnel that exist to do just this. I'm looking forward to replacing those with TS Funnels.


that's an excellent use-case, thanks. I didn't think of local machines when they mentioned webhooks in the article.


“You either die a hero or you live long enough to see yourself become the villain”


Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: