5.2系では読み込まれてたんだけど、6.0.1にしたらデフォルトでは読み込まれなくなってるみたい。zeitwerkになったからかしら。

手動でrequireすればOK。

require "active_record/fixtures"

class NotificationMailerPreview < ActionMailer::Preview
  def came_comment
    id = ActiveRecord::FixtureSet.identify(:report_5)

    # ....
  end
end

フィヨルドブートキャンプ卒業生の@shita1112さんと、10年近くの縁の@rono23と、僕、machidaさんで代々木上原のゆうに感謝のお礼ディナーに行ってきました。

@shita1112さんは愛知から代々木上原に引っ越して来られたのでその引越し祝いでもあるんですが、先日@shita1112さんが投稿したいくつかのブログ記事がバズって、それを見てフィヨルドブートキャンプに来たという人が沢山いたのでお礼と、

@rono23は今年僕がサンクトペテルブルクRubyConfに行っていた時にかわりにオフィスに来てメンターをやってくれたのでそのお礼です。

Image from Gyazo

豚肉の何か。

Image from Gyazo

牛肉の土鍋。

Image from Gyazo

主に@shita1112さんは今年からフリーランスということで歴は長いが、働いている期間は短い@rono23を交えてフリーランスプログラマーとしてのサバイバル方法を話してました。

始める時ってそういう話助かりますよね。

「開発環境のユーザーのパスワードって何?」

みたいな情報の共有って面倒ですよね。any_login入れちゃうのがいいかも。

any_loginを入れると画面の左下にアイコンが出てきて、そこをクリックするとユーザーが一覧できるプルダウンメニューが出てきます。それを選択するだけでそのユーザーでログインできるというもの。

似た仕組みを用意してる人が多いとは思いますが、無いなら導入おすすめです。

igorkasyanchuk/any_login: Easy way to login as any user in system

認証ライブラリはDevise, Authlogic, Clearance, Sorceryなど色々対応してます。

Image from Gyazo

フィヨルドブートキャンプのアプリに入れてみました。

fjordllc/bootcamp: プログラマー向けEラーニングシステム

プログラミングスクール(フィヨルドブートキャンプ)で勉強している方へよくお話している内容なのでここに書いておきます。

わからない、ツラい

プログラミング(に限らず新しいこと)を勉強してるときに、

「何がわからないのかもわからない。ツラい。」

ってときがあると思います。

わからなくて1日何も進まなかったらとてもツラいと思います。1週間何も進まなかったらもっとツラいと思います。

この「何がわからないのかもわからない」というやつ。これはすごくツラいですが、プログラマーにとっては非常によくある状態です。

全然気に病むことはないです。

「ドンマイ、ドンマイ、締まっていこうー!」

ぐらいの感じです。

日々新しい技術を覚える必要があるプログラマーには頻繁におきます。 プログラマーとして働いている人はこの状態のプロです。

むしろ「これが飯の種になる」と考えている節があります。

この状態からの抜け出し方を知っていることが新しいことを自己学習し続けていけるコツなのかもしれません。

何がわからないのかがわからなくなったら

まずは人に頼りましょう。「困っています」ということを誰かに伝えることから始めましょう。周りに誰も頼る人がいない場合は下記に進みましょう。

まず、昼間だったら温かい飲み物を淹れ、ゆっくり飲みましょう。夜だったらゆっくりお風呂に入って寝てしまいましょう。

そしてハチマキを締め直すイメージで問題に正面から立ち向かう覚悟を決めましょう。

何がわからないのかもわからないという場合、何かを見落としてるとか、大事なピースが一つ抜けてるとかそういう、あとちょっとの段階ではないということです。

自分には概要も見えないし、ピースも128ピースぐらい足りないということです。

僕はこういうとき、わかりたい対象をキーワードとしてたくさんググります。そのキーワードがちょっとでも入ってる本をたくさん買って読みます。片っ端から見てやるぞというイメージです。

とにかくそのキーワードが含まれている情報を浴びることを意識します。

そのキーワードについて様々な角度から書かれているものを見ているうちに共通点と差異からおぼろげながら輪郭が見えてくるはずです。

そうしたらもう糸口が見えているので、今まで収集した情報の中から学ぶべきものを学び、聞くべき人に聞いていけばわかってきます。自分が何をわからなかったのか、もうわかっています。

また、「理屈じゃない、触りまくって体で覚えなきゃわからない」というタイプの対象もあります。その時はひたすら触る時間を増やせば良いです。毎日習慣になるほど触っているといつの間にかわかっています。(ただそれを他の人に説明しろと言われてもできない)

一方、komagataプロは・・・

僕もプログラマーになってもう21年経ちますが、毎年一回はこれになってますね。

今年はBlender、去年はUnity、一昨年はkubernates・・・。

僕ぐらいのプロになると「はいはい、わからないわからない、ワロスワロス」ってなもんです😭

