ページ

2012年12月17日月曜日

実行しようとしたらエラーが発生。

実行しようとしたらこんなエラーが出た。
Unable to execute dex: Multiple dex files define


どーやらJARファイルも含めて重複しているクラスが居るらしい。
未使用ライブラリーのJARファイルが居たので消してあげたら解決した。

2012年12月9日日曜日

twitter4jで認証出来ない

エミュレータでは問題無く動くのに、実機だとなんか認証出来ない。
こんなエラーが発生していた。
(TwitterAuthTask.java:41) - failed to connect to api.twitter.com/199.59.150.9 (port 80) after 20000ms: isConnected failed: EHOSTUNREACH (No route to host)
Relevant discussions can be found on the Internet at:
 http://www.google.co.jp/search?q=10f5ada3 or
 http://www.google.co.jp/search?q=e574403a
TwitterException{exceptionCode=[10f5ada3-e574403a 10f5ada3-e5744010 10f5ada3-e5744010], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.2-SNAPSHOT(build: 66f25e24a0e1d4e3b0ae483c3f3bb4774d3dce95)}
twitter4j.TwitterException: failed to connect to api.twitter.com/199.59.150.9 (port 80) after 20000ms: isConnected failed: EHOSTUNREACH (No route to host)
  at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:192)
  at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
  at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98)
  at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:122)
  at twitter4j.auth.OAuthAuthorization.getOAuthRequestToken(OAuthAuthorization.java:104)
  at twitter4j.TwitterBaseImpl.getOAuthRequestToken(TwitterBaseImpl.java:281)

再起動しても直る様子無し。
どーも、実機で接続しているWi-Fiに問題がある模様。
この辺りで内部ネットワークの問題にしか思えない。
Wi-Fiで割り当てられてるIPアドレスを変えてみたら、あっさり認証出来た。


2012年7月24日火曜日

Fedora 16 でLIO(Linux open source iSCSI target)のiSCSIを利用する

参考公式サイト ココココ

■ インストール


# yum -y install targetcli

■ 設定用のソフトを起動する


# targetcli

■ バージョンの確認


/> version
targetcli version 2.0rc1.fb8

■ 簡単な使い方


基本的に全てコマンドベースで作成していく。

・ルートからのディレクトリ階層

/> ls
o- / ........................................................... [...]
  o- backstores ................................................ [...]
  | o- block ...................................... [0 Storage Object]
  | o- fileio ..................................... [0 Storage Object]
  | o- pscsi ...................................... [0 Storage Object]
  | o- ramdisk .................................... [0 Storage Object]
  o- ib_srpt ............................................. [Not found]
  o- iscsi ................................................ [0 Target]
  o- loopback ............................................. [0 Target]
  o- qla2xxx ............................................. [Not found]
  o- tcm_fc .............................................. [Not found]


ヘルプは使用出来るコマンドの一覧が表示されるが、ディレクトリ階層で異なる。

・ルートディレクトリからのヘルプ

/> help

GENERALITIES
============
This is a shell in which you can create, delete and configure
configuration objects.

The available commands depend on the current path or target
path you want to run a command in: different path have
different sets of available commands, i.e. a path pointing at
an iscsi target will not have the same availaible commands as,
say, a path pointing at a storage object.

The prompt that starts each command line indicates your
current path. Alternatively (useful if the prompt displays
an abbreviated path to save space), you can run the
pwd command to display the complete current path.

Navigating the tree is done using the cd command. Without
any argument, cd will present you wil the full objects
tree. Just use arrows to select the destination path, and
enter will get you there. Please try help cd for navigation
tips.

COMMAND SYNTAX
==============
Commands are built using the following syntax:

[TARGET_PATH] COMMAND_NAME [OPTIONS]

The TARGET_PATH indicates the path to run the command from.
If ommited, the command will be run from your current path.

The OPTIONS depend on the command. Please use help
COMMAND to get more information.


AVAILABLE COMMANDS
==================
The following commands are available in the
current path:

  - bookmarks action [bookmark] 
  - cd [path] 
  - clearconfig [confirm] 
  - exit 
  - get [group] [parameter...] 
  - help [topic] 
  - ls [path] [depth] 
  - pwd 
  - refresh 
  - restoreconfig [savefile] [clear_existing] 
  - saveconfig [savefile] 
  - sessions [action] [sid] 
  - set [group] [parameter=value...] 
  - status 
  - version 
/> 


・backstoresへ移動

/> cd backstores
/backstores> ls
o- backstores .................................................. [...]
  o- block ........................................ [0 Storage Object]
  o- fileio ....................................... [0 Storage Object]
  o- pscsi ........................................ [0 Storage Object]
  o- ramdisk ...................................... [0 Storage Object]
