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日かけて夜更かしして全部見直したのはここだけの秘密です。

2016年2月27日土曜日

OSC 2016 Tokyo/Springに出展しました

どうも、最近は日本Qtユーザー会のご報告ばかり書いている気がするhermit4です。

昨日から二日間、明星大学日野キャンパスの方で行われた、オープンソースカンファレンス 2016 Tokyo/Springに、日本ユーザー会として出展してきました。

今回は、いつものメンバーはお子さんが生まれたり、結婚されて週末活動が難しかったり、無事ではないけど生きてますって状態だったりと、メンバーが圧倒的に少なく、二日間3名と少しの時間経立ち寄って手伝って下さった1名の4名で切り盛りしていました。

初日は、いつものiPad mini, iPod touch, Nexus5, Nexus7の上で動くデモと、Macで動いているQt Chartのexampleを展示しました。


二日目は、OpenGLの回転制御のデモも展示していただきました。




多くのツールが3Dモデルの背面を表示させた状態から回転をくわえるとおかしな回転をしてしまう事が多いそうなのですが、それを克服し360度どうまわしてもおかしくならないように修正されているそうです(3Dはさっぱりなので、どのくらいすごい事なのかは不明なのですが)。

ついでに、先週の勉強会後の懇親会で、ガルパンおじさんによる洗脳を受けてしまったため、うっかりガルパンを見てしまい、戦車もまわしてみたくなりましたと、戦車のモデルも探し出してきてくるくるまわしていました。


カメラの位置を考えてあげると砲身が前に来た時の迫力が出るんですよ〜と熱く語る姿はすっかりガルパンおじさんですね。見に来て話をされる学生さんも、先週ガルパンはいいぞって言われてみてしまって、戦車まわしてみたくなりましてという話がでると、顔をほころばせながら聞いているのが印象的でした。ガルパンはいいですねぇ。

人が少ない時間帯は、現役高校生とランバート反射をアニメ向けにカスタムしたいと考えている回転大好きな2人組は、良い式が無いかと数式談義に。おお、コレで良いかもというところで、まって、こっちの方が良いかもしれないですと、白熱中。学生さんの数人が興味深そうに数式の出てる画面に熱い視線を送ってましたが・・・Qtのデモより目立つとか・・・。

午後からは、小さなお子さんを連れた方が結構見物にきていました。どうやら今日は、明星大学でちびっこドッジなるイベントが行われていたようで、お父さんが怪しげなガジェットを目をきらきらさせながら眺めているのを首を傾げながら見ている女児というシーンも。一応、子供の目にもとまりそうな惑星をくるくる回すサンプルも展示に追加してみました。


が・・・残念ながらちびっこたちは、ぬいぐるみのある展示とか、体の動きに合わせて音のするガジェットの展示に夢中。そうか、宇宙はまだ早すぎたか・・・。
今日は、明星大学の入学前教育という高校生さんたちも大量に部屋につめかけたため、一時あふれんばかりの感じでした。

レイアウト的には人の流れから少し外れる場所でお客さんも少ない方だったのでしょうが、少人数で切り盛りするのは初めてだったせいかぐったり。次回は何か音の出そうなものも用意したいなぁなんぞと思いつつ、なんとか二日間、勉強会にぜひ遊びにきて下さいと、出来るだけ笑顔で話しかけて終わりました。

ちなみに、一緒に展示してくださった方に、最初はひげ面で怖い人かと思ってましたと言われて、できるだけ笑顔で居たつもりですが、もし引きつったひげ面にQtはいいぞ!って言われて怖かった人がいらっしゃったらごめんなさい。笑い慣れていないもので。

今回は、人数が少なくて他のブースはほとんど回れず、疲れもあって閉会式もパスして、みんな現地解散となりました。戦利品は、少しだけ抜け出して仕入れた書籍数冊とポスターが一枚。


「君、いい腕をしているな」じゃなく、「貴様、いい腕をしているな」だろっていうTLでのツッコミの会ったポスターですが、どこかに飾っておきたいなと思います。

なお、戦車は、いずれはガルパンに埋め込んでも遜色のないくらいにぬるぬる動かしてみたいとのことで、次回の展示までには重みを表現出来るように動かせるようにしたいと意気揚々のようですので、楽しみにしたいところです。


2016年2月22日月曜日

Qt 勉強会 #32 @Tokyo に参加しました

2016年02月20日(土曜日)に Qt 勉強会 #32 @Tokyo を 株式会社 PTP のミーティングルームで開催しました・・・という報告は、いつも鈴木佑さんが行われているのですが、



という事があったため、色々な人から飲みのお誘いがあるそうで


というわけで、今回もhermit4からご報告ということで


簡単な自己紹介


今回の参加者は15人。論文が落ち着いたので久しぶりにこられた方、最近仕事は管理やドキュメンテーションが多くてコードを書きたくてこられた方、飲み会続きでグロッキーな方色々ですが、みんなでモクモクしてました。

オープンソースカンファレンスのお手伝い募集


来週、26日(金)・27日(土)に明星大学で行われるオープンソースカンファレンスにQtユーザー会も出展予定のため、お手伝いの募集をしました。
今回は、予定が空いている人が少ないようでちょっと大変かもしれませんが、お手伝いに名乗りを上げて下さった方は、どうぞよろしくお願いします。



成果発表


Qtのスレッド・メモリ使用量の調査をしていました


Qtの利用するリソースについて調査していたそうです。簡単なCUI/GUI/QMLのアプリケーションを立ち上げてはリソースモニターでみていたそうで、CUIはスレッドは1つ、GUI/QMLは、時間経過と主にスレッド数が推移するそうです。GUIと比べるとQMLの消費メモリ量が多いとの事で、大きめのアプリを作った時にどうなるのか気になる所ですね。

QMLで作成したアプリのデバックをしていました


大学で研究されている方に成果をお渡しする事になっているそうで、あれこれやっているそうです。タブレットで利用して必要に応じて縦横を切り替えるようにしたそうなのですが、縦から横への回転は速いのに横から縦に戻す時に妙に時間がかかるそうで。
勉強会で、プロファイラの話を聞いて、この辺りになにかありそうという所まではいったようなのですが、原因までは突き止められていないようです。
諸々やっていました

作成中のルービックキューブアプリを公開に向けて手直ししました


cmakeについては教えてもらったチュートリアルで少しずつ勉強中
今日の本命で現行のランバート反射のアルゴリズムに異論を唱えている方の動画を見ながら自分でアルゴリズムを考えてみるというを実行中。実際に影を当ててみながら検討中とのことです。
なお、最初は有償にしようかと悩んでいたルービックキューブはバイナリ無償公開として、ソースコードについては、欲しいという人がいたら考えようかなっという所だそうです。楽しみですねぇ。

Qtのスタイルシートについて調査し


Qtはスタイルシートを使ってデフォルトのGUIをカスタマイズできるのですが何がどこまで変えられるのか調査してたとの事です。
Qtとしてはあまりメンテナンスされていない部分で、QStyleを使った方が良いというコメントも出ましたが、みんな割とちょっとした所で使ってみてる人がちらほらと。
hermit4も、ちょっとした所を動的に変えたい時に使ってたりします。

QMLでグラフを表示する部分を実装していました


