入門自然言語処理読書のためにwindows7環境でNLTKが使えるようにする

Pythonを導入

本がバージョン2.4〜2.7を推奨しているので3系はやめておく。
http://www.python.org/download/
から
Python 2.7.1 Windows Installer
をダウンロードしてインストール

PyYAMLを導入

http://pyyaml.org/wiki/PyYAML
から
http://pyyaml.org/download/pyyaml/PyYAML-3.09.win32-py2.7.exe (for Python 2.7)
をダウンロードしてインストール

NLTKを導入

http://www.nltk.org/download
から
NLTK: http://nltk.googlecode.com/files/nltk-2.0b9.win32.msi, http://nltk.googlecode.com/files/nltk-2.0b9.win32.exe
をダウンロードしてインストール


NLTKのページにグラフ描画ライブラリとかのダウンロード先が書いてある

Ktai Libraryの手動インストール

CakePHPで携帯対応するためのKtai Libraryのインストール方法

ファイルの配置

以下のファイルをコピー

app/config/ktai_session.php
app/controllers/components/ktai.php
app/controllers/ktai_session.php
app/controllers/ktaipages_controller.php
app/ktai_app_controller.php
app/views/helpers/ktai.php
app/views/ktaipages
vendors/ecw <= なぜかapp/vendorsでは動かない

routes.phpの書き換え

一番上に
Router::connectNamed(array(), array('argSeparator' => '~'));
をかく


以上

CentOSにWebDAV+Subversion

webdavの導入

apacheは入ってるものとする

yum install mod_dav_svn

apacheの設定

/etc/httpd/conf.d/subversion.confを編集
/var/svnリポジトリを公開したい

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<VirtualHost *:80>
        ServerName example.com
        DocumentRoot /var/svn
        <Location />
                DAV svn
                SVNParentPath /var/svn

                AuthType Digest
                AuthName "svn repositories"
                AuthUserFile /var/svn/conf/svn_digest
                Require valid-user
        </Location>

        ErrorLog /var/log/httpd/example.com/error_log
        CustomLog /var/log/httpd/example.com/access_log combined
</VirtualHost>

ユーザの追加

htdigest svn_digest "svn repositories" toyoshi

最初にファイルがないときは-cオプションをつける。すでにファイルがあるのに-cをつけると既存のファイルが削除されるので注意

追記

上記の設定だと、301リダイレクトがかかりリポジトリのルートにtortoisesvnからアクセスができなかった。DocumentRootとLocationを同じ領域にしているのが駄目らしい

メタプログラミングRuby 第3章水曜日 ブロック

  • Kernel#block_given?()メソッドでブロックの有無を確認できる
  • プログラムが新しいスコープをオープンする場所は3つ
    • クラス定義(class)
    • モジュール定義(module)
    • メソッド呼び出し(def)
  • こういうのをスコープゲートという
  • classをClass.newにするとスコープゲートがなくなる。これを入れ子構造のレキシカルスコープとかスコープのフラット化という
irb(main):009:0* name = 'chunky Bacon'
=> "chunky Bacon"
irb(main):010:0> Class.new do
irb(main):011:1* p name
irb(main):012:1> end
"chunky Bacon" #<= ベーコンがある
=> #<Class:0x2ae87aeb1a58>
irb(main):013:0> class MyClass
irb(main):014:1> p name
irb(main):015:1> end
"MyClass"
=> nil #<= ベーコンがない
  • instance_evalでカプセル化を破壊できる(コンテキスト探査機とよばれる)
  • ブロックは引数に&をつけることで名前つきで受け取れる
  • Procをブロックに戻すこともできる
  • Procとlambdaは別物
    • returnが違う(lambdaはlambdaからもどる、Procは定義されたスコープから戻る)
    • Procのほうが引数に寛容
  • とりあえず迷ったらlambdaを使っておけ
  • Object#method()でメソッドをオブジェクトとして取得でき、あとでcallで呼び出せる
  • Method#unbind()でオブジェクトからメソッドを引き離せる
  • bind()で戻せる

