# orderedItems[].object.content
VERY common error with newbies and profiling:

They don't check that the output/thing they're profiling actually does what they think it is.

You end up profiling a command or something and you accidentally are profiling an error pathway instead of the real thing. ALWAYS check the output!

# orderedItems[].object.contentMap.en
VERY common error with newbies and profiling:

They don't check that the output/thing they're profiling actually does what they think it is.

You end up profiling a command or something and you accidentally are profiling an error pathway instead of the real thing. ALWAYS check the output!

# orderedItems[].object.content
TIL: Bundler's job parallelization uses threads, not processes

https://github.com/rubygems/rubygems/b lob/d57d302cbb265f5164b0bc448191e9beec257c43/bundler/lib/bundler/worker.rb#L90

The default is "the number of available processors", but the number of processors has nothing to do with the optimal number here, only 1 processor will be used.

# orderedItems[].object.contentMap.en
TIL: Bundler's job parallelization uses threads, not processes

https://github.com/rubygems/rubygems/b lob/d57d302cbb265f5164b0bc448191e9beec257c43/bundler/lib/bundler/worker.rb#L90

The default is "the number of available processors", but the number of processors has nothing to do with the optimal number here, only 1 processor will be used.

# orderedItems[].object.content
@postmodern this kind of thing drives me crazy. I don't like the include Dep thing either.

I like where they went with Repositories but just don't like the integration of it.

# orderedItems[].object.contentMap.en
@postmodern this kind of thing drives me crazy. I don't like the include Dep thing either.

I like where they went with Repositories but just don't like the integration of it.

# orderedItems[].object.content
Most SRE teams get handed blank checks for infrastructure spend, and are not held accountable to resource utilization targets or quality of service targets (queue latencies), but instead to incident volume and 5-9s reliability targets.

Is it any wonder over-provisioning results?

# orderedItems[].object.contentMap.en
Most SRE teams get handed blank checks for infrastructure spend, and are not held accountable to resource utilization targets or quality of service targets (queue latencies), but instead to incident volume and 5-9s reliability targets.

Is it any wonder over-provisioning results?

# orderedItems[].object.content
@zachfeldman @getajobmike @tenderlove LOL. It basically just says how often the current thread is allowed to be interrupted, if no I/O occurs.

Currently, if the executing thread does not do I/O or otherwise release GVL (c extension perhaps), it can be interrupted after 100ms.

# orderedItems[].object.contentMap.en
@zachfeldman @getajobmike @tenderlove LOL. It basically just says how often the current thread is allowed to be interrupted, if no I/O occurs.

Currently, if the executing thread does not do I/O or otherwise release GVL (c extension perhaps), it can be interrupted after 100ms.

# orderedItems[].object.content
@getajobmike @tenderlove poorly phrased: it's been on my mind for years but I didn't have the skills to get it over the line myself, and no one else seemed quite as interested as I was

# orderedItems[].object.contentMap.en
@getajobmike @tenderlove poorly phrased: it's been on my mind for years but I didn't have the skills to get it over the line myself, and no one else seemed quite as interested as I was

# orderedItems[].object.content
@getajobmike @tenderlove nice to see this finally get picked up by someone who can move it forward. I tried for years but couldn't get anyone to bite. https://github.com/ruby/ruby/pull/2081

# orderedItems[].object.contentMap.en
@getajobmike @tenderlove nice to see this finally get picked up by someone who can move it forward. I tried for years but couldn't get anyone to bite. https://github.com/ruby/ruby/pull/2081

# orderedItems[].object.content
The CPU:memory provisioning ratchet:

1. Incident occurs. Knee-jerk add more pods.
2. This lowers CPU% relative to memory use.
3. CPU:mem ratio is lowered. We need more mem per instance!
4. Never reduce pod count after incident passes.

Repeat until instance sizes exhausted. The solution was to run fewer pods, not get more mem.

# orderedItems[].object.contentMap.en
The CPU:memory provisioning ratchet:

1. Incident occurs. Knee-jerk add more pods.
2. This lowers CPU% relative to memory use.
3. CPU:mem ratio is lowered. We need more mem per instance!
4. Never reduce pod count after incident passes.

Repeat until instance sizes exhausted. The solution was to run fewer pods, not get more mem.

# orderedItems[].object.content
If you're going to do a "service layer":

The service layer should generally not be loading data (where/find/etc) if the service is working on 1 item. When you mix the data loading responsibility into a service (instead of in the controller or job), you get N+1s when someone inevitably calls your service over a collection.

# orderedItems[].object.contentMap.en
If you're going to do a "service layer":

