y

Coronavirus: Google ends plans for smart city in Toronto

Sister firm Sidewalk Labs cites Covid-19 as the reason for stepping back from its ambitious plan.




y

Facebook and Google extend working from home to end of year

The tech giants plan to re-open offices soon but will allow staff to work remotely throughout 2020.




y

Uber says 'no sacred cows' amid coronavirus crisis

The firm has already announced job cuts affecting 14% of its staff, but more measures may be needed.




y

Coronavirus: 'Plandemic' virus conspiracy video spreads across social media

A slickly-produced "documentary" has exploded across social media, peddling medical misinformation.




y

RTX Voice: Noise-destroying tech put to the test

Two noise-cancelling AI systems - Nvidia RTX Voice and Krisp - are put to the test.




y

TileDB 2.0, Scylla 4.0, and CockroachDB raises extra funds

#303 — May 8, 2020

Read on the Web

Database Weekly

Introducing Scylla Open Source 4.0 — Scylla (a Cassandra-compatible NoSQL data store aiming to be the “world’s fastest column-store database”) now provides production-ready lightweight Transactions (LWT), a DynamoDB-compatible API (Alternator), and operator for Kubernetes, and more.

Dor Laor

The Best Medium-Hard Data Analyst SQL Interview Questions — This article begins with a quote: “The first 70% of SQL is pretty straightforward but the remaining 30% can be pretty tricky.” True! This article focuses on the tricky ‘medium-hard’ area that few tutorials venture into.

Zachary Thomas

????Live Coding: Guide to Grafana 101 - Getting Started with AlertsJoin us on May 20th to see how to use Grafana’s alerting functionality to get notified about anomalies in your data, dig into root causes, and respond to critical issues. Step-by-step demos + tips = cheaper, more flexible monitoring ✅.

Timescale sponsor

TileDB 2.0 and the Future of Data Science — TileDB is an embeddable storage engine focused on working with dense and sparse multi-dimensional arrays. It’s a C++ library with official Python, R, Java and Go integrations, but it can integrate with other database systems too. 2.0 introduces dataframe support, a new API for R, and support for Google Cloud Storage and Azure Blob Storage.

Stavros Papadopoulos

Time-Series Compression Algorithms, Explained — Delta-delta encoding, Simple-8b, XOR-based compression, and more - these algorithms aren’t magic, but combined they can save over 90% of storage costs and speed up queries. Here’s how they work.

Joshua Lockerman and Ajay Kulkarni

CockroachDB Creators Raise $87 Million of New Investment — Quite a raise and quite a valuation in these times for the creators of CockroachDB, a popular distributed SQL database.

Cockroach Labs

The Big Cloud Data Boom Gets Even Bigger, Thanks to COVID-19? — It’s not like the cloud was doing badly beforehand, but the pandemic is apparently encouraging companies to virtualize as much of their operations as possible.

Datanami

MongoDB Is Easy. Now Make It Powerful. Free Download for 30 Days. — Using MongoDB Atlas? Studio 3T is the professional GUI and IDE that unlocks the power you need.

Studio 3T sponsor

Speeding Up count(*): Why Not Use max(id) - min(id)? — A warning tale in case you decide to take this shortcut. While you might be able to estimate or fudge a number that’s close, you can’t guarantee sequences will give you an exact, correct answer here.

Hans-Jürgen Schönig

Using AWS API Gateway to Run Database Queries — API Gateway is commonly used to hook up HTTP endpoints to AWS Lambda functions but did you know it can directly connect to DynamoDB? (Or any AWS service that lets you query over the AWS API, so not RDS.)

Renato Byrro

How to Remain Agile with DynamoDB — Amazon DynamoDB delivers performance at scale but at a cost to flexibility (particularly early on in the development cycle when your eventual access patterns aren’t always known) – there are some mitigations, however.

Rob Cronin

Jobs

DevOps Engineer at X-Team (Remote) — Join X-Team and work on projects for companies like Riot Games, FOX, Coinbase, and more. Work from anywhere.

X-Team

Tooling

pgModeler: A Postgres Database Modeler — An easy way to create and edit database models in a visual way. It’s packaged up as a paid product but is also open source so you can build your own.

Raphael Araújo e Silva

AvionDB: A Decentralised Database with MongoDB-like Developer Interface — An admittedloy ‘alpha stage’ database system built on top of OrbitDB, a serverless, peer-to-peer database that uses IFPS for storage and implements the core decentralized database logic/protocol.

Dappkit

mssql-cli, a CLI Tool to Manage SQL Server, Now on macOS and Linux — mssql-cli is a tool for working with SQL Server from the command line, complete with Intellisense, syntax highlighting, and paging.

Alan Yu (Microsoft)




y

Coronavirus: How do you social distance in schools?

If pupils are allowed to return to school after the lockdown, how would they keep 2m apart?




y

‘Justice not charity’ - the blind marchers who made history

Remembering the maverick blind campaigners who walked to London a century ago to demand equality.




y

Lockdown homeschooling: The parents who have forgotten what they learned at school

Parents have been turning to Google to help them teach the things they’ve forgotten.




y

Coronavirus: ‘The nursery I run may not survive’

Thousands of nurseries and childminders may shut permanently due to the pandemic, research suggests.




y

Coronavirus: Teachers warn of early school return 'spike'

Teaching unions across UK and Ireland say test and trace measures must be fully operational before reopening.




y

Coronavirus schools return: Can you really keep children 2m apart?

What's it like in a school that has re-opened? Denmark and Germany show how it might look.




y

Coronavirus: Key safeguards needed for schools to reopen - unions

Education unions say they want scientific evidence it is safe for teachers and pupils to return.




y

Coronavirus: When might Hollywood reopen for business?

Cast and crews might have to quarantine together in the future when filming begins again.




y

Coronavirus by Air: The spread of Covid-19 in the Middle East

An investigation by BBC News Arabic has found how one Iranian airline contributed to the spread of coronavirus around the Middle East.




y

Five-year-old caught driving parents' car in Utah

The boy said he was travelling to California to buy a Lamborghini.




y

