Hacky Friday Stuff #19.06.2020
Tags: ruby, rails, fullstack, hackyfriday
Published: 2020-06-19 11:48:41

*Links about web development, product engineering, tools and services from all over the internet.*

Photo by [Carl Heyerdahl](https://unsplash.com/@carlheyerdahl) on [Unsplash](https://unsplash.com/).

[Microsoft: Rust Is the Industry’s ‘Best Chance’ at Safe Systems Programming](https://thenewstack.io/microsoft-rust-is-the-industrys-best-chance-at-safe-systems-programming/)
> No matter how much investment software companies may put into tooling and training their developers, “C++, at its core, is not a safe language

said Ryan Levick, Microsoft cloud developer advocate, during the AllThingsOpen virtual conference last month, explaining, in a virtual talk, why Microsoft is gradually switching to Rust to build its infrastructure software, away from C/C++. And it is encouraging other software industry giants to consider the same.

[Rails 6.0.3.2 has been released!](https://weblog.rubyonrails.org/2020/6/17/Rails-6-0-3-2-has-been-released/)
Rails 6.0.3.2 has been released! This version of Rails contains an important security patch, and you should upgrade!

[Introducing GitHub Super Linter: one linter to rule them all](https://github.blog/2020-06-18-introducing-github-super-linter-one-linter-to-rule-them-all/)
The GitHub Super Linter was built out of necessity by the GitHub Services DevOps Engineering team to maintain consistency in their documentation and code while making communication and collaboration across the company a more productive experience. Now it's open-sourced, so everyone can use and improve it!

### Articles & tutorials

[Allowing dots in Rails routes](https://prathamesh.tech/2020/06/15/allowing-dots-in-rails-routes/)
Rails routing is very powerful and it allows to define different types of routes. Though resourceful routes is recommended, it also gives us ability to define routes for specific cases using dynamic segments with parameters. It's easy to do, but what if parameter could have a value with a dot `.` symbol? 

[Never forget your password with this Python encryption algorithm](https://opensource.com/article/20/6/python-passwords)
This unique algorithm using Python and Shamir's Secret Sharing protects your master password from hackers and your own forgetfulness.

[Web Scraping with Ruby](https://www.scrapingbee.com/blog/web-scraping-ruby/)
This post will cover the main tools and techniques for web scraping in Ruby. It starts with an introduction to building a web scraper using common Ruby HTTP clients and parsing the response. This approach to web scraping has, however, its limitations and can come with a fair dose of frustration. Not to mention, as manageable as it is to scrape static pages, these tools fail when it comes to dealing with Single Page Applications, the content of which is built with JavaScript. As an answer to that, you'll see how to use a complete web scraping framework.

### Tools & libraries

[11ty](https://www.11ty.dev/)
Eleventy is a simpler static site generator.

[Quick DBD](https://www.quickdatabasediagrams.com/)
A neat tool for drawing pretty database diagrams by typing the schema.

[SimpleDiscussion](https://github.com/excid3/simple_discussion)
SimpleDiscussion is a Rails forum gem extracting the forum from GoRails. It includes categories, simple moderation, the ability to mark threads as solved, and more.
Out of the box, SimpleDiscussion comes with styling for Boostrap v4 but you're free to customize the UI as much as you like by installing the views and tweaking the HTML.

[Amazing Print](https://github.com/amazing-print/amazing_print)
Pretty print your Ruby objects with style -- in full color and with proper indentation.

[Regexp::Parser](https://github.com/ammar/regexp_parser)
A Ruby gem for tokenizing, parsing, and transforming regular expressions.

[jscodeshift](https://github.com/facebook/jscodeshift)
jscodeshift is a toolkit for running code modifications over multiple JavaScript or TypeScript files.

### Podcasts
[UI Breakfast Podcast. Episode 144: Product Integrations with Rob Walling](https://uibreakfast.com/144-product-integrations-with-rob-walling/)
Integrations are a fantastic way of growing your product while providing value to your customers. However, you need to approach them carefully and strategically. Rob Walling, co-founder of MicroConf, TinySeed, and Drip will show you how to use integrations as a customer acquisition channel, and what goes into a successful integration — from making the initial decision to creating support docs and co-marketing opportunities.

### Videos
[How to launch a product in 8 weeks](https://thoughtbot.com/events/product-launch-workshop)
Thoughtbot co-founder, developer, and CEO, Chad Pytel recorded a workshop for the ones interested in launching a new web or mobile product in 2020.

[Leslie Lamport: Thinking Above the Code](https://www.youtube.com/watch?v=-4Yp3j_jk8Q)
Architects draw detailed blueprints before a brick is laid or a nail is hammered. Programmers and software engineers seldom do. A blueprint for software is called a specification. The need for extremely rigorous specifications before coding complex or critical systems should be obvious—especially for concurrent and distributed systems. This talk explains why some sort of specification should be written for any software.