世界のナベアツのネタをRubyで書いた

Ruby力をつけたいので、Rubyのコードを書く。100日くらい続けたい。 3の倍数と3が付く数字のときだけアホになるネタを書いてみた。

# frozen_string_literal: true

limit = ARGV[0].to_i
1.upto(limit) do |count|
  if (count % 3).zero?
    p 'Aho!'
  elsif count.to_s.include?('3')
    p 'Aho!'
  else
    p count
  end
  sleep 0.5
end

ほぼFizzBuzzzero?メソッドは初めて知った。

docs.ruby-lang.org

調べてみると3以外にも仕様があった。

3の倍数と3が付く数字だけアホになり、5の倍数だけ犬っぽくなります 3の倍数と3が付く数字だけアホになり、8の倍数だけ人探しをしてる感じになります 3の倍数と3が付く数字だけ憤りを感じます 3の倍数と3が付く数字だけアホになり、8の倍数だけ気持ちよくなります 3の倍数と3が付く数字だけアホになり、8の倍数だけ媚びへつらいます 3の倍数と3が付く数字だけアホになり、5の倍数だけナルシストになります 生身のナベアツがまず3の倍数と3が付く数字だけアホになり、モニターに映ったナベアツがそれ以外の数字でアホになります(擬似的なコンビ芸) 3の倍数と3が付く数字だけアホになり、8の倍数だけ青春します 3の倍数と3が付く数字だけアホになり、9の倍数で正気に戻ります 3の倍数と3が付く数字だけアホになり、8の倍数のときに寝起きドッキリになります 3の倍数と3が付く数字だけアホになり、8の倍数のときにクイズ番組に出てる感じになります など

github.com

明日も1問解く予定。

ローカルで立ち上げたbootcampにスマホからアクセスする方法

  1. MacIPアドレスを調べる
    f:id:mashoo1101:20201225143926p:plain
    MacIPアドレスを調べる
    私の環境だと、192.168.1.13になります。

2.bootcamp/config/environments/development.rbに以下を追記してください。 IPアドレスは読み替えてください。

 config.action_controller.asset_host = "http://192.168.1.13:3000"

3 サーバーを起動

rails s -b 192.168.1.13

ログにCannot render console from 192.168.x.x! Allowed networks: 127.0.0.0/127.255.255.255, ::1 という表示が出たら、bootcamp/config/environments/development.rbに以下を追記してください。

config.web_console.whitelisted_ips = '192.168.x.x'

参考

はじめてのコードレビュー

フィヨルドブートキャンプのプラクティスでは、開発に参加して PR を送りマージするというプラクティスがあり、その中で生徒が書いたコードを生徒がレビューすることがあります。 はじめてコードレビューをしたので、個人的なポイントをまとめておきます。

伊藤メンターがレビューでチェックすること

  • コードの可読性、拡張性、変数名、ロジックが複雑すぎないか?
  • Railsらしいコード、Rubyのコーディング規約に則っているか?
  • セキュリティに問題のないコードか?
  • テストコードが書かれているか?

その他のポイント

  • 「これってどういう意味?」と思ったら質問してみる
  • 手元で動作確認する

手元で動作確認する流れ

git fetch origin branchして、git checkout branchする。 dev.classmethod.jp

自分の中のコードレビューのハードルを下げる

フィヨルドブートキャンプを受講しているかたは、課題の提出ではじめてコードレビューをうけると思います。 課題のコードレビューの場合、OKをもらえた/もらえなかったの2択で自分が評価され、学生時代のテストを思い出してしんどいと感じる方もいるようです。 ただあくまでコードレビューというのは、チームのコミュニケーションの1つでしかないので、そこまで気負わなくてもいいと思います。 「これってどういう意味ですか?」と自分が思うことは、他のチームメンバーも思う可能性が高いので、Github上のコメントに残すことで、皆んなが得をするのではと考えています。 少し話は逸れますが、一緒に働きたい人・自分の希望する環境を考える上で、コードレビューの文化があるか、その雰囲気は固すぎないかは大きな物差しになるのでは?と考えています。

私のはじめてのレビューはこちらになります。

github.com

実務に入る前にこのような体験ができるの、本当に貴重だな〜と思います。 コードレビューの質、スピードを上げれるように精進します!

日報を書こう! (日報自動投稿プログラムもあるヨ!)

この記事は4分程度で読めます。

はじめに

これは「フィヨルドブートキャンプ Part1 Advent Calendar 2020」14日目の記事です!

昨日は西田剛さんの 見えてきたエンジニア像 でした。

adventar.org

Part2もあります。 adventar.org

この記事で書いたこと

フィヨルドブートキャンプでは学習した日に日報を書きます。 4月から学習を継続できているのは、日報のおかげなのでは?とやっと気付き、いろいろな気持ちが湧いてきたのでまとめようと思います。 +αで日報に関係したコードを書きたかったので、日報自動投稿プログラムを作ってみました。 当たり前のことしか書けませんが、これが今自分が感じていることです!

なぜ日報を書くのか

データ集計のため

ラクティスの画面ではそのプラクティスにどれだけ時間がかかったか、中央値と平均値を集計し表示しています。 日報は15分間隔でしか学習時間を記録できないので、完全に正確な数値ではありませんが、参考になる数値なのでそのプラクティスの勉強をしたら必ず日報を書きたいところです。 学習したのに日報を書かないと集計されず、正確なデータから遠ざかってしまうので良くないな〜と思います。

