みなとRuby会議
- みなとRuby会議01に参加しました。#minatork01 (02 Jun 2012 | Tags:
みなとRuby会議01に参加しました。#minatork01 みなとRuby会議01に参加しました。#minatork01
当日のTwitterのまとめはこちら↓
・みなとRuby会議01 前半まとめ #minatork01
・みなとRuby会議01 後半まとめ #minatork01
初Rubyイベント参加
ずっとRubyは勉強したいと思っていたのですが、なかなか進まず放置状態でした。、(^^;)
そんな私は普段Rubyを書いているわけもなく、 たまたま勉強会でよくお会いする@joker1007 さん経由でこのみなとRuby会議が開催されることを知り、一念発起し参加と相成りました。
Rubyのコミュニティ力
言語やプラットフォームなどなど、新しい技術を学ぶとき、 その技術そのものの利点と同じようにその技術の「コミュニティ」が選ぶ理由になると思うのですが、 今回はじめてRuby界隈のイベントに参加させていただき、、 他のイベント・勉強会と比べても、Rubyコミュニティのレベルが高いなぁと関心するところが、随所に見られました。
なぜRubyはコミュ力が高いのか?は、わかりませんが、 スタートアップのプログラミング言語と言われるに納得できるAgilityの高さを感じました。
English Numeralsリベンジ
今回はじめてペアプロでのソーシャルコーディングをしました。
普段仕事ではペアプロをするのですが、こういった機会にするペアプロも新鮮で大変面白かったです!
ただ、、Ruby自体のインストールも当日の朝やってくるような準備の足りなさだったため、 ペアプロでは完全にナビ役になってしまいました。。
リベンジのため、ソーシャルコーディングの課題をScalaで書いてみました。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersimport scala.collection.immutable.Map /** * Created with IntelliJ IDEA. * User: modal_soul * Date: 12/06/02 * Time: 23:06 */ // 1桁のイミュータブルマップの作成 val oneDigit = Map( 0 -> "zero", 1 -> "one", 2 -> "two", 3 -> "three", 4 -> "four", 5 -> "five", 6 -> "six", 7 -> "seven", 8 -> "eight", 9 -> "nine" ) // 2桁で19以下のイミュータブルマップの作成 val twoDigitOf19AndUnder = Map( 10 -> "ten", 11 -> "eleven", 12 -> "tweleve", 13 -> "thirteen", 14 -> "fourteen", 15 -> "fifteen", 16 -> "sixteen", 17 -> "seventeen", 18 -> "eighteen", 19 -> "nineteen" ) // 2桁で20以上のイミュータブルマップの作成 val twoDigitOf20AndOver = Map( 2 -> "twenty", 3 -> "thirty", 4 -> "fourty", 5 -> "fifty", 6 -> "sixty", 7 -> "seventy", 8 -> "eighty", 9 -> "ninety" ) // 下2桁を判定 def twoDigitTranslate(input:Int):String = { (input/10) match { // 10未満の場合 case (0) => oneDigit(input) // 10以上の場合 case (1) => twoDigitOf19AndUnder(input) // 20以上の場合 case (_) => (input%10) match{ case (0) => twoDigitOf20AndOver(input/10) case (_) => { twoDigitOf20AndOver(input/10) + "-" + oneDigit(input % 10) } } } } // 上2桁を判定 def fourDigitTranslate(input:Int):String = { (input/10) match { // 1000未満の場合 case (0) => { oneDigit(input).union(" hundred") } // 2000未満の場合 case (1) => { // 1100未満の場合 if(input%10==0){ oneDigit(input/10).union(" thousand") } // 1100以上の場合 else{ twoDigitOf19AndUnder(input).union(" hundred") } } // 2000以上の場合 case (_) => { oneDigit(input/10).union(" thousand")// + "and" +oneDigit(input%10).union(" hundred ") } } } // コマンドライン引数の取得 val num:Int = args(0).toInt // 100以上の場合 if(num > 99){ // 下2桁が0の場合 if(num%10 == 0){ println(fourDigitTranslate(num/100).capitalize) } // 下2桁が0以外の場合 else { println(fourDigitTranslate(num/100).capitalize + " and " + twoDigitTranslate(num%100)) } } // 99以下の場合 else { println(twoDigitTranslate(num).capitalize) } まだ冗長な部分もあって、いけてないですが、今のScala力ではこんなもんです。
#この記事を見たもっと強力なScala使いの方が、もっとスマートに書いてくれるでしょう、だぶん。。
まとめ
今回この様な有意義なイベントに参加させていただき、運営スタッフ、参加者の皆様、ありがとうございました。
懇親会にも是非参加したかったのですが、諸事情により今回は断念となってしまいました。。orz
今回のはじめの一歩に続く次のイベントも開催されること期待しています。そのときにはもう少しRuby力を上げて参加できるようがんばります!
Latest post:
- OpenWhiskのScala sbtプロジェクトのgiter8テンプレートを作った
- OpenWhisk+Scalaで作るServerless Architectureとっかかり
- BluemixにPlayframeworkアプリケーションをデプロイする
- sbt、Giter8を統合するってよ
- Scala 2.12.0でSAM型
Recent Books: