2014年2月28日金曜日

第五の権力---Googleには見えている未来

google CEOのシュミット氏の書いた本。
これから10年以内に予想される未来についての記述がされています。

色々と興味深い未来の技術や見解が記述されているのですが、結局は人間側がその技術を受け入れるかどうかが鍵になる気がします。
意識的に色々なことを受け入れていけば当然失敗もあるでしょうが、結局は人間社会が早く豊かになると思います。特に日本社会は保守的なので、この点は気になります。

あと、私が気になった「インターネットの国境化」と「今後の重要な技術」についてはまた書評とは別の場で書きたいと思います。掘り下げると色々と面白そうなので。

内容は面白いのですが、読みにくいのが気になりました。構成が悪いのでしょうか。
以上です。

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

このエントリーをはてなブックマークに追加

rails4 twitter APIを操作する その2 timeLineを取得

railsでtwitter APIを扱いたかったのでメモ

環境

  • rails(ruby2.1.0, rails4.0.3)でアプリの雛形を作成し、herokuなどのサーバーへdeploy済

twitterのデータを取得する方法

twitterのデータを取得するにはtwitterで提供されているAPIを使用します。
APIにはREST APIとStreaming APIの二つの種類があります。

Streaming API

Streaming APIはツイートや他のソーシャルイベントのためのパワフルでリアルタイムなAPI

REST API

REST APIは、ほとんどのTwitterの機能のシンプルなインターフェースを提供するAPI

まずはREST APIから使用してみます。

Gemfile変更

 
gem 'twitter'

Gemfileを記載したらgem installを行います。

 
gem install twitter

twitterのAPIを使うにはTwitter DeveloplerでMy Applicationの登録をする必要があるので、登録していない場合は登録します。
twitterとの連携には、以下の4つのキーが必要です

  • API key
  • API secret
  • Access token
  • Access token secret

またこのとき上記で設定するURLをhttp://127.0.0.1/にするとローカル環境でもtwitter APIを取得することができます。

上記の情報を確認したら、ホームのタイムラインを取得するコードをコントローラーに記述します

 require 'twitter'
 
 client = Twitter::REST::Client.new do |config|
   config.consumer_key = 'consumer_key'
   config.consumer_secret = 'consumer_secret'
   config.oauth_token = 'oauth_token'
   config.oauth_token_secret = 'oauth_token_secret'
 end

 @tweets = []
 client.home_timeline(include_entities: true).each do |tw|
   @tweets << tw
 end

include_entities: trueでentitiesのオブジェクトを取得することができます。

取得したデータをviewに表示

 
  <% @tweets.each do |tweet| %>
  <p><%= link_to image_tag(tweet.user.profile_image_url_https) %>
  <%= tweet.user.name %>
  <%= tweet.user.screen_name %><%= tweet.user.id %></p>
  <p><%= tweet.created_at %></p>
  <p><%= tweet.text %></p>
  <% if tweet.media? %>
    <% tweet.media.each do |media| %>
      <%= image_tag(media.media_url_https) %>
    <% end %>
  <% end %>
  <% end %>

上記のように使うことで、色々な情報が取得できます。

とはいえ、上記の情報を一つ一つDBのカラムに格納するのは面倒なので、jsonをそのままDBに格納するするのが一般的でしょう。
ということで、次回に続きます。


参考サイト

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

このエントリーをはてなブックマークに追加

2014年2月25日火曜日

rails4 twitter APIを操作する その1 herokuへアプリをdeployする

railsでtwitter APIを扱いたかったのでメモ

環境

  • rails(ruby2.1.0, rails4.0.3)でアプリの雛形を作成済

やりたいこと

  • 自分のtimeLineを取得
  • 特定のtweetデータを取得
  • tweetデータをDBに格納
  • DBからデータを呼び出してviewに表示

やり方を調査すると意外と面倒なことが判明。必要なのは以下の処理。

  • Stream APIでtwetterのtimelineを取得
  • REST APIでtwetterのtweetを取得してjsonで取得
  • jsonをMongoDBに取得
  • MongoDBからrailsでデータを取得してviewに表示

