ねこものがたり

プログラミングあれこれ

mrubyから入るシステムプログラミング入門 に参加しました

このイベントについて

handsons.doorkeeper.jp

コンテナとミドルウェアならうづらさん、なうづらさんに直接学べるハンズオン。 今年のRubyKaigiで「楽しそうだな〜」と思ったもののmrubyって何からやればいいんだ?というのがいまいちわからないなと、なんとなく手が出なかったので、いいチャンスだと思って申し込みました!

やったこと

github.com

環境構築とビルドは、ハンズオン前日に自宅で済ませました。 私は特に何もハマらなかったのですんなり終わりました。

当日は前半が「組み込みって?mrubyって?」というお話を講義形式で。 後半がハンズオンでGitHubにある手順通りに各自手を動かしていきました。

大まかにはこんな感じ(だと理解している、違ったら教えてください!)

  1. mrubyのgem(mgem)をつくる
    • 負荷情報を取得するmruby-loadavg
    • uname情報を扱うmruby-myuname
      (難しかったので私はできなかった・・・)
  2. ngx_mrubyを使ってmrubyでnginxの設定をする
    • Hello World
    • nginx.conf中で任意のrbファイルを実行する
    • 1.でつくったmgemを利用してサーバーにログインしなくても付加情報を取得する

感想

「mruby = 組み込み = ハードウェア」というイメージがどうしてもあったのですが、nginx最初の1歩が踏み出せたのは身近な感じを覚えました!

nginxを触るところより、mgemを作るときのほうが難しかったです。 「どういうことが扱えたらどうできるのか」がいまいち自分で見えてないからかなという気がします。 でも、作り方、考え方はわかったので、まずはこういうことがしたい!って思えるくらいやってみたいと思いました。

あとは、前日のRuby Hacking Challenge同様「Cできるようになりたい」と思いました。

この辺のリプライを心に刻んでやっていこうな!

Ruby Hack Challenge Holiday #5 に参加しました

Ruby Hack Challenge Holiday #5

主催:笹田さんと遠藤さん(強い) 内容:Rubyをハックする(強い)

rhc.connpass.com

なぜ参加したのか

Rubyをハックする」っていうのがかっこよさそうだけど”難しそう”というのがまず最初にイベントページみたときの印象。「でも、できるようになりたいからとにかく行ってみるぞ」という気持ちだったのが参加の理由です。ハックできるようになりたいのです。かっこいいじゃないですか、できたら。やったらできるかなーって。

やったこと

特に「今日これをやりたい!」というのはなくて「Rubyをハックするとは?からやりたい」という気持だったので、GitHub - ko1/rubyhackchallengeを読みながら、Rubyのビルドからやることに。

結果として、Rubyにメソッドを追加する演習のrubyhackchallenge/3_practice.md at master · ko1/rubyhackchallenge · GitHubまで進みました。

ハマったこと

ソースをゴニョゴニョしたあとにmake runを実行するとminirubyのビルドとサンプルコードの実行がまとめてできるんですが、それが成功してもrubyのほうでうまくいかないという事象が発生しました。

根本的なことはその場ではわからなかったんですが、make installコマンドを実行すると発生していたエラーが解消されました。

これは果たしてなんだったのか・・・

他にも数名同じ事象になっている人がいたので、何かの場合にこうなるっぽいんですが、過去のRuby Hack Challengeではこんなことにはなってなかったようなので、今のところ謎です。

感想

ハマりどころはありましたが、”Rubyをハックする”という、今まで憧れだけだった世界に一歩踏み出せてとても充実した時間を過ごせました。 また、笹田さん、遠藤さんという強いお二人に対して参加者10名という、超贅沢な人数だったので「ほんまにいいんだろうか」という感じでした。もちろんとってもよかったです。

C言語スラスラ書けるようになりたいーというのが最終結論です。 詳しい仕組みとかは回数重ねていったり、何かの本を読んだりしてるうちに「あ、そういうことか」ってわかったらいいかなと思うので、”こうやってやるとできる”を楽しんでいきたいと思いました!