RubyでString型でも引数展開する

Rubyでは引数を指定する際に*を付けることで引数展開ができます。

def foo(arg1,arg2,arg3)
  p arg1
  p arg2
  p arg3
end

ary = [1,2,3]

foo(*ary)
1
2
3

同様に、ハッシュやRangeオブジェクトも引数展開できます。

def foo(arg1,arg2,arg3)
  p arg1
  p arg2
  p arg3
end

hash = {a:1,b:2,c:3}
range = 1..3
foo(*hash)
foo(*range)
[:a, 1]
[:b, 2]
[:c, 3]
1
2
3

では、String型で引数展開するとどうなるでしょう?

def foo(arg1,arg2,arg3)
  p arg1
  p arg2
  p arg3
end

str = "str"

foo(*str)
test.rb:1:in `foo': wrong number of arguments (given 1, expected 3) (ArgumentError)
        from test.rb:9:in `<main>'

出来ませんでした!

*を使った引数展開は内部的にto_aメソッドを呼び出しているので、to_aの無いクラスでは使えません。

メソッド呼び出し(super・ブロック付き・yield) (Ruby 3.3 リファレンスマニュアル)

ということで、Stringクラスにto_aを追加してみます。

def foo(arg1,arg2,arg3)
  p arg1
  p arg2
  p arg3
end

class String
  def to_a
    self.chars
  end
end

str = "str"

foo(*str)
"s"
"t"
"r"

今度は出来ました!

同様にto_aメソッドを実装すれば他のクラスでも*を使った引数展開ができるようになります。

# Integerクラスで引数展開する
def foo(arg1,arg2,arg3)
  p arg1
  p arg2
  p arg3
end

class Integer
  def to_a
    self.digits.reverse
  end
end

int = 123

foo(*int)
1
2
3

まとめ

既存のクラスでもオープンクラスを使ってto_aを追加することで引数展開できるようになります!
とはいえモンキーパッチのご利用は計画的に~。

おいしいもつ煮の作り方

もう結構前の話ですが、7月のTokyu.rbにもつ煮を持って行ったところ大変好評で、おかげさまで飯王(投票一位)の称号をいただきました。
レシピ教えて欲しいというお声をいただいたので、いまさらながらレシピを公開します。
このレシピは私のおじいちゃん(大酒飲み)考案のレシピなのですが、味濃いめでお酒にもご飯にもよく合います。
おじいちゃんはよく飲み屋で『俺のもつ煮は優勝してるからな』と自慢しているそうです。

材料

  • 豚の白モツ(小腸) 600g
  • 豚バラブロック 300g
  • 大根 1/3本
  • こんにゃく 1枚
  • ニンニク(国産)5かけくらい
  • ショウガ 15gくらい

調味料

  • 顆粒昆布だし 8g
  • 味噌 おたま2~3杯くらい
  • みりん 大さじ3
  • バター 30~40gくらい

オプション

  • 長ネギ
  • 七味

ポイント

  • モツは肉屋のものを使うのがおすすめ。
  • スーパーのは下茹でしすぎているらしい(面倒ならスーパーのでいいとも思う)
  • 肉屋のものなら下茹でされているものでOK。
  • ニンニクは国産でフレッシュなものを使うのが大事。

作り方

  1. 大根を厚さ2~3cmのイチョウ切りにし、隠し包丁を入れておく。
  2. 大根を15分くらい下茹でする。
  3. モツを2~3cmくらいの長さに切る。
  4. モツは下茹でされていなければ下茹でする。
  5. 豚バラブロックは3cm角くらいに切る。

  6. こんにゃくは包丁で細かくスジを入れてから、スプーンでえぐるように一口大にちぎる。

  7. ショウガを薄くスライスする。
  8. 上記を鍋に入れ、水をひたひたに入れる。ショウガは後で取り出すので最後に入れると楽。
  9. 昆布だしも入れる。
  10. アクを取りながら1時間煮込む。
  11. 1時間後、みそとつぶしたニンニクを加えて、さらに30分煮込む。
  12. 火を止めてショウガを取り出す。
  13. 一度冷ます。冷めたときに味が染みるのでちゃんと冷ます。
  14. 冷えたらみりん、バターを加え、煮立たせる。スープの味を調整する。
  15. 更に1時間程度煮込み、一晩寝かせる。味がまろやかになるので、ちゃんと寝かせてください。
  16. 完成。長ネギや七味を加えていただく。

