ももぱーく

百川うさの技術ブログです。

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 ほたてさん

リファクタリングはいいぞ!というお話です。 リファクタリングの手法をモブプロ形式で学ぶ「整地部」の活動を初めて知りました。

すこし話が脱線します。

イベント後日、整地部についてフィヨルドのslackチャンネルでつぶやいてみました。

Slack_-_FJORD__LLC.png (97.3 kB)

これを契機に話が発展して、フィヨルドでも「モブプロ会」の開催が決まりました。

(詳細については、メンターの駒形さんが記事をあげてくださるそうです。記事が出たらここにもリンクを貼ります)

ほたてさん、きっかけをくださりありがとうございます。

たのしいOSSコードリーディング: Let's read "cookies"🍪by しおいさん

クッキーの内部処理を追ったお話です。 しおいさんのすごさは、「論理的に読解する」「わからない箇所は知見のある人にきく」「理解した内容を噛み砕いて発表する」のサイクルができているところだと思いました。

コードを「見る!書く!見てもらう!」で爆速ステップアップ!(仮) by s_naga03さん

konchanさんに続き、コードレビューはいいぞというお話です。 私もrevieweeとして、「直すべき理由を理解して修正する」の繰り返しをやっていこうと思いました。

Dartに浮気したらRubyは最高だと再認識した話 by まきさん

Dartで日付操作がやりづらく業務で困ったので、日付計算のライブラリを作成したというお話でした。

pub.dev

ライブラリのおかげで、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を聞いてみたいと思ったし、 周りの女性率が高いなら、懇親会でも安心して話しかけられそうだと思いました。

発表について

イベント中のツイートを交えて、登壇者の発表を振り返ります。

なお、主催者の伊藤淳一さんが、イベントについて総括してくださっていています。 当日のプレゼンや動画なども公開されていますので、 参加されていない方も発表内容や会場の雰囲気を知ることができます。

フィヨルドブートキャンプの研修生、フィヨルドの星、かなきゃんさん。

かなきゃんさんの素晴らしい点は「自分の強みを活かす力」だと思いました。

たとえば、アイドル経験から、人前に出て話すことが得意という強みを活かして、 積極的にわからないことを質問したり、社員さんと交流したりする。

また、携帯販売員の経験を活かして、ユーザー目線の提案をする。

自身の経験を振り返り、強みを自覚して次に繋げる力を持っていらっしゃいます。

内容が「システム障害」にもかかわらず、終始楽しそうに話すしなもんさんの姿が格好よくて、しびれました。

「先輩の隣につく」「何について話しているのか質問する」「とりあえず参加する」といった、 初心者がうまく成長するための知見を得ました。

Rubyコミュニティの暖かさは、私も少しずつ実感しているところです。

ところで、ようちゃんさんのLTを聞いてから勉強会に参加したい機運が高まっていたところ 最近ありがたいことにTama.rbへ迎えていただきました。 大学の授業もほとんどないので、がっつり参加していこうと思います。

育児休暇に入る前後では、会社に大きな変化があったそうです。

変化に対応するのはとてもたいへんなことのはずです。 会社の変化をチャンスと捉え成長できて「おとく」とおっしゃるかとりえさんに、力強さを感じました。

主催者さんたちによる心遣い

TokyoGirls.rbは、主催者さんたちの工夫にとにかく感動するイベントでもありました。

まず、子供連れのパパさんママさんのための託児室が設けられていました。 さまざまな苦労のうえに実装された託児室について、詳しくは伊藤さんの記事をご覧ください。

次に、名札用に「ふうせんシール」を用意してくださっていました。

f:id:Usa_Momokawa:20190317232851j:plain
名札

Rubyを勉強し始めて1年未満だよ〜というわかばマーク🔰です。

たとえば、同じふうせんシールの方をみつけて「わたしもふうせんシールつけてます」と声をかけてみたり、 自己紹介の際に名札をみせるきっかけにさせていただいたりしました。

さらに、懇親会ではぼっち対策をしてくださっていました。

なにを話せばいいんだろう...と悩むことなく、 パワポに羅列されたテンプレートを会話の糸口にできました。

おわりに

参加者さんとの繋がりが持てて、とても貴重なイベントでした。 第2回TokyoGirls.rbにもぜひ参加したいです。

わたしの近況

フィヨルドで学習し始めて200日以上が経ちました。 気づけば総学習時間は600時間以上、出した日報の数は130を超えました☘

しかし、日報に手一杯でブログをまったく更新できていないので、 ブログを書く敷居も下げていきたいです。

HomebrewでPostgreSQLをインストール。linkエラーとpsqlできないエラーを直す

MacPostgreSQLをインストールする手順と、詰まった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をインストールする際に予めXcodeXcode Command Line Toolのインストールが必須という記事がよくありますが、追記日現在では特にインストールすること無く上記のコマンドだけでHomebrewのインストールが可能となっています

    引用元:30分でできるRuby on RailsとGitHubやエディタまわりの環境構築

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側で問題が起きたっぽい。

