The Ruby and Rails community linklog
Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!
Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Strategic 1.1.0 - Painless Strategy Pattern in Ruby and Rails
Strategic 1.1.0 (Painless Strategy Pattern in Ruby and Rails) has been released! [more inside]
Rubber Duck Dev Show Episode 8 | Database Performance
Hear two rubyists discuss how to optimize your database’s performance: https://www.rubberduckdevshow.com/episodes/8-database-performance/
The tale of Sprockets and Webpacker duality
Explaining a dual build strategy by exploring a case where we migrated a large Rails application from Sprockets to Webpacker. https://evilmartians.com/chronicles/the-tale-of-sprockets-and-webpacker-duality
RIP Jekyll (The Genesis of the Jamstack)
We are here to bear witness to the untimely demise of Jekyll, a once proud Ruby open source project and #1 static site generator in the world. (And keep reading to see what lies ahead.)
punks.starter Update - New Sample Collection №2 - The First One Hundred Punks
Hello, I added a new sample collection to /punks.starter - the free pixel art collection quick starter package that lets you generate algorithmically your own curated (or randomized) collections. Yes, in ruby. Let’s welcome Collection №2 - The First One Hundred Pixel Art Punks. Yes, you can. Generate a pixel-perfect copy of the first one hundred punks in the original Larva Labs series in the classic 24x24 format or with a 20x zoom (480x480). Happy pixel pushing and minting with ruby.
A gem for distributed locking based on Google Cloud Storage
I wrote a gem for distributed locking based on Google Cloud Storage. It can be used for ensuring mutual exclusion in workloads that span multiple machines. I use this for ensuring mutual exclusion in Fullstaq Ruby’s Github Actions pipeline. Before writing this library I spent quite some time in designing the algorithm, addressing caveats (particular all the dangers that could happen outside the happy path) and ensuring correctness. I blogged about this some time ago. Compared to Redis-based locks (such as Redlock), this library is safer because it addresses the critiques documented by Martin Kleppmann.
Zen Rails Base App Updated to the Latest Ruby and Rails Versions
Zen Rails is a base application for Ruby on Rails 6.1 projects. Built to minimize the time spent writing boilerplate code and performing repetitive setup tasks. It was just updated to the latest Ruby and Rails versions.
Let's Rewrite the Solidity (JavaScript-like) CryptoPunksData Contract in Ruby
Hello, I’ve written up an article titled Inside the CryptoPunksData Contract - Decoding the On-Chain Assets (11 Archetypes and 122 Attributes) and Color Palette for Easy (Re)Use “Off-Chain” that rewrites the original “on-chain” CryptoPunksData contract code in Solidity (JavaScript-like) in - surprise, surprise - ruby that you can run - surprise, surprise - offline and offchain in your own home for free and forever (the punkdata scripts are dedicated to the public domain.) Happy pixel art programming with ruby. PS: Want to generate your own punks (in ruby)? See Run Your Own Free Decentralized Autonomous Punk Generator Contract / Service (Offline and Offchain) in Your Own Home to get started.
Rubber Duck Dev Show Episode 7 | Writing Secure Code
Hear two rubyists discuss how to write secure code: https://www.rubberduckdevshow.com/episodes/7-writing-secure_code/
Rubysmith + Zeitwerk Support
Hey everyone. 👋 I’ve recently released Rubysmith with Zeitwerk support. I’ve written up an article explaining the details in case it’s of help/interest when building your own Ruby projects with a lot of the boilerplate automated for you. 🎉
Hotwire Explainer Video
What is Hotwire, and what problems does it solve? The Pragmatic Studio’s 7-minute explainer video will get you up to speed fast.
Ruby Dev With No Experience? Here's one way to get experience today.
Beep. Another rejection. You don’t have experience for an entry-level Ruby job. Worse: chirp, chirp, chirp. No replies at all. Are you tired of all of this? If you want to get real-world experience, apply this strategy to get different results.
My book on deploying Rails got released
Deployment from Scratch is an introductory, but comprehensive book on deploying web applications including Puma configuration, Action Cable or Rails credentials.
Rspec and Redis Testing Setup
We’ve started using Redis for caching API calls, especially for external calls, where we don’t need fresh data for at least a week. Is there a way to test this code without having Redis installed in a test environment? [more inside]
Build an Uptime Monitoring System in Ruby with GCE, Cloud Storage, and PubSub
Google Cloud Platform provides developers with many tools to build scalable apps in a way friendlier than AWS. In this article, Olasubomi Oluwalana shows us how we can use the Google Cloud Engine, Storage, and PubSub offerings to build an uptime monitoring system in Ruby. https://www.honeybadger.io/blog/gce-cloud-storage-pubsub-uptime-monitoring-ruby/
3 ways to use Regexp capture groups with back-references in Ruby
Taking advantage of capture groups to manipulate Strings in Ruby [more inside]
Rubber Duck Dev Show Episode 6 | Handling Exceptions
Hear two Rubyists discuss how to handle exceptions: https://www.rubberduckdevshow.com/episodes/6-handling-exceptions/
Real-time stress: AnyCable, k6, WebSockets, and Yabeda
Introducing a k6 plugin to load test WebSockets and trying to ruin a real-time application under a load and compare the results for different WebSocket servers: Action Cable, AnyCable, and AnyCable Pro. https://evilmartians.com/chronicles/real-time-stress-anycable-k6-websockets-and-yabeda
Web Scraping Made Easy With Ruby
Explore web scraping basics with Nokogiri Gem [more inside]