2013年6月30日日曜日

AOL Readerに登録

AOL Readerに登録してみました。私のようなGoogle Readerからの乗り換え組が押し寄せているためでしょう。リクエストに処理しきれずにウェイティングリストに回されました(笑)。しかし、AOLアカウントを取得してみて、素晴らしい世界が広がっていることに気付かされました。AOL Reader自体は、まだ使えていないのですが、しばらくAOLアカウントを試してみようと思っています。

2013年6月29日土曜日

Ruby on Railsで、メール送信APIの「SendGrid」

Ruby on Rails(3.2.13)で、メール送信APIの「SendGrid」を利用してみました。組み込むと、クラウド上のSMTPサーバーからメール送信することが可能です。Herokuで利用する場合は、Mailgunの場合と同様、環境変数にも設定が書き込まれるので、下記の内容をそのままコピーすればOK。無料のStarterコースは、1ヶ月6,000通までメール送信することが可能となっています。

/aonfig/environment.rb
ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => ENV['SENDGRID_USERNAME'],
  :password       => ENV['SENDGRID_PASSWORD'],
  :domain         => 'heroku.com',
  :enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp


参考サイト
SendGrid(Heroku Dev Center)

2013年6月28日金曜日

Ruby on Railsで、メール送信APIの「Mailgun」

Ruby on Rails(3.2.13)で、メール送信APIの「Mailgun」を利用してみました。設定を書き換えるだけで、クラウド上のSMTPサーバーからメール送信することが可能です。Herokuで利用する場合は、Mailgunを組み込むと環境変数にも設定が書き込まれるので、文字通り、下記の内容をそのままコピーすれば利用できるようになります。無料のStarterコースは、1日300通までメール送信することが可能となっています。

/aonfig/environment.rb
ActionMailer::Base.smtp_settings = {
  :port           => ENV['MAILGUN_SMTP_PORT'], 
  :address        => ENV['MAILGUN_SMTP_SERVER'],
  :user_name      => ENV['MAILGUN_SMTP_LOGIN'],
  :password       => ENV['MAILGUN_SMTP_PASSWORD']
  :domain         => 'yourapp.heroku.com',
  :authentication => :plain,
}
ActionMailer::Base.delivery_method = :smtp


参考サイト
Mailgun(Heroku Dev Center)

2013年6月27日木曜日

無料で5GBのオンラインストレージ「Dump Truck」

無料で5GBのオンラインストレージ「Dump Truck」、よくあるストレージサービスです。ウェブから操作できたり、専用アプリを利用できたりと、Dropboxと同じような内容ですが、体育会系のノリとデザインに特徴があって、異彩を放っているような気がします(笑)。日本語は用意されていませんが、わかりやすいので、悩む部分はないでしょう。ウェブ版の登録はこちらからどうぞ

2013年6月26日水曜日

Ruby on Railsのconfig.ru

Ruby on Rails(3.2.13)config.ruについて、調べてみました。rackupコマンドとともに用いて、起動オプションが渡せるらしい。ファイルの中身を覗くと、Rackベースのサーバー起動用と書かれています。まだまだ、わからないこと多し。

/config.ru
# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
run Appname::Application


参考サイト
第23回 Rackとは何か(1)Rackの生まれた背景(Ruby Freaks Lounge)
config.ruに設定を埋める(\ay diaryさん)
Ruby on Rails config.ru (Ruby on RailsでWebサイト公開!に挑戦中さん)

2013年6月25日火曜日

Ruby on Railsのrake dbコマンドで、データベーススキーマのダンプ

Ruby on Rails(3.2.13)rake dbコマンドで、データベーススキーマのダンプです。

rake db:schema:dump
rake db:schema:load
/db/schema.rb にスキーマのダンプが生成され、また、スキーマをロードすることが可能です。システムの引越しの際などに、威力を発揮してくれます。



参考サイト
rakeのタスク一覧(ぺんたん infoさん)

2013年6月24日月曜日

Ruby on Railsで、YAML形式でデータベースデータをダンプする「yaml_db」