先月はBluetooth通信部を実装していて、今月はそのデータをグラフ化する部分に着手とのことで、着々と進めていらっしゃるようです。職場ではQtは少数派らしいので、ぜひ頑張って欲しい所です。

自作のテキストエディタのデバック中です


JavaScriptでプラグインを作れるテキストエディタの開発の続きだそうで、現在はハイライトの処理のデバック中だそうです。他のエディタの言語ルールを利用できるようにしている部分の処理がなかなか複雑だそうで、バグが取り切れて居ないとの事。
有償を検討しているそうですが、近日中にはリリースしたいとの事で期待したいです。

NVIDIAのK1にCUDAのささっているボードと格闘中


しばらく寝かせていたボードで、車載向けのSOCであるK1にCUDAの刺さっているものについて、qt.ioのブログに色々書いてある内容をなぞりながら、使ってみようと格闘して居たとの事。ブログの方法はCUDA部分もqmakeでなんとかしようとしているのですが、他の方からCUDA部分はEclipseでライブラリ化してしまってQtアプリとはリンクするようにする方が楽ですよとのコメントがありました。

QLocalServerの使い方を学習していました


QLocalServerの使い方を復習していたとの事です。昔使った際は、不意に落ちるとLinux/Macではテンポラリファイルが残って使えなくなるためそこで利用を断念していたそうですが、現在はQLocalServer::removeServerが用意されて解決できるようになっていたとの事です。

QWebChannelについて調べていました(*QWebSocketじゃなかったので訂正)


まずはSlackでSibukawaさんが報告されていたGoとQtを密結合するためのLocalSocketというプロジェクトのドキュメントに見つけたtypoのpull requestを送った後、QWebChannelについて調べていたとの事です。用意したHTMLを開いたブラウザとQtアプリケーション間で通信ができることを確認した後、GoogleMapを表示したQtアプリからマップの移動を検知させる仕組みを作りたい・・・・と思ったのですが、うまく行かずにあれこれやっていたとのことです。
hermit4もQWebChannelはなかなか興味深いので今度使ってみたいなと思ってます。

ラズパイで動く時計アプリの作成中です


もともとPalmで動いているお気に入りのアプリがあったそうなのですが、ラズパイでも使いたくてラズパイ向けに一から実装中との事です。少しずつ機能を増やして行く予定とのことで、完成が楽しみですね。

論文作成用のグラフ出力ツールを作っています


論文にのせるグラフを簡単に作成できるようにしたいとQtアプリからPythonのライブラリを使って簡単にグラフを作成出来るツールを作っているそうです。もう実際に動作していて、論文に使うグラフを作成したそうで、公開する予定もあるそうで、非常に楽しみですね。

go-qmlの勉強をしていました


go-qmlをやってみようと簡単なお試しをしていたとのことです。その他、QtCreatorの見た目を変更したいと思ってCSSと格闘中との事。

Konquerorのカスタムのために調査中


最近のブラウザはセキュリティや変なサイトを開いた時のハングアップを防ぐためにタグを開くたびに内部的には新しいプロセスを使い、表示だけを一つに見せていますが、Konquerorは古い実装のために1つのプロセスになっているため、その辺りを直したいと勉強中との事です。
Qt4は、QX11EmbedWidgetがあったのですが不具合もあってパッチを本家に投げたりしていたのですが、Qt5では無くなってしまっている事もあって、他の方法での実装を検証中との事です。

GoogleDriverのAPIで遊んでいました (*OneDriverはhermit4の記憶違いです)


今日は特に何も考えずに来てしまったので、Google DriveのAPIで遊んでいましたということのようなのですが、実は発表の最中にMac Book Proがクリックを受け付けなくなるというトラブルが発生していてよく聞いてませんでした。ごめんなさい。

hermit4はというと


商用ライセンスを使って最新のQt Chartを試してみていました。
Qt 5.7からはQtにGPLライセンスで統合されるとの事で、現在、コードは既に公開されています。商用ユーザーへの優位性を残すためか、残念ながらLGPLにはならないので、GPLを採用しない人には使えませんが、GPLを使ったアプリではちょっとおしゃれなグラフの作成を楽しめます。
なお、オープンソースカンファレンスでは、GPLでソースが公開されていますので、商用版でビルドしたexampleですが動かしているのをお見せしようかと思っています。気になる方はぜひQtブースにお立ち寄り下さい。

2016年1月18日月曜日

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

2016年01月16日(土曜日)に Qt 勉強会 #31 @Tokyo を 株式会社 PTP のミーティングルームで開催しました・・・という報告は、いつも鈴木佑さんが行われているのですが、めでたい事に、鈴木さんは先日パパさんになりまして。


今日まで奥様のご実家のある北海道にいらっしゃるので変わってご報告します。

(2016/01/18 たすくさんの漢字が間違っていて訂正しました。大変失礼いたしました)

簡単な自己紹介


今回は参加者が15人。半年ぶりの方、1年ぶりの方、炎上中のプロジェクトに居ながら女性の新人さんを引き連れてきて下さった方、無事留学が決まった現役高校3年生等、色々な方がご参加下さいました。

もくもく&成果発表


今回もいつもの通りのモクモク勉強会。

QWSでおこっている問題の調査をしていました

組込みでQt4.8を使われていて、マウスカーソルを消した所、緑のゴミが画面上に表示されてこまってるということで、調査をされていました。動的に消すと色々問題がおきそうで、カーソルを無効化してQtをビルドし直すのが一つの解決策かもというのが今日の成果との事です。解決すると良いですね。

KDEのKonqueror周りに手を入れようと作業に着手しました


KDEをビルドするためQtのビルドをしましたが、Qtのビルドで終わってしまったとの事。ぜひそのまま頑張って下さい。


Qtでテキストエディタを作成中です


JavaScriptでプラグインを作れる部分を実装中です。Node.jsのイベントをQtのシグナルとスロットの仕組みとつなぐためJavaScriptからQtの側を呼び出す処理を実装するようV8のAPIをいじってました。

東芝のFlash Air用クライアント作成中です


Flash AirのサムネイルからローカルにDrag And Dropでコピーする部分の処理を実装していました。ただ、リリースビルドだと動かない事が発覚したので、帰宅したら調べてみます。

ロボコン向けに諸々作成していました


という話をされていましたは、突然手元のMacが堕ちてあたふたしていたので詳細は聞き逃しました。ごめんなさい。

アプリケーションの国際化対応のための機能について調べていました


仕事でやっている作業の一貫でQtの翻訳周りのツールを使ってみていたとの事。動的な切り替えはまだ試せていないものの、かなり便利な印象との事です。

仕事用のデータベースの作成を行っていました


仕事はフィールドサービスエンジニアなのですが、欲しいアプリを組んでもらえないので自分で始めたとの事。普段はアメリカ在住でたまたま戻ってきていたので、立ち寄ったとの事で、来週にはアメリカに戻ってしまうとそうですが、わざわざ貴重な一日を使って来て下さってありがたい事です。

ルービックキューブアプリの続き


先月に率い続き、ルービックキューブの作成を続けていました。見た目をかっこ良くした後、スカイボックスを使って背景をつけようとしたのですが、なぜかうまくいかず・・・残念。

スクリーンショット機能の実装


