Workflows, testing, and why you might want to log into RubyGems.org

3 months ago - Direct link



#510 — July 16, 2020


Read on the Web


Ruby Weekly

...


Go to article →

Links in this thread

Ruby Weekly Issue 510: July 16, 2020
Introduction to AWS Simple Workflow Service (SWF) — SWF is used for building and managing background jobs made up of numerous parallel or sequential steps, and like many AWS services it gets complicated fast despite the 'simple' moniker. This post covers the concepts along with a Ruby based example.


Introduction to Simple Workflow Service (SWF)
In this post I’m going to explore Simple Workflow Service (SWF) available in AWS. To understand what SWF is good for, we need to first understand what a workflow is. Wikipedia defines it as follows: A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence of operations, the work of a person or group, the work of an organization of staff, or one or more simple or complex mechanisms. In computer systems we care about the part about processing information. Some things that could be modeled as workflows: Deployment pipeline: We could receive some code as input and then build it in a worker machine. We can run tests in parallel in different machines. If all tests pass we can deploy the binaries to another set of machines. Coordinate shipments: A user buys a product on an online store and the order is placed on a system. A human monitors this system and takes care of finding the products in a warehouse and shipping them to the correct address. When the shipment is made, the information is entered in a system. The workflow notices this information an e-mails the user the shipping details. Asynchronous image processing: A system uploads files to a system for processing (let’s say, create thumbnails). A workflow uses multiple workers to execute the task. If any of the machines fails while processing a set of files, they same work can be taken over by another worker.


System of a test: Proper browser testing in Ruby on Rails — Martian Chronicles
Discover the best practices for end-to-end browser testing in Ruby on Rails: Ferrum instead of Selenium, CDP, Docker


Application Monitoring for Ruby, Elixir, and Python ~ Scout
Rails Monitoring, Django Monitoring, Elixir Phoenix Monitoring, PHP Laravel Monitoring, and more that identifies slow database queries, memory leaks, and slow custom code.


Rate limit · GitHub
You have triggered an abuse detection mechanism. Please wait a few minutes before you try again; in some cases this may take up to an hour.


The simdjson library
JSON is everywhere on the Internet. Servers spend a lot of time parsing it. The simdjson library uses commonly available SIMD instructions and microparallel algorithms to parse JSON several times faster than anything else out there.


Rate limit · GitHub
You have triggered an abuse detection mechanism. Please wait a few minutes before you try again; in some cases this may take up to an hour.


Removing SHA1 passwords from RubyGems.org - RubyGems Blog
When the RubyGems.org Rails app was created in 2009, the “standard” way to store passwords was to use the SHA1 hashing algorithm. While there were limited academic attacks against SHA1 published as early as 2005, practical attacks didn’t arrive until the mid-2010s. Today, SHA1 is is widely considered insecure, and there are much better options available.


99 Bottles — Sandi Metz
We are practical people. We love beautiful code but we're committed to getting things done. 99 Bottles of OOP enables both of these desires. It teaches practical techniques for getting things done that lead, naturally and inevitably, to beautiful code.


Shutdown of mLab's Heroku Add-on on November 10, 2020 | mLab Documentation & Support
mLab is shutting down its Heroku add-on.


Redis in Ruby
Introduction to Redis in Ruby and who the book is for


Passenger 6.0.6
Version 6.0.6 of the Passenger application server has been released. This release is mainly focused on compatibility with the new Ubuntu Focal Nginx package release. Passenger 6, introduced Generic Language Support, or: the ability to support any and all arbitrary apps. Updates & improvements Update gemspec with up