Coronavirus: I got a life-changing opportunity in lockdown

Ana Carmona chronicled her month in quarantine with her family in NYC, including when she got some big news.




y

Worst song possible plays as Trump tours mask plant

As the president touts plans to reopen the economy, Live And Let Die blares over a loudspeaker.




y

VE Day: Red Arrows flypast over central London

The Red Arrows fly over an empty central London to celebrate the 75th anniversary of VE Day.




y

ICYMI: Penguin chicks and new dining ideas

Some of the stories from around the world that you may have missed this week.




y

Ahmaud Arbery: Joggers out in solidarity with the killed 25-year-old

People have been dedicating their workouts to Ahmaud Arbery who was shot and killed while out jogging.




y

VE Day: The Queen addresses the nation

The Queen commemorates the 75th anniversary of VE Day with a televised address to the UK.




y

Coronavirus: Russia swaps Victory Day parade for air show

The Red Square parade was cancelled because of the pandemic, but in neighbouring Belarus the parade went ahead as planned.




y

My glamorous life: are you ready to math?

For the past two years, I’ve been publishing a daily work-and-life diary on Basecamp, sharing it with a few friends. This private writing work supplanted the daily public writing I used to do here. In an experiment, I’m publishing yesterday’s diary entry here today: YESTERDAY, Ava and a few of her schoolmates participated in a […]

The post My glamorous life: are you ready to math? appeared first on Zeldman on Web & Interaction Design.




y

You got this.

I’M LEARNING new tech and it’s hard. Maybe you’re in the same boat. Through the rosy lens of memory, learning HTML and Photoshop back in the day was a breeze. It wasn’t, really. And CSS, when it came along in 1996, was even tougher to grasp—in part because it was mostly theoretical, due to poor […]

The post You got this. appeared first on Zeldman on Web & Interaction Design.





y

My Brunch with Jen

Jen was present for, and actively participated in, the very beginnings of the creative and blogging web, and her famous book, now in its umpteenth edition, is still the best introduction to web design I know—probably the best that will ever be written.

The post My Brunch with Jen appeared first on Zeldman on Web & Interaction Design.




y

Expressive Design Systems

Yesenia Perez-Cruz started her career as a designer at Happy Cog Philadelphia. From the first day, her design gifts were unmistakable. As her career progressed, she moved from one challenging role to another. At companies like Vox Media and Shopify, and at conferences around the world, she has been a design team leader, a popular […]

The post Expressive Design Systems appeared first on Zeldman on Web & Interaction Design.




y

Let’s hang (Spotify)

Love music? Follow your own tastes? Let’s share. Connect on Spotify.Connect on Last.fm. As a bonus, if we connect on Spotify, you not only get access to An Event Apart’s playlists from the past decade, you also get a preview of the 2020 playlist in progress.

The post Let’s hang (Spotify) appeared first on Zeldman on Web & Interaction Design.




y

Another Blue Beanie Day

Yesterday was the nth annual Blue Beanie Day. (I’ve lost track of what year the standardista holiday started.) I was awake at 1:00 AM on Friday night/Saturday morning, so I tweeted “Happy #BlueBeanieDay,” then slept. No blog post, no prelude—just a past-midnight tweet, over and out. Saturday, once or twice, I checked Twitter and retweeted […]

The post Another Blue Beanie Day appeared first on Zeldman on Web & Interaction Design.




y

A panel on accessibility, design inclusion and ethics, hiring and retaining diverse talent, and landing a job in UX.

It’s one thing to seek diverse talent to add to your team, another to retain the people you’ve hired. Why do so many folks we bring in to add depth and breadth of experience to our design and business decision-making process end up leaving? Hear thoughtful, useful answers to this question and other mysteries of […]

The post A panel on accessibility, design inclusion and ethics, hiring and retaining diverse talent, and landing a job in UX. appeared first on Zeldman on Web & Interaction Design.




y

The Web We Lost: Luke Dorny Redesign

Like 90s hip-hop, The Web We Lost™ retains a near-mystical hold on the hearts and minds of those who were lucky enough to be part of it. Luke Dorny’s recent, lovingly hand-carved redesign of his personal site encompasses several generations of that pioneering creative web. As such, it will repay your curiosity.

The post The Web We Lost: Luke Dorny Redesign appeared first on Zeldman on Web & Interaction Design.




y

My Glamorous Life

At 4:00 PM, I went to bed to rest up from my head cold, and promptly fell asleep. When I awoke, the clock said 7:15. Oh, no! I banged on my daughter’s door. “You’re going to be late to school!” I shouted. She cackled with laughter.“It’s 7:15 AT NIGHT,” she explained.

The post My Glamorous Life appeared first on Zeldman on Web & Interaction Design.




y

An intro to making Postgres high availability on Kubernetes

#351 — April 15, 2020

Read on the Web

Postgres Weekly

A Detailed Look at pg_show_plans — A few issues ago we linked to a basic introduction to pg_show_plans – this goes a little further. pg_show_plans lets you look at the execution plans of slow queries in real time as they’re being executed which can help you when troubleshooting.

Kaarel Moppel

Intersecting GPS Tracks to Identify Infected Individuals — I’m not a huge fan of COVID-19 related content, but this is a pretty interesting technique with numerous use cases. Essentially it uses PostGIS to identify overlapping paths.

Florian Nadler

Online Training: Learn PostgreSQL from Home — The remote PostgreSQL Database Administration training course is available at a discounted rate & will be conducted in two different timezones. The course covers day-to-day DBA operations, monitoring, server configurations, and more.

2ndQuadrant PostgreSQL Training sponsor

PostgreSQL's 'Related Projects' — Thanks to Andreas Scherbaum for pointing out a new page on the Postgres site dedicated to projects related to Postgres like the code that runs the Postgres web site, mailing list, build farm, package management system, etc.

PostgreSQL Global Development Group

Authentication Configuration in Postgres (and CockroachDB) — In Postgres, client authentication can be controlled via a ‘HBA’ (host-based authentication) file. It’s not something we see covered very often, so you might find this interesting, particularly as it compares things against CockroachDB.

