2010/12/19

[Debian]debian squeeze amd64 に AcrobatReader9 をインストール

atpline に追加

deb http://www.debian-multimedia.org etch main non-free

acroread と、その日本語環境インストール

sudo aptitude search acroread acroread-fonts-jpn acroread-l10n-ja acroread-dictionary-ja
以上。

2010/12/17

[Java]リフレクションしてみた

極簡単なリフレクションの例。
コピペ支援的な感じで。
import java.lang.reflect.Constructor;

public class ReflectionTest {
   public static void main(String[] args) {
      try {
         // create String instance
         String string_classStr = "java.lang.String";
         Class<String> string_class = (Class<String>) Class.forName(string_classStr);
         Class string_argTypes[] = { String.class };
         Constructor<String> string_constructor = string_class.getConstructor(string_argTypes);
         Object string_constructorArgs[] = { "TESTING@TESTONG" };
         String string = (String) string_constructor.newInstance(string_constructorArgs);
         System.out.println(string);
         
         // call toString() method
         Method string_toString = string_class.getMethod("toString", null);
         String dst_string = (String) string_toString.invoke(string, null);
         System.out.println(dst_string);
         
         // call split("@") method
         Class string_split_argTypes[] = { String.class };
         Object string_split_args[] = {"@"};
         Method string_split = string_class.getMethod("split", string_split_argTypes);
         String[] string_splitArray = (String[]) string_split.invoke(string, string_split_args);
         for (String str : string_splitArray) {
            System.out.println(str);
         }
         
         // call String.format("num1 : %d, num2 : %d", 13, 14) methods (static method, and "13, 14" is var args)
         Class string_format_argTypes[] = { String.class, Object[].class };
         Object string_format_args[] = { "num1 : %d, num2 : %d", new Object[]{13, 14} };
         Method string_format = string_class.getMethod("format", string_format_argTypes);
         dst_string = (String) string_format.invoke(null, string_format_args);
         System.out.println(dst_string);
         
      } catch (NoSuchMethodException e) {
         e.printStackTrace();
      } catch (IllegalArgumentException e) {
         e.printStackTrace();
      } catch (InstantiationException e) {
         e.printStackTrace();
      } catch (IllegalAccessException e) {
         e.printStackTrace();
      } catch (InvocationTargetException e) {
         e.printStackTrace();
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
      }
   }
}
追記 reflection の綴りをがっつり間違えていたので修正しました。

2010/12/08

[Java][C]JNIのヘッダを作るメイクファイル

JNI のヘッダを作ってくれる Makefile

OUTPUT_DIR=jni/
CLASSPATH=bin/
PACKAGE_BASE=jp.dip.oyasirazu.jnitest.
DIRECTORY_BASE=jp/dip/oyasirazu/jnitest/
HEADER_BASE=${OUTPUT_DIR}jp_dip_oyasirazu_jnitest_

all: ${HEADER_BASE}JNITest.h \
     ${HEADER_BASE}TestClass.h

${HEADER_BASE}%.h : ${CLASSPATH}${DIRECTORY_BASE}%.class
   javah -classpath ${CLASSPATH} -d ${OUTPUT_DIR} ${PACKAGE_BASE}$(subst ${HEADER_BASE},,$*)
ちょうきもちわるい。
ヘッダは '_' 区切りだし、パッケージは '.' 区切りだし、ディレクトリは '/' 区切りだし...。
何か良い方法無いのかね?
make doc でシグネチャ一覧 txt をどこかに出力とかも便利かもねー。
きちんと調べれば ndk-build とか .mk とか編集するとできる気もする。
いつかきっと調べる。
でもこの辺がころころ変わることなんて滅多にないはずだから無駄な努力だった気もする。

2010/12/07

[Debian]windowsに接続されたプリンタを使う

必要パッケージ

sudo aptitude install dpkg-dev debhelper autotools-dev
sudo aptitude install cups libcups2-dev
sudo aptitude install libltdl3-dev

pipslite_1.5.0-2.tar.gz をダウンロード。

Linuxドライバー|アヴァシス株式会社
tar zxfv pipslite_3.5.0-2.tar.gz
cd pipslite_1.5.0
sudo dpkg-buildpackage -rfakeroot -us -uc
cd ..
sudo dpkg -i pipslite_1.5.0-2_amd64.deb

windows側の設定

[Debian]いろんな(?)開発環境導入

OS

は squeez です。

java5

一時的に aptline を lenny に変更し、
sudo aptitude install sun-java5-jdk
aptline を元にもどすのを忘れずに!

java6

sudo aptitude install sun-java6-jdk

java5 と java6 の切り替え

sudo update-alternatives --config java
sudo update-alternatives --config javac
それぞれ、使いたい java に対応した番号を入力すれば ok.

android, em ビルドのためのものども(java は上でインストール済みだから除く)

sudo aptitude install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev uboot-mkimage
X11 のシンボリックリンクが無いらしい。
sudo ln -s /usrsudo ln -s /usr/lib32/libX11.so.6 /usr/lib32/libX11.so/lib32/libX11.so.6 /usr/lib32/libX11.so