フレームバッファの変更を検出してPNGに変換した後QMLに設定する所まで出来上がりました。その他QScriptEngineについて調べていました。

独自ボードとAndroid間のBluetooth通信と表示を実装してました


Bluetooth経由で受け取ったデータをQMLでグラフ表示する機能を実装していました。PCで作ったものがそのままAndroidでも動くので良いですとの事。色々な機能が実装され本当にいい感じですよね、最近のQtは。

コラージュソフトの手直し中です


ここまで作ってきた開発版をベースに改善方法を模索中との事です。
もうすぐ本業は定年との事ですが、コラージュ療法ソフトの方はこれから本格的に大学の方と協力して色々やっていかれるそうで、悩みながら模索中のようです。

OpenCVとOpenCLの相互運用サンプルのプログラムを動かしていました


ほっとくとOpenCLの側のバッファが取れなくなって落ちてしまうので、本当にGPUを使ってるのかも含めて怪しいので調査していました。ただ手元の環境ではIntelのツールが動かず、帰宅後に別の環境で調べてみるつもりです。
本当にやりたいのは、メニューを作ったりとかQtを使った別の事なので、まだまだこれからのようです。どんなものを作られるのか興味津々です。

他の方々のやってる事を聞いてました


今回はつれられてきたので、特に何も考えてなかったそうで、他の方々のやっている事を聞いたり、簡単な事をやってみたりしていたそうです。ぜひ次回はやりたい事を見つけてもらえるといいなぁ。

ステートチャートを簡単に書けるようにするツールを作成中です


ステートの遷移をGUIで視覚的に作っていけるツールだそうです。生成したステートはQMLとして保存でき、そのままQMLアプリに埋め込めるので、手でガリガリ書くより生産性が高いそうです。ついでに、Unityのゲームも手を付けているとの事でUnity向けのExport機能もほぼ実装出来た所との事。
 Githubで公開されているので、ぜひ触ってみて下さい。


ということで、皆さん色々やってらっしゃいました。
隠者の方は、qmakeについて、相変わらずこそこそと調査継続中。
本にしたいなぁと思いつつ、自分の中でどう説明していったらいいか構想中です。

2015年12月10日木曜日

Qtユーザー会のご紹介

Qtユーザー会、おやつ部部長のhermit4です。Qt Advent Calendar 2015もついに10日目となりました。

昨日は、informationsea さんによる「Windows + Visual Studio で Static Link できる Qt をビルドする」でしたね。GPLで公開アプリケーションをdll使わずに動かしたいケース、たとえばdll自体をインストールするインストーラのようなケースではstatic link版は非常に役に立ちますよね。

さて、本日なのですが、残念ながらエントリのないまま、日も暮れてきましたので、何か書こうかと思い立ちました。ただ、ちと持病の皮膚病治療で紫外線治療受けて、背中が強い日焼け状態・・・というか水ぶくれできているので、ちょっと失敗してやけど状態的な感じで集中力もないので、本日は技術ネタではなく、コミュニティの紹介ということでお茶を濁しておきます。

本日は技術ネタではないので、ものすごく久しぶりに自分のブログに投稿しておきます。

Qtユーザー会とは

Qtユーザー会は、Qt の日本での普及を目指すために、日本各地で活躍している Qt ユーザーによって作られたコミュニティです。
日本語での Qt の情報の発信や、Qt をはじめたばかりの方のサポート、Qt や Qt Creator などの日本語訳、勉強会などの活動を日々行っています。

歴史

Qt自体は日本でもだいぶ昔から利用されていたものの、ユーザーコミュニティはありませんでした。古くは、日本KDEユーザー会が、勉強会などもしていたようなのですが、残念ながら詳細は知りません。
確認できている中で、QtのユーザーがQt勉強会として立ち上げたのは、2010年に福岡で開催されたQt@福岡 勉強会が初かと思います。viviというエディタを作られている津田さんをはじめ面白そうな人たちが集まって勉強会をしていたのですが、同じころ、触発されたかのように関東や名古屋、関西でもぽつぽつと勉強会が発足し、それぞれバラバラに活動が開始されました。
2年後の2012年の夏に、当時中学生だったluyikei君が、Qtは日本語のドキュメントも少ないし、コミュニティはばらばらに活動してるし、どうなってるんだと声を上げて、関東勉強会に殴り込みをかけ、いい歳こいたおっさん連中が、中学生にごめんなさいという事件がありまして、何とかして統一しましょうよと若者に説教を受けました。
当初は、luyikei君が各地の勉強会にメッセージを流したり、Webページの計画を立ててくれたりしていたのですが、ただでさえ忙しいエンジニアが片手間にやっているわけで、なかなか前に進まず、ちょうどNokia社がQtを手放す事になり、Qtの会社からユーザー側に移ってしまった鈴木たすくさんが、当時の関東勉強会を仕切りなおしてQtユーザー会の勉強会として再スタートを切ったのが、2013年の7月でした。
というわけで、実はQtユーザー会自体は、まだ駆け出し2年ちょっとの若いコミュニティで人でも体制も整っているわけではありません。

運営

誰がリーダーとか、誰が運営とかは実はきちんと決まっていません。なんとなく東京ではたすくさんが勉強会を仕切ったり、なんとなくhermit4がOSCでの配布物を作成したり、なんとなくけんやさんがWebサーバーをメンテしたり、なんとなく手伝う人が決まったりと、非常にゆるふわな体制で過ごしてきました。The Qt Companyとのやり取り等の苦労から、いずれ責任や立場をはっきりさせる必要があるかもという話はしているので、来年中にはもう少し色々決まるかもしれませんが。なにせQt関係者はめんどくさがりの人が多いので、自然とこうなってしまうのですよね。

活動

Webページ: http://qt-users.jp/

発足当時はluyikei君をはじめ数名Wordpressで作成して下さっていましたが、現在のWebページは、鈴木さんの作成されたQMLでWebページを書きましょうというマニアックなWebサーバーのsilkで作り直されています。

メーリングリスト

Webページの方から参加登録できますが、メーリングリストを使っても情報交換がされています・・・というほどにメールは流れていませんが。

勉強会: https://qt-users.doorkeeper.jp/

DoorKeeperを使って管理されており、現在は、東京で毎月もくもく形式の勉強会が、大阪で不定期に発表形式の勉強会が、開催されています。
他の地方でも開きたい方がいらっしゃったら、できるだけお手伝いさせていただきます。

Slack: https://qtjp.slack.com/

Slackという登録型のIRCのようなツールを使い、コミュニケーションをとっています。
最近はあまり人がいませんが、時折ログインして目を通しているので、質問などがあれば、適当に流しておくと誰か答えてくれるかもしれません。

Qt Developer Day/Qt Summit : http://www.qt.io/qtjapansummit2015/

Digia社、その後 The Qt Company主催のイベントですが、日本で開催されたものは、Qtユーザー会のメンバーが色々とお手伝いや、一部募金を募って出資をしています。ちなみに、日本では無償開催されて弁当まで配布されていますが、海外では基本有料のイベントだったりします。
2016年がどうなるのかはまだわかりませんが、開催の際にはお手伝いの募集や告知も行われるので、興味があれば、ユーザー会のメーリングリストへの登録をしておいて下さい。