まとめ

下ごしらえが手間ですが、煮込み始めれば簡単です!
煮込み料理は待ち時間に技術書が読めてGOODですね。
Tokyu.rbは美味しいもの食べながらRubyの話を聞ける素敵なイベントです。
今年はLT枠で参加したいなぁ~。

ハンドメイド作家向けの発送支援サービス『Order2Post』をリリースしました

はじめに

こんにちは、フィヨルドブートキャンプ(FBC)でプログラミング学習中のriraです。
約1年間の学習期間を経て、自作サービスOrder2Postをリリースすることができました🥳
本記事ではサービスの紹介とリリースまでの振り返りを行います。

Order2Postとは

Order2Post
ハンドメイドマーケット大手のminneとCreemaのユーザー向けサービスとなっています。

主な機能

  • 注文一覧データを人間に読みやすい形にして表示(+印刷)する
  • 注文一覧データからクリックポストのまとめ申込用ファイルを出力する

の2種類です。

ここで言う注文一覧データというのは、minne、Creemaでダウンロードできる注文一覧のCSVファイルを指します。

使い方

  1. minne、Creemaで注文情報をダウンロードする
  2. サインアップ(会員登録)する。
  3. ダウンロードしたファイルを選択する

これで以下のように注文の一覧表示ができ、印刷も可能です。

注文を一覧で表示

クリックポストの申込用ファイルが欲しい場合

  1. クリックポスト変換ボタンを押します。
  2. フォームが現れるので内容品を記入します。内容品はクリックポストのラベルに印字されます。

  3. クリックポスト変換ボタンを押すと、申込ファイルの内容が表示されます。

  4. 内容を確認して、ダウンロードボタンを押すとclickpost.csvという申込用ファイルがダウンロードされます。

ダウンロードしたファイルをクリックポストのまとめ申込フォームで選択すればまとめ申込が完了します。

開発のきっかけ

私自身minne,Creemaを通じてハンドメイド作品の公開、販売を行っているのですが、発送作業において2つの問題を抱えていました。

【問題1】アプリだけでは注文の管理が辛い

注文が立て込んでくると、スマホの小さな画面と公式アプリだけでは注文の管理が辛い場面がありました。
注文を2回に分けて行ったお客様がいたとしてもそれに気づけなかったり、週末に送って欲しいと言われていた注文はどれだっけ?といった情報がアプリの注文一覧画面からは読み取りづらいのです。
必要な情報だけをリスト化、印刷したいな~という思いがありました。

【問題2】クリックポストの手入力が辛い

送料が安く、ポスト投函で発送作業が完了するクリックポストは大変便利なのですが、住所を1つずつ手入力するのはなかなか骨の折れる作業でした。
ハンドメイドECのアプリを開き、郵便番号をコピーし、ペーストする、住所1をコピーしペーストする、住所2を、氏名を、内容品を…
この作業、多い時には一日40件くらいやるわけです。
毎日、絶対正確に行わないといけないのは本当に大変!

解決策

そこで作ったのがminneとcreemaの注文をまとめて管理するプログラムでした。
注文を一覧化し、印刷、さらにクリックポストへも変換ができる!
これはこれで便利だったのですが、こちらはChromeDriverの設定が必要なうえにExcelとWindowsPCが無いと動作しませんでした。
個人的に使う分には問題ないのですが、一般公開して非エンジニアが気軽に使うにはハードルがある、という状況でした。
みんな喜んでくれてるけど、もう少し使いやすくしたいなぁという思いがありました。

Webアプリ化

FBCの最終課題はWebサービスを作るというものです。
制作する内容は自由だったので、これを機に誰でも設定なしで使える形で公開しようと考え、今回の開発に至りました。

工夫したこと

Webアプリ化に際してこだわったこととしては

  • 誰でも使える
  • 設定なしで使える

という事でした。
これに関してはFBCのメンターのmachidaさんがUIの設計の時点で色々とアドバイスしてくださり、ボタンを極力減らした現在の形になりました。
説明をたくさん書くより、説明を読まなくても使えるくらいシンプルなものを、というコンセプトのもとに作りました。

技術選定

Order2Postの技術スタックは以下となります。

バックエンド

フロントエンド

データベース

デプロイ

CI

テスト

