2010-04-29

携帯電話用USB充電&データ転送ケーブル/ストラップタイプ

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
これオススメです。

amazonさんの評判は悪くないのですが、結構普通に使えていました。
携帯とPCがどこでもガシガシ接続できて、携帯をUSBメモリとしても利用できていい感じでした。


しかし、最近あんまり利用してなくて久しぶりに使おうと思ったら、
USBminiと携帯を接続するコネクタがなくなっていました・・・

全然気づかなかったです・・・
なのでもうこれを使えません・・・
もう一度買おうかなぁ・・・
本当ならば変換コネクタだけ欲しいのだけど・・・

2010-04-27

wheneverで環境変数を指定する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rubyでcron設定を記述できるwheneverなのですが、cron実行時に特別に環境変数を指定したいときなどは、以下のような感じで指定することもできます。

config/schedule.rb
に以下のような感じを追加します。

env :TNS_ADMIN , "/usr/local/oracle/network/admin"
env :NLS_LANG , "Japanese_Japan.UTF8"


こうしておいて
whenever
コマンドを実行すると

TNS_ADMIN=/usr/local/oracle/network/admin
NLS_LANG=Japanese_Japan.UTF8

が追加されます。

ついでにcronの出力を
>> /dev/null 2>&1
としたいときは、
config/schedule.rb

set :output, nil

を追加すればよいです。

wheneverについては、以下にもちょっと書いています。
wheneverでcron処理情報を管理

2010-04-26

google app engine patchでアプリ内に独自設定値を定義して利用する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
google app engine patchでアプリ内で独自の設定を定義して利用する方法です

通常
root
|-myapp
|-settings.py ← ここに設定値とかを書くわけですが、
ここだとグローバルな設定値な感じなので
myapp内だけで利用するような設定値を定義したい場合です。

myapp内にもsettings.pyを用意します。
root
|-myapp
| |-settings.py
|-settings.py

この自アプリ内のsettings.pyを以下のように書きます。

from ragendja.settings_post import settings
settings.MY_TEST = 'test test'

で使う時には、以下のような感じです。

from django.conf import settings

def index(request):
mytest = settings.MY_TEST

2010-04-19

SOBARCOでTwitterに投稿できるようにしてみました

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
SOBARCOでTwitterに投稿できるようにしてみました。

今までは、SOBARCOのRSSをFriendFeedに読み込ませてTwitterに投稿していたのですが、表示される内容がタイトルだけのようでちょっと物足りなかったのと、そのうち試そう試そうと思っていたのをやって試してみたという感じです。

Twitterに自分の呼んだ本の感想などを本のタイトルと一緒に投稿したいときなどもSOBARCOを利用していただけたらと思います。

あと、Amazonアフィリエイトのキーを入れられるようにしたいと思っていたりするのですが、単純にアフィリエイトのキーの部分だけ置換すればよいのかどうかがいまいちわからずです。

2010-04-18

Google App EngineからTwitterにつぶやく

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
Google App EngineからTwitterにつぶやく方法です。

まず用意するのは、
TwitterのOauthサイトに飛ぶための機能
TwitterのOauthからCallbackされるところ
が必要です。

これがつぶやくための情報が取得できたことになるので
これではじめてつぶやけます。

まずTwitterのAPIを利用するための登録をTwitterに行います。
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php
がとても参考になります。

そしてGoogle App EngineからTwitterのAPIを利用するには、
AppEngine-OAuth-Library
が大変便利です。
使い方は、
http://blog.mudaimemo.com/2010/02/google-app-engine-twitter-oauth.html
が大変参考になります。

ざっくり使うならば以下のような感じになります。
# -*- coding: utf_8 -*-

import os
import sys
import logging

from google.appengine.ext.webapp import template
from google.appengine.ext import webapp
from google.appengine.api import urlfetch
from django.utils import simplejson as json
import traceback
import urllib
#AppEngine-OAuth-Libraryを読み込みます。
import oauth