お金がもったいないから

月額29800円は決して安くない金額です。 仮に毎日10時間学習したとして、1日の金額は1000円になります。 受講生はこの金額をメンターのお仕事への対価として支払っていて、メンターの基本的なお仕事は提出物・日報の確認と考えられます。 (それ以外にも就活の相談、プラクティスの改良、コミュニティ作りなどもあると思います。いつもありがとうございます!) もし勉強したのに日報を書かない日があったら、受けられるサービスを自ら放棄し、損していることになります。もったいない!

将来の自分、他の人が助かるから

自分だけしか読まない雑に書いたメモは、数日経つと何を書いているのか解読できないなんてこともありました。 日報は自分だけが読むものではないので、最低限他の人が分かるように書きます。 自分は何度も過去の自分の日報、他の人の日報に助けられました。

精神的な支えになるから

しんどいなと思った時は初日の日報を見返しています。 「初日の学習時間が10時間45分だと?! あの時はやる気に満ち溢れていたんだ.. また頑張ろう!」という気持になれます。 将来実務でしんどいなと思った時に鼓舞してくれるのは、自分が書いた日報かもしれません。

しんどい時こそ日報を書こう

振り返ってみてちょっとしんどいなと思う時こそ日報を書くべきだなと感じています。 しんどい時って学ぶことが多過ぎてどこから手をつけていいのか分からないと思います。 そんな時こそ最低限理解しているところ、分からないところを日報に書き、一度頭の中を整理するべきだと思います。 またしんどいという自分の気持ちを伝えるのも、日報が一番手軽だと思います。 その人がどんな気持ちかメンターは察することができないので、しんどい時はそれを言葉にした方がいいと思います。

進捗が出なかったり、何を書けばいいのかわからない時は、勉強時間と感想だけの短い日報でもいいので投稿しちゃいましょう。 何も書かないより何倍も良い!

日報自動投稿プログラム

たまに日報書くのをサボってしまうので日報自動投稿プログラムを作ってみました。 毎日WIPの日報を投稿してくれます。

f:id:mashoo1101:20201214033941p:plain
プログラムによって作成された日報

github.com

使い方

  1. report.rbにログイン名とパスワードを記述してください。
  2. 定期実行にcronを使用します。 crontab -eでエディタが起動したら以下のフォーマットに沿ってcronを登録します。
実行タイミング  Rubyのインストール場所  実行するRubyプログラムのフルパス

Rubyのインストール場所はwhich rubyで確認できます。

5 0 * * * /Users/mashio/.rbenv/shims/ruby /Users/mashio/auto-reporting/report.rb   

5 0 * * *report.rbを毎日0時5分に実行するという意味になります。

qiita.com

日報が投稿されない場合

設定した時間を過ぎても日報が投稿されない場合は、/var/mail/xxxを確認してください。

Mac OSがcatalinaの場合、以下の設定をする必要があります

mac-ra.com

コードの説明

以下ざっくりとした流れです。

  1. JWT Tokenを取得する。
  2. 取得したJWT TokenをAuthorizationにのせて、CSRFトークンとcookieを取得する。
  3. CSRFトークンとcookieをのせて、日報を新規作成する。

最初はcurlコマンドを使って書いていたのですが、読みにくかったのでRubyのコードに書き換えました。 以下のサイトでcurlコマンドをペーストすると、Rubyのnet/httpの形式に変換してくれます。便利〜 https://jhawthorn.github.io/curl-to-ruby/

まとめ

改めて日報って良い仕組みだなと思いました。書くしかない!!

二郎系npmを公開しました

フィヨルドブートキャンプには「npmを作って公開する」というプラクティスがあります。 みんな思い思いに自分が作りたいnpmを作っていたので自分も好きなものをテーマに作りました。

今回作成したnpmのページになります。

www.npmjs.com

入力した住所の近くにあるラーメン二郎/二郎系の店を表示するnpmです。

以下のAPIを使用しました。

やっていることはシンプルです。

  1. 住所を緯度経度に変換
  2. 緯度経度を基準に店を検索
  3. ヒットした店と住所の距離を取得する

ラーメン二郎と検索した結果、ラーメン二郎と二郎系どちらも含む結果が返ってきます。 これは良くないので、二郎のみを表示する処理を書きました。 二郎か二郎系か判断する方法として自分で二郎の配列を用意する予定でした。

ja.wikipedia.org

ラーメン二郎と検索した結果、名前がラーメン二郎XX店である場所が「ラーメン二郎」ということが分かったので、最終的に配列は用意せずに済みました。

検索の精度をあげたり、表示できる件数を多くしたりと改良できる点はあるので、暇な時にやっていきたいです。

6ヶ月ぶりにプロフィール画像を変更した

フィヨルドブートキャンプのメンターの jnchitoさんのツイートがきっかけ

変える前に「自分のプロフィール画像どう思いますか?」とフィヨルド生に聞いてみたところ以下のような感想だった。

  • どこ向いてるのかわからない
  • 服が変
  • なぜ室内?

これはまずい..

新しいプロフィール画像はこの反省を生かして

  • 前をむく
  • 白い服をきる
  • 日が当たる屋外で撮影

とした。 兄に一眼レフで撮ってもらった。 しばらくはこのプロフィール画像でやっていきたい。