---
title: "Writing a Gem with Native Extensions"
publication: "Ruby Weekly"
issue: 415
published_at: "2018-09-06"
canonical_url: "https://rubyweekly.com/issues/415"
---

This week's Ruby news, issue 415       

#415 — September 6, 2018 

[Read on the Web](https://rubyweekly.com/issues/415)   

Ruby Weekly  

[Writing a Gem with Native Extensions](http://tristanpenman.com/blog/posts/2018/08/29/writing-a-gem-with-native-extensions/) — Whether you want to leverage existing C code or squeeze some extra performance, knowing how to include native extensions in your gem is good to know. 

Tristan Penman   

[Uploading Files Directly to S3 with Presigned POST Requests](https://blog.bigbinary.com/2018/09/04/uploading-files-directly-to-s3-using-pre-signed-post-request.html) — S3 supports ‘pre-signed’ POST requests so that your app’s users can upload files directly without you needing to share sensitive credentials over the air. 

Chirag Shah   [![\](https://copm.s3.amazonaws.com/4e9c7eea.png)](https://blog.cloud66.com/containers-for-rails-developers-use-containers-while-staying-true-to-your-ror-roots/?utm_source=-&utm_medium=-&utm_campaign=cooperpress-sep-18) 

[Containers for Rails Developers: Use Containers While Staying True to Your RoR Roots](https://blog.cloud66.com/containers-for-rails-developers-use-containers-while-staying-true-to-your-ror-roots/?utm_source=-&utm_medium=-&utm_campaign=cooperpress-sep-18) — A case study about moving our 4-year old Ruby on Rails application to run in containers and on top of Kubernetes. 

Cloud 66 sponsor   

[Name of Person: Present (Parts of) Names in Various Forms](https://github.com/basecamp/name_of_person) — Aimed at typical English-style names and lets you extract first name, last name, initials, and similar attributes. It’s been extracted from Basecamp. 

Basecamp   

[Password Generation in Ruby and Rust](https://hur.st/blog/2018/08-25-password-generation-in-ruby-and-rust/) — Writing a password generator, once in Ruby and once in Rust, in order to compare languages from both syntax and performance perspectives. 

Thomas Hurst   

[Mastodon 2.5 Released](https://blog.joinmastodon.org/2018/09/mastodon-2.5-released/) — Mastodon is a federated, open source, Twitter-like social network server built on top of Ruby & Rails along with React on the frontend. There’s even a Ruby developer focused instance called [ruby.social](https://ruby.social/). ([GitHub repo.](https://github.com/tootsuite/mastodon)) 

Eugen Rochko  

💻 Jobs  

[Ruby on Rails Developer at X-Team (Remote)](https://x-team.com/remote-ruby-on-rails-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=ruby) — We help our developers keep learning and growing every day. Unleash your potential. Work from anywhere. [Join X-Team](https://x-team.com/remote-ruby-on-rails-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=ruby). 

x-team   

[World-Saving Full-Stack Engineer That Loves Ruby](https://grnh.se/9405ca312) — Tired of building apps for teens? Join an exclusively senior engineering team solving the greatest challenge of our generation. 

WUNDER   

[Find A Ruby Job Through Vettery](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-rubyweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77582) — Create a profile to connect with inspiring companies seeking Ruby devs. 

Vettery  

📘 Tutorials  

[Closures in Ruby: Blocks, Procs and Lambdas](https://blog.appsignal.com/2018/09/04/ruby-magic-closures-in-ruby-blocks-procs-and-lambdas.html) — The differences between blocks, procs, and lambdas and how they bring closures to Ruby. 

Jeff Kreeftmeijer   

[Micro-Optimizing in JRuby](https://hur.st/blog/2018/08-26-micro-optimising-jruby/) — Can we make small optimizations in JRuby by calling out to Java? The answer is ‘yes’ and the effort is well worth the (micro) gain. 

Thomas Hurst   

[GraphQL Pagination in Rails](http://www.2n.pl/blog/graphql-pagination-in-rails) 

Kamil Milewski   

[Ruby and Emacs Tip: Advanced Pry Integration](https://dev.to/thiagoa/ruby-and-emacs-tip-advanced-pry-integration-33bk) — If you use Emacs, this kind of integration can be a real game changer. 

Thiago Araújo Silva   

[Migrating a Standalone PostgreSQL Instance to Amazon Aurora](https://medium.com/@paveltyk/migrating-postgresql-standalone-instance-to-aurora-amazon-rds-3c038cfd2517) 

Pavel Tsiukhtsiayeu   

[Connecting to the Apple Music API from a Rails App](https://medium.com/@defv/connecting-to-the-apple-music-api-from-a-ruby-on-rails-application-eba9d12f5cf9) — A way to get information about songs, artists, albums, etc. 

Jan De Poorter   

[A Rails Security Checklist](https://github.com/eliotsykes/rails-security-checklist) — A variety of points to consider. Your own contributions are encouraged. 

Eliot Sykes  

🔧 Code & Tools  

[bindef: A Ruby-Based DSL for Defining Binary Files](https://blog.yossarian.net/2018/08/25/Introducing-bindef) 

William Woodruff   

[JetBrains RubyMine: Cross-platform IDE for Ruby & Rails](https://www.jetbrains.com/ruby/?utm_source=rubyweekly&utm_medium=cpc&utm_campaign=rubymine) — Go to any object with a click. Fix issues & refactor code with one shortcut key. Test & debug with an apt GUI. 

JetBrains sponsor   

[mini_scheduler: Adds Recurring Jobs to Sidekiq](https://github.com/discourse/mini_scheduler) — Sidekiq Enterprise also has [periodic jobs support](https://github.com/mperham/sidekiq/wiki/Ent-Periodic-Jobs). 

Discourse   

[Statics: Base Class and Modules for Static Models](https://github.com/pablocrivella/statics) — A ‘static’ model in this context is one that is backed by data in a YAML file. 

Pablo Crivella   

[Rails Adding Hooks to ActiveJob Around Retries and Discards](https://github.com/rails/rails/pull/33751) — Your app can now be notified when a job is retried or discarded. 

Ruby on Rails   

[Manifold Is the Marketplace for Independent Developer Services](https://www.manifold.co/?utm_campaign=ruby_weekly&utm_source=newsletter&utm_medium=sponsorship&utm_content=Sept6) 

Manifold sponsor   

[Tmuxinator: A Tool to Manage Complex tmux Sessions Easily](https://github.com/tmuxinator/tmuxinator) — [tmux](https://en.wikipedia.org/wiki/Tmux) is a terminal multiplexer a lot like `screen` but with more features. 

tmuxinator   

[MiniI18n: Minimalistic Internationalization for Ruby](https://github.com/markets/mini_i18n) — We linked it recently but it now supports [localizing](https://github.com/markets/mini_i18n#localization) dates, times, and numbers too. 

Marc Anguera Insa         

Curated by [Cooperpress](https://cooperpress.com/) 

[Change your email address](https://rubyweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
