Programming from 30

自分の備忘録が、誰かの為になれば・・

Rails developer meetup 2019にスタッフとして参加しました!

f:id:tsubasa0105:20190324173849p:plain
Railsdm入り口

Rails developer meetup 2019にスタッフとして参加しました!

私自身、未経験でプログラミング勉強中ということで技術面の話とかはできないですが、気になったセッションに簡単な感想を書きます。

楽しそう!!行ってみたい!お手伝いしてみたいという方が増えたら嬉しいなと思います!

前回参加時のブログはこちらです

tsubasa0105.hatenablog.com

まずRails developer meetupは、Railsを書いている個人・企業で蓄積された知見をシェアする大きなイベントです! こちらがタイムテーブルで、見ていただくとわかりますが、Railsの作者であるDHHの基調講演から始まり、錚々たる面々のお話。

技術的な話、エモい話、コードに関係ない話いろいろあります。「こんな大変なことがあったよ!」、「xxxxはすごくいいよ!」、「そういう考え方があるんだ!」など満載でした。

参加した理由として

  • 前回スタッフとして参加して楽しかった
  • もっといろいろな方と出会ってみたい
  • 前回と比べ、わかることが増えているからきっともっと楽しめる
  • 知らないこと、わからないことを探す

などの動機で参加しました。

気になったセッションの紹介

全3会場に別れ、聞きたい話を聞くスタイル。

  • アプリケーションを作るときに考える25のこと

株式会社はてな 大仲 能史さん

www.slideshare.net

  • サービスを作り時の軸
    • 【価値がある or 価値がない】
    • 【すぐ作れる or 難しい】

など尺度を持って考えていて、アプリ作りの参考になりました。

また、Gemの話をされていて、gitのdependentsを漁ると良い!やkaminariのコードがとても綺麗なので、読んでほしいと仰っていた。

ソースコードの読み方を勉強している最中なので、メモばかりしていました。

  • ランチセッション 現場Railsの執筆現場

丁度現場Railsを進めていたので、著者の方々に勉強方法などのお話が聞けてよかったです。

本を作る上での苦労や、想いを知った後に本を開いてみると、違った感覚で学習ができます。

大場さんのお話に「途中で読者が倒れないように。目的や心配事があるからこうする を大切に書いた」と仰っていた。

また、著者の櫻井さんが「現場railsの学習後は自身の足りないところを補いながら学習を進めると良い」と仰っていたので、学習した後にどうアクションするかで学習効率も違うなと思いました。

  • その他のおすすめ

    • 周りの人にレビューしてもらう
    • 自分で何かを追加してみる
    • Rails guideを読んでみる
    • リーダブルコードを読む
    • 万葉のカリキュラムをやる

  • オンライン予約徹底解説 株式会社トレタ 中村 真人さん

speakerdeck.com

飲食店のオンライン予約サービスを作る上での苦労と工夫のお話をしていた。

今までの予約は全て紙ベース。

予約が行われる入力を「Googleで予約」に統一することでオンライン即予約が全て完結。

集客から予約、顧客管理までできる仕組みを作っているのが素晴らしいと思いました。

どのように設計されるかの話で、前回のRailsdmの際はちんぷんかんぷんだったけれど、半分ほど理解することができた!

トレタnow

  • Thrifty Rails - How to run a production app on a budget

TenTen Ltd. Laura Eckf

Lauraさんのセッションで、参加できた唯一の英語のセッションでした。

予算がない中でどうサービスを作っていくのか、笑いを織り交ぜながら和やかな雰囲気で話されていた。

全て理解できていないけど、コードを書く上での苦労を聞く機会が多い中で、予算の話を聞き、ないから作れないではなく、あるものでクリエイトする大切さが重要と感じました。

Ruby/Rails コミッター 松田 明さん

speakerdeck.com

とにかく会場中が、「凄すぎる!」といったつぶやきが終始聞こえてきました。

自分に技術があれば、もっと凄さを感じられたのにと。

何をどうして、どうなっているのか理解が及ばず。勉強不足を痛感しました。