Open Source Conference : http://www.ospn.jp/

東京で行われるOSCには、ここ数回はQtユーザー会として出展しています。暇村さんのように日本全国行脚できる程、時間的な余裕がある人が居ないのが残念な所ですが。こちらは、近い時期になるとslackにチャンネルができるので、slackをチェックしていただければと思います。
東京以外の地域のOSCに、代わりに出展しにいくよという方がいれば、色々お手伝いできることはお手伝いできるので、ぜひメーリングリストで呼びかけてみて下さい。

まとめ

ということで、本日はコミュニティの宣伝を入れさせていただきました。技術ネタではなくてごめんなさい。

まだまだできて月日の浅いコミュニティで、MLなどもあまり活発ではありませんが、めんどうだから楽するために苦労しようかなって思う人とか、お手軽に作りたいなって感性のプログラマが集まる場所なので、のほほんと参加できるかと思いますので、ぜひご参加ください。

明日も残念ながらエントリーの予定は立っていません。どなたか、Qtで面白いネタを思いついたらぜひAdvent Calendarも登録していただけると嬉しいです。

2015年1月1日木曜日

謹賀新年

新年、あけましておめでとうございます。

昨年は、すっかりおさぼり気味だったhermit4です。昨年は、仕事は忙しく、プライベートでも色々ございまして、ブログの長さの文章を書くテンションが不足してしまい、結局ワーストを記録してしまいました。まぁ、そもそも他の年も殆ど記事書いてないだろうといわれると、その通りなのですが・・・。

実は、ここ2年でそれまで続けてきた生活とすっかり生活習慣が変わりました。仕事が忙しくて電車だと色々不便ということもあり、客先の近くに駐車場を借りて、自動車通勤になりました。車も新しいものに乗り換え、ふらっと仕事帰りに遠くのポータル(Ingressやってます)まで足を伸ばしてみたり、今までより人付き合いが増えてみたりと、周りからは相変わらずに見えるようですが、本人としては色々様変わりした激動の1年でした。

今年は、何か新しく色々始めようかと思っていた所に、御神籤ではこれまで通りこつこつと、新しい事は始めるなとの御神託でして、例年通りのんびりゆっくりやっていこうかなと、しょっぱなからへたれ気味だったりしますけど、とりあえず、割と棚上げになってきたQMLと、少しずつ始めている英会話の能力アップが今年の当面の抱負でしょうか。

そうそう、昨年末、Qt Advent Calender 2014で、QtネタをQiitaの方に何件か上げています。使い分けが難しそうですが、今後は基本的にある程度調べ終わってはっきり言えそうな事とか、サンプルコードの解説等はQiitaに、個人的な見解や考察、調査がメインの内容はブログに載せて行こうかなと思っています。

そんなわけで、例によって「hermit4さんがんばらない」という1年を送るかと思うhermit4ですが、今年も一年、どうぞよろしくお願い致します。

2014年10月17日金曜日

Qtユーザー会の一員としてOSC 2014 Tokyo/Fallに参加予定です

Qtユーザー会おやつ部長を襲名しているhermit4です。

Qtの勉強会に、自分の食べたいお土産用のお菓子をせっせと運んでるうちに、なぜかおやつ部長とかいう役職を拝命しまして・・・。

まずは、長い間、ブログを放置していて申し訳ございませんでした。
ここ最近いただいているお仕事は、少人数でまわすのが普通になってきてしまって、忙しくしていたのですが、さらに新しい案件は、いやいやいや、いくらなんでも無理じゃない?っていうくらいの詰め込み仕事をいただいてまして、溺死寸前なくらいにバタバタと生きてます。

閑話休題

Qtユーザー会では、過去のOSCの参加の反省から、 OSC 2014 Tokyo/Fallに向けてパンフレットを作ろうよという話になったのですが、見栄えよく間隔を整えたり、イラストレータで配置したりとか、非常に面倒繊細な作業なので、高校から付き合いのある編集業に就いた友人に作成を依頼しました。

私と同じく、フリーランスで、これまた同じく仕事に追われて忙しそうな身です。初稿は色々とバグが入ってます。というわけで、ユーザー会で間違いを見つけてもらって、その修正を依頼したのが、そろそろ印刷にまわさないと危険という日だったりして。

# お前、それでももの作りに携わってる人間かよとかいう突っ込みはなしの方向で・・・。

もう少し余裕もって連絡して欲しいな・・・とおそらく思いつつ、直してくれたのですけど、駆け込みであれこれ言ったので、一度修正されたミスがデグレード。焦り補正で大丈夫と思ったhermit4が駆け込みで印刷にまわした結果がこれ・・・。


ぎゃーす。印刷されてきたの見たらドメイン間違ってる。途中まで直ってたのになぁ。表紙側の左右の直してもらったら、ドメイン間違ってる方で入れ替わってるし・・・orz

qt-users.jp とすべきところが qt-useres.jp となる始末・・・。何せ、OSC Tokyo 2014/Fallは、明日から2日間で開催されるので、もう直している暇はありません・・・シール貼るべきかと思っていたら


と言うアドバイスをいただいたので、まじですか・・・とかいいつつ、お名前.comでドメインを取り、レンタルサーバーにページを立て、ごめんなさいのお詫びのHTMLをごそごそ書いて、放り込んできました。

というわけで、ごめんなさい、明日、明後日に、明星大学で行われるOpen Soruce Conference 2014 Tokyo/Fall ではドメイン 間違ったままのパンフレット配ります。

みんな、m9(^Д^)とかしに来て下さい。お待ちしています。


2014年2月24日月曜日

PayPalには、ちょっと懲り懲りです。

先日の日記にも書いたチャージバックについてです。2013年12月発売でPre Orderが開始されていたため、昨年の10月にPre Orderをしたものの、12月発売のまま1月以降、メールへの問い合わせにも返信が無く、音信不通になっていたEmopulse。

仕方がないので、PayPalさんとEmoPulseが利用していたonline shop構築サービスのShopifyさんにメールで問い合わせ出してました。

PayPalからは、期日超えてるから何もできないのでカード会社に連絡してください、こちらは記録だけしておきますといわれました。Shopifyからきた返事では、多くの苦情があったためshopサービスを止めました、チャージバックのケースなので、カード会社にご相談をというアドバイスに従って、カード会社に相談した所、カード会社が対応中となっています。

この結果、Emopulse社ではなく、PayPal社がカード会社と売り手との仲立ちをしているようなのですが、一応、買い手側にも状況がある程度見れるようです。ただし、売り手とのやり取り内容はいっさい開示されていません。

ところで、このPayPalは金銭徴収の代理をする信用の必要なサービスを提供しているのに、かなりいい加減な対応が目立ちました。チャージバックを始めた最初のステータスではお客様が二重に注文した結果ですとされており、ふと気がつくと未承認の取引があったとされていました。

確かに、不正アクセスがあったかもしれないので、アカウント回復のために、パスワード変えろとか、運転免許書提示しろとか、提示されたのが日本語だからアカウントの住所を日本語に変えろとか、さらにクレジット番号がすべて入った請求書のコピーを出せとか色々要求を突きつけてきていましたが・・・。

日記にも書きましたが、商品が発送されないまま、音信不通になったので、原因は商品の未達なんですけどね・・・。

