事前にレビューさせていただいた、技術書典6で配布されたRubyとRailsの学習ガイドを@igaiga555さんからいただきました。

Image from Gyazo

チラみせ

Image from Gyazo

これからrubyの勉強を始める人に最適のガイド。

傍らに置いておけば、わからない用語が出てきたときには「これに載ってたやつだ」となるかもしれない。

見て思ったのはむしろRuby・Railsをキーワードに勉強始めてる人の方が役に立つかもしれないということ。「これからどの方向に深めていけばいいのか」がわかりやすいので。

これとRuby超入門を読めばかなりスムーズなスタートがきれるんじゃないでしょうか。

フィヨルドブートキャンプでは新しく来る人に配ろうと思っております。

電子版がBoothで500円なので気になる人は何も考えず買っちゃっていいのでは?

関連

去年に続いてminneハンドメイドマーケット2019に行ってきました。

今年はビックサイトでなにか別の催し物があるらしく、さいたまスーパーアリーナでした。

Image from Gyazo

僕らは1日目のお昼ごろに行ったのですが相変わらずすごい人。

基本的に8割ぐらいは女性向けのアクセサリーが中心ですが、男性におすすめなのが腕時計です。

去年も手作りの時計が気になってたのですが、今年は木でできたApple Watchのバンドがあったので買っちゃいました。

Image from Gyazo

Image from Gyazo

Apple Watch 木製ベルト - 木製腕時計のお店 EINBAND-アインバンド-

今までは純正パチモンの金属ベルドだったんですが、これがすごく重くて、作業中は常に外していました。木のベルトにしたら凄く軽くてかなりいい感じです。

さいたまスーパーアリーナだと隣にご飯が食べられる店が沢山入ったところがあるのでそこで食べましたが、去年のようにハンドメイドマーケット内に軽食のワゴンとかのコーナーがあるとよかったかなーと思いました。(スイーツ系はあったのだけけど)

その場で教わって作るワークショップは今年は去年よりたくさんありました。

僕らは瓶の中に苔のテラリウムを作るのをやりました。

Image from Gyazo

Image from Gyazo

苔の成長は遅いらしいですが、最終的には太古の地球のようにモッサモサになってほしい。

minneハンドメイドマーケットは行くと「なにか作ろう!」というモチベーションが上がるのでこれからも毎年行きたい。

先日行われたRails Developers Meetup 2019プログラミングスクールを作ってみたという発表をしました。

ss

スクールを始めたこと自体が以前のRailsDMがきっかけだったこともあり、発表資料を作りながら、

「どういうスクールにしたいんだっけ?」

など整理して考える機会にもなりました。

実際、お金がなくなったピンチなどいろいろありましたが持ち直し、卒業生も増えつつあるのでなんとか頑張っていきたいと思います。

有料化についてはStripeでの決済機能を僕が実装終わったらスタートという感じです。(作り中・・・)

基本自分は家だと作業ができないのでオフィスに行きたい。そこで理想のオフィス環境について考えてみました。

  • 家とあまりに近すぎると嫌だけど、電車で30分以内ぐらいであると嬉しい。
  • 狭すぎるのは嫌だけどあまり親しくない人がいるぐらい広いのも嫌だから10人ぐらいが余裕をもって入れるぐらいの広さがいい。
  • 水のボトルが常に冷えていて、朝きたらサッと取れると嬉しい。
  • 豆から入れるコーヒーメーカーがあっていつでも飲めると嬉しい。
  • あまりに遊ぶものがたくさんあると気が散ってしまうが、Switch、PS4ぐらいはあって、大きなディスプレイがあると良い。
  • スト2、5などのためにアケコンが2台欲しい。
  • 玄関が散らかるし、楽なので土足のタイプがいい。
  • 大きすぎる必要はないが、机の横幅は最低でも120cmは欲しい。
  • 外部ディスプレイとハイスッペックなMacBook Proがあるといい。
  • ノイズキャンセリング有りのヘッドホンが欲しい。
  • 椅子はアーロンチェアとかその辺の良い目のであって欲しい。
  • 10人ぐらいの小規模なミートアップができる大きいプロジェクターと設備・スペースが欲しい。
  • 自転車できても止められる自転車置き場が欲しい。
  • ビデオチャットしても途切れないぐらいの高速で安定したネットがあって欲しい。
  • ちょっとしたパーティーがすぐできるぐらいに酒・ツマミ類が常備してあって欲しい。
  • 話してばっかりいるより基本みんなモクモクと作業するまったりした雰囲気であって欲しい。時々成果を発表する場があればよい。
  • ミーティングやビデオチャットのための別室があると嬉しい。
  • BGMが薄ーく流れていて欲しい。
  • イザというときのために全席に有線LANが(汚いケーブリング無しに)あるといい。
  • 電源は全席にキレイな感じで付いていて欲しい。
  • コートを書けるところや、個人の荷持を置くところが欲しい。

