[スライド][NLP] 形態素解析の過去・現在・未来 [自然言語処理]

 

自然言語処理の「形態素解析の過去・現在・未来」という良いスライド資料があったのでメモ。
 

・著者:Yuya Unno (unnonouno) はてなブックマーク - Yuya Unno (unnonouno) は Twitter を利用しています
 

 

[PHP][JavaScript] urlencode と encodeURI でのエンコードと文字化け問題

 

PHP と JavaScript でエンコードするタイミングによりIEで文字化け問題が発生しました。
 

解決方法としては、PHP側でエンコードしてJavaScript側に渡さないようにして、PHP側からはそのまま値を渡してJavaScript側でエンコードすればOKでした。
 

■ 文字化け問題が発生するパターン
 

[PHP]

コントローラで urlencode して、テンプレートに出力する。

1
2
$url = urlencode('http://example.com/?p=2&keyword=テスト');
$smarty->assign('url', $url);


 

[HTML]

1
<a href="javascript:formsubmitt('http://example.com/?p=2&keyword=%E3%83%86%E3%82%B9%E3%83%88');">次へ</a>


 

[JavaScript]

1
2
3
4
function formsubmitt (action_url) {
    form.action = action_url;
    form.submit();
}

 

■ IEでも正常に処理できるパターン
 

[PHP]

コントローラでエンコードせずに、そのままテンプレートに渡す。

1
2
$url = 'http://example.com/?p=2&keyword=テスト';
$smarty->assign('url', $url);


 

[HTML]

1
<a href="javascript:formsubmitt('http://example.com/?p=2&keyword=テスト');">次へ</a>


 

[JavaScript]

1
2
3
4
function formsubmitt (action_url) {
    form.action = encodeURI(action_url);
    form.submit();
}

 

以上です。
 

【参考】

javascript: escape(), encodeURI(), encodeURIComponent() 比較 (groundwalker.com) はてなブックマーク - javascript: escape(), encodeURI(), encodeURIComponent() 比較 (groundwalker.com)

URL(URI)エンコード・デコードを行う – JavaScript TIPSふぁくとりー はてなブックマーク - URL(URI)エンコード・デコードを行う - JavaScript TIPSふぁくとりー

PHP: urlencode – Manual はてなブックマーク - PHP: urlencode - Manual
 

[Ruby] RVM の Ruby のバージョンをデフォルトで使うための設定方法

RVM の Ruby のバージョンをデフォルトで使うための設定をしました。

Macに最初からインストールされているRubyのバージョンは 1.8.7 です。

$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]

rvmで別途、Rubyのバージョン 1.9.2 をインストールしているのですが、ターミナルを立ち上げる度に rvm use コマンドを実行するのも面倒です。

rvm use コマンドに –default オプションを付けて実行すれば、次からはデフォルトで指定したRubyのバージョンが使える状態になります。

$ rvm use 1.9.2 --default
Using /Users/codenote_mac/.rvm/gems/ruby-1.9.2-p290

以上です。
 

【参考】

RVMのRubyをデフォルトで使用したい – @sugamasao.blog.title # => ”コードで世界を変えたい”

[Oracle] 連番の自動取得方法

 

Oracle データベースにて、連番の自動採番方法を調べたのでメモ。
 

Oracle の場合、MySQL のようにカラムの属性の指定によって一意な番号を自動採番することができないみたいです。
 

代わりに、順序(SEQUENCE)オブジェクトを使用します。シーケンスオブジェクトの作成は以下の通りです。
 

1
CREATE SEQUENCE ID_SEQ;

 

シーケンスから一意な番号を取得するにはNEXTVAL擬似列を使用します。
 

1
SELECT ID_SEQ.NEXTVAL FROM DUAL;

 

また、現在の番号を取得するにはCURRVAL擬似列を使用します。
 

1
SELECT ID_SEQ.CURRVAL FROM DUAL;

 

以上です。
 

【参考】

連番の自動採番方法|Archive Redo Blog はてなブックマーク - 連番の自動採番方法|Archive Redo Blog

スキーマ – オラクル・Oracleをマスターするための基本と仕組み はてなブックマーク - スキーマ - オラクル・Oracleをマスターするための基本と仕組み
 

JavaScript と jQuery で form (フォーム) の action (アクション) を変更する方法

JavaScript と jQuery で form の action を変更する方法をそれぞれご紹介します。

JavaScript

続きを読む

[JavaScript][jQuery] DOM Elementを取得する方法

 

jQueryで DOM Elementを取得する方法を調べたのでメモ。
 

以下のJavaScriptコードとjQueryコードは同じ結果を返します。
 

■ JavaScript

1
document.getElementById('contents');

■ jQuery

1
jQuery('#contents').get(0);

 

以上です。
 

【参考】

jQueryからDOM Elementを取得 – ゆっくり*ゆっくり はてなブックマーク - jQueryからDOM Elementを取得 - ゆっくり*ゆっくり
 