売り手からの回答期限がきても、売り手はだんまりだったようなのですが、PayPalのステータスが未承認の取引となってるのも気になって、商品が未達なのが原因ですよというメールをPayPalに出したところ、その直後、売り手からメールがあったとの事で、PayPalが異議を行ったというステータスになってました。おそらくPayPal側からカード会社宛に異議が上がったのだと思いますけど・・・。いやいやいや、そのメールって、売り手じゃなくて買い手側からのメールなんじゃないでしょうか。いくらなんでもこのタイミングで?!という状況でして。

もし売り手側から「何らかの手続きが未達だから発送してない」とのメールと誤認して異議でも上げられていたらたまったものじゃありません。

もう一度、PayPalに、売り手のメールだと称して異議を行ったというステータスは、買い手からのメールじゃありませんか?誤解した情報で買い手のカード会社に対する信用を落とされると困るので、良く確認して欲しい、カード会社の言い分と、商品が未達との買い手の言い分が一致していないなら、その旨買い手にも連絡すべきでは?というメールを出したのですが、チャージバックをキャンセルしたいなら、公証人つきの書類を出してどうこう・・・というおかしなメールが届いてかなり憂鬱な気分になりました。

翌朝、大慌てで電話をかけたところ、片言の日本語で対応してくれたスタッフの方によると、メールへの返信は日本語があまりわからないアメリカスタッフが、間違った内容のメールを送ったとの事でしたが・・・はたしてちゃんと理解してくれているのでしょうか・・・。お詫びの言葉は書いてあるものの、PayPalを使うメリットがどうのこうのというメールが送られてきただけで、異議の履歴は「売り手からのメール」のままになってました。

銀行のクレジットカードということもありますし、後日の信用問題に関わるので、PayPalに誤りを指摘する連絡しただけだったのですけど・・・。カード会社にも連絡すべきなのか悩ましい所です。

まぁ、ともかく、予約した商品が届かないという面倒な状況が、さらにチャージバックという手続きで面倒で悩ましい状況になってしまって、届かなかった事より、日本語が通じてない第三者のPayPalがああだこうだと動いている事にうんざりしています。

たしか、クレジットカードで直接やり取りする手段もあったはずなので、PayPal使わずに、普通にクレジットカードを入力して処理すれば良かったのかもしれませんね。
面倒な手続きばかりで、PayPalにはもううんざりです。


2014年1月29日水曜日

[追記] スマートウォッチに飛びついて失敗・・・

大変ご無沙汰しておりました隠者です。

毎年一月だけは頑張ってブログ書いているのですが、今年は早々にインフルエンザに倒れ、埋め合わせに追われている中に、新年会等が重なったので、すっかりご無沙汰してしまいました。

さて、そんながっかりな新年を迎えていましたが、もう一つ残念な結果に成った事があります。昨年、仕事仲間から面白そうなスマートウォッチの話を聞いて、すごく興味を持っていました。

クラウドファインディングのIndiegogoで、投資を求めていたEmoPulseのスマートウォッチです。projectサイトは既に閉鎖されていますが、WebArchiveで見る事ができます。

日本でも、いくつかのサイトでちらほらと紹介されていました。
・Roomie
・pouch
・Gigamen
・テクテク

ただ、投資募集のタイミングでは、スマートフォンとの明確な差がデザインだけなのと、さすがに機能てんこ盛り過ぎて、時計としてはちょっとなぁと思う所もあって、投資するほどでもないかと悩んでいるうちに期限がきてしまったようでして。

昨年は色々辛い日々だった(やらずに後悔する事の多い日々でした)こともあって、想像以上にがっかりしていた所で、割とすぐにPre Orderが始まったという話を聞いたので手続きをとろうとしたのですが・・・あなたの国へのShipは設定されていませんとのつれない状況。でも、しばらくして10月にふと思い立って手続きしたところ、なんとPre Orderが通ってしまいました。

12月発売ということで、1月後半には日本に届くかなと楽しみにしていたのですが、年が開けても12月発売の内容のまま、何の情報更新もなかったので、さすがに心配になって英語で質問メールを出しました。しかし、10日たっても返信なし。返信を待っている間に、Pre Orderのページがクローズされてしまうに至って、あわてて支払いを仲介したPayPalやら、Pre Orderページを運営していたShopifyに確認の連絡を取ってみました。

Pre Orderなのに注文時点でPayPal経由で課金はされてしまっていて、すでに3ヶ月が経過済み。PayPalには、発売日を過ぎても発売された様子がない事と、メールに応答がないのだけど、メール以外で販売者に連絡を取る手段はないでしょうかと聞いたのですが、返事は素っ気なく、お金を払ってから45日経過すると返金処理できないので、カード会社と相談してくれとの事でした。まぁそうだよねぇ・・・。

Shopifyからは、似た苦情が来ているので店をCloseしました。PayPalやカード会社に連絡を取りキャンセルやCharg Backの手続きを取る事を推奨します。彼らは、何も出荷した様子がありません。とのお返事。

肝心のEmoPulseからは何の返信も来ないので、状況はさっぱりわかりません。単純に遅れているだけなのか、Projectが失敗したのか、それとも・・・。

とりあえず、一番近くにいるはずの通販会社がカード会社に連絡を推奨するという返事をくれるくらいだから、駄目なんでしょうね。PayPalや店の薦めに従って、クレジットカード会社に連絡し、セキュリティ部門にご相談して商品未達の不正使用を受けたという事で処理に入っていただく事になりました。

まぁ、さすがに時計として腕につけて持ち歩くか?と問われると、ちょっと落としそうだし、重そうだし、電池持たなさそうなので、机の飾りに終わるかもとは思ってましたが、面白そうなガジェットだったので、期待していたのですけどねぇ。

今に成ってみると、IndiegogoのProjectページが消えていたり、twitterやfacebookの情報更新の少なさ、予約の段階でPayPalから請求書がきたりと、不審感を感じる所は多々あったのですが、面白そうという気持ちが強すぎて、冷静さを欠いていましたね。

次回からは、もうPre Orderでのお金先払いは、投資しても良いという時以外は避ける事にします。

カード会社の処理が終わるまで2ヶ月くらいかかるそうで。お金が返ってくるのかはまだ不明です。PayPal経由でも不正扱いの処理だと即時カード停止で番号も変わるとの事で、再発行待ち。メインバンクのキャッシュカードと一体型のせいで、キャッシュカードも停止で、再発行が行われるまでの2週間、非常に不便な事になってしまいました。まぁ、スマートフォンと同じくらいの金額なので、多少の不便は我慢して戻ってくる事を期待したいなと思います。


2014年1月6日月曜日

はじめてのReVIEW読了

正月早々3日坊主ならぬ2日坊主だった隠者です。

いや、年末年始の甥っ子姪っ子の攻撃ですっかりHPがゼロでしたので・・・。
コミケで買って来たおもちゃの猫絵のお札をプレゼントしたら、同じ額の本物のお札欲しいなって幼稚園児にねだられて困りました。1万猫が5枚、五千猫が5枚、千猫が5枚ですからねぇ。
どうやら、お駄賃とかでお金を蓄えさせて、欲しいものは自分で買わせてるとの事で、幼稚園児なのにお金に興味津々のようでした。あの年頃は、紙のお金で売買ごっこなんじゃないのかな。ゲーム買うにはあといくらで・・・を真面目に計算する幼稚園児は怖いです。