Ruby on Rails(3.2.13)で、YAML形式でデータベースデータをダンプする「yaml_db」を設定してみました。

Gemfile
gem 'yaml_db'
rake db:data:dump
rake db:data:load
で、/db/data.yml にダンプファイルが出来き上がり、また、データをロードすることが可能です。



参考サイト
yaml_db RailsのDBをコマンド一つでYAML形式でダンプ/ロードできるRubyGem(酒と泪とRubyとRailsとさん)

2013年6月23日日曜日

AT&Tの路上ソーラーパワー充電ステーションが、ニューヨークに

AT&Tの路上ソーラーパワー充電ステーションが、ニューヨークに出現したそうです。人が多く集まる憩いの場に、良いアイディアだと思います。エコだし、未来を感じますし、何よりそのデザインがいいです。見事にニューヨークの街に溶け込んでいるような気がします。充電はUSBポートで行うらしい。日本でも、近い将来お目見えするかもしれません。

2013年6月22日土曜日

Googleリーダーと同じ操作性を持ったRSSリーダー「The Old Reader」

Googleリーダーと同じ操作性を持ったRSSリーダー「The Old Reader」に、ようやく出会えました。Googleリーダーがサービス終了してしまうので、そろそろ本気で探さないといけないと思っていました。そしてついに、Googleリーダーと「瓜二つ」のサービスを見つけることが出来ました。レイアウトや操作性が非常に似通っていて、違和感なく引越しできそうな気がします。これでもう路頭に迷わないでしょう、多分(笑)。

2013年6月21日金曜日

Ruby on RailsのPaaS「MOGOK」に登録、デプロイ

Ruby on RailsPaaSMOGOK」に登録、デプロイしてみました。herokuと同じような感覚で利用することが可能です。IIJの運営ですので、安心感が違います。もちろん、無料。ゆくゆくは、有料サービスも提供されるとのこと。ありがたい限りです。感謝の心を持って、利用させていただきます。

手順としては、

1、mogokコマンドのインストール
2、gitでプッシュ
3、mogokコマンドで、ビルド

といった、流れになります。詳しいドキュメントはこちら。mogokコマンドさえ準備出来れば、躓く部分はないでしょう。ドキュメントの通り進めれば、デプロイできます。

mogokコマンドのインストール
gem install mogok-1.0.4.gem
mogok -v
mogok list
mogok create (アプリ名)
gitでプッシュ
git remote -v
git push mogok master
mogokコマンドで、ビルド
mogok build
mogok rake db:migrate
mogok start
mogok info
mogok stop
実際に設定してみたサイトがこちら



参考サイト
MOGOK用のRailsアプリを作成(まとめ)(Hidde’s Tipsさん)

2013年6月20日木曜日

CentOS 6.3で、gitのバージョンアップ

CentOS 6.3で、gitのバージョンアップです。ディフォルトの設定のままだと、1.7.1からアップグレードしてくれないので、仕方なく作業しました。アップグレード後は、1.7.11にバージョンアップ出来ました。

# git --version
1.7.1.3

# wget 'http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm'
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -i 'http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm'
# yum clean all
# vi /etc/yum.repos.d/rpmforge.repo
/etc/yum.repos.d/rpmforge.repo(「enabled = 1」に変更)
[rpmforge-extras]
name = RHEL $releasever - RPMforge.net - extras
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras
mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras
#enabled = 0
enabled = 1
# yum update
(ここで、エラーが多数表示されましたが、必要ないパッケージを全て削除して対処)
# yum provides git
(入手可能な、gitのバージョンがリスト表示されます)
# yum install git-1.7.11.1-1.el6.rfx.x86_64
# git --version
git version 1.7.11.1

参考サイト
Update Git On CentOS 6.3(Charleston Software Associatesさん)

2013年6月19日水曜日

Ruby on Rails実験サイト、一区切り