覚えるまでの苦労は何ら変わらないですが、

「今は全くわからないけど、あと1ヶ月ぐらいがむしゃらにこれをいじりまくればわかるはずだ。」

と思っているので、気持ち的には楽です。

というかホントはこんな状態になりたくないしサッとわかりたいですよ😭

奥さんの@y_komacoがオリジナルキートップの販売をBOOTHで始めました。

poop keytop - kmgt keytop - BOOTH

Image from Gyazo

Image from Gyazo

Image from Gyazo

間違いなくこれはクソですね。

奥さんは元ジュエリーデザイナーで彫金とかの学校も出てるので立体造形は得意ではあります。

ただ、他にも動物とか試作品がいっぱいあるのに何故第一弾がクソなのか、何故無駄にカラバリが多いのか、全てが謎に包まれていますが、凄い勢いで作っているので静かに見守りたいと思います。

フィヨルド宛にwillnetさんからRuby on Rails 6 エンジニア 養成読本をいただきましたー。

Image from Gyazo

rails6になって新しく押さえておかなきゃいけないところをチェックしたかった自分にはちょうど良い本でした。

特にこれらはRailsGuideでもまだWIP状態なので本にまとまってるのはわかりやすかった。

  • Action Text
  • Action MailBox
  • Multiple Database

さらにWebpacker、StimulusについてはREADME・公式サイト以外の情報はあまりないので少しでも記述されている本は集めたい気がします。

testunit(minitest)信者として一番良かったのは、rspecじゃなくてminitestでのテストを一通り説明してあるところ。

これの本は人によって自分が詳しく知ってるところ、弱いところが違うのでありがたい箇所も人それぞれだと思います。(僕はEarly Hints知らなかったので助かった)

ちょっとだけRailsから離れてて復帰した人、Rails6の新機能を押さえたい人にとっては最適な本だと思います。

プログラミングスクールのフィヨルドブートキャンプの提出物のレビューでよく指摘するシリーズ。

rubyではメソッド呼び出しにカッコ()が必須ではありません。カッコを使わずにメソッドを呼び出すと単に変数を参照しているように見えます。

article = Article.new
article.title # メンバ変数が呼べているように見える

rubyはこれを利用してアクセサを実現している。(c#やswiftでは専用の構文を用意している)

attr_accessor :title
def title
  @title
end

def title=(title)
  @title = title
end

↑この2つは同じ。

これは自分のプログラムにも活用できる。メソッド名が名詞であって、そういうメンバ変数のアクセサとして動いているように”見えれば”問題ないメソッドになる。

def age
  today - birthday
end
user = User.new
user.age # そういうメンバ変数にみえる

実際にはそんなメンバ変数はなく、メソッドがメンバ変数のフリをしているだけだ。クラスを使う人からみれば同じように振る舞うのであれば問題ない。 複雑な処理を整理したいとき、これを使ってなるべくそのクラスのメンバ変数に見える名詞メソッドの形にしてみよう。 たくさんのメンバ変数(に見える名詞メソッド)を扱う少数のメソッドという形になると全体が把握しやすくなる。何故ならメンバ変数よりメソッドの方が入力・出力・副作用を考えなければ行けないので複雑だから。

注意

ただ、メンバ変数のように見えるメソッドが派手な副作用を持っている時、使う人から見るとエゲツない罠となる。

まずこれをやっておく。

ターミナルからVisual Studio Codeを起動する方法【公式の方法】 - Qiita

$ git config --global core.editor 'code --wait'

コミット時にVSCodeが開いてアラ便利。

フィヨルドブートキャンプというプログラミングスクールをやっていますが、最初の印象で

「この人は良いプログラマーになれそうだな」

とか

「こういう感じの人は続かなそうだな…」

とかそういう先入観は僕らにももちろんあります。

しかし、今までの経験上、そういう先入観ってあんまり当てにならないなと感じます。

良さそうだな〜と思ってた人が全然続かなかったり、逆にすぐに辞めちゃいそうかも?と思ってた人が気づいたら長く続いていて、スキルもしっかり付いていたり。

僕の先入観なんてそのぐらい当てにならないので、今は「ごちゃごちゃ言わずとにかく暖かく見守ろう」というのが新しく入ってきた人へ思うことです。

僕がどう思ってようが1ヶ月ぐらい経ったら答えが出てます。1ヶ月以上続いてる人はみんなすごいと思う。

僕が「英語1ヶ月みっちりやれ」と言われてもできる気がしないし。

Corne Cherry、Mint60に続いてLily58 Proを作りました。

Image from Gyazo

最近毎週末キーボード作ってる気がする。

ひとまず、自分の求める理想のキーボード環境になったように思います。

3個目だから楽勝かと思いきや、表裏逆につけてしまってハンダをとるのに苦戦したり、やっぱりギリギリでした。

ネットではクリア軸がずっと売り切れてたんですが、実店舗ではあったので買いに行ってよかったです。