JP Camara

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 8 parts: Your Ruby programs are always multi-threaded: Part 1 Your Ruby programs are always multi-threaded: Part 2 Ruby methods are colorless Concurrent, colorless Ruby: Part …

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

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 of work and improvements that go into it as well. I also think community and industry enthusiasm …

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 …

Clean Subdomains in Laravel

When building a website or application there are a variety of reasons you might want a subdomain ranging from SEO to full separation of application responsibilities. Craigslist uses subdomains to separate it's different regions within states. Other websites use a subdomain to differentiate their …

Using the Device Clipboard in React Native

As a quickly evolving library, React Native is often supplemented by features from the community, only to consume them or incorporate similar concepts later on. Up until a few months ago, using the native clipboard on iOS or Android meant installing an npm module and then configuring the native …

React Native impressions from a Cordova user

Introduction As web developers, we see the potential that the web offers, as a platform and as a cross platform development environment. I don't think it's a desire for sameness or lack of imagination that propels web technologies across device targets, but the potential and power of what those …

Resources

I thought it would be helpful to create a resource page to show how I approach development, and what tools and resources I use/read. It’ll be a running list, and I will be updating it regularly. I recommend bookmarking it for your reference and convenience. Enjoy! Disclosure: Please note that …

Better Than Bootstrap Javascript: Click Delay

Last week we dug into Javascript Carousels, first analyzing the implementation Bootstrap offers and then examining two alternatives in Flexslider and Slick. We reviewed examples in each and noticed the simplicity of setup as we moved beyond Bootstrap - but that wasn't enough. Developer productivity …

Better Than Bootstrap Javascript: Carousels

Last week we started small, and looked to improve the perceived performance of our website with interactive loaders. We looked at what Bootstrap had to offer out of the box, and then explored a more robust option with the Ladda plugin. This week we're aiming to improve the carousel experience. …

Better Than Bootstrap Javascript: Loaders

Bootstrap is an awesome tool, and something I use all the time. The ability to have so much css scaffolding in place for you to use is a huge time-saver and makes building responsive sites attainable in a more reasonable, repeatable and budget-friendly way. On top of the CSS functionality, Bootstrap …

Selecting carefully with Laravel joins

Laravel comes packaged with an ORM called Eloquent, which is one of the better PHP tools for dealing with your database layer using objects. It provides all of the features you'd expect from a modern relational mapper, and cleanly uses some PHP magic to make the process pleasant. But it has its …

Using Famo.us with the Ionic Framework

Ionic and Famo.us are Javascript frameworks that aim to bridge the gap between the web and native app world, so that web technologies can compete with the native experience. Ionic Ionic is focused on on creating beautiful hybrid mobile apps in HTML/CSS, and their ecosystem, tooling and library …

Resource Roundup - Week of 1/4

[text-blocks id="knowledge-roundup-preface"]

Busy week - so I did a little less reading than usual. I'm also finally reading "Think and Grow Rich" by Napoleon Hill so that should have some notes in an upcoming week.

Articles

http://blog.phusion.nl/2014/12/22/phusion-passenger-5-beta-2

Beta 2 release …

The impact of Strict Mode on

Last week in my post The context of "this" in Javascript, I gave an example to test the readers understanding of the topic: var global = 'global example'; function globalExample() { return this.global; } console.log(this.global); //outputs 'global example' console.log(globalExample()); //outputs …

Resource Roundup - Week of 12/28

[text-blocks id="knowledge-roundup-preface"]

Articles

http://www.vanseodesign.com/web-design/html5-structural-elements

This is exactly how I feel about HTML5 elements. I've been reading about the benefits of a semantic web for years, but when will we actually see it being used consistently or being …

The context of

Understanding the different contexts of this in Javascript is an important step towards truly understanding the language. In addition to its importance, it's also something that has been written about to death. If you're using Javascript, and don't fully understand how the this keyword in javascript …

Knowledge Roundup - Week of 12/21

[text-blocks id="knowledge-roundup-preface"]

Articles

Nasa Wants to Colonize Venus

I feel like i've read and listened to this topic a few times recently - but this is the first i've heard of NASA talking about it. Not just talking about it - but having a pretty established plan for how they will do …

Prototyping quickly with the PHP built-in server

Sometimes you want to get a server up and running as quickly as humanly possible. Whether it's trying out a js library where the demos only work with a server, developing a static front-end (stand-alone or for integration with an API) or getting a PHP app up and running without setting up apache or …

Knowledge Roundup: Week of 12/14

This is just a dumping ground for articles/books/tools that stuck out to me over the last week.

Most of the articles I read come from some excellent newsletter sources: Javascript Weekly, HTML5 Weekly, Ruby Weekly, Node Weekly, Database Weekly, and the Code Project Newsletter. Books are from a …

Previewing your Github README

When you're deploying to Github, crafting a helpful and well-formatted README file is a great starting point for people interested in your project. There are lots of Markdown preview tools available (just check for plugins or bundles in your favorite editor/IDE, or an online tool like …

MySQL 5.5 to 5.6 - Type Strictness

If you're upgrading MySQL from 5.5 to 5.6, you may encounter some issues when trying to insert and update data. For instance, trying to insert an empty string into a decimal value may have worked for you in 5.5, but now throws this in 5.6: Incorrect decimal value: '' for column 'my_decimal_column' …

See you at Burlington Ruby Conf

If you're going to be at Burlington Ruby Conf, tweet at me (@jpcamara) and say hi!