Linuxでキーボード入力の補助手段としてフットスイッチを活用するには
はじめに
以前片手でのキーボード入力を支援するソフトウェアについてというタイトルで、怪我などで手首などを負傷してしまったときに使える入力方法の一つとしてHalf QWERTY(とそれをソフトウェアとして実装したxhk)を紹介しました。
ある程度はxhkを使うことでなんとかなるのですが、それでも打ちにくいキーというのは存在します。例えばキーを複数組み合わせて押さないといけない場合です。
1
-
組み合わせても問題ないキーの割り当てを工夫するのも一つの手ですが、どう割りあてるかが悩ましいです。既定の割り当てと衝突したりするためです。 ↩
Gecko Embedded: 60ESR対応のフィードバック
60ESR対応フィードバックの顛末
クリアコードでは Gecko(Firefox)を組み込み機器向けに移植する取り組みを行っています。
Webアプリや拡張機能(アドオン)で、Web Crypto APIを使ってローカルに保存されるデータを暗号化する
※注記:本文末尾の「公開鍵暗号ではなく共通鍵暗号を使う理由」の説明について、2019年1月30日午前0時から21時までの間の初出時に内容の誤りがありました。また、2019年1月30日午前0時から2月5日20時頃までの間において、本文中での AES-CTR による暗号化処理が、 nonce を適切に指定していないために脆弱な状態となっていました。お詫びして訂正致します。初出時の内容のみをご覧になっていた方は、お手数ですが訂正後の説明を改めてご参照下さい。
Web Crypto API で AES-CBC や AES-GCM の初期ベクトルをより安全に生成する
先日の Web Crypto API の基本的な使い方の解説(改訂済み)においては、説明を簡単にするために AES-GCM の初期ベクトルを乱数に基づいて生成しましたが、これはセキュリティの観点からはあまり好ましくありません。本記事では、Web Crypto API で AES-CBC や AES-GCM を用いて暗号化する場合の、より安全な初期ベクトルの生成方法について解説します。
Firefox ESR60でタイトルバーのウィンドウコントロールボタンが機能しなくなる事がある問題の回避方法
Firefox ESR60をWindows 7で使用していると、ウィンドウコントロール(タイトルバーの「最小化」「最大化」「閉じる」のボタン)が動作しなくなる、という現象に見舞われる場合があります。Firefoxの法人サポート業務の中でこの障害についてお問い合わせを頂き、調査した結果、Firefox自体の不具合である事が判明しました。
Firefox 67 以降でPolicy Engineによるポリシー設定でPOSTメソッドの検索エンジンを追加できるようになります
Firefoxのポリシー設定では、以下の要領でロケーションバーやWeb検索バー用の検索エンジンを登録することができます。
公開中のソフトウェアがWindows Defenderでマルウェアとして判定された場合の対応
当社ではIE View WEというアドオンを開発・公開しています。これはFirefox上で閲覧中のページやマッチングパターンに当てはまるURLのページをIEもしくは任意の外部アプリケーションで開くという物で、Firefox法人サポートでの需要を想定して、既存のアドオン「IE View」の仕様を参考にFirefox 57以降で使用できる形(WebExtensionsベース)でスクラッチで開発したという物です。
RubyKaigi 2019 - Better CSV processing with Ruby 2.6 #rubykaigi
RubyKaigi 2019の2日目にBetter CSV processing with Ruby 2.6という話をした須藤です。今年もクリアコードはシルバースポンサーとしてRubyKaigiを応援しました。
回帰テストの対象は適切に設定しよう
先日、Bug 1541748 - New tab and restored tab notified via tabs.onCreated can have invalid (too large) index という報告をFirefoxのバグトラッキングシステムに行った結果、提出したパッチがFirefox 68に反映される事になりました。
2019年5月4日前後から発生しているFirefoxのアドオン無効化問題の詳細な解説
「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜やFirefox 66.0.4 リリース、拡張機能全滅問題を修正 | スラド ITなどで既報の通り、2019年5月4日前後から一般向けのリリース版Firefoxでアドオンを一切使用できない状態が発生していました。緊急の修正版としてリリースされたFirefox 66.0.4およびFirefox ESR60.6.2で現象は既に解消されており、また、既にインストール済みのFirefoxに対してもホットフィックスが順次展開されていますが、本記事では今回の問題の技術的な詳細を解説します。
SciPy Japan Conference 2019 - Apache Arrow #scipyjapan
ゴールデンウィークの前のことになりますが、SciPy Japan Conference 2019でApache Arrowの紹介をした須藤です。
Thunderbirdアドオン「CardBook(連絡先)」でローカルに保存されるデータの暗号化に対応しました
CardBookと企業利用
皆さんはCardDAVという仕様をご存じでしょうか? CardDAVはWebDAVのプロトコルを使ってLDIF形式のアドレス帳をやり取りするという物で、これを用いると「読み書き両方を行えて、内容が複数PC間で同期される」という種類のリモートアドレス帳を汎用の物として実現することができます。CardDAVサーバーとして振る舞える製品にはownCloudやDAViCalなどがあり、読み取り専用に設定したリモートアドレス帳を複数人で共有するという事もできますので、企業利用では重宝する場面がありそうです。
MXEを使ってUNIX系フリーソフトウェアをGNU/Linux上でWindows向けにクロスビルドする
はじめに
UNIX系のフリーソフトウェアはMinGW-w64でビルドすることでWindows上で使えるものも多いですが、Windows上でのMinGW-w64およびMSYS2を使ったビルドは、UNIX系OS上でのセルフビルドと比べて非常に遅いという問題があります。こういった問題はUNIX系OS上でWindows向けにクロスビルドすることで改善することができますが、様々な環境変数やオプションを指定する必要があり、ビルド方法が煩雑になります。また、どちらでビルドするにしても、依存するライブラリについて一つ一つWindows用SDKを用意する必要があり、それらを手動で用意するのも骨が折れます。特に全ての依存ライブラリを自分でビルドしたい場合、ソースコードに手を入れなければならないことも多く、非常に手間がかかります。GNOMEプロジェクトで開発されているJHBuildというビルドシステムを使うことである程度は解決することができますが、Windowsについてはサポートが十分ではなく、素直にビルドが通らないことも多いようです。
OSSへのフィードバックはユーザーフォーラムとイシュートラッカーのどちらに書くべきか?
※注:この記事の対象読者は、「OSSを使用していてトラブルに遭遇しているか、改善の提案があり、その情報を開発元に伝えたいが、どこで伝えればよいかわからない」という人です。「どういう体裁で報告すればよいか分からない」「何を報告すればよいか分からない」という人向けの話はまた日を改めて書くつもりです。
OSSへのフィードバックには何をどう書けばいいのか、どのプロジェクトに報告すればいいのか
※注:この記事の対象読者は、「OSSを使用していてトラブルに遭遇しているか、改善の提案があり、その情報を開発元のイシュートラッカーに伝えようとしているが、どんな内容を書けばよいかわからない」という人です。そもそも「どこに報告すればよいかわからない」「イシュートラッカーに書き込んでいいかどうか不安がある」という方は、1つ前の記事をご参照下さい。
GNU/Linux版Firefoxでime-modeを動作させるアドオン
ime-modeとは
CSSにはime-modeというプロパティがあり、これによりinput要素やtext要素でインプットメソッドの入力モードを制御することができます。この仕様は廃止されることが決まっているため積極的に利用すべきものではありませんが、一方で代替となる仕様や実装が無いこともまた事実です。日本の業務システムでは、入力業務効率化の必要性から、今なおこの機能を利用している事例も多いようです。
MariaDBへ不具合をフィードバックするには
はじめに
MySQL/MariaDB用のストレージエンジンのひとつにMroongaがあり、MySQL/MariaDBユーザーに高速な日本語全文検索機能を提供しています。 先日リリースされたMroonga 9.04では、MySQL 8.0向けのパッケージの提供(CentOS 6とCentOS 7)もはじまりました。
Firefoxのトラブルシューティング:Firefox 67以降のバージョンを起動すると意図せず別プロファイルが作られてしまう
2019年8月29日追記:この問題はFirefox 69以降およびFirefox ESR68.1.0以降では修正済みです。本稿はFirefox 67~68.0.x(ESR含む)に特有の現象についての解説となります。
Fluentd meetup 2019でWindows EventLogに関するプラグイン回りの発表した話
先日OSS Summitの共催イベントのFluentd meetupでWindows EventLogに関するプラグイン回りの発表をしてきた畑ケです。
Fluent Bitプロジェクトの概要とWindows対応
2019年7月17日に3年ぶりとなるFluentd Meetupが開催されました (Webサイト)。クリアコードからは、筆者(藤本)を含めて2名がスピーカーとして参加しました。
Groongaの回帰テストで既知の差分を吸収するには
はじめに
オープンソースのカラムストア機能付き全文検索エンジンに、Groongaがあります。 Groongaを使うと全文検索機能付き高性能アプリケーションを開発することができます。
Fluent-bit-go-s3とFluent BitのGo Pluginプロキシの話
はじめに
Fluent BitはFluentdファミリーを構成するソフトウェアの一つです。 Fleunt BitのWindows対応はプラグインの対応だけではなく、Go Pluginプロキシについても対応を行っています。
winevt_c gemを開発をした話
はじめに
Windows EventLogをRubyで取得するには元々win32-eventlog gemがありました。 このgemはWindows EventLogへ読み込みと書き込みができるものです。 ただし、文字コードに関してはCP_ACP(Windowsの初期コードページ)を使っていたため、日本語版WindowsではCP932(Windows-31J)の範囲内の文字列しか読み込むことができませんでした。
Fluent BitのGolang製のプラグインのDockerfileを作った話
はじめに
Fluent BitはFluentdファミリーを構成するソフトウェアの一つです。 Fluent BitはGo Pluginプロキシが提供されており、Golangにて共有ライブラリを作成することにより、プラグインとして振る舞わせることのできるインターフェースが提供されています。 この機能については、fluent-bit-go-s3とFluent BitのGo Pluginプロキシの話でも解説しました。
Fluent BitからGrafana Lokiに転送するには
はじめに
Fluent BitはFluentdファミリーを構成するソフトウェアの一つです。 Fluent BitはGo Pluginプロキシが提供されており、Golangにて共有ライブラリを作成することにより、プラグインとして振る舞わせることのできるインターフェースが提供されています。 この機能については、fluent-bit-go-s3とfluent-bitのGo Pluginプロキシの話でも解説しました。 Fluent BitのGolang製のプラグインのDockerfileを作った話にて突然fluent-bit-go-lokiプラグインが登場してしまっていたので、そのプラグインについての解説を書きます。
Firefox ESR60からESR68に移行するには
2019年7月9日に、Firefox ESR (Extended Support Release) の最新バージョンとなるFirefox 68.0esrがリリースされました。
フリーソフトウェアの法人向けサポートの一環で行った開発元へのフィードバックの事例紹介
当社の法人向けサポートサービスでは、企業のお客様がフリーソフトウェアを使われていて遭遇されたトラブルの解決や原因究明、文書化されていない技術情報の調査などを有償にて行っています。「特殊な労働力を提供してお客様の役に立ち、その対価としてお金を頂く」ということで、ビジネスモデルとしてはシンプルです。
GitLab Runnerを使ったサポートコストの低減
GitLabでCI/CDを行う場合は、GitLabに組み込みのGitLab CI/CDを使用できます。 GitLab CI/CDは、GitLab上のコミットを検知して、GitLab Runnerが指定されたジョブを実行するという仕組みで動いています。
Apache Arrowの最新情報(2019年9月版)
Apache ArrowのPMC(Project Management Commitee、プロジェクト管理チームみたいな感じ)のメンバーの須藤です。
SentencePiece・fastTextをEPELのパッケージを使って簡単にインストールできるようになります
はじめに
SentencePieceは、言語に依存することなく学習データから文章をトークナイズすることができるものです。 MeCabでは言語に依存した辞書が必要でしたが、SentencePieceは言語非依存なので、辞書が不要になります。 SentencePieceについて詳しくは開発者による記事があるのでそちらを参照されると理解がより深まるでしょう。
EPELでパッケージをリリースできるようにするには
はじめに
SentencePiece・fastTextをEPELのパッケージを使って簡単にインストールできるようになりますでEPELでパッケージをインストールできるようにしたことを紹介しました。 SentencePiece・fastTextを簡単に使えるようにすると嬉しい人向けの記事だったのですが、それを実現するまでにどんなことをやったのかは詳しく説明しませんでした。 今回はEPELでパッケージをリリースできるようにしたいという人向けの記事です。
他のチームの知見を活かす
はじめに
弊社では複数のチームがあり、それぞれのチームで日々案件をこなしています。 今回、あるチームで課題を解決した方法を別のチームでも使える可能性があるのでは?ということで、チーム間の情報共有を行う取り組みを始めました。
PostgreSQL Conference Japan 2019:Amazon RDS + Amazon EC2 + ロジカルレプリケーションを使った低コスト高速全文検索 #pgcon19j
2019年11月15日(金)にPostgreSQL Conference Japan 2019が開催されました。 私は、「Amazon RDS + Amazon EC2 + ロジカルレプリケーションを使った低コスト高速全文検索」という題名で、既存の技術を組み合わせて、なるべく楽に高速、高機能な全文検索ができる仕組みを紹介しました。
「Fluentd」のサポートサービスを開始しました。
2019年、fat gemをやめる
fat gemを簡単に作れるようにするgemであるrake-compilerをメンテナンスしている須藤です。過去にfat gemの作り方をまとめたこともあります。
FirefoxでInternet Explorerのwindow.open()周りの挙動を再現する
日本におけるFirefoxの法人利用の代表的なニーズは「Internet Explorer向けに作られた古いWebベースの社内システムがあるためにIEを捨てられず、社外のWebを見に行くためにFirefoxを使いたい」というものです。しかし、それとは逆のパターンとして、「IE向けに作られたWebベースのシステムをFirefoxで使いたい」という場面もあります。後者の場合にはIEとFirefoxの細かな挙動の違いが問題となることがあり、window.open() でウィンドウを開くときの挙動の違いもその一つです。
Apache Arrow東京ミートアップ2019 参加レポート
Apache Arrow 1.0.0の正式リリースを間近に控えた先週12月11日に、第二回目となるApache Arrow東京ミートアップが開催されました。 今回の会場は株式会社Speeeの六本木オフィスをご提供いただきました。O'Reilly本が並んだ書棚を背景に、シックな木目の家具で統一された会場で、とても素敵な会場でした。