Eclipseでhtmlとcssファイルのコンテンツ・タイプを指定する方法(Playframeworkの場合)
Eclipseで開発している場合に、"UTF-8"で開発したいのに"shift-jis"に
なったりして文字化けする問題の対応策の一つです。
この問題は、Eclipseが『内容から判別する』で
ファイルのコンテンツ・タイプを勝手に判別するのが原因です。
対策として、下記のおまじないをファイルの先頭に追加して
判別させます。
htmlの場合、metaタグを入れてEclipseには"UTF-8"と判別させ、
テンプレートエンジンのコメントタグを使用し、影響がないようにします。
*{<meta charset="UTF-8"/>}*
cssの場合は普通ですね。
@charset "utf-8";
他のフレームワークでも使用できる場合が
あるので試してみてください。
Ubuntu11.10にMySQL Workbenchをインストール
Ubuntu11.10にMySQL Workbenchをインストールしようと思ったのだが、
今現在で11.04対応しかしてないようで…
http://bugs.mysql.com/bug.php?id=62347
どうやら誰かがバッチ版を提供してくれているようで
インストール方法を記載しときます。
$ sudo add-apt-repository ppa:olivier-berten/misc $ sudo apt-get update $ sudo apt-get install mysql-workbench-gpl
au版xoomに米版ファームウェアを入れてICSを使ってみる(Ubuntu11.10)
米版xoomにICSがきたようなので、
au版xoomに米版ファームウェアを入れてICSを使ってます。
※ファームウェアーを書き換えると保証が受けれなくなる可能性があります。自己責任でお願いします。
- ICSになって動作が良くなりました。デフォルトのブラウザも描画が速い
- YouTubeの動画も快適に見ることができます。
- 日本語ではなく英語。(日本語化の方法はまだ)
- simejiとかATOKとか入れると日本語入力できます。
- フォントが中華フォント
- フォントがカッコ悪いと思う。
以外は使った感じ問題は起きていません。
ubuntuとxoomを接続する。
WindwosXPではUSBドライバが提供されているので接続は簡単ですが
今回は、Ubuntuで接続するためひと工夫必要です。
管理者権限で、
/etc/udev/rules.d/51-android.rules
を作ります。
51-android.rulesに
SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
もしくは、
SUBSYSTEM=="usb_device", SYSFS{idVendor}=="22b8", MODE="0666"
を追加します。
権限を変更して、udevをリブートします
$ chmod a+r /etc/udev/rules.d/51-android.rules $ sudo restart udev
接続されているか確認するために、adbでつないでみます。
$ ./adb shell #
xoomのファームウェア書き換え
http://forum.xda-developers.com/showthread.php?t=1084537
を参考にしてください。
書き換えるためのファームウェアは
http://developer.motorola.com/products/software/
からBuild HWI69 for US Retailをダウンロードする。
(ユーザ登録等必要です。)
解凍して適当に配置します。
xoomをUbuntuに接続して、
$ ./adb reboot bootloader
Starting Fastboot protocol support.」の文字が表示されます。
$ sudo fastboot oem unlock
xoom側でunlockについて二回確認されるので、Yesにします。
再起動されるまで待ちます。
初期化されているので適当に入力して、
設定画面でUSBデバックを有効にします。
xoomとUbuntuが接続されているのを確認して、
以下のコマンドを実行します。
$ ./adb reboot bootloader $ sudo fastboot flash boot boot.img $ sudo fastboot flash system system.img $ sudo fastboot flash recovery recovery.img $ sudo fastboot flash userdata userdata.img $ sudo fastboot erase cache $ sudo fastboot oem lock
xoom側でlockについて二回確認されるので、Yesにします。
再起動されるまで待ちます。
xoom再起動後に再セットアップして、
ファームウェアのアップデートが何回か来ます。(自分は5回)
ブート画面がハニカムからICSに変わったら終了です。
scalaとJavaからMeCabを食べてみよう
MeCabを使ってみよう
http://shiganaiman.hatenablog.com/entry/2012/01/23/151102
MeCabは使えるようになったので、今度はscalaから使ってみる。
scala→Java→MeCabとすれば楽勝ということでやってみる。
javaでMeCabを食べる
EclipseからMecab.jarをBuildパスに追加して、
import org.chasen.mecab.Tagger; public class TestJavaMecab { public static void main(String[] argv) { Tagger tagger = new Tagger("-Ochasen"); System.out.println(tagger.parse("すももももももももものうち.")); } }
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.chasen.mecab.MeCabJNI.new_Tagger__SWIG_0(Ljava/lang/String;)J at org.chasen.mecab.MeCabJNI.new_Tagger__SWIG_0(Native Method) at org.chasen.mecab.Tagger.<init>(Tagger.java:124) at TestJavaMecab.main(TestJavaMecab.java:6)
java.lang.UnsatisfiedLinkErrorを調べると、
Java Virtual Machine が、native と宣言されたメソッドの適切なネイティブ言語の定義を見つけることができない場合にスローされます。
どうやら、JNIが定義を見つけられてないようだ。
http://code.google.com/p/mecab/
からスクリプトバインディングのソースをダウンロードしてtest.javaに
サンプルコードが入っているらしいので試してみる。
$ wget http://mecab.googlecode.com/files/mecab-java-0.98.tar.gz $ tar xzvf mecab-java-0.98.tar.gz
test.javaをコピーして動かしてみる。
import org.chasen.mecab.MeCab; import org.chasen.mecab.Tagger; import org.chasen.mecab.Node; public class test { static { try { System.loadLibrary("MeCab"); } catch (UnsatisfiedLinkError e) { System.err.println("Cannot load the example native code.\nMake sure your LD_LIBRARY_PATH contains \'.\'\n" + e); System.exit(1); } } public static void main(String[] argv) { System.out.println(MeCab.VERSION); Tagger tagger = new Tagger(); String str = "太郎は二郎にこの本を渡した。"; System.out.println(tagger.parse(str)); Node node = tagger.parseToNode(str); for (;node != null; node = node.getNext()) { System.out.println(node.getSurface() + "\t" + node.getFeature()); } System.out.println ("EOS\n"); } } 結果 0.98 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ 二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー に 助詞,格助詞,一般,*,*,*,に,ニ,ニ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,* EOS
scalaでMecabを食べる
import org.chasen.mecab.Tagger import org.chasen.mecab.MeCab object TestScalaMecab extends App { override def main(args: Array[String]) { System.loadLibrary("MeCab"); var tagger = new Tagger() var str = "太郎は二郎にこの本を渡した。"; println(tagger.parse(str)); var node = tagger.parseToNode(str); while(node != null){ println(node.getSurface() + "\t" + node.getFeature()); node = node.getNext(); } } } 結果 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ 二郎 名詞,固有名詞,人名,名,*,*,二郎,ジロウ,ジロー に 助詞,格助詞,一般,*,*,*,に,ニ,ニ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,*
ごちそうさまでした。
Ubuntu11.10でjavaを切り替える
Ubuntuで複数バージョンのJavaを切り替える方法です。
Ubuntuはlaternativeシステムというのがあって
同じ機能をもつ複数のプログラムを一つのシステムに
インストールして切り替えることができるらしい。
Ubuntu の alternative システム
http://masaoo.blogspot.com/2009/07/ubuntu-alternative.html
$ sudo update-alternatives --config java
$ java -version java version "1.6.0_23" OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre11-0ubuntu1.11.10.1) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) $ which java /usr/bin/java $ ll /usr/bin/java lrwxrwxrwx 1 root root 22 2012-01-30 12:52 /usr/bin/java -> /etc/alternatives/java* $ update-java-alternatives -l java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64 $ sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自動モード 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 $ sudo update-alternatives --config java alternative java (/usr/bin/java を提供) には 2 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自動モード 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード * 2 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください:
これで、どこのJavaを使用しているかわかるし、切り替えることができる。
切り替えはもっと簡単に、できるらしい。
$ sudo update-java-alternatives -s java-1.6.0-openjdk
けど、自分の環境でうごかない。
$ update-java-alternatives -l java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk java-1.7.0-openjdk-amd64 1051 /usr/lib/jvm/java-1.7.0-openjdk-amd64 $ sudo update-java-alternatives -s java-1.6.0-openjdk update-alternatives: エラー: -javaplugin.so の alternatives がありません。 update-alternatives: エラー: -javaplugin.so の alternatives がありません。
これについては、また今度に解決しよう。
PythonからMeCabを食べてみよう
MeCabのスクリプト言語のバインディングを使って、PythonからMeCabを
使ってみます。
インストール
MeCabはインストール済みとする。
Ubuntu11.10にMeCabをインストールする
http://shiganaiman.hatenablog.com/entry/2012/01/26/195551
MeCabのバージョンを気にしない場合は、
sudo apt-get install python-mecab
食べる
>>> import sys >>> import MeCab >>> m = MeCab.Tagger("-Ochasen") >>> print m.parse("すもももももももものうち") すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS >>>
ご馳走様