作る機能がシンプルだったので、技術的にもチャレンジしながら作りたいという気持ちがありました。
特にReactとTypeScript、RSpecに関しては全然わからない状態でのスタートでしたが、就職を見越して学んでおきたいと思い採用しました。
開発のスケジュールは伸びましたが、手を動かしながら学べたので良い結果を得られたと思います。

苦労したこと

デザインが本当に難しかった

今でこそシンプルなデザインにまとまりましたが、開発の後期までがちゃがちゃした、はっきり言えばダサいデザインの状態でした。
こちらもメンターのmachidaさんに相談して、まずはカラーコンセプトをしっかり決める、色は背景含めて3~4色にする、といった指針をいただきデザインを見直しました。
多少ダサくても便利に使えるならいいか、と思っていたのですが、一新した結果を見ると『デザイン見直して良かった…』と感じます。

技術についての情報がどの程度あるか?を考えるべきだった

技術選定では使ってみたい、学習したい技術を詰め込んだのですが、その技術についてどれだけの情報が存在しているのかということを考慮していませんでした。
特にViteとFly.ioについては情報が少なく、デプロイ時にビルド失敗したりすると、『どこで何が引っかかってるのかがさっぱりわからない』という状況になりハマりました。
技術選定の指標に情報量という尺度が必要だと感じました。

今後の展望

スマホからだとOSの都合で印刷するボタンが使えないので、PDFとして注文一覧をダウンロードできるようにしたいと考えています。
ダウンロードしたPDFをプリンターのアプリで印刷してもらうイメージです。
その他のECサイトへの対応ですが、私が使っていないサービスだと管理が難しいため今のところは考えていません🙏

おわりに

FBCのメンター、受講生、卒業生、たくさんの方に助けられてリリースすることができました。心より感謝いたします。
Order2Postを通じてハンドメイド作家の皆さんが少しでも楽に、楽しく作家活動を続けられるようになったら私としては大変うれしいです。

ほぼ卒業生が語る、フィヨルドブートキャンプの話

この記事はフィヨルドブートキャンプのアドベントカレンダー2023 Part1の12日目の記事です。

はじめに

こんにちは、フィヨルドブートキャンプで学習中のriraです。
現在最終プラクティスの個人開発が大詰めで、リリースブログの下書きを提出したところです。
これが通ったら卒業となるので、このタイミングでほぼ卒業生としてフィヨルドブートキャンプってどんな感じ?的なことを書いてみたいと思います。
フィヨルドブートキャンプに入ろうか迷っている人、フィヨルドブートキャンプって何なの?って人に届いたらいいなぁと思います。

私とフィヨブーの出会い

2022年、私はエンジニアへの転職を目指していました。
半年ほど独学でRubyを学習し、Railsチュートリアルで学んだ知識で小さなWebサイトも作り、第一志望の企業の採用に応募し、書類で落ちました。
自分でもあらゆる能力が足りないことはわかっていたのですが、どうやって補えばいいのかがわかりませんでした。
そんな中、Rubyの学習に使っていたチェリー本の作者である伊藤さんのTwitterフィヨルドブートキャンプの存在を知りました。
チェリー本は私が読んできた技術書の中でもかなりわかりやすく、伊藤さんの書いたWebの記事にも度々お世話になっていたため、『この人がメンターをやってくれているなら、学びがありそう』という期待感がありました。
しかし、プログラミングスクールといえば、サジェストで『やめとけ』と付くのが常!
スクール卒が現場で嫌われているという話も聞いたことがあるし、正直不安しかなかったです。
しかし、口コミやネットの情報を見ていて、カリキュラムがハードとか、難易度が高い以外に悪い口コミがないことに気がつきました。
難易度が高いって悪いことなのか?
スクールに通っても大した能力が身についていないことがよくあるスクールの悪評なのだとしたら、真逆のスタイルのFBCには期待ができるかも。
そんな気持ちで入会を決めたのでした。

学習をはじめて

ラクティスの内容は多岐に渡ります。
HTTP、git、nginx、RubyRailsJavascript、DB、セキュリティ…
学習は本やWeb上の記事を読み、それをベースに課題を解くというものが多い。
課題は2、3日でメンターからレビューが返ってくるので、指摘された点の修正をして再提出する。
読んで理解することが中心なので手取り足取り教えてくれるわけではありません。
ただし、わからないことはQ&Aで聞くこともできるし、受講生の過去の日報や過去の質問からヒントを得ることもできます。
もちろんGoogleで検索もしますし、ChatGPTも活用します。
この答えを自分で探す行為こそが学習の本質だと思いました。
フィヨルドブートキャンプ、現役のエンジニアにとってまず身につけて欲しいこと=調べる力なのではないだろうか。

