Ruby World Conferenceに登壇してきました
もうすぐ2015年度Ruby World Conferenceが開催されるので、その前に2014のレポートを書いておきたいと思います。
Ruby World Conference 2014
Conference info
参加者
来場者
- 2 日間延べ 876 名(11 月13 日 495 名、11 月14 日 381 名)
- 来場実数 658 名(県内 216 名、県外 433 名、海外9 名)
- IT 企業関係者 447 名(県内108 名、県外334 名、海外5 名)
- その他企業関係者 35 名(県内17 名、県外16 名、海外2 名)
- 行政関係者 17 名(県内0 名、県外17 名)
- 研究教育機関関係者 113 名(県内104 名、県外9 名)
- 一般(所属なし) 26 名(県内8 名、県外18 名)
- 講演者 20 名(県内7 名、県外11 名、海外2 名)※Ruby Prize 含む
講演者
- 国内18 名(企業関係者16 名、教育機関関係者1 名、行政機関関係者1 名)
- 海外 2 名(アメリカ2 名 うち企業関係者1 名)
ウェルカムパーティ
登壇者に選んでいただけると、前日に発表者やスポンサーの方々の交流会に呼んでいただけます。
すごい豪華でした。
カンファレンスの雰囲気
参加者の方みなさんとても優しく、ネタを言っても結構笑ってくれます。
あと自分の一個前の発表がクリアコードの須藤さんだったのですが、須藤さんが発表前にプルリクを下さったり、ご自身のプレゼンの中でも名前を出していただけました。
(実は私は発表の準備で前半しか聞けませんでしたが、)ありがとうございましたmm
Ruby motionの導入方法
インストール
1. Ruby motionのインストール
以下のリンクからRuby motionの利用登録を行います。
登録すると入力したemailアドレスにダウンロードリンクとライセンスキーが送られてくるので、それをインストールします。
(今回はStarterを選択)
Download | RubyMotion
- 通常は/usr/bin/motionにインストールされています
2. Xcodeのインストール
以下のリンクからXCodeをダウンロードしてインストールします。
(今回は7.0を選択しました)
Xcode - ダウンロード - Apple Developer
3. ruby motion projectの作成
cd ~ motion create HelloMotion cd HelloMotion rake
4. 確認
$ rake Build ./build/iPhoneSimulator-9.0-Development Create ./build/iPhoneSimulator-9.0-Development/HelloMotion.app/Info.plist Simulate ./build/iPhoneSimulator-9.0-Development/HelloMotion.app *** Starting simulator (main)>
- rake コマンドでシミュレーターを起動する
- 成功すれば起動画面が出た後にアプリの画面が表示される
5. 終了
(main)> exit
- exitコマンドで終了
- 終了後はシミュレーターのRubymotionの自動で終了される
動かない場合は
まずはSDKの確認
xcodebuild -showsdks OS X SDKs: OS X 10.9 -sdk macosx10.9 OS X 10.10 -sdk macosx10.10 iOS SDKs: iOS 8.4 -sdk iphoneos8.4 iOS Simulator SDKs: Simulator - iOS 8.4 -sdk iphonesimulator8.4
ls -la /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs ls -la /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
ERROR! The requested deployment target SDK is not available or supported by RubyMotion at this time.
command line toolsが入っていないかも
Ruby motionで使用するcommand line toolsをダウンロードします。
以下のPageで検索し、対応のライブラリをダウンロードしてインストール。
(今回はCommand Line Tools(OSX 10.10) for Xcode 6.4)
https://developer.apple.com/downloads/
SDKのversionを指定してみる
vi Rakefile # 以下を追加 app.deployment_target = '8.4'
ERROR! You are using RubyMotion Starter. Only iOS 9.0 is supported in this release. If you would like to target older or newer (in beta) versions of iOS you can purchase a paid subscription.
- Starterパッケージを使っている場合はversionの制限があるので以下のようにSDKのversionを宣言する
vi Rakefile # 以下を追加 app.sdk_version = '9.0' app.deployment_target = '9.0'
最終的に動いた環境
$ xcodebuild -showsdks OS X SDKs: OS X 10.11 -sdk macosx10.11 iOS SDKs: iOS 9.0 -sdk iphoneos9.0 iOS Simulator SDKs: Simulator - iOS 9.0 -sdk iphonesimulator9.0 watchOS SDKs: watchOS 2.0 -sdk watchos2.0 watchOS Simulator SDKs: Simulator - watchOS 2.0 -sdk watchsimulator2.0
AWSにGladiatorをinstallしてみた
AWSにROMA(Ruby On Memory Architecture)のGUI toolであるGladiatorをinstallしてみた
準備
- ROMAのインストールと起動
-
- ROMA側のmkconfigの途中でplugin選択があるが、そこで'config_gui.rb'を選択しておく
- ストレージとしてTokyoCabinet, Groonga, Memeoryを選べるが今回はTokyocabinetを利用
- rubyのインストール
手順
1. gladiatorのダウンロード
wget https://github.com/roma/gladiator/archive/v1.2.0.tar.gz -O gladiator.tar.gz tar xvfz gladiator.tar.gz cd gladiator-1.2.0
3. Configファイル設定
ROMAの情報
bin/set_roma_info Please input roma host info(ip or hostname) > 54.199.127.181 Pleasese input ROMA 1 port No. > 10001 Would this be OK?(y/n) > y ADDED HOST => '54.199.127.181' PORT => '10001'
- 生きているnodeのどれか一つを指定すればよい
アカウント設定
$ bin/add_user Please input user name > nouziru Pleasese input password > foobar [Optional] Please input Gravatar email address. (If you don not need this process, please push enter with brank.) > Which mode do you want to add this user? (some functions are restricted to root user only) [1] root user [2] normal user > 1 ============================================== user name : nouziru password : ****** email : role : root ============================================== Would this be OK?(y/n) > y ADDED {:username => 'nouziru', :password => '******', :email => '' }
- ログイン用のアカウント登録
- emailアドレスはGravatarに使うだけなので今回はSkip
- normalユーザは機能が制限されるのでrootユーザで登録
4. 起動
rails s -d => Booting WEBrick => Rails 4.0.2 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options
- 試しなのでweblickで起動
5. アクセス
http://${your host}:3000へアクセスするとログイン画面が表示されました
6. ログイン
usernameとpasswordを入力してログインするとclusterのステータスを表示する画面が表示されました。
使ってみた
Routing page
Log page
Connection Graph page
Cluster画面
1node落として、recoverボタン押してみた
- (recoverは冗長度低下時の冗長度復帰機能)
Reference
インストール手順&資料
ROMA Key Value Store (KVS) - Open Source Project
RedDotRuby Conf2015に登壇してきました
taiwanのレポートを書いたついでにsingapoleのRedDotRuby confも思い出に書いておきたいと思います。
Conference
シンガポールで行われたRedDotRubyConf 2015にLTとして参加してきました。www.reddotrubyconf.com
photos
会場
ボード
参加者
発表者達
頂いたTシャツ
Speaker懇親会
全体打ち上げ
雰囲気とか
今まで参加したカンファレンスの中でスタッフさんが抜群に優しかった。
どのカンファレンスももちろん優しいんだけど、RedDotRubyはホスピタリティというかなんというかすごかった。
なんか親身に色々気にかけてくれるし、困ったことがあって相談するとすぐに助けてくれる。
カンファレンス全体の雰囲気もいいし、懇親会含めてPartyが楽しくて一番多くの人と話せたのもこのカンファレンスでした。
来年もいきたい・・
Rubyでコンソール上の文字をクリアする方法
Linuxではclearとうつと、コンソールの標準出力画面がクリアされます(実際には下にスクロールします)。
こんな感じ
$ echo 'foo' foo $ echo 'bar' bar $ clear
↓
$
例
単語と数字を入力させて、最後に画面をクリアしてから入力結果を表示させるスクリプト
ソースコード(clear.rb)
# input print "input some words\r\n> " word = gets puts "#{word}\r\n" print "input some digit\r\n> " digit = gets # clear screen puts "\e[H\e[2J" # show result puts "===================\r\nresult" puts "word is #{word}" puts "digit is #{digit}"
実行結果
$ ruby clear.rb input some words > foo foo input some digit > 10
↓
=================== result word is foo digit is 10 $
Reference
Ruby Conf Taiwan 2015に登壇してきました
Conference
LTですがRuby Conf Taiwanに登壇してきました。2015.rubyconf.tw
会場の建物
看板
メイン会場の様子
懇親会の様子
ちなみにこのビールがとてもおいしかったです・・・w
Key note(という表記ではなかったけど、それらしきもの)は、
- Yukihiro (Matz) Matsumoto:Lazy Programmers
- Ruddy Lee / 李智樺:未來的專案開發 The future of project development
- Sarah Allen:Transparency Wins
- Aaron Patterson:Request and Response
ちなみに以前以下のポストにコメントと頂いたTonyさんも登壇しており、実際にお会いしてお話することが出来たのが自分の中では大きかったです。portaltan.hatenablog.com
雰囲気
Ruby Conf Taiwanはとてもスタッフや参加者もとてもフランクで(フランクじゃないRuby系カンファレンスにあたったこともないけど)、LTの枠も他に比べて多いので、CFPを出すのを躊躇っている方にもいい機会になると思います。
来年は本セッションで出れるように頑張りたいです。
最後に・・・
RailsでデフォルトのDB以外を使う方法&ActiveRecordのvalidate機能を使う方法
RailsのDBをsqliteから他(NOSQLとか)に変更したい場合
- modelファイルで継承しているActiveRecord::Baseを消してやればOKです
# class Test < ActiveRecord::Base <== 通常はこっち class Test ${処理} end
しかし、これではせっかくのRailsを便利にしているActiveRecordの機能が使えません。
そこで、以下でvalidate機能を例にSQLite以外のDBを使いながら、ActiveRecordの機能を利用する方法を書きます。
Railsデフォルト以外のDBを使っていてもvalidate機能を利用する方法
class Test include ActiveModel::Model attr_accessor :param1 validates :param1, :presence => true ${処理} end
- まずはActiveModel::Modelをincludeします
- そして入力値にアクセスできるようにattr_accessorキーワードで指定
- その後は通常通りに宣言していけばOKです
これでNoSQL等をDBにしていてもActiveRecordのValidation機能が利用できます。