Ruby on Rails(3.2.13)実験サイト、一区切りです。会員登録から始まって、登録データの一覧、検索、編集、削除、メールの送信など、とりあえず、ウェブサービスに最低限必要な機能は、網羅できたかなと思います。慣れれば、慣れるほど、Ruby on Railsの素晴らしさに心酔してしまいました。何より、そのコーディング量の少なさには、ただただ感心するばかりであります。シンプルで、エレガント。本当にすばらしいフレームワークです。

2013年6月18日火曜日

Ruby on Railsで、Twitter連携「omniauth-twitter」

Ruby on Rails(3.2.13)で、Twitter連携です。omniauth-twitterを組み込み、Twitterアカウントでログイン出来るようになりました。

Gemfile
gem 'omniauth-twitter'
/config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, "CONSUMER_KEY", "CONSUMER_SECRET"
end
/config/routes.rb
match "/auth/:provider/callback" => "sessions#callback"
match "/signout" => "sessions#destroy"
コールバックURLは、「/auth/twitter/callback」になります。

/app/controllers/sessions_controller.rb
def callback
  auth = request.env["omniauth.auth"]
  session[:oauth_token] = auth.credentials.token
  session[:oauth_token_secret] = auth.credentials.secret
  session[:nickname] = auth.extra.access_token.params[:screen_name]
  flash[:notice] = session[:nickname] + "さん、いらっしゃいませ。"
  redirect_to root_url
end

def destroy
  session[:oauth_token] = nil
  session[:oauth_token_secret] = nil
  session[:nickname] = nil
  flash[:notice] = "またのお越しをお待ちしております。"
  redirect_to root_url
end
実際に設定してみたサイトがこちら



参考サイト
(メモ) Rails+OmniAuthによるTwitterログイン(m-kawato@hatena_diaryさん)

2013年6月17日月曜日

Ruby on Railsで、カレンダー表示

Ruby on Rails(3.2.13)で、カレンダー表示です。simple_calendarを参考に設定してみました。高度すぎて、分からない部分が多く、ソースがごちゃごちゃしてしまいましたが、ViewHelpersが非常に参考になりました。とりあえず、それらしくなったような気がします。

実際に設定してみたサイトがこちら

2013年6月16日日曜日

ubuntu13.04 で無線LAN、BUFFALOの「WLI-UC-GNM」

ubuntu13.04 で無線LAN、BUFFALOの「WLI-UC-GNM」です。手こずるかと思いましたが、USBポートに差し込んだ途端に認識してくれました。特にドライバーなどをインストールする必要もなく、Windows同等の便利さで利用することが可能です。しかもBUFFALOの「WLI-UC-GNM」、お財布にも優しい。すばらしいの一言です。

2013年6月15日土曜日

スタジアムのシート位置から見える光景を把握できるアプリ「a view from my seat」

スタジアムのシート位置から見える光景を把握できるアプリ「a view from my seat」 チケットを購入する際、座席位置は把握できても、実際、どのように見えるのかは、現地に行ってからでないとわからないものです。それを解消しようというのがこのサービス。座席位置からの写真が登録されているので、ステージやフィールドまでの距離や角度が非常によく分かります。まだ登録データがあまり多くないので、システマチックというわけではありませんが、それでもアイディアが面白いし、可能性を感じます。

2013年6月14日金曜日

Ruby on Railsで、XML出力(Builder::XmlMarkup)

Ruby on Rails(3.2.13)で、XML出力です。Builder::XmlMarkupを使うと、複雑なXMLも簡単に出力することが可能です。cdata!()など、便利なメソッドが用意されています。

/app/views/jobs/index.xml.builder
xml.instruct! :xml, :version => "1.0"
xml.Placemarks do
  for job in @jobs do
    xml.Placemark do
      xml.url job_url(job)
      xml.description do
        xml.cdata!(job.title)
      end
      xml.LookAt do
        xml.latitude job.lat
        xml.longitude job.lng
      end
    end
  end
end
実際に設定してみたサイトがこちら

2013年6月13日木曜日

Ruby on Railsで、group byからカウント取得

Ruby on Rails(3.2.13)で、group byからカウント取得です。出来上がったソースを見れば、簡潔で、見てすぐわかります。しかしながら、これを実際に使いこなすには慣れが必要です。

