Django-nonrelを使おう

皆様におなじみのGoogle App EngineDjangoを使うためのツールGoogle Code Archive - Long-term storage for Google Code Project Hosting.
今はそのサイトに飛ぶと以下のような注意書きが表示されます。

app-engine-patchはもはやアップデートされてないのであなたはDjango-nonrelを使わなければなりません。

あなたがApp Engineと他のNoSQL/非リレーショナルデータベースでDjangoのORMを使いたいならば、Django-nonrelプロジェクトに加わって、Django-nonrelブログ(それは、Django-nonrelで書かれます)を追ってください。
Django nonrelはApp Engine、MongoDB、SimpleDB、その他の上で走る貴方のコードを認めます、そして、SQLはどんな修正もなしで、同時に貴方はとても沢山の生産的なことを非正規化のような自動化されたNoSQL実行によって作ります!
それは計画です、そして、我々はかなり遠くに来ました(フルテキスト検索さえ、ノンリレーショナル検索です)、しかし、我々は本当に面白い特徴とより多くのバックエンドで援助を必要とするので、我々はDjangoに公式に統合されることができます。

そこでDjango-nonrel - NoSQL support for Django | All Buttons Pressedを使ってみましょう。Google App Engineで使う際にはdjangoappengine - Django App Engine backends (DB, email, etc.) | All Buttons Pressedが参考になります。
まず、Mercurialをインストールし以下のコマンドでファイルをとってきます。

hg clone http://bitbucket.org/wkornewald/django-testapp
hg clone http://bitbucket.org/wkornewald/djangoappengine
hg clone http://bitbucket.org/wkornewald/djangotoolbox
hg clone http://bitbucket.org/wkornewald/django-nonrel

その後ファイル構造が以下のようになるようにします。

  • .../django-nonrel/django
  • .../djangoappengine
  • .../djangotoolbox
  • .../yourproject
  • .../yourproject/djangoappengine -> ../djangoappengine
  • .../yourproject/djangotoolbox -> ../djangotoolbox/djangotoolbox
  • .../yourproject/django -> ../django-nonrel/django

具体的にはまず、yourprojectフォルダを作り、その中にdjango-testappの中身をコピーします。その後最後三行に当たるシンボリックリンクを作成します。作成の仕方は以下のとおりです。
Windows7Vistaの場合

cd yourproject
mklink /D djangoappengine ..\djangoappengine
mklink /D djangotoolbox ..\djangotoolbox\djangotoolbox
mklink /D django ..\django-nonrel\django

LinuxMacの場合

cd yourproject
ln -s ../djangoappengine
ln -s ../djangotoolbox/djangotoolbox
ln -s ../django-nonrel/django

そしてyourprojectフォルダでWebサーバを起動すれば出来上がりです。

./manage.py runserver

二分間で始めるHobo

これはHobo Tutorials - Hobo in Two Minutes超訳です。

Hoboアプリを構築するためにあなたはRails環境を構築する必要があります。
あなたがRailsアプリを作ることができて、それをデーターベースに接続できるなら、準備は完了です。
あなたは少なくともRailsのバージョン2.2を必要とします:

$ rails -v

まずはHoboをインストールします:

$ gem install hobo

今アプリを作成してください!我々が超役に立つ何かのマネージャーを作るのに、私たちはたった二分間を使うだけでした。

$ hobo thingybob

...Lots of output as Hobo runs the rails command,
...installs plugins and runs generators

$ cd thingybob
$ ruby script/generate hobo_model_resource thing name:string body:text
$ ruby script/generate hobo_migration

...Respond to the prompt with 'm'
...then press enter to chose the default filename

$ ruby script/server

そしてブラウザで次のURLを見ると

http://localhost:3000

そしてあなたのアプリが出来ました!あなたは次のことができます

  • サインアップ
  • 何かを作るもしくは編集する
  • 何かを検索する

それそれ。あなたの左でチュートリアルのもう一つをためしませんか。

一部のソフトウェアでキーが入れっぱなしになる一つの原因

ここで取り扱うのはDirectInputを使っているソフト、例えば「東方地霊殿」(「東方風神録」などは除く)やRPGツクール95で作られたゲームなどだ。
これは僕の事例だがBluetoothドライバ、Bluesoleilに入っていたゲームコントローラー用ドライバが悪さをしていた。コントローラーを繋がずとも、Bluesoleilを終了しても、症状は改善しないので原因究明に戸惑ったが、ドライバ削除することで症状は治った。
なお、コントローラーを繋いでいる場合は、コントローラーのキーの閾値が低くて入力が入れっぱなしになることもあるみたい。なお、コントローラーの一覧はコントロールパネルのゲームコントローラーにて。

ARToolkitとOpenCVの相互画像変換

ARUint8 *dataPtr;
IplImage *image_opencv, *gray_opencv;

//ARToolkit→OpenCV
image_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 4);
memcpy(image_opencv->imageData, dataPtr, image_opencv->imageSize);

//何らかの処理
gray_opencv = cvCreateImage(cvSize(arImXsize, arImYsize), IPL_DEPTH_8U, 1);
cvCvtColor(image_opencv, gray_opencv, CV_BGRA2GRAY);
cvAdaptiveThreshold(gray_opencv, gray_opencv, 255, CV_ADAPTIVE_THRESH_MEAN_C, CV_THRESH_BINARY, 11, 10);
cvCvtColor(gray_opencv, image_opencv, CV_GRAY2BGRA);

//OpenCV→ARToolkit
dataPtr = (ARUint8*)(image_opencv->imageData);

クックパッドの検索結果をscrAPI

require 'rubygems'
require 'scrapi'
require 'open-uri'
require 'nkf'
require 'pp'

$KCODE = 'u'

recipeScrape = Scraper.define do
  process "a > img.sphoto", :thum => "@src"
  process "span.recipe-ttl > a", :title => :text, :url =>"@href"
  process "span.author", :author => :text
  process "p.recipe_desc", :desc => :text
  process "p.recipe_material", :material => :text
  process "p.recipe_info", :info => :text
  result :thum, :title, :url, :author, :desc, :material, :info
end

cpsScrape = Scraper.define do
  process "div.recipe_box", "recipes[]" => recipeScrape
  result :recipes
end

html = URI.parse('http://cookpad.com/search/?keyword=%E3%83%90%E3%83%AC%E3%83%B3%E3%82%BF%E3%82%A4%E3%83%B3&l=0')
output =  cpsScrape.scrape(html, :parser_options => { :char_encoding=>'utf8' })

print NKF::nkf("-s", output.pretty_inspect)

2ちゃんねるではてなスター - 実用性

僕だったら、自分が2ちゃん閲覧に使ってるブラウザに対応してなかったら使わない。対応するブラウザが増えたらそこそこ面白いんじゃないかと思うけれど、それはたぶん無理だと思う。
あと2ちゃんねるの仕様に関する問題として、レスが透明あぼーんされてしまうと、レス番がずれて不具合が起こる可能性がある。