2016年4月19日火曜日

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

2016年04月16日(土曜日)に Qt 勉強会 #34 @Tokyo を 株式会社 PTP のミーティングルームで開催しました。

簡単な自己紹介

今回の申し込み者数も18人。一名来なかった方もいらっしゃいますが、前回同様、ほぼ満員ですね。今回も初参加の方や、わざわざ愛知からいらっしゃった方もいてうれしい限りです。

たすくさんのThe Qt Company就職

これまで東京での勉強会を引っ張ってらっしゃった鈴木さんが、The Qt Companyへ就職されました。現在、事務所を探したり、人員を探したりをされているそうです。まだ組織として出来上がってはいませんが、今後の日本としてのアップストリームの活動が期待されます。
就職に伴い、アップストリームの側がユーザーコミュニティの運営に携わるのは避けようということで、勉強会の主導をhermit4はじめ現在の勉強会メンバーで引きついていくことになります。元々、お子さんが生まれたばかりで大変ということもあって、hermit4の方で告知や報告を担当しはじめましたので、特に大きく変わることもありませんけどね。

今後、日本でのイベント開催も年末までにはやりたいなという意向はあるようなので、その際はユーザー会としてお手伝いも募集する事になるかと思います。ぜひご協力の程、よろしくお願い致します。

もくもく勉強タイム