ただ、「Gemを作りたい!と言った気持ち」と、「現場の問題を解決したい気持ち」が大切とお話されていて、問題駆動が大切なんだと実感。

  • 入門 名前 株式会社マチマチ

藤村 大介さん

speakerdeck.com

名前の付け方や定義について話されていた。

「いい名前とは?」、「プログラムにおける名前の意味は?」、「悪い名前とは?」など、参考文献があまりないトピックを深掘りしてお話されていた。

  • 名前の意味と実際の挙動があっているもの
  • 言っていることとやっていることが一致している

4月に出るWEB DB PRESSに、名前について寄稿されているそうなので購入しようと思います!



  • プログラミングスクールを作ってみた

合同会社フィヨルド 駒形 真幸さん

speakerdeck.com

今通っているFjordBootCampのメンターである駒形さんのセッション。

プログランミングスクールをやってみての知見を話しながら、カリキュラムの紹介をしていました。

会場の方からは、「就職したけど通ってみたい!」や「カリキュラムを終えた人は強い!」、「CSSの課題は自分でも難しいから、クリアした人はすごい」と言った嬉しいつぶやきが!

懇親会でも、Fjordに通っていると話をすると 、「体系的に知識がある人が少ないから、あれだけのカリキュラムをこなしてるなら一緒に働きたい!」とのお声。

頑張らねばと思った次第です!

ピクスタ株式会社 後藤 優一さん

speakerdeck.com

会場が溢れかえり、一際盛況だったセッション。

DHHが解決したかった問題と、そのために取ったアプローチを明らかにしながら、対処法についても話されていた。

Railsを学習中だからこそ、Railsの限界などの話を意図的に入れないようにしていた部分もあった。(よくわかっていなかった部分大半)。

規模が大きくなることでのRailsのメリットがデメリットに変わるのか!、というくらいの理解をしつつ、対処法も聞いていたが、よく理解できなくて悔しい限りでした。

  • 自分たちを信じられるチームが作りたくて私はこうした

STORES.jp, Inc 勝亦 亮さん

speakerdeck.com

yokohama.rbで出会い、お世話になっている勝亦さんのチーム作りについてのセッション。

まだ開発もしたことない自分にもわかりやすく、チームはどうあったらいいのか?、どう信頼を構築して結果を出していったのか?お話されていた。

色々なチームの雰囲気があるなかで、お菓子タイムをとって雑談をおりまぜ、意見を言いやすい雰囲気を作り出す。

まだ、自分のイメージがないからこそ、なんか素敵なチームの雰囲気だなと勝手に想像してしまったセッションでした。

f:id:tsubasa0105:20190325185901j:plain
A会場の様子

全体の感想

2回目のスタッフとして参加して、裏で動きながらいろんな方と話して、朝から晩まで動くのは大変だったけど楽しかった。

受付時、セッション時や懇親会参加時に気軽に話してくれる方が多く、Rails界隈の人の素晴らしさを感じると共に、スピーカーの方の偉大さを実感しました。

個人的な収穫としては、わかることが増えていたことを実感できたこと。

わからないことが勿論多いですが、セッションの選び方も工夫して全てのセッションから最低1つ学びに変えるよう努めました。

また、休憩室や団欒スペースが各所にあり、頭を休める場所がある点も助かった方が多かったのでないかと思います。

贅沢な悩みですが、3会場あったこともあり、見たいセッションが多すぎでした!お話ししたい人が多く、全ての人とお話ができず。次回どこかのイベントで一緒になった際にお声かけしたいなと思います。

次回はRails Kaigiになるようで、またスタッフとして参加できたら楽しいだろうなと思います。その時までに就職をして、登壇者の方の話をより理解できるようになれればいいなと思います!

Railsの開発環境でhttps接続する!

omniauthを使用し、facebook認証をする時に詰まったので備忘録

ローカルの開発環境で、facebook認証をする際にこの接続ではプライバシーが保護されませんとエラーが出た。

