Welcome to the second issue of Web Design Weekly featuring tutorials and news about Ruby, Rails, JavaScript, CSS, MongoDB, PostgreSQL, AMP, Node, Go, TypeScript, React Native and Redis.

Ruby Adds Experimental Support for 'End-Less' Method Definitions

Ruby has added a new method definition syntax as an experimental feature.

Read more at https://blog.saeloun.com/2020/04/27/ruby-adds-endless-method-definition-experimental.html

Drag and Drop sortable lists with Rails & Stimulus JS

Drag and drop sortable lists in Rails aren't too hard using Sortablejs and Stimulus to make wire them up to our backend with acts_as_list

Read more at https://gorails.com/episodes/rails-drag-and-drop-sortable

Building with Patterns: The Polymorphic Pattern

One frequently asked question when it comes to MongoDB is "How do I structure my schema in MongoDB for my application?" The honest answer is, it depends. Does your application do more reads than writes? What data needs to be together when read from the database? What performance considerations are there? How large are the documents? How large will they get? How do you anticipate your data will grow and scale?

Read more at https://developer.mongodb.com/how-to/polymorphic-pattern

How to Optimize Performance of MongoDB

Excellent database performance is important when you are developing applications with MongoDB.

Read more at https://severalnines.com/database-blog/how-optimize-performance-mongodb

12 Tips for Going into Production with MongoDB

Are you going into production with MongoDB? Don’t flip the switch yet! Read these 12 tips from our expert support engineers to make your launch a success.

Read more at https://www.mongodb.com/blog/post/12-tips-going-production-mongodb

7 things that could be improved in PostgreSQL

As any major piece of software, PostgreSQL has some smaller weaknesses. Kaarel Moppel points out how PostgreSQL could be improved to make it even better.

Read more at https://www.cybertec-postgresql.com/en/things-could-be-improved-postgresql/

AMP Introduces 'User-Friendly' Client-Side Content Encryption Support

Stuck between keeping content secure and providing a great user experience? The debate is over! We’re introducing a new type of premium experience! Client-side content encryption is a fast and user-friendly solution to protect and serve premium content. All while providing the same level of security as server-side validation!

Read more at https://blog.amp.dev/2020/04/27/introducing-the-fastest-and-most-user-friendly-content-encryption/

Node v14.1.0 (Current) Released

Last week we featured the release of Node 14.0 and 14.1 is already with us. Principally bug fixes, plus an update to the OpenSSL dependency.

Read more at https://nodejs.org/en/blog/release/v14.1.0/

Ultimate Go study guide

Ultimate Go study guide, with heavily documented code and programs analysis, all in 1 place

Read more at https://github.com/hoanhan101/ultimate-go


grobotstxt is a native Go port of Google's robots.txt parser and matcher library.

Read more at https://github.com/jimsmart/grobotstxt

Next.js 9.3.6 Released with Experimental React Refresh Support

Lots of minor tweaks and bug fixes, but the main reason to dig into this is if you’re an existing Next.js user and are curious about the Fast Refresh support.

Read more at https://github.com/zeit/next.js/releases/tag/v9.3.6

Porting a React Frontend to TypeScript

The beta version of Execute Program was written in Ruby and JavaScript. Then we ported all of it to TypeScript in multiple steps. This is the story of the frontend port, which was the first step.

Read more at https://www.executeprogram.com/blog/porting-a-react-frontend-to-typescript

How I Organize React Projects

React is an incredibly powerful tool in part because you can use it any way you like. The side effect of this flexibility, however, is that you must make a lot of decisions yourself as to how to use it and how to structure your React applications.

Read more at https://blog.danawoodman.com/articles/organizing-react-projects

React Native Socials

Twitter, Instagram, (and more!) into your react-native app

Read more at https://github.com/PierreCapo/react-native-socials

Things I Wished More Developers Knew About Databases

A large majority of computer systems have some state and are likely to depend on a storage system. My knowledge on databases accumulated over time, but along the way our design mistakes caused data loss and outages.

Read more at https://medium.com/@rakyll/things-i-wished-more-developers-knew-about-databases-2d0178464f78

Engineering code quality in the Firefox browser: A look at our tools and challenges

Over the years, engineering teams at Mozilla have introduced tooling for code quality. This toolchain works at various stages of the complex Firefox development cycle.  In this article we’ll take a look at the types of tools we’ve developed, some of the challenges they address, and the architecture solutions we’ve developed.

Read more at https://hacks.mozilla.org/2020/04/code-quality-tools-at-mozilla/

Accessible Font Sizing, Explained

The Web Content Accessibility Guidelines (WCAG), an organization that defines standards for web content accessibility, does not specify a minimum font size for the web.

Read more at https://css-tricks.com/accessible-font-sizing-explained/

CSS for internationalisation

I’ve come across people who do not think that CSS is related to internationalisation at all, but if you think about it, internationalisation is more than translating the content on your site into multiple languages and calling it a day. There are various nuances to the presentation of that content which affect the experience of a native speaker using your site.

Read more at https://chenhuijing.com/blog/css-for-i18n/

Spacing in CSS

If two or more elements are close, then the user will assume that they somehow belong to each other. When grouping multiple design elements, the user can decide how they relate to each other by the amount of space between them. Without spacing, it will be hard for a user to skim a page and know what items that are related and what are not.

Read more at https://ishadeed.com/article/spacing-in-css/

Redis 6.0 Released

Finally Redis 6.0.0 stable is out. This time it was a relatively short cycle between the release of the first release candidate and the final release of a stable version.

Read more at http://antirez.com/news/132

window.location Cheatsheet

Looking for a site's URL information, then the window.location object is for you! Use its properties to get information on the current page address or use its methods to do some page redirect or refresh

Read more at https://dev.to/samanthaming/window-location-cheatsheet-4edl

Getting Started With Nuxt

In this tutorial, we’re going to learn how to create server-side rendered applications by using Nuxt.js, how to configure your application for development, and how to deploy to Heroku.

Read more at https://www.smashingmagazine.com/2020/04/getting-started-nuxt/

7 JavaScript Design Patterns Every developer should know

Design patterns in JavaScript are reusable solutions applied to commonly occurring problems in writing JavaScript web applications.

Read more at https://codesource.io/javascript-design-patterns/

10 Practical JavaScript Tricks

I'm always on the lookout for new ways to be more efficient. And JavaScript is always full of pleasant surprises.

Read more at https://dev.to/zandershirley/10-practical-javascript-tricks-2b7h