2013年1月29日火曜日

BDD

BDDの勉強をしています。
とってもいい技術です。
こういった手法が開発現場でも浸透して欲しいと思います。

しかし、今後の世の中は、「技術を使う技術」がより強く求められそうですね。
イノベーションよりもこちらのほうが大切なのではないかという気がしています。
技術に限らず全ての製品にいえますね。

今後、ちょっと時間をとってまとめてみようかと思います。

この記事がお役にたちましたらシェアをお願いします

2013年1月12日土曜日

変わる教育

さて、今年のwiredのサイトでは、教育に関する特集が連続で組まれていました。
オンライン教育、シンガポールの新しい教育方法、メーカームーブメントなどが紹介されています。

時代の変化とともに、教育も変わっていく必要があります。
今後のビジネスは、規模よりも人材が重要となるはずです。
なので教育はこれまで以上に大切になってくると思います。

インターネット上では、色々な学習サイトや教材が無料で利用できます。
ただし、そのほとんどが英語です。

私も最近はやたらと英語を利用する機会が増えてきたなあと感じます。
技術本などは、翻訳本がでてくるまで待てないので、洋書で買うようになりました。
この傾向はますます進んでいくと思います。

10年後くらいには、まともに日本語で教育が受けられなくなるのではないかとちょっと不安です。
とはいえ、このままグローバル化は避けられない未来でもあります。

教育の立案に関わる人たちはもっと時代の風を感じて、少しは危機感をもって欲しいです。

この記事がお役にたちましたらシェアをお願いします

2013年1月6日日曜日

実用Ruby Timeをログ出力形式の文字列に変換する

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)

難易度★★★☆☆

出力する文字列の形式はLogのBest Practiceであるyyyy-MM-dd HH:mm:ss.usec zoneです。

code

# coding : utf-8
puts Time.now.instance_eval { 
'%s.%03d %s' % [strftime('%Y-%m-%d %H:%M:%S'),  (usec / 1000.0).round, zone] 
}

output

2013-01-06 12:55:09.197 JST

instance_evalメソッドとsprintfフォーマットを理解することが大切です。

参考サイト

この記事がお役にたちましたらシェアをお願いします

実用Ruby Hashをjson形式の文字列に変換する

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)

難易度★★☆☆☆

code

# coding : utf-8
require "json"
test = {
  :id => 1,
  :name => 'yamada',
  :timestamp => Time.now.instance_eval { 
    '%s.%03d %s' % 
    [strftime('%Y-%m-%d %H:%M:%S'),  
     (usec / 1000.0).round, 
     zone] 
  }
}

puts test.to_json

output

{"id":1,"name":"yamada","timestamp":"2013-01-06 12:55:09.197 JST"}

とても便利なメソッドです。是非使ってみてください

独り言

今年はヘビ年だし、ビッグデータ関連の勉強始めたしで、pythonの勉強したいなあ....時間取れるかな。

この記事がお役にたちましたらシェアをお願いします

2013年1月3日木曜日

fluentdを試してみた

そろそろ本格的にビックデータ時代がきそうなので、今年から学習を開始します。

まずはfluentdというログ収集ツールをMac上で試してみたのでメモ
かなりグダグダだったので、あんま参考にならないかもw

環境

  • Mountain Lion
  • ruby 1.9.3(use rvm)
  • fluentd 0.10.30

fluentdとは

ログ収集基盤です

特徴

  • 様々なデータソースからログを収集、転送、集約できる
  • ログメッセージはjson形式で構造化される
  • プラグインを使うことでログの入力元や出力先を容易に追加できる
  • 障害検出機能やフェールオーバー機能(障害時に代替サーバーに引き継ぐこと)により、高い可用性(壊れにくさのこと)を実現できる
  • 独自にプラグインを開発することも可能。RubyGemsで配布できる(最高や)

機能

fluentdの機能はほとんどinput, Buffer, output,の三つのプラグインで実現されている。