原因として

  • Chromeが去年リリースしたchrome58から証明書の中の項目のCN(Common Name)の利用を非推奨化し、SAN(Subject Alternative Name)の方を利用する仕様になったため。

  • 作ったオレオレ証明書が信用に値しないため

多くの方が取っている方法として、オレオレ証明書を作成する事で解決しているが、なぜかうまくいかなかった。そこで見つけたのが、
github.com

mkcert automatically creates and installs a local CA in the system root store, and generates locally-trusted certificates. mkcert does not automatically configure servers to use the certificates, though, that's up to you.

mkcertはローカルに認証局を作成し、自身で証明書を発行する。証明書を使う為にサーバーの設定が必要。

mac

まずはインストール

brew install mkcert

認証局を作成

$ mkcert -install
Created a new local CA at "/Users/ishikawatsubasa/Library/Application Support/mkcert" 💥
Password:
The local CA is now installed in the system trust store! ⚡️
Warning: "certutil" is not available, so the CA can't be automatically installed in Firefox! ⚠️
Install "certutil" with "brew install nss" and re-run "mkcert -install" 👈

証明書を作成

$ mkcert localhost
Using the local CA at "/Users/ishikawatsubasa/Library/Application Support/mkcert" ✨
Warning: the local CA is not installed in the Firefox trust store! ⚠️
Run "mkcert -install" to avoid verification errors ‼️

Created a new certificate valid for the following names 📜
 - "localhost"

The certificate is at "./localhost.pem" and the key at "./localhost-key.pem"

Pumaの設定を記述

if ENV.fetch('RAILS_ENV') { 'development' } == 'development'
  ssl_bind '0.0.0.0', '9292', {
    key: 'tmp/localhost-key.pem',
    cert: 'tmp/localhost.pem'
  }
end

これでhttps接続完了!!!https://localhost:9292/にアクセス

f:id:tsubasa0105:20190216190045p:plain
https確認

開発環境で確認をするだけなら3行のコードで準備が完了。もしオレオレ証明書を作ってうまく行かなければmkcertでサクッと時短がベターな気がします。

:参考 Railsの開発環境でHTTPSを有効にする

CSVファイルとRubyの備忘録

最近RubyのコードでCSVファイルを使う事があったのでまとめました!

CSVファイルとは

comma-separated values(略称:CSV)は、いくつかのフィールド(項目)を区切り文字であるカンマ「,」で区切ったテキストデータおよびテキストファイル。拡張子は .csvMIMEタイプは text/csvwiki

例えばこんな感じの中身 diary.csv

id,title,content
1,今日はジム,腕立て伏せと腹筋と、スクワットをしました。
2,今日はスターバックスで勉強,とても混んでいて勉強どころではなかった。
3,美術館で草間彌生展,とても素敵な絵画が多かっった。

1行目がカラムの要素、2行目からid,title,contentという風にカンマで区切られています。

用途は色々だと思いますが、エクセルの表の様にデータをまとめる事ができます。RubyにはCSVファイルを扱うライブラリがあり、とても扱いやすくなっています。その中で、いくつかのコードを忘れない様に書き記します(自分用)!

使用方法

まずはrequire 'csv'を記載

  • 読み込み
