rt

Rory Stewart quits Mayor of London race

The former cabinet minister says he cannot ask campaign volunteers to work for another year.




rt

Anti-abortion campaigner loses Stella Creasy poster ban appeal

A judge dismisses Christian Hacking's bid to overturn a ban on posters put up around Waltham Forest.




rt

Winston Churchill's inspiring wartime speeches in Parliament

As his great grandson launches a competition to "inspire like Churchill", we look at the PM's wartime words.




rt

'B' teams or partner clubs back on the agenda? Clubs may have to 'share resources' to survive

The controversial concept of B teams may be back on the agenda as football tries to navigate a way through Covid-19, Brighton technical director Dan Ashworth says.




rt

'I feel fresher and healthier' - Hamilton enjoying parts of F1 break

Mercedes driver Lewis Hamilton says he feels certain benefits from his enforced time away from Formula 1.




rt

Can robotaxis ease public transport fears in China?

More self-driving cabs are being launched in China at a time when people are worried about public transport.




rt

Trump laments ‘heart-breaking' killing

The 25-year-old was jogging in Georgia when he was shot dead, in a video the president described as disturbing.




rt

Coronavirus: China offers to help North Korea fight pandemic

President Xi Jinping expresses concern about the threat to its neighbour, and offers to help.




rt

Couples get married in virtual wedding ceremonies

Video calling technology is helping people share their special day with others during lockdown.




rt

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.




rt

RTX Voice: Noise-destroying tech put to the test

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




rt

Are Object Stores Starting to Look Like Databases?

#300 — April 17, 2020

Read on the Web

Database Weekly

Are Object Stores Starting to Look Like Databases? — Technically, any repository of data could be considered a ‘database’ but now object stores, such as those vast repositories of data sitting behind an S3 API, are beginning to resemble more structured, traditional databases in many ways. This feels a trend and market that will continue to grow in the near future.

Alex Woodie (Datanami)

Event-Reduce: An Algorithm to Optimize Frequently Running Queries — In brief, the idea is that rather than having to re-run queries when data changes on a table, you can basically merge in changes to previous query results. Be sure to check the FAQs.

Daniel Meyer

ACID Transactions in NoSQL? RavenDB Vs MongoDB by Mor Hilai — Where did the stereotype that only relational databases can be fully ACID come from? How did two NoSQL databases, MongoDB & RavenDB, become ACID at the cluster level?

RavenDB sponsor

TerminusDB: A Technical History — We’ve featured it before, but TerminusDB is an open source in-memory graph database built around WOQL (the Web Object Query Language). Here’s an explanation of where it came from and why it exists.

Luke Feeney

Comparing Redis 6's New Multithreaded I/O to ElastiCache and KeyDB — Redis 6 is on the way with threaded I/O being one of the likely new features. KeyDB is a Redis fork whose raison d’etre has been being multithreaded so this comparison may be of interest, though do note that this comes from KeyDB itself.

Ben Schermel (KeyDB)

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

Authentication Configuration in PostgreSQL and CockroachDB — In these databases, client authentication can be controlled via a ‘HBA’ (host-based authentication) file.

Raphael ‘kena’ Poss

How MongoDB Enables Machine Learning — If you haven’t played with the popular document-oriented database in a while, you can do quite a few things with it nowadays, including training and using ML algorithms.

Mani Yangkatisal

▶  'We Got that Database', an 'All About that Bass' Parody — This is for fun only! A group of librarians have put together a fun database flavored parody of the rather irritating Meghan Trainor hit ????

Tredyffrin Libraries on YouTube

6 SQL Tricks Every Data Scientist Should Know

Yi Li

Why We Index Everything — Tired of managing indexes to speed up queries? Rockset automatically indexes every field in a row-based store, column-based store, and search index.

Rockset sponsor

Falcon: An Open-Source, Cross Platform SQL Client — Built around Electron and React, this basic client can quickly do chart visualizations of query results and can connect to RedShift, MySQL, PostgreSQL, IBM DB2, Impala, MS SQL, Oracle, SQLite and more.

