JP Camara

Recent Snippets

2024-12-02: My MacOS setup for hacking on CRuby

2024-11-28: Counting C method calls in CRuby

2024-11-27: My docker setup for hacking on CRuby

2024-11-26: Calculating the largest known prime in Ruby

Speeding up Ruby by rewriting C… in Ruby

There is a recent language comparison repo which has been getting shared a lot. In it, CRuby was the third slowest option, only beating out R and Python. The repo author, @BenjDicken, created a fun visualization of each language’s performance. Here’s one of the visualizations, which shows Ruby as …

The Thread API : Concurrent, colorless Ruby

👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods …

Ruby methods are colorless

👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods …

Consistent, request-local state

👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are …

Your Ruby programs are always multi-threaded: Part 2

👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are …

Your Ruby programs are always multi-threaded: Part 1

👋🏼 This is a series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into 12 main parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Consistent, request-local state Ruby methods are …

A comprehensive guide to PgBouncer/Postgres compatibility

My previous post, PgBouncer is important, useful, and fraught with peril, was a deep dive into Postgres feature compatibility with different modes of PgBouncer. I’m happy with how it came out and it was well received. I think it is the most comprehensive guide to Postgres/PgBouncer compatibility …

PgBouncer is useful, important, and fraught with peril

Updated 2024-09-17 to reflect updated PgBouncer support for protocol-level prepared statements 🐘 To start, I want to say that I’m appreciative that PgBouncer exists and the work its open source maintainers put into it. I also love working with PostgreSQL, and I’m thankful for the incredible amount …

Making Tanstack Table 1000x faster with a 1 line change

A few months back I was working on a Javascript frontend for a large dataset using Tanstack Table. The relevant constraints were: Up to 50k rows of content Grouped by up to 3 columns Using react and virtualized rendering, showing 50k rows was performing well. But when the Tanstack Table grouping …

Kicking the social media habit with “one sec”

Twitter. Oh how I could stroll that infinite corridor of information. Ever since having kids my personal time has been squeezed into a tiny ball. Still, I’d finish putting the kids to bed, open my phone, and where would I end up? On Twitter for 45 minutes. An hour. Hour 30. I’d sit there feeding …

Is there an ideal coding style?

Nope! There isn’t. The coding style you use is a preference. Even if studies have backed your preference1, it does not matter. The next team you work on or codebase you inherit may not follow that preference. But if they have implemented a consistent style, use it. If you are open to using it, and …

2016-07-26: Clean Subdomains in Laravel

2016-02-25: Using the Device Clipboard in React Native

2015-12-02: React Native impressions from a Cordova user

2015-02-23: Better Than Bootstrap Javascript: Click Delay

2015-02-17: Better Than Bootstrap Javascript: Carousels

2015-02-09: Better Than Bootstrap Javascript: Loaders

2015-01-19: Selecting carefully with Laravel joins

2015-01-12: Using Famo.us with the Ionic Framework

2015-01-09: Resource Roundup - Week of 1/4

2015-01-02: Resource Roundup - Week of 12/28

2014-12-29: The context of `this`

2014-12-26: Knowledge Roundup - Week of 12/21

2014-12-18: Knowledge Roundup: Week of 12/14

2014-12-15: Previewing your Github README

2014-07-29: See you at Burlington Ruby Conf