というわけで、一歩一歩進めていく。
まずはtwiterAPIはローカル(localhost)で動かすことができないので、作成したアプリのモックをheroku上で動作させる。
herokuへアプリをuploadするにはgitが必要なので、プロジェクトをgitにcommitする。

また、rails4をheroku上で動かすにはrails_12factorのGemが必要なのでGemfileに追加し、bundle updateをあらかじめ行う必要がある。

Gemfile変更

 
 group :production do
   gem 'rails_12factor'
 end

bundle install後、上記の変更をしたら、プロジェクトをgitに登録

 
 cd {projectname}
 git init 
 $ git add -A
 $ git commit -m 'Initial commit'

gitignoreもついでに設定しておく

 
 vi .gitignore
 
 // 以下を追記
 # Innore DS_Store
 .DS_Store
 
 // commit
 git add .gitignore
 git commit -m ".gitignore add DS_Store"

herokuに接続

ターミナルからherokuにloginします。今回の環境はproductionにuploadします。

 
 // login
 heroku login 

 // 作成
 heroku create --stack cedar
 Creating xxxxxxxxxxxxxxxxx... done, stack is cedar
 http://xxxxxxxxxxxxxxxxx.herokuapp.com/ | git@heroku.com:xxxxxxxxxxxxxxxxx.git

push


 git push heroku master
 http://xxxxxxxxxxxxxxxxx.herokuapp.com/deployed to Heroku

きっちりと設定されていれば、上記のhttp://xxxxxxxxxxxxxxxxx.herokuapp.com/にアクセスすることで画面が表示されるはずです。
エラーがでた場合は、エラーに従ってアプリを修正します。
よくアプリの登録時に発生するエラーは以下の通りです。

  • Precompiling assets failed.
  • sqlite3がgemに残っている
  • 本番にpgのgemが入ってなくて、Precompilingに失敗
  • Gemfileは変更したのに、bundle updateを行っていなくてGemfile.lockが未変更のままである。もしくはcommitしていない
上記のミスがある場合には、コンソールの説明に沿って修正して、もう一度pushします。

以上でherokuへのdeployは完了です。

追記

久しぶりにherokuをいじったら、アプリのuploadの上限が5つまでになっていました。5つ以上アプリをあげる場合は、クレジットカードの登録が必要になったようです。まあ、ゴミサンプルアプリが反乱しているから、仕方ないですね。さくらVPSでもレンタルしようか思案中。
でわ


参考サイト

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

このエントリーをはてなブックマークに追加

rails4の準備3 rspecの使用とroutes.rbのテスト

rspecの導入と、routes.rbのテストの書き方のメモ。rails new でプロジェクトを作成したら、ここまでやっておくと後々楽です。

環境

  • mac mountain lion
  • rails new でプロジェクトを作成済
  • ruby2.1.0, rails4.0.3

Gemfileに記載


 group :test, :development do
   gem "rspec-rails", ">= 2.11.4"
   gem "factory_girl_rails", ">= 4.1.0"
 end

 group :test do
   gem "database_cleaner", ">= 0.9.1"
   gem "email_spec", ">= 1.4.0"
   #gem "cucumber-rails", ">= 1.3.0", :require => false
   #gem "launchy", ">= 2.1.2", :group => :test
   #gem "capybara", ">= 2.0.1", :group => :test
 end

Gemfileの内容をinstall


bundle install

rspecをinstall


 rails generate rspec:install
       create  .rspec
       create  spec
       create  spec/spec_helper.rb

上記のファイルが作成されていればrspecの準備は完成。
続いてrspecの動作を確認。
今回はサンプルでsiteコントローラーを作成。その後、routes.rbのテストを記載してrspecの動作を確認する。

コントローラーを作成


 rails generate controller site
       create  app/controllers/site_controller.rb
       invoke  erb
       create    app/views/site
       invoke  rspec
       create    spec/controllers/site_controller_spec.rb
       invoke  helper
       create    app/helpers/site_helper.rb
       invoke    rspec
       create      spec/helpers/site_helper_spec.rb
       invoke  assets
       invoke    coffee
       create      app/assets/javascripts/site.js.coffee
       invoke    scss
       create      app/assets/stylesheets/site.css.scss