Raphael ‘kena’ Poss

▶  Easy And Correct High Availability Postgres with Kubernetes — A 50 minute talk from PostgresOpen 2019 that goes all the way ‘from containers up’ until actually doing stuff with Postgres.

Steven Pousty

How To Set Up an Express API Backend Project With Postgres — A pretty extensive walkthrough of creating an HTTP API using Express with Node.js and Postgres on the backend, then deploying it all on Heroku.

Chidi Orji

A Beginners Guide to Basic Indexing in Postgres

James Bannister

eBook: The Most Important Events to Monitor in Your Postgres Logs — In this eBook, we are looking at the Top 6 Postgres log events for monitoring query performance and preventing downtime.

pganalyze sponsor

Documenting the Citus Extension to Postgres: An Interview with Joe Nelson — Joe, a.k.a. begriffs, talks about why he works on documentation, why the multi-tenant and real-time analytics tutorials matter, the INSERT..SELECT with repartitioning feature, and what development platform Citus uses for docs.

Citus Data (Microsoft)

Procedural vs Query Approaches for Finding Packages — Explorations of a query that can be used to display which packages are available for a given FreeBSD port. Get your head around the data model and the ideas here apply to all sorts of situations.

Dan Langille

???? Upcoming Events

All in-person events we had listed are cancelled or postponed due to the COVID outbreak, so we're now linking to webinars, livestreams, and similar online events.

If you have any, just hit reply and if it's Postgres related (and either free or not too expensive) we'll include it in a future issue. Just one this week:

???? – requires e-mail address or registration
???? – costs money to participate

???? Seen on Twitter

Saw this tweet and thought it was a pretty neat reminder of the sorts of things we can do with Postgres. Justin kindly let us include it:

Click through to the original tweet if you want to see the code better. Neat use for a generated column!




y

It's time to upgrade those Ruby 2.4 apps

#497 — April 16, 2020

Read on the Web

Ruby Weekly

Bye Bye Ruby 2.4, Support Has Ended — From the end of April 2019 till now, Ruby 2.4 has been in its ‘security maintenance’ phase but now you won’t even get that, Ruby 2.4.10 should be the final 2.4 release. 2.5 will follow in 2.4’s footsteps next year, so upgrading to 2.6 or 2.7 should now be a priority for those older apps.

Ruby Core Team

Testing Ruby Decorators with super_method — Have you ever wondered how you can properly test the behavior of a method overridden by Module#prepend? Enter super_method which returns a Method object of which superclass method would be called when super is used or nil if none exists.

Simone Bravo

You Hacked the Gibson? Yeah, They Built Their Own Login — Don't let Crash Override pwn your app. FusionAuth adds secure login, registration and user management to your app in minutes not months. Download our community edition for free.

FusionAuth sponsor

Heya: A Sequence Mailer for Rails — “Think of it like ActionMailer, but for timed email sequences.” Note: It’s open source but not free for commercial use beyond a certain point.

Honeybadger Industries LLC

A Final Report on Ruby Concurrency Developments — A report on work funded by a 2019 Ruby Association Grant that puts forth a proposal of using non-blocking fibers to improve Ruby’s concurrency story.

Samuel Williams

Mocking in Ruby with Minitest — Minitest has basic mocking functionality baked in, but be judicious in your use of it.

Heidar Bernhardsson

???? Jobs

Ruby Backend Developer (Austria) — We’re seeking mid-level and senior devs to join us and build top-class backend infrastructure for our adidas apps, used by millions. Our stack includes: jRuby, Sinatra, Sidekiq, MySQL, & MongoDB.

Runtastic

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

▶️ Get ready for your next role: Pluralsight is free for the entire month of April. Stay Home. Skill Up. #FreeApril — SPONSORED

???? Articles & Tutorials

Predicting the Future With Linear Regression in Ruby — Linear regression is a mathematical approach to modelling a relationship between multiple variables and is demonstrated here by exploring whether the tempo of a song predicts its popularity on Spotify.

Julie Kent

Feature Flags: A Simple Way to 'De-Stress' Production Releases — Feature flags bridge a gap between the abstract concept of continuous delivery and tactical release of features.

Matt Swanson

A Guide to Deprecation Warnings in Rails — If you’ve upgraded Rails and you start seeing warnings screaming at you, you can either get Googling or.. read this ????

Luciano Becerra

What's the Difference Between Monitoring Webhooks and Background Jobs

AppSignal sponsor

Understanding webpacker.yml — Have you ever really gone through the Webpack config?

Ross Kaffenberger

Using Optimizer Hints in Rails — Rails 6 removes the need to write raw SQL to use optimizer hints, so that’s cool.

Prateek Choudhary

Dissecting Rails Migrations — You should pick up something new about migrations by reading this article as it covers all of the essentials and a little more.

Prathamesh Sonpatki

The Basics of Custom Exception Handling — Never hurts to revise the basics of effective exceptions.

Mark Michon

How to Improve Code Readability with Closures

Andrey Koleshko

???? Code and Tools

ruby-prolog: A Pure Ruby Prolog-like DSL for Logical Programming — Solve complex logic problems on the fly using a dynamic, Prolog-like DSL inline with your normal code.

Preston Lee

Anyway Config: Keep Your Ruby Configuration Sensible — Get your Ruby project out of ‘ENV Hell’ with anyway_config, a framework for managing configuration.

Vladimir Dementyev

The End of Heroku Alerts — Rails Autoscale keeps your app healthy. Simple and effective autoscaling for Web, Sidekiq, Delayed Job, and Que.

Rails Autoscale sponsor

Tomo 1.0: A Friendly CLI for Deploying Rails Apps — There’s a short tutorial for deploying Rails, and the documentation is thorough.

Matt Brictson

ActiveLdap 6.0: An Object Oriented Interface to LDAP — A very long standing project (16 years!) that has just had an update. LDAP stands for Lightweight Directory Access Protocol and while I don’t hear about it much anymore, it has plenty of established use cases.

Sutou Kouhei

Elasticsearch Integrations for ActiveModel/Record and Rails