Plotly

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

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

???? Seen on Twitter..

I think most of us have had this sort of experience with a 'legacy' system before.. ????




rt

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.




rt

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.




rt

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.




rt

BBC News - Special reports




rt

Birth in a pandemic: 'You are stronger than you think'

Coronavirus is throwing many birth plans up in the air and leading some health trusts to increase home births.




rt

Dirty streaming: The internet's big secret

Figures suggest that IT now generates as much CO2 as flying, with some arguing it's nearly double.




rt

Ultra-Orthodox and trans: 'I prayed to God to make me a girl'

Growing up as a Hasidic Jew, Abby Stein had no idea trans people existed - she just felt sure she was a girl.




rt

Coronavirus: Disease meets deforestation at heart of Brazil's Amazon

Coronavirus has overwhelmed Manaus, the Amazon's biggest city, and the worst is yet to come.




rt

Yuri Alberto (R) of Brazil celebrates scoring his sides second goal with Rodrigo Guth

Yuri Alberto (R) of Brazil celebrates scoring his sides second goal with Rodrigo Guth during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images)




rt

Yuri Alberto of Brazil scores his side's second goal

KOLKATA, INDIA - OCTOBER 28: Yuri Alberto of Brazil scores his side's second goal during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images)




rt

Yuri Alberto of Brazil celebrates scoring his side's second goal

Yuri Alberto of Brazil celebrates scoring his side's second goal during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images)




rt

Yuri Alberto of Brazil celebrates scoring his sides second goal

KOLKATA, INDIA - OCTOBER 28: Yuri Alberto (C) of Brazil celebrates scoring his sides second goal with Rodrigo Guth (L) during the FIFA U-17 World Cup India 2017 3rd Place match between Brazil and Mali at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images)




rt

George McEachran of England battles for the ball with Cesar Gelabert of Spain

KOLKATA, INDIA - OCTOBER 28: George McEachran (L) of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images)




rt

Joel Latibeaudiere of England battles for the ball with Cesar Gelabert of Spain

KOLKATA, INDIA - OCTOBER 28: Joel Latibeaudiere of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images)




rt

George McEachran of England battles for the ball with Cesar Gelabert of Spain

KOLKATA, INDIA - OCTOBER 28: George McEachran (C) of England battles for the ball with Cesar Gelabert of Spain during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Buda Mendes - FIFA/FIFA via Getty Images)




rt

Morgan Gibbs White of England and Cesar Gelabert of Spain in action

KOLKATA, INDIA - OCTOBER 28: Morgan Gibbs White of England and Cesar Gelabert of Spain in action during the FIFA U-17 World Cup India 2017 Final match between England and Spain at Vivekananda Yuba Bharati Krirangan on October 28, 2017 in Kolkata, India. (Photo by Tom Dulat - FIFA/FIFA via Getty Images)




rt

Portugal complete final four

A 3-2 win has seen Portugal clinch a spot in the FIFA Futsal World Cup semi-finals for the first time in 16 years, seeing off Azerbaijan in Cali.




rt

South American hopefuls seeking Lithuania berths




rt

Russia, Portugal, Spain and Kazakhstan secure Futsal World Cup returns




rt

South American quartet seal qualification to Lithuania 2020




rt

UEFA quartet qualify for Lithuania 2020




rt

3 days to go: Real top of the world, Kashima steal hearts




rt

FIFA Club World Cup™ Fan Zone to be held at Doha Sports Park on 9-21 December




rt

Hosts take on Oceania champions in curtain-raiser




rt

Eder Lima of Russia offers a signed shirt to a fan after

MEDELLIN, COLOMBIA - SEPTEMBER 27: Eder Lima of Russia offers a signed shirt to a fan after the final whistle during the FIFA Futsal World Cup semi-final match between Iran and Russia at Coliseo Ivan de Bedout on September 27, 2016 in Medellin, Colombia. (Photo by Jan Kruger - FIFA/FIFA via Getty Images)




rt

Alireza Samimi (C) of Iran jokes with a FIFA Player's Escort in the tunnel

