windows7にOpenCV2.1をインストール
ダウンロード:http://sourceforge.net/projects/opencvlibrary/
2.0での苦労はなんだったのか、今度はexeファイルでポチっと一発。
あとはvisual studioのパスを変更するだけ。
GLUTのインストール
- GLUT for Win32をダウンロードNate Robins - OpenGL - GLUT for Win32
- 解凍して出てきたファイルを移動
glut.lib→C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib glut.h →C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl glut.dll→C:\WINDOWS\system32
- GLUTを使うときはプロジェクトに対して以下を実行
[プロジェクト]メニューの[プロパティ]を選択します。 左側のエリアの[構成プロパティ]→[リンカ]→[入力]を選択します。 右側のエリアの[追加の依存ファイル]に先ほどのOpenGLで必要なライブラリファイルopengl32.libと glu32.libを入力します。
windows7にOpenCV2.0をインストール
- http://sourceforge.net/projects/opencvlibraryでOpenCV-2.0.0a-win.exeをダウンロード
- インストールを実行し、インストールオプションで以下を選択
Add OpenCV to the system PATH for all users
※Do not add OpenCV to the system PATHでも後から設定すれば可?
C:\OpenCV2.0\lib\Debug C:\OpenCV2.0\lib\Release
- 環境変数の設定
;C:\OpenCV2.0\bin\Debug;C:\OpenCV2.0\bin\Release
- ライブラリのコピー
「ローカルディスク C:」→「OpenCV2.0」→「bin」→「Debug」 その中にある すべての DLLファイル(cv200d.dll、cvaux200d.dll、cxcore200d.dll、 cxts200d.dll、 highgui200d.dll、ml200d.dll、opencv_ffmpeg200d.dll) を選択して、一つ上の階層の「bin」フォルダの中へコピーします。
同様のことをReleaseフォルダに関しても行う
route.rbでscaffoldして作ったアクションを整理する
他にもroute.rbでの試行錯誤メモ
アクションの整理
・必要なアクションだけを使えるようにする
map.resources :hoges, :only => ['create','show'] #create,showだけ使える
・不要なアクションを指定し、それ以外を使えるようにする
map.resources :hoges, :except => ['create','show'] #create,show以外はすべて使える
新しいアクションを定義する
・idに依存しない
map.resources :hoges, :collection => [:hoge] #URLは"hoges/hoge"
・idに依存する
map.resources :hoges, :member => [:hoge] #URLは"hoges/:id/hoge"
・HTTPメソッドを指定して、アクションを定義
map.resources :hoges, :collection => {:hoge => :post} #:get,:post,:put,:delete,:anyが指定可
失敗例
実際にやらかした失敗を列挙
1.アクション定義でmap.resourceを何度も記述
例えばhoge1,hoge2,hoge3をアクションとして定義する時、以下のように記述していた。
map.resources :hoges, :collection => [:hoge1] map.resources :hoges, :collection => [:hoge2] map.resources :hoges, :member => [:hoge3]
このとき
$ rake routes
で確認してみると、hoge1,hoge2,hoge3に関してはルートが1回ずつ定義されているが、その他のindex,showなどのscaffold時に作成したアクションは3回ずつ定義されていて大変見辛い。機能的には問題ないかもしれないが。
よって以下のように変更
map.resources :hoges, :collection => [:hoge1, :hoge2], :member => {:hoge3 => :post}
2.:only, :exceptを使うときに、1と同じミス
先程と同じように何度もmap.resourceを用いたせいで:only,:exceptが機能しなかった。
map.resources :hoges, :collection => [:hoge1] map.resources :hoges, :only => [:hoge1, :index]
本来であればhoge1とindexしか呼び出せないはずだが、これはすべて呼び出せてしまう。なぜなら:onlyのときは確かにhoge1とindexにだけルートを作っているが、:collectionの時にすべてのアクションに関してルートを1度作ってしまっているからである。
よって以下のように変更
map.resources :hoges, :collection => [:hoge1], :only => [:hoge1, :index]
書き方がわかってなかっただけだった。
次回同じくroute.rbのmap.connectについて勉強
emacsをrails用にカスタマイズ
rinariは使ってたけど、他にもいろいろ便利そうな機能があったので、拡張。
- rhtml-Mode
- elscreen-tab
- snippet
- line-number
このあたりを導入。
使用しているテーマの背景が黒いため、rhtml-Modeのハイライトが非常に見にくい。
なのでrhtml-fonts.elの
(defface erb-face '((((class color) (min-colors 88) (background dark)) :background "black")
:backgroundをblackに変更。
ハイライトは消えるがrubyブロックの始まりと終わり(<%, %>)はハイライトされているので問題ない。
あとはelscreen-tabがものすごい便利だが、もっとタブの移動を簡略化したかったのでelscreen.elのキーマッピングの部分を以下のように変更
次のタブ:C-z C-n → C-z >
前のタブ:C-z C-p → C-z <
しかし機能しなかった。もしかして.emacsの方で再定義しないとダメ?
でも設定ファイルを書き換えても前のキーマッピングが機能するってどういうことよ?
ちなみに設定した.emacsファイルの内容
;; タブキー (setq default-tab-width 2) (setq indent-line-function 'indent-relative-maybe) ;; シフト + 矢印で範囲選択 (setq pc-select-selection-keys-only t) (pc-selection-mode 1) ;; ウィンドウ設定 ;;(set-background-color "Black") ;;(set-foreground-color "White") ;;(set-cursor-color "Gray") (when (eq window-system 'mac) (add-hook 'window-setup-hook (lambda () (setq mac-autohide-menubar-on-maximize t) (set-frame-parameter nil 'fullscreen 'fullboth) ))) (defun mac-toggle-max-window () (interactive) (if (frame-parameter nil 'fullscreen) (set-frame-parameter nil 'fullscreen nil) (set-frame-parameter nil 'fullscreen 'fullboth))) ;;; 対応する括弧を光らせる。 (show-paren-mode 1) ;;;バックアップファイルを作らない (setq make-backup-files nil) ;;;カーソル行番号表示 (setq line-number-mode t) ;; ウィンドウを透明化 (add-to-list 'default-frame-alist '(alpha . (0.80 0.80))) ;; スタートアップページを表示しない (setq inhibit-startup-message t) ;; タイトルバーにファイル名を表示する (setq frame-title-format "%b") ;; バッファを切り替え補完 (iswitchb-mode 1) ;;; minibuf-isearch ;;; ミニバッファの履歴をC-rでインクリメンタルサーチ (require 'minibuf-isearch) ;;trampのパスを設定 (add-to-list 'load-path "~/emacs/tramp/lisp/") (require 'tramp) (put 'dired-find-alternate-file 'disabled nil) ;;; theme-monokai (custom-set-faces '(default *1 (:foreground "#75715E")))) '(font-lock-function-name-face ((((class color) (min-colors 88) (background dark)) (:foreground "#A6E22E")))) '(font-lock-keyword-face ((((class color) (min-colors 88) (background dark)) (:foreground "#F92672")))) '(font-lock-preprocessor-face *2 (:foreground "#E6DB74")))) '(font-lock-type-face ((((class color) (min-colors 88) (background dark)) (:foreground "#66d9ef")))) '(font-lock-variable-name-face ((((class color) (min-colors 88) (background dark)) (:foreground "#FD971F")))) '(region ((((class color) (min-colors 88) (background dark)) (:background "#49483E")))) '(show-paren-match ((((class color) (background dark)) (:background "#3E3D32")))) '(variable-pitch *3 ;; yasnippetのロード (require 'yasnippet) (yas/initialize) (yas/load-directory "/Applications/Emacs.app/Contents/Resources/lisp/yasnippets-rails/rails-snippets") ;;; line-number (require 'linum) (global-linum-mode t) (setq linum-format "%5d") ;;; elscreen (require 'elscreen "ELSCREEN" t) (require 'elscreen-tab) ;;; css-mode (autoload 'css-mode "css-mode" nil t) (setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist)) (setq css-indent-level 2)
http://apple-tart.net/dokuwiki/doku.php?id=development_tool:emacs:plugins
*1:t (:stipple nil :background "#000000" :foreground "#F8F8F2" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width normal :family "outline-consolas")))) '(cursor ((t (:background "#F8F8F2" :Foreground "#272822")))) '(font-lock-comment-face ((((class color) (min-colors 88) (background dark
*2:t (:inherit font-lock-builtin-face :foreground "#66d9ef")))) '(font-lock-string-face ((((class color) (min-colors 88) (background dark
*3:t (:family "DejaVu Sans"))))) ;;rinari ;; Interactively Do Things (highly recommended, but not strictly required) (require 'ido) (ido-mode t) ;; Rinari (add-to-list 'load-path "/Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/rinari/") (require 'rinari) ;;; rhtml-mode (add-to-list 'load-path "/Applications/Emacs.app/Contents/Resources/lisp/rhtml") (require 'rhtml-mode) (add-hook 'rhtml-mode-hook (lambda () (rinari-launch))) ;; load-pathにyasnippetのパスを通す (setq load-path (cons (expand-file-name "/Applications/Emacs.app/Contents/Resources/lisp/yasnippet") load-path