読者です 読者をやめる 読者になる 読者になる

好き勝手に・げーあにん?

ファミコンと同い年の社会人ヌルオタの日記

Railsチュートリアル(第3版)をやった

Ruby

railstutorial.jp


以前からやってみようとはおもいつつ時間がかかりそうだったので敬遠していたのだが、先週から仕事が急に暇になってしまったのでようやくやった。

1日4時間ずつぐらいやって6日もかかってしまった。だいぶ時間かかったなぁ。Herokuでメールをおくるための設定とAmazon S3を使わないといけないところは飛ばした。

この手のチュートリアルで面倒な環境構築が、クラウド環境(Cloud9)を使ってあっさり終わるのが良い。自分の環境も汚れないし。

Railsチュートリアルをやるだけで MVC も RESTful API も身についちゃうし、git も heroku も使えるようになっちゃう凄い!みたいな感想はきっといろんなところで言われてるので略。
実際すごい丁寧だし、いいチュートリアルですよね。学習コストが高いと言われてる理由も実感できてよかった。

以下、個人的な備忘。

詰まったところ

たまに Guard と rake test の結果が違うことがあってかなり戸惑った。
11.4.1まで進むと

システムによっては、ここで一旦Railsサーバーを再起動させる必要があります。再起動させたらテストスイートを走らせてみてください。成功しているはずです。(ただし、3.7.3で説明したGuardを使っている場合は、再起動させるだけではうまく動かないかもしれません。その場合はターミナルから一旦抜けて、新しいターミナルでGuardを再実行してみてください。)

というGuardでうまく行かないことがあるという表記が出てくるのだが、もっと早く教えて欲しかったな……。11章までたどり着く前に、3回ぐらい起こったと思う。

気になっていること

rails console でどんなSQLが実行されているのか確認しながらやってたんだが、11章

class User < ActiveRecord::Base
  has_many :microposts, dependent: :destroy
  .
  .
  .
end

has_many :microposts, dependent: :destroy を設定した状態で、 User#destroy を呼ぶと

(0.1ms) SAVEPOINT active_record_1
Micropost Load (0.2ms) SELECT "microposts".* FROM "microposts" WHERE "microposts"."user_id" = ? ORDER BY "microposts"."created_at" DESC "user_id", 102
SQL (0.2ms) DELETE FROM "microposts" WHERE "microposts"."id" = ? "id", 1
SQL (0.3ms) DELETE FROM "users" WHERE "users"."id" = ? "id", 102
(0.1ms) RELEASE SAVEPOINT active_record_1

上記のような SQL が実行されているのが気になっている。SELECTなしで、

DELETE FROM "microposts" WHERE "microposts"."user_id" = ? "id", 102
DELETE FROM "users" WHERE "users"."id" = ? "id", 102

だけにならないものか。SELECTを呼んでるのは百歩譲ってまぁ良いとしても、
default_scope -> { order(created_at: :desc) } が DELETE するときにも効いてしまっているのが残念感ある。どうにかならないものか。

Railsチュートリアルだけだとわからなかったが、よく使いそうなもの

  • エラーページ関連
    • 404 not found が出たときの処理やページをどうすればいいのか
  • HTTP status code だけ返したいときとか
  • メンテナンス中などで、一時的に一括で同じページに飛ばしたいとき
    • sinatra だと get('*'){ maintenance? ? erb(:maintenance) : pass } とかですぐでできちゃう奴

ちょっとググればすぐ出てくるけども。メンテ中表示とかはどうするのがいいのかは要検討か。


特にまとめとかなく終わり。

デレステガチャ記録 4,5月

通常確率

回数 取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
10連 13 30 / 24.705 1 / 1.68
単発 69 6 / 6.9 1 / 1.035

SSR2倍

回数 取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
単発 3 0 / 0.3 0 / 0.09

4,5月合計

取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
36 / 31.905 2 / 2.805

全期間合計

取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
140 / 126.98 11 / 14.43

雑感

順調にSSR期待値に負けていっている感じ。

5月は待ちに待っていたSSR宮本フレデリカが追加されたので出るまでまわした。限定で来ることも覚悟して、iTunesCardの割引を見つけてはコツコツ買いためていたのだが、だいぶ余ってしまった(苦笑)。シンデレラフェスが3ヶ月に1回あるとすれば5月末に来ることになるので、その時にまた回そう。