レビューは最高の体験

コードを書いて提出するようになると、コードレビューを受けます。
動くコードを書ければOKではなく、可読性、メンテナンス性といった事も加味して行われるコードレビューは、得られる知識の量が独学とは比較になりません!
何しろ自分が理解してないことだけを教えてもらえるのです。
そしてメンター陣もこの辺でいいかという妥協はしません!私は一つのプラクティスのレビュー修正に1ヶ月かかったことが二回ありました😅
1ヶ月もの間、見放さず諦めず丁寧に指導してくれたメンター陣には感謝しかありません。

チーム開発

ラクティスの終盤ではチーム開発を行います。
フィヨルトブートキャンプのWebサイトはこのチーム開発で開発されていて、OSSとして公開されています。
このチーム開発の進め方は企業で仕事を進めるのとほぼ同じと言われています。
私にとってはフィヨルドブートキャンプで一番楽しかったのはこのチーム開発プラクティスでした。
最初こそ進め方がわからず戸惑ったのですが、慣れてくるとチームメンバーと相談、協力したり、プロダクトをよくするための問題提起(Issueを作る)もできるようになります。
既存のシステムのコードを読み、改修するというのも実践的なスキルを身につけるのに繋がったと思います。

個人開発

チーム開発と並ぶ最終プラクティスで、自作サービスをリリースする必要があります。
これが認められれば卒業になるのですが、どんなサービスでどんな問題を解決するのかがちゃんと説明出来なければなりません。
私の場合は以前自分で使った自作プログラムをWebサービスとして実装しました。
この自作サービスは就職活動時に企業が見ることになります。
自分一人でどの程度のものが作れるかの指標になるし、フィヨルドブートキャンプに入るとどの程度のスキルが身につくのか?の答えでもあると思います。

コミュニティに入ろう

フィヨルドブートキャンプの特色として、コミュニティへ参加しましょう、という空気作りをしています。
コミュニティとは何か?というと、例えばRubyコミュニティがあります。
具体的に誰がやってるどの集まりがRubyコミュニティという訳ではなく、Rubyを軸にしたイベント、Rubyist界隈全体を総称してRubyコミュニティと呼んでいます。
その中にある集まり一つ一つもコミュニティと呼ばれます。
フィヨルドブートキャンプはRuby最大のカンファレンスであるRuby Kaigiにもスポンサーとして参加していて、Rubyコミュニティでの存在感、信頼感があるように感じます。
このコミュニティに入ることで何が良いのかといえば、みんなの輪に入れるということだと思います。
話題の技術、会社の内情、業界の動向。コミュニティに参加するとそんな情報が自然と享受できるし、技術に対して愛着もわいてきます。
そして現役のエンジニアの人達と関わることで理想のエンジニア像というのが見えてくると思います。
当然、コミュニティは良さそうだけどいきなり参加は敷居高いな~と思うわけですが、私にとってその敷居の高さを埋めてくれたのもフィヨルドブートキャンプでした。
なんと、フィヨルドブートキャンプがRuby Kaigiの開催地に無料宿泊所(フィヨブーハウス)を用意してくれているのです!
2023年から始まったフィヨブーハウスですが、同じ受講生同士、初参加同士で和気あいあいとRuby Kaigiが楽しめるので大変良い体験でした。
カンファレンスの内容を聞くだけならオンライン視聴もできるわけですが、初学者だからこそまずは一度現地参加して欲しいと思います。

結局フィヨルドブートキャンプってどうなの?

【2023年】プログラミングスクールのおすすめ人気ランキング11選【徹底比較】 | mybest こちらの記事だとフィヨルドブートキャンプ紹介すらされてないんですよね🫠
広告費をかけていないから一般的な知名度は低い、ということもあるのでしょう。
ですが、フィヨルドブートキャンプはメンターも卒業生も既にあちこちのコミュニティに参加しているし、フィヨルドブートキャンプがスポンサーになっているイベントが他にもあります。
私の肌感覚ですが、自己紹介でフィヨルドブートキャンプ生です、と言えばだいたい伝わりますし、スクールかぁ…みたいな扱いはされていません。
Rubyコミュニティで存在感の大きいスクールといったら、フィヨルドブートキャンプはトップレベルだと思います。
業界内では名の知れたスクール、という感じがします。
学習の内容としても、カンファレンスに登壇できるレベルの卒業生を輩出している、ということが十分なレベルを示していると思います。
ということで、結論としては、やる気があるなら入ったらいいよ!と言いたいです。

