Get to know seven key best practices for Rails internationalization to organize your translation workflow better.
Articles that I have been reading
Week 2023-23
Is there anything more more long in the tooth than people arguing about standards? Yes - it’s people writing about...
5 tips for new Rails developers to be more productive and confident.
Learn about an unexpected limitation with this API and how to combat it universally.
Week 2023-22
I originally wrote this as a doc, and did a talk w/ slides in Fall 2020 at Convoy. This is...
Chief Product and Technology Officer Michael Manapat on Notion’s evolving internal processes, product reviews, planning cadences, and increasing shift to...
I'm generally a rather pedantic person and this is supercharged when it comes to managing the git history on my...
Rails 7.1 adds ActiveRecord::Base::normalizes API to normalize attribute values to a common format before saving them to the database.
Use gateway classes to organize external API integrations and establish a clearer separation of concerns.
Thanks to the Open UI working community group, there’s a new element on the horizon,
How to design a queueing system to manage complex background jobs
An intro to Rails Engines are an architectural pattern that can be used to modularize or pack a Rails application....
If you want to add many attachments to a record using just a file field, but you don’t want to...
Hi, this week I want to tell you about an improvement coming in Rails 7.1. When you are using the...
This article is a deep dive into blocks, procs, and lambdas that will help you to understand how these functions...
Creating recommendations with pgvector, ruby-openai, and the neighbor gem.
Discover the ins and outs of logging in Ruby, including how to customize your logs and use logging libraries like...
When discussing team organization, I am often asked: “Why don’t you have the tech lead manage the team?” My response...
The contents of a map
block should probably be an instance method on each item.
Taking a look at how to use a Common Table Expression in Active Record queries in Rails 7.1+
Week 2023-21
Improve Rails code by using these design patterns: Builder, Decorator, Form, Interactor, Observer, Policy, Presenter, Query, Service, Value
This post explores how flog, a tool that analyzes the complexity of your code, can identify areas to refactor.
When saving computed values in the database in your rails app, you must be aware that is possible to find...
An exclusive interview with the four researchers behind a new developer productivity framework: The three dimensions of DevEx
In my early days of coding I used to get quickly frustrated when my code didn't run. It felt like...
If you don’t have time for introducing more significant changes, try implementing smaller yet powerful design patterns.
In this post we're going to be looking at not one but two new exciting things coming to CSS, the......
Chris has some tips for working with Ruby on Rails and ActiveRecord and using better SQL to improve performance and...
What does a complete cycle of planning and delivering on OKRs look like. Here's an example.
Week 2023-20
Working remotely may not seem like the sort of environment where burnout thrives, but it is. Learn about ways to...
Learn 3 best ways to write easy to read, easy to debug and easy to modify SQL query
There are many reasons to pick working for a bigger company in tech. The benefits, the pay, and, at least...
Week 2023-19
If your company has distinct product and growth teams, I’m willing to bet you’ve seen or felt something about their...
Rails 7 series | Rails 7.1 adds ActiveRecord::Base::normalizes.
tweaking the parent resource parameter key
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
A concise guide to creating custom rails generators and avoiding the speed bumps.
Ever need a simple way to retry a block of code in ruby? Maybe you need a maximum number of...
Hey, this week, I am bringing you Active Record tricks to find records with missing associations or with associated records...
Several years ago, I made a plea to save scoped CSS. One of the top features on my CSS wishlist...
Imagine that you need to put the number of likes for each post in a list, but avoiding n+1 queries....
Your domain expertise is essential to your job, but it just might be one of the things getting in the...
Great managers can create stability for their teams, even when things within the larger organization feel up in the air....
At Discourse, we have been eager to adopt YJIT ever since Shopify’s Ruby & Rails Infrastructure team declared it production-ready....
Coding email like it's 2023
Week 2023-18
Ruby On Rails provides numerous ways to cache data, particularly built-in page, action, and fragment caching, but these are unlikely...
There I was, basking in the afterglow of successfully completing yet another project as a developer,...
Animating or transitioning to and from height auto is, well, not really possible (though it is being worked on!), but...
Yes, there is now a way to transition an element to height auto with CSS alone.
A helpful list of resources for people who are just getting started out with Rails.
Handling data is a big part of every application, and doing it in the wrong way can be costly. In...
This week, we discussed splitting arrays, handling deprecation warnings, and querying missing records.
The ultimate list of 70+ web-based CSS tools that every frontend developer should have bookmarked!
Validation of files that are uploaded can provide a better user experience as it sets the expectations of what kinds...
Week 2023-17
Hi, we're Arkency and it's our blog with meaty content.
Build interesting Rails plugin renderers that tap into ActionController::ImplicitRender#method_for_action like implicit renders, bulk resources, and more.
This is a quick guide on a workaround to get your rails development running in SSL and under your production...
We show you how to containerize a Rails 7 application and how to deploy and manage it on Vultr with...
It’s often taught in programming that duplication is to be avoided. But for some reason it’s often stated that duplication...
The SRE pros at Evil Martians attempt an objective analysis of the promises, applications, and potential of MRSK, plus things...
You can add custom methods automatically available in the Rails console.
Optimizing Performance and Robustness with Locking, UUIDs, Fulltext Search, Database Views, and Geospatial Data
Working with invoices, contracts, or just reading your favorite mystery thriller—whatever the case, PDF files are everywhere. Learn how to...
Blog about Software Engineering
Week 2023-16
We’ll explain and demo the browser Contact Picker API. Contact Picker features have been ubiquitous in native mobile apps for...
You can find some examples at Quick Tour of WebStorm and Docker.
Keeping your code clean and organized while developing a large Rails application can be quite a challenge, even for an...
Lots of developers choose between dockerizing their development setup or leaving it as is. There is also a viable hybrid...
Login.gov Core App: Identity Provider (IdP). Contribute to 18F/identity-idp development by creating an account on GitHub.
Step-by-step instructions on setting up the ideal Ruby on Rails developer environment using Docker, optimized for new devs onboarding onto...
Have you ever wanted to create a hash where you could access the values like methods on an object? The...
Caching might seem a perfect solution to speed up slow database queries. However, caching in Rails apps can be easily...
Generate OpenAPI schema from RSpec request specs. Contribute to exoego/rspec-openapi development by creating an account on GitHub.
This is a little reference of tools to help you detect n+1 queries on a rails app. Bullet Prosopite n...
There are a few different ways to memoize complicated chunks of code in Ruby. Here's why .tap is my personal...
Build an alpha color system without splitting out channels using this one neat trick.
Week 2023-15
Stripe Connect provides a suite of tools and APIs that allow you to create, manage, and scale your...
Learn how to use Rails' Action View Layouts by implicitly choosing them based on your controller's inheritance chain.
Do you need an efficient algorithm that checks a date range overlapping with some denoted set of date ranges? This...
What a flaky test is and why they’re hard to fix A flaky test is a test that passes sometimes...
Use monkey patching to revert database changes in Rails mailer previews.
Effectively parse CSV with Ruby
Create forms that are easier for people to use
Stepping into a leadership role invites a whole host of new demands. So, how do you aptly prioritize them?
Imagine that you need to query for the records created in the “week before” of a given date. How would...
Do you want to build powerful admin interfaces with little code, but you are not sure if you want to...
Let's explore some options to implement audit logs, including PaperTrail, Audited, AuditLog, AppSignal, and a custom implementation.
Level up your Rails controllers by extracting business logic into reusable, testable, and more organized code units. Learn how in...
Understanding the difference between these window functions in SQL
Week 2023-14
Is it possible to do this without setting up a whole separate React app externally and making your Rails app...
Introducing Ruby Bytes, a toolkit to build, install and deploy Ruby and Rails application templates.
Feature flagging is a widely adopted technique used in software development that enables developers...
Did your organization decide to sunset your Rails application? Our team has developed a comprehensive approach to safely decommission your...
We’re a team culture and we believe in individual empowerment.
Learn what sharding is, how sharding works, and some common sharding frameworks and tools.
Since the beginning, GitHub.com has been a Ruby on Rails monolith. Today, the application is nearly two million lines of...
It’s all about databases in this edition!
I develop a lot of webapps locally, often at the same time. For Ruby-only applications, puma-dev is by far the...
Learn about dark patterns and ways of spotting them, no matter the type of the pattern apply. We will shed...
Hi, this is Greg, bringing you the first edition of the Rails Tricks newsletter. Thank you for subscribing! I hope...
I started this iteration of my blog because I grew dissatisfied with Medium. Like anyone migrating from any one platform...
a bliki entry for Slack
Speaking at conferences can be a daunting task, and I am not here to deny that. But beyond that daunting...
Learn Ruby on Rails with the bootcamp-style Learning Path from GoRails
As your document or response size increases , it can result in much slower response time, lets look into some...
It's often that we create a service that is supposed to change an attribute on an ActiveRecord...
Refine is a paid package. To purchase, head to hammerstone.dev.
Did you know that you can create a single-file Rails application?
Although not the first option for many, polymorphic associations are perfect for connecting the same type of model to multiple...
Week 2023-13
While setting up this blog with Jekyll, I went through quite a process to get everything configured so that I...
Introduction On a cold and dark evening in December 2022, a good friend of mine calls me...
A staff developer is an individual contributor who can have the same scope of impact and seniority as an engineering...
Since 2017 we have been focusing on upgrading Ruby on Rails applications. It’s been quite a fulfilling learning process as...
Ahead of your parental leave, it's important to properly prepare your team and set them up for success.
Have you ever needed to get the most recent N posts for each user in rails, but didn’t know how...
With so much advice being thrown at young women, it’s hard to know what to follow and what to ignore....
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Design Sprints lend themselves nicelyto a virtual format, and digital tools can enhance this widely-used processdeveloped by Google Ventures.
The command pattern is a very popular design pattern that was introduced in the GoF design patterns...
How to embrace absurdity and unlock more creative coding
Week 2023-12
With a folder, some scripts, and some tools, you can make your ruby gem/code faster. Measure, improve and repeat.
How to use CSS Subgrid to solve the problem around aligning content in different columns
One of our favorite CSS preprocessor features is now built into the language: nesting style rules.
Learn to manage flash messages in Rails 7 with Hotwire. We will learn how to handle flash messages in Turbo...
In this post, we will explore the `AttributeAssignment` module in Rails, which allows you to set an object's attributes by...
Just my website. Some Elixir, some Ruby, some more exotic languages and general thoughts on tech.
Counting things can be tough. It’s a metric you need to show your users, but if you’re not careful at...
Introduction It has become common practice to use Docker and Docker compose when building...
Follow good practices with Active Record to make sure that your application's performance is on a good level and the...
Learn about the Ruby on Rails workflow that protects your database and application from accidental downtime and data loss.
GoodJob is a multithreaded, Postgres-based ActiveJob backend for Ruby on Rails.
If we want clients to create small controllers and use resources in their routes, it’s a good idea to know...
Week 2023-11
We’ve been running design sprints for over 10 years, it’s time for us to share everything we know about them...
Comparison of MRSK and Fly.io
Our top picks of the most practical product management frameworks for decision-making, prioritization, product metrics, and agile development
This article explores how to use markdown in Ruby. Learn how to use two popular Ruby libraries—Redcarpet and Kramdown—to parse...
Being more transparent as a Staff+ engineer can help build trust and encourage best practice across entire engineering teams.
I’m Kitty Giraudel, a non-binary trans frontend developer based in Berlin, focused on accessibility and inclusivity.
Common concerns and solutions... because tech is for anyone who cares about it.
A UI design case study to redesign an example user interface using logical rules or guidelines
Testing anti-patterns I learned to stay away from over the years.
You’ve probably been using callbacks. Don’t.
Introduction Views and Common Table Expression or CTE are two important concept in...
When writing an integration or system test in Rails, have you ever needed to click a link in an email?...
Week 2023-10
The router is the entry point of your Rails application. It acts as the gatekeeper for all incoming HTTP requests,...
How can you ensure that a modification on a component won't break the responsiveness on the user...
Confession: I’ve always struggled to understand the difference between stubbing and doubles…
Join my private training platform for web designers:https://www.paitpro.com🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳🔳Perfect Your Web Designs With Thes...
Today we take a look at a Stimulus implementation for nested forms in Ruby on Rails 7. It's a bit...
A practical guide on how you can build a pure-CSS direction-aware hover effect for your navigation menu bar using :has()...
Something non-designers understandably struggle with is how to make things look good. One of those things is long form content...
If you find yourself wrestling with CSS layout, it’s likely you’re making decisions for browsers they should be making themselves....
For years, developers have passed around a set of styles like a magic incantation. It's time we made it a...
Fixing N+1 issues is often the lowest-hanging fruit in optimizing a Rails app performance. However, for non-trivial cases choosing a...
Compare git rebase with the related git merge command and identify all of the potential opportunities to incorporate rebasing into...
Is it an Alert, Toast, Callout, Popup, Snackbar, or Notification?
Week 2023-9
Despite its strong opinions and powerful conventions, Rails is a highly flexible and configurable framework. If you don’t like something,...
Understanding PostgreSQL views and materialized views is essential to fully grasp one of the most popular features in Timescale that...
Developers are passionate about their tools - sometimes to a fault. There is value in being open to change and...
It's easy to get going with logging with Rails, but not so easy to master it. Discover how you can...
It’s a popular internet recommendation to use eager loading in Ruby on Rails applications to eliminate the N+1 query problem....
Week 2023-8
Let's dive into how Kredis works and how you can use it to store short-term UI state.
What is RailsEngine? A Rails engine is a self-contained piece of functionality that can be...
My team’s Managing Director and advisor on the project I’m working on, Kirsten, has noticed how reluctant I am in...
🎓 Start writing CSS with more confidence with one of my courses: https://kevinpowell.co/courses🔗 Links✅ Full list of filter effects: https://developer.mozi......
Calling freeze on an object may not provide the immutability you expect. Here we dig into some of freeze's nuances...
Learn how to effectively render tooltips in Rails without writing any JavaScript.
Week 2023-7
Rails protects your web application from CSRF attack by including an authenticity token in the HTML forms. This token is...
7 techniques to increase the developer’s experience during a Rails console session
A close look at the process we used to make our version of Kanban nice and useful on mobile devices....
More 'things I forgot' - using create_with and where in making new records. We can make use of the resulting...
The idea that hiring more developers will lead to faster time-to-market, is a common misconception.
CSS has been around for 25+ years, gaining tons of features and selectors to create great websites and apps. In...
With iOS and iPadOS 16.4 beta 1 comes support for Web Push for Home Screen web apps, Badging API, Manifest...
#small #methods #code #design #ruby
Thanks to zverok_kha’s awesome writeup of Ruby changes, I noticed a new method released in ruby 3.2: CGI.escapeURIComponent This is...
Let's take a look at what we can expect from the upcoming Rails 7.1 release.
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
Use formaction, formenctype, formmethod and formnovalidate to change form configuration with button attributes
Your local data isn’t the same as in production
Week 2023-6
Photo by Joshua Fuller on Unsplash Ruby has joined the ranks of languages capable of targeting...
How to use ActiveRecord transactions, handle errors and avoid pitfalls.
Should you be concerned about Rails concerns?
We had previously talked about the Serialization formats and How Serialization is implemented for storing objects in the relational database...
Although Ruby on Rails is the oldest framework, and some claim that it is no longer in use, developers still...
Outlines are important for keyboard navigation, but maybe you've come up with a replacement and decide to do an outline:...
Pair programming is intimate. It’s the closest collaboration we do as software developers. When it goes well, it feels great!...
It can be helpful in a Rails application to send notifications to a Slack channel, for example, when...
What is psychological safety, and why is it so important? Tips on how to improve your team
With all the advancements in software development, apps could be much better. Why aren't they?
Ruby on Rails and ReactJS consulting company. We also build mobile applications using React Native
Better UX through better HTML: inputmode, enterkeyhint, and autocomplete.
All the best things about VS Code that nobody ever bothered to tell you
Most people know about semantic HTML, but when it comes to CSS, things are a little more wishy-washy most of...
Are your feature flags states leaking between your test cases? Stub them all to make your test suite more reliable....
Week 2023-5
The Decree pattern helps developers write single-purpose service objects that have a predictable API contract, are composable, are easily tested,...
What if your Rails app couldn’t tell who was visiting it? If you had no idea that the same person...
Let's build a table editor in a Rails application using ActionText's Trix editor, and use Turbo Frames to customize your...
Load, parse, compile, and serve assets efficiently in a Rails Engine.
Business Intelligence transforms raw data into actionable insights that support business decisions through reports, dashboards, and charts. You can use...
You may frequently need to extract crucial information from emails in your role as a developer. This...
When we allow users to upload images, they usually upload files without any optimization for the web. It’s up to...
We demonstrate how the popular "Ransack" library (Ruby on Rails) can be abused to exfiltrate sensitive data via character by...
Find out how you can keep your Rails views readable using helpers.
Core fundamentals that inform how we go about building — and shipping — great software at a sustainable pace.
Follow along with my example repo, which has a solution branch. So, you wanna be a Ruby on Rails...
RSpec custom matchers can be written using plain old objects.
A guide to a free Ruby development environment
Lane Shackleton, CPO at Coda, shares his team’s actual templates, processes, and many lessons learned
What companies follow an RFC-like process, and what are templates and examples to get inspiration from?
Week 2023-4
This is a guide for setting up AnyCable locally using Docker Compose, and deploying it on Amazon Web Services (AWS)...
Ruby 3.2.0 was released today! This is a perfect moment to check it out and see how YJIT behaves. I...
Database Views & Rails Active Record: defining new Model classes out of views Learn...
Holly, a blind screenreader user, explains the main accessibility barriers she faces every day. Bad heading structure, alt-text, links, forms...
Do you ever find it challenging to work on your project, side hustle, or even your hobby? Have you ever...
It helps keep your state manageable
Week 2023-3
Lambdas are a powerful feature of the Ruby language. Learn all about Lambdas and how best to leverage them in...
Useful front-end tools for CSS and JavaScript developers that were most popular last year and will help you speed up...
Rails 7.1 will include a Dockerfile to help ease production deployments
An example of refactoring a controller to use local variable and shorthand hash syntax
We unveil the toolbox of the Martian Rails engineer; we begin constructing a Gemfile from the universe of Martian gems...
In this post, we are going to show you tips and techniques on how to effectively store and index JSON...
What is Server-Side Request Forgery (SSRF), and why is it a concern for web security?
Once we include ActiveStorage::Streaming in a controller, we get access to the #send_blob_stream method which takes care of everything, from...
Mailers are used in literally every Rails application, but often an after thought where we throw out the rules of...
I've always hated maintaining database servers. Litestream offers a simple alternative without sacrificing reliability or security.
Have you heard about the ActiveRecord becomes method from Rails? Maybe it’ll come handy one day.
Week 2023-2
The instrumentation API in ActiveSupport serves a dual purpose. You can use it to implement the publish-subscribe pattern, as well...
Originally posted on ahmednadar.com Recently, the inline editing capabilities demand has...
Check out our downloadable Ruby on Rails Interview Questions Template, and learn how can you get the most honest responses...
Build and parse a programming language to extend your Rails application's functionality.
Understanding the need behind a change is important to build better software. Here’s why.
Capybara is an acceptance test framework for web applications. Learn how to use it with Minitest for integration testing of...
Rails developers can add versioning to their APIs with relatively little effort. This article explains why you need to add...
There are several motivations for running your local web application over SSL; making use of service workers being a prime...
With Heroku's free tier gone, this is my work-in-progress configuration for a new ruby on rails apps...
Week 2023-1
Rails 7 series | Ruby 7.0 adds disable_joins for associations
A description of a curios core class design decision made for happier coding
Metaprogramming in Ruby: Beginner Level This post is the first in a series focused on the application of Ruby metaprogramming....
You must have used a ~/.bashrc or ~/.zshrc file to configure your environment. Did you know Ruby on Rails has...
Week 2022-52
How, Why and When I TDD
Reading through Sandi Metz’s book Practical Object-Oritented Design in Ruby (POODR), I found myself yet again hit with several epiphanies…...
I have been working with a client with close to 600k images on their home page. The photos are tagged...
Reacting to events with JavaScript is the foundation of a dynamic experiences on the web. Whether it's a click event...
As makers, software engineers should adopt these 7 essential habits.
As we move into 2023, there are an increasing number of ways companies can engage with their customers. And as...
Sometimes want to skip certain validations on your database models. Maybe you have a multi-step wizard or want admins to...
Learn how to integrate the FilePond upload library with Ruby on Rails' Active Storage framework.
Week 2022-51
From Rails 7.1 has_secure_password now includes a password_challenge accessor to validate it against the currently persisted password.
How to build a clear and transparent process for supporting engineering career progression.
A cheat sheet to help you write interview and follow ups questions for user research and usability test protocols (also...
Let's walk through how you can use GitHub Actions to test a Ruby gem, or any other Library, against an...
Deploy a new Rails APP to Lambda in 5 minutes!
Week 2022-50
If you ask any developer what is technical debt they will probably tell you something along the lines of: Cutting...
Why this approach?
This post was extracted and adapted from The Rails and Hotwire Codex. It also assumes some...
I wanted to mix Hotwire (both Turbo and Stimulus) and View Components together but use it with my normal go-to...
In Ruby on Rails, a polymorphic association allows a model to belong to more than one other model on a...
In this article is for newer developers looking to learn strategy and commands on Rails. When I...
An exploration of how a frontend developer thinks while building an article layout.
All the agility has been sucked out of agile projects
When working with complex forms, it's really easy to immediately start adding JavaScript to implement non-common behaviors. But there are...
So we checked 2 major ways already of creating public (more or less) static pages: 1. brute force drop your...
Disclaimer: prepare for hair-splitting and nitpicking
The "current pattern" or "current context" is a technique that allows you to access some per-request data easily without having...
A four-step guide to leveling up your team from the staff plus position.
Autonomy is a wonderful thing. Here’s how to relinquish control and empower your engineering teams to deliver more impact.
Published on 24 Nov, 2022 | Takes approximately 8 min to read
Premature error messages, aggressively styled fields, and unnecessarily disruptive system-status messages feel bad-mannered and increase cognitive load for users during...
Highlights of what happened in our #dev channel on Slack this week.
A comprehensive overview of Rails’ many safety features that can help you prevent painful mistakes.
Startups use too much technology. My advice: Use Postgres for everyting
New Figma resource, a lightweight UI design starter kit to save you time.
Although Hotwire does not currently provide animations out of the box, it does give us hooks to add in our...
An article, talk, or tool that focuses on HTML every day until Christmas.
Week 2022-49
But there’s a way out of the misery
In the last article, we made a pretty cool little slider (or "carousel" if that’s what you prefer) that rotates...
It's time for a standup! These are the words that always put me in total panic mode. I don't even......
While Rails gained a lot of popularity among companies to develop products quickly, technical debt and scalability issues were challenges...
I never used to pair program, and then I spent four months on a pair-by-default team. Here's what I learned....
Sometimes you might want to enhance your application to notify users they might have lost their...
Time dependent tests are difficult to diagnose, and the symptoms don’t present themselves until it’s too late. This article will...
My experience of migrating from Paperclip to Active Storage on a production site.
Ever struggled to grasp what the Liskov Substitution Principle really mean?
Ruby provides a number of methods which make it very simple to read and write strings, arrays, shell commands etc....
Sometimes it's hard to know what is defined where
Week 2022-48
This week’s system design refresher: RPC vs. gRPC (Youtube video) Monolithic vs. Microservice Architecture What is k8s ChatGPT RPC vs....
A Ruby multithreaded crawler is a type of web crawler that is built using the Ruby programming...
We walk through how we implemented an SSE server that's scalable and load-balanced to simplify and improve a real-time data...
Learn how to build a robust authentication quickly in Rails without using a library like Devise.
In simple terms, Query Object allows you to encapsulate complex database queries. Why do we need it...
Scaling isn’t easy. You will need to set up processes on how things are going to work now that you...
If the thought of handwriting code seems silly, it might surprise you to know that it's inevitable. If you're unsure,...
In the last few years, I’ve had the pleasure of kicking off lots of new reporting relationships with both engineers...
Retaining great developers can be hard. Here are the ten company habits that make employees choose to stay, even when...
HTML lists are boring. They don’t do much, so we don’t really think about them despite how widely used they...
We’re introducing calendar-based versioning for our REST API, so we can keep evolving our API, whilst still giving integrators a...
There are lots of tutorials for building a CLI with Thor from scratch, but there aren't a lot of them...
Level 1: NOT BUSY My schedule is wide open. I can choose infinite paths. Zero commitments. The weekend. I sleep...
A deep dive into the semantics, behaviours and characteristics of some of the most common user interface elements of websites...
Nested HTML elements with different `visibility` properties (`visible` / `hidden`) can be visible even though their parent is hidden.
Week 2022-47
What is memoization? Memoization is a performance optimization technique. The idea with memoization is: “When a method invokes an expensive...
Prompting for a username and password is so 2005. Today, you can just prompt for a fingerprint.
This path gives an overview of how the Shortcut team estimates work and how the Shortcut tool effectively supports that...
It’s time to get me up to speed with modern CSS. There’s so much new in CSS that I know...
What is good software consulting? Watching a staff level engineer is a great way to learn good habits.
Handling third-party webhooks with Rails Event Store Lately, one of our clients asked us to review his Rails Event Store-based...
Week 2022-46
Whether by choice or by circumstance, you may find yourself developing a web application alone. Congratulations! You've got the house...
Adding site-wide configuration with a Rails model can be quite easy to do with Administrate.
More detail on how the thoughtbot team built one of the first Alexa skills in Arabic, and what we learned...
This post was extracted and adapted from The Rails and Hotwire Codex. Turbo Streams are a great...
We break down 13 different types of MVPs with examples, discuss the pros and cons of each type, and suggest...
How we got struck by 5–year–old implementation Recently we discovered that we were wrong on computing lock key for acquiring...
A join can normally only link two static result sets together, but with LATERAL joins an efficient for-each loop with...
In this article, Yosra Emad explains how to create a rollercoaster path that a ball follows using cubic beziers and...
Making a DNS query in Ruby from scratch
If it is important enough to need words, it is important enough to use text content.…