世界のどこかで楽しくRubyでお仕事するために
-
Upload
kuniaki-igarashi -
Category
Technology
-
view
2.586 -
download
1
description
Transcript of 世界のどこかで楽しくRubyでお仕事するために
世界のどこかでRubyで楽しくお仕事をするためにKuniaki IGARASHI/igaiga2011.3.20 at 北陸.rb x 高専カンファレンス
最初に、東北地方太平洋沖地震で被災されたみなさまにおくやみ、お見舞い申し上げます。
さしあたり、私にできることは義援金を送ること。
そこで
世界のどこかでRubyで楽しくお仕事をするためにがっつり稼ぐためにKuniaki IGARASHI/igaiga2011.3.20 at 北陸.rb x 高専カンファレンス
そして
会場へ行けずごめんなさい
というか正直行きたかったよ、ええ。
本当に残念です。
自己紹介
五十嵐邦明 / igaiga555株式会社 万葉 Rails/iPhone開発高専カンファレンス014東京実行委員長
提供
株式会社 万葉 Everyleaf Corp.
Ruby on Rails and iPhone
フリーペーパー”EM高専カンファレンス”絶賛好評配布中!!
スポンサー
jig.jp様
おしながきRubyとの出会いと自分史
私がRubyを仕事にした理由Rubyを仕事にしてみてRubyでお仕事世界編
RubyConfへ行ってきた世界でRubyを仕事にする方法
いがいが史
1998年 群馬高専電気工学科卒
2002年 北海道大学量子物理工学専攻卒
2002 札幌で就職 SE/プログラマになる C, C++, C#2005 東京で転職 コンシューマ機器メーカー C/C++で動画編集ライブラリ開発2010 東京で転職 Rails/iPhone開発
いがいが史 Ruby編2002 札幌 先輩がRubyを使ってた(気がする) tDiaryを使い始める2005 東京 動画編集ライブラリ開発 Rubyを使い始める 治具としてのRuby テストツールとしてのRuby2010 Ruby on Rails を仕事道具にする
治具:物をつくるために便利な自作の道具
例)全テキストファイルの先頭に1行挿入したいemacsの拡張を書きたい
治具としてのRuby
日本語っぽい字を含むファイルがどれくらいあるか知りたい# -*- coding: utf-8 -*-Dir.glob('**/*.*'){ |f| #サブディレクトリも含む全ファイルについて puts "■file: #{f}" #ファイル名出力 File.open(f, "r:UTF-8:UTF-8").each_with_index{ |l, i| #ファイル開く! ! puts "#{f}:#{i+1}: #{l}" unless l =~ /^[\p{ASCII}]*$/# # #全ての行を調べて、ASCII英字以外の文字が含まれていたら標準出力に表示 }}
# for Ruby1.9# 鬼車(Ruby正規表現エンジン)リファレンス# http://www.geocities.jp/kosako3/oniguruma/doc/RE.ja.txt
最近つくった治具
参考図書私がRubyを学習した最初の本
当時 現在http://www.amazon.co.jp/dp/4797359986/
051 文字列を連結する052 文字列の一部を置換する056 文字列の先頭・末尾から空白を取り除く070 文字列が正規表現として正しいか調べる160 ディレクトリとファイルの一覧を取得する162 カレントディレクトリを変更する165 ファイルをコピーする207 現在の日時を取得する227 RubyGemsでライブラリをインストールする228 Rubyスクリプトをコマンドにする
Rubyレシピブック目次(抜粋)
http://www.notwork.org/rubyrecipebook3/contents-detail.html
当時、動画編集ライブラリの開発をしていました。このライブラリのテストはwindows上でコマンドラインのexeから実行するものでした。とても有用なテストだったのですが、実行時間が長いのが問題でした。 例> lib_test.exe -f file -c avc -s 720 オプションでcodecとか画サイズとかを指定lib_test.exe -f file1 -c avc -s 720lib_test.exe -f file1 -c avc -s 1440lib_test.exe -f file1 -c avc -s 1920lib_test.exe -f file1 -c mpeg -s 720lib_test.exe -f file1 -c mpge -s 1440lib_test.exe -f file1 -c mpge -s 1920lib_test.exe -f file2 -c avc -s 720lib_test.exe -f file2 -c avc -s 1440... 延々続く
動画編集ライブラリテストツール
改善1ruby のスクリプト化して、タグで実行コードを絞れるように変えました。コミット前など時間が限られたときに便利。また、あるcodecだけ実行することもできるようになりました。その際にtag付きテスト一覧リストはExcelで管理するように変えました。 例> lib_test.rb -tag 720lib_test.exe -f file1 -c avc -s 720lib_test.exe -f file1 -c avc -s 1440lib_test.exe -f file1 -c avc -s 1920lib_test.exe -f file1 -c mpeg -s 720lib_test.exe -f file1 -c mpge -s 1440lib_test.exe -f file1 -c mpge -s 1920lib_test.exe -f file2 -c avc -s 720lib_test.exe -f file2 -c avc -s 1440...
動画編集ライブラリテストツール
改善2複数マシンで分散実行するようにしました。dRuby の TupleSpace を利用したライブラリを別の部署の人が作ってくれていたので組み込みました。
動画編集ライブラリテストツール
Ruby逆引きレシピ133 タプルスペースを介した分散処理を行ないたい
TupleSpace
write take
tuple
tuple
複数プロセスからアクセスできる箱tuple = オブジェクト
サンプルコード
手順1.TupleSpace 作成
2.write3.take
TupleSpace
write take
tuple
tuple
1.TupleSpace 作成
require 'rinda/tuplespace'$ts = Rinda::TupleSpace.newDRb.start_service(
'druby://localhost:12345', $ts)DRb.thread.join
2.writeTupleSpace
write take
tuple
tuple
require 'drb'$ts = DRbObject.new_with_uri(
'druby://localhost:12345')$ts.write([1, 2])
↑writeに tupleオブジェクト(この例ではArray [1,2] )を渡すとタプルスペースに格納してくれるヽ(́▽`)ノ
3.takeTupleSpace
write take
tuple
tuple
require 'drb'$ts = DRbObject.new_with_uri(
'druby://localhost:12345')p $ts.take([nil, nil])
=> [1, 2]↑さっきwriteで格納したtuple が取れるヽ(́▽`)ノ
分散テストシステムテスト実行者write
テストテストテスト
テスト
take
テスト機
テスト
テスト
テスト機
テスト
テスト機
tupleにいろんなオブジェクトを入れられる$ts.write([:label,’str’,1])tupleの生存時間を指定できる$ts.write([1,2], 30) ←生存時間30秒パターンマッチでtakeできる$ts.take([:label, nil])→第1要素が :label で要素数が2のtupleをtakenilは何でもマッチ
便利!
もともと Rubyist の友人が多かった agile コミュニティにはRubyistが多いRubyKaigi などでさらに多くの Rubyist と出会うRubyコミュニティが好きになる
Rubyコミュニティとの出会い
2社目の会社大きなコンシューマ機器製造メーカーのグループ会社コードをたくさん書きたくて転職してきたそれは達成できていた同僚も技術レベルが高くいい人ばかり
自分が身につけたい技術と仕事の乖離を感じるように会社依存の技術をこのまま貯めていいのかという焦燥感プログラマとしてのキャリアビジョンを描けるかクローズドな閉塞感
転職を考えるようになる
プロダクトの規模が小さい 1人でも仕事できる→会社依存からの脱却Rubyコミュニティが好きRubyが好きRubyでお仕事ができないか
Rubyでお仕事できないか
Railsで開発している会社Ruby会議などでメンバの人を知るRubyでギャルゲなんか楽しそう社長に聞き込みしてみたり小規模(当時8人)なので 自分が貢献できるのでは
万葉という会社があった
RoR!弊社メンバー紹介
Yasuko OHBAPresident & CEO“The basis of making DSL with
Ruby”
She is speaking NOW!You could go for main hall.
photo by koichiroo
Jugyo “g” developerthe best LT talker in RubyConf2009
“My many failed products”He is speaking NOW!
You could go for convention hall 200.
photo by koichiroo
Yes, we are conflicting now,violently.
Everyleaf Everyleaf Everyleaf BusinessOwnerKaigi「万葉
全力でつぶす!」
盛大にコンフリクト at Ruby会議2010
同僚の櫻井さん↑
↑専務 at RejectTalks
万葉で働いてみて1年間でRailsとiPhoneの2つの開発環境を習得Rubyコミュニティが同僚的な存在 Tokyu.rb, Asakusa.rb, twitter 開発に関する情報を交換できるRubyばっかりってわけでもない iPhone, html, css, javascript
万葉で楽しくお仕事
雑談は重要な情報源 知らない知識が入ってくるデバッグ力 隣の人のやり方を覗いてみたり困ったときの情報を交換する
勉強会の力
転職の動機と条件をまとめると
会社に依存しなくても生きていける
技術を身につけること
(ある程度)稼げること
そしてたぶん
RubyコミュニティでRubyistのみなさん
と一緒に仕事をしたい
仕事を選ぶときにコミュニティで選ぶという生き方
もある
君はどこのコミュニティで生きていきたいか?
そういう意味で、学生のころから
コミュニティ活動に参加することは自分の将来展望を描く
のに有効
キャリアについて考えてもらう
入り口になればいい
Rubyでお仕事世界編
RubyConfへ行ってきた
Dave Thomas, DHH, Matz が基調講演ホテル開催、昼ごはん、おやつ付きリクルート活動が盛ん日本人とたくさん話せる
RubyConf
Matz 基調講演終了後 基調講演内容和訳 http://blog.everyleaf.com/rubyconf2010-matz
Rubyを17年作っているけど、Rubyのユーザーは100人を超えないと思っていた。ところが、現在はこの会場にもたくさんの人が来てくれているけど、すごくたくさんの人にRubyを使ってもらっている。それは、自分の力ではなくて、Daveが本を書いてくれなければ、DHHがRubyを選んでくれなければ、そしてあなたがコミュニティに参加しなければ、今のRubyはなかったと思います。みなさんに心から感謝します!
matz 基調講演
http://blog.everyleaf.com/rubyconf2010-matz
セッション
セッションConfreaks サイトにて公開http://confreaks.net/events/rubyconf2010
例Git ninja training (“Classy Git”)
http://confreaks.net/videos/471-rubyconf2010-classy-githttp://git-tips.heroku.com
$ git diff --word-diff
$ git log --oneline --decorate --graph
マラソン大会
マラソン大会
おやつ
日本人とたくさん話せる
感想
行かないと分からないことは意外とたくさんある
なので、RubyConf2011にみんなぜひ行ってみよう!
お金はどれくらいかかるの?だいたい20万円
飛行機代 10万円参加費 3万円
ホテル代(4泊) 6万円交通費 1万円食費 2万円
今回は会社に全費用を出してもらいました。ありがとうございました。
今年はmrknさんも登壇か?
リクルート活動が盛ん
ぶっちゃけ、どれくらい稼げるの?
RailsDevCon@masuidrive「シリコンバレーでRailsエンジニアなら
年収100K~175K$(175K$=1400万円)稼げる」
http://togetter.com/li/71964
必要なスキルセットRails経験3年以上
Facebookアプリを作った経験RSpec・Cucumberでテスト
NoSQL、Git
http://togetter.com/li/71964
用語解説p.a. = per annum = 年間
オーストラリア メルボルン でweb開発者募集(6ヶ月)年収 $69608(約550万円) ~$75350 +9%退職金
また、学生さんであれば留学→海外で就職というルートも可能
注意!!この辺から
ネットで調べたことをさも自分が
体験したかのようにお話します。
ご了承ください。情報ありがとうございます。> btoさん、西嶋さん
そもそも米国で働くことがなぜ難しいのか
H-1B visa(就労ビザ)の取得が面倒採用企業の気持ち
ビザ出るまで半年も待たされて不確定。そんな面倒でリスキーな思いをするなら自国民を雇用した方が楽じゃんね。
しかし、留学生には特典がある
OPTOptional Practical Training
留学卒業後1年間、学生visaのまま(H-1B無しで)
働くことができるこの1年間、働きながらH-1Bを取得すればいい
米国以外にも仕事がある場所はある
RubyKaigi2010世界のRubyConfから
EuRuKoRailsConfChinaRailsCamp
つづきはいずれ
またの機会に・・・
まとめ
RubyConfや海外のカンファレンスに行ってみよう行かなければ
わからないことがある
米国で働くには留学から
就労ビザをとるLifehackがある
シリコンバレーではRailsエンジニアで年収1000万円越え
を狙える
株式会社万葉Everyleaf Corp.
Rubyコミュニティと共に歩むそんな生き方を万葉でしていきたい
ご静聴ありがとうございましたご質問は @igaiga555 まで