/backstores>

・backstoresディレクトリからのヘルプ(一部抜粋)

/backstores> help

・・・ 抜粋 ・・・

AVAILABLE COMMANDS
==================
The following commands are available in the
current path:

  - bookmarks action [bookmark] 
  - cd [path] 
  - exit 
  - get [group] [parameter...] 
  - help [topic] 
  - ls [path] [depth] 
  - pwd 
  - refresh 
  - set [group] [parameter=value...] 
  - status 
/backstores> 


■ iSCSIを作成する


公式に書いてあるけれど、よくわからない。
作成後の自動移動?もしかしたらそのままの意味かも。とりあえず変更しておく。
/> set global auto_cd_after_create=false

作成出来るデバイスとして、投稿時点では4種類あります。

  • block   … 主に物理デバイス(HDD)を使用する
  • fileio   … ファイルを仮想ディスクとして使用する
  • pscsi   … 恐らくSCSIデバイスを使用する(未確認)
  • ramdisk … 自身のメモリを消費してRAM Diskとして利用する


・block作成の場合のサンプル例

/backstores> cd /backstores/block
/backstores/block> create name=myblock dev=/dev/disk/by-id/scsi-xxxx-part-1


・fileio作成の場合のサンプル例

/backstores> cd /backstores/fileio
/backstores/fileio> create name=myscsi file_or_dev=/root/myscsi.img buffered=true

/backstores/fileio> help
create name file_or_dev [size] [buffered] [sparse] 

[size] [sparse] に関してはよく分からない。
使用するファイルは事前にddなどで作成しておく。
サンプル例は150GBのファイルを作成
# dd if=/dev/zero of=/root/myscsi.img bs=1G count=150


・pscsi作成の場合のサンプル例

手持ちにSCSIデバイスが無いので未確認です。
使い方は他と変わらないのでSCSIデバイスを指定してあげれば行けるかも知れない。
/backstores> cd /backstores/pscsi
/backstores/pscsi> create name=xxxx dev=/dev/xxxx


・ramdisk作成の場合のサンプル例

RAM Diskとして自身のメモリをiSCSIデバイスとして提供出来ます。
物理メモリが沢山搭載されている場合に有効なデバイスだと思います。
RAM Diskとしての特性があると思うので、
データバックアップ・リストアを自分で行う必要有りです。
/backstores> cd /backstores/ramdisk
/backstores/ramdisk> create name=myram size=2G


・iSCSI Target情報の作成

デバイス作成した後はiSCSI Targetとしての設定を行う。
デバイス作成でname指定した名称へ移動する。
※以降、fileioとして記載します。
/backstores/fileio/myscsi> /iscsi create
Created target iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1.
Created TPG 1.
Entering new node /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1


・LUNを設定する

/iscsi/iqn.20...60cab8b1/tpg1> cd /
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1
/iscsi/iqn.20...60cab8b1/tpg1> luns/ create /backstores/fileio/myscsi
Created LUN 0.
Entering new node /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1/luns/lun0


・iSCSI TargetのIPアドレスを設定する

/iscsi/iqn.20...60cab8b1/tpg1> portals/ create 192.168.2.109
Using default IP port 3260
Created network portal 192.168.2.109:3260.


・ACLを設定する

iSCSI Initiator側のイニシエータ名を指定します。
/iscsi/iqn.20...60cab8b1/tpg1> acls/ create iqn.1991-05.com.microsoft:zzz-pc
Created Node ACL for iqn.1991-05.com.microsoft:zzz-pc
Created mapped LUN 0.


・ターゲットシークレットを設定する

Windows7 のiSCSIイニシエーターだと認証無しだと
通過出来なかったのでユーザーとパスワードを設定します。
/iscsi/iqn.20...60cab8b1/tpg1> cd acls/iqn.1991-05.com.microsoft:zzz-pc
/iscsi/iqn.20...icrosoft:zzz-pc> set auth userid=hogeuser
Parameter userid is now 'hogeuser'.
/iscsi/iqn.20...icrosoft:zzz-pc> set auth password=mytargetsecret
Parameter password is now 'mytargetsecret'.


・設定情報を保存する

/iscsi/iqn.20...icrosoft:zzz-pc> cd /
/> saveconfig
Existing file /etc/target/saveconfig.json backed up to saveconfig.json.backup
Configuration saved to /etc/target/saveconfig.json
/> exit


・LIOを起動させる

# systemctl start targetcli.service
# systemctl enable targetcli.service


・再設定する場合