というわけで、その後は普段通り、もくもくと勉強タイムとなりました。途中で帰宅されて成果発表されなかった方もいますが、分る範囲でみなさんの成果報告まとめ
  • QMLのプロファイラと記述方法によるパフォーマンスの計測

    ドキュメントにはQMLについてこういう書き方は駄目ですよという情報がありますが、実際にその通り書いてみてプロファイルをしてみたそうです。 Resolving Propertiesについては、微々たる違いだそうですが、Property Bindingsについては、loop内で何度も参照されるのとtemporary変数を作るのとでは相当時間差があるとの事。なんでか速度が出ないとお悩みの方は、ドキュメントを読んで、ぜひプロファイルしてみて下さい。
  • qgroundcontrolを調べてました

    現在使っているドローン用のコントロールソフトの使い勝手が悪く、QGroundControlへの移行を考えているそうです。 最近のドローンコントロール系はQtで書かれているものも多いそうです。 本日は、ビルドが終了しデバッグができるところまでたどり着いたとの事。 QGroundControlは、iOS/Androidの実装もあるそうで、今後に期待したいところです。
  • 今日はQtを使って開発した製品を持ってきたのでデモしておきます

    計測器や電源の開発を行っている会社で働いていて、今回製品にはじめてLinuxとQtとを採用したそうです。 色々はじめてだったため、色々つまずく事もあったそうで、ずいぶん苦労されたようですが、無事に製品リリースしたとの事。QtのおかげてGUIについては楽にできたそうです。 はじめの製品こそ苦労したものの、次の製品開発の立ち上がりはうまくいっているようなので、今後が楽しみですね。
  • nVidiaの開発ボードでの作業を継続中です

    仕事柄、立体視関連をやっていて奥行き推定とかをやるそうなのですが、とりあえずカメラ位置調整ツールを作ろうとしています。 メーカーから提供されているQt 5.2が部分的に実装されているだけだったので苦労しているそうです。
  • Raspberry Piはじめました

    Raspberry piにQtを入れるところまでやろうと思ってましたが、色々必要な機材がない事がわかって借りたりしていたので、 今回はOSを入れたところで時間切れとなりました。 待ち時間の間、仕事柄組込みでQtを使っているので軽いインジゲータを実装していました。とりあえず2種類完成です。
  • QtModelingの調査をしていました

    今回はQtModelingを使ってみようとソースコードを入手してコンパイルしようとしていましたが、うまくいきませんでした。 どうやら、一部のコードでC++1zを要求しているようで、XCodeのバージョンが少し前の物なので対応していないことが原因の模様。 XCodeを上げるところからやらないと駄目ですかねぇ・・・ということだそうです。
  • Sailfish OSでBluetoothの日本語キーボード対応をしていました

    今回は2つ目標を持っていて、入手したSailfish OSの乗ったタブレッドでBluetooth日本語キーボードを使えるようにしたいのと、 FontManagerのSailfish OSへの移植をしたいと考えていましたが、後者まではたどり着きませんでした。 日本語キーボードの件は、設定ツールと呼び出している内容を調べたところ、設定項目が抜けているだけとわかりました。 設定ツールのQML内のリストにエントリーを追加したら設定できるようになりました。 日本語のキーでキーコードが対応していないものについてはシンボルを追加し、パッケージングを行い、OpenReposのリポジトリにアップするところまで行ったとの事。 Sailfish談義したくて来たって方に話しかけられっぱなしだったにも関わらずなかなか優秀な成果を出していますよね。素晴らしい。 なお、FontManagerは、実は朝木さんが実装したものだそうです。近いうちにSRAの会場も借りてみる予定なので、その時来られるといざというときは質問できるかも。
  • 制作中のエディタで日本語の単語移動を実装していました

    Qtでエディタを鋭意作成中なのですが、利用していたQPlainTextEditでは日本語の単語単位移動できないことがわかり対応していました。 最初は、QTextBoundaryFinderを使っていたのですが、カタカナ以外はうまく移動できないとの事。 調べた結果、QTextBoundaryFinderはUnicodeの規格に則って作られているのですが、日本語だとそれでは足りないそうです。 ICUは辞書も使い日本語の単語区切りができるので、ICUのコードを呼び出すようにカスタムして対応できたとの事。 問題は、辞書ファイルが存外巨大で、フットプリントが大きいということで、悩ましい感じですよねぇ。
  • Base64と戦っていました

    Base64はデフォルトでは+や/等のURL safeではない文字を変換結果に含んでしまうのですが、そのせいで数日ハマったとの事。 そこで、URL Safeに変換できるように修正しようと意気込んでいましたが、QByteArray自体には既にその機能があり、QMLから利用する際の atobが対応していないだけなことが判明。というわけで、atobにオプションを渡せるようにAPIを変更していたそうです。 なお、その後テストも書いてcommitしたよとのつぶやきがあるので、次期バージョンからは、QMLでもURL safeなBase64変換が使えるように なるかと思われます。
  • 作ったアプリのデプロイ方法を調べていました

    作ったアプリをどうやってデプロイしたものかということで、調査していたそうです。windeployqtを使えば簡単だよと聞いたけど、動かないそうで。 windeployqtは、必要なQtライブラリはかき集めてくれるのですが、残念ながらQtライブラリが必要なライブラリは探し出してくれないのです。 とりあえず、教えてもらった通りに、dllをフォルダにぶちこんだら動いたそうで、この後教えてもらった ドキュメントを読んでみようと思っているとの事。ただ、Go言語などに比べるとデプロイが難しくて面倒だなぁとのご意見も。 確かに、Qt自体のライブラリ数も多い上に、Qtが必要とするライブラリも多いですからね。Windows, Mac, Linuxともそれぞれ違いますし。 一応、Windowsについては、面倒を感じているのでバイナリを解析しながら必要なライブラリの一覧を作れるツールをhermit4が鋭意開発中なのですが、メインの仕事ではないのでだいぶ遅延しています。qmake本書きが落ち着いたらなんとかします。
  • いろいろ挫折していました

    先月に引き続きD-busを触っていました。もっとわかりやすいサンプルを作りたいと思ってがんばっていたのですが、想定した方法で実現できず挫折しましたとの事。その後、仕事の方で問題になっていた、Qt5.6からstackを連続で呼ぶと落ちるという現象を追いかけようと目標を変えたのですが、なんとこちらは再現せずという結果に。再現しなければ解決もできませんからねぇ・・・。色々挫折して終わったそうですが、そういう日もあります。めげずに頑張ってください。
  • Soft bodyの関係で、Bullet Physicsの調査をしていました

    やわらかbodyの物理演算について調査していたとの事です。お隣に詳しい方がいたので、色々話を聞けて、PhysXを使えばCUDAで物理演算してくれるらしくて、10-20倍位早くなるようです。これをQtから使えるようにするには、ちょっと工夫しないと動かないらしいという事までは理解しましたとの事。Soft Bodyだと計算に時間がかかってしまうので、GPUで演算できると早くなるのではないかなぁと期待しているそうです。
  • VLMCのリファクタリングをしていました

    GSoCに参加したいと思っていて、VideoLAN Movie Creator(VLMC)をSceneで実装されているものをQMLへ書き直すというのをやりたいと思っているそうです。ここ最近色々コミットしているのですが、今日はリファクタリングに明け暮れましたとの事。今後の活躍に期待します。
  • QtIFW本の続編のレビューをしていました

      理ログの理音伊織さんの新刊のレビューを続けています。実際手を動かしているところで、あとちょっとで完了予定です。 なお、内容は、コントロールスクリプトを使った自動インストールの方法となります。   当落発表はまだですが、技術書典に応募中なので、当選すれば6月25日に秋葉原で販売予定です。

懇親会

お借りしている部屋の掃除の後、懇親会へ。 今回は、いつものお店が空いていてすんなり入れました。The Qt Company Japanの現状を聞いたり、今の日本の技術について話したり、わいのわいのやって解散となりました。

ツイート記録

2016年3月21日月曜日

Qt 勉強会 #33 @Tokyo

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


簡単な自己紹介


今回の申し込み者数は18人。会議室が20人マックスですので、だいぶ一杯になってきました。残念ながらhermit4は遅刻しましたので、自己紹介は途中からしか聞けていませんが、今回は初参加の方がちらほらといらっしゃいました。



