SSブログ

Ruby基本文法講座 [よもやま日記]

Ruby基本文法講座を受講してきた。

Rubyは、二日間で今日は基本講座。
来週は、オブジェクト指向編。

今日の内容は、
1. Rubyの特徴と適用分野
2. Rubyのダウンロードとインストール
3. Rubyの基本文法(1)
4. Rubyの基本文法(1)
5.Rubyのメソッド
6.Rubyによるデータ構造とアルゴリズム
7.Rubyの例外処理
8.振り返り・質疑応答

---------- 以下、備忘録 ----------

スクリプト言語の特徴
- 簡潔にかける
- 文字列に強い

最近、スクリプト言語がもてはやされている理由
webアプリ = HTML = 文字列

各サイトで使われている言語
perl: mixi
PHP: face book
JAVA: ANA
Ruby: twitterは、Rails(当初は、Ruby。現在は、フロントエンド)
グルポン(アメリカ本体)

Rubyは、言語の誕生当初からオブジェクト指向言語
JAVAやC++は、C言語を踏襲
PHPは、本格的に導入されたのがPHP5(数年前)から

インタプリタ言語Ruby
- コンパイル不要

- チェックがないことには注意
実行してみるまでわからない。

動的言語Ruby
・動的言語
型付けを実行時に決められる。

・静的言語
あらゆる型は、最初に決めなければならない。

Rubyの適用分野
・Before Rails

Ruby on Rails = フレームワークであって、言語ではない。
webアプリ作成のための道具

irb 実行後に ⇒ nil と表示される。
これは、戻り値。

* 掛け算
/ 割り算
% 割り算の余り
 10 % 3 → 1(10を3で割った余り)

比較
== 等しい
!= 等しくない
|| または(OR)
&& かつ(AND)

0 ≦ a ≦ 100
→(a>= 0)&&(a<=100)

i j k
古いプログラムでカウントに使える文字が決まっていた。
その名残がi j k

配列[-2]
後ろから二番目

真偽値
- 真 偽でない値全て
- 偽 false または nil

プログラムの基本原則: DRY原則
Don't Repeat Yourself
繰り返しを避けよ

ブロックつきメソッド呼び出し
Rubyでは、ブロックをコードの塊としてメソッドに渡し、メソッド内で実行することができる


たのしいRuby 第3版

たのしいRuby 第3版

  • 作者: 高橋 征義
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2010/03/31
  • メディア: 単行本



フリーのツールでデータマイニング [ログ / アクセス解析]

SPSS Modeler(旧Clementine)が200万円から375万円に値上がりしたらしい。。。
少し前まで1ライセンス50万だったことを考えると、最近に高騰ぶりは驚かされる。
それに伴って機能とか格段に進化していれば良いんだけど、値段に見合った性能が向上しているか?といえば、ちょっと疑問だ。

そこでフリーのマイニングツールについて調べてみた。

Pentaho
http://www.pentaho.com/

Orange - Data Mining Fruitful & Fun
http://orange.biolab.si/

KNIME | Konstanz Information Miner
http://www.knime.org/

pig
http://pig.apache.org/

http://www.slideshare.net/xefyr/pig-making-hadoop-easy
(「米Yahooを中心に開発されたらしい)


Hadoopネタとして、こんなのもあります↓
http://hadoop-conference-japan-2011.eventbrite.com/
『Hadoopと分析統計ソフトKNIMEを用いた効率的データ活用』

Hadoopのおススメの本は、こちら。

Hadoop徹底入門

Hadoop徹底入門

  • 作者: 太田 一樹
  • 出版社/メーカー: 翔泳社
  • 発売日: 2011/01/28
  • メディア: 大型本



nice!(31)  コメント(2)  トラックバック(0) 
共通テーマ:学問

ディズニーモバイル スマートフォン、謎のキャンペーン [Disney / ディズニー]

今日、ソフトバンク(ディズニーモバイル)からスマートフォン(DM009SH)が届きました!

まずは、suicaのデータを移す必要があります。
うっかり機種変更を先にやってしまうと、手続きが面倒な上、手数料が500円取られてしまいます。。。

suicaを無事に移しておいてから、スマートフォンに切り替えて続きをしました。

そこで発覚したんですが、、、嫁が「こんなキャンペーンあるよ!」と。

◆キャンペーン期間 2011年2月1日(火)~3月31日(木) ◆キャンペーン応募期間 2011年2月1日(火)~4月7日(木)23時59分まで ◆プレゼント 東京ディズニーリゾートのパークチケット、デーパスポート大人1枚 ◆機種変更の対象機種 DM004SH・DM005SH・DM006SH・DM007SH・DM008SH・DM009SH