以上、さあRuby東海 第16回勉強会にいこう

FirefoxからChromeに乗り換えて入れた拡張まとめ(ウェブ開発者向け)

スクリーンショットをとりたい

Pixlr Grabber - Screen capture/image grabbing - Google Chrome extension gallery
全体のスクリーンショットをとるときが少し遅いが、いくつか入れた中ではこれが一番シンプルで軽快だった。

Firebug

Firebug for chromeもありますが、デベロッパーツールという名前で同等の機能が標準装備です。

Web developerが使いたい

Web Developer - Google Chrome 拡張機能ギャラリー
「キャッシュのOFF」が見当たらないが、ほかにもあるWeb Developerのような拡張の中でこれが一番Firefoxのものに近かった

マウスジェスチャーが使いたい

Smooth Gestures
Firefoxでは赤い線がでるやつを使っていたが、これも同じ赤い線が出る

見ているページのリンクを作りたい

Create Link - Google Chrome 拡張機能ギャラリー
ボタンを押すだけで今みているページへのHTML形式やWiki形式でのリンクタグを作ってくれる。カスタマイズもできるのではてなな人は
[%url%:title=%text%]
というのを追加すればよい

見ているページの検索エンジンでのインデックス数、バックリンク数が見たい

Chrome SEO - Google Chrome 拡張機能ギャラリー
Yahoo.comのがみれるのがうれしい

Gmailに簡単にアクセスしたい

Google Mail Checker - Google Chrome 拡張機能ギャラリー
IDとパスワードは記憶してくれない模様

カラーピッカー(ページからもいろがとれる)

Eye Dropper - Google Chrome 拡張機能ギャラリー

まとめ

Chromeは再起動なしで拡張をいれられる。再起動なしってのがどれぐらい気持ちいいかとりあえず試してみてほしい。
僕はまだChrome乗り換え1日目なのでほかにもあれば教えてください

追記

Ruby on Rails Tutorial: Learn Rails by Example | Ruby on Rails 3 Tutorial book and screencasts | Static Pages

今日もつづき。静的ページについて

あたしくプロジェクトを作る

$ cd ~/rails_projects
$ rails new sample_app -T
$ cd sample_app

TオプションはTest::Unitを省くという意味

Gemfileを変更rspecが入るように

source 'http://rubygems.org'

gem 'rails', '3.0.3'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

group :development do
  gem 'rspec-rails', '2.3.0'
end

group :test do
  gem 'rspec', '2.3.0'
  gem 'webrat', '0.7.1'
end

gemをいれてrspecの初期化を行う。
ここからまたgitでリポジトリをつくり、githubに登録して、herokuでデプロイまでやる
このへんをしつこくユーザにやらせて身に付かせるって姿勢がこのチュートリアルのすごいところ

$ bundle install
$ rails generate rspec:install
$ git init
$ git add .
$ git commit -m "Initial commit"

Static pages

/にアクセスしてでるページはpublic/index.htmlにあるよ
public以下には普通にhtmlを置けるよという話
でもそれではいけてないのでRailsっぽくやるとこうなる

$ git checkout -b static-pages
$ rails generate controller Pages home contact

これで/pages/homeと/pages/contactで静的っぽいページが表示される

Our first tests

便利なAutotestをつかってテストをしようという話。
macの人はgrowlとかと連携できて便利らしい

$ [sudo] gem install autotest -v 4.4.6
$ [sudo] gem install autotest-rails-pure -v 4.1.2

さっきのpagesコントローラーのテストは自動でできているので
コマンドを実行するだけでとりあえず2つのテストが実行され、2つとも通る

$ rspec spec/
....

Finished in 0.07252 seconds

2 examples, 0 failures

3章はながい。今日はここまで