悪いところはないの?

悪いところかはわかりませんが、いくつか注意点を。
まず、フィヨルドブートキャンプを卒業したらプログラマーになれるというのは誤解です。
なれるのはWeb系のプログラマーです。
プログラマーと言っても広い世界なので、ジャンルがあります
例えばゲーム業界でプログラマーやりたい!という方にはフィヨルドブートキャンプはずいぶん遠回りな選択になると思います。
あと、カリキュラムがハードなのは本当です。
卒業までにかかった学習時間は、私の場合1800時間でした。
分厚い技術書を何冊も読み、英語で書かれたエラーと戦い、時にはエラーメッセージすらない問題とも戦うことになります。
得られるサポートは、『このエラーの時はここをこうすればいいんだよ~』ではなく、『こういう風に調べれば答えが見つかるかもね~』といった感じです。
誰がやっても辛い場面はあると思うので、そこで挫けない心、気の長さみたいなものが必要かもしれません。

終わりに

以上になります。
ほぼ卒業生としては今後もフィヨルドブートキャンプ発展していって欲しいなぁという気持ちで書きました!
これを読んだ方がフィヨルドブートキャンプ良さそうじゃんと思っていただけたら嬉しいです。

ペアプロ、モブプロで教えてもらった便利なテクニック

ペアプロ、モブプロで学ぶ

最近ペアプロ、モブプロを経験しました!
自分よりスキルの高い人の操作やデバッグの手順を見ることで色々と学ぶことがありました。
その中でもそれ早く知りたかった!という内容を今回は共有したいと思います。

puts save_screenshot

save_screenshotでCapybaraのシステムテスト中にスクリーンショットが撮れます。
画面の要素が取得できないときなどに、そもそも表示されているのかなどチェックするのに役に立ちます。
putsを付けることでターミナルにスクショの保存先が表示されるので便利です。表示された保存先をCtrl+クリックするとスクショが見れます。

RSpecで特定のテストだけ実行する

RSpecでテストを実行する際に-eオプションを付けると、指定したファイルの指定したテストだけ実行できます。
bundle exec rspec spec/CSVReader_spec.rb -e 'CSVファイルが読み込めること' こんな感じでテストの名前を指定することで、そのテストだけが実行されます。
他にも:行番号を付けることでその部分だけテストすることもできます。
bundle exec rspec spec/CSVReader_spec.rb:10(10行目に書かれたテストを実行)

GitHubVSCodeを開く

ブラウザでGitHubリポジトリを開き、.(ドット)キーを押すとWeb上でVSCodeが開けます。
GitHubでもソースは読めますが、VSCodeの使い慣れたエクスプローラーや検索機能が使えていい感じです。

VSCodeでソース定義に移動

VSCodeでメソッドを選択した状態で右クリック→ソース定義に移動を押すとメソッドの定義された場所に飛ぶことができます。
このメソッド何だっけ?という時にさっと移動できるし、同じ名前のメソッドがあっても迷わないので便利です。

VSCodeでファイル名検索する

Ctrl + pでファイル名検索できます。
パスを検索してくれるのでfixturesと入力すればfixuturesディレクトリ配下を検索できます。
ちなみに通常のファイル内検索はCtrl + fで、全ファイル内の検索はCtrl + Shift + fです。

以上です

知っていれば生産性が上がるテクニックを紹介しました。
紹介したテクニックとは離れますが、ペアプロ、モブプロで感じるのはスキルの高い人はログやメッセージから必要な情報を取得したり、検索結果から必要な情報を見つける能力が高いな~ということです。
中でも英語や公式のドキュメントを適切に読めると得られる情報が大幅に増えるので、日頃から読む練習をしていきたいと思います。

RubyKaigi初参加者が書く『RubyKaigiってなあに?』

RubyKaigi2023に現地参加しました

右も左もわからないけど行ってみたら最高に楽しかったです!
この記事ではRubyKaigi初参加の自分が、まだRubyKaigiに参加したことのない方向けにRubyKaigiの魅力を語りたいと思います。