inputプラグイン
指定した場所からログの受け取り、取り寄せを行う。ソケットを待ち受けてログを受け取ったり、データソースから定期的にログを取り寄せたりする。
bufferプラグイン
Inputプラグインから受け取ったログをバッファリングし、Outputプラグインで書き出しが成功するまでログを保存する機能を備えています。Bufferプラグインにはメモリとファイルの2種類があります。
Outputプラグイン
指定した場所(ファイル、サーバなど)にログの書き出しを行います。書き出しに失敗してもBufferプラグインが保存してくれている間は再度書き込みを試みます。 例) HTTP、ファイル(tail)、Amazon S3、MongoDB、Hadoopなど。

install

gemを使ってinstallします。

  $ rvm gemset create fluentd

  $ rvm gemset use fluentd
  
  $ gem install fluentd
  
  $ fluentd --setup ./fluent
  Installed ./fluent/fluent.conf.

  $ fluentd -c ./fluent/fluent.conf -vv &
  
  $ 2013-01-02 06:50:02 +0900: fluent/supervisor.rb:153:supervise: starting fluentd-0.10.30
  2013-01-02 06:50:02 +0900: fluent/supervisor.rb:235:read_config: reading config file path="./fluent/fluent.conf"

起動確認。すんごいシンプル。

停止

ジョブを停止します

  jobs

  jobs
  [1]+  Running                 fluentd -c ./fluent/fluent.conf -vv &

  kill %1
  

困った時

fluentd -hでHELPが確認できます。

$ fluentd -h

Usage: fluentd [options]
    -s, --setup [DIR=/etc/fluent]    install sample configuration file to the directory
    -c, --config PATH                config file path (default: /etc/fluent/fluent.conf)
    -p, --plugin DIR                 add plugin directory
    -I PATH                          add library path
    -r NAME                          load library
    -d, --daemon PIDFILE             daemonize fluent process
        --user USER                  change user
        --group GROUP                change group
    -o, --log PATH                   log file path
    -i CONFIG_STRING,                inline config which is appended to the config file on-fly
        --inline-config
    -v, --verbose                    increase verbose level (-v: debug, -vv: trace)
    -q, --quiet                      decrease verbose level (-q: warn, -qq: error)

起動と停止の仕方がわかったのでとりあえず終了。
ビッグデータの本を読んだけど、以下の本が面白かったです。エンジニアはなるべく読んでおいたほうがいいでしょう。

kindleだと30%引きぐらいで買えました。紙の本は死んでしまうんかな・・・

以上です。

この記事がお役にたちましたらシェアをお願いします

2013年1月2日水曜日

あけましておめでとうございます。

あけましておめでとうございます。

今年も一年よろしくおねがいします。

さて、2013年を迎えましたが、今年は

  • ビッグデータ解析の環境構築、解析手法の基礎学習
  • arduinoを使ったものづくりと電気基礎学習
  • railsで作成するスタートアップアプリの現在的手法

辺りに力を入れていけたらいいなと思っています。

データ解析はそろそろ日本でも表立ってくると思います。
去年はアメリカのオバマチームの解析シュミレートが話題になりました。
今後日本の政治でも同じような手法を取るようになる可能性は高いです。
その時、自分でデータ分析できたら楽しいと思うので、railsやfluentdを使ってアプリを作って、解析手法を色々勉強していきたいと思います。
どうですか、政治家のみなさん?次の選挙では僕を雇いませんか?w

arduinoを使った物作りも本格化して良い頃です。
しかし、arduinoの公式ページに日本語のページがないのがなんとも寂しいことです。
なので、tutorialなんかを定期的に公開できたらいいなと思っています。

WEB開発はrailsですね。新規にビジネスを起こすならrails一択です。
jinknes,redmine,backlogなどの構成管理を使ったソフトウェアの手法はもっと取り入れられるべきだと思います。
こういった手法が当たり前に実施されるようになっていかないと業界の将来は暗いですね。
その辺も公開していけると本当に理想です。

5年先にどうなっているか分からないくらいの進化の速度です。
でも、なんとかくらいついていきたいと思います。

というわけで、今年もよろしくお願いします。

この記事がお役にたちましたらシェアをお願いします

Related Posts Plugin for WordPress, Blogger...