import wsgiref.handlers

#登録した値を使います
CONSUMER_KEY = 'アプリのConsumer key'
CONSUMER_SECRET = 'アプリのConsumer secret'

class Top(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'top.html')
    self.response.out.write(template.render(path, template_values))

class TwitSignin(webapp.RequestHandler):
  def get(self):
        callback_url = '%s/twitter/callback' % (request.host_url)
        client = oauth.TwitterClient(CONSUMER_KEY, CONSUMER_SECRET,callback_url)
        self.redirect(client.get_authorization_url())

class TwitCallback(webapp.RequestHandler):
  def get(self):
    #つぶやくために必要なのは以下の二つではありません
    token = request.get('oauth_token')
    verifier = request.get('oauth_verifier')
    client = oauth.TwitterClient(CONSUMER_KEY, CONSUMER_SECRET,None)
    #以下の部分で肝心な情報を取得します
    user_info = client.get_user_info(token, verifier)
    #この下で取得する2つの情報がつぶやくために必要になります
    oauth_token  = user_info['token']
    oauth_secret = user_info['secret']

    #重要な情報がとれたところでついでにつぶやきサンプルです。
    msg = "oauthテスト なう"
    additional_params = {'status': msg}
    try:
        response = client.make_request('http://twitter.com/statuses/update.json',
                                       token=oauth_token,
                                       secret=oauth_secret,
                                       additional_params=additional_params,
                                       protected=True,
                                       method='POST')
        data = json.loads(response.content)
        if data.has_key('error'):
            logging.error(data['error'])
    except Exception, e:
        logging.error(traceback.format_exc())
        
    self.redirect("/")


