Django-nonrelを使おう
皆様におなじみのGoogle App EngineでDjangoを使うためのツール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の中身をコピーします。その後最後三行に当たるシンボリックリンクを作成します。作成の仕方は以下のとおりです。
Windows7とVistaの場合
cd yourproject mklink /D djangoappengine ..\djangoappengine mklink /D djangotoolbox ..\djangotoolbox\djangotoolbox mklink /D django ..\django-nonrel\django
cd yourproject ln -s ../djangoappengine ln -s ../djangotoolbox/djangotoolbox ln -s ../django-nonrel/django
そしてyourprojectフォルダでWebサーバを起動すれば出来上がりです。
./manage.py runserver
二分間で始めるHobo
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)