OSCの出展報告


先月行われたOSC 2016 Tokyo/Springの報告をしてきました。インフルエンザで急遽参加できなかったAuguestさんはずいぶん気にされていたようですが、大丈夫、無事に出展してきましたよと報告してきました。



スパイダーのデモ

今回は初参加の方も多いとのことで、会場をお貸し下さっているPTPさんのスパイダーという製品のデモが行われました。まだQMLが出たばかりの頃だったので、C++で作られているバージョンだそうですが、UIはかっこ良く、パフォーマンスもよく動いていいですよね、スパイダー。なお、PTPさんではQtプログラマーも熱烈募集中のようです。

成果発表


というわけで、その後は普段通り、もくもくと勉強タイムとなりました。


Qtのセットアップで終わってしまいました


一日前に届いたPCをなんとかセットアップまで終えて来られたそうなのですが、なんとインストールしたKitが足りていななかった事がわかり、Qtを再セットアップをしたところ、セットアップが終わらず・・・(他の方の成果発表中にセットアップが終わったようです)、こんなものを作りたいという案を取りまとめて終わったそうです。車が趣味の方で、車のデータを色々やって遊ぶ予定との事で、今後が楽しみですね。


サポートに明け暮れました


質問を受けてお手伝いがメインだったため、Qtのあれこれブログの「Qt 5.6.0リリース」の記事の作成にとりかかったものの終わらなかったとの事です。 とりまとめが楽しみですね。


コラージュ療法用アプリのメンテナンスを続けていました


背景画像を固定する機能を追加しました。あとは背景の台紙の色の選択機能とグラデーション周りの設定機能も追加しています。現在は、大きな画像の編集と保存時に時間がかかりすぎるので、マルチスレッド化しようとあれこれ挑戦中のようです。今月末には早稲田大学の方にお渡しするとのことで、最後の大詰めの作業のようです。 まだ原因のつかめない不具合がいくつか残っているということでそれが少し気がかりのようですが、早く原因が特定出来ると良いですね。


トラブルシューティング


前回参加した時に教えてもらった内容を実施していたのですが、Qtにバグがあるようで、先に進みませんでした。今日は、 VFBをX11で動かすことを教えてもらったので、今後はそちらを試す予定です。 ということで、苦労が続いているようです。良い解決策が見つかると良いですねぇ。


Enterprise Architectureの吐き出すモデルをパースするツールをQtで作れないかなと調査中


久しぶりに仕事を離れた何かを作ってみようかなと、EAで生成したモデルをパースするツールの作成の検討中。関連で調査している際にQtModelingというのがある事を発見。なお、どうやらQt CreatorにもModel Editorというプラグインがあるようですね。


自作の文字幅チェックツールをLinuxで作っていたものをWindowsに移植してました


今日見せてもらったスパイダー(PTPの製品)のUIに触発されて、ちょっとアニメーションチックに動かしたいと思って、朝木さんのご協力のもとボタンがくるくる回るようになりました。 ということで、ボタンを押すとくるくるって良くまわってました。 なお、QFontMetricsは、フォントに対象言語の無い場合のfall-backを設定した場合に文字幅を正しくだせていないようで、注意が必要との事でした。お使いの方はご注意下さい。


D-busの勉強をしていました


しばらく名古屋に帰っていましたが、このたびPTP社に転職して戻ってきたとの事です。 今回は、QDBusの勉強のために、色々試していたようで、とりあえずQDateTimeのデータをアプリケーション間で受け渡し、3つのアプリでデータを同期するサンプルを作成されていたようです。 PTP社での活躍頑張って下さい。今後、会場係とか、色々よろしくお願いします。


FXアプリの検討中


最近趣味でFXを始めたのですが、いきなり5万負けてしまって、なんとか勝てるようになるアプリが作れないかなぁと検討中との事です。 方法としてはアメリカの発表を調べる方法とチャートから傾向を読む方法があるようですが、よく分からないのでチャートを読む方法を考えているそうで、とりあえず、チャートの取り込み機能部と、レートの上がり下がりでアラートをあげる機能を実装したとの事。現在は、移動平均の算出方法を調べてみているところだそうです。 儲かったら、美味しいおやつの持ち込み期待してますとか言っておいてみよう。


AndroidアプリをQt化してiPhoneで動かしたい


以前Android向けに自作したアメリカの服サイズを日本のサイズに変換するツールをiPhoneでも動かしたいのでQtでiPhoneアプリを作る環境構築をしていたとの事です。 なにやら苦労されていたようですが、無事に環境は整ったようですので、移植頑張って下さい。


Qtの5.7のビルド中です


