2010年7月
« 6月    
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

ニコニコ動画をevernoteにクリップしたあとに、ノートにサムネイルとかつけてちょっと豪華にしてくれるwebサービス「BUN☆TAN」をリリースしました。

タイトルで説明が終わっちゃてるのですが、ニコニコとevernoteにどっぷりはまっている一部の人向けのwebサービスとして、
evernoteにニコニコをクリップしたあとに編集するwebサービスを作成しました。
作成した目的は、ニコニコをevernoteに保存したら、単にurlと動画名だけで寂しかったので、サムネぐらい欲しいなと思ったからです。
無料で利用できますので、利用してみるといいと思うよ。
urlはこちら。
http://buntan.krks.net/
以下は、開発者向けに。

pythonで、スタックトレースを文字列として得る方法

GAEでの開発中に、エラーハンドリングしてExceptでエラーをcatchすることまではできたのだけど、
stacktraceをうまいこと処理する方法が見つからなかったので調べた。以下のようにすると、ログに出力できる。
logging.error(traceback.format_exc(sys.exc_info()[2]))
sys.exc_info()[2]で、stacktraceオブジェクトを取得して、
traceback.format_excで文字列にフォーマットしている。
ということが、リファレンスに書いてあった!
http://www.python.jp/doc/2.4/lib/module-traceback.html

appengine(python)で動的にメソッドを呼び出して、urlにマッピングする

pythonの動的メソッド呼び出しの方法を使って、
python+appengineで、urlを設定するときに、各urlごとにクラスを作成せずに
クラスの中のメソッド呼び出しを変更する方法。
class OAuth(webapp.RequestHandler):
def get(self , methodname):
logging.info(methodname)
try:
method = getattr(self, methodname)
except AttributeError:
self.response.set_status(404)
return
method()

def aaa(self):
logging.info(“aaa called”)
[...]

Windowsでeclipseを設定し、appengine(python)の開発を行う

1.pydevのインストール
ヘルプ->新規ソフトウェアのインストールから
pydev(http://pydev.org/updates/)を追加して、インストール

2.ウィンドウ->設定から、pydevの設定をする
pythonを普通にインストールしていれば、auto configをクリックするだけでok

3.新規プロジェクトの作成で、google appengineプロジェクトを作成する

ここで、Browseからappengineのパスを設定する

プロジェクトエクスプローラーに作成される

4.実際に動作させる
実行の構成から、動作環境を作成する。

Projectに自分の選択したプロジェクト、MainModuleにappengineフォルダのdev_appserver.pyを設定する。
appengineフォルダは、browseから辿れないので直で打ち込む。

argumentsタブの設定をする
引数に、ダブルクォートでソースのフォルダを囲んで記述する。

実行をクリックすると、コンソールにメッセージが出るので、それを確認して
表示されたアドレスにブラウザからアクセスする。

画面が表示されればOK。

google app engine(Python-windows)のインストール

前提:Pythonは既にダウンロード&インストール済みであること。
http://www.python.org/download/

1.SDKのダウンロード(http://code.google.com/intl/ja/appengine/downloads.html)

2.ダウンロードしたmsiファイルでインストール

完了。

freebsdで、youtubeのファイルをダウンロードするports youtube_dlが便利

FreeBSDのportsの

/usr/ports/www/youtube_dl

を使うと、youtubeのflvファイルをダウンロードできる。
ffmpegと組み合わせて、プレイリストのファイルをダウンロードしたり。

#!/usr/local/bin/ruby
$KCODE=”u”
require ‘rubygems’
require ‘hpricot’
require ‘open-uri’
plist = ARGV[0].scan(/p=(\w*)/).first.first
s = open “http://www.youtube.com/view_play_list?p=#{plist}”
doc = Hpricot s.read
YOUTUBE_ADDR = “http://www.youtube.com”
i = ARGV[1].to_i || 1
doc.search(“a.video-thumb-120″).each do |l|
addr = l.to_html.scan(/href=”([^"&]*).*”/)
title = l.to_html.scan(/img title=”([^"]*).*”/).first.first.gsub(” “,””).gsub(“/”,”-”)
downaddr = YOUTUBE_ADDR + addr.first.first
filename = “#{Time.now.strftime(“%Y%m%d”) + ‘_’ + sprintf(“%04d”,i) + ‘_’ + title}”
`/usr/local/bin/youtube-dl -o #{filename}.flv #{downaddr}`
`/usr/local/bin/ffmpeg -i #{filename}.flv -acodec copy #{filename}.mp3`
i += 1
end

checkstyleで特定のフォルダ以下のファイルをチェック対象外にする方法

eclipseでcheckstyleを使うときのメモ
いまさらながら、つい忘れてしまうので。特定のフォルダを無視する方法。
プロジェクトを選択→右クリックして出てくるメニューの設定から、checkstyleを選択して、以下の設定をする。

Androidでデータの読み書きをするときに一番早いのはSQLiteを使うことだよ

結論はタイトルどおりです。
実際にコードを書いて
1.ObjectInputStream/ObjectOutputStreamを使う
2.BufferdReaderで読み込み,XmlPullParserで解析/XmlSerializerでXML化し、BufferedWriterで書き込み
3.SQLiteを使って読み込み/書き込み
で時間を測って見たところ、読み込み、書き込みともにSQLiteを使うのが一番早かったです。
特に、読み込み処理での早さは群を抜いてました。
以下、結果です。
1000バイトのテキストデータを持つオブジェクトを50件処理した時間(ms) 1 2 3 4 5 平均 writeObject 510 341 353 360 451 403 writeXML 612 504 536 523 523 539.6 writeSQLite 553 290 283 304 318 349.6 readObject 423 314 317 208 309 314.2 readXML [...]

Android用TumblrクライアントTumblryaをリリースしました

ダッシュボードを見ながら、ReblogとLikeの追加ができます。
バックグラウンドである程度先読みを行いますので、快適にTumblrできます。
Android用マーケットで「Tumblrya」で検索してダウンロードできます。無料です。
ぜひぜひ、ご利用ください。

AndroidからTumblrのdashboardを見るためのアプリ、Tumblryaをリリースしました

Android端末からTumblrを利用することができます。

AndroLibの紹介ページはこちら
まだまだ粗削りですが、
どんどんバージョンアップ予定なので、よろしくおねがいします。