どれどれ?と自分のケータイを見てもそんなのどこにも表示されていません。。。

どうやら、この案内を受け取った方のみとのことで、人によって表示されたり表示されなかったりするようです。

これって同じディズニーモバイルを使っているのに、なんだか損した気分になります。。。
(`д´)プンプン

URLを直接打ち込んだりしても自動でリダイレクトされてしまい、やはり個人ごとにキャンペーンのありなしを設定しているようです。

nice!(30)  コメント(2)  トラックバック(0) 
共通テーマ:携帯コンテンツ

DM009SH、液晶保護シートを購入 [よもやま日記]

製の「DM009SH」は、ソフトバンクの「GALAPAGOS 003SH」がベースモデルとなっています。
だから、設定とか分からなければ、「GALAPAGOS 003SH」で検索すれば、たいていの疑問が解決できる。

3月31日までに予約または購入をすると、オリジナルケースはもらえるが、液晶保護シートはないので、自分で注文することにしました。

うちは、2枚必要なので2枚セットで売っているものを注文です♪

1枚入り




2枚入り




3枚入り




nice!(27)  コメント(0)  トラックバック(0) 
共通テーマ:ショッピング

PrefixSpanアルゴリズム、アクセスログ分析への応用 [ログ / アクセス解析]

PrefixSpanというのは、時系列分析みたいなもので、特徴のあるパターンを抽出してくれます。

アクセスログの分析に使うことができて、
1. アクションをした/しない を分ける。
2. PrefixSpanで特徴のあるパターンを抽出する。
3. カイ二乗などを使ってアクションする人の遷移の特徴を把握する。
という分析ができます。

面白いのは、遷移が連続していなくてもOKで、
  <a> → <b> → ... → <c> → <アクション>
というのが特徴的なパターンだった場合、
  <a> → <b> → <c>
がアクションする人の特徴的な遷移ということがいえます。

PrefixSpanアルゴリズムはそんなに難しいものでもないし、特徴を把握するためのカイ二乗の計算も簡単です。
ということで、IBM SPSS Modeler(旧Clementine)で実装できないだろうか?と思ったところ、意外と簡単に実装できてしまいましたw



すごい計算量なので、大量のデータでの計算は難しいですが、通常規模なら実用に耐えれそうです。

というか、Hadoopへの実装もできるんじゃないだろうか。
むしろ、クレメンタインよりもきっと処理時間も早いのでHadoop実装がおススメだと思いました。

● PrefixSpan関連のリンク集
コーディングパターンの分析
http://sel.ist.osaka-u.ac.jp/research/codingpattern/index.html

PrefixSpan-rel -- a sequence pattern miner
http://prefixspan-rel.sourceforge.jp/

PrefixSpan - 機械学習の「朱鷺の杜Wiki」
http://ibisforest.org/index.php?PrefixSpan

nice!(37)  コメント(0)  トラックバック(0) 
共通テーマ:学問

Ruby オブジェクト指向講座 [よもやま日記]

Ruby オブジェクト指向講座を受講してきた。

● アジェンダ
1. オブジェクト指向とは
2. クラスとオブジェクト
3. アクセス修飾子/アクセサメソッド
4. 継承
5. 演習
6. 外部ファイルの内容を利用する
7. RubyGems
8. モジュールとMix-in
9. Rubyの基本API
10.振り返り・質疑応答

---------- 以下、備忘録として ----------
・オブジェクトとは
物理的な実態を伴うオブジェクト:ロボットなど
概念的なオブジェクト:会社など
→概念的な部分が大切

・オブジェクト指向とは
概念や実態をなるべくそのままの形で表現しようとするプログラミング手法

オブジェクト指向に登場する概念
・クラス
- 状態(状況)
- 振る舞い(動作)
・インスタンス

(例)
ロボットの場合
・クラス
- 状態/状況
 バッテリー残量

- 動作
 歩く
 話す

クラスの先頭は大文字?
- 大文字でなくてもプログラムは動く
- 慣例的に大文字で、大文字をみたらオブジェクトと分かりやすい

インスタンス変数
「@変数名」
インスタンスごとに値を保持できる変数

クラス変数
「@@変数名」
クラスごとに値を保持できる変数

ローカル変数
メソッド内のみで有効な変数

グローバル変数
どこでも利用できる変数
→ どこでも利用できてしまう
「$変数名」

定数
一度定義したら内容が変更されない変数
先頭の文字が大文字なら定数とみなす

initialize
メソッド名は「initialize」固定

インスタンス変数/クラス変数については、外部から直接参照や更新はできない
クラス外からのアクセスは、「アクセサメソッド」を定義する
・参照メソッド
- メソッド名は変数名と同じ

・変更メソッド
- メソッド名は「変数名=」

アクセス制限の修飾子
public
protected
private
※ 何も書かないとpublicになる

内部では使いたいけど、外部では使って欲しくない場合にprivateを使う

継承のプログラミング

差分プログラミング
差分だけを書けばよい

クラス定義には親クラスはひとつしか継承できない(単一継承)


Rubyの標語
Don't Repeat Yourself

requireメソッドとloadメソッドの違い
・requireは、一度読み込んだファイルは繰り返し読み込まれる
・loadは、何度でも読み込み可能

モジュールとクラス
モジュールは、インスタンスの作成ができない
モジュールは、インスタンスの作成ができない
モジュールのメソッドは継承関係にかかわらず自由にクラスに追加できる
モジュール自身はクラスではない

Rubyのリファレンス
http://www.ruby-lang.org/ja/
http://doc.ruby-lang.org/ja/1.8.7/class/Math.html

組み込みクラス
100は、Integerのインスタンス
つまり、メソッドが使える。

オブジェクト.class
→そのオブジェクトのクラス名を返す

a = 100
a.class
=> Fixnum
a.to_s
=> "100"
a.class
=> Fixnum
a.to_s.class
=> String

"日本語".length
"日本語".split(//s).length

Regexp(regular expression)クラス
〒123-4567
 ~~~~~~~
 数数数-数数数数
→/\d\d\d-\d\d\d\d/

"123-4567" =~ /^\d\d\d-\d\d\d\d$/


たのしいRuby 第3版

たのしいRuby 第3版

  • 作者: 高橋 征義
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2010/03/31
  • メディア: 単行本



演習
インストール
gem install rails -v 2.3.9 --no-rdoc --no-ri
gem install sqlite3 --no-rdoc --no-ri
http://www.sqlite.org/sqlitedll-3_7_3.zip

1. プロジェクトの作成
 rails [プロジェクト名]

2. プロジェクト内に移動
 cd demo1

3. Scaffoldを使ってwebアプリ生成
 ruby script/generate scaffold Shop(≒DBのテーブル名) name:string address:string tel:string
ruby script/generate scaffold Shop name:string address:string tel:string

4. DBにテーブル生成
 rake db:migrate

5. Webサーバを起動
 ruby script/server

6. ブラウザから呼出
 http://localhost:3000/Shops


「つくばスタイル」の魅力 [よもやま日記]

つくばスタイル」の魅力を伝える動画が完成しました。

つくばスタイル プロモーション動画


つくばスタイル プロモーション動画
「都市」編


つくばスタイル プロモーション動画
「知」編


つくばスタイル プロモーション動画
「自然」編


動画では、
・万博記念公園、洞峰公園、筑波山といった豊かな自然の魅力、
・平沢官衛遺跡(ひらさわカンガ遺跡)筑波山神社、といった歴史・文化の魅力、
・筑波大学、サイエンス・スクエアつくば、JAXA筑波宇宙センターといった最先端技術
が紹介されていました。

今までは、自然が多く子育て環境には良いけど、東京都心で働く人にはとても不便な所!というイメージでしたが、つくばエクスプレスができたことで、東京までの通勤がとても早く、快適になりました。

実際に、会社の同僚が、つくばエクスプレス沿線(TX沿線)に住んでいます。w



※ 茨城県からの情報です。

nice!(38)  コメント(1)  トラックバック(0) 
共通テーマ:地域

こだわりの豚しゃぶ 豆富 ゆば つまみ菜 茅場町店 [グルメ / クッキング]

今日は、インターンの子が会社から賞をもらったのでその祝勝会と同僚が2月末で辞めてしまうのでその送別会です。

場所は、ここ。

こだわりの豚しゃぶ 豆富 ゆば つまみ菜 茅場町店
http://www.hotpepper.jp/strJ000240348/map/

会社からちょっと遠く、家からも近いような遠いような、、、
なんだかびみょ~なお店です。

ここのお店は行ったことがありませんが、感想はまた後ほど。

nice!(34)  コメント(2)  トラックバック(0) 
共通テーマ:グルメ・料理

SEO、自動順位チェックツールを作成 [ログ / アクセス解析]

SEO対策でキーワード順位チェックツールが欲しいと思って、探してみたらなかなか良いものがなかった。。。

せっかくなので、自分で作れないだろうか?って思ったところ、意外と簡単に作れそうだ。

作成手順としては、
1. ウォッチするキーワードを決める。
例えば、"結婚式場"だったとする。

2. GoogleやYahoo!でその検索結果ページをgetする。
http://www.google.co.jp/search?hl=ja&biw=904&bih=543&q=%E7%B5%90%E5%A9%9A%E5%BC%8F%E5%A0%B4&btnG=%E6%A4%9C%E7%B4%A2&aq=f&aqi=g10&aql=&oq=

%E7%B5%90%E5%A9%9A%E5%BC%8F%E5%A0%B4 = 結婚式場

3. HTMLの構文解析で自社と競合の順位を取得する。

後は、複数キーワードに対応させて、これを毎日チェックするバッチプログラムを書けば終了。
ちなみにRubyでプログラムを書きました。

SEOのキーワード順位を考慮したリスティング広告の最適化を作るとより効率の良いものができそうですね。


たのしいRuby 第3版

たのしいRuby 第3版

  • 作者: 高橋 征義
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2010/03/31
  • メディア: 単行本



ベネッセ、読み聞かせプラスコース [ファミリー]

今日、ベネッセから来月の教材が届いた。
今回は、「からだあそびマット」。

元々、運動大好きな春飛も良い食いつきです。
朝から動き回って疲れたのか、今日はお昼を4時間もしていました。

こんなけ寝たら夜は寝ないかな…(苦笑

最近、絵本にも興味を持っていて、自分で絵本を読んでくれって持ってくるので、オプションコースを申し込むことにしました。

こどもちゃれんじプラス
https://kodomo.benesse.ne.jp/plus/index.html

読み聞かせプラスコースで、月々520円で本が1冊届くってやつです。
届くのは、4月からですが、どんな絵本が届くか今から楽しみです♪

nice!(37)  コメント(0)  トラックバック(0) 
共通テーマ:育児

ロンシエールとバターオイルサーディーン [ビール / ワイン / 日本酒 / 焼酎など]

ヴィノスヤマザキのWINEエンジョイコースを受け取ってきた。

今月のワインは、
ロンシエール 白

おつまみは、
バターオイルサーディーン

ワイン感想は、
すっきりしていて、飲みやすい!
ぐびぐびと、軽く1本開けることができます♪
ちょっとすっきりしすぎ感はありました。
テーブルワインとしては、抜群のコストパフォーマンスだと思います。

バターオイルサーディーン
イワシって骨が多いけど、骨がなく食べやすい。
パンに乗っけてたべたけど、激ウマ。
白ワインとの相性は、抜群!
本当に美味しかったです。

白ワインは、シャブリとかの方が良かったのかも。

nice!(29)  コメント(0)  トラックバック(0) 
共通テーマ:グルメ・料理

カジノなどの投資法 その1 -マーチンゲール法について- [マネー]

このモンテカルロ法というのは、過去にモナコのカジノを一夜で潰してしまったことのある方法で有名です。
今では、現実の世界ではこの方法は禁止されているらしいです。

その説明の前に、マーチンゲール法についての説明から。
step1. 最初、$1だけ賭けます。

step2. 負けたら、掛け金を倍にして、$2かけます。
買ったら、$1に戻ります。

この投資法の弱点として、
・買ったとしても$1だけである。
・確率的に連続して負ける場合があり、その時の負け金額が指数関数的に上昇する。
です。

実際にどうなっているか、IBM SPSS Modeler(Clementine)でシミュレーションしてみると…



1か0をランダムで出現させ、投資する方は常に1を投資するとします。
試しに1,000回行ったとします。

この時、1が出た回数は、510回。
つまり、買った回数が510回なので、儲けは$510です。

また、連続して負ける可能性としては、8回連続で負けています。

この時の投資金額は、$256です。
$1 = 100円 と考えると、
 儲け:51,000円
 必要な最大投資金額:25,600円
となります。

では、これを100万回行ってみると、どうなるか?
1が出た回数は、500,658回。
儲けは$500,658です。

また、連続して負ける可能性としては、19回連続で負けています。

この時の投資金額は、$524,288です。
$1 = 100円 と考えると、
 儲け:50,065,800円
 必要な最大投資金額:52,428,800円(約5千万円)
となります。

ゲームの回数が多くなればなるほど、連続して負ける回数も多くなり
一度に必要な投資金額も増えてしまうのが欠点ですね。
実際のカジノとかでは、テーブルリミット(賭け金の上限)が設定されているので、勝ち続けることはできません。


DVD マネー・マネジメント(資金管理)の追求

DVD マネー・マネジメント(資金管理)の追求

  • 作者: 成田博之
  • 出版社/メーカー: パンローリング
  • 発売日: 2007/03/02
  • メディア: -



nice!(32)  コメント(2)  トラックバック(0) 
共通テーマ:学問