2012-10-28

タカラトミーの「夜空におえかき」がキニナル

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

タカラトミーの「夜空におえかき」というのがキニナルのです。
ものとしては、いろんな色が出るライトのようです。
これと専用の無料のiphoneアプリを使って簡単におしゃれな光で描いた絵の写真が撮れてしまうようです。

専用のアプリでなくても長時間露出できれば絵はできるとは思いますが、アニメーションなども簡単にできるようです。

詳しくは、以下を。
http://www.takaratomy-arts.co.jp/specials/oekaki/

ぜひandoridのアプリも出してもらいもんです。

2012-10-22

twitterを利用した簡易読書録を作る方法

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
twitterを利用して私がやっている簡易な読書録の作り方をまとめてみます。

簡単に言ってしまえば、ツィートに「#読んだ」とハッシュタグをつけるだけです。

さらに自分のつけた「#読んだ」のツィートを見れるようにするために
を利用します。

これで以下のような感じの簡易な読書録ができあがります。

私の場合は、書名とamazonへのリンク(詳しい情報はamazonさんにおまかせ)を入れています。

この書名とamazonへのリンクを入れるために私が作ったandroidアプリ
を利用しています。

BARCOTTERは、バーコード情報をカメラで読み取るか入力することでamazonで検索を行い書名などの情報を取得してtwitterなどに取得した情報を渡すアプリです。
詳しくは、以下をご覧ください。


実際の読書録を作る際の流れは以下のような感じです。

BARCOTTERを立ち上げます。

②カメラがついていれば読取を押してカメラを起動してバーコードを読み取ります。バーコードが読み取りにくいときはフラッシュをつけたりすると読み込みやすくなるようです。
カメラがない場合は、「BARCODE or ISBN」の欄に直接バーコードを入力します。
また、「後にテキストを追加の部分」に「#読んだ」と入れておきます。


③共有を押します。(設定で読み取り後自動で共有を実行できます。)共有すると共有するアプリを選択できるのでtiwtterを選択して、適当にメモを追加してツィートします。

これでOKです。

ちゃんとした読書録を作りたい場合は、以下にいろいろな読書記録のサイトが紹介されているので参考になります。
http://matome.naver.jp/odai/2129578537652781601


ちなみにBARCOTTERで判別できるのは、本だけではなくCDやDVDなども判別できます。
なので読書録だけでなく音楽録や映画録などに応用もできたりもしますよ。

2012-10-13

railsでsend_fileするときに日本語ファイル名を指定するとchromeでたまに文字化けする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsでファイルダウンロードさせるためにsend_fileを使うときに日本語ファイル名でダウンロードさせるとき、私は以下のようにしていました。

filename = "今後の予定.xls".encode("cp932")
send_file(f, :filename => filename)

cp932でencodeしているのは、utf-8でおくるとIEが文字化けしていたので、そうしています。

普段は、chromeでも特に問題がありません。
しかし、たまに文字化けが出ていました。
上記のファイル名の場合は「予」の部分で文字化けがおきてしまいます。

これの原因は、たぶん以下のサイトで書いてあることが影響している気配です。
https://sites.google.com/site/fudist/Home/grep/damemoji

で対策として以下のようにするようにしました。

filename = ERB::Util.url_encode("今後の予定.xls")
send_file(f, :filename => filename)

これで問題なくIEでもchromeでも文字化けしないようになりました。

以下が参考になったサイトです。

http://kiita-it-blog.seesaa.net/article/253744186.html



2012-10-02

お好きなYoutubeムービーをAndroidのホームにショートカットとして登録する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
お好きなYoutubeムービーをAndroidのホーム画面にショートカットとして登録していつでもワンタッチで見れるようにする方法です。

まずYoutubeアプリで登録したいムービーを検索します。
ちなみにロングブレスダイエットの方法を検索してみました。

そして目的のムービーを表示します。

設定ボタンを表示して、URLをコピーします。

ここで一度Youtubeアプリを終了して、ブラウザを立ち上げてコピーしたURLを貼り付けます。

Youtubeで見るように選択します。常にこの操作で私用するにチェックを入れてもよいです。

目的のムービーが表示されることを確認します。

そして、またブラウザに戻ります。ブラウザ上部を触ってURL入力バーを出してタブボタンを押します。

設定を表示して、履歴を表示させます。

今日の履歴を表示して、Youtubeムービーを長押しします。

ブックマークに保存を選択します。

ラベルを好きなものして、追加先を「ホーム画面」にします。

するとホーム画面にショートカットが作成されています。これでワンタッチでムービー見れるようになったわけです。アイコンがちょっと気に入らないのですが、よしとしましょう。

2012-10-01

ActiveScaffoldでpaper_trailの履歴情報を表示する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActiveRecordの履歴情報には、
paper_trail
がよさげと先日ご紹介させていただきました。
ActiveRecordの変更履歴を保存するにはpaper_trailがよさげ


そのpaper_trailで保存された履歴情報をActiveScaffoldで表示する方法です。

Blogモデルで履歴情報を残すようにして、Blogモデル用のActiveScaffoldで履歴情報をネストして表示できるようにする例です。

ActiveScaffoldでnestを利用するには、has_manyで関係が明示されていないとダメっぽいので
まずはBlogモデルの履歴表示用のBlogVersionというモデルを作ります。
以下のような感じです。

# -*- encoding: utf-8 -*-
class BlogVersion < Version
  def method_missing(action)
    unless self.reify.attributes.keys.index(action.to_s).nil?
      self.reify[action]
    else
      super
    end
  end
end

paper_trailにより作成されたVersionモデルを継承します。
そしてmethod_missing内でBlogモデルが持つattributeと同じものを利用できるようにします。
厳密にはidとcreated_atだけはVersionのものになってしまいます。

そしてBlogモデルで以下のようにします。

# -*- encoding: utf-8 -*-
class Blog < ActiveRecord::Base
  has_many   :blog_versions, :foreign_key => "item_id"
end

versionsテーブルでblogsのidを保持するのはitem_idになるのでforeign_keyに指定します。


コントローラー側です。
まずは、BlogVersion用のものです。

class BlogVersionController < ApplicationController
  active_scaffold :blog_versions do |config|
    config.label = "変更履歴"
    config.actions.exclude :create, :update, :delete, :search
    config.columns = [:entry,
                      :auther,
                      :updated_at]
  end
end

新規追加、変更、削除はできないようにしておきます。
そして表示するカラムは明示します。

Blog用のものは以下のような感じです。

# -*- encoding: utf-8 -*-
class BlogController < ApplicationController
  active_scaffold :blogs do |config|
    config.label = "ブログエントリ"
    config.columns = [:entry,
                      :auther,
                      :created_at,
                      :updated_at]
    config.nested.add_link(:blog_versions, :label => '変更履歴')
  end
end

ここのnestedでblog_versionsを指定することで各ブログエントリ毎の変更履歴を表示することができるようになります。



ちなみに、このブログでactive_scaffoldに関しての情報を他にも乗せています。
ActiveScaffoldの小ネタのまとめ