It’s full-blown, cold and rainy (and beautiful) autumn here in Central Europe, which means less evenings spent out in town and more time for learning new, interesting stuff. Therefore our second digest has lots of learning material that we wholeheartedly recommend to go through in between watching Luke Cage and Westworld episodes.
Upgrade your SSH keys!
Long story short, if you’ve been a developer (or admin) for a few years there’s a big chance your SSH keys are now too weak, created with algorithms now considered deprecated. This article offers a nice run-down on how to determine if your SSH keys needs upgrading and how to upgrade them smoothly.
What’s Happening in Your Ruby Application?
How to use Ruby’s
ObjectSpace for insight into our application, not only in terms of memory utilization and strings allocation. Well-worth read for every performance-aware rubyist.
Safe and unsafe operations for high volume PostgreSQL
Staying with our favourite relational database engine, this is a nice summary with explanations on which operations can be easily and safely (i.e. without locks) performed on a running high-volume Postgres database, and which ones will cause locks. A very handy summary for everyone writing and performing migrations.
“Google” Your Own Brain: Create a CMS with Neo4j & Elasticsearch
It’s hard to summarize such a contentful article, but imagine a system for storing and querying knowledge with related data, organized like a mind-map.
Full-Text Search in Rails Using Elasticsearch
If you haven’t used Elasticsearch yet, this is a nice and complete tutorial on adding full-text search to an existing Rails application. Includes autosugest feature using
Concurrency in Ruby 3 with Guilds
Olivier Lacan nicely explains how Guilds, a new concurrency model in Ruby 3, is going to work, with a short analysis of advantages and trade-offs as compared to Threads.
Content Security Policy, Your Future Best Friend
Thorough introduction to Content Security Policy, a widely supported technique for preventing some of the XSS attacks and making sure we keep control of stuff that runs on our web apps.
A Case for Composition
A real-life example with Ruby code showing how composition can make the code cleaner, nicely separated, more flexible and testable all at the same time.
And if you’re up for new features in databases, you’ll like what’s new in released or upcoming versions: there’re some great concurrency improvements in Postgres 9.6 (blogpost coming soon), JSON aggregate functions coming to MySQL 8.0 and CouchDB 2.0 got a new, simple query engine to use alongside the old-but-difficult map-reduce stuff. These are great times to be a software developer who likes to learn new stuff!