2016年12月31日土曜日

2016年を振り返る

2015年を振り返る
2014年を振り返る
2013年の仕事やまとめっぽいもの
2012年今年もありがとうございました

今年も去年に比べると更に数が減っているようです。あだばー
► 2016 (60)
► 2015 (72)
► 2014 (83)
► 2013 (123)

仕事関係

社会人5年目になるのでキャリアパスを考えてみる というポストを今年の3月末にしているようです。
結構くよくよ悩んでますね。今も悩み中です。
今年は結局、今のプロジェクトを1年まるまるやったという感じでした。
結構長いことやってるなーという感じですが、そのおかげでスキルセットが3つほど新規に増える格好に。
まぁ仕事の話はオープンな場所で書くのは難しいですな!

あと、完全にやらかし事故も起こしていましました。5年目についにという感じです…。
ご迷惑おかけしたと共にその節は本当にありがとうございました。

唐突でしたが初の海外出張を経験させていただくことになりました。非常に有意義な経験ができました。
レポートがポエムっぽくて困ると言われているのでそのうちに修正させていただきます…。(今年のうちは無理だったけど、今年度中には…)
正直、自分はまぁ中の下・下の上ぐらいかなと思っていたのですが、それでも英語できればもっとできることは多いよというのを実感できたのは励みというか良かったのかなと。 結局、上級エンジニアには彼らしかこなせない仕事があって下の落ち葉拾いまではやってられんのです。