Elastic

RubyMine 2020.1 Released

Natalie Kudanova




y

An interview with Ruby ETL expert Thibaut Barrère

#499 — April 30, 2020

Read on the Web

???? Occasionally we run interviews in Ruby Weekly and we're back with another one.. with long time Rubyist and Kiba maintainer, Thibaut Barrère. Be sure to check out the bottom of this issue to read it, especially if you ever run ETL jobs with Ruby! ????

Ruby Weekly

▶  Let's Build a Twitter Clone in 10 Minutes with Rails, CableReady, and StimulusReflex — You know that cloning Twitter in 10 minutes is impossible, but what about the core mechanism of the idea? After a slow first minute, this video does a pretty good job of showing off some techniques you might not have used before.

Nate Hopkins

discuss.rubyonrails: The Rails Project Discussion Forum — Basically a Web version of the Rails mailing lists and a worthwhile place to head if you want to suggest features, ask questions, etc.

Ruby on Rails Discussions

Easy Rails Deployments — Deploy your Ruby, Rails, Sinatra, and Rack application to any cloud or server. Cloud 66 offers a scalable Heroku alternative that doesn't lock you in. Try it free and get extra $66 free credits with the code: 'Ruby-Weekly'.

Cloud 66 sponsor

sequel-activerecord-adapter: Allows Sequel to Reuse an ActiveRecord Connection — If you want to use more Sequel or migrate in that direction, this makes it easy.

Janko Marohnić

Ruby Adds Experimental Support for 'End-Less' Method Definitions — We’ve touched on this in a previous issue, but if you fancy a proper blog post with examples, this is more accessible than digging through feature tracker discussions. I’m not a fan of this syntax myself yet, but Prateek does a good job of selling it.

Prateek Choudhary

CableReady: Trigger Client-Side DOM Changes from Server-Side Ruby — If you skipped the video above because it’s a video (and I know many of you do ????) CableReady is still worth checking out. It aims to “complete the ActionCable story” by providing a way to directly interact with clients over ActionCable WebSockets. The docs will help you get the idea.

Hopsoft

???? Jobs

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

Security Engineer (Remote) — Are you an engineer with experience in Rails and/or Go? Join our team and help secure our apps and cloud infrastructure.

Shogun

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

???? Articles & Tutorials

A Practical Use for PStorePStore is one of the older parts of Ruby’s stdlib and lets you persist (and restore) a Ruby hash to disk. I haven’t seen it in Ruby code for years but Arkency have found a neat, modern use case.

Paweł Pacana

▶  Drag and Drop Sortable Lists with Rails and Stimulus JS — How to wire up drag and drop lists with a Rails app using Sortable, Stimulus and acts_as_list.

Go Rails

Setting Up Multi-Factor Authentication for RubyGems.org — If you’re a registered user of the official Ruby Gems repository, you should have had an email this week about securing your account using 2FA. This is just my own reminder that this is a good idea especially if you publicly publish widely used gems! :-)

Rubygems.org

Let’s Explore Big-O Notation With Ruby ???? — Learn to use Big-O to look at an algorithm and easily discern its efficiency, without having to run a profiling tool.

Honeybadger sponsor

▶  Discussing Docker and Kubernetes with Kelsey Hightower — A worthwhile show to listen to if Kubernetes and Docker intimidate you but you want to know a little more. Kelsey is good at breaking these things down into understandable pieces.

Rails with Jason Podcast podcast

Rails System Tests in Docker — We’re seeing an uptick in articles about system tests in Rails. Here’s how to integrate them into your development Docker setup.

Hint.io

The Difference Between System Specs and Feature Specs — If you’ve felt the difference between RSpec’s “feature specs” and “system specs” is quite subtle, this explanation will help.

Jason Swett

Why Rubyists Should Consider Learning Go — If you want compilation and a type system, Crystal is probably a better fit for Rubyists, but Go is undoubtedly a neat language and ecosystem (and if you do end up in the Go world, check out our Go weekly! ????)

Ayooluwa Isaiah

Building a Ruby CLI with Thor

Daniel Gómez

???? Code and Tools

git curate: Peruse and Delete git Branches Ergonomically — Got a repo cluttered with branches here and there? git curate aims to cure the pains of getting those branches back under control.

Matt Harvey

MessageBus: A Reliable and Robust Messaging Bus for Ruby and Rack

Sam Saffron

Are You Spending Too Much on Heroku?

Rails Autoscale sponsor

bootstrap_form: A Rails Form Builder for Bootstrap v4-Style Forms

Bootstrap Ruby

ActiveModelAttributes: The Active Record Attributes API, but for Active Model — Brings some of the goodies of the Rails 5 Active Record attributes API to ActiveModel too. 1.6.0 just dropped.

Karol Galanciak

???? A Q&A with…
Thibaut Barrère
Creator of Kiba ETL

Thibaut Barrère is a long-time Rubyist and data engineer who built and maintains the popular Extract, Transform, and Load (ETL) framework Kiba. We asked him some questions about his work:

What inspired you to create Kiba?

A lot of my work since ~2005 has been focused on data integration (making systems speak together), data aggregation etc. I sometimes used GUI-based tools like Microsoft SSIS which, while powerful, are quite far from the coding experience.

I was already using Ruby at that time, and was happy to discover activewarehouse-etl (maintained by Anthony Eden, who runs DNSimple now) providing a Ruby DSL to declare data pipelines. I used it for a while with very good success to implement data extractions and business intelligence ETL, and ultimately took over the maintenance.

In the long run, though (as I explained in a recent Paris.rb talk), the balance between the the cost of OSS maintenance and the usability for my billable and non-billable use-cases proved to be not good enough, which made me decide to stop the maintenance, sadly.

I still wanted to use Ruby to write data pipelines, but I needed to cover more use-cases and reduce the OSS maintenance burden at the same time. This ultimately led me to write and share (in 2015) Kiba ETL, a focused DSL for declarative processing, matching those criterias.

Do you find yourself adding more features while in quarantine?

