ククログ

https://www.clear-code.com/blog/

ククログはクリアコードのブログです。開発に関わる技術情報や、会社での出来事を記録しています。

フィード

記事のアイキャッチ画像
Groongaのトークナイザー: TokenNgramとTokenBigramの違いは?
ククログ
Groongaのトークナイザーがいっぱいあるけど、どれを使えば良いのか迷っていた阿部です。特にNgram関連がいっぱいあって迷います。さらにいうとBigramをしたいときに TokenNgram と TokenBigram のどちらを使えば良いのか迷います。名前からは両方とも同じ処理ができそうです。今回はこの疑問点について解説します。この記事はグルカイ!第58回の内容をククログとしてまとめました。結論さっそく結論ですが、Ngramをしたい場合はTokenNgramを使えば良いです。他のNgram関連のトークナイザーは考えなくてよいです。解説TokenNgram はオプションによって動作を指定できます。それにより他のNgram系のトークナイザーの処理はすべて TokenNgram で実現できます。例えば、 TokenUnigram、TokenBigram、TokenTrigram は TokenNgramで以下のように指定できます。TokenUnigram: TokenNgram("n", 1)TokenBigram: TokenNgram("n", 2)TokenTrigram: TokenNgram("n", 3)解説の補足このような状況になっている理由は以下の2点です。以前はオプションの書式が使えなかったGroongaは後方互換性を大事にしている1. 以前はオプションの書式が使えなかったオプションの書式とは () で指定しているものです。先ほどの例だとTokenNgram("n", 1) の ("n", 1) の部分です。以前はオプションで挙動を変えられませんでした。挙動を変えたい場合はその変えたい挙動ごとに TokenBigram などを追加する必要がありました。今は TokenNgram のオプションで他のすべてのNgramのトークナイザーと同じ処理ができるようになっています。2. Groongaは後方互換性を大事にしているTokenNgram があれば十分なので他のトークナイザーは消しても良いのですが、Groongaは後方互換性を大事にしているため、TokenNgram 以外も引き続き利用できるようになっています。まとめ歴史的経緯と後方互換性のためにたくさんのNgramのトークナイザーがありますが、TokenNgram を使えばOKです。補足: Groon
5日前
記事のアイキャッチ画像
RubyKaigi 2024 2日目にコード懇親会を開催するよ! #rubykaigi #codeparty
はてなブックマークアイコン 2
ククログ
RubyKaigi 2024の2日目の夜に開催されるコード懇親会のお手伝いをする須藤です。今日の10:00から参加登録できるので、「コードで懇親?楽しそう!」と思うRubyKaigi 2024参加者は登録してね。コード懇親会とはコード懇親会は6年前に私が思いついた懇親会のスタイルです。普通の懇親会とはちょっと違うコンセプトの懇親会です。普通の懇親会は飲食物が用意された状態で各参加者がそれぞれ違う参加者と話をして懇親します。ちょっとしたトークや催し物が用意されることもあります。コード懇親会はその名の通りコードを軸に懇親します。一緒にコードを書いたり、一緒にコードを読んだり、どうしてこんなコードになっているのかみんなで考えたり作者に聞いたり。そんな感じで懇親します。そんなことをして楽しい時間になるの?って思いますよね。楽しい時間になるはず!特にRubyistなら!Rubyは楽しくプログラミングできるように設計されたプログラミング言語です。だったら一緒にRubyでコードを読み書きする時間も楽しい時間になるはずだよね。そういうコンセプトです。とは言っても、やっぱり人によると思います。「一緒にコードを読み書きする」と聞いて「楽しそう!」と感じる人はコード懇親会を楽しめるでしょう。一方、「?」と思う人はそうでもない可能性が高そうです。そんな人は、自分が楽しめそうな他のイベントを選んで参加してください。RubyKaigi 2024の2日目の夜にはコード懇親会以外にもいろいなイベントが用意されているので、自分が楽しめそうなイベントがきっと見つかるはずです。(でも、言葉では理解できなかったけど体験したら理解できた!となる人もいる気はするので体験して自分は楽しめるかどうか確認して欲しいとは思っています。)なお、他のドリンクアップ系イベントと違ってお酒はほぼない予定です。RubyKaigi 2024では毎晩お酒を飲みたい!という人は別のイベントの方が向いています。あるいは、コード懇親会が終わった後に一杯やりに行ってください。21:30に終了予定です。過去のコード懇親会情報言葉での説明だけではイメージがつかない人向けに過去のコード懇親会の様子がわかる情報をおいておきます。参考にしてください。コード懇親会は過去にRubyKaigi 2018と2019に開催されたことがあります。このときはSp
6日前
記事のアイキャッチ画像
Mroonga: Ubuntuのパッケージをリビルドして公開する方法
ククログ
阿部です。Mroongaのパッケージ提供やLaunchpadの利用を初体験したので、その経験のまとめ記事です。具体的にはMroongaをUbuntu向けにリビルドしてパッケージ提供する手順の記事です。今回はMySQL 8.0向けのパッケージの例です。バッチが整備されているので実行の手順と、バッチの中身の簡単な解説記事です。(Launchpadでパッケージ提供する方法を1から解説記事ではありません。その解説記事はこちら)経緯と対応以下のエラーでMroongaがインストールできないと報告がありました。$ sudo apt-get install -y -V mysql-server-mroongaReading package lists... DoneBuilding dependency tree... DoneReading state information... DoneSome packages could not be installed. This may mean that you haverequested an impossible situation or if you are using the unstabledistribution that some required packages have not yet been createdor been moved out of Incoming.The following information may help to resolve the situation:The following packages have unmet dependencies: mysql-mroonga : Depends: mysql-server-8.0-mroonga (= 13.05-2.ubuntu22.04.3) but it is not going to be installed Depends: mysql-server (= 8.0.35-0ubuntu0.22.04.1) but it is not going to be installedエラーの原因はUbuntuの最新のmysql-serverパッケージ向けにリビルドしたMroonga(mysql-server-8.0-mroong
13日前
記事のアイキャッチ画像
公開のOSS開発プロジェクトの業務での開発事例:Waterfoxのサイドバー開発からのFirefox用アドオン「Tree Style Tab」の改善(開発編)
ククログ
結城です。筆者個人に寄せられたWaterfoxのサイドバーUI開発に関するご相談を当社の業務として手がけた件(参照:Waterfoxプロジェクトのブログにおけるアナウンス)について、前編の記事では交渉と作業内容の検討段階の経緯をご紹介しました。前編では「Waterfoxのためのモジュール開発」の趣が強い話でしたが、最後の段になって、実は最終的な落とし所はそれとはやや見え方が異なる「WaterfoxプロジェクトとTree Style Tab(以下、TST)プロジェクトとのコラボレーション」の形になった、ということに触れました。後編となるこの記事では、「調査・開発を進める過程で、何故そのようにゴールが変わったのか」を説明した上で、主に「既存の開発プロジェクトに対する特定顧客向けの機能追加の要件をどのように分離したか」に焦点を当てて、実際に行ったことをご紹介します。作業方針決め前編に記載した検討の結果、今回の作業内容・計画は以下の通りに決まりました。機能はWebExtensionsアドオンとして実装する。(仮称「Waterfox Sidebar」)開発するアドオンは、TSTの実装を一部流用する。アドオンの仕様はManifest V3とする。ただし、バックグラウンドページは何らかの方法で永続化できる前提とする。つまり、アドオンの全体的な設計はManifest V2からほぼ変えない。バックグランド永続化の具体的な方法は、Waterfox側での特別な対応を想定する。UIは仮想スクロールを用いて、ほぼ新規に開発する。サムネイル、設定画面の組み込みなど、WebExtensions APIでは実現不可能な部分をExperiments APIで実装する。この作業内容から、成果物は「バックグラウンド部分はTSTを流用し、UI(サイドバーパネル)はほぼ新規に開発する」形になると考えられました。そのため、まずバックグラウンド部分から作業を開始し、以下の要領で進めることにしました。出発点として、TSTの現行のバックグラウンド実装のコードをコピーする。要件上、Waterfox Sidebarには不要な処理を削除する(随時)。TSTとWaterfox Sidebarに共通の部分で必要な変更については、公開のTSTにまずその変更を行い、次に、Waterfox Sidebarの対応する箇所にその変更内
16日前
記事のアイキャッチ画像
Fluent Package v5.0.3リリース - Windows版でサービス起動が遅い問題を修正
ククログ
こんにちは。Fluentdのメンテナーの福田です。2024年3月29日にFluent Packageの最新版となる v5.0.3 をリリースしました。Fluent Packageとは、コミュニティーが提供しているFluentdのパッケージです。これまで提供していたtd-agentが2023年12月31日限りでEOLとなり、Fluent Packageはその後継パッケージにあたります。本リリースでは、いくつかの重要なバグ修正を行いました。特にWindows版に関しては、サービス起動が遅いため起動がタイムアウトすることがあるなど、起動に関する不具合を修正しています。この記事では、メンテナーの観点からFluentdの最新パッケージの動向を詳しく解説します。td-agentのEOLとFluent PackageFluent Packageとは、コミュニティーが提供しているFluentdのパッケージです。それまでコミュニティーが提供していたFluentdのパッケージとしてtd-agentがありましたが、td-agentは2023年12月31日限りでサポート終了となりました。Drop schedule announcement about EOL of Treasure Agent (td-agent) 4Fluent Packageはtd-agent v4の後継パッケージであり、ある程度の互換性を保っています。多くのケースではtd-agent v4から簡単にアップデート可能です。td-agent v4がインストールされている環境に、以下の通常のインストール手順でFluent Packageをインストールするだけです。現在td-agentをお使いの方は、ぜひFluent Packageへのアップデートをご検討ください。詳しくは、次の資料をご覧ください。公式ブログ(英語): Upgrade to fluent-package v5弊社提供資料: Fluent Package LTS(長期サポート版Fluentdパッケージ)ガイド 弊社ブログ: Fluent Package v5.0.2リリース - in_tailプラグインの重大な不具合の修正(前半でFluent Packageについての基本的な情報を紹介しています)Fluent Package v5.0.32024年3月29日に
18日前
記事のアイキャッチ画像
collectdのLuaプラグインでより多彩なフックを利用できるようになりました
ククログ
システムやアプリケーションのメトリクス情報をあつめるソフトウェアの1つにcollectdがあります。今回はcollectdの開発版で利用可能になった、Luaプラグインに追加されたフックについて紹介します。Luaプラグインでこれまで利用できたフックcollectdはC言語で実装されていますが、プラグインを別の言語で実装できるようになっています。Luaだけではなく、PerlやPython、Javaが利用できます。Luaプラグインを利用する際には、従来2つのフックのみが利用できるようになっていました。readwriteLuaプラグインを利用したサンプルは次のようになります。function read() -- メトリクス情報をここで収集する処理を実装してcollectdに渡す dispatch_values(values) return 0endfunction write(metrics) -- メトリクス情報がcollectdから渡されるので処理する return 0endcollectd.register_read(read)collectd.register_write(write)これは、readフックを登録することで、collectdに渡すメトリクス情報をLuaで読み込むことができ、writeフックを登録することでcollectdから受け取ったメトリクス情報を書き出せるということです。以前、株式会社セナネットワークス様からの発注を受けて開発した障害復旧機能を提供するcollectdプラグイン(lua-collectd-monitor)では、Luaプラグインを利用して実装しました。1障害復旧機能を提供するcollectdプラグインの紹介(ローカル監視機能編)障害復旧機能を提供するcollectdプラグインの紹介(リモート関連機能)ただし、当時のcollectdのLuaプラグインでは、lua-collectd-monitorに必要なフックの機能が不足していました。例えば、初期化のときの処理や終了時の処理を書こうと思っても、フックの種類がこれだけでは実現できません。そのため、独自にLuaプラグインを拡張して障害復旧機能を実装していました。Luaプラグインでこれから利用できるようになるフックcollectdのmainブランチでは、次のフックが利用できるようになりました
25日前
記事のアイキャッチ画像
Redmineのプラグインの作り方 - UNCプラグインを例にして
ククログ
阿部です。UNC形式のパスをクリップボードにコピーするRedmineプラグインを開発しました。それを通してRedmineのプラグインを一から作る方法について学んだので、その内容を紹介します。作ったときの私の知識レベルが以下なので、そのくらいの方であれば参考になる内容だと思います。Redmineは普段利用しているRedmineはRuby on Railsで開発されているらしいコードは読んだことがないRuby on Rails自体は初心者Redmineのプラグイン開発の経験もなしはじめに今回開発したプラグインはUNC形式のパスをクリックでクリップボードにコピーできるようにするものです。そのようにすることでUNC形式のファイルパスを開くまでのステップを少なくすることが狙いです。近年はセキリティ上の理由からブラウザで file:// URLへのアクセスに制限があるため、この補助機能でファイルが開きやすくなります。もう少し具体的に機能の説明をすると、\\server\path\to\file といった文字列のUNC形式のパスを、以下のキャプチャにあるクリックでパスをコピーするリンクに自動で変換して表示します。このRedmineのプラグインではそのような表示文字列の自動変換以外にもできることはいろいろありますが、本記事では「Redmineの投稿内容を加工して表示」するプラグインを一から作る方法について紹介します。流れRedmine本体を動かすプラグインの雛形生成プラグイン情報の更新プラグインの実装1. Redmine本体を動かす今回の本題ではありませんので、Redmineを起動するまでのコマンドの列挙に留めます。以下の通り実行することでRedmineが起動しブラウザで確認できます。git clone --depth 1 https://github.com/redmine/redmine.gitcd redminecat <<EOF > config/database.ymldevelopment: adapter: sqlite3 database: db/redmine.sqlite3EOFbundle installbin/rails generate_secret_tokenbin/rails db:migrateREDMINE_LANG=en bin/rails re
1ヶ月前
記事のアイキャッチ画像
Fluentd: in_tailプラグインの基本的な使い方をメンテナーが解説
ククログ
こんにちは。Fluentdのメンテナーの福田です。Fluentdは、様々なデータソースからデータを収集し、様々な出力先へ転送することができる便利なフリーソフトウェアです!Fluentdでは、プラグインを組み合わせることで様々な用途を実現できます。その中でも、ファイルからログを収集したい場合にはin_tailプラグインがよく使われます。しかし、ファイルと一言で言っても、その更新のされ方やログローテートのされ方は様々です。加えて、in_tailプラグインにはとても多くの設定項目があります。本記事では、まずはこれを把握すれば、大体のケースでin_tailプラグインを問題なく使える!という点をFluentdメンテナー視点でいくつか解説します。Fluentdを使ってみたいけど設定がよく分からず使えていない、とか、使っているけど設定にあまり自信がない、という方は、ぜひご覧ください。(以下の説明は Fluentd v1.16.3 時点のものになります)最初に注意!Fluentd v1.16.3 (fluent-package v5.0.2, td-agent v4.5.2)以降のバージョンを使用してください。in_tailプラグインでは、エラーを出さずに収集が停止してしまう、といった大きな不具合が過去にありました。Fluentd v1.16.3 (fluent-package v5.0.2, td-agent v4.5.2)時点でそのような大きな不具合を修正しています。詳しくは Fluent Package v5.0.2リリース - in_tailプラグインの重大な不具合の修正 の記事で紹介しているので、ご覧ください。動作確認の仕方Fluentdは簡単に手元で動作を確認することができます。Fluentdの簡単な動かし方については、以前の記事 Fluentdを動かしてみよう! で解説しているので、ぜひご覧ください。ぜひ今回も実際にin_tailの動きを確認してみてください。Fluentdを動かしてみよう! では、次の設定でFluentdが実際にデータを処理する様子を確認しました。<source> @type sample tag test</source><match test.**> @type stdout</match>このsource設定の部分を、in_sampleプラグイ
1ヶ月前
記事のアイキャッチ画像
公開のOSS開発プロジェクトの業務での開発事例:Waterfoxのサイドバー開発依頼(契約編)
ククログ
結城です。先だってFirefoxのフォーク版の一つとして知られるWaterfoxプロジェクトのブログにてアナウンスがあった、Waterfoxの次期バージョンにおける「タブのプレビュー画像を伴った縦置き型のタブバー」の開発を、当社業務の一環として筆者が担当させて頂きました。先方のブログでも言及されている「仮想スクロール」の技術的な詳細については、筆者個人のブログにて、解説記事を別途公開しております。ここでは、それとは別の切り口として、「個人の開発者宛に頂いた連絡を、どのようにして企業の案件として請け負い、成果をオープンソース開発プロジェクトに還元したか」に焦点を当て、前後編に分けて、前編(この記事)では初期の交渉と仕様検討段階で行ったこと、後編では実装段階で行ったことをご紹介します。初期の交渉発端となる依頼始まりは、筆者の個人活動のメールアドレス宛に届いた、Waterfoxプロジェクト主催のAlexさんからのご相談でした。メールには、Waterfoxプロジェクトで縦置き型のタブバーを正式な新機能として実装しようとしていて、同様の趣旨の機能を提供するFirefox用アドオンであるTree Style Tab(以下、TST)の作者の筆者に、仕事として助力をお求めである旨が綴られていました。アドオン作者にブラウザー本体の改造について相談を?と疑問に思われるかもしれませんが、Firefoxはバージョン57の時点でアドオンの仕様が大きく変わっており、Firefox 56以前のアドオンは「XULアドオン」と呼ばれ、その開発にはFirefox本体の開発と共通する知識が必要でした。ですので、その時代を知る古株の拡張機能作者である筆者にご相談が寄せられたのは納得のいくところです。会社への相談ただ、どのような形で関わるにせよ、作業量はかなりの大きさになりそうです。諸事情により本件に投じられる筆者のプライベートの時間は限られたものとなりそうだったため、開発を個人で責任を持ってお請けするのは難しいと思えました。幸い、当社ではオープンソース開発を事業として行っており、公開プロジェクトの開発への業務での参加1も、海外企業をスポンサーとした業務2も、どちらも先例があります。そこで、本件も社の業務時間で行えないかどうか、先方と当社のブラウザーサポート事業チームの両方に相談したところ、「双方のスケジュ
2ヶ月前
記事のアイキャッチ画像
UbuntuのAPTを使用して、.debパッケージでサードパーティリポジトリを登録しパッケージをインストールする仕組み
ククログ
最近、Groongaチームに加わると同時に普段使いのmacOSからUbuntuに乗り換え、まだ不慣れな思いをしている児玉です。Groongaの開発環境を整えることになり、Groongaの最新版をソースコードからビルドするためにサードパーティのリポジトリからパッケージをインストールする場面に直面しました。パッケージの公式サイトを見ながら手順通りにインストールできたものの、その背後にある仕組みが理解できていない状態でした。この状態に少々モヤモヤし、気になっていた気持ちを社内でつぶやいたところ、Debian Developerの林先輩が.debパッケージでサードパーティリポジトリを登録しパッケージをインストールする仕組みを教えてくれました。今回は、その貴重な学びを共有します。今回は、実際にインストールする必要があったApache Arrowのパッケージであるlibarrow-devを例にとって見ていきます。Apache Arrow公式のインストールページを見てみると下記のようなコマンドが書かれています。(今回の説明に必要な部分だけ抜粋しています。)$ wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb$ sudo apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb$ sudo apt update$ sudo apt install -y -V libarrow-dev全体的な流れとしては下記のようになっていますが、具体的に何をおこなっているのか一つ一つ見ていきたいと思います。サードパーティのAPTリポジトリ情報を取得する取得したAPTリポジトリ情報を反映するAPTリポジトリにアクセスしパッケージ情報を更新をするパッケージをインストールサードパーティのAPTリポジトリ情報を取得する最初に下記のコマンドでは、LinuxのディストリビューションIDとリリースコードネームを使用して、サード
2ヶ月前
記事のアイキャッチ画像
Fluentd Update - Fluentdとパッケージの最新動向についてOSC 2024 Online/Springで発表しました
ククログ
林です。2024年3月1日・2日に開催されたOpen Source Conference 2024 Online/Springにおいて、「Fluentd Update - Fluentdとパッケージの最新動向について」と題した発表を林・福田の両名で行いました。1日目のC会場にて実施した発表内容を紹介します。発表資料について Fluentd Update – Fluentdとパッケージの最新動向について スライド(Rabbit Slide Show)リポジトリー発表内容についてFluentdプロジェクトのメンバーとして、以前OSC 2022にて次のような発表を行いました。OSSを継続的にメンテナンスしていく仕組みづくり – Fluentdの事例とその最新情報についてOSC 2022 Online Springで発表しましたそれから2年になるので、Fluentdに関連する最新情報を日本語で提供すべく、登壇しました。発表においては、次の4つのトピックを話しました。FluentdとはOSC2022 Online/Spring以降のできごとFluent Package LTSとはFluentd開発の最新トピック昨年td-agentの後継となるFluent PackageのLTS版の提供をはじめたのが大きな変化です。また、直近でリリースする予定のFluent Packageの新バージョンに盛り込む変更点を先行して紹介しました。当日の発表の内容はYoutubeのOSPN.jpチャンネルのアーカイブで視聴できるようになっています。さいごに「Fluentd Update - Fluentdとパッケージの最新動向について」でもお話しましたが、継続的にLTS版をリリースしたり、より活発なコミュニティーサポートにつなげるのが今後の課題としてあります。OSCでは、あくまでコミュニティーとしての活動内容の話をすることが目的なので言及していませんでしたが、クリアコードでは、Fluentdのサポートサービスを提供しています。サポートサービスでは障害発生時の調査や回避策の提案、パッチの提供などを行います。また、既存のtd-agent v4からFluent Packageへのアップグレードの支援もサポートサービスの一環として行っています。Fluentdに関するトラブルを抱えて困っている方は、ぜひこちら
2ヶ月前
記事のアイキャッチ画像
fluent-package不具合情報 - Windows版で環境によってはFluentdワーカープロセスの起動ができないことがある
ククログ
クリアコードはFluentdを利用する法人様に向けてFluentdのサポートサービスを提供しています。そのサービス内容の一つとして、Fluentdで何らかの不具合があってお客様に重大な影響が懸念される場合に、(契約形態にも依りますが)プッシュ型で情報をお知らせするサービスも提供しています。今回、fluent-packageやtd-agentが環境によってはワーカープロセスを起動できない問題があることが発覚しましたので、その情報をククログでも紹介します。本件の概要fluent-packageやtd-agentのWindows版において、レジストリHKLM(HKEY_LOCAL_MACHINE)やHKCU(HKEY_CURRENT_USER)のSOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\以下に非ASCII文字を含むサブキーが存在すると、Fluentdのワーカープロセスが起動できないという問題があることが発覚しました。上記のレジストリはWindowsのプログラムの追加と削除機能のために、各アプリケーションが情報を書き込む場所です。通常、各アプリケーションは上記レジストリキー直下にGUIDをサブキーとして書き込みますが、中には漢字等を含んだサブキーを作成するアプリケーションが存在します。上記のようなレジストリキーが存在する場合でもFluentdの動作に影響を与えないというのが期待される動作ですが、fluent-packageやtd-agentが同梱するRubyInstallerの問題により、特定バージョンのfluent-packageやtd-agentではプロセスを起動できないという問題が発生します。影響範囲td-agent v4.5.0 以降、fluent-package v5.0.2以前のバージョンがこの影響を受けます。前述のような問題のあるアプリケーションがインストールされている場合にのみ影響を受けます。以下レジストリキーのサブキーとして非ASCII文字を含むものがあるかどうかを確認することで、影響を受けるかどうかを判断できます\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\\HKEY_CURRENT_USER\WO
2ヶ月前
記事のアイキャッチ画像
Fluentdを動かしてみよう!
ククログ
こんにちは。Fluentdのメンテナーの福田です。Fluentdは、様々なデータソースからデータを読み込み、様々な出力先へ転送することができる便利なフリーソフトウェアです!今回は、Fluentdに興味がある、触ってみたい、という方向けに、Fluentdを手元で動かす方法を紹介します。RPMパッケージ、DEBパッケージ、MSI(Microsoft Windows Installer)を使ってパッケージ(Fluent Package)をインストールする方法と、ソースコードから起動する方法の2種類を説明します。ユーザーとして機能を確かめてみたい、という方や、Fluentdやそのプラグインの開発に興味がある、という方は、ぜひご覧ください。パッケージをインストールして動かすFluentdを便利に使うため、Fluentdプロジェクトはパッケージ「Fluent Package」を提供しています。以前は「td-agent」という名前でした。このパッケージをインストールすることで、すぐにFluentdを動かすことができます1。今回は次の3種類を紹介します。RPMパッケージ (Red Hat / CentOS / Rocky Linux / AlmaLinux)DEBパッケージ (Debian / Ubuntu)MSI (Windows)もしmacOSで使いたいという人は、この後の「ソースコードから動かす」方法にするか、もしくは古いパッケージになりますがInstall by .dmg Package v4 (macOS)を参考にしてください。また、ダウンロードして利用できるものについては、次の公式サイトをご覧ください。Dockerイメージなどもあります。https://www.fluentd.org/downloadRPMパッケージ (Red Hat / CentOS / Rocky Linux / AlmaLinux)コマンド一発でインストールできます!$ curl -fsSL https://toolbelt.treasuredata.com/sh/install-redhat-fluent-package5-lts.sh | shインストールすると、systemdのユニットfluentdとして登録されます。次のようにsystemctlコマンドで確認できます。$ systemctl
2ヶ月前
記事のアイキャッチ画像
dbus-sendを利用して既存のFirefoxプロセスでサイトを開く方法
ククログ
Firefoxのプロセスが既に起動している場合、新たにFirefoxを起動しようとすると、既に起動している方のプロセスにてコンテンツが表示されます。その一方で、同一のプロファイルを指定してFirefoxを追加で起動しようと試みた場合など、そのままでは既に起動しているプロセスにてコンテンツを開かせることができない場合もあります。すでにFirefoxが起動中だが、応答しない旨のエラーメッセージが表示され、Firefoxを終了し別プロファイルを利用するようにうながされます。このような挙動になるのは、プロファイルを保護するためにロックがかけられている状態になっているためです。今回は、GNU/Linux環境下においてそのような場合でも既存のプロセスでタブを開けるように、dbus-sendをどのように利用するとよいかを説明します。FirefoxのDBusインターフェースについてFirefoxでは、DBus経由でアクセスできるインターフェースとしてOpenURLが公開されています。static const char* introspect_template = "<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection " "1.0//EN\"\n" "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n" "<node>\n" " <interface name=\"org.mozilla.%s\">\n" " <method name=\"OpenURL\">\n" " <arg name=\"url\" direction=\"in\" type=\"ay\"/>\n" " </method>\n" " </interface>\n" "</node>\n";上記はインターフェースに関するIntrospection結果を返すテンプレートの定義ですが、OpenURLは引数にtype=ay - つまりバイト列を受け取る仕様であることがわかります。では、バイト列はどのように渡せばよいのでしょうか。それについては、渡されたバイト列をコマンドライン引数として処理するnsUnixRemoteServer::HandleCo
3ヶ月前
記事のアイキャッチ画像
フィヨルドブートキャンプ様とOSS Gateワークショップをコラボ実施しました!
ククログ
OSS Gateのワークショップの企画・実施をここ1年ほど担当している福田です。OSS Gateは、OSS(オープンソースソフトウェア)開発に参加する「入り口」を提供する取り組みです。フリーソフトウェアを推進する活動の一貫として、クリアコードはOSS Gateの活動に参加しています。普段から定期的にワークショップを開催して、参加する方々にOSS開発を体験してもらっています。今回、フィヨルドブートキャンプ様から素敵なコラボ企画をいただき、OSS Gateオンラインワークショップ - フィヨルドブートキャンプ特別版を2023年9月30日に実施しました。この記事では、このコラボ企画について紹介します。OSS GateとクリアコードOSS Gateは、OSS(オープンソースソフトウェア)開発に参加する「入り口」を提供する取り組みです。普段から定期的にワークショップを開催しています。ワークショップでは、OSS開発を体験したい参加者(「ビギナー」)を、参加したことのある参加者(「サポーター」)がサポートしつつ、OSS開発を体験してもらいます。例えば、GitHub上で公開されているOSSについて、issueやPull Requestを作ったりします。実際にどのようなことをするのかは、ワークショップレポートにまとまっている感想やレポートをご覧ください。フリーソフトウェア1を推進する活動の一貫として、クリアコードはOSS Gateの活動に参加したり、OSS開発支援サービスを行ったりしています。フィヨルドブートキャンプ様からいただいたコラボ企画このコラボ企画については、次のプレスリリースでも紹介しているのでそちらもご覧ください。OSS Gateオンラインワークショップを1月27日に開催、特別編動画を公開受講生がOSSに関わる機会を提供するフィヨルドブートキャンプ様は、プログラミングスクールとして受講生がOSSと関わる機会を提供したいと考えていらっしゃいました。その目的は次の通りです。よりプログラミングを楽しむためOSSプロジェクト、OSS開発者との関わりを持つ自身もOSSにコントリビュート2している喜びを感じるレベルの高い広い世界を知るため社内など閉じた世界ではない、文字通り世界クラスのプログラマーの技術力を知るしかし、現実的にはOSS開発に関わるような機会に遭遇することが少ない、とい
3ヶ月前