さて、コミケで売り子をやっていたので、開店直後にテクブのブースに並んで、テクブ本購入してきました。

中でも、一番気になっていたのが、ReVIEW本です。
ReVIEWは、軽量マークアップ形式であるReVIEW記法を使ってテキストベースで書いた内容をEPUBやPDFに変換してくれるツールです。

実は、隠者のお客様はドキュメントについての定型というものがありません。人によっては、Textで書く人、Wordで書く人、HTMLで書く人をはじめ、Excelで書く人や中にはPowerPointで書く人までいる状況でして。正直よくないと考えています。
そこで、お客様にこの辺りのドキュメントのフォーマットを統一できないかという話をしたくて、だいぶ前にこの手のツールを調べていました。

既に個人的にはReVIEWではなくSphinxを使ってドキュメントを用意するようにつとめているのですが、TLではReVIEWを使っている人が多いようなので、もしかしたらReVIEWの方が国内では流行るのかもという気もしていて、今後の動向が気になっています。

ReVIEWは、Rubyのソースコード完全解説本や、Rubyを256倍使う本の無道編の著者である、青木峰郎さんが作成され、現在は、独習○○系本で良く名前をお見かけする武藤健志さんをはじめとする方々がメンテナンスをされている、書籍を書く事に重点を置いて作成されているツールのようです(調べてたくせに制作者がこの方々とは知らなかった)。

ReVIEW本では、環境の構築から、簡単なドキュメントの生成、スタイルをつかった整形まで、電子書籍等を作る場合に必要になりそうな基礎がしっかり入っていました。
特に、悩みそうなスタイル部分と、コマンドの解説のあたりは重宝しそうです。

ちなみに仕事で使うつもりといったSphinxですが、こちらはPythonで書かれたツールで、reStructuredText記法を使ってテキストベースで書いた内容をHTMLやPDFやEPUB形式に変換してくれるツールです。まぁ、ReVIEWと思いっきりかぶっているのですが、使った感触では、ReVIEWは書籍のような出版系に、Sphinxの方はHTMLベースでの運用も含めた仕様書やマニュアル系に向いている気がしています(注:個人的な感想ですが)。

ReVIEWの方の調査は半端で止めてしまった(というか、仕事の環境の都合で早めに断念した)ため拡張方法は不明ですが、Sphinxはいろいろと拡張できるように設計されているようで、拡張モジュールもいくつか提供されていて、特にテキストでの表記から図を生成できる、blockdiagとかmscgenとかinheritance_diagramとか、慣れは必要なものの便利な機能もあったりします。

取っ付きやすさと面でいうと、機能がしぼられている分、ReVIEWの方が取っ付きやすいように思いますけど、仕様書のために使いたいと思うと、少し物足りない感がありますね。

ただ、Sphinxの残念なところは、PDF化の時に、なんだか思い通りに出力させるのが大変だった気がしています。とりあえず、仕事上はHTMLでも十分な感じなので、一応は満足しているのですが。

何にせよ、どうせなら仕様書もテキストベースに切り替えて、きっちりバージョン管理したいものですねぇ。

2014年1月2日木曜日

Qtのバグレポートを書いてみました

甥っ子と姪っ子の相手でふらふらの隠者です。この子供達と毎日つきあうと思うと、弟夫婦には頭が下がる思いです。

さて、そんな二人が寝静まった後、先日見つけた間違いのうち、Qt5.2のMac版では、PluginPackageMac.cppが使われていない問題を初バグレポートしてみました。

どうやってバグをレポートするのかについての紹介は以下のサイトにあります。

Qtでは、JIRAを使ってバグ管理がされています。バグレポートを上げるには、まずはJIRAのアカウントが必要になります。アカウントが無い場合、Sign Upから簡単にアカウントの作成が可能です。



アカウントが用意されたら、まずはJIRAのIssueリストで類似の問題が無いか、キーワードを考えて右上のQuick Searchで検索してみます。が、この検索、デフォルトでCloseされた問題も一緒に検索したり、バージョン指定で検索しにくかったり、いまいち使いにくいですね。JIRAには結構期待してたのにちょっと残念。

まぁ、重複登録しないにこした事はないのですが、考えたキーワードで見当たらなければ仕方が無いので、バグを登録してしまいましょう。

Issueのページには、Create Issueのボタンがありますので、それをクリックすると、バグ登録のページが表示されます。

バグ報告の場合、ProjectはQt、Issue TypeはBugのままで良いです。

Summaryには、バグを簡潔かつ具体的に記載するのが良さそうです。長過ぎたり、曖昧だったり(うまく動かないみたいな記載は駄目)するのは良くないです。
 
Affects Version/sには、問題が発生するバージョンを記載します。今回は、Qt 5.2.0の検証のために、v5.2.0をチェックアウトしたコードで試したので、5.2.0を選択しました。

Component/sでは、問題の根本原因と思われるコンポーネントを選択します。今回は、WebKitを選択しました。

Descriptionは、説明になります。一般的には
・何をしたのか1ステップずつ再現に必要な手順を記載する
・何を期待したのか記載する
・何が起きたのか期待する
といった事を書くと良いようです。

Environmentは、問題の再現した環境の説明になります。
・使用しているコンパイラ名とバージョン
・使用しているOS名とバージョン
・Qtのバージョンやその構成(ビルドしたQtならconfigureのオプションとかも入れるとよさそう?)

今回は、問題の原因に近い部分まで探っていたので、Descriptionについては、どこの変更が原因で、何が動いて、どうなったのかを、なんちゃって英語で軽く書いて見ました。こういうの書くと、英語のスキルの無さが露呈して、悲しくなりますね・・・。

https://bugreports.qt-project.org/browse/QTBUG-35899

入力して3日も立たずに、これを試してくれというメッセージが追加されました。

https://codereview.qt-project.org/#change,74564

修正内容は、おおよそは調べていたものと同じですが、こちらで考えた修正では足りてない部分もあったようです。まぁ、残念ながら実家の貧弱な回線だとgit fetchがさっぱり終わらず(というか途中で止まる)、まだ試せていませんが、自宅に帰り次第試してみたいなと思います。

まぁ、上記で記載したバグのレポートが、Qtのプロジェクトに貢献する一番楽な部類になるのではないかと思います。さらに進んだ貢献をしたいという方は、以下のURLを参考にがんばってみて下さい。

http://qt-project.org/contribute


Required

2014年1月1日水曜日

新年あけましておめでとうございます

昨日は初コミケかつ初サークルお手伝いだった隠者です。

年が明けたにも関わらず、昨日のイベント疲れか、いまいち新しい気持ちに成れていませんが、皆様は良い年を迎えられましたでしょうか。

さて、昨日はできなかったので、とりあえずこの1年を振り返り、今年を考えてみようかと。

個人事業を始めて2年と数ヶ月に成るわけですが、もうドタバタした1年でした。落ち着くかと思った矢先にといった感じで色々起こっては、常に何かしら騒ぎの渦中にいた感じでした。Twitterでは割合と明るい内容で過ごしていましたけど、フリーランスなんて社会の底辺で食っている技術者ですから、不安とプレッシャーの中の綱渡りで、冷や汗たらたらで立ち回る日々ですよ、いや、本当に。