Before the quarantine, I directed my Kiba bandwith and focus on finalizing Kiba v3 and rewriting the documentation from scratch, to properly encourage best practices I’ve been discovering. I also created experimental branches for Ruby 2.7/2.8 keywords.

During the quarantine, I've reduced client work and OSS work too, to focus on shipping Kiba Pro v2 (which I’ll announce shortly officially). I’ve extracted and generalized (from real-life projects) very useful components, such as a “batch SQL lookup” (useful when replacing relationships keys during data migrations and datawarehouses sync code, in batch rather than row by row), a “file lock” to ensure a single job runs at once, and a “parallel transform” to achieve easy concurrency for things like HTTP queries.

What's the wildest ETL that you've encountered?

Getting the data out of a system which is actively not acting in that direction is always a bit wild.. One can see all types of fancy stuff on the field. For instance, it is not uncommon to have an ETL process start a headless browser, jump through pages, just to get to the CSV/PDF/Excel file that you will then use as your data source!

You can also end up having to figure out ways to read or write very old file formats at times. Recently I wrote a Kiba component to generate a COBOL delimited file, for instance. In large companies, a very widely used I/O is good old SFTP, far away from modern APIs and formats.

Can you tell us how to say your last name? ????

I had to deploy a page to my blog to answer that question properly ????. You’ll find out how to say my name here.

Merci Thibaut!

You can read some of Thibaut's posts on his blog and find out more about Kiba ETL here.




y

A transpiler for futuristic Ruby, and the RailsConf 2020 videos

#500 — May 7, 2020

Read on the Web

???? Welcome to issue 500! A bit of an arbitrary milestone but thanks to you all :-)

Ruby Weekly

Ruby Next: Make All Rubies Quack Alike — Ruby Next is a Ruby-to-Ruby transpiler that allows you to use the latest features of Ruby in previous versions without monkey patching or refinements. Could this be how experimental features are released going forward?

Vladimir Dementyev

Ruby 3 'Guilds' Proposal Now Called Ractor — This documentation is in Japanese (though the source code examples are easy to follow) but the news is that the new, proposed concurrency mechanism for Ruby 3 called Guilds (explained here) has been renamed to Ractor (as in ‘Ruby actors’, Ruby’s take on the actor model).

Koichi Sasada

Don’t Do Auth From Scratch. Focus On Your App — Spend less time on authentication and authorization and more time developing your awesome app. Auth built for <devs>. Download our community edition for free.

FusionAuth sponsor

Take the 2020 Ruby on Rails Survey — This is the sixth outing for Planet Argon’s survey which began in 2009. We try and support it each time as the results always make for interesting reading (see 2018’s results). Participate and become data ????

Planet Argon Team

???? RailsConf 2020 Videos

If you recall, RailsConf 2020 was cancelled in its in-person form to be replaced by a 'couch edition'. This has been taking place and the videos have been released! Here are some of the highlights:

If you want the full collection, here's the YouTube playlist.

Alt::BrightonRuby: A Slightly Odd, Quasi-Conference for Strange Times — Alt::BrightonRuby is not happening in-person this year. Instead, you can buy the recorded talks, get a _why book, and get some podcasts with the speakers.

Alt::BrightonRuby

???? Jobs

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

Security Engineer (Remote) — Are you an engineer with experience in Rails and/or Go? Join our team and help secure our apps and cloud infrastructure.

Shogun

ℹ️ Interested in running a job listing in Ruby Weekly? There's more info here.

???? Articles & Tutorials

▶  How To Begin Contributing to a Gem — If you’ve been using a library for a while and you want to contribute back, how do you get started? A 12 minute introduction here.

Drifting Ruby

How to Set Up Factory Bot on a Fresh Rails Project — Factory Bot is a library for setting up Ruby objects as test data – an alternative to fixtures, essentially.

Jason Swett

Using Postgres's DISTINCT ON to Avoid an N+1 Query“Recently I fixed a tricky N+1 query and thought I should write it up..”

John Nunemaker

Need to Upgrade Rails? Don’t Know How Long It Will Take? — Get an action plan for your Rails upgrade and an in-depth report about your technical debt and outdated dependencies ????.

FastRuby.io | Rails Upgrade Services sponsor

5 Uses for 'Splats' — 5 different ways to leverage Ruby’s splat (*) operator.

Jason Dinsmore

Running Multiple Instances of Webpacker — If you’re working on multiple Rails apps at once, changing where Rails gets served up is easy by configuring the port, but what about Webpacker? That requires another tweak.

Scott Watermasysk

Performing Asynchronous HTTP requests in Rails — How to update parts an app’s pages with asynchronous HTTP requests. A step-by-step how-to with JavaScript’s fetch() function, and Rails native server-side partial rendering.

Remi Mercier

How to Use AWS SimpleDB from Ruby — If you haven’t heard of AWS SimpleDB, you wouldn’t be alone as it’s not very popular, but it’s a pretty simple and cheap way to store simple documents in the cloud.

Peter Cooper

What's The Difference Between Monitoring Webhooks and Background Jobs

AppSignal sponsor

Ways to Reduce Your Heroku App's Slug Size — You might be surprised Heroku didn’t already do some of this for you.

Rohit Kumar

A Chat with Thibaut Barrère — If you missed our interview with Thibaut Barrere (Rubyist, and creator of the Kiba ETL framework) in last week’s issue, you can catch up here.

Glenn Goodrich

???? Code and Tools

Rodauth 2.0: Ruby's 'Most Advanced' Authentication Framework — A authentication framework that can work in any Rack-based webapp. Built using Roda and Sequel, Rodauth can be used with other frameworks and database libraries if you wish. Why’s it so advanced? More info on that here.

Jeremy Evans

RubyGems 3.1.3 Released — Lots of little bug fixes and tweaks.

RubyGems Blog

Business: Business Day Calculations for Ruby — Define your working days and holidays and then you can do ‘business day arithmetic’ (for example, what’s in 5 working days after now taking holidays and weekends into account?)

GoCardless

Lockbox: Modern Encryption for Rails

Andrew Kane

split: The Rack Based A/B 'Split' Testing Framework — A mature framework with robust configuration and multiple options for determining the winning option.