require 'csv'
csv  = CSV.read("/path/to/file.csv")
readメソッドで
csv = CSV.read("diary.csv")
=> [["id", "title", "content"],
 ["1", "今日はジム", "腕立て伏せと腹筋と、スクワットをしました。"],
 ["2", "今日はスターバックスで勉強", "とても混んでいて勉強どころではなかった。"],
 ["3", "美術館で草間彌生展", "とても素敵な絵画が多かっった。"]
  • foreachを使って1行ずつ読み込むこともできる
require 'csv'
CSV.foreach("diary.csv") do |row|
  p row
end

["id", "title", "content"]
["1", "今日はジム", "腕立て伏せと腹筋と、スクワットをしました。"]
["2", "今日はスターバックスで勉強", "とても混んでいて勉強どころではなかった。"]
["3", "美術館で草間彌生展", "とても素敵な絵画が多かっった。"]
  • 書き込む時
require 'csv'
CSV.open("dairy.csv", "wb") do |csv|
  csv << ["4", "Yokohama.rbにいく", "プログラミングが好きな人が多かった!"]
  csv << ["5", "ハッカーの映画を見る", "聞いたことのある言語が英語で聞けた!なんか感動!"]
end

<#CSV io_type:File io_path:"diary.csv" encoding:UTF-8 lineno:2 col_sep:"," row_sep:"\n" quote_char:"\"" headers:["4", "Yokohama.rbにいく", "プログラミングが好きな人が多かった!"]>

これでもいける!!

CSV.open("diary.csv", "a") do |csv|
  csv.puts ["6","今日は門前仲町に行きました","行ったらイベントが休みだった!メールで来てた!"]
end

dairy.csvを見ると

id,title,content
1,今日はジム,腕立て伏せと腹筋と、スクワットをしました。
2,今日はスターバックスで勉強,とても混んでいて勉強どころではなかった。
3,美術館で草間彌生展,とても素敵な絵画が多かっった。
4,Yokohama.rbにいく,プログラミングが好きな人が多かった!
5,ハッカーの映画を見る,聞いたことのある言語が英語で聞けた!なんか感動!

4と5がちゃんと増えています。

また面白いと思ったのは、CSV::tableを使って、データベースのテーブルの様に扱うことができる点

require 'csv'

table = CSV.table("diary.csv")
=> #<CSV::Table mode:col_or_row row_count:6> #header含め6行

table.headers
=> [:id, :title, :content] # headerを確認できる
table.class
=> CSV::Table  #インスタンスはcsv.tableクラス
table[0]
=> #<CSV::Row id:1 title:"今日はジム" content:"腕立て伏せと腹筋と、スクワットをしました。">  #インデックスで取得できる
table[1]
=> #<CSV::Row id:2 title:"今日はスターバックスで勉強" content:"とても混んでいて勉強どころではなかった。">
table.first
=> #<CSV::Row id:1 title:"今日はジム" content:"腕立て伏せと腹筋と、スクワットをしました。">
able[:id]
=> [1, 2, 3, 4, 5] #headerでも取得可能
table[:title]
=> ["今日はジム", "今日はスターバックスで勉強", "美術館で草間彌生展", "Yokohama.rbにいく", "ハッカーの映画を見る"]
  • ループでも回せる
table.each do |row|
   puts "#{row[0]} #{row[1]} #{row[2]}"
end
#=>
1 今日はジム 腕立て伏せと腹筋と、スクワットをしました。
2 今日はスターバックスで勉強 とても混んでいて勉強どころではなかった。
3 美術館で草間彌生展 とても素敵な絵画が多かっった。
4 Yokohama.rbにいく プログラミングが好きな人が多かった!
5 ハッカーの映画を見る 聞いたことのある言語が英語で聞けた!なんか感動!
=> #<CSV::Table mode:col_or_row row_count:6>
  • 消したい行がある時
  csv_table = CSV.table("diary.csv", headers: true)
  csv_table.by_row!
  csv_table.delete_if { |row| row.field?("今日はジム") }

結構値の取得方法があり、まさにデータベース!さすがRubyのライブラリですね!

【Ouraring】と【ヘルシープログラマ】

はじめに
この記事ははじめてのアドベントカレンダーの17日目の記事です。前日はいづさんのJoy,Inc ひとり読書会 #4 - 会話、儀式、道具 -でした。 Joy,lnc 役職も部署もない全員主役のマネジメントという本について書いてあり、本からの学びを実践され変化もあったようです!是非、一読を!

テーマについて

さてさて、 アドベントカレンダーに参加させて頂き、何についてブログを書こうかとずっと考えていました!プログラミングの記事をずっと載せていたのですが、今回は少し外して,

【トラッキングディバイスと健康】について書きます!

私は若干の健康オタクのため、日々健康に気を使っています! プログラマーとして長きに渡り仕事をしていくためには、健康第一。心身の健康あってのお仕事だと思います!
そんなの気にしなくても・・と声が聞こえて聞こえてきそうですが、天敵である【腰痛や痔、睡眠障害】にはならないように最近はOuraringヘルシープログラマで健康管理しています!

Ouraringとは

まずはOuraring ouraring.com
私にお金が入るわけではないですが、

  • 赤外線光パルス測定、3D加速度計、ジャイロスコープ、体温センサーが内蔵
  • 活動量・睡眠の質・ストレスレベルなどを計測してくれる
  • "心拍変動" を測定してくれる
  • 勿論防水

一週間ちょっと使っていますが結構なデータが取れます

f:id:tsubasa0105:20181216225704p:plain
一週間の私のデータ

こんな感じでトラッキングしてくれて、アドバイスもくれます!赤字があまり良くないポイントで改善すべき点。もう少しすると、適切な睡眠時間とかも教えてくれるらしいです。
睡眠はストレスと密接に関わっているため、自分の睡眠状態と疲労回復度がわかるとコントロールしやすいですよね!そんなことを言っても大変な環境に身を置かれる方もいますが、数値化されるとアクションを起こしやすいのではないかと思います!

また結構嬉しい機能として長時間椅子に座っていると、

f:id:tsubasa0105:20181216230439p:plain
休憩を知らせてくれる!

指輪自体が振動してくれるともっといいんですが。

座っている事が害だと考えられている

座っていることによって寿命の期待値が減少するということには、多くの科学的根拠があるのです。 2009年に、ルイジアナのペニントン生物医学研究センターの研究者は、あらゆる研究理由による死亡率について、座っている時間の長さが直接関係することを示唆する研究結果を公表しました。(中略)
最終的に判明したのは、最も座って過ごしていた被験者たちは、若年死する確率が50%以上高かったということでした。
参考:ヘルシープログラマ

最近は長時間座ることが体に良くないことが浸透しつつあり、気を遣う方もいると思いますが、意識しようと思ってても忘れてしまいます。

そんな時に休む時間を知らせてくれると「態勢を変えてないな」や「呼吸が浅いな」など自分の状態に気づく事ができるのでは?

改善策として、

British Journal of Sports Medicineにおける最近の研究結果は、1時間あたりわずか5分の運動で、座ることの悪影響のほとんどを十分打ち消せることを示唆しています

と疾病リスクを減らすようアドバイスポモドーロテクニックを勧めています。

  • ちなみに健康的なポモドーロブレイク
    • 25分タイマーをセットする
    • 1つのタスクの作業を始める
    • タイマーが終わったら作業を止める。(タスクが完了していなくても止める)
    • 5分間の休憩を取り、1に戻る

まとめ

簡単に睡眠改善と仕事時に意識する事について書いてみました。プログラマになろうと思った時から多くの友人に「過酷な業界だぞ!」「30からなる仕事じゃない」「体を壊すぞ!」と言われました。

ただ今は話を聞いてると、そんな事もなく、プログラマの健康を気遣う会社も増えています。自分でなると決めたからにはいかに自身の健康を管理していくかだと思います!

良く寝て、適度に休憩して楽しくコードを書いていきましょう!かなり冷え込んできたので、風邪には気をつけてください!

”Rails Developers Meetup 2018 Day 4”にいってきました!!【雰囲気と感想】

初めてRails Developers Meetupに行ってきたので、行こうか行くまいかを悩んでる方向けに簡単に雰囲気と感想を書きます!

Rails Developers Meetup とは

第一線で活躍する開発者・導入企業から、RubyRailsに関する 発想・アプローチ・成功体験・失敗体験を学ぶ、非営利技術カンファレンスです。
参考:

railsdm.github.io

初心者だと「Meetupって知り合いがいないからなあ」「行ってもわからない」などあって若干敷居が高い感じがします。

なぜ初心者の僕が行ったのか?

僕自身もRailsチュートリアルくらいしかやったことがなくRubyも絶賛勉強中!知り合いも数人・・・きっとぼっちになる。何を話しているかわからないだろう!!と思っていました。

  • ん?でもこれって裏を返すと、全て参加する理由になるのでは?!
    • 勉強中ならどう勉強して良いか聞いてみては?
    • 知り合いがいないなら増やして、楽しい情報をゲット
    • 1つくらいは理解できる。きっと面白い話もある

と思い、思い切って参加してみる事にしました! ただ、申し込みぺージを見るとキャンセル待ち!?かなり人気です!ただこのキャプチャは最近のもので、僕が申し込んだのは、ボランティア枠が9人だったのでチャンスと思って申し込みました。

f:id:tsubasa0105:20181209105332p:plain
参加申し込みページ

スタッフとして参加したのは後述しますが大正解でした!!

  • 当日の流れですが
    • 9:00 会場受付に集合
    • 9:00 - 10:00 会場準備
    • 10:00 - 11:00 自由もしくは受付近辺で待機
    • 11:00 - 18:00 1人30分11:00 - 18:00までの1枠を担当。それ以外は自由
    • 18:00頃から懇談会準備
    • 22:30 懇談会後片付けして終了

初心者向けの内容

皆さん素晴らしいお話をされていたのですが、僕の知識と理解が足りていない為、「いろいろ大変な事もあるのかあ」と難しい事が多かったですが、わからない用語を調べたりと勉強になる面も多かったです。
その中でも、初心者向けの内容として
【プログラミング初心者に教えるときは「身近な比喩」が重要なのだ!】 という題で話をされたブロガーの吉田 慶章さんのお話しです!kakkuさんと呼ばれていて、今回は新人にプログラミングを教える時のティップスを話されていました。登壇後も周りでは「わかりやすくてただ楽しかった」といった意見が多く、プログラミングをわからない人でも理解できます。

kakakakakku.hatenablog.com
また、【エンジニア視点で語る、人生のX軸の広げ方】というテーマで話されたストリートアカデミー株式会社 北川 徹さん。
自身の生い立ちから、いかに横の関係を広げる事で仕事もプライベートも充実させていくかといった内容を話されていて、プログランミングの話はゼロ!最後にツッコミがありましたが、とても楽しい内容でした。
なので、初心者の方でもとっつきやすい話はいくつかあります!
ぼっちにならないか心配の方に関しては、スタッフで参加していれば、人と話し自己紹介するタイミングしかないので、自然とぼっちにはなりません!勉強中ですとお話しすると、励ましの言葉やできるようになったら弊社を受けてみてね!などありがたい言葉をかけてくださる方ばかり!
なんと言っても、twitterでフォローしている方がどういった方で、どういう事を考えているのかを知る事ができたのが収穫でした!
初めてRuby/Rails コミッター 松田さんに会い、お話を聞きました!主にRubyconfとRubyKaigiの違いや、今後のRubyKaigiの方向性を話されていて、会場全員が話にのめり込んでるいたのが印象的でした!

f:id:tsubasa0105:20181209115555j:plain
松田さんの登壇

といった形でメリットばかりのRailsDMでした!

  • メリット
    • スタッフとして参加する事で、ぼっち回避し人間関係が広がる
    • 採用担当の方の話が生で聴ける
    • 現場の雰囲気がわかる
    • 顔を覚えてもらえる
    • 敷居なんて最初からない

次回もスタッフとして参加したいと思います!ちなみに話した方で初心者の方はいらっしゃいませんでしたが、Rubyistの方皆さんから優しくして頂き、モチベーションが更に上がりました!勉強頑張ります!

【Ruby】bundle install と bundle updateの際に出るエラー解消!!

なぜかわからないけど、以下のエラーが出るようになりました😅インストールはできているけど、いつか大きなバグに繋がるので解決しておきました!

$ bundle install 
Ignoring bindex-0.5.0 because its extensions are not built.  Try: gem pristine bindex --version 0.5.0
Ignoring byebug-10.0.0 because its extensions are not built.  Try: gem pristine byebug --version 10.0.0
Ignoring byebug-9.0.6 because its extensions are not built.  Try: gem pristine byebug --version 9.0.6
Ignoring ffi-1.9.23 because its extensions are not built.  Try: gem pristine ffi --version 1.9.23
Ignoring nio4r-2.2.0 because its extensions are not built.  Try: gem pristine nio4r --version 2.2.0
Ignoring nokogiri-1.8.2 because its extensions are not built.  Try: gem pristine nokogiri --version 1.8.2
Ignoring puma-3.11.3 because its extensions are not built.  Try: gem pristine puma --version 3.11.3
Ignoring puma-3.9.1 because its extensions are not built.  Try: gem pristine puma --version 3.9.1
Ignoring sqlite3-1.3.13 because its extensions are not built.  Try: gem pristine sqlite3 --version 1.3.13
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
(省略)
Using rails 5.2.1
Using tilt 2.0.8
Using sinatra 2.0.4
Bundle complete! 3 Gemfile dependencies, 49 gems now installed.
Bundled gems are installed into `./vendor/bundle`

上記のエラーで検索をかけると結構同じ症状に悩まされる方が多いようです。

Ignoring gems because its extensions are not built [duplicate]

rails test で nokogiri のエラーが発生するときの対処

ruby関係のコマンドを入力すると常にエラー?警告?が出る

他にも多数解決策が挙げられているが、私の症状を解消するものはなく、メンターの駒形さんに相談!「rbenvrubyの再インストール。ダメならクリーンインストール!」というアドバイスを頂き実行!

まずはrbenvruby_buildの入っている~/.rbenvを削除

rm -rf ~/.rbenv

次にrbenvruby_buildの再インストール

# rbenvをgitからクローン
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
# rbenvげのパスの設定
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
exec $SHELL -l
# rbenvが入っているか確認
rbenv --version
# ruby_buildのインストール
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# rubyのインストールするリストを確認
rbenv install --list 2.5.1をインストール
rbenv install 2.5.1
# rubyのバージョン確認
ruby -v
# 2.5.1を使用する
rbenv global 2.5.1
# rbenvのrubyを使っているか確認
which ruby -> ok!!!

bundlerもインストール

gem install bundler
# 確認
bundler -v
# ~/.rbenv/versions/2.x.y/bin/ 以下に置いてあるコマンド群を ~/.rbenv/shims/以下に置いて使えるようにする

rbenv rehash

#インストールパスを指定
 bundle install --path vendor/bundle

最後のコマンドを叩くと再度エラー発生

Retrying fetcher due to error (2/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (3/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Retrying fetcher due to error (4/4): Bundler::Fetcher::CertificateFailureError Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'.
Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most likely your system doesn't have the CA certificates needed for verification. For information
about OpenSSL certificates, see http://bit.ly/ruby-ssl. To connect without using SSL, edit your Gemfile sources and change 'https' to 'http'

このエラーはbundle installの実行時にhttps:// rubygems.org/.に対してhttps接続したんだけど、SSL証明書がきちんと確認できてませんよというときに発生する。このときに確認した手順としては、 1,OpenSSLがきちんと入っているか? 2,証明書が有効なものになっているのか? の二点。詳しい手順は以下に記載します。

参考:rails の bundle install が 「Could not verify the SSL certificate for https://rubygems.org/.」で失敗するとき こちらの方に助けて頂きました!

その後bundle install --path vendor/bundleを叩く!

Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 12.3.1
Installing rake 12.3.1
(中略)
Bundle complete! 3 Gemfile dependencies, 49 gems now installed.
Bundled gems are installed into `./vendor/bundle`
Post-install message from yard:
--------------------------------------------------------------------------------
As of YARD v0.9.2:

RubyGems "--document=yri,yard" hooks are now supported. You can auto-configure
YARD to automatically build the yri index for installed gems by typing:

    $ yard config --gem-install-yri

See `yard config --help` for more information on RubyGems install hooks.

You can also add the following to your .gemspec to have YARD document your gem
on install:

    spec.metadata["yard.run"] = "yri" # use "yard" to build full HTML docs.

--------------------------------------------------------------------------------

できました!

結構ここまで来るのにかなり時間を費やしてしまいました!最後の選択肢のクリーンインストールまでいかなくて良かったです。原因としてはOS Mojaveをインストールした事からの権限異常の確率が高いそう。OSインストールのタイミングは考えたいものです。
今後は関連していそうなものを再インストールを選択肢としていきます!駒形さんには毎度感謝しかございません!ありがとうございます!

初心者が【ゼロからわかる Ruby 超入門】をやり終えて・・

本日11月22日発売のゼロからわかる Ruby 超入門 gihyo.jp

やり終えての感想をこれからRubyを学ぶ初心者の方へ!

《私のスペック》

  • FjordBootCamp受講生 最近Rubyの学習開始
  • 文系初心者 通常の人より理解が低め
  • Ruby入門サイトを学習
  • 🍒本 7章くらいまで

《この本を学習した経緯》

🍒本の7章くらいまでいくも私のレベルでは難しく、一旦ストップ😱

自身の基礎レベルの低さに気づき、メンターの駒形さんに相談

ゼロからわかる Ruby 超入門を勧めていただく!

やり終えた!

《 まず始めに感じた事をドンッと箇条書き!》

①見やすいデザインと図解で理解が捗る
②練習問題が多いので、インプットからアプトプットまでできる
③エラーが起きた時の対応が優しくわかりやすく書いてある
④ドキュメントの読み方の説明がある
⑤理解のためにあえて簡単な例で教えてから、実用的な使い方まで教えてくれる
⑥コードの解説はこれでもか!というくらい初心者の事を考え解説
⑦イラストがなんともかわいらしい
⑧使いこなす為の発展した知識も得られる

結構あります!

《ぼやっとからイメージを掴む》

Rubyを簡単に学習し、ぼやっとした状態で参考書に目を通してみると結構難しい。まずは図解をしてから頭に入れる学習方法を取っている私にとっては、分厚い技術書はかなりの曲者!!だからドキュメントをなかなか解読できないのかも・・・
ただ、Ruby超入門は文字も大きく絵が多い!更に、難しそうなメソッドやクラス、WEBアプリの仕組みあたりはわかりやすい図解が入っています!頭の中で絵が浮かぶというのは、「こういう事かあ」というくらい懇切丁寧な説明付き!!
コードの説明においては、こんなところもわからないのか!というところがわからないのが初心者🤔で、通常は省かれるであろうコードが処理される流れを最後まで説明してくれる。自分の頭がぼやっとしている点から、イメージが湧いて線で繋がる。そういう事か!!が増えると楽しくなる😋
また各章の終わりに練習問題が結構ついていて、インプットだけでは終わらず、自身の理解度もチェックできる!手頃な練習問題をウェブ上で探しても、レベルに合ったものがないので、アウトプットをその場で段階的にできるのは自信に繋がる!

《超入門であるということ》

表紙の若葉マークが示している通り始まったばかり。これからいかに技術を発展させるかは自分次第。メンターの駒形さんからは手当たり次第Ruby本を読みなさいとアドバイスを頂いているので、これから自己投資を惜しまず技術書を買い漁ります!そしてWelcome back to 🍒本!!頑張ります!難しい本で勉強をされてきた諸先輩方に追いつく気持ちで突き進みます💪

《結びに》

簡単にしか感想を書けませんでしたが、今からRubyを学ぶフィヨルドインターン生又は、これからプログラミングを勉強する方にはRuby超入門をお勧めします!技術書はその人のレベル知らないとお勧めしづらいですが、特に私みたいな基礎のない初心者へ。
またTwitterに「当時の自分に渡してあげられれば...と悶絶するくらい素晴らしい本」 pupupopo88.hatenablog.com と書かれている方の記事も是非参考に。
この本を読んで良かった事は、初心者の私が今欲しい説明をドンピシャのタイミングで受け取る事ができた事。これに尽きます。献本の段階から本書を貸して頂いたメンターの駒形さん、著者の五十嵐さん、松岡さん(面識はございませんが勝手に)に感謝申し上げます!

引き続き勉強を進めます!