読書メーター5月分まとめ

2016年5月の読書メーター
読んだ本の数:9冊
読んだページ数:3271ページ
ナイス数:9ナイス

Game Programming Patterns ソフトウェア開発の問題解決メニュー (impress top gear)Game Programming Patterns ソフトウェア開発の問題解決メニュー (impress top gear)
読了日:5月31日 著者:RobertNystrom
六秒間の永遠六秒間の永遠感想
文庫よりお高いので買うのを後回しにしていたのだが、ようやく読んだ。杉井光の警察モノの中では一番好きかも。主人公がヒロイン絡み以外では捜査で役になっていないあたりも等身大な感じがして好印象。あんな能力があって等身大なんていうのも変だが。タイトルがネタバレなのはどうかと思う。
読了日:5月24日 著者:杉井光
Computer Graphics Gems JP 2015Computer Graphics Gems JP 2015
読了日:5月20日 著者:山本醍田,鈴木健太郎,小口貴弘,德吉雄介,白鳥貴亮,向井智彦,五十嵐悠紀,岡部誠,森本有紀,上瀧剛,坂東洋介
Computer Graphics Gems JP 2013/2014:コンピュータグラフィックス技術の最前線Computer Graphics Gems JP 2013/2014:コンピュータグラフィックス技術の最前線
読了日:5月18日 著者:金森由博,井尻敬,堀田一弘,五十嵐悠紀,徳吉雄介,安田廉,山本醍田,向井智彦,梅谷信行,今給黎隆
とある魔術の禁書目録×電脳戦機バーチャロン とある魔術の電脳戦機 (電撃文庫)とある魔術の禁書目録×電脳戦機バーチャロン とある魔術の電脳戦機 (電撃文庫)
読了日:5月14日 著者:鎌池和馬
漫才入門 ウケる笑いの作り方、ぜんぶ教えます漫才入門 ウケる笑いの作り方、ぜんぶ教えます
読了日:5月10日 著者:元祖爆笑王
プログラマのためのSQL 第4版プログラマのためのSQL 第4版
読了日:5月7日 著者:ジョー・セルコ,JoeCelko
人類最強の純愛 (講談社ノベルス)人類最強の純愛 (講談社ノベルス)感想
潤さんの哀で純愛的なダジャレかと思ったらそんな話しじゃなかった。……なかったよね?
読了日:5月6日 著者:西尾維新,竹
この大陸で、フィジカは悪い薬師だった (電撃文庫)この大陸で、フィジカは悪い薬師だった (電撃文庫)
読了日:5月3日 著者:鳩見すた

読書メーター

去年末に出ていることに気づいた Computer Graphics Gems JP 2012以降をようやく読んで、やっと去年まで積み本を消化できた感ある。どんな内容なのかを流し読みした程度なので、中身はほとんど理解してないけど(苦笑)。

プログラマのためのSQL は先月から読んでて、途中まではまじめに読んでいたのだが、内容を理解するまでに時間がかかりすぎるて、途中から流し読みに切り替えてしまった。ここまでごりごりにSQL書く機会も無さそうだし……

漫才入門はだいぶ前にAmazon日替わりセールで99円になっていたので買ってみていた。あまり考えたこともなかった漫才の方法論的な内容で興味深く買って得した感じ。定価では買わなかっただろうけども。

Game Programming Patterns。良い内容がよくまとまっていてページ数もそれほど多くないし、他の人に読ませるにはとても良さそう。GoFを読んでない人が読んだらどんな感想になるのかは気になるところではある。

読書メーター4月分まとめ

2016年4月の読書メーター
読んだ本の数:2冊
読んだページ数:704ページ
ナイス数:16ナイス

俺を好きなのはお前だけかよ (2) (電撃文庫)俺を好きなのはお前だけかよ (2) (電撃文庫)感想
あっという間に『お前だけ』じゃなくなってしまったなぁ。神様を呼び出すところは勢いもあいまって笑った。
読了日:4月22日 著者:駱駝
ソードアート・オンライン (17) アリシゼーション・アウェイクニング (電撃文庫)ソードアート・オンライン (17) アリシゼーション・アウェイクニング (電撃文庫)
読了日:4月16日 著者:川原礫

読書メーター