The service layer should generally not be loading data (where/find/etc) if the service is working on 1 item. When you mix the data loading responsibility into a service (instead of in the controller or job), you get N+1s when someone inevitably calls your service over a collection.

# orderedItems[].object.content
@hejsna promote this man immediately

# orderedItems[].object.contentMap.en
@hejsna promote this man immediately

# orderedItems[].object.content
@codefolio true. it's actually the same as how long it takes to User.find(1) with a query cache hit, because ... that's all you're doing 😆 0.2 to 0.5ms IME.

# orderedItems[].object.contentMap.en
@codefolio true. it's actually the same as how long it takes to User.find(1) with a query cache hit, because ... that's all you're doing 😆 0.2 to 0.5ms IME.

# orderedItems[].object.content
@soulcutter @pointlessone good god man what are you parsing, the entire English wikipedia or something? that's impressively high

# orderedItems[].object.contentMap.en
@soulcutter @pointlessone good god man what are you parsing, the entire English wikipedia or something? that's impressively high

# orderedItems[].object.content
@jamie tough to put in a chart though because that's completely dependent on the resource I think

# orderedItems[].object.contentMap.en
@jamie tough to put in a chart though because that's completely dependent on the resource I think

# orderedItems[].object.content
Organizing job queues by SLO (within_6_hours, etc.) allows you to intelligently throttle concurrency to conserve system stability. If all jobs run at ~50x concurrency all the time, you're going to have jobs which don't even need to be run within the next 4-5 hours end up taking down your DB.

Fix the job too, but protect the entire system!

# orderedItems[].object.contentMap.en
Organizing job queues by SLO (within_6_hours, etc.) allows you to intelligently throttle concurrency to conserve system stability. If all jobs run at ~50x concurrency all the time, you're going to have jobs which don't even need to be run within the next 4-5 hours end up taking down your DB.

Fix the job too, but protect the entire system!

# orderedItems[].object.content
I'm going to make one of those latency charts you see for things like memory access speed, but do it for a Rails app context.

What things do you think would be on the chart?

i.e.

local variable access
querycache access
User.find(1)
A typical response
Elasticsearch

# orderedItems[].object.contentMap.en
I'm going to make one of those latency charts you see for things like memory access speed, but do it for a Rails app context.

What things do you think would be on the chart?

i.e.

local variable access
querycache access
User.find(1)
A typical response
Elasticsearch

# orderedItems[].object.content
Rule that still hasn't steered me wrong: 10k lines of non-test code in the codebase, per Ruby developer. Going significantly over this ratio creates a high risk of accumulating technical debt.

# orderedItems[].object.contentMap.en
Rule that still hasn't steered me wrong: 10k lines of non-test code in the codebase, per Ruby developer. Going significantly over this ratio creates a high risk of accumulating technical debt.

# orderedItems[].object.content
I'm as excited as everyone else about Kamal 2, but for all of our clients:

1. They're spending <10% of gross revenue on infra
2. Moving to non-managed DB is scary
3. Having "infinite scale up" capability helps them sleep at night

# orderedItems[].object.contentMap.en
I'm as excited as everyone else about Kamal 2, but for all of our clients:

1. They're spending <10% of gross revenue on infra
2. Moving to non-managed DB is scary
3. Having "infinite scale up" capability helps them sleep at night

# orderedItems[].object.content
Human beings are not compilers.

Any perf process which relies on human beings manually applying a series of "optimization steps" (don't do this, do that, changes this to that...) inevitably will never work.

You have to enforce this automatically with code.

# orderedItems[].object.contentMap.en
Human beings are not compilers.

Any perf process which relies on human beings manually applying a series of "optimization steps" (don't do this, do that, changes this to that...) inevitably will never work.

You have to enforce this automatically with code.

# orderedItems[].object.content
If you're a junior dev and you aren't working directly alongside a senior with ~10+ years experience, you need to switch gigs or start working on OSS.

It's easy to stop growing w/no one to push you, no one to teach you every day, to show you what's possible.

# orderedItems[].object.contentMap.en
If you're a junior dev and you aren't working directly alongside a senior with ~10+ years experience, you need to switch gigs or start working on OSS.

It's easy to stop growing w/no one to push you, no one to teach you every day, to show you what's possible.

# orderedItems[].object.content
Introducing: ids_must_be_indexed, a Github Action for Rails apps that fails your PR if you change or add a column ending in _id without a corresponding index.

https://github.com/speedshop/ids_must_ be_indexed

# orderedItems[].object.contentMap.en
Introducing: ids_must_be_indexed, a Github Action for Rails apps that fails your PR if you change or add a column ending in _id without a corresponding index.

https://github.com/speedshop/ids_must_ be_indexed