def main():
  application = webapp.WSGIApplication([
                                        ('/', Top),
                                        ('/twitter/signin', TwitSignin),
                                        ('/twitter/callback', TwitCallback),
                                        ],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
  main()

ちなみにtop.htmlは
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>test</title>
</head>
<body>
<a href="/twitter/signin">auth twitter</a>
</body>
</html>

2010-04-15

railsでOracleに接続できるようにする

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
railsでoracleに接続できるようにするための手順です。

環境はCentOSでrubyは導入済みなのが前提です。

(1)oracleクライアントインストール手順
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
から
以下をダウンロード(バージョンはお好きなものを)
oracle-instantclient-basic-10.2.0.3-1.i386.rpm
oracle-instantclient-sqlplus-10.2.0.3-1.i386.rpm
oracle-instantclient-devel-10.2.0.3-1.i386.rpm

(2)oracleクライアントインストール
su -
rpm -ivh oracle-instantclient*

(3)接続設定
vi /usr/local/oracle/network/admin/tnsnames.ora
必要な設定を記述する

(4)環境変数の設定
vi /etc/profile.d/oracle.sh
-------------------------
export TNS_ADMIN=/usr/local/oracle/network/admin
export NLS_LANG=Japanese_Japan.UTF8
export ORACLE_HOME=/usr/lib/oracle/10.2.0.3/client
export PATH=${ORACLE_HOME}/bin:${PATH}
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
-------------------------
chmod 755 /etc/profile.d/oracle.sh

(5)接続テスト
例えば以下のような感じ
sqlplus scott/tiger@test

(6)Ruby-OCI8インストール
gem install ruby-oci8

(7)OracleAdapterインストール
gem install activerecord-oracle_enhanced-adapter

(8)rubyでの接続確認
例えば以下のような感じ
irb
irb> require 'oci8'
=> true
irb> con = OCI8.new("scott","tiger","test")
=> #
irb> con.exec('select * from DUAL') do |r| puts r.join(', '); end
X
=> 1

2010-04-14

Google App Engineで短縮URLのAPIを利用する

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
最近、よく見る短縮URLをGoogle App Engineでも利用してみます。
bit.lyは、APIを利用できるのでbit.lyを使うことにします。

利用のためには、以下でアカウント登録が必要ですが無料ですし必要なのはメールアドレスだけです。
http://bit.ly/account/register
登録が済んだら以下でApiKeyを取得します。
http://bit.ly/account/your_api_key

ここまで出来たら準備OK。

以下のような関数を作って呼び出せば、短縮urlを利用できます。
# -*- coding: utf_8 -*-

from google.appengine.api import urlfetch
import urllib

def make_short_url(url):
    bitly_account = "bit.lyに登録したアカウント"
    bitly_key     = "bit.lyから発行されたAPIキー"
    bitly = "http://api.bit.ly/v3/shorten"
    bitly = bitly + "?login=" + bitly_account + "&apiKey=" + bitly_key
    bitly = bitly + "&format=txt"
    bitly = bitly + "&longUrl=" + urllib.quote_plus(url)
    result = urlfetch.fetch(bitly)
    if result.status_code != 200:
        return None
    return result.content[:-1]

2010-04-10

踏み台昇降

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
この本を読んでみました。


この本では、トレッドミル(ルームランナー)をオススメしていました。
以下のような折りたためる家庭用のものを特にオススメしていました。

というのも、
・ながら運動ができる
・いつでもできる
・周りに気を使わなくてよい
・すぐにやめて他の行動に移れる
・運動量が数値化して示される
・継続しやすい
・物質の調達が用意(水とか)
・つかまりながら歩ける/走れる
というメリットがあるからだそうです。
特にながら運動の点で
テレビやDVDや読書、コーヒーを飲みながらだけでなく
以下のようなパイプラックを近くにおいて台にすることでパソコンなどの操作をしながらもOKとのことでした。


なるほど、これはキニナル!
と思ったわけです。
でちょっと調べてみたところ、いくら折りたためると言ってもせまい我が家にはでかすぎる・・・
と思ったわけです。

場所がないなら以下のようなステッパーでもいいじゃないか?と思ったわけです。


さらによく考えたら、足踏みということで踏み台昇降でいいんじゃねぇ。と思ったりしたのです。
以下のようなステキな台もあるわけですが、新聞紙とかをガムテープでぐるぐる巻きにして台を作ってもよいというお手軽さです。


そして踏み台昇降で調べたところ以下のサイトを見つけました。
http://beauty.s35.xrea.com/diet/
こちらではポイントとしては、台にあがる最初にあげる足をを定期的に左右いれかえるとありました。
そのため、台の上で一歩足踏みして台の上で3歩、下で2歩というのが良い感じのようです。

というわけで、トレッドミルのメリットと比較をしてみます。
○ながら運動ができる
 ただし水を飲みながらは上下移動なのでちょっと大変
○いつでもできる
○周りに気を使わなくてよい
○すぐにやめて他の行動に移れる
×運動量が数値化して示される
○継続しやすい
○物質の調達が用意(水とか)
○つかまりながら歩ける/走れる
 つかまれるとこの近くでやればという条件つき

ほとんどトレッドミルのメリットと同様のメリットが踏み台昇降にはあることがわかりました。
数値化に関しても歩数計を使えばバッチリ!


ちょっと踏み台昇降生活がキニナルこのごろになってみました。

2010-04-06

はてなモノリス

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
はてなさんで
はてなモノリス
というサービスがはじまったようです。


はてなモノリスは,iPhone 3GSやAndroid端末を使って,身の回りにある「モノ」のバーコードをスキャンし,その情報をWeb上に共有するサービス。

だそうです。

どこかで聞いたことがあるようなコンセプト。
SOBARCO
も同じ(つもり)コンセプトなのです。

機能的には、もちろん
はてなモノリス
さんが上です!

私もAndroidやiPhoneアプリも作ってみたかった・・・
ですが実機がなくてモチベーションがあがらず。

twitter連携などは、そのうちやってみたいなぁとか思ったりもしているので
もし
iアプリで
はてなモノリス
みたいなことをやってみたいなぁと思う方がいましたら
SOBARCO
をお試しください。