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
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
Hello, the talk notes from yesterday’s Vienna.rb meetup titled Mining for Gold Using the World’s #1 and Most Popular Data Format (w/ Ruby and CsvReader). Happy data wrangling / mining with Ruby. Cheers. Prost. PS: The talk slides from the 2nd talk titled Designing HexaPDF: Iterarative Design, Orthogonality and Other Design Tools by Thomas Leitner
November 1st Passenger creator Hongli Lai will be livestreaming the implementation of a major feature in the app server. Implementing ‘generic language support’ seemed like the opportune moment to show how Passenger is architected and how we approach writing (C++) code: https://blog.phusion.nl/2018/10/19/livestreaming-from-phusion-hq-adding-a-feature-to-passenger/
In this article, we’re going to explore the following topics:
I wanted to share an interesting discovery. If you’re using Capybara then you might be able to speed up your tests considerably (5 times in my case) by moving the database to
tmpfs. I wrote an article showing how: https://www.gregnavis.com/articles/how-to-tune-your-database-to-make-tests-faster.html . The same technique should work in other frameworks (and languages) as long as you don’t wrap test cases in transactions to clean up after them.
The HateFreeWeb.org just open sourced a new SEO platform that detects hate speech, phishing scams, E-mails that where exposed in hacks, accessibility issues, mobile issues and more. As we thought “you are who you link to” (and Google thinks so too!), we pay special attention to problems on sites you are linking to. This means that if you link to a site that has phishing links on it, you enable crimes without knowing it. It’s a very useful tool for web designers, software developers and every business that runs a website. It’s all on GitHub! Happy forking and let’s make the Internet a safer place:) https://www.hatefreeweb.org
Search is quite a common problem in any app. The main issue is that search has to evolve over time to allow the users to refine their results based on your ever-evolving data. [more inside]
Hello, I’ve published the https://blog.bigbinary.com/2018/10/16/rails-5-2-disallows-raw-sql-in-active-record.html that will guide you how we can prevent SQL injections in Rails.
Hello, I’ve published the tabreader library / gem version 1.0
that lets you
read in tabular datafiles in text in the tabular (TAB) format.
Or with headers (column names in the first row) use
TabHash.read and so on.
Yes, tabreader uses
"1\t2\t3".split( "\t" ) for parsing :-).
Happy data wrangling with ruby. Cheers. Prost. PS: The FAQ in the README includes:
Q: Why NOT use
Csv.read( sep: "\t" )? ++
Q: What’s the tabulator (TAB) format? ++
Q: Why tab? ++
Q: Why NOT tab?
As the ActiveRecordSerializers Gem is not used anymore, it’s nice to have a replacement. Here I describe How to move from one gem to another. [more inside]
Discover how to use Grep to filter enumerable objects in interesting ways! https://www.rubyguides.com/2018/10/grep-method-with-examples/
I was recently invited to Sheffield Ruby User Group to share the story of MaraBot, a very personal project to help use machine learning and weather shifts to regain control over managing chronic pain: https://schwad.github.io/ruby/rails/community/2018/10/16/speaking-on-ruby-and-chronic-pain-management-at-sheffield-ruby.html
In some of our Ruby on Rails applications, we have migrated from using OS based cron to distributed cron using Sidekiq Scheduler. We will discuss the motivation for this change and the benefits from it. https://godaddy.github.io/2018/10/15/distributed-cron-for-rails-apps-with-sidekiq-scheduler/
Writing Ruby code that uses threads is a great way to get better performance and improve your app’s user experience. It can also be quite daunting due to the often-feared “concurrency bugs”. In this talk, recorded at the Fullstack LX Ruby meetup, I introduce a number of pitfalls to watch out for, presenting correct (and fast!) alternatives for each. [more inside]
I recently wrote a blog post on how we halved our memory consumption, and drastically increased speed, in our Ruby on Rails app just by switching to jemalloc: https://medium.com/@carmenhchung/how-we-halved-our-memory-consumption-in-rails-with-jemalloc-86afa4e54aa3 If anyone has any thoughts, or other tips for performance optimisation, please do leave a comment!
Hey there, FaaStRuby 0.2.0 is out! This version comes with lots of improvements. Top 2 highlights: Functions are packaged, deployed and managed individually (no more pulling from git repository) | TESTS! Functions can have tests and they can be configured to run before each deploy, aborting if it fails. Feedback is greatly appreciated!
Hello, I’ve written a new episode in the why the csv standard library is broken, broken, broken (and how to fix it). It’s a new introduction to the series titled “I apologize - Sorry, Sorry, Sorry.” to clarify that I am in no way blaming the author (really I’m blaming YOU :-), that is, all the free-loaders waiting for a miracle. The author or the authors of the standard CSV library deserve our hugs and thank yous for the great work and many hours (for sure many unpaid and volunteered) put into the CSV library. We are all standing on the shoulders of giants. Thank you. Thank you. Thank you. Cheers. Prost.
A brief post showing how to match fingerprinted asset URLs in your specs with Rails 5. https://www.chrisblunt.com/rails-5-matching-asset-urls-in-feature-specs/
Hello, I’ve written a new (and fourth) episode on why the CSV standard library is broken, broken, broken (and how to fix it). Let’s have a look at numerics a.k.a. auto-magic type inference for strings and numbers. Questions and comments welcome. Cheers. Prost. PS: If you want to see other (more) CSV formats / dialects pre-configured and supported “out-of-the-box” in the new csv reader, please tell.