Split

P.S. In last week's issue, one of the links to our sponsors was incorrect and some readers emailed us to say they really wanted to read the promised article, Let’s Explore Big-O Notation with Ruby, so here it is. Apologies for any inconvenience.




y

Can you build Node add-ons in Rust? Yes.

#336 — April 30, 2020

Read on the Web

Be sure to check out the Tools and Libraries section today as there have been quite a lot of (minor) releases.. from MIDI parsing and JPEG decoding to generating TypeScript types from a Postgres database.. maybe there's something for you ????

Node Weekly

Middy 1.0: A Node Middleware Framework for AWS Lambda — Middy’s aim is to make writing serverless functions (hosted on AWS Lambda) easier by providing a familiar middleware abstraction to Node developers. The example in this post shows off the main benefit.

Luciano Mammino

Rust and Node.js: A Match Made in Heaven? — This is technical stuff but using other languages, such as Rust, for building add-ons for Node is an interesting area.

Anshul Goyal

Faster CI/CD for All Your Software Projects Using Buildkite — See how Shopify scaled from 300 to 1800 engineers while keeping their build times under 5 minutes.

Buildkite sponsor

Editly: Slick, Declarative Command Line Video Editing — I’ve long wondered why there isn’t a good way to “code” video editing at the command line other than wrangling with arcane ffmpeg options. Well.. this uses ffmpeg, but it handles a lot of the wrangling for you.

Mikael Finstad

Node v14.1.0 (Current) ReleasedLast 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.

Bethany Nicolle Griggs

???? Jobs

Backend Developer (Skien, Norway) — We are looking for a full-stack dev with a solid track record to help us adapt to tomorrow's security requirements.

OKAY

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

ℹ️ If you're interested in running a job listing in this newsletter, there's more info here.

???? Articles & Tutorials

Four Tools for Web Scraping in Node — A walk through of a few different libraries (for scraping and parsing data directly from websites) to see how they work and how they compare to each other.

Sam Agnew

Six Platforms for Hosting a Node App in 2020 — Of course, you can run a Node app pretty much anywhere there’s a server, but some platforms make it easier than others. These all have free tiers too. Glitch, Now.sh (now Vercel) and Heroku are particular favorites of ours at Cooperpress.

Amit Bendor

Getting Started with NuxtJS — Learn how to create Vue.js-powered server-side rendered apps with NuxtJS including configuring an app and deploying it on Heroku.

Timi Omoyeni

The Node.js Security Handbook — Improve the security of your Node.js app with the Node.js security handbook made for developers.

Sqreen sponsor

A Collection of Challenging TypeScript Exercises“The goal: Let everyone play with many different TypeScript features and get an overview of TypeScript capabilities and principles.”

Marat Dulin

Exploring Node.js Internals — It’s reasonably elementary but Aleem Isiaka explains how the internals of Node.js interact with one another on a simple task such as creating a file.

Smashing Magazine

Creating CommonJS-Based npm Packages via TypeScript

Dr. Axel Rauschmayer

Turning Vue Components Into Reusable npm Packages — Outlines how you can reuse Vue components across your projects by automating your process to bundle, test, document, and publish your components.

Sjoerd de voorhoede

???? Tools, Resources and Libraries

Node v12.16.3 (LTS) Released — OpenSSL gets an update, and warnings are no longer printed for modules that use conditional exports or package name self resolution.

Node.js

pm2 4.4 Released: The Node Production Process Manager — A very mature and widely used process manager that includes a load balancer for keeping Node apps alive forever and to reload them without downtime. v4.4 improves the Node 14 compatibility.

Alexandre Strzelewicz

jpeg-js: A Pure JavaScript JPEG Encoder and Decoder — It admits it’s far slower than native alternatives but if you need a pure JavaScript JPEG encoder/decoder, this is where to go.

Eugene Ware

AppSignal Now Supports Node.js: Roadmap for the Coming Weeks

AppSignal sponsor

node-stream-zip: For Fast Reading of ZIP Archives — Reads chunk by chunk rather than all in one go so it’s memory friendly.

Dimitri Witkowski

JZZ: A MIDI Library for Node and Web Browsers — Send, receive and play MIDI messages from both Node and the browser on Linux, macOS and Windows.

Sema

Vegemite: A Pub/Sub State Manager — Inspired by Immer and Redux, full TypeScript support, and sized at only 623 bytes, which includes one dependency.

Luke Edwards

Kanel: Generate TypeScript Types from Postgres

Kristian Dupont

web-worker: Consistent Web Workers for the Browser and Node — In Node it works as a web-compatible Worker implementation atop worker_threads. In the browser it’s an alias for Worker.

Jason Miller

node-csv-parse: A CSV Parser Implementing the stream.Transform API

Adaltas




y

A CLI podcast player built in Go

#308 — April 17, 2020

Unsubscribe  :  Read on the Web

Golang Weekly

Broccoli: Using Brotli Compression to Embed Static Files in Go — There’s been talk about making static file embedding a standard part of Go, but for now you might find this project interesting. It uses the Brotli compression system to embed a virtual file system of static files in your Go executables as tightly as possible.

Aletheia

How Thanos Would Program in Go — An introduction to the Thanos Go Style Guide built for Thanos, the distributed metrics system project, not the Marvel super-villain, BTW ????

Bartek Płotka

Introducing GoLand 2020.1 — A variety of upgrades for Go Modules support, code-editing features that require little to no interaction from the user, an expanded code completion family, and more! Try free for 30 days.

GoLand sponsor

Understanding Bytes in Go by Building a TCP Protocol — There is a lot more in this long-ish tutorial than just learning about bytes. This is great if, let’s say, you are stuck at home and need a challenge. (Note: If you’ve got deja-vu, we linked this in last week’s brief non-issue.)

Ilija Eftimov

Ebiten 1.11.0 Released: The Go 2D Gamedev Library — Ebiten is one of those genuine gems of a project. Maybe use it to take part in this weekend’s Ludum Dare game jam? More Go entries would be neat..

Ebiten

