Rubyセミナー Online - 2021-01-22 - Rubyと仕事と自由なソフトウェア
2021年1月22日開催のRubyセミナー Onlineで「Rubyと仕事と自由なソフトウェア」という話をする須藤です。もともと2020年3月12日に松江で開催される予定だったセミナーだったのですが、新型コロナウイルス感染症の影響で延期になっていました。オンライン開催なので松江以外のみなさんも参加しやすくなったはずです!
July Tech Festa 2021 winter:PostgreSQLで高速・高機能な日本語全文検索 #JTF2021w
今週の日曜日 1/24(日) に開催される July Tech Festa 2021 winterに「PostgreSQLで高速・高機能な日本語全文検索」という題名で、PGroongaの紹介をします。
フリーソフトウェアプロジェクトを推進するための支援を受けるには
フリーソフトウェアプロジェクトを推進していくにあたって、小規模なうちは問題にならなかった課題に直面することがあります。 例えば、最初は小さなVPSインスタンスで始めたものの、だんだんサーバーリソースが不足しがちになるといった問題です。
多くの人に使われているような著名なプロジェクトであれば、ホスティングに関するスポンサーを探すのは容易でしょうが、そうではないプロジェクトではどうするとよいのでしょうか。 ホスティングの支援を提供しているところでは、GitHubでどれだけスターがついているかを基準にしているところもあります。
個人のプロジェクトとしてWebサービスを始めたものの、増強するとなってくるとややつらい。 そんなときのために支援を受ける方法の1つを紹介します。
障害復旧機能を提供するcollectdプラグインの紹介(ローカル監視機能編)
システムやアプリケーションのメトリクス情報をあつめるソフトウェアの1つにcollectdがあります。
今回は、株式会社セナネットワークス様からの発注を受けて開発した障害復旧機能を提供するcollectdプラグイン(lua-collectd-monitor)について紹介します。
Apache Arrow 3.0.0リリース
Apache Arrow 3.0.0でのコミット数2位、マージ数3位だった須藤です。(積極的に開発に参加しているほうの人であるというアピールです。)
2020年1月26日にApache Arrow 3.0.0がリリースされました。
OSSの法人向け技術サポート業務の中で行った、Thunderbirdへのフィードバック事例
結城です。
先日、Thunderbirdに提供したパッチが開発版に取り込まれ、その後Thundebrird 78.8.0にも取り込まれる運びとなりました。
このフィードバックは、法人向け技術サポート業務で受けたお問い合わせが起点となって行った物でした。この記事では、お問い合わせからフィードバックまでの経緯を簡単に振り返ってみたいと思います。
障害復旧機能を提供するcollectdプラグインの紹介(リモート関連機能)
システムやアプリケーションのメトリクス情報をあつめるソフトウェアの1つにcollectdがあります。
以前、障害復旧機能を提供するcollectdプラグイン(lua-collectd-monitor)について「障害復旧機能を提供するcollectdプラグインの紹介(ローカル監視機能編)」という記事で紹介しました。 株式会社セナネットワークス様からの発注を受けて開発したものです。
ただし紹介したのはそのうちの一部であるローカル監視機能についてでした。 今回は、リモート関連機能について紹介します。
非推奨となったapt-keyの代わりにsigned-byとgnupgを使う方法
apt-key(8)はapt 2.1.8より非推奨となりました。
Ubuntu 20.10 (Groovy)やそろそろリリースの時期が近づいてきたDebian 11(Bullseye)からはapt-keyを利用すると警告されます。
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
今回はapt-keyを使うのをやめて、代替手段へと(パッケージ提供側が)移行する方法について紹介します。
Fluent Bit入門 - 軽量高速なログ収集ツール
Fluent Bitとは軽量高速なログ収集ツールです。ElasticsearchやApache Kafkaなどの様々なサービスにログデータを転送できます。
全体がCで実装されているのが特徴で、RubyベースのFluentdの兄弟プロジェクトという位置づけです。
この記事では、Fluent Bitに関する基本的な質問に答えて、具体的に使い始めるための最初のステップについて解説します。
-
"Fluent Bit Logo" by The Fluent Bit Authors, used under Apache License v2.0. ↩
ノータブルコード15 - MySQLの全文検索でplease, could_you
ククログの記事の書き方
結城です。
このブログ(ククログ)は現在、Jekyllで作られています。このWebサイト自体のリポジトリはgitlab.comで公開されているため、記事のデータを追加するマージリクエストをGitLabで送っていただくことで、社内のみならず社外の方からも記事を書いていただけるようになっています。
この記事では、社内に向けての説明も兼ねて、この記事自体を例に、ククログの記事の執筆から公開までのワークフローを説明します。
Fluentd v1.13.0をリリースしました
Fluentd v1.13.0をリリースしました。
これまで何度かブログにて言及していますが、クリアコードはFluentdの開発に参加しています。 Fluentd v1.12.1からは、リリースを含めたメンテナンス作業にも関わっています。
今回は、v1.13.0の変更点のうち、使い勝手に関係ありそうな変更をいくつか紹介します。
なお変更点の詳細についてはv1.13.0のCHANGELOGを参照してください。
Mroongaでlock failedとなったときの復旧方法2021 - clearlockしてはいけない!
Mroongaの開発をしている須藤です。
2013年に書かれたgroonga/mroongaの.mrnファイルがlock failedとなった場合の復旧方法 - Y-Ken Studioという記事があるのですが、この記事に書かれているようにclearlockを使ってはいけません!
ノータブルコード16 - APLプログラマはいかにC言語を書くのか
あまり世の中で知られてない言語として配列処理(Array-Processing)言語という一群の言語があります。いずれもAPLというプログラミング言語から発展したもので、J・Q・Kといった言語が代表的です。これらの言語は「Array Processing」の名前の通り、配列、とくに多次元配列の処理に特化しています。
APLの流れをくむ言語の最大の特徴は、極限までに切り詰められた簡潔さです。この言語を使うといくつかの記号を組み合わせることで、複雑な配列操作を表現することができます。例えば、フィボナッチ数列を生成する関数を例にとると、Kでは{x{x,+/-2#x}/!2}という16文字で表現できます。もっと複雑な例を出すと、ライフゲームは、わずか138バイトで実装できます。
Groongaのクエリーチューニングの方法
Groongaのサポートサービスを担当している1人の須藤です。
Groongaのサポートサービスでは、お客さんから高速化したいクエリーとデータを提供してもらい、より高速に結果を返すようにクエリーをチューニングするという作業もしています。必要であればインデックスの追加・変更やスキーマの変更、Groongaの改良なども実施して高速化します。
クエリーチューニングは長年のカンで実施しているのではなくチューニングを支援するための手法を整備しながら実施しています。この記事では私達がやっているクエリーチューニングの方法をまとめます。ツール類はGroonga本体同様に自由なソフトウェアとして広く公開しているのでサポートサービスを契約していないGroongaユーザーでも同じ方法を使えます。
そういう情報は秘密にしてもっとサポートサービスを利用するように促すほうがいいんじゃないの?と考える人もいるかとは思いますが、クリアコードは情報を独占することで稼ぐのではなく情報を広く共有しながら稼ぎたいのでいいのです。
Apache Arrowデータのメディアタイプ(MIMEタイプ)
Apache Arrowに2番目に多くコミットしている須藤です。Apache Arrowはデータフォーマットも定義しているのですが、2021年6月24日に正式なメディアタイプ(MIMEタイプ)と拡張子が決まったので詳細をまとめます。
ノータブルコード17 - バッチファイルにLuaスクリプトを埋め込む技
最近、WindowsでLuaRocksを動かす機会があった林です。
今回はLuaRocksのインストール用のバッチファイルを見ていて印象に残った、「バッチファイルにLuaスクリプトを埋め込む技」を紹介します。
Fluentd実行中にgemが期待通りに読み込まれているか確認する方法 - fluent-plugin-record-modifierで$LOADED_FEATURESを確認
Fluentdを各種プラグインと組み合わせて使う際、指定したgemが期待通りに読み込まれていないという事例に遭遇したことがありました。
今回は、そんなときのために、「Fluentd実行中にgemが期待通りに読み込まれているか確認する方法」を紹介します。
Google ChromeのGUIから辿る、ドキュメント化されていない仕様の調査
先日、当社の法人向けFLOSSサポート業務の一環として、Google Chromeのドキュメント化されていない仕様について調査のご依頼を頂きました。 具体的には、インストール済みの拡張機能の自動更新について、
- 更新を停止する方法はあるかどうか。
- 自動更新処理はどの程度の間隔で実行される仕様か。
というお問い合わせでした。 本記事では、これらのお問い合わせに回答するために何をどのように調査したかの紹介を通じて、詳細を把握していないOSSのソースコードの歩き方の例を示してみます。
TD Agent v4.2.0をリリース
TD Agent v4.2.0をリリースしました。
クリアコードはFluentdの開発に参加しています。 TD Agent v4.2.0のリリースはクリアコードがメンテナンス作業の一環として行いました。
今回は、v4.2.0の変更点をFluentd BlogのTD Agent v4.2.0 has been released記事をもとに紹介します。
なお変更点の詳細についてはv4.2.0のCHANGELOGを参照してください。
Thunderbird 78から91の間の変更点の法人向けまとめ
結城です。
Thunderbird 91の正式版が太平洋標準時の2021年8月11日(日本時間では8月12日)にリリースされました(「窓の杜」のニュース記事)。過去のバージョンでは、FirefoxのESR版となるリリースが行われてから数週間ほどの間を置いてThunderbirdのメジャーリリースが行われる事が多かったのですが、今回はFirefox 91のリリースから間を置かず(翌日)のリリースとなっています。
現在Thunderbird 78を運用中の場合、今すぐThunderbird 91に更新されるということはありません。Thunderbird 78のセキュリティアップデートは、Firefox ESR78と同様に78.15.0まで提供され、Thunderbird 78からThunderbird 91への自動更新は、Thunderbird 78の最終バージョンのサポート終了(2021年11月2日以降)と同時に始まると見込まれます。言い換えますと、安全にThunderbirdを運用し続けるためには、あと2ヵ月少々でThunderbird 91への移行を完了することが推奨されます。
2022年5月18日追記:Thundebrird 78.15.0は、ビルド時の問題のためにリリースが中止されました。Thundebrird 78の最終バージョンは78.14.0となっています。
Thunderbird 91のリリースノート(有志による日本語訳)にはThunderbid 78からの変更点が多数記載されていますが、技術的な詳細に踏み込んだ項目が多く、エンドユーザー観点では影響度合いを読み取りづらい部分があります。そこでこの記事では、「法人運用で具体的にどのような影響があるか」という切り口で、代表的な変更点を紹介することにします。
事前情報:RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow - チケットプレゼントもあるよ #rubykaigi
RubyKaigi Takeout 2021でRed Arrow - Ruby and Apache ArrowというApache ArrowのオフィシャルRubyライブラリーの話をする須藤です。RubyKaigi Takeout 2021での私の話をより理解できるようになるために内容を紹介します。
なお、クリアコードはゴールドスポンサーとしてRubyKaigi Takeout 2021を応援しています。ゴールドスポンサーになるとチケットをもらえるのですが社内では使い切れないので欲しい人にあげます。2名分あります。応募方法はこの記事の最後を参照してください。
RubyKaigi Takeout 2021とtest-unit - Ractor対応とdebug.rb対応とCoreAssertionsの置き換え #rubykaigi
test-unitをメンテナンスしている須藤です。RubyKaigi Takeout 2021でtest-unitの開発が進んだので紹介します。
DebConf21でまだ手がつけられていないバグを見つけやすくする仕組みの最近の話をしました
DebConf21でLatest topics about fabre.debian.netという話をしてきた林です。今回はその発表内容を紹介します。
#Fluentd トラブル相談 1 - Fluentdが数時間後にENOENTを出力する
クリアコードではFluentdのサポートを受け付けています。 サポートの内容としては、Fluentdのバージョンアップのアドバイスから、 トラブル発生時の原因調査まで様々です。 この新しい連載「Fluentdトラブル相談」では、日々のサポート業務の中から いくつか事例を取り上げて紹介していきます。
今回の記事で取り上げるのは、障害対応からの一事例です。
ご相談内容
サーバーからログを転送するのにFluentdを利用しています。 最近、Fluentdを起動してから数時間すると、突然ENOENTエラーが発生するようになりました。 必ず起きるわけではなく、再現条件もよくわからないので困っています。
この原因と解決方法を調査いただけないでしょうか。
リーダブルなコードを書く習慣の身に付け方・実践の仕方
結城です。
2021年9月13日から14日にかけて、東京都立大学の大学院生向け特別講義として「リーダブルコード演習」を実施しました。
演習の内容は、当社でこれまでにも行ってきているリーダブルコードワークショップを、プログラミング経験が比較的浅い・プログラミングの量がまだそれほど多くない方向けに調整した内容としました。 この記事では、実施した演習の概要と、今回意識した点を紹介します。
FirefoxとWindowsのエンタープライズの証明書の読み込み順と有効期限の取り扱いの詳細
結城です。
Firefoxは、Windowsの証明書データベースからエンタープライズの証明書を自動的にインポートする機能を持っています。Firefox 52で機能が実装された当時の記事では、機能の概要と検証の方法を紹介しましたが、今回はさらに踏み込んで、Firefox(Nightly 94.0a1時点)の証明書周りの実装の詳細を、対応する実装箇所を示しながら紹介してみます。
Firefox ESR91.2のリリースとFirefox ESR78のサポート終了について
来る11月2日に、Firefoxの法人向け長期サポート版であるFirefox ESR1の、1つ前のメジャーバージョンにあたる「Firefox ESR78」のサポートが終了します。
Firefox ESRは現在、ESR91とESR78の2つのバージョンが存在しており、10月5日には、それぞれのセキュリティアップデート版であるESR91.2とESR78.15がリリースされる見込みです。 このうちESR78.15はESR78の最終バージョンになる予定で、ESR91.2のリリースをもってESR78はサポートが終了する旨予告されており、以後はESR91への移行が強く推奨されています。
当社では、Firefox ESR78からESR91の間の変更点のレポートを公開しており、このレポート中では大きく分けて11点の変更を詳細に紹介しています。 この記事ではその中で特に、日本での法人利用に影響が出ると考えられるものを4点抜粋してご紹介します。
-
Extended Support Release。通例、1年間のセキュリティアップデートが提供され、その間は機能的な変更は行われない。 ↩
Fluentdのプラグインのメモリリークの特定を支援するプラグインを使う方法
クリアコードではFluentdのサポートサービスを提供しています。
今回は、プラグインのメモリリークの特定を支援するプラグインを開発したので、 どんなことができるのか、またどのように使ったら良いのかを説明します。
#Fluentd トラブル相談 2 - Fluentdの再起動時にEADDRINUSEが発生する
第2回目のFluentdトラブル相談で取り上げるのは、Fluentdでサービスのログを転送する際に発生したトラブルです。
ご相談内容
Fluentdを使って、自社サービスのログを中央のサーバーに収集しています。
困っていることとして、ログ収集サーバーのFluentdを再起動すると、EADDRINUSEというエラーが発生することがあります。 発生頻度は時々で、必ず発生するわけでもありません。また、Fluentdを一旦すべて終了してから再起動すると復旧します。
毎日の運用上、非常に煩わしいので、このエラーがどうして起きているのか調査いただけないでしょうか。

OSS Gateオンボーディング第一回を実施 - Debianコントリビューターを1人増やせた!
Debian開発者としてDebianのコミュニティーで活動している林です。
2021年8月から10月にかけて、OSS Gateオンボーディングという取り組みを実施しました。 OSS Gateオンボーディングはより深く継続的にOSSを開発する人を増やすことが目的です。
この目的を実現するために、OSS Gateオンボーディングでは「開発者が増えて欲しい」先輩役と「開発に参加したい」新人さんをマッチングし、「開発に参加したい」人が「継続的に開発に参加する人」になれるように支援することにしました。
今回は、OSS Gateオンボーディングの第一回として「debパッケージのメンテナンスやそれを支えるシステムの開発」という内容で参加者を募集し、実際に支援をした内容を紹介します。
Fluentd v1.14.2に関してGitHubセキュリティアドバイザリーを公開しました (GHSA-hwhf-64mh-r662)
クリアコードではFluentdのサポートサービスを提供しています。
今回は、Fluentd v1.14.2で脆弱性の修正を含むリリースを実施しました。 これにともない、GitHubセキュリティアドバイザリーを公開しています。 問題の発覚の経緯とどのように対応したのかについて説明します。
PostgreSQL Conference Japan 2021 招待チケットプレゼント!
クリアコードで、コードを書く以外の仕事をしてる吉本です。
クリアコードは、PostgreSQL Conference Japan 2021をシルバースポンサーとして応援しています。
明日(11月11日9時30分)までの応募で、1名様に招待チケットをプレゼントします!
PostgreSQL Conference Japan 2021:PGroongaを使って全文検索結果をより良くする方法 #pgcon21j
2021年11月12日(金)にPostgreSQL Conference Japan 2021が開催されます。 私は、「PGroongaを使って全文検索結果をより良くする方法」という題名で、PGroongaでより良い検索結果を得るのに使える機能を紹介します。
db tech showcase 2021 - Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
db tech showcase 2021の11月17日(明後日!) 15:30-16:15のセッションで「Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク」という話をする須藤です。まだ登録できるのでApache Arrow Flightに興味がある人はぜひこのセッションに参加してください!オンライン開催です!セッション中およびセッション後はチャットで私と質疑応答できます!
PC上でWeston + Wayland版Chromium + Fcitx5での日本語入力環境を構築する
技術に詳しくない人向けの技術用語集をクリエイティブ・コモンズライセンスで公開
クリアコードでコードを書く以外の仕事をしている吉本です。 米国に留学していたので、英語の読み・書き・話す・聞くについては、差し支えなくできることが、セールスポイントです。
さて、クリアコードでは、いろいろなソフトウェアの開発やコミュニティサポートを行っています。 技術の世界に足を踏み入れたばかりだと、日本語でも、英語でも知らない単語や、知っていると思っていたのとは違う意味の単語に日々であっています。
そういった、知っているようで知らない単語や英単語などを集めて、用語集をつくりはじめました。
「雑に立てられるissue」で疲弊しないためにOSS開発者ができること
要約:OSS開発プロジェクト運営者の側でとれる対策はいくつかあるよ。issueは基準を設けてどんどん閉じてしまおう。GitHubならActionsで自動化も簡単だよ。自動テストを整備するように、必要なコストだと思って割り切るといいよ。
