2015年1月18日日曜日

初めてのペアプログラミング

2015年1月17日に開催された

神奈川Ruby会議 01 

に参加しました。

これは、rubyのユーザーやコミッターの皆さんが、ノートPCでプログラミングをしたり、rubyとどう関わっていくかなど話し合ったりする、賑やかな大会でした。

ちょっと気になったのは、皆さんが使っているPCです。見て回ると、やはりマックが多かった。8割くらいはマックでした。マックを買ったのが間違いでなくてよかった。

この会議の一番初めの内容が「ペアプロ大会」でした。

rubyはほとんどプログラムを書いたことがないので、ちょっと不安でしたが、とても勉強になりました。エディターの使い方も慣れていなかったのですが、パートナーになってくれた方がいろいろと教えてくださいました。

お題は、「計算機」です。
文字列を与えると、それを計算するプログラムです。
ただし、演算子の優先順位がrubyのその順番と違います。

rubyでは、優先順位が高い方から低い方に
 ”*”、”+”、”&”、”|”

ですが、この計算機は、高い方から低い方に
 ”|”、”&”、”+”、”*”

という計算機です。つまり優先順位がrubyと逆です。たとえば、
4*5+6&7|8 
は、ruby では 
(((4*5)+6)&7)|8 
なので 10 ですが、この計算機では 
4*(5+(6&(7|8))) 
という順番になるので44 です。

まず作ったプログラムは、

def calc(form)
tmp1 = 1
form.split("*").each do |form1|
tmp2 = 0
form1.split("+").each do |form2|
tmp3 = 0xFFFFFFFF
form2.split("&").each do |form3|
tmp3 &= eval form3
end
            tmp2 += tmp3 
        end
    tmp1 *=  tmp2
end
return tmp1
end

です。動くことは動いたけど、rubyらしさがあまり感じられない。
「"inject" というメソッドがありますよ」って教えてもらい、それで書き換えました。

def calc2(form)
    form.split("*").inject(1) do |memo1, form1|
        memo1 * form1.split("+").inject(0) do |memo2, form2|
            memo2 + form2.split("&").inject(-1) {|memo3, form3| memo3 & eval(form3)}
        end
    end
end
これで、ちょっとかっこよくなった。
でも、よく見ると基本的に同じ構造が続いているので、もう一工夫できそう。

ある人が、すでに書いていて、
こんなのがありました。
def 
  calc(s,o='*+&|')s.split(o[0]).map{|s|o=='|'?s.to_i: calc(s,o[1,3])}.reduce(o[0])
end

す、すごすぎる。
これ以外も、たくさん実装例がありました。
素晴らしい。

勉強になりました。


関係者の皆さま、大会運営お疲れ様でした。ありがとうございました。



ブログランキングに参加しています。クリックをお願いします。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
ブログランキング・にほんブログ村へ

2015年1月14日水曜日

Mac 到着!

MACがついた!

先週末に、価格コムで「MacBookPro Retina」を探し、注文。今週の火曜日に銀行振り込みで支払、水曜日の夕方にて宅配便で手元に届きました。

たった2日で届いて、日本の流通は素晴らしい!

箱からMacを取り出して起動してみます。



薄い!外見はスタイリッシュなフォーム。

最初に、開発環境の設定です。Command Line Tools for Xcode と Ruby と Rails と SublimeText2をインストール。

やったー!



ブログランキングに参加しています。クリックをお願いします。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
ブログランキング・にほんブログ村へ

2015年1月11日日曜日

Rubyの勉強会で学んだこと

昨日は、 Rubyの勉強のため、yokohama.rbに行ってきました。月に一度、JRの東神奈川駅の近くの神奈川地区センターで、rubyを始めたい人、使っている人たちが集まって勉強会をしています。

Rubyの勉強会は初めての参加でした。

1時間程度のセッションが2つあり、前半では
「Rubyレシピブック 第3版 303の技」の読書会でした。
初参加ということで、本の朗読を任されました(汗)。
トピックを読んで、実際にrubyのインタプリタで検証するという流れです。

僕は、手持ちのDellのWindows Note PCを持って行きました。でも、周りを見るとほぼMac でした。そこで周りの人に相談してみると、「Ruby on Rails」をするならMacが基本だとのこと。うむ、やっぱりそうか。

後半では、
「RSpec」の仕組みを紹介していました。Specとは振舞駆動開発(Behaviour Driven Development)で使う、Rubyで書かれた言語の一種です。話の内容はあまりわからなかったけど、Ruby on Railsで開発をする時に威力を発揮するのはわかりました。

勉強家の会は飲み会でした。

いろいろな人と話しました。名刺管理ソフトからネットワーキングとクラウドサービスでビジネスしいるSanSanという会社のエンジニアの方や、Webのプラットフォームサービスを提供するHerokuのセールスエンジニアの方などです。


【今日学んだこと】

WindowsはRuby on Railsの開発に向かない。Macにするべし。
RSpecを勉強せよ
ネットワーキング(マッチング)とWebを絡めたビジネスは将来性がありそう



有益な勉強会でした。


ブログランキングに参加しています。クリックをお願いします。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
にほんブログ村 IT技術ブログ Webサイト構築へ

2015年1月1日木曜日

はじめまして

はじめまして、新米プログラマーのライスです。


2015年もはじまり、新たな気持ちで新しい年を迎えました。
みなさんは、「一年の計」考えましたか?


僕は「計」ではなく、「願望」のほうを...。

  • 今年は、WEBのサービスを自分の手で構築したい!
  • しかも、なるべく速く、なるべく簡単に!

まずは、Webサービスを作るための勉強をはじめよう。

前にPHPをちょっとかじったことがありますが、これは複雑なことをしようと思うとコードがスパゲティ状態になりやすそう。
やっぱりRuby on Railsでしょうか。


情報集め、勉強頑張ります。




ブログランキングに参加しています。クリックをお願いします。
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
ブログランキング・にほんブログ村へ