Generics in Go: How They Work and How to Play With Them — Generics are a lot closer than you might think. So much so that you can try them today in a browser or compile locally.

Chris Brown

???? Jobs

Senior Software Engineer (Go) – 100% Remote (UK/EU Only) — Form3 is building the most exciting banking technology on the planet and are looking for Talented Engineers to join the team.

Form3

Golang Developer at X-Team (Remote) — Join X-Team and work on projects for companies like Riot Games, FOX, Coinbase, and more. Work from anywhere.

X-Team

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

???? Articles & Tutorials

Statically Compiling Go Programs — If you thought all/most Go binaries were static, you might be surprised to find out that some core packages use cgo code and result in dynamically linked libraries.

Martin Tournoij

How To Create Testable Go Code — Structure your code and tests to be mockable, testable, and maintainable, even if it calls external services.

Dave Wales

The Go Security Checklist — Ensure the infrastructure and the code of your Go applications are secure with the latest actionable best practices.

Sqreen sponsor

Build Your Own Neural Network in Go — A beginner’s guide to building the simplest parts of a neural network completely from scratch.

Dasaradh S K

'How I Built a Cloud Gaming System with WebRTC and Go'

Thanh Nguyen

???? Code & Tools

podcast-cli: A Podcast Player with a Terminal-Based Interface

Goulin

Godocgen: A Go Documentation Generator — Godocgen can output to multiple formats/destinations, making it easy to host as a static site. More background here.

Holloway Chew Kean Ho

3mux: An i3-inspired Terminal Multiplexer — Imagine something like tmux but easier to learn and with sensible defaults. Plus, it’s written in Go so you can tweak it as much as you like :-)

Aaron Janse

Micro 2.5: A Go Micro Services Development Framework

Micro

Beta Launch: Code Performance Profiling - Find & Fix Bottlenecks

Blackfire sponsor

Goph: A Native Go SSH Client — Supports connections using passwords, private keys, keys with passphrases, doing file uploads and downloads, etc.

Mohamed El Bahja

GeoDB: A Persistent Geospatial Database with Geofencing and Google Maps Support — Built using Badger gRPC and the Google Maps API. Track the geolocation of objects across boundaries or in relation to other objects.

Coleman Word

oneinfra: A 'Kubernetes as a Service' Platform — Provide or consume Kubernetes clusters at scale, on any platform or service provider.

oneinfra

Gocorona: Track COVID-19 Statistics From Your Terminal — A short and sweet demonstration of what you can throw together quickly using termui, a customizable Go-powered terminal dashboard and widget library.

Ayooluwa Isaiah




y

The 2019 Go developer survey results are available

#309 — April 24, 2020

Unsubscribe  :  Read on the Web

Golang Weekly

Go Developer Survey 2019 Results — The annual survey results are here but calculated differently than in previous years. See how the community feels, what tools we use, and what we’re really using Go for.

The Go Blog

Fiber: An Express.js Inspired Web Framework for Go — If you know Express (from the Node world) than Fiber will look very familiar. It supports middleware, WebSockets, and various template engines, all while boasting a low memory footprint. Built on top of FastHTTP.

Fiber

We Now Offer Remote Go, Docker or Kubernetes Training — We offer live-streaming remote training as well as video training for engineers and companies that want to learn Go, Docker and/or Kubernetes. Having trained over 5,000 engineers, we have carefully crafted these classes for students to get as much value as possible.

Ardan Labs sponsor

A Comparison of Three Programming Languages for Bioinformatics — This is quite an academic piece but basically Go, Java and C++ were put head to head in an intensive bioinformatics task. The good news? Go won on memory usage and beat the C++17 approach (which was admittedly less than ideal) in performance. The team in question chose Go going forward.

BMC Bioinformatics

Go for Cloud — A Few Reflections for FaaS with AWS Lambda — A response to a this article about Go’s pros and cons in the cloud. You should read both.

Filip Lubniewski

???? Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.

Stream

Golang Developer at X-Team (Remote) — Join the most energizing community for developers. Work from anywhere with the world's leading brands.

X-Team

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

???? Articles & Tutorials

An Introduction to Debugging with Delve — If you’re in the “I don’t really use a debugger..” camp, Paschalis’s story and brief tutorial might help you dip a toe into the water.

Paschalis Tsilias

Object Ordering in Go — This is all about object comparison and the types of comparisons that are allowed in Go. Reading this post > Not reading this post.

Eyal Posener

How to Manage Database Timeouts and Cancellations in Go — How to cancel database queries from your app and what quirks and edge cases you need to be aware of.

Alex Edwards

The Go Security Checklist — From code to infrastructure, learn how to improve the security of your Go applications with the Go security checklist.

Sqreen sponsor

Data Logging with Go: How to Store Customer Details Securely — Specifically, this looks at using custom protobuf FieldOptions to mark fields as OK to log and reflection to check those options.

Vadzim Zapolski-Dounar

How to Install Go in FreeBSD in 5 Minutes — You can use a package manager, but this way has advantages and it’s easy.

Jeremy Morgan

???? Code & Tools

Fynedesk: A Fyne-Powered Full Desktop Environment for Linux/Unix — Previously we’ve linked to Fyne, a Go-based cross-platform GUI framework, but now it’s been used to create an entire Linux desktop environment!

Fyne.io

Lockgate: A Cross-Platform Locking Library — Has support for distributed locks using Kubernetes and OS file locks support.

Flant

Pomerium: An Identity-Aware Secure Access Proxy — An identity aware access-proxy modeled after Google’s BeyondCorp. Think VPN access benefits but without the VPN. Built in Go, naturally.

Pomerium

Beta Launch: Code Performance Profiling - Find & Fix Bottlenecks

Blackfire sponsor

Apex Log: A Structured Logging Package for Go — Inspired by Logrus.

Apex

mediary: Add Interceptors to the Go HTTP Client — This opens up a few options: tracing, request dumping, statistics collection, etc.

Here Mobility SDK

iso9660: A Go Library for Reading and Creating ISO9660 Images — The use cases for this will be a bit niche. The author created it to dynamically generate ISOs to be mounted in vSphere VMs.