site_controller_spec.rbが作成されています。

routes.rbファイルでroot設定


 root 'site#index'

site_controller.rbにindexメソッドを記載(なくても今は別に問題ない)します。
その後、/spec/routing/*の場所にsite_route_spec.rbを作成します。
site_route_spec.rbのコードは以下のように記載

 
 require 'spec_helper'

 describe "routing for site" do

   describe 'GET root_path' do
     subject { {:get => root_path} }
     it { should be_routable }
     it { should route_to :controller => 'site', :action => 'index' }
   end

 end

これで準備は終了。コマンドでrspecを動かします。

 
 bundle exec rspec spec
 *..

 Finished in 0.00838 seconds
 3 examples, 0 failures, 1 pending

うまく動きましたね。これでrspecの準備は完了です。
テストの粒度はプロジェクトによりまちまちですが、WEBアプリのrailsならroutes、controller、modelをやれば十分だと思います。

では。


参考サイト

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

このエントリーをはてなブックマークに追加

2014年2月23日日曜日

イーロン・マスクの野望 未来を変える天才経営者 感想

イーロン・マスク氏のこれまでを簡潔にまとめた本です。
起業家を目指している人、現在事業を営んでいる人は読んでみると良いでしょう。とってもワクワクすると思います。

個人的にはスティーブ・ジョブスやジェフ・ベゾスを超える起業家だと思っているのですが、日本ではいまいち知名度がない人です。
スペースXやテスラモーターのCEOだと説明すれば、イーロン氏がどれだけ凄い起業家かわかるのではないでしょうか。

日本にもこういった起業家が誕生して欲しいと思いますが、日本の社会じゃ絶対無理なのも、本を読んでいるとわかります。
なので、イーロン氏がこれから何を成し遂げていくのか楽しみに見守っていきたいと思います。

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

このエントリーをはてなブックマークに追加

2014年2月22日土曜日

rails4の準備2 rail4を準備

環境

  • mac mountain lion
  • ruby2.1.0を導入済

現在の環境を確認


 rvm gemset list

 gemsets for ruby-2.1.0 (found in /folder/.rvm/gems/ruby-2.1.0)
 => (default)
    global

プロジェクト名{projectname}で、プロジェクトgemsetを作成


 //作成
 rvm gemset create {projectname}

 //利用
 rvm gemset use {projectname}

 //rails導入(version指定なし)*時間かかります
 gem install rails

railsのversionを確認


 rails -v
 Rails 4.0.3

プロジェクトフォルダに移動


cd /{projectfolder}

プロジェクト作成


 rails new {projectname} -T
 // -TでUnitテストをスキップ

サーバーを起動

 
 cd /{projectname}
 rails server

http://localhost:3000/にアクセスすれば、Welcome aboard画面が表示されます。

以上で開発準備はひとまず完了です。


参考サイト

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

このエントリーをはてなブックマークに追加

rails4の準備 rubyを2.1.0にupdate

railsでWEBアプリのプロトタイプをつくるために、ruby周りの環境を最新に設定したのでメモ

環境

  • rvm
  • mac mountain lion

現在の環境を確認


ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]

現在のrvm環境を確認


rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-head [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]
=* ruby-2.0.0-p247 [ x86_64 ]

rvmを最新にする


rvm get stable

ruby2.1.0をinstall


rvm install 2.1.0

rvmを確認


   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-head [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]
 * ruby-2.0.0-p247 [ x86_64 ]
=> ruby-2.1.0 [ x86_64 ]

ruby2.1.0をデフォルトにする


rvm --default use 2.1.0

rvmを確認


   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-head [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]
   ruby-2.0.0-p247 [ x86_64 ]
=* ruby-2.1.0 [ x86_64 ]


以上でrubyの設定完了


参考サイト

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

このエントリーをはてなブックマークに追加
Related Posts Plugin for WordPress, Blogger...