You have disabled auto-rotation for stories. Re-enable?
If you're looking for a top Ruby job or for top Ruby talent, then you should check out Top Ruby Jobs. Top Ruby Jobs is a website dedicated to the best jobs available in the Ruby community.
ROM 0.7.0 was released yesterday. The most notable addition is a new “combine” interface for eager-loading an entire object graph which previously required a join. This allows you to join relations coming from different data stores in memory.
Other new features of ROM 0.7.0 include: a way to reuse existing mappers, to reject unspecified keys, unwrap a nested hash, a way to register custom objects as mappers, and last but not least a plugin interface.
Lotus 0.3.1 is out with nested resources support, dirty tracking, timestamps for entities, improved code generators, and some bug fixes.
While new Ruby releases generally improve performance, it’s good to see in what situations the performance gains are most obvious between different releases. While RubyBench has Rails benchmarks using the Discourse codebase there are also several more specific benchmarks about hash, IO, loop, array or Marshalling performance so you get a much clearer picture of the evolution of Ruby performance. It even shows how Ruby performance evolves in recent MRI commits.
It’s good to remember that RubyBench is one of the projects sponsored by RubyTogether, the trade association established to support Ruby infrastructure tools and projects, so if you find RubyBench useful for you or your company, consider joining RubyTogether.
Because Ruby takes care of memory for us, few people actually bother to learn about the quirks of memory allocation. So Richard Schneeman dutifully enlightens us about how object references affect memory allocation and release; how crucial it is to avoid global references; how sometimes retaining objects is faster; and a lot more interesting knowledge that will surely affect the way you write Ruby in the future.
If speed is your concern, in-place modification is a neat trick. Instead of creating a new copy of a string each time you call downcase and gsub on it within a loop, it’s much more efficient to use the “bang” equivalent for these two methods and modify the already allocated string objects in memory.
Mike Perham urges users to remove Ruby’s Timeout module from their codebase. He claims that after removal, you'd likely experience an increase in stability. Timeout is used to ensure a block of code executes within a given period of time. When used with something like Sidekiq, it’s really easy for a request to get an incorrect response and end up with a corrupted connection.
The solution lies in relying on lower-level network timeouts. This way you get to rely on the operating system to correctly understand everything and execute properly. He gives a few examples with Sidekiq, redit-rb, dalli, and event Net::HTTP. If the network library you use doesn’t have any documentation for timeout options it looks like you just found a place to make a PR!
Strong Code Review Culture, Arel Project instead of pluck, emoji in MySql and flamegraphs
This week we cover Ruby: The Last Eight Years, How I TRAINed to learn Rails, Minitest, encrypting secrets with Rails, Regular Extremism, and more!
5 Billion RubyGems downloads, a Flappy Bird clone in Ruby, Ruby Type Systems, integrating Rubocop, RailsConf 2015 talk videos, Data Clumps, and ArrrrCamp 2015.
A denoising autoencoder, using UUIDs with postgres and ActiveRecord, network programming in Ruby, part 3 of Tackling Those Tests, and writing rspec formatters from scratch all in this episode of the Ruby5!
Looking to learn about Ruby? Take a look at the Ruby Path on Code School
This podcast is produced and distributed by Code School. Copyright © 2017 Code School LLC