個人や数人の会社のイメージですが、書いてみてそこまで無理じゃないなと感じた。フリーランスの人でも何人かで借りれば行けそう。

そしてこういう場所が欲しいというのは仕事をしてないとしても変わらない。結局自分は飲み会ばっかりしてるというよりも、基本モクモクプログラムを書いて、時々その成果を発表したり、それを肴に飲んで話したいのだなと思う。

お礼が遅くなりましたが、オフィスの引越し祝いにスマートロックのQrio LockとQrio Keyをいただきました。

Qrio Keyはそーだいさんにいただきました。

本業のテック系では何故か関わりがないのにスト2では大変お世話になっております。(そーだいさんのボタンさばきを楠元さんと一緒に真似して練習してます。)

Qrio Lock本体の方、どなたが送ってくださったのかわからず、もし「送ったの俺だよ」という方がいらっしゃったらTwitterででも「俺だよー」と言っていただければ幸いです!

新しいQrio Lockレビュー

一つ前のQrio Smart Lockを楠元さんが持っていてオフィスで使っていました。

弊社スクールに通ってくる人に対して、毎日来る人にはQrioでゲストキーを発行しています。物理キーに対するメリットは鍵が紛失しても鍵穴側を変えなくてもいいところです。(アプリで鍵を削除すればいい)

ドアが閉まっていれば必ず鍵がかかっているので「鍵をかける」ということが生活から消えました。

また「あれ、鍵かけたっけ?」ということもありません。

Image from Gyazo

新しい本体は少し形がかわってるものの、基本的には変わらないですね。ネット経由で操作するためのQrio Hubも以前のものがそのまま使えます。

そして新しいQrioの一番の違いはこれ。

Image from Gyazo

このチェーンのしたについている楕円の小さいのわかりますか?これはドアが開いてるか・閉まってるかを見るセンサーでです。これはドア枠側につけます。

これによって「アマゾンが来た時、ドアを開けてサインしてる間に閉まってうざい」問題がが解決するのです!(ドアが開いてるとロックされない)

これはすばらしい!

Image from Gyazo

Qrio Keyは車のキーみたいなやつです。

スマホを取り出して開けるのは手間なので、ドアホンにぶら下げていて、「どうぞおはいりくださいー」といってこれで開けています。便利!

欲しい機能

Web APIです・・・。鍵の発行や削除が手動なので、ブートキャンプにサインアップしたら鍵作成とかやりたい・・・。

idの順番に依存しないコードを書こう - komagataのブログ

このエントリーに @jnchito さんがエントリーを書かれていました。

【Rails】idでソートするか?created_atでソートするか? 〜 Re: idの順番に依存しないコードを書こう - Qiita

こちらに対する僕の考えも書いておこうと思います。(こういうのってブログっぽいですね!)

  1. created_atでソートするときはcreated_atにインデックスを貼る。
  2. 意図が無い場合はソート自体しない。

1はそのままですね。created_atでソートしない場合は貼らなくて良い。元エントリーもそれ前提で書いてました。

