ククログ(13)
ビルドしたバイナリーが使われないときはldd/otool
C/C++を使って開発することも多い須藤です。
C/C++を使って開発をしている場合、手元でビルドしている開発用のバージョンとリリースされてパッケージ化されたバージョンが同一環境に混在することがあります。たとえば、Groongaを開発していると、自分でビルドしたGroongaとapt
でインストールしたGroongaが混在することがあります。そのような場合、手元でビルドしたバージョンを使っているつもりでもパッケージでインストールしたバージョンが使われてしまって「なぜ手元での変更が反映されないのだ。。。」となってしまいます。このような場合はldd
/otool
を使って問題を切り分けていくことができるのでその方法を紹介します。
メールのやりとりとRedmineチケットを紐付けてタスクの状況を半自動で管理する
結城です。
以前、当社でのRedmineを使った技術サポートサービスの運用効率改善事例において、当社のサポートサービスでのお客さまとのやり取りは原則としてメールベースで行っていることと、トラッキングのためのRedmineチケットを使用していること、その両者を関連付けるThundebrirdアドオン「RedThunderMineBird Plus」を使用して問い合わせの取りこぼしやミスを減らすようにしていること、などをご紹介しました。
この中で、受信メールからのチケット起票・更新を自動化する物としてRedmine plugin email importer(以下、「Email importer」と表記します)をご紹介しましたが、運用の仕方の見直しによって、チケット運用の負担がさらに下がりました。 本記事では、Email importerの概要と使い方を改めて紹介します。
MFCアプリケーションのUI開発(初級レベル)
最近、ChronosというChromiumベースのWebブラウザの開発をしている橋田です。
ChronosはMFCで作成されています。 今回、Chronosに新しいダイアログを追加しました。 Visual Studio + MFCでのUI開発に初めて対応したため、MFCでのUI開発方法について得た知見を紹介したいと思います
Chromium Embedded Frameworkへのコントリビュート体験談
最近、ChronosというChromiumベースのWebブラウザの開発をしている橋田です。仮想化ソリューションと組み合わせて、Windows環境で動作する仮想化アプリとして提供するプロダクトです。
Chronosでは、Chromiumブラウザを自作のアプリケーションに組み込むためのフレームワークである「Chromium Embedded Framework」を使っています(以降「CEF」と表記)。
先日、Chronosの開発を通じて、CEFに簡単な機能追加のパッチを提供しました。 今回はその体験を元に、CEFへのコントリビュートの流れを紹介します。
後半には、さらによくわかる特別コンテンツ(?)もありますのであわせてどうぞ。
【クリアコードのワーケーション2023】宮城県松島町
クリアコードで、コードを書く以外の仕事をいろいろしている吉本です。
普段フルリモートで、日々の業務に携わっているクリアコードでは、2023年6月1日(木)~6月2日(金)+3日(土)でワーケーションを実施しました。
この記事では、コロナ禍で完全フルリモートになってから初めて開催された本イベントの開催までの経緯とふりかえりをざっとまとめました。のちに思い出すための記録をオープンにしています。
Thunderbirdを既定のクライアントに設定しても他のアプリからOutlookが起動され続けてしまう問題を解消する
結城です。
当社のThunderbirdサポートのお客様から、「Thunderbirdを既定のメールクライアントに設定しようとしているのに、既定のクライアントにならない」というお問い合わせを頂きました。
Thunderbirdの設定画面から既定のメールクライアントに設定する操作を行ったり、Thunderbirdを再インストールしたり、あるいはWindowsの設定でmailto:
の関連付け先をThunderbirdに設定したりしたにもかかわらず、Office 365(デスクトップアプリ版)のExcelでドキュメントを「共有」しようとすると、ThunderbirdではなくOutlookが起動されてしまう、という状況です。
この記事では、問題の解決方法と発生原因を説明します。
Thunderbirdで特定のメールフォルダーが重複表示されたり内容が表示されなくなったりする問題の原因と回避策
結城です。
先日、Thunderbirdをお使いのお客さまから「旧PCから新PCにThunderbirdのユーザープロファイルを移行したところ、一部のメールフォルダーが重複して表示されるようになった」とお問い合わせを頂きました。
調査の結果、残念ながら詳細な原因の特定には至りませんでしたが、現象発生時の詳しい状況と回避策については明らかにできました。 そこで、同様の現象に遭遇された方向けに情報を公開したいと思います。
トランクベース開発での複雑な競合の解消の仕方
結城です。
1つ前の記事では、「トランクベース開発」のスタイルで開発する場面において、自分が中央リポジトリーにコミット権を持っているときの、競合状態の発生とその解消の流れを紹介しました。 これは、会社に所属して自社の開発プロジェクトに参加する場合や、OSS開発プロジェクトの一員として開発を行う場合によく見られる光景です。
その一方で、多くの人にとって実際に「OSS開発に関わる」場面は、プロジェクトのリポジトリーへのコミット権を持たない外部のコントリビューターとして関わる場合の方が主ではないでしょうか。
そのような状況でのトランクベース開発においては大抵、中央リポジトリから自分の管理下の場所にフォークしたリポジトリを、ローカルでの作業の成果のプッシュ先やマージリクエスト(プルリクエスト)の起点とする、という運用が必要になります。 1つ前の記事での運用と比べると、関係するリポジトリが1つ増えるため、ブランチ操作がさらに複雑になり混乱しやすいです。 この記事では前の記事の発展として、このような場面でのトランクベース開発のブランチ操作の流れを紹介します。
ククログのタグ紹介
クリアコードでコードを書く以外の業務をしている吉本です。
「クリアコードのことをもっと知ってもらえるようにする」ことも業務の一つなので、クリアコードの知識の詰まったククログ記事をTwitterで紹介しています。
今回は、ちょっと増えてきたククログのタグについて、どんな記事があるのかを紹介します。特定のソフトウェアなどについてを検索してたどり着いた方に、タグから同じ題材の記事をもっと読んでもらえたらよいなと思っています。
Groongaのポスティングリストの圧縮方法をPForDeltaからRoaring bitmapsに変更しようと検討したけどPForDeltaのままにした
全文検索エンジンGroongaを開発している須藤です。
爆速OLAPデータベースであるClickHouseが全文検索インデックスを実装したというブログ記事の中で「ポスティングリストの圧縮には最先端のRoaring bitmapsを使った」と書いていました。そんなによいものならGroongaのポスティングリストでも使おうかと思って検討してみたのですが、Groongaのユースケースではサイズ・速度ともに現在のPForDeltaの方が優れていたのでRoaring bitmapsは導入しませんでした。ただ、結果セットで使うにはよさそうな気がするので、おいおいそのユースケースでも検討したいです。