catalinaの備忘録

ソフトウェアやハードウェアの備忘録。後で逆引きできるように。

2020年の抱負と昨年の振り返り

2019年のふり返り、2020年の抱負

新年あけましておめでとうございます。例年やっているふり返り記事になります。かたりぃなです。

まず最初に。気が付けばこのブログの読者も30人を超えていました。まだまだ未熟者のブログではありますが読んでくださってありがとうございます。

今後も活動を続けていきますのでご愛顧のほどよろしくお願いします。

最初に2020年の目標を一言で表現すると。。。

ダイの大冒険のアニメ化の合わせて、ARで魔法や必殺技を再現する!」

です。20年以上前の夢、メドローアやアバンストラッシュ撃ちたいとかミナカトールで魔法陣を発動させたいという夢を叶える絶好のチャンスです。

(いつも物体検出やトラッキングで詰まっているように見えるのは気のせいということにしておきましょう)

それでは2019年のふり返りと2020年の抱負をやってみたいと思います。

2019年やったこと

このブログで2019年に記事にしたものをふり返ってみます。

記事にしたものは3つあります。それとは別に、記事にしてないものも軽く触れてみます。

1. フォトグラメトリ

OpenMVGとOpenMVSですね。

目的は「コスプレ用のアイテムを3Dプリンタで作りたい。3Dモデリングが手間かかるので、3Dモデルも自動で作りたい」というものでした。

試行錯誤しましたが、目的を完全に果たすことはできませんでした。

目標達成には至りませんでしたがOpenMVGのコードを追うことで技術的な理解が深まった点は良かった点かなと思います。今までARで追ってきていた技術の基礎の延長上の話だったので、やっぱり基礎は大事だなと思った次第です。

最終的にはMeshRoomというOSSを使用することで、使えそうな3Dデータが得られました。このMeshRoomで生成した3Dモデルも完全なものではないので、3Dモデリングの下書きとして利用しています。

結局は単体技術で全ての課題を解決するだけではなくて、運用まで含めて妥当な落としどころを見つけるのが大事ですね。もちろん単体技術で解決できるならそれは理想ではあるのですが。

2. インフラ

私の中で利用できる技術が2つ増えました。

  • ELKスタック(ElasticSearch, LogStash, Kibana)
  • Ansible-Playbook + ELKスタック

どちらもdocker上で動かしています。

EKL

ログ分析はシステムを運用するうえで今後も必要な技術だと考えているので、少しずつでもこれらを使えるようになっておいて損はないと思います。

実際の運用ではELKを素のままで使うことはおそらくないだろうなと思っていて、何らかのデータストレージのフロントとして使うことが多いだろうと想定しています。

また、ELKに文字列を突っ込む際に形態素解析を試したりしたのも楽しかったですね。PythonからMecabを叩いてたりしました。

Ansible-Playbook + EKL

まだ記事にしていないお話しです。「Ansible-Playbook + ELKスタック」というものを試していました。

どういうものかというと、Ansible-Playbookのログ(changedとかokとか出るアレ)をELKに渡しておくことでログの視認性を良くするのが目的です。

Playbookのログって見づらいので、色々と試行錯誤していてこの手法に辿り着きました。

これができると何がいいかというと、よくあるPlaybookの問題「changedが出てるけど、これ何?常に出る(=実は無視していい)やつでは?」を簡単に切り分けできるようになるだとうと思っています。

もちろんログを蓄積してあるという前提ですが。

CI/CDの監視で使えば幸せになれるかもしれませんね。本年の早い段階で記事にしておくつもりです。

Ansible-Docker

これもまだ記事にできてないお話しです。Dockerのデプロイで外部のコンテナリポジトリを使わずにデプロイするものです。

AnsibleのモジュールでDockerコンテナを操作できるものがあるので、利用したものです。 やりたいことと完全にマッチしているわけではありませんが、工夫すれば色々とできそうです

Ansible-Playbookの枠組みで次のことが実現できるので、迅速に開始させたいサービスでコンテナを使う場合には選択肢としてアリなのではと思っています。

  • dockerイメージを作れる
  • dockerイメージをエクスポートできる
  • dockerイメージをインポートできる
  • コンテナ操作できる(調査中)

3. MixedReality(Hololens)

自分はHololensでC++を使う奇特な人種なので、UWP用の新しいC++/CLRとしてWinRTを試してみました。C++/CXより良くなってる気がします。しばらく使っていくうちに現時点での不足部分もわかってきました。

記事にしていませんが、C++/WinRTを使ってUnityネイティブプラグインを書いてみたりもしました。

まだうまくいってなくて落ちたりするので、もう少しデバッグしてから記事にする予定です。

Unityネイティブプラグインに手出しした理由は、C++だけだとライブラリの充実度などの問題で、開発速度があがらないためです。たとえばVRMやglTFのモデルの取り込みとかはUnityのほうが圧倒的に進んでいる印象です。

そう思ってUnityで色々と試してみたものの、やはり慣れない環境というのは手間取ってしまいます。

特にHoloToolkitからMRTKへの移行で躓いてしまったのは残念ポイントです。そうこうしているうちに2019年が終わってしまいました。

2020年はリベンジです。

あと新型も買わなきゃ(レンタルかなぁ)ですね。

4. 記事にしてない大きなカテゴリ

そのうち記事にするので軽く触れてみます。(後者は記事にはしないかも)

  • TweLiteプロジェクトの再構築
  • 投資

twelite

