windows7にOpenCV2.1をインストール

ダウンロード:http://sourceforge.net/projects/opencvlibrary/
2.0での苦労はなんだったのか、今度はexeファイルでポチっと一発。
あとはvisual studioのパスを変更するだけ。

参考サイトOpenCV2.1の入手、ダウンロード、インストール、環境設定 画像処理ソリューション

GLUTのインストール

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をインストール

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について勉強



参考サイト:2.0のmap.resourcesのオプション設定いろいろ - ザリガニが見ていた...。

SSHでRSA公開鍵暗号による認証

今回はRSA秘密鍵と公開鍵を作成した。

$ ssh-keygen -t rsa
$ ssh-keygen -b 1024 -t rsa

上はrsaで普通に作成。下は1024bitで作成。一応1024bitが規格っぽいのでそうしたほうが良い?
作成後保存場所と文章を聞かれる。これを入力すれば~/.sshにid_rsa.pubが作成される。
こいつをサーバー側に置いておく。

http://www.ph15.net/tips.php?id=02#mac

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