TamaRuby会議01参加レポート
はじめに
百川といいます。フィヨルドブートキャンプに在籍している大学生です。 今年3月頃からTama.rbにも参加しています。 Ruby歴は8ヶ月くらいです。
まとめ
さて、7月6日に開催されたTamaRuby会議01に参加しました。
テーマは「Rubyistとしての成長」ということで、 「どんなときに成長を感じたのか」であるとか 「壁にぶつかったけど、このように乗り越えた」といった体験談を きくことができました。
特に後者は、自分を励ましてくれました。
どんな人でも壁にぶつかるけれど、 経験年数が豊富な人ほど、問題を切り分ける力があるように感じました。
また、問題を切り分ける力というのは、 「インプットを活用」したり「全くわからないから人に聞いたり」したりして、「あたり」をつけてから、 問題箇所を細かく見ていく力だと考えました。
問題を切り分ける力をつけていくために、書籍やリファレンス等からインプットしたり、質問力をつけたりしていこうと思います。
以下は発表の振り返りです。掲載は発表順です。
なぜテストを書くの?(または書かないの?) 〜テストコードの7つの役割〜 by 伊藤淳一さん
テストが書けない要因を分析しよう
テストが書けない要因には、大きく分けて2通りあります。
- テストの記述方法がわからない
- どんなテストを書けばいいかわからない
前者は記述方法を調べれば解決できます。 問題は後者です。「どんなテストを書けばいいかわからない」はさらに噛み砕いて、
- テストを書くこと自体が目的になっていないか
- テストを書く方針は定まっているか
などを確認する必要があります。 これらは記述方法を習得するだけでは解決できません。
「テストが書けない」を脱却するために、 前提知識としての「テストコードの7つの役割」を解説していただきました。
テストにつまづいたとき、それを乗り越えるための、本質的なお話をきくことができました。
プロになるためのレビューのススメ by konchanさん
reviewer / reviewee 双方の経験を振り返って、レビューがどのように成長の糧になったかをお話されていました。
私はrevieweeの立場として、先輩からRubyらしいコードの作法を学び、成長に繋げていこうと思います。
OSS初心者がつまづきながらOSSマナーを学んでいく話 by fuqdaさん
Tama.rbオーガナイザーfuqdaさんによる、OSSコントリビュート体験談です。 「(OSS活動を)一人でやるのは不安...そんな方は!コミュニティにおいでよ!」というメッセージに胸が熱くなりました。
実は私も、Tama.rbのメンバーとしてOSSコードリーディング部に参加させてもらっています。ついていくのが精一杯の状態ではありますが、継続してOSSのコードを読んでいこうと思います。
brainf*ck処理系で理解するパターンマッチングをつかった疎結合な実装 by expaさん
brainf*ck処理系にパターンマッチングの適用を試みて壁にぶつかった一方、 パターンマッチングがどんな場面で有効に働くのかを明らかにしたというお話です。
入力値がわからない状況では、出力側でパターンマッチングを用いると疎結合な実装にできるとのことでした。
こわくないDSL by kenさん
DSLを読みたいけれど、魔術盛り沢山で読むのがこわい...... そこで別のアプローチとして、DSLを読むためにDSLを書いてみたお話でした。 「読むために書く」の本質に気付かされたセッションでした。
ぼくらのリファクタリングは裏切らない💪by ほたてさん
リファクタリングはいいぞ!というお話です。 リファクタリングの手法をモブプロ形式で学ぶ「整地部」の活動を初めて知りました。
整地部いいなぁ。#tamarubykaigi01
— ももかわ (@Usa_Momokawa) 2019年7月6日
すこし話が脱線します。
イベント後日、整地部についてフィヨルドのslackチャンネルでつぶやいてみました。
これを契機に話が発展して、フィヨルドでも「モブプロ会」の開催が決まりました。
(詳細については、メンターの駒形さんが記事をあげてくださるそうです。記事が出たらここにもリンクを貼ります)
ほたてさん、きっかけをくださりありがとうございます。
たのしいOSSコードリーディング: Let's read "cookies"🍪by しおいさん
クッキーの内部処理を追ったお話です。 しおいさんのすごさは、「論理的に読解する」「わからない箇所は知見のある人にきく」「理解した内容を噛み砕いて発表する」のサイクルができているところだと思いました。
コードを「見る!書く!見てもらう!」で爆速ステップアップ!(仮) by s_naga03さん
konchanさんに続き、コードレビューはいいぞというお話です。 私もrevieweeとして、「直すべき理由を理解して修正する」の繰り返しをやっていこうと思いました。
Dartに浮気したらRubyは最高だと再認識した話 by まきさん
Dartで日付操作がやりづらく業務で困ったので、日付計算のライブラリを作成したというお話でした。
ライブラリのおかげで、Dartでも「1ヶ月後の日付がほしい」と問うだけで1ヶ月後の日付が返ってくるようになりました。 「期待する値を、直感的に取得できるところ」にRubyのたのしさがあるのだと感じました。
WebAssemblyをRubyにコンパイルする黒魔術コード完全解説 by ありたそさん
wagyuの黒魔術を解説するお話でした。 (wagyuは、WebAssemblyをRubyにコンパイルするgemです。) 条件分岐への深い理解が求められる、非常にテクニカルな内容でした。
RubyistのためのElixir入門(以前) by tsukaさん
(スライドが公開され次第、掲載します)
違う言語を使ってみることで、Rubyの特長を知ることができます。そして、次の言語としてElixirがおすすめだよ!というお話でした。 ご紹介にあった『プログラミングElixir』は、RubyKaigi2019の「Ruby Committers vs the World」でも話題に上がってた本ですね。
成長を期待しない目的志向実践のススメ by かつまたさん
成長を感じるには、「なりたい姿(目的)」を絞って取り組むことが重要というお話でした。 取り組みそのものよりもむしろ、目的を絞ることこそが一番の難関だなあと感じました。
東京地域Rubyコミュニティ大全 by 大倉さん
様々なコミュニティに顔をだしている大倉さんによる、地域コミュニティ解説です。 まだコミュニティに参加したことがない人にも、すでに何らかのコミュニティに参加している人にも、 「こんなコミュニティがあるんだな、参加してみよう!」と思わせてくれるような内容でした。
私はTama.rbに参加するようになってから、知り合いが増えたことで、他のコミュニティにも参加しやすくなりました。
白魔術師への道 by igaigaさん
本セッションにおいて、白魔術とは「デバッグにつかう魔術」を指します。キャッチーなネーミングですね! 勇者igaigaさんによる、3本立ての白魔術講座でした。
オブジェクトと会話する編
オブジェクトに対して、「どんなメソッドを持っているの?」「どこからきたの?」と問いかけたいときに、具体的にどんなメソッドで聞けばよいのかを学びました。
盗まれたインスタンス編
TracePointをしかけて、指定インスタンス変数に対する代入を検知します。
手順は大まかに分けると3段階です。 1. ソース、ASTを取得して、「インスタンス変数への代入」を検知する 2. インスタンス変数を調べて、「指定インスタンス変数に対する代入」を検知する 3. コントローラーだけでなく、ビューからも検知できるようにする
なにがうれしいの?
インスタンス変数への不正な代入が、どこでおこなわれたのかを可視化できます。
データが入っているはずなのになぜか値が空になっているとか、 期待する値となぜか違う値が入っているとかいう場面で、原因探求に役に立ちます。
白魔術概論
その他の白魔術として、pメソッドの通知版g gemでのデバッグなどをご紹介いただきました。
白魔術師への道のりは長い
内容自体は非常に難しく、TracePointを使いたくなったときはじめて理解が進みそうという感触でした。
だだ一方で、単純に白魔術師カッコいい!と感じました。入門からやります。
おわりに
登壇者のみなさん、Tama.rbのみなさん、お疲れ様でした。 私にとっても初の地域Ruby会議でした。たくさん発表をきき懇親会にも参加し、充実した1日を過ごすことができました。
第1回TokyoGirls.rbに参加しました
オフラインのイベントに参加する際は、いつも「話しかけられるかな...」「ついていけるか大丈夫かな...」などの不安がつきものでした。
しかし、TokyoGirls.rbについては、安心して当日を迎えられた理由が2つありました。
初心者でも安心して参加できそうだった
「純粋にRubyが好きで、もっとプログラミングを勉強したい!」という方であれば、どなたでも参加していただけます
TokyoGirls.rb Meetup vol.1|IT勉強会ならTECH PLAY[テックプレイ]
Q.Ruby初心者ですが、参加しても大丈夫ですか? A. はい、全然問題ありません。いわゆる「駆け出しエンジニア」さんも男女を問わず大歓迎です!
TokyoGirls.rb Meetup vol.1|IT勉強会ならTECH PLAY[テックプレイ]
イベントの説明文を読んでみて、初心者でも安心して参加できそうだなと思いました。
また、主催者が かのチェリー本の著者 伊藤淳一さんということで、初心者OKというイベント文言にも説得力がありました。
伊藤さんは、初心者のつまづきやすい点に配慮して、丁寧に噛み砕いた入門記事をたくさん書いてくださっています。
(個人的には、初心者の頭を透視する能力でも持っているんじゃないかと怪しんでいます)
女性が参加しやすいイベントだった
登壇者の4名の方は全員女性で、かつ女性参加枠も半数以上設けられていました。
女性エンジニアの方々のLTを聞いてみたいと思ったし、 周りの女性率が高いなら、懇親会でも安心して話しかけられそうだと思いました。
発表について
イベント中のツイートを交えて、登壇者の発表を振り返ります。
なお、主催者の伊藤淳一さんが、イベントについて総括してくださっていています。 当日のプレゼンや動画なども公開されていますので、 参加されていない方も発表内容や会場の雰囲気を知ることができます。
フィヨルドブートキャンプの研修生、フィヨルドの星、かなきゃんさん。かなきゃんさん、初めての登壇とは思えない、堂々とした発表でした!!アイドル・販売員という経験をしっかりと分析して、現在の挑戦に活かしているのが印象的でした。#tokyogirlsrb
— 百川うさ (@Usa_Momokawa) 2019年3月2日
かなきゃんさんの素晴らしい点は「自分の強みを活かす力」だと思いました。
たとえば、アイドル経験から、人前に出て話すことが得意という強みを活かして、 積極的にわからないことを質問したり、社員さんと交流したりする。
また、携帯販売員の経験を活かして、ユーザー目線の提案をする。
自身の経験を振り返り、強みを自覚して次に繋げる力を持っていらっしゃいます。
しなもんさんにめちゃめちゃ憧れました。初心者期から質問力がすごい#tokyogirlsrb
— 百川うさ (@Usa_Momokawa) March 2, 2019
内容が「システム障害」にもかかわらず、終始楽しそうに話すしなもんさんの姿が格好よくて、しびれました。
「先輩の隣につく」「何について話しているのか質問する」「とりあえず参加する」といった、 初心者がうまく成長するための知見を得ました。
#tokyogirlsrb ようちゃんさんの発表は、Rubyの楽しさとは何か & コミュニティが色々あるよという話でした。魅力が端的にまとまっていて分かりやすく、初学者にとって大変参考になるガイドです。
— 百川うさ (@Usa_Momokawa) 2019年3月2日
Rubyコミュニティの暖かさは、私も少しずつ実感しているところです。
ところで、ようちゃんさんのLTを聞いてから勉強会に参加したい機運が高まっていたところ 最近ありがたいことにTama.rbへ迎えていただきました。 大学の授業もほとんどないので、がっつり参加していこうと思います。
会社やチームの変化をチャンスと捉え、ご自身の成長に変換した かとりえさん。「状態は常に変化するので、答えはひとつじゃない」という言葉が印象的でした #tokyogirlsrb
— 百川うさ (@Usa_Momokawa) 2019年3月2日
育児休暇に入る前後では、会社に大きな変化があったそうです。
変化に対応するのはとてもたいへんなことのはずです。 会社の変化をチャンスと捉え成長できて「おとく」とおっしゃるかとりえさんに、力強さを感じました。
主催者さんたちによる心遣い
TokyoGirls.rbは、主催者さんたちの工夫にとにかく感動するイベントでもありました。
まず、子供連れのパパさんママさんのための託児室が設けられていました。 さまざまな苦労のうえに実装された託児室について、詳しくは伊藤さんの記事をご覧ください。
次に、名札用に「ふうせんシール」を用意してくださっていました。
Rubyを勉強し始めて1年未満だよ〜というわかばマーク🔰です。
たとえば、同じふうせんシールの方をみつけて「わたしもふうせんシールつけてます」と声をかけてみたり、 自己紹介の際に名札をみせるきっかけにさせていただいたりしました。
さらに、懇親会ではぼっち対策をしてくださっていました。
なにを話せばいいんだろう...と悩むことなく、 パワポに羅列されたテンプレートを会話の糸口にできました。
懇親会ぼっち対策工夫めっちゃよい#tokyogirlsrb pic.twitter.com/sAcx8PL9mH
— ぱん🍞 (@nappan23) 2019年3月2日
おわりに
参加者さんとの繋がりが持てて、とても貴重なイベントでした。 第2回TokyoGirls.rbにもぜひ参加したいです。
わたしの近況
フィヨルドで学習し始めて200日以上が経ちました。 気づけば総学習時間は600時間以上、出した日報の数は130を超えました☘
しかし、日報に手一杯でブログをまったく更新できていないので、 ブログを書く敷居も下げていきたいです。
HomebrewでPostgreSQLをインストール。linkエラーとpsqlできないエラーを直す
MacでPostgreSQLをインストールする手順と、詰まった2箇所をまとめました。
前提
- 環境はmac OS High Sierra 10.13.6。
- インストールするPostgreSQLのバージョンは10.5。
- パッケージ管理ソフトのHomebrewをインストールしておく。
Homebrewインストール方法はターミナルに
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
とコピペするだけ。
Homebrewをインストールする際に予めXcodeとXcode Command Line Toolのインストールが必須という記事がよくありますが、追記日現在では特にインストールすること無く上記のコマンドだけでHomebrewのインストールが可能となっています
Homebrewを更新
$ brew update
HomebrewにPostgreSQLをインストール
$ brew install postgresql
インストール中にエラーが出た
- ログを詳しく見てみると、末尾にインストールがうまく完了しなかったと書いてあった。
もう一度
$ brew install postgresql
をしてみると以下のエラーが出た。postfresql 10.5 is already installed, it"s just not linked You can use `brew link postgresql` to link this version.
$ brew doctor
してみると、同様の警告が出た。 Homebrew側で問題が起きたっぽい。
ググる
- 同様の症状を取り上げている記事を発見。ありがたく参考にさせてもらいながら、エラーを解決した。 参照元:Homebrewインストールのlinkエラーを修正する方法
linkエラーを直す
- 警告文は2つ。まずは2個目から検証。
記載通りに
$ brew link postgresql
をする。$ brew link postgresql Linking /usr/local/Cellar/postgresql/10.5... Error: Could not symlink include /ecpg_config.h /usr/local/include is not writeble.
ついでに
/usr/local/
の中身を見てみる。$ ls /usr/local Cellar bin opt var Homebrew etc share
$ brew link postgresql
の1つ目の警告にも指摘されているが、includeディレクトリがないことを確認。
足りないディレクトリを作成
$ sudo mkdir include
で作成。$ sudo chown $USER:admin include
でユーザー所有権とグループ所有権を修正。
エラーが直るまで修正
再度
$ brew link postgresql
してエラー。$ brew link postgresql Linking /usr/local/Cellar/postgresql/10.5... Error: Could not symlink include /ecpg_config.h /usr/local/lib is not writeble.
こちらも、libディレクトリを作成して権限も修正後、
$ brew link postgresql
。Linking /usr/local/Cellar/postgresql/10.5... 378 symlinks created
$ psql --version
で無事リンクが通ったことを確認。$ psql --version psql (PostgreSQL) 10.5
合わせてbrew doctorの問題も解決
$ brew doctor
の1つ目の警告文通りに、足りないディレクトリを全て作成した。複数ディレクトリをまとめて作るには、
$ sudo mkdir <ディレクトリ名> <ディレクトリ名>
と、スペースを開けて羅列するだけ。$ brew doctor Your system is ready to brew
となればOK。
psqlでまたエラー
よし、PostgreSQLを使うスタートラインに立ったぞ〜!と超元気になり、- [macOS High Sierra][Homebrew]PostgreSQL のインストールからDB作成までの手順を進める。
psglコマンドを使おうとすると
$ psgl -U${USER} postgres psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?``
またエラーきたこれ。
色々試した結果、最終的に
initdb
でDBの初期化をしたら直った。$ initdb /usr/local/var/postgres -E utf8
おめでとう。 頭の中では、シンジくんがミサトさん達から拍手されていました、とさ。