2は「idでソートしたい」という意図がない場合「とりあえず何らかのソートをしなくちゃ」と思ってる場合はソート自体しなくて良い。ランダムなuuidでソートするのとソートしないのと変わらんと思う。

ただ、ソーシャルゲームとかその他の超膨大なデータを処理する時にパフォーマンスの問題でこの前提をあえて崩すのは良いと思う。非正規化と似たようなもん。ただあくまで基本はidでソートしない方が良いということ。

最近レビューでよく書くのでまとめておきます。

指摘

idでソートするとか、idがインクリメンタルな数字ということを前提とするコードは避けよう。古い順に並べたいんだったらcreated_atとかが作成日なんだから「古い順」ということをより表現していることになる。

理由

idをuuidとかに変えた場合バグになる。

古いものを取ろうとしてidでソートしてfirstとかやっちゃいかん。

管理画面のユーザー一覧をid降順でソートしてて、最近追加されたユーザーは一番最初にきてたのuuidにしたら並びが変わった・困るとお客さんに言われることになる。

rails+postgresでidにuuidを使う - komagataのブログ

Microsoft系のライブラリやフレームワークもuuidがidのこと多い。

railsもfixturesではidはランダムに入るのでidがインクリメンタルな数字という前提のテストはコケる。(偶然動いたりするがそのうちコケる)

補足

もちろんだけど、こういうコードは全く問題ないヨ!

@post = Post.find(params[:id])

むしろidはidentifierなんだから本来の使い方。気をつけるのはソート。

つづき

created_atでソートする場合はインデックスを貼る - komagataのブログ

@is8r_ さんにこのように教えていただいたのでやってみた。

Image from Gyazo

MixamoというAdobeのサービスはFBXファイルなどをアップしてアゴや膝の位置をなんとなくしていするとRigを入れてくれる。便利なサービスもあったもんだなぁ〜。

Image from Gyazo

なんか手がねじれてるし、MPが減りそう!

奥さんがblender入門するぞ!と頑張っていた。

Image from Gyazo

俺も年末年始触っていたので奥さんが第一号で作った変なクマにrigを入れてunityで動かしてみたい。

Standard Assetに入っていたThirdPersonControllerを使って動かしてみた!

Image from Gyazo

完全に溶けてるし物理攻撃が一切無効感。なんでこうなった?

むずかしいな〜

こんなこと書いたら「クッソスクールワロタwww」と言われるかもしれないが、僕らはプログラミングとプログラミングをする人が好きなのであって教えること自体が好きなわけじゃない。

もちろんプログラミングをする人とプログラミングを通じたコミュニケーションである「教えること」も嫌いじゃないが一番やりたいのはプログラミングなのだ。

Image from Gyazo

野球が好きで「おーい、磯野、野球やろうぜ」と誘うのだが野球のルールもバットの振り方も知らないというのではメンツにならない。だから教えるという感じ。

教育関係の人がキッチリやっているところの方が教え方は上手いかもしれない。

そういうところに僕らが勝っているところがあるとすれば、隣でめちゃくちゃ楽しそうに野球をやるという点だけだ。

僕らのカリキュラムの終盤に「僕らと一緒にRailsアプリでスクラム(20ポイント分)を回す」というのがある。

みんなで使っているEラーニングアプリ自体をみんなで開発する。もちろん僕も必死こいてIssueをこなす。

これは草野球でいったら試合であって非常に楽しい。早くみんなもルール覚えて試合できるようになって欲しいしサッサと一緒にやりたい。「おーい、磯野、野球やろうぜ」である。

「スクールでプログラミングを教えている」というときの気恥ずかしさ、傲慢ではないかという気持ち、プログラミングをビジネスとして教える罪悪感。役に立つからやるのか、就職に有利だからやるのかなどの気持ちについてわかりやすく文章にしようとすると違和感がある。

分かりづらくかつ正確に書こうとしたら上記のようなものになった。

フィヨルドブートキャンプ