e-ZUKA Tech Night vol.50 -enPiT PBL最終成果発表会-

第一部は九州工業大学大学院情報工学研究院enPiTクラウドコースの学生による最終成果発表会”e-ZUKA Tech Evening”、第二部はクックパッド株式会社より笹田耕一氏(Rubyインタプリタ開発)とGMOペパボ株式会社より近藤宇智朗氏 (シニアプリンシパル)に講演をしていただきました。 第一部 "e-ZUKA Tech Evening" enPiT PBL最終成果発表会 サブスクをより良いものへ進化させるアプリ「ScrimPay」/ 藤原佑介, 西永航志朗, 井上雄介, 北川直人 第二部 "e-ZUKA Tech Night" Haconiwaが超えたあの夏 / 近藤宇智朗氏 続きを読む
0
eZukaTechNight @eZukaTechNight

Rubyのテスト。ユーザーがたくさんいる。バグがあるとヤバイ。結構見つかる。見つかりやすいバグは必ず見つかる。めったに再現しないバグも結構みつかる。長い間見つからないこともある。 #ezuka_tech_night

2020-01-23 20:22:02
eZukaTechNight @eZukaTechNight

どうやってテストを書くか?Rubyインタープリタは、Cで書かれてるけどCでテスト書く?現実的にはRubyでRubyのテストを書く。単体テストっぽいけど、実は結合テスト。 #ezuka_tech_night

2020-01-23 20:23:06
eZukaTechNight @eZukaTechNight

bootstraptest=Rubyのプログラム片と期待する出力の組。各プログラムを独立したRubyプロセスで実行し結果比較。 利点としてテストが異常終了しても他のテストを実行可能。欠点はプロセス起動が遅い。 #ezuka_tech_night

2020-01-23 20:25:14
eZukaTechNight @eZukaTechNight

Unit-testフレームワークを使ったテスト。テストフレームワークの機能を使える。 #ezuka_tech_night

2020-01-23 20:25:49
eZukaTechNight @eZukaTechNight

spec = 他の処理系(Rubinius)で作られたテストを使ってテストする。 #ezuka_tech_night

2020-01-23 20:26:40
eZukaTechNight @eZukaTechNight

rubyci=複数の環境(Solaris、AIX?)でテストを実行。クラウドサービスで提供していない環境でのテスト。 #ezuka_tech_night

2020-01-23 20:27:42
Mory Keisuke @kkmory_

クックパッド笹田さんの興味深いテストの話をきいている #ezuka_tech_night

2020-01-23 20:28:16
eZukaTechNight @eZukaTechNight

ci.rvm.jp= rubyciと一緒だけど結果が出るまでが拘束。cloneではなくpull、インクリメンタルビルド、並列ビルド、並行テスト。複数マシンでたくさん同時実行。push後催促2分くらいで失敗通知。#ezuka_tech_night

2020-01-23 20:28:52
eZukaTechNight @eZukaTechNight

複数マシンでたくさん同時実行することでハイゼンバグの発見に繋がる。GCなんかで1000回に1回の再現する場合、1日1万回テストしたら10回見つけられる。あといろんなデバッグオプションでのバグ発見。 #ezuka_tech_night

2020-01-23 20:30:54
eZukaTechNight @eZukaTechNight

bisect環境=git bisectすると二分探索でバグの混入を発見。Rubyの場合毎回ビルドするので遅い。先に全リビジョンをビルドしておいて拘束にbisectできる環境を用意。 #ezuka_tech_night

2020-01-23 20:32:07
eZukaTechNight @eZukaTechNight

現在の課題。大量のテストログを解析する基盤がない。テストが足りない。テストがまだ遅い。CIで再現したバグのpostmortemデバッグができない。 #ezuka_tech_night

2020-01-23 20:32:55
eZukaTechNight @eZukaTechNight

続いてLTコーナー。最初のLTはKeisuke Moriさんによる「Rubyと私とServerless」 #ezuka_tech_night

2020-01-23 20:36:50
eZukaTechNight @eZukaTechNight

RubyとServerless = Jets。Ruby製のServerlessフレームワーク。 #ezuka_tech_night

2020-01-23 20:40:05
eZukaTechNight @eZukaTechNight

AWSにはJAWS-UGというユーザーグループがあるけど、学生のUGであるJAWS-SGもあるよ。 #ezuka_tech_night

2020-01-23 20:41:39
eZukaTechNight @eZukaTechNight

続いてのLTは、お馴染み山内さんの「Nerves はElixirでIoTなナウでヤングなクールなすごいやつ」#ezuka_tech_night

2020-01-23 20:42:24
eZukaTechNight @eZukaTechNight

Elixirは父がErlangで母がRuby!Beautiful!!! #ezuka_tech_night

2020-01-23 20:43:51
eZukaTechNight @eZukaTechNight

NervesはElixirでIoTプログラムするツール。#ezuka_tech_night

2020-01-23 20:46:34
eZukaTechNight @eZukaTechNight

続いてのLTは岩男さんの「FreeBSDにおけるRuby」 #ezuka_tech_night

2020-01-23 20:48:01
eZukaTechNight @eZukaTechNight

FreeBSDにおけるRuby。2.4, 2.5, 2.6の3種類が利用可能。2.7はWIP。 #ezuka_tech_night

2020-01-23 20:51:13
eZukaTechNight @eZukaTechNight

続いてのLTは小出先生の「8ピンマイコンで,あそぶぶら」 #ezuka_tech_night

2020-01-23 20:54:43
eZukaTechNight @eZukaTechNight

機械語をやりたい。AVRマイコンのプログラミング。Aruduinoを書き込み機にする。ATTiny85、IOに6つもピンが使える。30個近いレジスタが使える。みんなも楽しくアセンブラプログラム学ぶと楽しい。 #ezuka_tech_night

2020-01-23 20:58:08
eZukaTechNight @eZukaTechNight

最後のLTは田中先生の「RBoard(mruby/cマイコン)のご紹介」#ezuka_tech_night

2020-01-23 20:58:40
eZukaTechNight @eZukaTechNight

ついに専用のmrubyマイコンが市販されることに!こまでブレッドボードにボード付けて使ってたけど、故障率が高かった。そこで専用のボードを作成。 #ezuka_tech_night

2020-01-23 21:00:40