ichigotake's diary

個人の日記

Ruby on Rails 5 でモジュールを置くディレクトリの役割を知りたい

/app/lib や helper, concers など、再利用性の高いモジュールを設置するディレクトリの使い分け方を知りたい。

Mastodon や参考になりそうなプライベートリポジトリ等のコードリーディングでの自分なりの理解をまとめる。

モジュール設置場所を決定するフローチャート

特定 Gem モジュールのエントリーポイント?(e.g. Capistrano、Rakeタスク) y => /lib

/app 以下の複数のディレクトリで再利用可能な汎用性がある? y => /app/lib

主に /app/view で利用する? => /app/helpers

/app/:dirname 以下のディレクトリで閉じて利用する? y => /app/:dirname/concerns

VRChat デビュー1週間で作ったモノ

アバター

Strawberry Ring

Description: The ring as a strawberry.

苺のチュートリアルを途中で仕上げたモノ。

「中に入ると落ち着く」「ハンドルネームのおかげで苺だとわかった」「きもちわるい」など、会話のきっかけを作りやすいことで評判。

Strawberry Pot

Description: The pot as a strawberry.

苺のチュートリアルを途中で仕上げたモノ。デフォルメ描写の多い VRChat において、局面や種が比較的精工なために不気味に仕上がっている。

「前より分かりやすくなった」と評判。

Ochoko

Description: The Japanese sake cup.

テーブルにお猪口があり、「これくらいなら簡単に作れるかも」と思って作った。

ポリゴン数削減ツールによって生まれた凹凸に使用感があると評判。

Sake Set

Description: The set of Japanese sake.

苺のチュートリアルより簡単そうに見えたので作った。花火のあるワールド(FIREWORKS JP 1.0)で日本酒を飲みながら作業していた。

1週間でオリジナルアバターを用意できるなんてすごい!と褒められた。

ワールド

まだアップロードしていない。

Ichigotake Museum

Description: The ichigotake's story begins.

習作としてのお題がこれといって思い浮かばなかったが、夢がなくても自分語りは誰にでもできることに気づき、VRChat の日記をつける体でワールドを作ってみることにした。

ここには VRChat に向けて作った3Dモデルを展示している。時系列順に並べていて、3Dモデルの並びの中で自作アバターで VRChat デビューをした ときに知ったワールドを設置している。

完成していないものの、オブジェクトを設置するだけのワールド作成が簡単そうなことが分かってよかった。

目標

そろそろ人型アバターがほしい

自作アバターで VRChat デビューをした

概要

ちなみにVR機器は持っていない。

続きを読む

YAPC::Okinawa 2018 ONNASON に行ってきました #yapcjapan

ゆかりのあるイベントが沖縄で開催されるということで行ってきました。

yapcjapan.org

id コールは敬称略です。

続きを読む

「居酒屋選びで困ったときに押すボタン」を作って一ヶ月が経った

この記事は Dark - Developers at Real Kommunity Advent Calendar 2017 の13日目です。


Slack で日本酒のお店がシェアされたとき、行きたいと思い立ったときのためにブックマークしておきたいと思った。そこで作ったのが「居酒屋選びで困ったときに押すボタン」。

ボタンを押すと 事前に用意した居酒屋のリストからランダムに選ばれてリダイレクトされる。

居酒屋選びで困ったときに押すボタン

スクリーンショット

f:id:ichigotake:20171211173928p:plain

続きを読む

【CoordinatorLayout】スクロールするとニュっと動いてヘッダーへ固定される UI は "Flexible space header" と呼ぶとよさそう

こういう挙動について。

https://storage.googleapis.com/material-design/publish/material_v_12/assets/0B6Okdz75tqQsRTM1M1lCWWZiN2c/patterns-scrolling-techniques-flexible-space-xhdpi-003.webm

Scrolling techniques - Patterns - Material Design より

Material Design のドキュメントには Flexible space と記載がある。、英語で呼ぶ時は Flexible space、ヘッダーであることを強調したいときは Flexible space header で通じそう?

(他にいい呼び方があったら教えてください。)

続きを読む

Test::Deep でテスト対象に差があることを期待する場合は eq_deeply を使う

use Test::Deep;

my $got = {
  a => 1,
  b => 2,
};

cmp_deeply($got, {
  a => 1,
  b => 2,
}, '差があるときに Fail させる場合は cmp_deeply を使う');

ok !eq_deeply($got, {
  a => 1,
  b => 2,
  c => 3,
}, '差があることを期待するテストでは eq_deepy を使う');

ドキュメントに書いてあることではあるが、 It does not create diagnostics or talk to Test::Builder という記述を見落としていて、出来ないものと思ってしまっていた。

戒めとして書き記しておく。

https://metacpan.org/pod/Test::Deep#eq_deeplymetacpan.org

Perl Testing: A Developer's Notebook: A Developer's Notebook

Perl Testing: A Developer's Notebook: A Developer's Notebook