Pull Requests (PRs) - Creating and Review
Tips and ideas on how to make the code review process as simple and painless as it can be — both for those reviewing and those preparing the code for review
Shortcut (Jira/Trello/Github) Toggl Time and Task Tracking
Clear and regular communications regarding time spent on various tasks are critical to having good client relationships. To this end, ShakaCode leverages Toggl with Shortcut to provide reports to our clients so they can assess the overall level of effort for various tasks and efficiency of ShakaCode development efforts.
ShakaCode Consulting Versus Full-Time Hires and Staff Augmentation
Consulting Versus Full-Time Hires
thiserror, anyhow, or How I Handle Errors in Rust Apps
A quick note on error handling in Rust.
React on Rails: File-System-Based Automated Bundle Generation
Automate bundle generation in Rails app using React on Rails.
React on Rails: How to use different versions of a file for client and server rendering
Let's explore the three ways to use different code for server vs. client rendering.
A note on a data partition during network communications.
RailsConf 2021 -- Implicit to Explicit: Decoding Ruby's Magical Syntax
Does a Rails model or config file seem like a magical syntax? Or can you read any Ruby code and understand it as the interpreter does?
Managing External Data Sources in End-to-End Testing for cross-platform React Native Application
End to end(E2E) testing is a traditional testing methodology where the aim is to examine how an application works by assessing the flow from start to end. In Scenario-Based End-to-End Testing, Application is examined from all layers – front end to backend along with its interfaces and the endpoints
Cool Things You Can Do with First-Class Modules in ReScriptReact
This post is about not so widely known advanced feature of the language, that helps to build handy abstractions over ReScriptReact components.
A definitive guide to E2E Testing CI Setup for React-Native using Cavy-CLI
React Native is a cross-platform mobile application development framework. It saves development time & cost and adds the ability to ship OTA (over the air) updates.
Manage Rails app business logic using ActiveInteraction gem
Let's dive into managing Rails application-specific business logic using ActiveInteraction.
Buy Apple Products to get a 4 year Warranty
Tips to buy Apple gear with the maximum extended warranty.
Remote Pair Programming Tips using RubyMine and Screenhero (Zoom)
Tips for successful remote pair programming.
Success the ShakaCode Way!
It’s Thanksgiving today! I’m taking a few minutes to put down a few thoughts that I hope will bring you, your family, and your friends “success” in the coming year.
RailsConf 2020 -- Webpacker, It-Just-Works, But How?
How does the Webpacker gem provide "it-just-works" webpack integration with Rails? That simplicity did not come easily. The rich functionality, complexity, and rapid evolution of the webpack ecosystem necessitated extension points beyond a simple Ruby config file.
Migrations on Sequelize-CLI for beginners
Learn the basics of Sequelize-CLI with Renan Aguiar. Packages, npm, npx, configuration folders, migration statuses and more.
Optimizing js bundle
In this article, I'm considering how you can optimize the site load built on react and webpack.
ShakaCode Client Engagement Model
Delivering an exceptional user and developer experience, ShakaCode offers "React on Rails Pro," a subscription-based service including a React-on-Rails Pro license for accelerating client- and server-side performance along with ongoing optimization and support.
Optimizing Google Fonts on Gatsby Sites
Achieve faster page loads and avoid flashing and jumping fonts by properly preloading Google fonts on your Gatsby sites with the gatsby-plugin-prefetch-google-fonts plugin.
Safe Routing in ReScript
Once you start using a language with sound and expressive type system, to fully leverage its advantages you should push loosely typed entities to the edges of application. One such entity is the URL.
Safe Identifiers in ReScript
Pretty much each entity in our apps has special field that uniquely identifies it. Usually, it's called id. Type of such identifier can be int or string (or any other serializable data type).
Introduction to Cypress on Rails
Cypress provides really powerful tools to create true end-to-end tests for modern web applications. With these testing features, stay 100% confident that all frontend user interactions, even async requests, work as expected.
Migrating from Angular to React
Easy React Server Rendering with rails/webpacker v4 and React on Rails
I’m excited about the v4 update of Webpacker. This release brings several big updates from the Webpack ecosystem, notably support for Webpack v4 and Babel 7.
HVMN’s 90% Reduction in Server Response Time from React on Rails Pro
Since HVMN installed React on Rails Pro, they’ve seen a roughly 90% improvement in server-response times. The gain came from a combination of intelligent caching along with a much more efficient…
How I Almost Fell for Phishing!
I take some pride in being “tech savy” enough that I would never fall for phishing.
Eliminating Illegal State in ReScript
Next thing I’d like to share is how ReScript helps in making illegal states unrepresentable in our apps.
Recently, I’ve been investing quite a lot in learning ReScript and TBH I’m pretty much dead as JS developer right now because I’ve seen the better world. Much better one.
Introducing React on Rails v9 with Webpacker Support
React on Rails v9 completes the update to using Webpacker for publishing assets to Rails views, rather than the legacy “asset pipeline.”
Front-End Sadness to Happiness: The React on Rails Story at GORUCO 2017
Here is a short recap of my odyssey around 4 major US cities giving talks on React on Rails in June of 2017. This talk focused on the “Why?” of React on Rails.
Optimized, Parallelized CircleCI Configuration for ReactOnRails
ReactOnRails + Jest + CodeCov + CircleCi Parallelization
Influencing Webpacker Rather than Forking to Support Webpacker in React on Rails
This article provides some background discussion of my work to influence Webpacker and how that lead to the creation of Webpacker Lite, as described in Webpacker Lite: Why Fork Webpacker?
Webpacker Lite: Why Fork Webpacker?
Update September 10, 2017. Webpacker Lite has been merged into v3 of Webpacker. If you’re using React on Rails, see the CHANGELOG for migration instructions to update to v9 of React on Rails which uses v3 of Webpacker.
What follows is a quick rundown of how we’re currently handling SVGs at ShakaCode.
There are two ways of thinking of about UI: in terms of state or in terms of interactions.
Bulletproof Enums using Immutable Records and Flow
If you use immutable-js and flow in your projects, you can have statically type-checked Enums. This means you’ll errors right in your editor and on CI when you try to access an Enum property that is misspelled or doesn’t exist.
A Year of development with Redux. Part III
In the last post of this series, I’ll demonstrate writing UI code as a set of interactions and share how this facilitates integrating Redux and Flow.
React PureComponent Pitfalls
Unnecessary re-renders can slow down your app, especially when rendering large collections where updates to the collection occur frequently. The React docs sometimes refer to these as “wasted” renders.
A Year of development with Redux. Part II
The previous post was about the composition of connected components and performance, but those changes introduced another kind of issues, that was solved by the second insight.
A Year of development with Redux. Part I
I’ve spent the past year working on the primary product of ShakaCode and I’d like to share three biggest insights that I gained during this journey.
Migration to Webpack@2
I spent the past few days upgrading our app to the latest RC of Webpack ver. 2. Here’s the official migration guide, that covers most of the common cases, but there were still a number of “gotchas” that I wish I had been aware of before I started this PR.
Yak Shaving Failing Integration Tests with React and Rails
This Thanksgiving weekend, I decided to a major refresh of the react-webpack-rails-tutorial, including:
Why Hire ShakaCode?
At ShakaCode, we build custom web and mobile apps, specializing in the use of React or React-Native on the front end and Ruby on Rails on the back end.
My React on Rails Talk at the LA Ruby/Rails Meetup, November 10, 2016
I want to express my thanks to the organizers, Claudio and Anna, of the LA Ruby/Ruby on Rails Meetup, along with Stack Commerce, for hosting my talk on React on Rails. You can find the original meetup posting here.
General Troubleshooting and Getting Started with React on Rails
Recently, I’ve been doing more private coaching/pairing sessions on getting setup with React on Rails. In this article, I’m going to share my general tips for maximum productivity when using React on Rails. Many of these tips will apply regardless of your programming environment.
React on Rails, 2000+ 🌟 Stars
React on Rails is the number one open source integration of React + Webpack + Ruby on Rails. If we take out Webpack from the equation, React on Rails is the number 2 integration solution, second only to reactjs/react-rails, which started 2 years earlier.
We’re super inclusive at ShakaCode
I send this out to everybody that’s interested in our team. And the ones that excel at this become full time team members.
An Attitude of Gratitude for Open Source
This happened today, in a discussion on github, regarding the “damage” done by having two alternative mainstream ways of integrating React.js with Ruby on Rails.
The React on Rails Doctrine
This document is an extension and complement to "The Rails Doctrine."
Who Is ShakaCode?
by JUSTIN GORDON in SEP 17, 2015
Universal React with Rails: Part IV
Universal React with Rails: Part III
Universal React with Rails: Part II
Universal React with Rails: Part I
Masking PII with Ruby gsub with Regular Expression Named Match Groups, Non-Greedy
Enums and Queries in Rails 4.1, and Understanding Ruby
Understanding Ruby and how enums work in Rails 4.1.
Adding a JS Library to a Ruby on Rails Project When Using Webpack
Fast Rich Client Rails Development with Webpack and the ES6 Transpiler
This article shows you how to integrate webpack into the Rails ecosystem, allowing the use of npm modules and tools, including the ES6 and JSX transpilers.
Golden Gate Ruby Conference (GoGaRuCo) Pictures 2014
Storing or Excluding Node Modules in Rails Git Repositories
Should you store your node_modules in your git repository or configure git to ignore the node_modules directory.
Updating My Blog to Octopress with Jekyll 2 and Discourse for Comments
How to update Octopress to Jekyll 2 and add Discourse for comments on a static site.
Pry, Ruby, Array#zip, CSV, and the Hash constructor
Example showing how pry demonstrates the usefulness of Array#zip with CSV
Rails Gem Upgrading Tips and Strategies
Best-practices for upgrading Ruby on Rails gems to newer versions while saving time and avoiding headaches.
Specific Issues Upgrading Gems to Rails 4.1, RSpec 3, and Twitter Bootstrap 3.2
This article describes some tougher issues I faced when upgrading to Rails 4.1 and RSpec 3.
Fast Tests: Comparing Zeus with Spring on Rails 4.1 and RSpec 3
A comparison of using Zeus vs Spring with Rails 4.1 along with the parallel-tests gem.
Pry, Ruby, and Fun with the Hash Constructor
Example showing how pry can help one better understand the useful Ruby Hash constructor.
2014 Golden Gate Ruby Conference: Top 10 Reasons to Attend
My top reasons to attend the 2014 Golden Gate Ruby Conference (GoGaRuCo).
Rocking with tmux, tmuxinator, Guard, Zeus, and iTerm2 for Rails Development
tmux, tmuxinator, and iTerm2 tips for productivity with Rails Development
Capybara PhantomJs Poltergeist Rspec Tips
Org-Mode Octopress Setup V2
This is a refresh of my original post from April, 2013 to adjust for Emacs 24.3 and org-mode 8.2.x
Simple Form and Disabling Buttons on Submit by Default
Fixing RecordNotUnique errors by turning on disable_with by default for all submit buttons using simple_form.
Using RubyMine/IntelliJ Regexp Search/Replace
Tutorial and example of using Jetbrain's RubyMine and IntelliJ's interactive regexp search and replace.
Migrating from Bash to Zsh
How and why on migration from bash to zsh on Mac OS.
GoGaRuCo 2013: Community > Code
A Newbie's 2013 GoGaRuCo Experience
Instructions on Upgrading Octopress
Migrating from Capybara-Webkit to Poltergeist-PhantomJs
Tips for efficiently migrating a test rspec test suite from capybara-webkit to poltergeist-phantomjs
Update to EmberJs Hello World
Tips to learn emberjs and advice on getting started with Tom Dale's Tutorial
Ember.js Tutorial with Rails 4
This post demonstrates how to build a simple Ember.js app with Rails 4 for persistence, and includes a detailed screencast.
CoffeeScript Chrome Extensions
Useful tools for Chrome with CoffeeScript
Ember.js Hello World
Getting Started with Discourse
A quick guide to installing discourse to see a production quality rails project on github.
Testing Error Handling
How do ensure that your application properly handles errors, especially when relying on third parties, such as payment processors? Is it easy to verify that the right things happen when the wrong things happen?
Renaming, Redating Blog Posts
Here's a few tips regarding renaming and redating posts and pages in Octopress.
Strategies for Rails Logging and Error Handling
Clean logging and error handling is a critical aspect of a RoR app. What’s a good strategy? Why does this matter?
Telecommuting From Maui
Octopress Setup with Github, Org Mode, and LiveReload
Installing Octopress with github hosting, Org Mode markup, and Live-Reload