Qt 5 の未来は明るいブログ

QtCon に参加しました 3日目

Published: 2016-09-10 / Last modified: 2016-09-10

Cultivating Empathy

早口で聞き取り辛かったし、内容もそんなに興味深いものではなかった気がしてならない。

High-DPI Qt

High-DPI Support in Qt 5.6 やそれ以降の話の解説がありました。DPI の違う複数ディスプレイの扱いとかが面倒くさそうでした。

集合写真!

Continue reading...

QtCon に参加しました 2日目

Published: 2016-09-09 / Last modified: 2016-09-09

Day 2

いよいよ本番。

開会の挨拶

去年までは「Qt Contributors' Summit」という名前で Qt の開発者が集まって今後の Qt の開発についての議論をするイベントでしたが、今年は KDE が20周年、VLC が15周年、Free Software Foundation Europe も15周年ということで、4つのオープンソースコミュニティの合同イベントになりました。

How Social Activists are Using Open Data

オープニングキーノートは SOZIALHELDEN e.V.Raul Krauthausen さんによる「社会活動化がオープンデータをどう活かすか」という話でした。

ペットボトルのデポジットを地域の寄付に変えるための仕組みをスーパーマーケットなどに展開した話や、様々の施設が車椅子(やベビーカーなど)でのアクセスしやすさを地図上に可視化した wheelmap.org の話、各施設のアクセスのしやすさを向上するための wheelramp.de などのプロジェクトや、駅などのエレベーターがちゃんと動いているかを調べられるオンラインサービス brokenlifts.org などの紹介をして、オープンなデータを活かす方法や、データをオープンにする働きかけなど、非常におもしろく、素晴らしいキーノートで、拍手喝采でした。

Continue reading...

QtCon に参加しました 1日目

Published: 2016-09-09

2016年9月1日から4日間、ドイツのベルリンで開催された QtCon に参加してきました。

うっかりでひどい目にあった

成田からブリュッセルで乗り換えをしてベルリン空港についたのが前日の夕方5時ころ。飛行機から降りて、ぼけーっと前の人について行ったら、手荷物を受けとるのを忘れて外に出てしまいました。

忘れ物センターで4時間くらい粘ったんだけど全然荷物を探し出してくれないので、ブリュッセル航空のカウンターに行って、説明をして、「担当者のあいつ全然荷物見つける気無いみたい」って言ったら「このメモ見せたら30秒で出てくるから急いで行きなさい」という心強い言葉をいただき、なんとかなりました。

ホテルについたら日付が変わりかけていました。半分自分が悪いんだけど、半分は運が悪かったw

Continue reading...

New configuration system

Published: 2016-08-20 / Last modified: 2016-08-20

この記事は、2016年6月23日に Qt の Developer メーリングリストに投稿された New configuration system というメールを適当に訳したものです。

やぁ、

すでに知っている人もいるかもしれないけれど、最近俺は Qt の新しい configuration システムを開発してるんだ。一番最初の大きな変更が昨晩マージされたから、このタイミングでその変更と今後の予定について説明するよ。

新しいシステムのゴールは2つ。

1つめは、Qt のビルドのカスタマイズについての要望が、特に組み込み系のユーザーから非常にあがっているんだ。多くの場合は容量に関する制限で、Qt から製品開発に必要のない機能を外すことができないか?って話。昔はそういう仕組みが Qt にあったんだけど(詳しくは src/corelib/global/qfeatures.txt を見てね)configure スクリプトには完全には組み込まれていなくて、Qt 4 の時代からそんなにちゃんとメンテナンスされてなかったし、いろんな制限があったんだよね。この仕組みを新しいシステムでそれを改善できたらなぁと思ってる。

2つめは、長い間、2つの別々の configure システムがあったこと。Unix 向けのモンスターのようなシェルスクリプトと、Windows 専用の Qt で作ったやつ。Qt の設定まわりを変更しようとするとだいたいその両方を変更する必要があって、へんなバグの温床になってたんだよね。メンテナンスのしやすさは結構ひどい感じだった。