/app/controllers/jobs_controller.rb
@areas = Job.group(:area).order('area asc').count('area')
/app/views/jobs/category.html.erb
<% @areas.each do |area, count| %>
  <%= area %> (<%= count %>)
<% end %>
実際に設定してみたサイトがこちら



参考サイト
ActiveRecordでgroup Byしてカウントをして、カウント数でorderする(酒と泪とRubyとRailsとさん)

2013年6月12日水曜日

Ruby on Railsで、HTTPライブラリの「net/http」

Ruby on Rails(3.2.13)で、HTTPライブラリの「net/http」です。Google Mapの経度と緯度を取得する際に利用しました。他にも、いろいろな場面で応用出来るでしょう。

def latlng(address)
  address = URI.encode(address)
  hash = Hash.new
  baseUrl = "http://maps.google.com/maps/api/geocode/json"
  reqUrl = "#{baseUrl}?address=#{address}&sensor=false&language=ja"
  response = Net::HTTP.get_response(URI.parse(reqUrl))
  status = JSON.parse(response.body)
  if status['status'] != "ZERO_RESULTS"
    hash['lat'] = status['results'][0]['geometry']['location']['lat']
    hash['lng'] = status['results'][0]['geometry']['location']['lng']
  else
    hash['lat'] = nil
    hash['lng'] = nil
  end
  return hash
end
実際に設定してみたサイトがこちら



参考サイト
RailsとJQueryでGoogleMapを住所から扱う手軽な方法(やぶろぐさん)
net/httpライブラリ(Ruby リファレンスマニュアル )

2013年6月11日火曜日

Ruby on Railsで、scopeのmerge

Ruby on Rails(3.2.13)で、scopeのmergeです。関連するモデルの条件絞り込みに利用できます。使い回しできるので、ソースがスッキリ見やすくなります。すばらしい。

/app/models/blog.rb
class Blog < ActiveRecord::Base
  scope :published, where(:published => true)
end
/app/models/user.rb
class User < ActiveRecord::Base
  has_many :blogs
  scope :published_blogs, joins(:blogs).merge(Blog.published)
end
実際に設定してみたサイトがこちら