どれほど忙しくても、勉強会にはそこそこ出席し、ツイッターでアホな事をつぶやきつつも、お客様の信頼を失わないように、必要な情報を集めて回る。自分の範疇の外にある事も、とにかく解決策を模索して、お客様と一緒に悩み、困りながら、何かしらの道を探す。あまり有益な結果を残せなかったのではないかという後悔と、自分の至らなさへの憤りで過ごす。そんな日々でした。

冬に成る頃には、なんとかひと心地ついて、仕事も開発に戻っての年末を迎えられたので、今年こそは・・・・いえ、フラグを立てるのは、もうやめましょう。

プライベート的には、2012年の秋以降、こちらの不義理で関係が途絶えてしまったネトゲ仲間とは全く連絡が取れなくなってしまって、昨年落ち着き始めてからしばらく、後悔の日々も過ごしましたが、まぁ、ネットだけの付き合いなんてものは、一度切れてしまうともうどうしようもないものですし、後ろを向いて生きられる程残りの人生長くないので、詫びのメッセージだけ一方的に送りつけて、あまり深く考えない事にしました。ごめんなさい。

両親の体調不良も落ち着いた後は、僕個人の体調が少し崩れていましたけど、幸い無事に乗り切りました。プライベート的には、大きな出来事的なものはその程度でしょうか。

さて、昨年の抱負として課題に挙げたものは、

  • Wayland
  • Qt/QML
  • Silk

だったわけですが、どれもあまり学習が進展しませんでした。変わりに艦メモをちょっといぢろうとしながら、独り秋の夜長に、うっかりゲームの方にはまってしまう始末でして。何一つ成し遂げられなかったようにも思います。

で、Qt 5.2が出た現在の抱負ですが、Qt 5.2の品質の悪さに愕然としつつ、少しQtに貢献でする必要があるかとも感じています。
また、個人的には少し体調を崩して色々検査したりもあったので、年も年なので、体調にも気を使いながら、ドタバタで消耗した自分のペースをつかみ直す一年にしたいなと思います。

まぁ、そんなわけで

  • 医者に勧められたのでダイエット
  • Qt/QMLの勉強・普及促進・学習
  • 艦メモ
あたりが、とりあえず今年の前半の抱負になるでしょうか。
え、昨年に比べてもさらにいい加減すぎるって?まぁ、なんだ。1年ドタバタやって気がついた事は、根っから真面目に何かに取り組んだとしても、解決しない事は解決しないって事でしょうか。

少しゆるいくらいで先を見て、少しぬるいくらいで前を目指して、少しずつやってくしか無いんですよね、人生なんてものは。

というわけで、新年早々ですが、のほほんとのんびりがんばりますので、今年もどうぞよろしくお願いいたします。

2013年12月29日日曜日

Mac版 Qt 5.2のWebViewはPlugin機能が無効になっていた件

未だに年賀状が倒せていない隠者です。年の瀬も近づいて来ていますが、皆様進捗どうですか?

さて、先週の土曜日に、Qt勉強会 #6 @Tokyoに参加して来ました。Qt 5.2も出たことなので、艦メモをビルドしようとがんばったのですが、なぜかFlashがインストールされていません扱いでした。Mac Book Proではソースからビルドしていたのですが、MBAでは横着して5.2の正式版はパッケージから入れており、Beta版のソースコードも削除した直後で、ビルドのできないSrc(インストーラからinstallできるけど、configureなどは入っていない)はあるものの、デバッグまではできませんでした。

一応、勉強会では時間いっぱい粘って、WebKitのおおよそのソースコード構成は把握してまして、年末休みに突入してから、こちらでもない、あっちでもないとあれこれ彷徨いましたが、何の事はないそもそもPluginが有効になってない事がわかりました。

WebKitは、様々なアーキテクチャや下回り用に、コードの一部をMakefileで切り替えて使うように構成されています。今回問題になったのは、PluginPackageの下回りの切り替え部分でした。

通常、Mac版では

qtwebkit/Source/WebCore/plugins/mac/PluginPackageMac.cpp

が使われるべき所が、

qtwebkit/Source/WebCore/plugins/PluginPackageNone.cpp

のコードが使われていました。このコードは、プラグイン未使用環境用で処理の実装はなく、失敗を返すように実装されています。これでビルドされている限り、Pluginは利用できなくなります。


qtwebkit/Source/WebCore/Target.pri を読むと


 enable?(NETSCAPE_PLUGIN_API) {
    SOURCES += plugins/npapi.cpp
    unix {
        mac {
            SOURCES += \
                plugins/mac/PluginPackageMac.cpp
            OBJECTIVE_SOURCES += \
                platform/text/mac/StringImplMac.mm \
                platform/mac/WebCoreNSStringExtras.mm \
                plugins/mac/PluginViewMac.mm
        } else {
            SOURCES += \
                plugins/qt/PluginPackageQt.cpp \
                plugins/qt/PluginViewQt.cpp
        }
    }
      :
 } else {
     SOURCES += \
         plugins/PluginPackageNone.cpp \
         plugins/PluginViewNone.cpp
 }


となっています。つまり、NETSCAPE_PLUGIN_APIが有効になっていないわけです。
ごそごそっと検索かけると、この辺の定義は以下で行われていました。
qtwebkit/Tools/qmake/mkspecs/features/features.prf


    # Nescape plugins support (NPAPI)
    xlibAvailable() {
        WEBKIT_CONFIG += \
            netscape_plugin_api \
            use_plugin_backend_xlib
        # WebKit2
        WEBKIT_CONFIG += \
            plugin_architecture_x11 \
            plugin_process
    } else: unix|win32-*:!embedded:!wince* {
        WEBKIT_CONFIG += netscape_plugin_api
        # WebKit2
        WEBKIT_CONFIG += plugin_architecture_unsupported
    } else {
        WEBKIT_CONFIG += plugin_architecture_unsupported
    }

Macの場合、xlib扱いにはなっておらず、その次のunix:!embedded:!wince* に引っかかるはずなのですが、ここに入らずにelseに入っていました。

!embedded {
    message("!!!!! embedded? !!!!")
}

というのを追加してビルドするとメッセージが出力されるじゃないですか。どうやら、誰かがembeddedを立てているようです。そのせいで、netscape_plugin_apiがWEBKIT_CONFIGに追加されない状態でビルドされていました。

本来はembeddedを落とすのが正しい対処なのですが、誰が立ててるのか見当たらないというか、grepすると多く出過ぎるので、とりあえず暫定的に以下を追加しました。

} else : mac {
    WEBKIT_CONFIG += netscape_plugin_api
    WEBKIT_CONFIG += plugin_architecture_unsupported
}

そうすると今度は、Source/WebCore/platform/qt/FileSystemQt.cpp がビルドエラーじゃないですか・・・・なんと言う嫌がらせ。

調べてみたら、原因はこれでした。

  • Q_WS_MAC is no longer defined in Qt 5.
そう、no longer definedとされていた、Q_WS_MACが定義されなくなってます。