eclipse

sudo aptitude install eclipse

arm linux クロスコンパイル環境

下記サイトをみて arm linux 用の toolchain を持ってくる。
Embedded Debian -- Cross-development toolchains
aptline に 
deb http://www.emdebian.org/debian/ lenny main 
を追加すると同時に、 squeeze を lenny とする。
sudo aptitude install linux-libc-dev-armel-cross libc6-armel-cross libc6-dev-armel-cross binutils-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi
lenny を squeez に戻す。

自分用に arm-linux-gnueabi をコピー

cp -r /usr/arm-linux-gnueabi ~/embdebian/

jpeglib のクロスコンパイル

mkdir -p ~/embdebian/libs
cd ~/embdebian/libs
apt-get source libjpeg8-dev
cd libjpeg8-8b
./configure CC=arm-linux-gnueabi-gcc --host=x86_64-linux --target=arm-linux-gnueabi --prefix=~/embdebian/arm-linux-gnueabi
make -j8
make install
これで、 arm-linux-gnueabi 内に、 arm 用の jpeglib がインストールされる。

2010/12/04

[Debiain]最小構成インストールから一通りインストールした記録

apt-line の設定。

vi /etc/apt/sources.list
すべての行に「 contrib non-free 」を追加。

apt パッケージ情報の更新

aptitude update

x-window-system のインストール

aptitude install x-window-system

xfce4 のインストール

aptitude install xfce4

slim (ログインマネージャ) のインストール

aptitude install slim

管理?

aptitude install sudo

ブラウザ

sudo aptitude install iceweasel iceweasel-vimperator
sudo aptitude install flashplugin-nonfree

エディタ

aptitude install vim-gtk

フォント

aptitude install ttf-ipafont-gothic ttf-ipafont-mincho

日本語入力

aptitude install anthy uim-anthy
スタートメニューから、設定->入力メソッド切替器
uim-toolbar を選択。
うかつにターミナルで LC_ALL=C とかいう設定をすると、日本語入力受け付けなくなるので注意。

スクリーンショット

sudo aptitude install xfce4-screenshooter

ランチャ

<Super>space(スタート+スペース)に xfrun4 を割り当てる。
スタートメニュー->設定->キーボード->アプリケーションショートカットキー
xfrun4 をダブルクリックし、スタート+スペースを押下。
"Gnome Do" とかインストールしても、アプリケーションランチャとしてしか使わないからこれで十分。
xfrun4 の環境変数とかがよく分からなかったから、シンボリックリンクで alias の代わりとする。
cd /usr/bin
sudo ln -s xfce4-terminal terminal
sudo ln -s xfce4-screenshooter screenshooter
sudo chmod go-w terminal screenshooter

ネットワーク共有

sudo aptitude install cifs-utils
mount.cifs //ネットワークドライブ マウントポイント
で、ネットワークドライブのマウントができるようになる。
面倒だけれど、 fstab なんかに設定すれば許容範囲内?
マウントしたところに書き込めるように設定
/etc/fstab
//192.168.1.24/datas /home/netdrives/data cifs gid=netdrive,file_mode=0774,dir_mode=0775 0 0
//192.168.1.24/datas02 /home/netdrives/data02 cifs gid=netdrive,file_mode=0774,dir_mode=0775 0 0
こんな感じで設定して、書き込みを許すユーザに netdrive グループに入ってもらう。
IP 直打ちが嫌なら以下の LAN 内の名前解決をする。

LAN 内の名前解決

必要パッケージのインストール
sudo aptitude install samba winbind
名前解決の設定
sudo vi /etc/nsswitch.conf
hosts の項目に wins を追加
sudo vi /etc/samba/smb.conf
wins support = yes と変更。
不要サービスの停止
sudo mv /etc/init.d/S18winbind /etc/init.d/K18winbind

画像ビューワ

sudo aptitude install ristrett

動画プレイヤー

sudo aptitude install vlc
倍速再生でも音が高くならない設定
ツール->設定->左下の「すべて」を選択->オーディオ->フィルタ
「再生レートとオーディオ速度調整機能の同期」にチェック
多分その下のテキストエリアに「scaletempo」と表示される。
表示されなければ自分で書いて。

パネルの設定

sudo aptitude install xfce4-cpugraph-plugin
パネルに、ミキサー, cpugraph, Orageカレンダーを追加

グラフィックドライバ

sudo aptitude install nvidia-setting nvidia-xconfig
依存関係があるから必要なカーネルやら何やらもすべてインストールしてくれる。

リモートデスクトップ

sudo aptitude install rdesktop

仮想端末?

sudo aptitude install screen

圧縮解凍

sudo aptitude install xarchiver

パッケージ内ファイル検索

sudo aptitude install apt-file

マインドマップ

sudo aptitude install freemind ttf-sazanami-gothic ttf-sazanami-mincho
さざなみフォントをインストールしないと文字化けするみたい。