Kamil Domański

pxy: A Go Livestream Proxy from WebSockets to External RTMP Endpoints

Chua Bing Quan




y

Caddy 2.0 released, plus a little black hat Go

#311 — May 8, 2020

Unsubscribe  :  Read on the Web

Golang Weekly

Caddy 2: The Go-Powered Web Server with Automatic TLS — After over a year of redesign, Caddy 2 has a new architecture to v1. If you want a new HTTPS server that ‘just works’, Caddy is well worth a look IMO. Its lead creator, Matt Holt, answered lots of questions on this Hacker News thread about the release.

Caddy Web Server

Rek: An Easy HTTP Client for Go — The inspiration here is from Python’s very well known and highly esteemed Requests library.. so the Pythonistas among you might like this!

Luc Perkins

Modern Redis Features with RedisGreen — Online upgrades to the latest Redis 6.0 features, memory mapping, key size tracking, and more.

RedisGreen sponsor

Life Without Line Numbers — There’s a lot of buzz around reducing the size of Go binaries (1.15 does so by ~6%) and here’s another tactic: reduce the precision of the position information. The gain is 2-6%, depending on how far you take it.

Josh Bleecher Snyder

▶  Discussing Black Hat Go“Are you excited to learn about hacking and that?” Got an hour? Roberto Clapis, a security engineer at Google, and Tom Steele, a co-author of Black Hat Go, join the Go Time team to discuss security, penetration testing, and more.

Go Time Podcast

???? Jobs

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.

Stream

Find a Job Through Vettery — Vettery specializes in tech roles and is completely free for job seekers. Create a profile to get started.

Vettery

???? Articles & Tutorials

Mid-Stack Inlining in Go — Inlining a function can lead to serious performance gains, so why not do it for everything? Well, there are always trade-offs.

Dave Cheney

Asynchronous Preemption in Go 1.14 — How the new preemption implementation works, including the use of a lesser-known signal (SIGURG).

Vincent Blanchon

Why Are My Go Executable Files Larger Than My Source Code? — We built a data visualization tool to find out. Here’s how we built it, and what we learned.

Cockroach Labs sponsor

Accelerating Aggregate MD5 Hashing Up to 800% with AVX512 — The culmination of this work is md5-simd, a Go library that performs such rapid MD5 hashing (when running concurrently). The use cases here are quite restricted but you may appreciate seeing how such things are implemented for any high end SIMD wrangling you need to do one day.

MinIO Blog

▶  A Beginner's Guide to gRPC in Go — There’s a written version of the tutorial if you dislike videos.

TutorialEdge

Four Steps to Daemonize Your Go Programs — Daemons are programs that run as non-interactive background processes (e.g. background job processors, Web servers, database systems).

Ilija Eftimov

Go as a Scripting Language? — There’s plenty of folks that use Go as a scripting language, but there are challenges around REPLs and shebang support. Some of these challenges are being addressed today.

Segio De Simone

???? Code & Tools

UUID 3.3: A Pure Go Implementation of UUIDs — A pure Go implementation of Universally Unique Identifiers (UUID) as defined in RFC-4122 covering versions 1 through 5.

The Go Commune

Reed-Solomon: A Reed-Solomon Erasure Coding Library — A Go port of a Java library built by Backblaze that does Reed Solomon erasure coding (a way to send or store data in a larger form that’s resilient to data loss). Boasts operation of over 1GB/sec per core.

Klaus Post

ko 0.5: Build and Deploy Go Apps on Kubernetes — ko’s objective is to “to make containers invisible infrastructure.” It’s been rapidly maturing in the past few months too.

Google

Monitor the Health and Performance of Your Golang Apps with Datadog APM. Free Trial

Datadog APM sponsor

Tengo 2.2: A Fast Embeddable Script Language for Go — Quite a mature project now and worth a look if you need to add some dynamic scripting to your code.

Daniel Kang

UniPDF 3.7: A Library for Creating and Processing PDF Files — Pure Go, which is neat, but note it’s dual licensed: AGPL for open source, commercial for closed source projects.

UniDoc

Mockery: A Mock Code Generator for Go Interfaces

Vektra

Dynamo: An Expressive DynamoDB Library

Greg Greg

???? Two Fun Side Projects

gasm: An Experimental WASM Virtual Machine for Gophers“I did this just for fun and for learning WASM specification.” Nonetheless, it works with basic examples.

Takeshi Yoneda

thdwb: A Homebrew Web Browser and Rendering Engine — Another experimental, fun learning project. You won’t be using it for your day to day browsing any time soon but projects like this keep the imagination fueled up.

Danilo Fragoso

It'd be quite cool to link to more fun Go experiments and side projects actually, so let us know if you work on any. Bonus points for games, musical, or Web experiences ????




y

Life and struggle after YouTube fame

Dax was one of YouTube's first stars, but 13 years later, few people remember his name. Can a vlogging legend seize glory again?




y

Blasian love: The day we introduced our black and Asian families

Blasian - black and Asian - couples now exist in South Africa... but they don't always have an easy time.




y

'My search for the boy in a child abuse video'

Lucy Proctor was horrified when she was WhatsApped a sex abuse video. And she wanted to find out if the boy was safe.




y

Coronavirus: The month everything changed

In the space of a month, the United Kingdom has transformed beyond recognition.




y

‘My toy walrus waited 25 years in the Arctic’

Julia spent 25 years dreaming of her first home. Eventually she returned - and found a long-lost toy.




y

The actor who was really stabbed on stage

Conor Madden was playing Hamlet when a sword fight went badly wrong. Would he ever act again?




y

The volunteer army helping self-isolating neighbours

The coronavirus outbreak has left many feeling trapped indoors, but for some help may not be far away.




y

Coronavirus: Here's how you can stop bad information from going viral

Experts are calling on the public to practise ‘information hygiene’ to help stop the spread of falsehoods online.




y

Coronavirus: ‘It’s just anxiety, anxiety, anxiety’

The coronavirus crisis is having a huge impact on young people with existing mental health conditions.