でも、ソースコードでは、未だに数カ所使われていました。そのうち以下の場所でエラーに成ってくれました。エラーでなかったら気がつかないだろう、それ。



 bool unloadModule(PlatformModule module)
 {
 #if defined(Q_WS_MAC)
     CFRelease(module);
     return true;
 #elif defined(Q_OS_WIN)
     return ::FreeLibrary(module);
 #else

 #ifndef QT_NO_LIBRARY
     if (module->unload()) {
         delete module;
         return true;
     }
 #endif
     return false;
 #endif
 }


というわけで、複数ある、Q_WS_MACをQ_OS_MACに置き換える必要がありました。
変更箇所は多いので、diffで上げておきます。


diff --git a/Source/WebCore/page/qt/EventHandlerQt.cpp b/Source/WebCore/page/qt/EventHandlerQt.cpp
index f45f81d..885fcde 100644
--- a/Source/WebCore/page/qt/EventHandlerQt.cpp
+++ b/Source/WebCore/page/qt/EventHandlerQt.cpp
@@ -52,7 +52,7 @@
 namespace WebCore {
-#if defined(Q_WS_MAC)
+#if defined(Q_OS_MAC)
 const double EventHandler::TextDragDelay = 0.15;
 #else
 const double EventHandler::TextDragDelay = 0.0;

diff --git a/Source/WebCore/platform/FileSystem.h b/Source/WebCore/platform/FileSystem.h
index e1d5b7e..b5fcfa6 100644
--- a/Source/WebCore/platform/FileSystem.h
+++ b/Source/WebCore/platform/FileSystem.h
@@ -48,7 +48,7 @@
 #endif
 #endif
-#if USE(CF) || (PLATFORM(QT) && defined(Q_WS_MAC))
+#if USE(CF) || (PLATFORM(QT) && defined(Q_OS_MAC))
 typedef struct __CFBundle* CFBundleRef;
 typedef const struct __CFData* CFDataRef;
 #endif
@@ -80,7 +80,7 @@ typedef GModule* PlatformModule;
 #elif PLATFORM(EFL)
 typedef Eina_Module* PlatformModule;
 #elif PLATFORM(QT)
-#if defined(Q_WS_MAC)
+#if defined(Q_OS_MAC)
 typedef CFBundleRef PlatformModule;
 #elif !defined(QT_NO_LIBRARY)
 typedef QLibrary* PlatformModule;

diff --git a/Source/WebCore/platform/qt/FileSystemQt.cpp b/Source/WebCore/platform/qt/FileSystemQt.cpp
index b5d0096..1cd8e2c 100644
--- a/Source/WebCore/platform/qt/FileSystemQt.cpp
+++ b/Source/WebCore/platform/qt/FileSystemQt.cpp
@@ -242,7 +242,7 @@ int writeToFile(PlatformFileHandle handle, const char* data, int length)
 bool unloadModule(PlatformModule module)
 {
-#if defined(Q_WS_MAC)
+#if defined(Q_OS_MAC)
     CFRelease(module);
     return true;

diff --git a/Source/WebCore/platform/qt/RenderThemeQStyle.cpp b/Source/WebCore/platform/qt/RenderThemeQStyle.cpp
index f85a75b..81f9278 100644
--- a/Source/WebCore/platform/qt/RenderThemeQStyle.cpp
+++ b/Source/WebCore/platform/qt/RenderThemeQStyle.cpp
@@ -117,7 +117,7 @@ RenderThemeQStyle::RenderThemeQStyle(Page* page)
 {
     int buttonPixelSize = 0;
     m_qStyle->getButtonMetrics(&m_buttonFontFamily, &buttonPixelSize);
-#ifdef Q_WS_MAC
+#ifdef Q_OS_MAC
     m_buttonFontPixelSize = buttonPixelSize;
 #endif
 }
@@ -228,7 +228,7 @@ void RenderThemeQStyle::adjustButtonStyle(StyleResolver* styleResolver, RenderSt
     // Ditch the border.
     style->resetBorder();
-#ifdef Q_WS_MAC
+#ifdef Q_OS_MAC
     if (style->appearance() == PushButtonPart) {
         // The Mac ports ignore the specified height for <input type="button"> elements
         // unless a border and/or background CSS property is also specified.
@@ -239,7 +239,7 @@ void RenderThemeQStyle::adjustButtonStyle(StyleResolver* styleResolver, RenderSt
     FontDescription fontDescription = style->fontDescription();
     fontDescription.setIsAbsoluteSize(true);
-#ifdef Q_WS_MAC // Use fixed font size and family on Mac (like Safari does)
+#ifdef Q_OS_MAC // Use fixed font size and family on Mac (like Safari does)
     fontDescription.setSpecifiedSize(m_buttonFontPixelSize);
     fontDescription.setComputedSize(m_buttonFontPixelSize);
 #else

まぁ、これでも実はビルドエラーが残っていまして、PluginPackageMac.cppで、他にもエラーが出ました。どうやら、WTF::RetainPtrが一部変更になっているようですが、ヘッダを帰ると影響が読めないので、PluginPackageMac.cppの方を一部修正しました。



diff --git a/Source/WebCore/plugins/mac/PluginPackageMac.cpp b/Source/WebCore/plugins/mac/PluginPackageMac.cpp
index 6b6c417..b40f0d4 100644
--- a/Source/WebCore/plugins/mac/PluginPackageMac.cpp
+++ b/Source/WebCore/plugins/mac/PluginPackageMac.cpp
@@ -138,7 +138,7 @@ bool PluginPackage::fetchInfo()
     if (mimeTypesFileName && CFGetTypeID(mimeTypesFileName.get()) == CFStringGetTypeID()) {
         WTF::RetainPtr<CFStringRef> fileName = (CFStringRef)mimeTypesFileName.get();
-        WTF::RetainPtr<CFStringRef> homeDir = adoptCF(homeDirectoryPath().createCFString());
+        WTF::RetainPtr<CFStringRef> homeDir = homeDirectoryPath().createCFString();
         WTF::RetainPtr<CFStringRef> path = adoptCF(CFStringCreateWithFormat(0, 0, CFSTR("%@/Library/Preferences/%@"), homeDir.get(), fileName.get()));
         WTF::RetainPtr<CFDictionaryRef> plist = readPListFile(path.get(), /*createFile*/ false, m_module);
@@ -255,7 +255,7 @@ bool PluginPackage::load()
         return true;
     }
-    WTF::RetainPtr<CFStringRef> path = adoptCF(m_path.createCFString());
+    WTF::RetainPtr<CFStringRef> path = m_path.createCFString();
     WTF::RetainPtr<CFURLRef> url = adoptCF(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path.get(),
                                                                         kCFURLPOSIXPathStyle, false));


これ、自動テストにプラグインの登録、PluginViewの利用が入っていないのでしょうねぇ。
入っていれば、さすがにこんな大きなデグレード、しかもビルドも通されていない等というお粗末な状態をRelease版として出さないのでしょうけど・・・。

一応、このQt5.2でビルドした艦メモさんは無事に起動して、利用できました。



まぁ、timerでこけるという変な現象は出ましたが、とりあえずはゲームできて、画像付きでつぶやけたから、良しとしましょう。あとは、誰がembeddedを立ててるか調べないとなぁ・・・というあたりで、今日はここまでで、ゲームに戻ってろ号任務をクリアしてきます。