Qt Quick Controlsの最新版を試してみたいと思い、ソースコードのzip版をダウンロードしたのですが、ビルドが出来なくて悩んでたとの事。zip版はWindowsで文字コード等の問題があって、ビルドできなかったそうで、tar.gzの方をダウンロードしたらビルドが始まったとの事です。 なお、ビルド待ち中に色々みていたそうですが、1.0と2.0はずいぶんと作るも違っているらしいです。1.0までは部品一つが結構複雑に作られていたものが、現在はずいぶんシンプルになっているとのことで、コレならパフォーマンスも期待出来るのではって事なので、興味深いですよね。 Ioriさんあたりが、さっくり同人誌で新しいバージョンについて書いてくれないかなぁ・・・。


先月に引き続き時計アプリを作成しています


お気に入りのPalmの時計アプリの移植を続けているとの事です。今日はカレンダー部分とタイマーを作成していたとの事で、着実に先に進んでいるようですね。 最終的にはRaspberry Piにつないだ2.8 inchに表示するそうなので、完成が楽しみです。


Qt+OpenGL+Bulletのビデオを見ながら勉強していました


以前、名古屋の勉強会で行われたビデオを見ていたそうです。だいぶ後になってわかったのですが、かなり古い情報だったらしくて、Qt3D等も現在とは全く違うものだったようです。 ちなみに、この頃の情報だとBulletがQt5に入るという事で、実際に一時期入れられようとしていたようなのですが、現在は抜かれているようです。 Qt3D自体を大幅見直ししている途上ですから、将来また導入が検討されるといいですよね。


Android上でQMLの動作確認していました


昨日環境を整えたばかりだそうで、QMLのアプリのピンチイン・ピンチアウトがきちんと動作するのか確認していたそうです。 ちゃんと動いていたようで何よりです。


自作のメディアプレイヤーを作成中


Androidで動かす前にPCで動かしていたそうです。今日はSQLiteに書かれている情報の読み込みとMP3の音が出せるところまでは行けたのですが、タイトルが取れず調査中との事で、うまく行くと良いですね。頑張って下さい。なお、本当はゲームを作成したいと思っていたのですが、ゲームの方は、QMLの課題にぶち当たってしまって現在止まっています・・・とのことで少しみんなでコード見ていました。設定をグローバルで行っているのが問題で、個別に持たせるべきとの話でした。なお、アドバイスとして、QMLでは、バインディングと代入の違いは面倒くさいので、その辺りを気をつけてくださいとの話となりました。


次の製品もめでたくQtを使えることになったので、それに向けての準備をしていました


というわけで、製品の紹介等をされていましたが、どこまで書いて良いのか確認していないので割愛しますね。 今回はQtもLinuxも初採用との事で色々苦労されていたようですが、実りがあって何よりです。次の製品もうまくいくと良いですね。


スパイダーの再生エンジンの設計をがりがり書いていました


どうやら、PTPの会場係は「仕事」として会社に認知されたそうで、休日出勤扱いだそうです。お世話になっています。 でも、休日出勤だからか、お仕事の方をされていたようで。ご迷惑をおかけしてすいません。会場についてはSRAさんも使えそうということで、一社の負担がすくなくなるよう、今度お試しで利用させてもらう算段をつけていますので、コレからもどうぞよろしくお願いします。


Qtのパッチを作成していました


ビルド時にconfigureの--no-guiが例によってうまく動作しなくなっていたそうで、パッチを作成していたそうです。Qt 5.6と 5.7で作りが違うそうで、2種類パッチ作成ということで、コントリビュートおつかれさまです。僕もそろそろQtにもパッチ書くようにならないといけないかなぁ・・・。あとは、伊織さんの同人誌のレビューに手を付け始めました


伊織さんの同人誌のレビューを開始しました


The Art of Qtの第三弾の作成に取りかかっているとの事で、今回はインストーラの自動インストール周りのお話です。これは興味のある人結構いるでしょうから、レビュー頑張っておきます。


懇親会


 懇親会は11名。こちらもだいぶ参加者が増えてきましたが、今回はいつもの鬼へいがいっぱいでして、2件回って3件目のお店に入りました。
そらみみさんのドールのお話と、コミケの話題とで盛り上がって、1次会終了。hermit4は確定申告のつかれと溜まった家事とで疲れ気味だったので、一次会で撤収させていただきました。

というわけで、今月も皆それぞれもくもくとQt関係の勉強を楽しみました。
また来月もよろしくお願い致します。


2016年2月28日日曜日

ガルパンはいいぞ

なんて話をつぶやいたせいか、おすすめされたhermit4です。

まぁ、ただのアフィリエイト記事ですが、30% Offらしいので、買うまでに至って無かったけど映画見ちゃってやっぱり欲しくなったあなたは、今がチャンスなのかも。
ガルパンはいいぞ。 P.S. 3/4追記: 明日が誕生日なので、全部購入し、2日かけて夜更かしして全部見直したのはここだけの秘密です。