TweLiteはZigBeeプロトコルでIoT的な用途で使える便利なやつです。 今回TweLite2525Aが出てたのと、開発環境がVSCodeになっていたので一通り作り直しました。

久しぶりの組み込みプログラミングでしたが、慣れている部分が多いのでサクっといきました。 TweLiteは次の点が優れていると思います。

なので、私のような低レベルレイヤで戦った人であればコード読んですぐ開発に入れる環境でした。 (OS固有の仕様とか無いので、一般的な組み込みプログラムの理論だけで通用する)

電子回路回りも作ってあるので、あとはどこかのイベントで実験するだけですね。

投資

投資はプログラムとは全く関係なくて、他の道を探すときにどうなるのだろうという試みの一つになります。

動機は

  • 不労所得が欲しい(収入を増やしたい)
  • 老後の資産形成

などです。

サラリーマンの収入は、勤めている企業の収益や社内政治に影響される部分が大きくて、収入を増やすにはそれらの理解が欠かせません。

私は社内政治というか人づきあいに興味が薄いので、市場理解のほうへ挑戦したというところです。

市場理解と投資の関係について少し述べると、市場そのものの動きを理解するために実際に投資・運用して、自分自身が投資家の立場としてどうするかを理解していくのが近道だと考えたためです。

2018年は実験、2019年は本格的に投資の売買をしました。

一旦の結論として「物事を分析して判断する力」があれば投資で稼ぐことは可能だということがわかりました。

この「物事を分析して判断する力」力は多くのソフトウェアエンジニアには自然と備わっていると思っていて、例えばリスク管理の分野で考えるなら

  • どこまでなら損を許せるか(リスク評価と対策)
  • 損した原因を分析できる(原因分析)
  • スコープを明確化できる(短期的な売買/長期的な売買を区別できる)

などが該当するのではないかと考えます。 「損」という言葉を「障害」や「影響範囲」などに置き換えれば身近なものに感じるのではないでしょうか。

ひとまず年利5%前後を達成できているので、継続していきたいと思います。

ファイナンスのための確率解析 II (連続時間モデル)

ファイナンスのための確率解析 II (連続時間モデル)

ファイナンスのための確率解析 I

ファイナンスのための確率解析 I

  • 作者:
  • 出版社/メーカー: 丸善出版
  • 発売日: 2012/04/20
  • メディア: 単行本

こんな本購入したので、こちらも機械学習のついでに読み進めていっています。 知らない用語ばかりなので難航していますが、新しい知識というものは楽しいものです。

2020年のテクノロジー予想

ARって未来の技術」とか「特別なもの」みたいに思われていたのが2018,2019年までかなと思っています。

ここ数年のテクノロジーを見ていると、ARデバイス単体でARができるのは当たり前で、次のステップに移りつつあると考えます。

具体的には

などが考えられます。

ガートナーが発表しているテクノロジのハイプサイクルで2018年に「過度な期待のピーク期」を超えて「幻滅期」へ、2019年には図から消えました。2018年の発表では、"今後5~10年"に"競争優位性をもたらす可能性が高い"との表現でした。

このことから、2020年はまさに啓蒙活動や生産の安定性にむけた大事な時期ではないかと考えます。

xRについて思うこと。

毎年がVR元年と言われているここ数年ですが、エンドユーザーに向けてxR(VR,AR,MR)を推すのは少々筋が悪いのでは?と思っています。

xRは表現手段、情報の表示手段の一つであってユーザーが求めているものではないはずです。ユーザーが求めているものは

  • 必要としている情報を
  • 必要なタイミングで
  • わかりやすく見せてくれること

だと思っています。

スマートフォンが普及した現代ではスマートフォンの画面に情報を表示するだけで充分な場合もあります。 逆にスマートフォンの画面だけではわかりにくい情報は、別の方法でユーザーに見せる必要があります。

前者はいわゆるビューワーやクーポンなどのアプリで、後者は地図アプリなどが代表例でしょうか。

xRでも同じことで、概念的には「従来と見せ方の手段が異なる」だけです。

しかしデバイスとしての制約(装着するなど)があるため、どうしても区別してユーザーに説明することになってしまうので、「これはVRである」「これはARである」みたいにあまり重要ではない部分に話を持っていかれている感がします。

AR,MRについて技術的な観点から考えると「仮想世界と現実世界の情報をシームレスにやりとりする」という点がポイントになるのかなと思っています。

キーボードやマウスを使わなくても片手に収まるタッチパネルだけで情報検索ができるようになったのと同じように、タッチパネルを使わなくても声だけ、周囲の情報だけで自動的にユーザーが必要としている情報を推論して必要な情報を提示するという形が将来のMRなのかなと思っています。

2020年やりたいこと

Hololensをメインにやっていこうと思います。今までサーバ側がメインだったので、HololensとUnityをしっかりと調べたいと思います。

Hololens2も来ますし、そっちに軸足を移しつつ進めていきたいですね。

また、2020年からは転職も視野に入れて活動しようかと思っています。

本業は都内のWeb屋で働いていて、器用貧乏な中年です。 もしこのブログの内容を見て興味あるという方いらっしゃいましたらtwitterかコメントでも連絡いただければと思います。

本業の内容はこのブログより深く高度なことをやってはいますが、どろり濃厚なので公にはしづらいのです。あしからず。

それはさておき、まずは自分の力で何かを作り上げていくのが何よりも大事だと考えているので、今年もそれに向けて頑張っていこうと思います。それではこれくらいで。

本年もよろしくお願いします