先月から引き続き漫画ばかり読んでいる。漫画ばかりというか、『やがて君になる』ばかり読んでいる。こんなに同じコミックスを何度も読み返すのは久しぶりだ。PVに寿美菜子さんが出ているというのにほいほい釣られた結果がこれだよ。


ameblo.jp


アニメ版のゆるゆり桜Trickのイベントが立て続けにあった後に、やがて君になるにハマってしまったもので、ついに私も百合に目覚めたのではないかと錯覚し、他の百合漫画にも手を出してみたりしたものの、今ひとつピンとくるものがなかった。新ジャンル開拓は難しいなぁ。そもそも、毎週買ってるジャンプとかマガジンの新連載だって好きになる作品は1年に1作品増えるか増えないかぐらいだもんなぁ。


週マガの新連載で個人的には久しぶりにヒットした作品もついでに貼っとく。

Unite Tokyo 2016 に行った感想とメモ

Unity

去年は仕事の忙しい時期と被ってしまって行けなかったのだが、今年は無事に参加できたので、感想と覚え書き。

自分用に書いていて、他の人が読んでわかるものにしようとしていないのでご了承を。講演資料はほとんどが公式ですでに公開済みなので、セッションの中身が知りたい人はそっちを見てねということで。

http://japan.unity3d.com/unite/unite2016/schedule

1日目

モバイル端末向けのUnityアプリケーションの最適化実践テクニック

スマホゲー作るなら必読資料何じゃないかと思う。他のスマホゲー開発事例でもこのセッションに含まれてることと同じようなことを言ってるのがあったりした。

Boxing が数が増えがちで結構重いぞ、というのはあまり考えたことがなかった。例としても書かれてるけど、Dictionary のキーに数字とか使ってる所あるかなぁ。

ゲーム中のアロケーションを減らせというのは基本中の基本なんだけど、IEnumerable が生成されてしまうから、foreach を使うなというのは C# ならではだなと思った。そうだよな、for文の糖衣構文とかじゃないんだもんな……

Replacing Callbacks の辺りは ちょっと前にUnity Blogに書かれたもの が詳しい。

Unity+スマホで3Dゲーム開発/最適化するための考え方

資料の公開予定なし。ざっくり講演の説明すると、メインキャラ5人がモーションキャプチャーで動いて 60fps を維持しなければいけないゲームの開発事例。ゲームタイトルは明言できないとのこと。いやー、なんのゲームの事なんだがサッパリわかりませんね(棒読み)。

パフォーマンスをくう部分の取捨選択を仕様レベルでしっかり決めるのが大切だよなという印象。テクスチャは圧縮テクスチャのみでアルファもなし、ウェイトのボーン数は2、ライティングなし、ImageEffectは効果の高い Depth of field と Bloom のみ。削れるところはしっかり削って効果の高いものをしっかり選ぶのって、簡単なような意外と出来ないんだよなぁ。誰かがあれやりたいこれやりたいとか絶対言い出していちいち説得しないといけない(個人的な愚痴)。

クロスの処理を自前でやっていて、しかも計算が多い部分はネイティブで書かれているというのが印象に残った。特にAndroidで有効だったと言っていたような気がするが、Androidも IL2CPP が使えるようになった Unity5.2 以降なら、ネイティブで書かなくても遜色なかったりするんだろうか。

Unityグラフィックス最新機能ガイド

見たかったが、『Unity+スマホで3Dゲーム開発/最適化するための考え方』の方を優先させたので資料だけみたが、資料だけだとよくわからないな。動画待ち。

Unity5.3 より 5.4 の方がマルチレンダリングが更に良くなるぞ!というのは伝わった。ここまで違うなら 5.4 に移行したくなるなぁ。

ハードウェア性能を引き出して60fpsを実現するプログラミング・テクニック

3つの工夫として上げられている

  1. ゲームロジックを別スレッドで実行する
  2. GPUを多用する
  3. 動的なメモリ確保をしない

というのは至極まっとうな事なのだが、別スレッドを使おうとすると、ほとんどの Unity API が使えないからいろいろ自作しないといけないというのは、聞いている分には楽しいけど絶対に真似したくないよなw ゲーム側で切り分けしやすそうなものを別スレッドにするという選択肢は気に留めておきたい。