再度targetcliを行ってlsコマンドを打つと初期化状態に戻る時があります。
そんな時は下記のコマンドで設定状態を戻す。
/> restoreconfig /etc/target/saveconfig.json

2012年7月23日月曜日

Fedora16 で ZFS を使用する

公式サイトから最新のSPLとZFSのソースを取得します。 ZFS on Linux
※投稿時点では0.6.0-rc9が最新

# wget http://github.com/downloads/zfsonlinux/spl/spl-0.6.0-rc9.tar.gz
# tar zxvf spl-0.6.0-rc9.tar.gz
# cd spl-0.6.0-rc9
# ./configure && make rpm && sudo rpm -Uvh *.x86_64.rpm

# wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc9.tar.gz
# tar zxvf zfs-0.6.0-rc9.tar.gz
# cd zfs-0.6.0-rc9
# ./configure && make rpm && rpm -Uvh *.x86_64.rpm


2012年7月21日土曜日

Fedora16でのVNC Server

■ インストール

# yum -y install tigervnc-server
# su - fedora 
$ vncpasswd
$ vncserver :1
$ vncserver -kill :1



■  1環境のみの場合

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@1.service
# vi /etc/systemd/system/vncserver@1.service

ExecStart=/sbin/runuser -l fedora -c "/usr/bin/vncserver %i"
ExecStop=/sbin/runuser -l fedora -c "/usr/bin/vncserver -kill %i"

# systemctl start vncserver@1.service
# systemctl enable vncserver@1.service

2012年6月2日土曜日

ハードウェアモニタにはlm-sensors

CPUの温度やマザーボードの情報を表示するにはlm-sensorsを利用すると手軽に表示が出来ます。
でも、デバイスドライバが入っていないと認識出来なかったりします。
公式のデバイス対応一覧はこちら

Linux kernel の各種最新版場所

The Linux Kernel Archives

既にサポート終了してしまったOSのカーネルとかは最新デバイスに対応してないので
手動でカーネルのバージョンアップを行えば、もしかしたら対応するかも?

2012年5月29日火曜日

Intel Ethernet Converged Network Adapter X540-T2


10GbEthernetが欲しいなーと探していたら、
なんと探していた前日にIntelから発売されていたのでビックリ。
なんか運命を感じたので早速オリオスペックで購入。

光ファイバーとかの方が高速なんだろうけど、
ファイバーそのものが高価だったり色々と取り回し面倒なので
Cat6のLANケーブルで手軽に使用したかったんで、
結局この製品となりました。



製品名:Intel Ethernet Converged Network Adapter X540-T2
一応スペック等はこちら
Intel公式HPなのでリンク先からドライバ取得等もそこから行える。

ボードそのものが高価なので、複数導入出来ないのだけれど
今回はメインPC(Win7)とサーバー(Fedora13)に入れて試してみた。
一応言っておくと、バージョンアップが面倒なのでFedora13なのです。
当時は最新バージョンだったんで、特に深い意味は無いのです。

ということでsamba経由のネットワークドライブでベンチマークを行ってみました。
※リンクアグリケーションは未使用なので純粋に10GbE同士。



ネットワークドライブの測定場所は単体HDDの場所なので
4000MBを実施した際、シーケンシャルライトが落ちてるのは
sambaで利用出来るキャッシュメモリが枯渇して単体HDDの速度になったのかな?と思っている。
あくまで想定。

ここでSSD利用した結果も載せたいけど、残念なことに空いてるSSDは無いんだよね。
いつになるかわからないけど、SSD入手出来たらもう一回測定してみようかと思う。

ひとまず速度が向上し安定するという結果がわかったので、それで良しとしよう。

2012年2月18日土曜日

subsonicメモ

個人的なメモです。

■ ソースとか諸々。こちら

subsonic-4.x-src.zipをダウンロードし、Eclipse等で適当にプロジェクト作って展開する。
修正ソースがコンパイル出来たらclassファイルを正規のwarファイルへ突っ込む。

■ レスポンス改善

Android等からアクセスする場合はTomcat等を利用して運用した方が反応速度が上がる。

■ ファイルダウンロード時の文字化け対策  

【zipファイルの中身】
DownloadControllerクラスに定義されているZipOutputStreamに対してout.setEncoding("MS932");を入れることで文字化けが解消される。

【zipファイル名】
DownloadControllerクラスのdownloadFile、downloadFilesにあるresponse.setHeader(~)のファイル名の文字コードを変更する。
具体的には「file.getName()」を「new String(file.getName().getBytes("MS932"), "ISO-8859-1") 」に変更などに変更する。