f:id:Usa_Momokawa:20180918000526j:plain
brew doctorの結果

ググる

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でまたエラー

またエラーきたこれ。

  • 色々試した結果、最終的にinitdbでDBの初期化をしたら直った。

      $ initdb /usr/local/var/postgres -E utf8
    

参考: MacにPostgreSQLをインストール

f:id:Usa_Momokawa:20180917235914j:plain
PostgreSQLが使えるようになった

おめでとう。 頭の中では、シンジくんがミサトさん達から拍手されていました、とさ。

aptコマンドをざっくり知る

  • macのターミナルでインストールしたHomebrew、これのLinux版。パッケージマネージャというそうです。

パッケージとは、ファイル群を一つにし、インストールや削除をまとめてできるようにしたもの

引用元(https://www.debian.org/doc/manuals/aptitude/pr01s02.ja.html)

aptコマンドを調べる

  • $ man aptでマニュアル表示です。ざっと見てから記事をググりました。

【 apt 】コマンド(基礎編)――ソフトウェアをインストールする

  • aptコマンドの使い方や、aptコマンドの変遷が載っています。
  • apt-get・apt-cacheが統合されたものがaptだそうです。
  • aptコマンドとaptitudeコマンドは別物です。

Vimをインストールしてみる

前提

  • まだsudoをインストールしていない状態を想定しています。

手順

  1. root権限になります。

    • 管理者権限(root権限)でないとインストールできません。
    • $ su -
    • rootのパスワードを入力。
  2. aptを更新

  3. aptでインストール

8月まとめ

8月にやったことメモ

プログラミング関連

インプット

アウトプット

英語

  • 『基礎 英文問題精講』を1日1題
    • 大学受験勉強で使っていた本。
    • 読解の抵抗感を減らす目的。読むスピードも特訓中。
    • 読解の量が足りない感触。

所感

クリーンインストールについて

2回やりました。

1回目(失敗)

  • 内蔵HDDボリューム削除の後、操作を誤りシステム終了をしてしまいました。
  • OS再インストールの際、「APFSインストール用のprebootボリュームを作成できませんでした」のエラー。
  • Time Machineからデータ復活。
  • バックアップのありがたみを肌で感じました。

2回目(成功)

  • 復活データから再度クリーンインストール
  • 購入したばかりのMacでデータはほとんど入れていませんでしたが、データ移行には2時間かかりました。(予測時間は8時間と出ていましたが、残念ながらあてにならない)

CSS課題について

  • Progateで基礎学習のち、flexbox, remとem, 擬似要素, リセットCSSを学習し、アウトプットしました。
    • flexboxが基本的に便利。flexboxでデザイン崩れを起こしてしまったインライン要素にはfloatを使いました。
    • CSS課題はかなり大変でしたが、おかげでCSSの基本的なところは網羅して、アウトプットまで持っていけたと思います。
  • viewportとメディアクエリでの、簡単なレスポンシブ機能もつけました。
    • 次はcalc()関数も取り入れた制作物を作ってみたいです。

その他

9月やることメモ

  • Linux基礎
  • HTTP基礎
  • Nginx基礎
  • 英語学習:多読を取り入れる。大学の英語資料を毎日読む。
  • ジムをさぼりがちだったので、朝ジム生活を習慣化したい.......運動不足解消

ターミナル入門

ターミナル触ってみた

やったこと

  • Homebrewの導入
  • Terminalの基本的なコマンドを実践
  • PATHを通してみる など

つまったこと

黒い画面、 初手はProgateがおすすめ

  • プログラミング初学者の友Progate。
  • 「黒い画面入門」に入る前に、あらかじめProgateのコマンドライン講座(基礎編)で学習しました。現時点(2018年8月)では、コマンドライン講座はこれ1つしかありません。もっと増えてほしいなあ。
  • ターミナルを触らずに、基本的なコマンドを実践学習できる講座です。
  • ターミナルへの恐怖心を減らすという点で役に立ちました。

fjord boot campに参加しました

自己紹介

本日fjord boot campへ参加しました、百川(ももかわ)うさです。

20年卒予定の、ド文系大学生です。

情報を残す場として、技術ブログを始めました。

 

これまでの学習歴

プログラミングの本格的な学習は今年7月より開始しました。

使ったサービスは『Progate』。有料会員です。

学んだ順序

 

すべて2周しました。道場でヒントみながら書けるレベル。

 新しいMacを買って環境構築したら、

実際にかんたんな制作物を作って、現状をアウトプット予定です。

 

趣味

基本的に、iPadApple Pencilでデジタルイラストを描いています。

デフォルメが好き。

初心者向けのデザイン本とにらめっこしています。

 

最近はVRにも興味があります。Oculus GOが欲しい。

MMDやUnityにも挑戦したいと思っています。

VRoidにも申し込んでいたので、諸所落ち着いたら動かしたいなー。