そもそも、Unityのコリジョン計算などの部分がマルチスレッドで実行されてたりしたらいいような気もするんだけど、その辺はどうなってるんだろう?

学校では教えてくれないアセットバンドルのしくみ

UnityWebRequest の事がよくわかっていないのだが、これは今までの WWW を置き換えるべきものなんだろうか。 WWW で出来なかったことや、bytes を使っていたなら UnityWebRequest を使ったほうが良いという認識でいいのか?

「学校では教えてくれない」と題目についていたので、マニアックな内容とかがあったりするのかと思ったが、そういうのはなかった。

2日目

主にグラフィック系の講演を多めに見ていたのだが、凄いなーと思った(小並)ぐらいで、あまり書けそうなことがない。


おわり。

読書メーター3月分まとめ

2016年3月の読書メーター
読んだ本の数:5冊
読んだページ数:1681ページ
ナイス数:34ナイス

俺たち!! きゅぴきゅぴQピッツ!! (電撃文庫)俺たち!! きゅぴきゅぴQピッツ!! (電撃文庫)
読了日:3月24日 著者:涙爽創太
血翼王亡命譚 (1) ―祈刀のアルナ― (電撃文庫)血翼王亡命譚 (1) ―祈刀のアルナ― (電撃文庫)
読了日:3月21日 著者:新八角
ソードアート・オンライン オルタナティブ ガンゲイル・オンライン (4) ―サード・スクワッド・ジャム ビトレイヤーズ・チョイス (上)― (電撃文庫)ソードアート・オンライン オルタナティブ ガンゲイル・オンライン (4) ―サード・スクワッド・ジャム ビトレイヤーズ・チョイス (上)― (電撃文庫)感想
私はガンマニアでもなんでもないのだが、銃を乱射しているであろう情景が脳内にあふれ出て幸福とハッピーになる。なんだろうこの気持ち。次巻も楽しみなんだけど、またT-Sの逃げ切り勝ちみたいなオチにならないことを祈る。個人的にはレン対光剣に期待したい所。
読了日:3月15日 著者:時雨沢恵一
ハケンアニメ!ハケンアニメ!感想
評判が良さそうなのは風のうわさで聞いていたが「覇権アニメ」という言葉があまり好きになれず敬遠していた。Kindle版が安くなっていた時に買ってひとたび読み始めたら一気に読みきってしまった。男女関係の話が多く感じて、だいぶ思ってたのとは違ったけど面白かった。
読了日:3月10日 著者:辻村深月
APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)APIデザインケーススタディ ~Rubyの実例から学ぶ。問題に即したデザインと普遍の考え方 (WEB+DB PRESS plus)
読了日:3月8日 著者:田中哲

読書メーター

数日前にも書いたが、3月はひたすらマンガを読んでいたためためペースが落ち気味。3月上旬に1冊読み終わって以来、技術書は全然読んでない。いかんいかん。

APIデザインケーススタディは、Rubyを使いやすくしてくれている事への感謝の念を抱いたりはするのだが、APIデザインを学べる本という印象はいまひとつ薄いようなそうでないような。IOとか時刻とかがめんどくさそうだという印象が強すぎるのかもしれないw

デレステガチャ記録 3月

通常確率

回数 取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
10連 2 4 / 3.77 0 / 0.3
単発 34 2 / 3.4 0 / 0.51

SSR2倍

回数 取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
10連 7 17 / 13.09 2 / 2.1
単発 1 0 / 0.1 0 / 0.03

3月合計

取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
23 / 20.36 2 / 2.94

全期間合計

取得SR枚数 / SR期待値 取得SSR枚数 / SSR期待値
104 / 95.075 9 / 11.625

雑感

3ヶ月ぶりのSSR確率2倍! SSR2倍ではほぼ期待値どおり出たものの、他でまったく出ずまた期待値から遠ざかってきている。ぐぬぬ

60ガチャで20回連続Rを引いたりしたものの、トータルでは何故かSRは常に期待値を大きく上回る。私の計算方法が根本的に間違ってるんじゃないかと思い始めている。じゃぁなんでSSRは(以下略)

リセマラして取った最初のSSR1枚は換算していないので、これでSSRがやっと10枚。キュート6枚、クール2枚、パッション2枚という偏りっぷりのおかげでハイスコアは上げやすいのが救い。