書いた人のスペック

フィヨルドブートキャンプでプログラミングを学習しています。
学習時間で言うと1000時間弱、まだまだレビューで突っ込まれまくる成長期なタイミングでの参加となります。

RubyKaigiとは?

下記は公式のaboutページからの引用です。

https://rubykaigi.org/2023/about/

RubyKaigiは、プログラミング言語であるRubyに関する国際会議です。 RubyKaigiは、最新技術を議論する場、Rubyの未来を議論する世界最大のRubyコア開発者の集まり、そして日本語と英語によるコミュニティハブとして重要な役割を担っています。

何だか難しそうですが、会場内で行われるセッション(講義)を聴講するのがメインのイベントです。

実際に私が体験したことについても書いていきます。

セッションを聴講する

セッションは3会場で行われます。
RubyKaigiは公用語を英語としているのでオープニングやクロージングは基本的に英語で進行します。
セッションの内容は英語と日本語のものがあり、日本語セッションでは英語への同時通訳が行われていました(一部除く)。

会場には登壇者の発言をリアルタイムで英訳して表示するスクリーンが設置されています。
英語のセッションの場合、発言がそのまま英語で表示されます。 私は英語のリスニングはほとんどできないので英語のセッションではこのスクリーンを眺めて内容を把握していました。

セッションの内容は登壇者が研究した新しい技術に関する解説が中心です。
登壇する方々もできるだけわかりやすく説明してくれていますが、何しろまだ誰もやってない事を研究して発表しているわけですので、わからない情報がポンポン出てきます。
この『わからん』が発生するのは初学者もベテランも同じことなので「わからなくて当然」くらいの気持ちで問題ありません。
わからない中でも自分の興味のあるトピックでは新しい知見が得られますし、知らない単語を拾って調べるだけでも新たな知識が得られます。
また、Rubyという技術の裾野がどこまで広がっているのか、どのような研究でなりたっているのかを知ることができるのも重要なポイントです。
私たちが使っている技術は自然と湧いてきたものではなく、先人の努力の上に成り立っているということを感じることができました。

企業ブースを回る

https://rubykaigi.org/2023/sponsors/

会場にはたくさんのスポンサー企業ブースがあります。
ブースでは企業紹介の他にクイズやアンケート、ノベルティの配布といったことが行われています。
スタンプラリーが開催されていたので私も「スタンプ下さーい」と言いながらすべてのブースを巡りました。
出展している企業にとっては自社の技術や文化をアピールしてエンジニアの採用につなげるのが主な目的だと思います。
興味のある企業には「興味があります!」と素直に伝えましょう。採用に関するお話を直接聞けるチャンスです。
私もペパボさんのブースでお話を聞かせていただき、今後の学習に対するモチベーションを上げることができました。

Rubyistに出会う

今回参加して感じたのはコミュニティが温かいのもRubyの魅力だなぁということです。
今回の松本には約1200人のRubyistが集まりました。
1200人集まるとどうなるかというと、町を歩けばそこら中にRubyistがいる状態になります。
普段Twitterで見ているRuby技術者や本の著者があちこちで見かけられる状態なので、挨拶してみましょう。
また、オフィシャルパーティを始め多くのイベントが開催されますのでそれらに参加するのもいいと思います。

開催都市を楽しむ

つまり観光するのです!
RubyKaigiは毎年開催都市が異なります。
年によって異なるかと思いますが、2023年は松本市内で使えるバウチャーチケットが3000円分配られました。
私もありがたく使わせていただき、そば、山賊焼き、馬刺し、地酒と全力で楽しませていただきました。
お昼休憩はたっぷり2時間ありますので会場を出て人気店に並んでも午後のセッションに十分間に合いました。
セッションに疲れたら町に出るのももちろんOKです。
松本は素敵なカフェが多い街ですので、この休憩時間もとても楽しいものでした。
松本もniceな町でしたが、次回開催の沖縄も間違いなくniceな町です。

結局参加したほうが良いの?

ここではRubyKaigiに参加するべきか迷っている人向けにいくつかのポイントを紹介したいと思います。

費用について

