今月はとてもプロダクティブでした。日本で行われたRubyWorld Conference 2019で発表し、Ruby開発チームの会議にも参加しました。私は多くの重要なRuby gemや、さらにいくつかのサイドプロジェクトに時間を割くことができました。
RubyWorld Conference 2019: Asynchronous Ruby
RubyWorld Conferenceでは、 Rubyのgemにおいてのスレッドセーフティーの問題について話しました。それから、コンカレンシー(並行性)への様々なアプローチを検討しました。Rubyと比較したのは、JavaScriptのasync/awaitで、 どのようにこのgem async がシンプルでかつスケーラブルにしてくれるのかをみました。
As part of this talk,この中で、批評したプロジェクトの様々な問題とPRを提示しました。そして、その提示された多くのPRはプロジェクトに取り入れられました。
- redis-rb: Avoid data corruption in
#queue
. - money: Use monitor for recursive mutual exclusion.
- faraday: Set middleware_mutex when middleware/adapter classes are defined.
- nokogiri: Race condition in
Nokogiri::CSS::Parser
. - aws: Ensure locking around
@entries
.
コンカレンシー(並行性)についてMatz氏との対話
During the conference,コンフェレンス中に、私はMatz氏とRuby 3のスケーラビリティについてお話させていただきました。様々なオプションを話し合った結果、軽量なコンカレンシー(並行性)の実現のため、Fibersを検討しているようです。 .
Software Sessions
Jeremy Jung氏 とお話しする機会をいただき、Building Scalable Systems Safely in Rubyについて話し合いました。Rubyのスケーラビリティの改善に取り組んでいる間、過去数年にわたって私が検討してきたことについて話す絶好の機会でした。.
OpenSSL Updates
これ OpenSSL gem はRubyの基礎である重要な部分で、HTTPS(HTTP/2を必要とする)をサポートするfalconでは特にです。ここ数ヶ月間、多くの傑出したPRが取り入れられた事により、個人的には、ユーザーがより積極的に貢献できるようになったと感じています。
私はHiroshi Shibata氏と協力してこれらのすべての変更をアップストリームにマージし、Ruby v2.7がリリースされるまでにすべてが完了させたいと思っています。
Rack Updates
この Rack gem は、ほとんどのRuby Webアプリケーションのもう1つの重要な要素です。マスターブランチには、まだリリースされていない多くの重要な改善とバグ修正があります。それに加え、 多くの未解決の問題とPRがあり、そのドキュメントはほとんど時代遅れです。
Aaron Patterson氏と協力してv2.1をリリースします。これは、 falconを公式にサポートする最初のリリースです。
Faraday Updates
私は、コード内の構造化されたライフサイクルを強く支持しています。そのため、support for Middleware#close
のサポートを提案および実装しました。これは Async::HTTP::Client#close
に直接マップされ、アダプターのサポートを改善するはずです。 持続的接続(HTTP / 2を含む)をサポートしています。
Ruby Association Grant
私が提案したRubyの並行性を改善するプロジェクトが受け入れられました。 この一環として、日本に滞在中、Koichi Sasada氏とインプリメンテーション(実装)の詳細について話し合ってきました。 とてもプロダクティブであり、このコラボレーションに関するレポートをすぐに作成したいと思っています。
GitHub Actions
GitHubのアクションに本当に興味があります。特にリモートランナーを許可する方法についてです。 その中でも、いくつかのテストからGPUハードウェアにアクセスすることに興味があります。そこで家のサーバーでArch Linuxを使用し、この GitHub Actionsを作りました。そしてArch User Repositoryにリリースしました。これを使用して、ハードウェアアクセラレーションレンダリングにGPUを使用するC ++コードを作り、テストします。
Asakusa.rb
日本滞在中に、地元で行われているRuby会議 Asakusa.rbに参加しました。この経験は、Rubyがどれほど特別なものか、そしてRubyをすばらしいものにするために時間を割いているすばらしい人々がいる事に気づかせてくれました。
Sponsorship
このワークは私のGitHub sponsorsGitHubスポンサーに部分的にサポートされました。 もしあなたの会社にRubyが使われていたら、私のオープンソースの仕事をサポートしてください。