というわけで、新しいシステムを作ることにしたんだ。最初に言ったように、最初の(でもでかい)パッチ(https://codereview.qt-project.org/#/c/149202/)が昨晩マージされた。これは設定の定義をシェルスクリプトの中から(configure.json という名前の)json ファイルに持っていくもので、qmake にこの json の処理をさせる予定。今の段階では Unix のみが対象で、Windows はもうしばらくは configure.exe が使われます。この変更では古いシェルスクリプトと新しいシステムで(可能な限り)同じ設定になっているはずなので、もし今までどおり configure を動かして、動かなくなっていたら俺に教えてね。

新しいシステムの詳細についてはもう一個別のメールを送るので、興味がある人は読んでほしい。

Continue reading...

QtMultimedia の Linux でのカバーアート対応

Published: 2016-07-24 / Last modified: 2016-07-24

某所で音楽ファイルのメタ情報に含まれているはずのカバーアート表示されないんだけど?と言われたので「GStreamer: support cover art」というパッチを作ってみました。

メタデータのうち簡単な型のデータについては Qt の型に変換して対応していたが、カバーアートは GstSample という少々高度なクラスだったので未対応だったようだ。

前職でマルチメディア関係の仕事をしていたせいか、GStreamer とも戦える身体になっていた。嫌いだけどね。

QtQuick の base64url 対応

Published: 2016-04-18 / Last modified: 2016-04-18

Qt 勉強会 #34 @Tokyo で試行錯誤をしていた Qt.atob()Qt.btoa()base64url 対応が形になったので Qt 5.8 向けに QByteArray::Base64Option support for Qt.atob and Qt.btoa というパッチを送りました。

Base64url Encoding とは?

先日とあるウェブサービスの Google+ のサインイン対応 をしていた際に JWT 形式のレスポンスを Qt.btoa() でデコードしようとして上手くいかないケースがありました。

通常の Base 64 では A-Z、a-z、0-9 と + と / が使用されますが、+ と / は URL では特別な意味を持つため、別の文字(- と _)を使用するようにし、最後の == もなくしてしまおうという形式で JWT ではこの Base64url Encoding が採用されています。

Qt の Base64url Encoding の対応状況

2013年の秋に「 Base64: Implement the "base64url" encoding and the stripping of '='」というパッチで QByteArray::toBase64QByteArray::fromBase64 で Base64url Encoding に対応していました。

Continue reading...

The Qt Company に入社しました

Published: 2016-04-01 / Last modified: 2016-04-01

1月末で前の会社を退職して2ヶ月ほど経ちましたが、The Qt Company で働くことになりました。

今まではダウンストリーム側からみなさんと一緒に日本の Qt を支えてきましたが、今後はアップストリーム側から日本のみなさんを引っ張っていければと思います。

詳しいことはまだ言えない(というより全然決まっていない)のですが、日本で Qt のビジネスを拡大するための仕事をエンジニアとしてサポートする予定です。

これまで 日本 Qt ユーザー会 を通じて行ってきた活動からは一旦手を退きますが、勉強会などはユーザー会のメンバーが引き続き開催を継続する予定なのでご安心ください。私もいち参加者として、たまに遊びに行きたいと思っています。

今回 The Qt Company に入社することができたのは、Nokia を退社して以来、コミュニティという立場で Qt に関する活動を行ってきたことの一つの成果です。一緒に頑張ってきたみなさん、参加してくれたみなさんにこの場でお礼を言いたいと思います。本当にありがとうございました。

立場は変わりますが、やりたいことは特に変わらないので、引き続き日本での Qt の普及や、Qt を使った便利なアプリケーションや製品の開発に貢献できればと思っています。

PTP を退職しました

Published: 2016-02-04 / Last modified: 2016-02-04

PTP 入社の経緯と退社までの流れを整理しました。どっかに書いたら忘れてもいいよね?w

2012年10月 Nokia Japan を退職

Qt 冬の時代の到来?

Nokia による Qt(Trolltech) の買収からはじまり、Symbian 対応、MeeGo での採用、MeeGo のプラットフォームを様々なデバイスに採用してもらえるような活動などを通じて、結構アグレッシブに Qt を押していましたが、2011年2月の Nokia の戦略転換により Qt ブームの終焉を迎えました。

それまで(実力以上に)頑張っていた反動により、これからは Qt にとって我慢の時期が続くんだなぁと思いました。

これから数年何をしようか

それまでは Qt の中の人としてアップストリーム側から Qt を広める活動をしていましたが、これからは真逆の立場に立って Qt を広める活動ができたらいいなぁと思いました。

というわけで当時2つ目標を立てました。

Qt のコミュニティ活動を盛り上げよう

当時はちょうど日本各地の Qt 勉強会が統一されたりしていた時期でした。冬の時代の到来に伴ってそれまで関東 Qt 勉強会を主催していた方のモチベーションも下がっていたため、その勉強会を私が引き継ぎました。

そして、勉強会で色々な人と議論をし、今までの発表形式の勉強会をやめ、もくもく(とそれぞれ好きなことをやる)形式の勉強会にすることと、毎月定期的に開催することを決めました。

Qt を使ってすごいものを作ろう

SRA をはじめ、当時 Qt のビジネスをしていた日本の会社にもお誘いいただいたのですが、そういう役割は朝木さんにお任せして、私は「Qt 5 で作ったすごい UI/UX のなんかの製品を一人でも多くの人に使ってもらえる仕事」を選ぼうと思いました。

会社の安定性とか待遇の面はほとんど重要視せず、失敗するリスクが高くてもいいので「うちもこんなすごい UI/UX を(Qt5 で)作りたい!」と思ってもらえるような製品をとにかく最短で世に送り出せそうな会社を探して、PTP という会社で働くことにしました。

Continue reading...

Qt 勉強会 #30 @Tokyo 開催しました

Published: 2015-12-20 / Last modified: 2015-12-20

2015年12月19日(土曜日)に Qt 勉強会 #30 @Tokyo株式会社 PTP のミーティングルームで開催しました。

簡単な自己紹介

今回は参加者が10人。大学生の方が1名、女性の方が1名いらっしゃいました。

おめでとうIoriさんQtチャンピオン

ということで、(本人不在でしたが)みんなでお祝いしました!

詳しくは Qt Advent Calendar 2015 19日目のエントリ Qt Champions for 2015に選ばれました! をご覧ください。

Continue reading...

Qt 勉強会 #29 @Tokyo 開催しました

Published: 2015-11-22 / Last modified: 2015-11-22

2015年11月21日(土曜日)に Qt 勉強会 #29 @Tokyo株式会社 PTP のミーティングルームで開催しました。

簡単な自己紹介

今回は参加者が12人。大学生の方が1名、久しぶりに参加の方が数名いらっしゃいました。

おやつを食べながらもくもくタイム

自己紹介の後は自由時間ということで、各自自分のやりたいことを進めながら、質問があったり困ってることがあったりしたらみんなで相談にのるような形で進めていきました。

Qt Advent Calendar 2015 の宣伝と協力のお願い

2014年大好評だった Qt Advent Calendar を今年もやることにしました。どなたでも、どんな内容でも大丈夫ですので、是非今年もみんなで楽しくクリスマスを迎えましょう!

OSC の報告

10月末に開催された OSC Tokyo 2015 Fall の簡単な報告をしました。

Qt World Summit 2015 の報告

10月5日から3日間、ドイツのベルリンで開催された Qt World Summit に参加された方からイベントの報告がありました。

セッションの動画もすでに公開されているので、興味のある方は是非ご覧ください。

Continue reading...