#641 — February 16, 2023 |
|
Ruby Weekly |
Magnus 0.5: A Way to Build Gems with Rust — Magnus enables the creation of Ruby extensions using Rust by providing an interface to Ruby’s usual C API. You can also embed Ruby in a Rust program. Numerous gems are now implemented with Magnus, including RuCaptcha, Selma, and polars-ruby. Mat Sadler |
Ruby Adds WebAssembly Support: What Does It Mean? — Ruby 3.2 introduced the ability to target WebAssembly, so now you can write apps for any modern browser (and more) using Ruby. The future possibilities for WASM are exciting. Tomas Fernandez |
Heroku Alternative - But On Any Cloud — The convenience of Heroku, but on any cloud & in any region, with persistent storage, custom traffic rules, zero downtime deployments, blue/green & canary releases, WAF, & more. Try it today for free, plus $100 in credits with the code: Cloud 66 sponsor |
Exploring the Sorbet Ruby Compiler — Stripe first teased its Sorbet Ruby type checker almost five years ago (we mentioned it in issue 402!) but they’re also working on developing a performance focused ahead-of-time compiler for Ruby around it.. Jeffery Morhous |
Escaping/Encoding URI Components in Ruby 3.2 — In Ruby 3.2, the standard library’s CGI gem gained two handy new methods: Jonathan Rochkind |
What's New in Rails 7.1 — There are a lot of small to medium additions and fixes, but the most exciting might be CTE support and much better Docker support. Emmanuel Hayford (AppSignal) |
QUICK BITS
|
📕 Tutorials and Articles |
Ruby's Jake Zimmerman |
My First Hanami App — It’s great to see folks beginning to blog about picking up Hanami for building modern Ruby webapps. “Hanami is a breath of fresh air” says Karol. Karol Bąk |
External Garbage Collection — “External” means connections and objects from third-party services or tools requiring disposal. Bradley goes through several approaches, combining a couple for the “Cadillac” of external GC cleanup jobs. Bradley Buda (Census Engineering) |
Want to Drastically Reduce the Risks in Hiring? Evaluate First! — Work with well-trained engineers before committing to hiring. If they work out, keep them. If not, just let us know. Codeminer42 - Your Software Development Boutique sponsor |
A Method's Gravity — The author claims “The bigger the method the more new lines of code will be added to it.” Hence gravity. Here Lucian tries to sell the idea of keeping methods short (or low gravity, if you will). Lucian Ghinda |
Why Does 0.1 + 0.2 = 0.30000000000000004? — Julia uses Python here but it applies to Ruby too. Julia Evans |
Rails Initializers You Don't Know About: Inflections — “Inflections are rules that specify how words should be pluralized or singularized in a given context.”
|
🛠 Code & Tools |
▶ Puma 6.1: An Overview of What's New — A quick (~7 min) video on what’s new in the popular Ruby HTTP server, namely WebSocket support, better systemd support, and other small changes and fixes. Puma docs and the v6.1.0 release notes. Nate Berkopec |
Rouge 4: Pure-Ruby, Pygments-Compatible Code Highlighter — This week’s release introduces a new lexer (for Cisco IOS) and includes lots of fixes and improvements to lexers for C#, C++, JavaScript, and other languages. rouge-ruby |
APM Built for Developers, By Developers Scout APM sponsor |
Bashly 1.0: Bash CLI Script Generator — Declare the basic user-facing elements of a CLI tool (arguments, environment variables, command groups, default values, and more) and Bashly generates the bash code to make it a reality. There are examples in the GitHub repo. Danny Ben Shitrit |
Selma: Selects and Match HTML Nodes using CSS Rules — Also has the ability to sanitize HTML. Uses the Rust powered LOL HTML parser. Garen Torikian |
InvoicePrinter 2.3 (Now Supporting Prawn 2.4 and Ruby 3.1) — InvoicePrinter is a library for generating PDF invoices. Josef Strzibny |
|
RAPID RELEASES:
|