英語やるぞ~とやらないのにいうのは止めることにしていたのですが、まぁいよいよというところで、来年こそはという気持ちで取り組みます。
とりあえず、Duolingoが10日連続で進捗中…(ぉ

技術コミュニティ関係

ちっとも顔出してない感じですね。調べてもいない。OSC名古屋は1年に1回だと知りました。東京だけだったんですね、2回あるのは。
それでも、10月、11月、12月とQt勉強会を開催できたのは良かったです。
東海道らぐには1度は参加せねば。と思っているのですが今年は機会を逃しました。

運動とか体重とか

4月から3ヶ月ほど、バドミントン講習に行ってました。あれ、ブログ書いてねー…
ホントはランニングとかしなければならないのだけど。
しなければならない。はだいたいやる気を削いでしまうのだよな

その他

結婚したいです(唐突)
まぁ相手を探すところからなのですけど、報告できる進捗はありませんな。
それでも全くなにもないわけじゃなくて、紹介してもらったりとかしてもらえてありがたい限りです。
これからもお願い致します。

まとめ

三連休に帰ったので年末年始は自宅で過ごしています。
今年は、、今年もなんかあっという間でした。恐ろしいことに酷く体感時間が年々加速しています。
三連休とか年末に母とか係長とか家族について話せたのは有意義だったなぁ。

2017年はまたえいやこらそいやこらと色々ありそうです。
まだよくわかっていません。終わり(ひどい

体重が増加し始めてしまった

体重がずっと変わらないのが密かな自慢でした。しかし、ここまでのようです

皆さん痩せてるからいいじゃん。と言ってくださるのですが、いいですか
お腹周りと二の腕からついていくのです…

たぶん、運動していないので筋力が落ち続けて代謝が悪いのと、食べる量ですね…。
大人になってからのほうが焼肉とかこってり系が美味しく感じられてうわわわあああ

ちなみに上のグラフはWithings社の体重計です。とってもいいですよ。
新機種が出たので新しいのがほしいなぁと思ってたりするのですが、誰が送料込みで1万ぐらいで買ってくれる人はいたりしないものか(笑)
Withings の体重計、 Smart Body Analyzer を買った


ハハハ(絶望

2016年にハマったYoutubeチャンネル

なんか今年は結構Youtueを観てた気がします。2倍速が搭載されて捗ったのかな?
おすすめの動画とかあるなら教えてよーとたまに言われることがあるので書いておきます。

jstsciencechannel


jstsciencechannel

科学技術振興機構という母体は1957年からある文部科学省配下の組織が配信している番組。
Youtubeが存在する前の動画もアップロードされている。
様々なコンテンツがあるが、再生リストできちんと取りまとめられてるのも素晴らしい。
チャンネルに透過される頻度も2週間とかに1回ぐらいなので騒がしくない。
自分がもっぱらハマったのは、THE MAKING シリーズ。これだけで300本弱ある。
ちょめちょめができるまで。というタイトルで15分に物ができるまでの成り立ちを紹介してくれる。



Nara hirokazu


Nara hirokazu

どこかの日本料理屋さんの店主のチャンネル。
一切しゃべらないし顔は出てこない。(が、あるビデオでちらっと映るシーンが存在する)
投稿回数も適度にあるのが嬉しい。
コメントによるともうこの業界は長いとあり、それなりの年齢の店主らしい。
定番のメニューから創作物、捌き方など。
カメラの問題かピンぼけが発生するのが玉にきず。
行ける範囲なら是非一度お伺いしたいお店なのだが、どうコンタクトを取ったら良いものか…



中国料理 天慶


中国料理 天慶


東京の本郷にある中華屋さんのチャンネル。
典型的な中華料理の道具を使って見事な手さばきで仕上げていくのは非常に参考になる。
厨房もきれいだしこれは間違いなく美味しいお店(行ったことはない)
もう少し投稿回数が増えてくれるととても嬉しいのだけど、この前、動画が追加されてたので嬉しかった。



A.I.Channel

A.I.Channel

バーチャルユーチューバー
今年の11月末から出てきたらしい。
正直、自分はいわゆる日本のユーチューバーの番組は購読していなかった。
フォーマットしてはほんとによく出来てると思うし、結構面白い番組は多いみたい。でも、購読までは…と思えるチャンネルはなかった。
宣伝くさかったり、うんとかかんとか(省略されました)
あのフォーマットはどっかにノウハウあるんですかね? んで、この番組も例によってもれずそこは踏襲されているのだけど、
これはまぁ面白いなと思った次第。






歴史めし - チャンネル銀河

歴史めし - チャンネル銀河

柳原尚之さんというイケメン料理研究家が料理を作る番組。表題に反して歴史にちなんだ料理を作るのであって、当時の料理ではない点は注意
細かいうんちくが聞けるのが楽しい。こうゆうのは本当に参考になる。何から何まで丁寧な仕事は必見



久しぶりにアニメのはなしでも書く

アニメが面白くなってきました。とどっかで書いた気がするけど、そのわりには何もまとめていなかった気がする。
語彙力が全く足りない感じとりあえず書き出してみる。
うーん、来年は見るならもうちょっと真面目に見てもいいんじゃない?と我ながらに思うこの感じ。
まさに恥さらしのポスト。(いつも通り

今回もブルーレイは多分手を出さない感じです。お布施とは言いますがそんなに見返さないしお金と置き場所と。
買わない理由はいっぱいあるこの感じあんまりよくないなぁと思っています。罪悪感?
そんなの気にしないで楽しく観れてればそれでいいじゃんっていうのはあるはずなんですけどねぇ。







  • 競女!!!!!!!!
  • いろいろあれなんだけど、しっかり作り込んであって好感持てる。おっぱいアニメとかは好きくないのだけど、これはスポーツものということでいいのでは?効果音素敵
  • Occultic;Nine -オカルティック・ナイン
  • なんかいいぞいいぞ。と聞こえてきたので追っかけてみることに。最後の方はどう着地すんだよ~と思ってたらちゃんと収まった。 収まりがいいのは良いことだ。
  • ハイキュー!! 烏野高校VS白鳥沢学園高校
  • 原作読んでる人曰く、原作読んでればよくね?という感想もあるらしい。私はアニメしか見ていません。 ワンクール全部試合なのに要所要所で鳥肌立たせてくるのすごい…。
  • 響け! ユーフォニアム2
  • めちゃくちゃよかったですね…。先輩との別れってあんな感じだったかなーって思いました。私は真っ黒黒の黒歴史で迷惑しかかけてないですが。 原作も確認しておきたいところですね。
  • ガーリッシュナンバー
  • キャラクターを描く。というところに割り切られてたような気がして見やすかったです。なんだかんだで最後まで見てしまいました。かわいいは正義なんだよ(多分)


  • はいふり
  • 面白かった。ような気がする。一応コミケで何か買う程度には。 最終話で沈没するのは憎いなぁと思いました。
  • Re:ゼロから始める異世界生活
  • かなり面白かった。原作読んでる人曰く、最終回からの展開が他にない感じでこれまた面白いのに。と。 キャラはフェリスくんがお気に入り。
  • 蒼の彼方のフォーリズム
  • 原作は美少女ゲームらしい。確かに競技着はそう言われれば納得感ある。制服かわいい。恋愛モノ的な要素はほとんどなくてこれもスポーツ物になってた。
  • 暗殺教室
  • 主人公がカルマくんを倒したあたりで涙腺が崩壊した(しそうになった)
  • くまみこ
  • 終わり良ければ全て良しの真逆を行ってしまった感じ。最後の2話で気持ちがすっかり離れてしまった。
  • この素晴らしい世界に祝福を!
  • 周りは高評価だったけれど、自分はさっぱりわからずに途中でDrop。二期も確定しているそうです。
  • この美術部には問題がある!
  • とりあえず、ニヤニヤしてました。
  • 三者三葉
  • 自分はかなり好きな空気感でした。原作もポチポチ買ってみたりしています。
  • 昭和元禄落語心中
  • 面白かったから最後まで見たはずなんだけど、なんでオモシロイと思ったかぱっと思い出せない…
  • 僕だけがいない街
  • 面白かったから最後まで見たはずなんだけど、なんでオモシロイと思ったかぱっと思い出せない…

ルミナスのアルミラックを買った



ドウシシャ メタルラック エコノミーシリーズ 5段 ルミナスパーツ互換品 ポール径25mm 幅91.5×奥行46×高さ178.5cm EL25-90185

部屋が汚すぎて…。
今更だけど、収納スペースを稼ぐアルミラックを購入しました。

アルミラックを購入しようと思ったきっかけは本屋で平積みになったこの本がきっかけ。

OURHOME がんばらずにスッキリ片づく スチールラックのすごい収納 (正しく暮らすシリーズ)

購入はこれにした。ブランド名は"メタルルミナス"となっているけど、あまりきちんと説明とかがされてない模様。もったいない。
メタルルミナスは、通常のルミナスラックと比較して、お値段がだいたい半分。しかも、互換性はある。
足も2種類ついてくる。ただの足とキャスター。
なぜ安いかというと、剛性が半分近くだから。
確かに棚に手でぐいぐいと力を入れると少したわみ心もとないところがありました。
とはいえ、一点集中で使うことはないはずなので必要十分。500ml、24本のペットボトルの段ボールを格納してみたが特に何も不安感はなかった。
組み立ても超楽ちん。ニトリで机やら買っているがネジ止めしなくていいというのは楽なものです。

モニターデスクを買った

SS585というやつ。


バリエーションとしては
白・黒と2段足と1段足でコンビネーションがあります。

前々からモニターの高さが低いなと感じていて、少しでも改善させたほうが良いかなと思っていました。
高いモニターじゃないと高さ調整ができないものが圧倒的に多いようです。

モニターの高さを調整する方法としては次の通り
  • モニターアーム
  • 台座に乗せる

PCモニターにはだいたいVESAマウントというものがついているはずで、
そこにネジ止めして自由に動かせるのがモニターアーム。価格は1万ぐらいで買えるっぽい。
クランプで机の端に固定するため、台座がなくなって机が広く使えたりするのが利点ですね。
しかし、自分は台座にすることにしました。予算もさることながら、自分の机ではクランプする場所がなかったからです。
正確にはつけられそうだったけど、だめだったときが悲しいので安全方向に倒しました。

というわけで、台座を調達。
キーワードとしてはデスクラックとかモニターデスクとかその辺りらしいということが分かりました。
モニターアームは割と自由に高さが設定できるのですが、台座はそれができない。
台座の代わりに本を積み上げている人もいるのですが、一理あるなーと感じました。

購入したものは足が2段階で調整できるものを。(上記のやつ)
すごく単純で足が2つついてくるだけ。
足が1つだと高さが足りなくて、台座の下に物を入れるのは厳しかったです。キーボード・マウスぐらいなら入る。
でも、モニターの高さ調整という点では足1つがベストだったので、調整できるのを買ったのは正解でした!

職場にいる時間は長いのでこの辺りはさっさと改善するべきだったなーと思いました。

2016年12月28日水曜日

Withings Activate Pop を保証範囲で交換してもらった



症状としては防水対応なのに、曇る。
その後、パリっと割れてしまったもの。
割った状態の撮影し忘れたなーと思ったら、残ってた。
あれ、ぶつけたって書いてあるが…。どうだったかな。間違いないのは気付いたら割れてたってところで何が致命傷になったのかは把握できていない。
Withings スマートウォッチ Activite Pop を買った

まぁでもちょっとおかしいだろーということで、保証対応の相談せねばと放置されていた案件
今年のうちは今年のうちに…。

Withingsの国内のサポートは代理店のソフトバンクセレクションが執り行っているとのこと。

  • 12月19日の夜 Webフォームから依頼出し
  • メーカー1年保証で対応、もしくは修理の依頼
  • 12月20日 メールにて回答あり
  • 修理対応はしておらず。保証範囲なら新品を送るとのこと。 確認事項等について返信 故障状況や手元に残っているものなどについて聞かれた。 購入先などの確認も
  • 12月21日 メールにて返信あり
  • Amazonで買ったので、それのスクリーンショットをメール添付で送って欲しいと記載あり
  • 12月22日 メールにて返信あり
  • 着払いで一式を所定の場所に送って欲しいとのこと。 それで確認次第、新品を発送
  • 12月23日 荷物を発送
  • 23〜25日は祝日、土日はお休みなので、入荷は26日に
  • 12月28日 連絡が来ないのでこちらから連絡
  • 年度内の営業が28日だとWebで確認したので、朝一でメールして問合せ 19時頃に、担当部署に確認したところ発送したのでお待ちを。とのことだった
  • 12月29日 荷物到着

ヘンテコなこともなくすんなりやり取りがなされて無事に到着したので、満足している。

ちなみに届いたやつは電池とリセットの治具が丸型ではなく、四角の小さいものになっていた。
明らかにリビジョンアップ版のようでした。

2016年12月22日木曜日

いえろ~ぜぶらの新作ふぃな~れBOX電 を手に入れた

Yellow-Zebra - いえろ~ぜぶら: 新作ふぃな~れBOX電の紹介です~
http://yellow-zebra.com/2016/11/box_2.php







もう解散してRSSだけ登録してあって。
そしたらびっくりですよ。全まとめみたいのが出ることになったとあるじゃないですか!
自分が学生の頃に好きだったサークルさんで、自分は東方Projectからすぅっと気持ちが離れてたのですが。
今はあ~るの~と名前を変えて活動されているようです。 ワンマンライブまでやられてたんですね。
10年はすごいなぁという感じです。

2016年12月12日月曜日

Raspberry Pi シリーズでBuildrootする

Buildrootとはなんぞや?というのはこちらの記事に書きました。
Buildrootとは 紹介と使い方の入門

% ls configs/raspberrypi*
configs/raspberrypi0_defconfig configs/raspberrypi3_defconfig
configs/raspberrypi2_defconfig configs/raspberrypi_defconfig

make raspberrypi3_defconfig
make とすると、やっぱりsdcard.img を作ってくれます。
この内容をddで転送してやれば起き上がってきてくれるはずです。
シリアルコンソールがない人はopensshなりを入れたり事前にネットワークの設定をしておかないと使い物にならないと思います。

さて、この記事はcubox-iですが、同じ要領でもろもろいけるはずです。
BuildrootとQtCreatorを使ってQtアプリを開発する方法



Windows 10 MobileでQtQuickアプリを動かしてみる。Part-II
昨日は@nekomatuさんの『BuildrootとQtCreatorを使ってQtアプリを開発する方法』ってことで組み込み系のお話。一応Raspberry Pi 3とか持ってはいるので、そのうち読みながら自分でも試してみたい。

iijmioのSIMを再発行した

急いでいなかったので郵送で頼んでみました。
音声通話機能付きSIMカードを紛失しました。
https://help.iijmio.jp/app/answers/detail/a_id/1572/

  • 12月5日の夜中にオーダー、本人確認書類の写メをアップロード
  • 12月7日午前に本人書類の確認
  • 12月9日に発送(このタイミングで旧SIMは使えなくなるそう)
  • 12月10日に到着
  • 受取りは特に照明とかは不要。本人書類で確認済みのため

紛失という観点では5日程度止まってしまう感じでしょうか。変更なら1日ぐらいのダウンタイムですみそうです。
最寄りのビックSIMカウンターだと即日発行手数料で1000円割増になりますが、その場で対応してもらえます。
1000円で即日対応受けられるならかなりお得に感じました。
お店に行かなくても自宅に届けてもらえるお手軽さもバタバタと忙しかった自分にはありがたかったです。
なんとかショップで一時間以上待たなくて良いのは実に快適なことです。

申し込みUIも大変わかりやすく、どのSIMを交換(無効化)してどのサイズにするのか明瞭で快適でした。
通知メールも逐次送られてきて安心でした。
楽天カードマンなので、浮気も考えているのですがこの辺の信頼度高いのでやっぱりしばらくは移しません。

なお、費用としては通常は変更手数料として2000円かかります。
秋の0円でSIMサイズ変更キャンペーンというので、今回は無料でした。
2000円引きは嬉しいですね。

2016年12月11日日曜日

BuildrootとQtCreatorを使ってQtアプリを開発する方法

この記事はQt Advent Calendar 2016の11日目として書かれました。
当初のタイトルと内容が一致していなかったため、新しく変更しました。

Buildrootとはなんぞや?というのはこちらの記事に書きました。
この記事ではパソコンではなく、ラズパイのような組み込みデバイス上で動くQtアプリケーションの作成とデバッグする環境のセットアップの仕方を述べたいと思います。
ターゲットボードにarmv7命令セットのCubox-iというのを使います。

Buildrootとは 紹介と使い方の入門

大まかな作業内容

  • ツールチェインとqmakeを生成
  • rootfsを作成とネットワークのセットアップ
  • Qtアプリケーションを作成
  • リモートデプロイとリモートデバッグ

Buildrootのセットアップ

Buildrootそのものは先の記事でダウンロード済みとします。
今回はターゲットボードにCubox-iを使いますので次のようにdefconfigをロードしてあげます。
make mx6cubox_defconfig
ロードしたら少しQtアプリケーション向けに編集します。
make menuconfig を実行して次の通りにチェックボックスを入れていきます。
Buildrootというか依存関係の部分で、事前に必要なところをONにしてないと、ONにできないのです。

Toolchain --->
[*] Enable WCHAR support
[*] Thread library debugging
[*] Enable C++ support
[*] Build cross gdb for the host

Target packages --->
Debugging, profiling and benchmark --->
[*] gdb
[*] Python support
Libraries --->
Graphic libraries and applications (graphic/text) --->
[*] Qt --->
[*] Approve free license
Networking applications --->
[*] openssh

次にツールチェインとqmakeのセットアップをします。
make qt-install を実行します。
普通のQtだと途中でコンシューマライセンスかオープンソースライセンスか聞かれてしまうのですが、
Buildrootのconfigで”Approve free license”としているので、オープンソースライセンスとしてビルドされます。
 

QtCreatorのキットを組み立てる


完了したら、さっそくQtCreatorにキットをセットアップしてみましょう。
キットを組み立てる(日本語化してる時は適宜読み替えてください)


QtCreator を起動する
メニューバー Tools -> Options を開く。
Devicesを開いて、Add をクリックする。
ダミーデバイスを作る。GenecricLinuxDeviceを選択してウイザードを進める。名前は"cubox"、他の項目は適当にダミーデータを入れて次に進む。
Build & Run を選択
Qt Versions タブを開いて、Add をクリックする。
ダイアログが開くので"qmakeのビルド"で作成されたqmakeを選択する。Version nameに"Qt %{Qt:Version} (buildroot)"とつける。
Compilers タブを開いて Add -> GCC をクリックする。
Nameに"buildroot_armhf", Compiler pathに"buildroot.git/output/host/usr/bin/arm-linux-g++" を選択する。他の欄は何もしなくて良い。
Debuggers タブを開いて、Add をクリックする。
Nameに"buildroot_gdb", Compiler pathに"buildroot.git/output/host/usr/bin/arm-linux-gdb" を選択する。
Kits タブを開いて、Add をクリックする。
Nameにbuildroot, DeviceTypeに"GenericLinuxDevice", Deviceに"cubox",Sysrootはブランク(空),Compilerに"先ほど作ったbuildrootと書いてあるものを",Debuggerに"そのまま", QtVersionに"Qt(buildroot)", Qtmkspecはブランク(空),CmakeToolはブランク(空)
(ここに写真を入れる)
これでキットの作成は完了です。

rootfsを作成する

さて、先ほどの手順ではQtしかビルドしてないので残りの部分も全部ビルドします、
make と実行して放置します。
完了すると成果物がoutput/imagesの下に落ちています。
ここでは dd if=output/images/sdcard.img of=/dev/sdX としてSDカードに転送しました。
サイズはU-boot,kernel,rootfs含めて26MBほどでした。
転送したらcuboxにつけて、シリアルコンソールでログインできることを確認しましょう。
アカウントはrootでパスワードは空っぽで入れます。
シリアルコンソールは私はこんな感じでやりました。
cu -l /dev/ttyUSB0 -s 115200n8

ログインできたら、リモートデプロイできるようにネットワークとOpenSSHの設定を少ししておきます。
  • ターゲットのネットワークを設定する
  • /etc/network/interfaces に書き足して、ifup eth0とかします。 auto eth0 iface eth0 inet static address 192.168.12.150 netmask 255.255.255.0
  • ターゲットのsshdの設定をする
  • /etc/ssh/sshd_config を編集します PermitRootLogin yes PasswordAuthentication yes PermitEmptyPasswords yes

これでターゲットとSSHできる環境が整ったはずです。
予めコンソールでssh root@192.168.12.150 などをして無事に繋がることを確認してみましょう。
パスワードを設定しろ。と言われてしまったらしてください。空だと私はうまくいきませんでした。

Qtアプリケーションを作成する

新しいプロジェクトを開いて、
Qtコンソールアプリケーションを選択してセットアップします。
先ほどセットアップしたキットを選択しましょう!

とりあえず、アプリケーションはHelloWorldとすることにしました。

#include
#include

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QTextStream out(stdout);
    out << "hello Qt world" << endl;
    out << "hello Qt world2" << endl;

    return a.exec();
}


少しプロジェクトファイルを変更します。
networkモジュールがいらないのでマイナスしておきます。
QT -= gui network

リモートデバッグするべく、インストールパスを書き足しておきます。
http://doc.qt.io/qtcreator/creator-deployment-embedded-linux.html
target.path = /root
INSTALLS = target


QtCreatorのキットのデバイスを再設定して右にあるテストをやってみましょう。

ホストに接続中...
カーネルバージョンの確認中...
Linux 4.7.3 armv7l

指定されたポートが使用可能か確認中...
すべての指定されたポートが使用可能です。

デバイステストが成功しました。

などと表示されればばっちりです。

リモートデプロイとデバッグ

さてここまで来たらアプリケーションをデプロイ&実行です!
緑の再生ボタンを押してやってみてください。
ちゃんと出てきましたか? 停止ボタンを押してアプリを一旦閉じましょう。

out << "hello Qt world" << endl; の行の数字を右クリックしてブレークポイントに設定をしましょう。
そして、虫付きの緑の再生ボタンを実行してみてください。
どうですか?

まとめ

まず、Buildrootを使って必要なrootfsの生成の他にビルド環境をセットアップしました。
これには、ビルド環境にはコンパイラ、デバッガ、qmakeが含まれます。

生成されたビルド環境を使ってQtCreatorのキットを作成しました。
ハローワールドなサンプルアプリを作成しました。
ターゲットボードにOpenSSHの設定を行ってリモートデバッグできる環境を構築しました。
QtCreatorでリモートデプロイ、実行、デバッグを行いました。

一般的にクロスコンパイラやデバッグ環境を整えるのはめんどくさい作業です。
BuildrootとQtCreatorのキットを使うことでシンプルで理解のしやすい環境を構築できることを示しました。

2016年12月8日木曜日

QtCreatorの翻訳をレビューをしました

これは4月下旬で思い出しながら書いてます。
この記事はQt Advent Calendar 2016の8日目として書かれました。

ことの発端は次のメーリングリストの投稿からです。
[Qt-users:529] Qt Creator 翻訳レビュー依頼

勉強会開催のアナウンスなどQtユーザ会のメーリングリストがありますので、未登録の方はぜひ参加してみて下さい。
流量はそんなに多くないのでお気軽にどうぞ。
http://qt-users.jp/mailman/listinfo/qt-users

QtCreatorとはいわゆる統合開発環境(IDE)です。
非常に軽快でデバッガーやGitとの連携もよく出来ています。

朝木さんという方が昔より日本語翻訳の取りまとめをしてくださっています。
今回は翻訳そのものではなく、レビューのお手伝いになります。

翻訳のレビューとは?
日本語の言い回し、タイポなどとにかく気になることは何でもです。
なお、レビューしたからマージ(取り込まれる)わけではありません。メンテナーという方が最終的にはマージします。
じゃあ、レビュー要らないじゃん。と思われますが、メンテナーが必ずしも日本語ができるわけではありません。
よって、+1、良いね。がたくさんあれば取り込んでも良いと判断する1つの材料になるわけです。


QtプロジェクトではコードのレビューはGerritというシステムを使っています。
翻訳もリソースファイルの更新ですので、手順はソースコードと一緒です。
このシステムでは、行にコメントを挿入できる。コメントをつけることができる。+1,ー1をつける。です。
基本的に英語でコメントを付けてやる必要があります。

MB(メガバイト)とMiB(ミビバイト)の使い分けなどがあり、その辺の指摘などを行いました。
またQtCreatorの機能としてロケーターと呼ばれるクイックコマンドの機能があります。Git周りの翻訳はどうあるべきかなどの議論をしました。
単純な指摘は埋め込みコメントで、込み入った話や調整しておきたい内容については、メーリングリストに返信の形で進めました。

やり方:
まずはQtプロジェクトのアカウントを作成する必要があります。
やり方が2016年の半ば当たりから変わっています。(昔はアカウント管理がばらばらになってしまっていました)
現在のやり方は下記にあります。

https://wiki.qt.io/Setting_up_Gerrit#How_to_get_started_-_Gerrit_registration


翻訳そのものは日本語の場合、Transifexで行っています。
これらの準備や取りまとめとパッチの提出を朝木さんがやってくださっている格好です。
https://www.transifex.com/qt-users-jp/qt-creator/

修正:
たまたま翻訳の話がツイッター上であって正しい実態はこちらでした。
こうゆう事情なので、個人的なオススメとしましては、Qtユーザー会のメーリングリストで一言確認するのがベターかなぁと思いました。
アップストリームを直接編集してコミットまで出してしまうというのも全く問題ありません。





実のところ、QtCreatorは英語で使っていたりします。
せっかくのオープンソースプロジェクトなので、何か貢献できることがないかなぁと思っていてレビューぐらいなら出来るなと思ってやってみました。
レビューシステムのGerritのインタフェースは英語ですがお手軽にできるのでチャレンジしてみるのは良いと思います!

ではでは。

2016年12月7日水曜日

Buildrootとは 紹介と使い方の入門

Buildrootとは,rootfsイメージを作成するためのオープンソースソリューションです。
主に組み込み系をターゲットとしています。
https://buildroot.org/

http://elinux.org/Buildroot

箇条書きに並べますと
  • 2008年頃に初回リリース
  • 3ヶ月に1度、リリースがされるタイムリーベースのリリースポリシー
  • 数個のMakefileでシステムが組み上げられている
  • ncursesとCONFIGによる設定
  • 理解しやすいシンプルなアーキテクチャ
  • 整理された必要十分なドキュメント
  • 特権権限(su)は不要
  • ccacheも使える
  • メーリングリストを使った古風な開発手法
  • メーリングリストへの投稿は増加傾向
  • 開発事態はgitを使っている
  • uLinuxのコミュニティでホスティングされてるっぽい
  • Buildroot Developer Daysが毎年開かれている

似たソリューションとしてはYoctoがあるかと思いますが、個人的にはこちらのほうが好きです。

百聞はは一見に敷かずだと思います。

ダウンロードする

ページを見るとリリースされたtarがあります。
私のオススメはgit-cloneになります。
理由としてはconfファイルや自前で変更した部分がgit-diffで一発で分かること。
気に入った場合に3ヶ月後のリリースもgit-rebaseで簡単に移行することができるからです。


ホスト環境をセットアップする

Buildrootの方針として、ホスト環境にできるだけ依存しないようにと設計されています。
そのため、ビルドに必要なものはできるだけ自前でセットアップするようになっています。
しかしながら、wgetなどダウンローダーなど一部ホストに依存するものがありますので、aptなどを使って導入しましょう

https://buildroot.org/downloads/manual/manual.html#requirement



Ubuntu16.04ならば、こんな感じです。
sudo apt install build-essential libncurses5-dev bc git mercurial python3 zip

configをロードする。
どのターゲットに。何をビルドするのか。などをセットアップします。
ここでは既にあるものをロードしてみたいと思います。
make qemu_x86_64_defconfig

他にも様々なものが用意されています。お使いのボードが登録されていたら、それをベースにすることをおすすめします。
例えば、raspberrypi3_defconfigなどがあります。。
https://github.com/buildroot/buildroot/tree/master/configs

ビルドする

make と実行することでビルドが開始されます。
具体的には次のようなプロセスが走ります。
.configを読み取る(上記のdefconfigは.configのロードをしています)
パッケージをビルドする
イメージを作成する

パッケージのビルドはこのようになっています。
tar ballのダウンロード、ソースの展開、パッチの適用、configure、make, make install
これらの進捗はスタンプファイルというシンプルな方法で管理されています。
% ls output/build/busybox-*/.stamp*
.stamp_downloaded .stamp_staging_installed
.stamp_built .stamp_extracted .stamp_target_installed
.stamp_configured .stamp_patched

テクニックとして、それぞれの処理で任意のスクリプトを実行することも可能です。
https://buildroot.org/downloads/manual/manual.html#hooks

実行する

ビルドが完了するとQEMUならこんな感じで~と表示されるので試してみてください!
outputイメージはいくつか選択することができてtarにする。とかsquashfsにするとか、NANDのubifsイメージにするとか色々選べます。
私はtarでNFSルートに使うのがお気に入りです。
https://buildroot.org/downloads/manual/manual.html#_boot_the_generated_images

カスタムする

今回は既にあるdefconfigをロードしてBusyboxベースの小さいrootfsを作成しました。
好きなソフトウェアをビルドしたりオプションを設定したりする方法をここでは紹介します。

make menuconfigとすると、メニュー形式でズルっと出てきます。
menuconfigだけでなくxconfig,gconfigも使えるらしいです。それぞれホストに必要なソフトウェアを導入しておいてください。
https://buildroot.org/downloads/manual/manual.html#requirement-optional

好きなソフトウェアを追加しましょう。
package selection~ -> となっているところを選択するとジャンルが出てきて更に掘るとアプリケーション名が並んでいます。
チェックを入れるとビルド対象になってアプリが入ります。この時、必要なinit.dスクリプトなども導入されるため起動時に自動で立ち上がってくるはずです。

他については、なんとなく雰囲気で掴んでください。たくさんあるので紹介しきれないのです。

更に使いこなすには

パッチを当てたい、無いパッケージを作りたい、こんなときはどうする?
まずはマニュアルに目を通しましょう。Buildrootのマニュアルはとてもわかり分かりやすいです。

膨大な量に見えますが、網羅していてセクション毎に切られているので必要に応じて見れば良いです。
今のところ半分はPart III. Developer guideです。
気になる用語とかをCtrl+Fでサーチすると良いでしょう。
ドキュメントも下記で以上なのでどこを見れば良いんだろう~?と悩む必要がなく素晴らしいです。
https://buildroot.org/downloads/manual/manual.html

使っているとバグとかを見つけることもあるかと思いますが見通しが良いコンパクトなプログラムなのでハマることは少ない印象です。

さいごに

Buildrootというシンプルで活発で勢いのあるrootfs生成ツールを紹介しました。
同梱されているルールを使ってrootfsを生成する方法とそれをカスタムする方法を示しました。
さらにエンジョイする方法としてマニュアルの存在を紹介しました。

以上です。

追記:
BuildrootとQtCreatorを使ってQtアプリを開発する方法という記事を書きました。ラズパイのようなクロスビルド開発するお話です。合わせてどうぞ。

2016年12月6日火曜日

Qtの勉強会を開催し始めた話

この記事はQt Advent Calendar 2016の6日目として書かれました。
宣伝も兼ねて。
今度の土曜日に第3回を開きますので、興味がある人はお気軽によろしくお願いします。
https://qt-users.connpass.com/event/45606/

過去の分
Qt 勉強会 @ Nagoya No1 を開催しました
Qt 勉強会 @ Nagoya No2 を開催しました

勉強会開催のアナウンスはQtユーザ会のメーリングリストに流れてきますので、未登録の方はぜひ参加してみて下さい。
流量はそんなに多くないのでお気軽にどうぞ。
http://qt-users.jp/mailman/listinfo/qt-users

会場準備係としてのお話を少し書きたいと思います。

なぜ始めたか?

名古屋で開催して欲しいという声があったため。

会場に求められるもの

  • インターネットにつながること
  • ググれないと辛いですね。
  • 電源が確保できること
  • 5時間ちかく作業しますから電源は欲しいところです
  • それなりに集中・会話ができること
  • 誘惑とかが少ないほうがいいですね。

会場係としては、費用をできるだけ抑えたいです。
人数が少ないと頭数で割っても高くつく。とかになって参加する気が失せてしまいます。
IT勉強会特有の都合としてはネット、電源という話が出てきます。

幸い、個人的な都合で無料で条件を満たす会場が提供できるので準備係として動いています。

目指すところ

どんな勉強会にしたいか?というお話です。
元々、私は東京に住んでいて長く東京のQt勉強会に顔を出していました。
なので、イメージとしてはこれをそのまま持ってきたいという考えがありました。
具体的には、次のとおりです。
  • セミナー形式にはしない。各々が自由に作業する。発表したい人はする。
  • 定期開催を目指す
  • リピートしたいと思えるような環境を務める

セミナー形式とは発表者がいて、聞く人がいるというスタイルをここでは言っています。
この方式は聴く側は低コストで情報を仕入れられる。というのが大きなメリットだと思っています。
デメリットとしては、発表者を募集しなければならない。発表内容によって参加者の人数の幅が大きい。参加者同士のコミュニケーションが取りづらい。などだと思っています。

そこで、”もくもく方式”を採用しています。
もくもくとは黙々と作業する。とかそんなニュアンスです。もくもく会とかで検索すると良いかも知れません。
具体的にどんな風に開催されているかは後ほど述べたいと思います。

定期開催ですが、これも東京に習っています。一応、毎月第三土曜日としていますが大型のイベントがある場合はコンフリクトしないように調整します。
狙いとしてはご新規さんが参加しやすいようにというところです。
休日ですからいろんなことがあると思います。今日はだるいなー。行きたかったけど行けないや。それでも、次がある。と思って頂ければ割と参加しやすいのではないかと。

リピートさんが増えることで、リピートさん同士が顔見知りになる。ということを期待しています。もちろん、開催している私もその一人です。
少しでも自由な雰囲気が出るように、お菓子持参を推奨しています。別にもくもくとお菓子を食べるという会ではありません。
コミュニティとはなんぞや?といか仰々しいことを述べるつもりはありませんが、そうゆうのにちょっとでも繋がると嬉しいなぁと思っています。


勉強会の流れ

1.始めに、簡単に自己紹介と今日やることを述べてもらいます。
2.作業開始します。気になることなどがあればぼそぼそっと話します。これどうだっけ?というと、周りの人が反応してくれるイメージです。
3.終わりに、今日やった内容を述べてもらいます。
4.懇親会に参加する人がいれば募ってGo


途中でやることが変わってしまったりしても問題ありません。
ただし、Qtに関係ない作業は控えてもらっています。流石に何がなんだか分からなくなるので。
最初にこんなことをやります。ということをみんなの前で話すことによって、やる内容が明確になるので集中できる他、
作業中の質問をぼそっと言っても、「あぁまるまるについてやってるんだな」と分かるため周りもとっかかりやすいのです。
報告はだらけないようにという意味が含められています。
懇親会は夕ご飯(飲み会)です。何をやってたか。など話のネタがあるため初めてでも心配ありません。

まとめ

Qt勉強会の名古屋に対する私の思いを述べました。
OSC名古屋にも参加したいよねーという話もあります。
共感して頂けた方は毎月開催していますので、参加のほどお待ちしております!
人数があまりに少ないと開催するモチベーションが持てないため…。