チケットが早割で1.5万円、さらに交通費や宿泊費を考えると総額は決して安くはありませんが、参加する価値は大いにあると思います。
今回松本の会場ではお弁当やリンゴジュース、ビールの配布がありました。
さらにバウチャーチケット3000円分、Tシャツなどのノベルティがもらえることを考えるとチケットの価格以上の価値があると思いました。
また、Rubyists on Rails(クックパッド)や学生エンジニア招待(Pixiv)といった参加援助の企画もありますので応募してみるのも手だと思います。
次回開催が沖縄なので旅費の負担は大きくなると思います。今から貯金を始めましょう!

理解できないから意味がない?

今回参加して私が理解した内容はせいぜい3割くらい、トピックによってはもっと低いかもしれません。
英語のセッションを聞いてもリスニングがさっぱりなので、英語がもっと理解できればな~と悔しい気持ちになりました。
Rubyのことをもっと知っていれば、さらに楽しめたのだろうと思います。
これらの気持ちが私を次のステップに導いてくれる気がしています。
大切なのは中身を完璧に理解することではなく、刺激を受けることです。
多分、私は英語の勉強を始め、挫折するでしょう。
でもまた来年のRubyKaigiで英語の勉強がしたくなるのです。その繰り返しが10年続けばきっと今とは違う景色が見えるはずです。

どのくらいのレベルなら参加できるの?

RubyKaigiに参加すべきか迷っているということは、Rubyに興味がある、もっと知りたいと思っているということだと思います。
なので参加するか迷っているのなら、既に参加する資格があると私は考えます。
Rubyを知れば知るほどRubyKaigiは楽しくなると思います。
そしてRubyKaigiが楽しければ楽しいほどRubyが好きになります。
自分の仕事に使う技術が好き、楽しいというのは幸せなことですよね。
Rubyを楽しみたい」という気持ちがあるのであれば是非参加してほしいなと思います。

オンライン参加ってどうなんだろう?

今回初めてのRubyKaigiに現地参加しましたが、オンライン参加はどうなのでしょう?
オンライン未経験の個人の意見ですが、現地で参加したほうが面白いのは間違いないと思います。
見たいセッションがあるけど現地に行けない、という場合はオンライン参加もありですが、「とりあえずお試しで」というつもりなら現地参加をおすすめします。

終わりに

会期中たくさんの方々とお話しする機会をいただきました。
お話していただいた皆様には感謝しかありません。ありがとうございました。

Rubyプログラミング言語であり、道具として使うこともできますが、そこには文化がありコミュニティがあります。
この文化とコミュニティが成熟していることがRubyの大きな魅力だと思っています。
また、私個人としてはRubyKaigiはRubyを学んだご褒美だな~という印象を持ちました。
これから1年たくさん勉強して、来年のRubyKaigiではもっと楽しい時間を過ごしたいなと思いました。

週報 2023/4/2~2023/4/8 餃子の話

今週の振り返り

最近隔週報になってしまっています・・・
でも代わりにブログ記事を更新しているのでブログを放置しない目標は達せてい出来ている。ので許して欲しいです🙏(誰にだ?)
今週と先週は自動テストとオブジェクト指向JavaScriptのプラクティスを進めました。
自動テストはレビューの再提出だけだったのでそんなにでしたが、オブジェクト指向は本が2冊あったのでなかなかボリュームがありました。
課題は提出済みでレビュー待ち状態です。
JavaScriptは現在簡単なメモアプリ作成の課題を進めていますが、ちょっとハマる予感がしています。
オブジェクト指向のプラクティスでもそうでしたが、クラスの分け方というかどういうクラスがあるといいのか、という部分が難しいです。
これはインプットが足りないのかアウトプットが足りないのか、もしくは両方かといったところもわからず、訓練の仕方を模索しているような状態です。
逆にここを抜けるとレベルが1つ上がる予感もするのでじっくり向き合っていきたいです。
あとRubyKaigiの現地参加を決めました。
FBCの無料宿泊所フィヨブーハウスも利用予定でワクワクしています。

今週の成果

進めたプラクティス

学習時間

累計:845.5時間

一人ガムトーク

餃子の話

餃子好きです。
皮が厚いのも薄いのも、水餃子も揚げ餃子も好きです。
そしてたまに自分で皮から作ることがあります。
自分で作るときは皮を市販品にはない分厚さにしてサイズもかなり大きめにします。
これが中々おいしくて気に入っているんですが、妻は皮が薄目の方が好きということでなかなか最近は作る機会がありません。
とか書いてたら無性に食べたくなってきました。
今度娘を誘って作ろうと思います。

以上、餃子の話でした。