MEDELLIN, COLOMBIA - SEPTEMBER 27: Alireza Samimi (C) of Iran jokes with a FIFA Player's Escort in the tunnel before the FIFA Futsal World Cup Semi-Final match between Iran and Russia at Coliseo Ivan de Bedout stadium on September 27, 2016 in Medellin, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)




rt

The Russian dressing room is seen ahead of the FIFA Futsal World Cup Quarter-Final match between Russia and Spain

CALI, COLOMBIA - SEPTEMBER 24: The Russian dressing room is seen ahead of the FIFA Futsal World Cup Quarter-Final match between Russia and Spain at the Coliseo el Pueblo Stadium on September 24, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

Eder Lima of Russia gives a shirt of Russia to a young blind spectator

MEDELLIN, COLOMBIA - SEPTEMBER 27: Eder Lima of Russia gives a shirt of Russia to a young blind spectator after the FIFA Futsal World Cup Semi-Final match between Iran and Russia at Coliseo Ivan de Bedout stadium on September 27, 2016 in Medellin, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)




rt

The stadium is seen prior to the semi-final between Argentina and Portugal

CALI, COLOMBIA - SEPTEMBER 28: The Stadium is seen prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal at the Coliseo el Pueblo Stadium on September 28, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

The Stadium is seen prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal

CALI, COLOMBIA - SEPTEMBER 28: The Stadium is seen prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal at the Coliseo el Pueblo Stadium on September 28, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

Ricardinho of Portugal is seen in the dressing room

CALI, COLOMBIA - SEPTEMBER 28: Ricardinho of Portugal is seen in the dressing room prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal at the Coliseo el Pueblo Stadium on September 28, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

Joao Matos of Portugal is seen in the dressing room

CALI, COLOMBIA - SEPTEMBER 28: Joao Matos of Portugal is seen in the dressing room prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal at the Coliseo el Pueblo Stadium on September 28, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

Joao Matos of Portugal is seen in the dressing room

CALI, COLOMBIA - SEPTEMBER 28: Joao Matos of Portugal is seen prior to the FIFA Futsal World Cup Semi Final match between Argentina and Portugal at the Coliseo el Pueblo Stadium on September 28, 2016 in Cali, Colombia. (Photo by Ian MacNicol - FIFA/FIFA via Getty Images)




rt

Joao Matos of Portugal looks on during the warm up

Joao Matos of Portugal looks on during the warm up before the FIFA Futsal World Cup Semi-Final match between Argentina and Portugal at the Coliseo El Pueblo stadium on September 28, 2016 in Cali, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)




rt

Ricardinho of Portugal plays with the ball during the warm up

Ricardinho of Portugal plays with the ball during the warm up before the FIFA Futsal World Cup Semi-Final match between Argentina and Portugal at the Coliseo El Pueblo stadium on September 28, 2016 in Cali, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)




rt

Alan Brandi (C) of Argentina competes for the ball with Joao Matos (L) and Ricardinho (R) of Portugal

Alan Brandi (C) of Argentina competes for the ball with Joao Matos (L) and Ricardinho (R) of Portugal during the FIFA Futsal World Cup Semi-Final match between Argentina and Portugal at the Coliseo El Pueblo stadium on September 28, 2016 in Cali, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)




rt

Ricardinho, captain of Portugal and his team pose for a team picture

Ricardinho, captain of Portugal and his team pose for a team picture during the FIFA Futsal World Cup semi-final match between Argentina and Portugal at Coliseo el Pueblo on September 28, 2016 in Cali, Colombia. (Photo by Jan Kruger - FIFA/FIFA via Getty Images)




rt

Alan Brandi (L) of Argentina controls the ball next to Joao Matos of Portugal

Alan Brandi (L) of Argentina controls the ball next to Joao Matos of Portugal during the FIFA Futsal World Cup Semi-Final match between Argentina and Portugal at the Coliseo El Pueblo stadium on September 28, 2016 in Cali, Colombia. (Photo by Alex Caparros - FIFA/FIFA via Getty Images)