Backend Engineer - Marketing Engineering (Ruby on Rails, Python) (f/m/d) job in Berlin, Germany at HeyJobs
About us Would you like to use your skills to help non-academic talent to have the same career opportunities you have? Join the Heyvolution!   We use a rich data set we collect along the hiring processes of many companies & machine-learning technologies to connect people to their next job. On the other side, with the HeyJobs platform, we enable recruiters - our customers  - who are desperately looking for talent, to get their open positions filled quickly with perfectly matching candidates. With more than 1000 customers and a team of 100+, our vision is to become the trustworthy career advisor for talent in Europe - making exhausting and intransparent application processes a thing of the past. By the end of 2020, we want to help 1 million people to find the right job to live a fulfilling life. Your role As a backend engineer in the Marketing Engineering Team, you will have a direct impact on HeyJobs’ marketing performance. In this role, you will be designing, building, optimizing, and maintaining services and tools which we use to generate job ads, analyze marketing performance and provide control over it and integrate with marketing partners. As part of our team, you’ll have the opportunity to work with different programming languages like Ruby, Python, JS (React), and a modern tech stack based on AWS. In addition, our cross-functional team enables marketing managers and engineers to work closely together, to bring the talent acquisition marketing that HeyJobs does for clients to the next level.  You have: * 3+ years of Ruby (Rails) experience * 1+ years of Python experience * Willingness to work with both Ruby (70%) and Python (30%) * An interest in the fast paced field of automation of digital marketing channels * Experience in and drive for testing and test-driven design * Experience in using Docker or other containerization technologies * Willingness to write and maintain well structured documentation * Hands on experience in building APIs and integrating with 3rd parties * Pragmatic, can-do attitude (you like to dive deep and get things done) * Willingness to learn new technical concepts and apply them * Willingness to learn and grow professionally * Good English communication skills (written and verbal, German not required) Bonus: * Experience in building pipelines using Python and Airflow * Experience in working with AWS (ECS, Lambda, Redshift, Glue) * Experience in data analysis (SQL, Redshift, Glue) * Experience in SQL optimisation * Experience in React You will * Design, build, improve, and maintain (together with technical Product Owner and a team) tools/services which: * generate job ads * help to analyze marketing performance * provide integrations with our marketing partners * help marketing managers and customer success team internally * Have a great impact on marketing performance * Have a direct access to marketing insights * Have a quick and efficient feedback loop with stakeholders (marketing managers) * Face and solve performance marketing challenges * Face and solve scalability challenges * Be a part of a unique, open and friendly team, solve challenges together Why HeyJobs? * Great product with purpose: To help people get the right job to live a fulfilling life * Welcoming company culture: Our values - Teamwork, Entrepreneurship, Drive - are integrated in all areas of our organization and build the core for a respectful and people-focused culture. Learn more. [https://medium.com/@luthermarius/https-medium-com-luthermarius-how-to-become-the-no-1-tech-employer-d90fe3d4655f] * Diverse Team: 30 different nationalities, 43% females (34% female leaders), 45% of employees working in tech, LGBT+ champion * Modern technology stack: Check out our Stack. [https://stackshare.io/companies/heyjobs] * High-quality equipment: Electric standing desk, MacBook of choice, etc. * Career development: Clear 7-step career path supported by In-house trainings and personal development budget for external trainings/conferences * Secure Job: Over 1’000 large clients, proven business model & over 15M€ financing * Work-Life Balance: Flexible working hours, paid sabbaticals, remote work possibilities and more * Perks & Benefits: weekly team lunch, annual company retreat, sports membership, employee stock options, fresh fruit & great drinks and much more * Great Office: Berlin-Kreuzberg, Paul-Lincke Ufer - great lunch options and food markets Want to know more about us? We are proud to have been continuously ranked as one of Berlin's best tech employers! See for yourself: Top Tech Employer in Berlin [http://bit.ly/happyHJ], Kununu [http://bit.ly/HJkununu], Glassdoor [http://bit.ly/HJglass], Top 25 LinkedIn Startups [http://bit.ly/top25li]. Check out our blog [https://hire.heyjobs.co/en-us/blog], LinkedIn, [https://www.linkedin.com/company/heyjobs/]or our techblog [https://medium.com/heyjobs-tech] to find out more about us.     


Grow your tech career
Thousands of startups and companies use Vettery to grow their tech and product teams. Sign up today and let your next role find you.


Adscheduler
Get your job listings in front of over 400,000 software developers via our JavaScript, Web operations, front-end development, Ruby, Node.js, and other e-mail newsletters.


Matt Bettinson
I'm a Canadian developer working at Connected.


Sonic Pi - The Live Coding Music Synth for Everyone
Sonic Pi is a new kind of instrument for a new generation of musicians. It is simple to learn, powerful enough for live performances and free to download.


Defining gem dependencies in single file Ruby scripts
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.


Rails 6.1 adds support for where with a comparison operator | The Official BigBinary Blog | BigBinary
Rails 6.1 adds support for where with a comparison operator


Letting change and uncertainty advance your software architecture
Change is a constant in technology. Learn how to think about designing architecture in a manner that can adapt and change to things that don’t even exist when we start building it.


Building a Toy Lexer in Ruby
Lexers are magical. They take your messy, hand-typed, human text, and convert it into a clean data structure that the computer can process. Every time you run a ruby program, use structured search or type in a date by hand, you'll find a lexer hard at work. In this article, Alex Braha Stoll pulls...


Using Action Mailbox in Rails 6 to Receive Mail
Sending mail from a Rails application has been covered by hundreds or thousands of articles, however, there is not a ton of articles about receiving, parsing and using the new ActionMailbox. The following is an excerpt from my book Build A SaaS App in Rails 6 and is used in a new product I am building Mail Buffer. Thus, I am standing by the tutorial here with real world usage!


Sharing code with Ruby and Rails | Poll Everywhere Blog
Ruby and Rails provide many ways to share code between objects. If you don’t work in Ruby or a Rails application often, it can be hard to remember what each one does. Despite this, each of these tools serves a...


jruby/jruby
JRuby, an implementation of Ruby on the JVM. Contribute to jruby/jruby development by creating an account on GitHub.


5by5 | Ruby on Rails Podcast #326: Job Searching and Hiring Advice During the Pandemic with Brian Mariani
A timely episode for the employers hiring and the Ruby developers looking for work during the pandemic. After a heartfelt story, Brian Mariani, founder of Mirror Placement, revealed hiring patterns and honest advice for these unprecedented times.


Painless Rails upgrades
Sooner or later your Rails application will require an upgrade of the framework itself. There are many reasons behind that. Bugs, incompatibility with modern libraries, or the worst: the version you use will no longer receive security updates. Living on the edge might be tempting, but it can also end badly for the business which relies on the application. User data leak, frauds, this all can simply lead to serious legal and financial issues.


Squib | A Ruby DSL for prototyping card games
Squib is a Ruby DSL for prototyping card and board games. Write a little bit of Ruby, define your deck’s stats, then compile your game into a series of images ready for print-and-play or even print-on-demand. Squib is very data-driven and built on the principle of Don’t Repeat Yourself. Think of it like nanDeck done “the Ruby way”. Squib supports:


diasks2/pragmatic_tokenizer
A multilingual tokenizer to split a string into tokens - diasks2/pragmatic_tokenizer


RubyMine: The Ruby on Rails IDE by JetBrains
The Ruby and Rails IDE with first-class support for Ruby and Rails, JavaScript and CoffeeScript, ERB and HAML, CSS, Sass and Less, and more.


enspirit/bmg
Bmg, Alf's successor, A Ruby Relational Algebra. Contribute to enspirit/bmg development by creating an account on GitHub.


restforce/restforce
A Ruby client for the Salesforce REST API. Contribute to restforce/restforce development by creating an account on GitHub.


Release v5.0.0 · restforce/restforce
A Ruby client for the Salesforce REST API. Contribute to restforce/restforce development by creating an account on GitHub.


ruby-grape/grape
An opinionated framework for creating REST-like APIs in Ruby. - ruby-grape/grape


intridea/multi_json
A generic swappable back-end for JSON handling. Contribute to intridea/multi_json development by creating an account on GitHub.


thoughtbot/clearance
Rails authentication with email & password. Contribute to thoughtbot/clearance development by creating an account on GitHub.