参考サイト
mergeメソッド使ってます?(Qiita [キータ)
Merge two arbitrary scopes in Rails 3(makandropediaさん)

2013年6月10日月曜日

Ruby on Railsで、URLやメールアドレスの自動リンク「Rinku」

Ruby on Rails(3.2.13)で、URLやメールアドレスの自動リンク「Rinku」です。Gemパッケージをインストールすると利用できるようになります。快適です。

Rinkuのインストール
gem install rinku
Gemfileに追加
gem 'rinku'
/app/views/users/show.html.erb
<%= raw Rinku.auto_link(h(@user.detail)) %>
実際に設定してみたサイトがこちら



参考サイト
ActionViewで自動リンク(Qiita [キータ])

2013年6月9日日曜日

クラウドの電話音声案内サービス「loco(ロコ)」

クラウドの電話音声案内サービス「loco(ロコ)」 自動音声案内というと、敷居の高いサービスでしたが、これは低コストで導入できて、中小企業の力強い味方になってくれることでしょう。しかも、管理はウェブ上から行えます。秘書サービスなどは、もはや過去のもの?

2013年6月8日土曜日

PCモニターをスマホのように扱える(?)ASUSの次世代マウス「VivoMouse」

PCモニターをスマホのように扱える(?)ASUSの次世代マウス「VivoMouse」 マウスもそろそろ進化の次期なのかもしれません。受信機が大きいのが気になりますが、スマホのモニターに慣れたユーザーなら、違和感なく利用できるでしょう。それにしても、うまい具合にマウスにその動きを変換しています。



2013年6月7日金曜日

Ruby on Railsで、namespaceを利用した場合のフォームとリンク

Ruby on Rails(3.2.13)で、namespaceを利用した場合のフォームとリンクです。管理画面の /admin/news といったURLで利用するテンプレートでのフォームとリンクの書き方です。

/app/views/admin/news/_form.html.erb(フォーム)
<%= form_for([:admin, @news]) do |f| %>

<% end %%>
/app/views/admin/news/index.html.erb(リンク)
<%= link_to '変更', edit_admin_news_path(news) %></td>
<%= link_to '削除', [:admin, news], method: :delete, data: { confirm: 'Are you sure?' } %></td>
実際に設定してみたサイトがこちら



参考サイト
Rails Routes Namespaces and form_for(Stack Overflow)
rails using link_to with namespaced routes(Stack Overflow)

2013年6月6日木曜日

Ruby on Railsで、namespaceを利用した管理画面ルーティング

Ruby on Rails(3.2.13)で、namespaceを利用した管理画面ルーティングです。namespaceを利用すると、/admin/newsといったURLでアクセスできるようになります。

/config/routes.rb
namespace :admin do
  resources :news
end
/app/controllers/admin/news_controller.rb
class Admin::NewsController < ApplicationController
  # 管理者認証
  before_filter :authenticate_admin

  def index

  end
end


参考サイト
Rails full-fledged admin control panel(Stack Overflow)

2013年6月5日水曜日

Ruby on Railsで、集約関数のcount

Ruby on Rails(3.2.13)で、集約関数のcountです。scopeと組み合わせても利用できます。直感的で、使いやすい。

cnt = User.scope1.scope2.scope3.count
実際に設定してみたサイトがこちら

2013年6月4日火曜日

Ruby on Railsの参照テーブル「belongs_to」

Ruby on Rails(3.2.13)の参照テーブル「belongs_to」です。メッセージテーブル(letters)の送信者(sender_id)と受信者(receiver_id)を参照する場合の例です。関連名と参照先のクラス名が異なる場合、:class_nameで、指定すれば、OK。良い感じで取得できています。

/app/models/letter.rb
class Letter < ActiveRecord::Base
  belongs_to :sender, :class_name => "User"
  belongs_to :receiver, :class_name => "User"
end
実際に設定してみたサイトがこちら



参考サイト
Ruby on Rails、別名のクラスでbelongs_to(さん)
Ruby on Railsで同一モデルでhas_many,belongs_toを実現する(毒林檎のblogさん)

2013年6月3日月曜日

Ruby on Railsで、配列の判定

Ruby on Rails(3.2.13)で、配列の判定です。Ruby on Railsと言うよりは、Rubyの基本だと思いますが、何もわかっちゃいないので、備忘録です。

checkstring = ["a", "bb", "ccc"]

if checkstring.kind_of?(Array) 
// 配列の場合の処理

else
// 配列でない場合の処理

end


参考サイト
Ruby :: arrayかどうかチェックする([Tipsというかメモ]さん)
Ruby - test for array(Stack Overflow)
Ruby: kind_of? vs. instance_of? vs. is_a?(Stack Overflow)

2013年6月2日日曜日

Linux Mint 15のCinnamonをインストール

Linux Mint 15(Olivia)のCinnamonをインストールしてみました。Cinnamonは、GNOME3版です。もう一方のMATEは、GNOME2版。今回試したisoファイル(linuxmint-15-cinnamon-dvd-32bit.iso)はこちら。正直、ちょっと触っただけでは、どこが変わったのかわかりません。この変化のない安心感が良いのかもしれません。正常進化と言えるでしょう。ちなみに、インストール後に、日本語入力用にMOZCを追加しておきました。

2013年6月1日土曜日

新感覚のウェブクリップサービス「Keeeb」

新感覚のウェブクリップサービス「Keeeb」 よくあるウェブクリップサービスで、Evernoteのようなものです。しかしながら、非常にユニークな点は、カテゴリ分けして、Pinterestのごとく、自分で新聞の紙面を構成するように、情報を保存しておける点です。ちょっと操作性が重いような感じも受けますが、情報をシステマチックに管理するという意味では、本当によくできていると思います。高機能なメモ帳として、活躍してくれること間違いなし。この分野の新鮮な吸気を吸いたい方、是非どうぞ。