[ZF] Zend_Db_Select でFROM句/WHERE句に副問合せ(subquery)

 

Zend Framework の Zend_Db_Select でFROM句/WHERE句に副問合せ(subquery)する方法を調べたのでメモ。
 

以下のサイトを参考にしました。
 

U2Kの覚え書き  Zend_Db_Select でFROM句に副問合せ(subquery) はてなブックマーク - U2Kの覚え書き  Zend_Db_Select でFROM句に副問合せ(subquery)

U2Kの覚え書き  Zend_Db_Select でWHERE句に副問合せ(subquery) はてなブックマーク - U2Kの覚え書き  Zend_Db_Select でWHERE句に副問合せ(subquery)

サブクエリをZendのDBを使用して作成 はてなブックマーク - サブクエリをZendのDBを使用して作成
 

Facebook API の調査や質問をするなら「Facebook Stack Overflow」がおすすめ

 

Facebook API の調べ物や質問をするなら「Facebook Stack Overflow」を使うのがおすすめです。
 

Facebook Stack Overflow はてなブックマーク - Facebook Stack Overflow
 

Facebook は API の仕様変更が多いので、日本語の情報があっても古い情報ということよくあります。
 

なので、英語が少しでも読めるなら「Facebook Stack Overflow」で検索や質問をすると、結構かんたんに問題解決できるので良いですよ。
 

Heroku + Rails の認証付きステージング(staging)環境を構築する方法

Heroku + Rails の認証付きステージング環境を構築する方法を調べて、実践したのでメモ。

Herokuはデータベースが5MB以下であれば無料でWebアプリケーションを運営できるので、本番環境に反映する前のテスト用としてステージング環境を構築しておくと便利です。

ローカル環境では問題なくても、Herokuの本番環境ではちゃんと動作しない場合があるので、ステージング環境でテストしてから本番環境に反映した方が良さそうです。
 

ステージング用Herokuアプリの追加

$ heroku create myapp-staging --stack cedar --remote staging

–remote stagingで、リモートリポジトリ名を”staging”としています。
 

設定ファイル staging.rb の作成・編集

production用の設定ファイルをステージング環境用にコピーします。

$ cp config/environments/production.rb config/environments/staging.rb

 

ステージング環境では、開発用に下記のように変更します。

■ config/environments/staging.rb

# Full error reports are disabled and caching is turned on
config.consider_all_requests_local       = true
config.action_controller.perform_caching = false

 

Herokuの環境変数 RACK_ENV/RAILS_ENV の変更

Herokuの環境変数 RACK_ENV は、デフォルトが”production”になっているので、”staging”に変更します。

heroku config:add RACK_ENV=staging --app myapp-staging

Rails3.1系を使うために Cedarスタックを使ってる場合は RAILS_ENV を変更します。

heroku config:add RAILS_ENV=staging --app myapp-staging

 

ステージング用アプリをHerokuにデプロイ

$ git commit -am 'create staging enviroment'
$ git push staging master

 

データベースのマイグレーション

$ heroku rake db:migrate --app myapp-staging

本番環境のマイグレーションではアプリケーション名の指定はしてませんでしたが、リモートリポジトリが2個以上になったら指定する必要が出てきます。

なので、Herokuコマンドを実行するときは、本番環境は”–app myapp”、ステージング環境は”–app myapp-staging”を指定する必要があります。
 

Basic認証の実装

app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
 
  before_filter :password_protected if Rails.env.staging?
 
  protected
 
  def password_protected
    authenticate_or_request_with_http_basic do |username, password|
      username == "spam" && password == "spam_pw"
    end
  end
 
end

実行環境が”staging”の時のみ、認証がかかるようになります。(ユーザ名:spam、パスワード:spam_pw)

以上です。
 

【参考】

Herokuで認証付きのステージング環境を構築する – exdesign はてなブックマーク - Herokuで認証付きのステージング環境を構築する - exdesign

Herokuでステージング環境を作る – アインシュタインの電話番号☎ はてなブックマーク - Herokuでステージング環境を作る - アインシュタインの電話番号☎

Herokuで作るFacebookアプリ:第7回 Herokuをもっと活用しよう!|gihyo.jp … 技術評論社 はてなブックマーク - Herokuで作るFacebookアプリ:第7回 Herokuをもっと活用しよう!|gihyo.jp … 技術評論社

Heroku で複数の環境( production, staging など)を使い分けたいときー – LazyLoadLife はてなブックマーク - Heroku で複数の環境( production, staging など)を使い分けたいときー - LazyLoadLife
 

Facebook開発者、必見のサポートサイト「fb.developers’+」

 

Facebook開発者、必見のサポートサイト「fb.developers’+」がオープンされました。
 

英語が苦手な開発者にも日本語の情報なので嬉しいですね。
 

Facebook開発者の為のサポートサイト | fb.developers’+ はてなブックマーク - Facebook開発者の為のサポートサイト | fb.developers'+