2014/04/14

[普通の日記]今日勉強した雑多なもの

css でマウスオーバー時にカーソルの形を変える

/* マウスオーバー時にマウスカーソルをpointer(指)にする */
cursor: pointer;

DOM でテキストノードを追加する

var textNode = document.createTextNode("TEXT");
element.appendChild(textNode);

css セレクタで、要素直下の要素だけを指定する

PARENT_SELECTOR > CHILD_SELECTOR

Dojo Toolkit でにょきっと出たり入ったりする show/hide 処理

Reference の Example 3 あたりを見ると出来るよ!
dojo/fx/Toggler — The Dojo Toolkit - Reference Guide

dojo/_base/connect は古いらしい、 dojo/on とか dojo/aspect とか使うらしい

dojo.connect() — The Dojo Toolkit - Reference Guide

2013/12/22

[Debian]Ricty のインストール

Ricty のインストール

# 合成元のフォントパッケージをインストール
sudo aptitude install fontforge ttf-inconsolata fonts-migmix

# 作業用ディレクトリの作成と移動
mkdir -p ~/tmp/ricty
cd ~/tmp/ricty/

# 合成スクリプト取得
wget https://raw.github.com/yascentur/Ricty/master/ricty_generator.sh

# 合成開始
sh ricty_generator.sh auto

# フォントインストール
mkdir ~/.fonts
cp -f Ricty-\*.ttf ~/.fonts/
fc-cache -vf

2013/11/30

[KVM]KVM + libvirt でいろいろやったよ

KVM + libvirt でいろいろやったよ

半年くらい前のメモを発掘したのでとりあえずブログに保管する。


# パッケージインストール
sudo aptitude install qemu-kvm libvirt-bin virtinst

# OS 再起動(/dev/kvm の権限を更新するため)

# USER が kvm を使えるようにする
# 多分再起動とか必要。ログアウトでいいのかな?
sudo adduser USER kvm

# 仮想マシン作成 & Debian インストール
# 最小構成 + vim + ssh
sudo virt-install --connect qemu:///system --name debian_org --ram 512 --disk path=/var/lib/libvirt/images/debian_org.img,size=5 --network network=default,model=virtio --nographics --location='http://ftp.jp.debian.org/debian/dists/wheezy/main/installer-amd64/' -x console=ttyS0,115200

仮想マシン設定ファイルの場所

/etc/libvirt/qemu/DOMAIN_NAME.xml

イメージファイル等の場所

/var/lib/libvirt/*

仮想マシン以外の設定も、 /etc/libvirt の中にある。 autostart 内のもの(普通は設定ファイルへのシンボリックリンク)は libvirtd 起動時に実行される。

基本操作

sudo virt-install --connect qemu:///system --name DOMAIN_NAME --ram RAM_SIZE --disk /PATH/TO/DISK,size=GB --network network=default,model=virtio --vnc --cdrom /PATH/TO/CDROM
sudo virsh list --all
sudo virsh dominfo DOMAIN_NAME
sudo virsh start DOMAIN_NAME
sudo virsh suspend DOMAIN_NAME
sudo virsh resume DOMAIN_NAME
sudo virsh reboot DOMAIN_NAME #KVMでは使えないらしい
sudo virsh shutdown DOMAIN_NAME
sudo virsh destroy DOMAIN_NAME
sudo virsh undefine DOMAIN_NAME

ストレージ

libvirt にはストレージプールなるものがあるらしい。 まだ使ってないのでいつか調べる。

sudo virsh pool-list
sudo virsh vol-list POOL_NAME
sudo virsh vol-delete VOL_NAME

qemu-img create -f qcow2 IMG_NAME IMG_SIZE

Windows7 のインストール

virtio ドライバ

WindowsGuestDrivers/Download Drivers - KVM(http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers)

VM 作成

sudo virt-install --connect qemu:///system --arch=x86_64 -n voice -r 24000 --vcpus 4 --vnc --vnclisten 0.0.0.0 --noautoconsole --os-type windows --os-variant win7 --disk path=/var/lib/libvirt/images/voice.img,size=10 --disk path=/home/mikoto/iso/virtio-win-0.1-59.iso,device=cdrom,perms=ro --cdrom /dev/cdrom --boot cdrom,hd --prompt

これで、サーバの 5900 ポートに VNC クライアントでアクセスすれば画面が表示される。 (windows7 の Real VNC では、 64bit color よりも上の色だと接続できなかった...)

インストール途中で、追加のドライバ(virtio)をインストールする。

これだと NIC も HDD も virtio として追加されないようだ。 disk のオプションに "bus=virtio" を追加するとか、 ネットワークオプションとして "--network bridge=br0,model=virtio" を追加するとかが必要なようだ。 いつか再インストールの機会があれば試す。

ボリュームのリサイズ

10GB は小さすぎた...。

# ボリュームの情報確認
sudo virsh vol-info --pool default voice.img
# リサイズ
# virsh vol-resize は未サポートらしい(2013/5/25,Debian7,KVM)
sudo qemu-img resize voice.img +20G

その後、コンピュータの管理からパーティションを拡張すれば OK.

2013/10/29

[Debian][鯖]Gitit のインストール

インストール

aptitude install gitit git-core

データ格納ディレクトリ作成

mkdir -p /data/wiki

デフォルト設定ファイルの作成

gitit --print-default-config > /data/wiki/gitit.conf
vi /data/wiki/gitit.conf
# 修正点のみ抜き出し
# パスをすべて絶対パスに直す
repository-path: /data/wiki/wikidata
user-file: /data/wiki/gitit-users
static-dir: /data/wiki/static
templates-dir: /data/wiki/templates
log-file: /data/wiki/gitit.log

起動スクリプト作成

cp /etc/init.d/skeleton /etc/init.d/gitit
vi /etc/init.d/gitit
#! /bin/sh
### BEGIN INIT INFO
# Provides:          gitit
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Wiki Server Gitit
# Description:       Wiki Server Gitit
### END INIT INFO

# Author: mikoto2000 <mikoto2000>

# Do NOT "set -e"

# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Wiki Server Gitit"
NAME=gitit
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-f /data/wiki/gitit.conf"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
PWD=/data/wiki

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present
# and status_of_proc is working.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
    # Return
    #   0 if daemon has been started
    #   1 if daemon was already running
    #   2 if daemon could not be started
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
        || return 1
    start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background -- \
        $DAEMON_ARGS \
        || return 2
    # Add code here, if necessary, that waits for the process to be ready
    # to handle requests from services started subsequently which depend
    # on this one.  As a last resort, sleep for some time.
}

#
# Function that stops the daemon/service
#
do_stop()
{
    # Return
    #   0 if daemon has been stopped
    #   1 if daemon was already stopped
    #   2 if daemon could not be stopped
    #   other if a failure occurred
    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
    RETVAL="$?"
    [ "$RETVAL" = 2 ] && return 2
    # Wait for children to finish too if this is a daemon that forks
    # and if the daemon is only ever run from this initscript.
    # If the above conditions are not satisfied then add some other code
    # that waits for the process to drop all resources that could be
    # needed by services started subsequently.  A last resort is to
    # sleep for some time.
    start-stop-daemon --stop --quiet --oknodo --retry=5 --signal 0 --exec $DAEMON
    [ "$?" = 2 ] && return 2
    # Many daemons don't delete their pidfiles when they exit.
    rm -f $PIDFILE
    return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
    #
    # If the daemon can reload its configuration without
    # restarting (for example, when it is sent a SIGHUP),
    # then implement that here.
    #
    start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
    return 0
}

case "$1" in
  start)
    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  stop)
    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
        2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
    esac
    ;;
  status)
       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
       ;;
  #reload|force-reload)
    #
    # If do_reload() is not implemented then leave this commented out
    # and leave 'force-reload' as an alias for 'restart'.
    #
    #log_daemon_msg "Reloading $DESC" "$NAME"
    #do_reload
    #log_end_msg $?
    #;;
  restart|force-reload)
    #
    # If the "reload" option is implemented then remove the
    # 'force-reload' alias
    #
    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
      0|1)
        do_start
        case "$?" in
            0) log_end_msg 0 ;;
            1) log_end_msg 1 ;; # Old process is still running
            *) log_end_msg 1 ;; # Failed to start
        esac
        ;;
      *)
        # Failed to stop
        log_end_msg 1
        ;;
    esac
    ;;
  *)
    #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;
esac

:

起動スクリプトに実行権限追加

chmod a+x /etc/init.d/gitit

スタート確認

/etc/init.d/gitit start
ps aux | grep gitit

ストップ確認

/etc/init.d/gitit stop
ps aux | grep gitit

サービス登録

update-rc.d gitit defaults

2013/10/13

vim を +lua でコンパイルする

vim7.4 で neocomplete が使いたいので頑張る。

sudo aptitude install lua
cd /PATH/TO/VIM/SRC
hg pull
hg update
./configure --enable-luainterp=yes --with-luajit --prefix=/home/mikoto/app/vim/
make && make install

... -lua だ! .configure の出力を真面目に見てみよう...。

./configure --enable-luainterp=yes --with-luajit --prefix=/home/mikoto/app/vim/ | grep lua
checking --enable-luainterp argument... yes
checking --with-lua-prefix argument... no
checking --with-luajit... yes
checking for luajit... no
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua... no

ヘッダが無いとダメなのかー。

sudo aptitude install liblua5.2-dev
ls /usr/include | grep lua
lua5.2

oh...パスが違うようだ。

sudo ln -s /usr/include/lua5.2 /usr/include/lua
./configure --enable-luainterp=yes --with-luajit --prefix=/home/mikoto/app/vim/ | grep lua
checking --enable-luainterp argument... yes
checking --with-lua-prefix argument... no
checking --with-luajit... yes
checking for luajit... no
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua... yes
checking if link with -L/usr/lib/x86_64-linux-gnu -lluajit is sane... no

luajit が有効にならない...。 別途 luajit が必要? wheezy には deb パッケージなかったので今回はいいや。 luajit なしで続行。

# こっちだと lua5.2 見つけてくれるのね...
./configure --enable-luainterp=yes --prefix=/home/mikoto/app/vim/ | grep lua
checking --enable-luainterp argument... yes
checking --with-lua-prefix argument... no
checking --with-luajit... no
checking for lua... (cached) /usr/bin/lua
checking if lua.h can be found in /usr/include... no
checking if lua.h can be found in /usr/include/lua5.2... yes
checking if link with -L/usr/lib -llua5.2 is sane... yes
make && make install
vim --version | grep +lua
+dialog_con_gui  +lua             -rightleft       +windows

よしできた。

2013/08/07

[Haskell]Haskell のカリー化について考えた

Haskell のカリー化について

「すごいHaskellたのしく学ぼう!」に、カリー化と部分適用は完全に理解しておいてくださいと書かれていたのでしっかり学ぶ努力をしてみる。

下記のような関数があったとして、

myAdd :: Integer -> Integer -> Integer
myAdd x y = x + y

(myAdd 4) の返り値は、

myAdd' :: Integer -> Integer
myAdd' y = x + y
    where x = 4

と同等の関数であるという事なのだろうか?

いや、参考文献を見る限り違うようだ。

これは、「カリー化して部分適用」したという事らしい。

Integer -> Integer -> Integer を、 Integer -> (Integer -> Integer) と (Integer -> Integer) の 2 つの関数に分解するのが カリー化という事か。

Haskell なら、すべての関数を処理系が自動で変換してくれる。

Java で、オレオレ Add 関数のカリー化をする場合こんな感じになるのかな?

StudyCurry.java(https://github.com/mikoto2000/MiscellaneousStudy/blob/master/java/StudyCurry/src/jp/dip/oyasirazu/study/curry/StudyCurry.java)

とりあえず、「関数の分解がカリー化」、「具体的に数値を入れると部分適用」という印象。

参考文献

カリー化と部分適用の違いと誤用 - Togetter(http://togetter.com/li/183700)

カリー化 != 部分適用 - ((プログラミング | 形式) 言語) について書く日記(http://d.hatena.ne.jp/kmizushima/20091216/1260969166)

カリー化 - Wikipedia(http://ja.wikipedia.org/wiki/%E3%82%AB%E3%83%AA%E3%83%BC%E5%8C%96)

StudyCurry.java(https://github.com/mikoto2000/MiscellaneousStudy/blob/master/java/StudyCurry/src/jp/dip/oyasirazu/study/curry/StudyCurry.java)

2013/05/28

[Debian] Debian 最小構成インストールからデスクトップ環境を作る

全部作業が終わってからメモしてないのに気づいて .bash_history から作業内容をサルベージした。あとから見て思い出す分には多分大丈夫という程度の残念メモ。

1. aptitude のプロキシ設定

2. aptline の修正

3. パッケージのインストール

aptitude install awesome awesome-extra
aptitude install x-window-system
aptitude install mozc
aptitude install iceweasel
aptitude install iceweasel-vimperator
aptitude install vim
aptitude install git
aptitude install ibus-mozc
aptitude install ttf-japanese-gothic ttf-japanese-mincho
aptitude install fonts-japanese-gothic fonts-japanese-mincho
aptitude install fonts-ipafont-gothic fonts-ipafont-mincho
aptitude install ttf-kochi-gothic-naga10 ttf-kochi-mincho-naga10
aptitude install ttf-vlgothic
aptitude install ttf-takao

4. キーボードレイアウト変更(capsをctrlへ)

/etc/default/keyboard を編集する。 XKBOPTIONS に "ctrl:nocaps" を設定する。
XKBOPTIONS="ctrl:nocaps"

5. グラフィックドライバインストール(?)

aptitude install nvidia-glx

6. (ここまでやって x-window-system が立ち上がらなくなる)

7. xorg.conf の作成

Xorg -configure
mv xorg.conf.new /etc/X11/xorg.conf

8. パッケージインストール第 2 弾

aptitude install cifs-utils
aptitude install vim-athena
aptitude install sudo
aptitude install xdm

9. vim 環境

vim プラグインのインストールと、 vimproc のビルド。
aptitude install gcc make
cd ~/.vim/bundle/vimproc/
make -f make_unix.mak

10. 新しい iceweasel のインストール

aptitude install debian-keyring
aptitude install pkg-mozilla-archive-keyring
# "deb http://mozilla.debian.net/ wheezy-backports iceweasel-release" を追加
vi /etc/apt/sources.list
aptitude update
aptitude purge iceweasel
deb http://debian.multimedia.org wheezy main contrib non-free
aptitude install -t wheezy-backports iceweasel

11. google-chrome のインストール

mkdir /var/cache/localdeb
cd /var/cache/localdeb/
apt-ftparchive packages . | gzip -c9 > Packages.gz
apt-ftparchive sources . | gzip -c9 > Sources.gz
# "deb file:/va/cache/localdeb ./" を追加
vi /etc/apt/sources.list
aptitude update
aptitude install google-chrome-stable

12. 音関係

aptitude install alsa
# 認識されているサウンドデバイスの一覧表示らしい。
# 結果の card, device を確認
aplay -l
# どの card,device で音がなるかを確認していく
aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Center.wav 
aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Center.wav 
...
# デフォルトで使用するサウンドデバイスを設定する
vi /etc/asound.conf
# /etc/asound.conf の中身.
# pcm.!default {
#  type hw
#  card 1
#  device 7
#}

13. 今思い出したパッケージ

aptitude install pandoc

14. ファイル関連付け

vi ~/.local/share/applications/mimeapps.list
# ~/.local/share/applications/mimeapps.list の内容
# [Default Applications]
# text/plain=gvim.desktop
# text/x-markdown=gvim.desktop
# text/html=iceweasel.desktop
# application/pdf=xpdf.desktop

まとめ

素直にインストール時点で Desktop 環境を選択しましょう。

2013/01/05

[作業記録][Maven]Maven に入門してみる

Maven2 に入門してみる

  1. 環境導入
  2. プロジェクトの雛形作成
  3. コンパイル
  4. テスト実行
  5. Javadoc 作成
  6. サイト作成
  7. ローカルリポジトリへのインストール(してない)

こんな感じで進めていきます。

1. 環境導入

aptitude install maven2

2. プロジェクトの雛形作成

mvn archetype:create -DgroupId=jp.dip.oyasirazu.morphologicalanalysis -DartifactId=MorphologicalAnalysis
...(snip)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11 seconds
[INFO] Finished at: Sat Jan 05 03:59:56 JST 2013
[INFO] Final Memory: 16M/151M
[INFO] ------------------------------------------------------------------------

...なんかゴリゴリ出力されていますね。 jar のダウンロードもされているようだ...(初回だけらしい)。 こんな風な構成になっていれば成功らしい。

mikoto@mndebian:~/projects/maven$ tree
.
└── MorphologicalAnalysis
    ├── pom.xml
    └── src
        ├── main
        │   └── java
        │       └── jp
        │           └── dip
        │               └── oyasirazu
        │                   └── morphologicalanalysis
        │                       └── App.java
        └── test
            └── java
                └── jp
                    └── dip
                        └── oyasirazu
                            └── morphologicalanalysis
                                └── AppTest.java

14 directories, 3 files

OK. とりあえず雛形の状態で Git に登録する。

git init
git add --all
git commit -m 'Initial commit'

3. 雛形プロジェクトのコンパイル

mvn compile
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building MorphologicalAnalysis
[INFO]    task-segment: [compile]
[INFO] ------------------------------------------------------------------------
...(snip)
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/mikoto/projects/maven/MorphologicalAnalysis/src/main/resources
...(snip)
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Compiling 1 source file to /home/mikoto/projects/maven/MorphologicalAnalysis/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15 seconds
[INFO] Finished at: Sat Jan 05 04:17:34 JST 2013
[INFO] Final Memory: 11M/88M
[INFO] ------------------------------------------------------------------------

oh...。また大量にダウンロードが。 とはいえ成功。 target が作成されていますね。

tree
.
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       └── jp
│   │           └── dip
│   │               └── oyasirazu
│   │                   └── morphologicalanalysis
│   │                       └── App.java
│   └── test
│       └── java
│           └── jp
│               └── dip
│                   └── oyasirazu
│                       └── morphologicalanalysis
│                           └── AppTest.java
└── target
    └── classes
        └── jp
            └── dip
                └── oyasirazu
                    └── morphologicalanalysis
                        └── App.class

19 directories, 4 files

4. 雛形プロジェクトのテスト実行

テストもするよ。

mvn test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building MorphologicalAnalysis
[INFO]    task-segment: [test]
[INFO] ------------------------------------------------------------------------
...(snip)
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/mikoto/projects/maven/MorphologicalAnalysis/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/mikoto/projects/maven/MorphologicalAnalysis/src/test/resources
...(snip)
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 1 source file to /home/mikoto/projects/maven/MorphologicalAnalysis/target/test-classes
...(snip)
[INFO] [surefire:test {execution: default-test}]
[INFO] Surefire report directory: /home/mikoto/projects/maven/MorphologicalAnalysis/target/surefire-reports
...(snip)

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running jp.dip.oyasirazu.morphologicalanalysis.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.093 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23 seconds
[INFO] Finished at: Sat Jan 05 04:26:49 JST 2013
[INFO] Final Memory: 17M/154M
[INFO] ------------------------------------------------------------------------

mmm。 成功ですね。 テスト用のクラスとテスト結果が出力されています。

tree
.
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       └── jp
│   │           └── dip
│   │               └── oyasirazu
│   │                   └── morphologicalanalysis
│   │                       └── App.java
│   └── test
│       └── java
│           └── jp
│               └── dip
│                   └── oyasirazu
│                       └── morphologicalanalysis
│                           └── AppTest.java
└── target
    ├── classes
    │   └── jp
    │       └── dip
    │           └── oyasirazu
    │               └── morphologicalanalysis
    │                   └── App.class
    ├── surefire
    ├── surefire-reports
    │   ├── jp.dip.oyasirazu.morphologicalanalysis.AppTest.txt
    │   └── TEST-jp.dip.oyasirazu.morphologicalanalysis.AppTest.xml
    └── test-classes
        └── jp
            └── dip
                └── oyasirazu
                    └── morphologicalanalysis
                        └── AppTest.class

26 directories, 7 files
  1. Javadoc 作成

Javadoc 作るよ。

mvn javadoc:javadoc
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'javadoc'.
[INFO] ------------------------------------------------------------------------
[INFO] Building MorphologicalAnalysis
[INFO]    task-segment: [javadoc:javadoc]
[INFO] ------------------------------------------------------------------------
[INFO] Preparing javadoc:javadoc
[INFO] No goals needed for project - skipping
[INFO] [javadoc:javadoc {execution: default-cli}]
[INFO] 
...(snip)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29 seconds
[INFO] Finished at: Sat Jan 05 04:38:25 JST 2013
[INFO] Final Memory: 20M/194M
[INFO] ------------------------------------------------------------------------

はいできた。

tree
.
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       └── jp
│   │           └── dip
│   │               └── oyasirazu
│   │                   └── morphologicalanalysis
│   │                       └── App.java
│   └── test
│       └── java
│           └── jp
│               └── dip
│                   └── oyasirazu
│                       └── morphologicalanalysis
│                           └── AppTest.java
└── target
    ├── classes
    │   └── jp
    │       └── dip
    │           └── oyasirazu
    │               └── morphologicalanalysis
    │                   └── App.class
    ├── site
    │   └── apidocs
    │       ├── allclasses-frame.html
    │       ├── allclasses-noframe.html
    │       ├── constant-values.html
    │       ├── deprecated-list.html
    │       ├── help-doc.html
    │       ├── index-all.html
    │       ├── index.html
    │       ├── jp
    │       │   └── dip
    │       │       └── oyasirazu
    │       │           └── morphologicalanalysis
    │       │               ├── App.html
    │       │               ├── class-use
    │       │               │   └── App.html
    │       │               ├── package-frame.html
    │       │               ├── package-summary.html
    │       │               ├── package-tree.html
    │       │               └── package-use.html
    │       ├── overview-tree.html
    │       ├── package-list
    │       ├── resources
    │       │   ├── background.gif
    │       │   ├── tab.gif
    │       │   ├── titlebar_end.gif
    │       │   └── titlebar.gif
    │       └── stylesheet.css
    ├── surefire
    ├── surefire-reports
    │   ├── jp.dip.oyasirazu.morphologicalanalysis.AppTest.txt
    │   └── TEST-jp.dip.oyasirazu.morphologicalanalysis.AppTest.xml
    └── test-classes
        └── jp
            └── dip
                └── oyasirazu
                    └── morphologicalanalysis
                        └── AppTest.class

34 directories, 27 files

target/site/apidocs に作成されるようだ。

  1. サイト作成

サイトもできるらしい。

mvn site
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building MorphologicalAnalysis
[INFO]    task-segment: [site]
[INFO] ------------------------------------------------------------------------
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:pom:6.1.5' in repository codehaus.org (http://snapshots.repository.codehaus.org)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:pom:6.1.5' in repository apache.m2.incubator (http://people.apache.org/repo/m2-snapshot-repository/)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:pom:6.1.5' in repository codehaus.org (http://snapshots.repository.codehaus.org)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:pom:6.1.5' in repository apache.m2.incubator (http://people.apache.org/repo/m2-snapshot-repository/)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:jar:6.1.5' in repository codehaus.org (http://snapshots.repository.codehaus.org)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:jar:6.1.5' in repository apache.m2.incubator (http://people.apache.org/repo/m2-snapshot-repository/)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:jar:6.1.5' in repository codehaus.org (http://snapshots.repository.codehaus.org)
...(snip)
[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:jar:6.1.5' in repository apache.m2.incubator (http://people.apache.org/repo/m2-snapshot-repository/)
...(snip)
[INFO] [site:site {execution: default-site}]
[INFO] artifact org.apache.maven.skins:maven-default-skin: checking for updates from central
...(snip)
[INFO] Generating "Plugin Management" report.
...(snip)
[INFO] Generating "Mailing Lists" report.
[INFO] Generating "Continuous Integration" report.
[INFO] Generating "Project License" report.
[INFO] Generating "Project Team" report.
[INFO] Generating "Source Repository" report.
[INFO] Generating "About" report.
[INFO] Generating "Issue Tracking" report.
[INFO] Generating "Project Summary" report.
[INFO] Generating "Dependencies" report.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 50 seconds
[INFO] Finished at: Sat Jan 05 04:44:54 JST 2013
[INFO] Final Memory: 29M/193M
[INFO] ------------------------------------------------------------------------

いろんな項目ができたみたい。

tree
.
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       └── jp
│   │           └── dip
│   │               └── oyasirazu
│   │                   └── morphologicalanalysis
│   │                       └── App.java
│   └── test
│       └── java
│           └── jp
│               └── dip
│                   └── oyasirazu
│                       └── morphologicalanalysis
│                           └── AppTest.java
└── target
    ├── classes
    │   └── jp
    │       └── dip
    │           └── oyasirazu
    │               └── morphologicalanalysis
    │                   └── App.class
    ├── site
    │   ├── apidocs
    │   │   ├── allclasses-frame.html
    │   │   ├── allclasses-noframe.html
    │   │   ├── constant-values.html
    │   │   ├── deprecated-list.html
    │   │   ├── help-doc.html
    │   │   ├── index-all.html
    │   │   ├── index.html
    │   │   ├── jp
    │   │   │   └── dip
    │   │   │       └── oyasirazu
    │   │   │           └── morphologicalanalysis
    │   │   │               ├── App.html
    │   │   │               ├── class-use
    │   │   │               │   └── App.html
    │   │   │               ├── package-frame.html
    │   │   │               ├── package-summary.html
    │   │   │               ├── package-tree.html
    │   │   │               └── package-use.html
    │   │   ├── overview-tree.html
    │   │   ├── package-list
    │   │   ├── resources
    │   │   │   ├── background.gif
    │   │   │   ├── tab.gif
    │   │   │   ├── titlebar_end.gif
    │   │   │   └── titlebar.gif
    │   │   └── stylesheet.css
    │   ├── css
    │   │   ├── maven-base.css
    │   │   ├── maven-theme.css
    │   │   ├── print.css
    │   │   └── site.css
    │   ├── dependencies.html
    │   ├── images
    │   │   ├── close.gif
    │   │   ├── collapsed.gif
    │   │   ├── expanded.gif
    │   │   ├── external.png
    │   │   ├── icon_error_sml.gif
    │   │   ├── icon_info_sml.gif
    │   │   ├── icon_success_sml.gif
    │   │   ├── icon_warning_sml.gif
    │   │   ├── logos
    │   │   │   ├── build-by-maven-black.png
    │   │   │   ├── build-by-maven-white.png
    │   │   │   └── maven-feather.png
    │   │   └── newwindow.png
    │   ├── index.html
    │   ├── integration.html
    │   ├── issue-tracking.html
    │   ├── license.html
    │   ├── mail-lists.html
    │   ├── plugin-management.html
    │   ├── project-info.html
    │   ├── project-summary.html
    │   ├── source-repository.html
    │   └── team-list.html
    ├── surefire
    ├── surefire-reports
    │   ├── jp.dip.oyasirazu.morphologicalanalysis.AppTest.txt
    │   └── TEST-jp.dip.oyasirazu.morphologicalanalysis.AppTest.xml
    └── test-classes
        └── jp
            └── dip
                └── oyasirazu
                    └── morphologicalanalysis
                        └── AppTest.class

37 directories, 54 files

target/site 下にいろいろできたみたい。 いろいろと書くべきものがあるのねぇといった具合で眺めるだけにしておこう。

  1. ローカルリポジトリへのインストール

アンインストール方法をまだ知らないので保留。 clean して今日はここまで。

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building MorphologicalAnalysis
[INFO]    task-segment: [clean]
[INFO] ------------------------------------------------------------------------
...(snip)
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting file set: /home/mikoto/projects/maven/MorphologicalAnalysis/target (included: [\*\*], excluded: [])
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8 seconds
[INFO] Finished at: Sat Jan 05 06:48:58 JST 2013
[INFO] Final Memory: 6M/55M
[INFO] ------------------------------------------------------------------------

うん、きれいになってますね。

tree
.
├── pom.xml
└── src
    ├── main
    │   └── java
    │       └── jp
    │           └── dip
    │               └── oyasirazu
    │                   └── morphologicalanalysis
    │                       └── App.java
    └── test
        └── java
            └── jp
                └── dip
                    └── oyasirazu
                        └── morphologicalanalysis
                            └── AppTest.java

13 directories, 3 files

参考文献

Maven | TECHSCORE(テックスコア)

2012/09/01

[Debian][鯖][作業記録] Debian 最小構成インストールから Apache2 + Redmine の index.html を拝むまで

やったこと

  1. redmine のインストール
  2. apache との連携設定

redmine の導入

# パッケージのインストール
aptitude install redmine

# コンテンツ(?)ファイル郡のコピー
#(デフォルトの場所が気に入らなかったので場所変更)
mkdir /var/redmine
cd /var/redmine
cp -a /usr/share/redmine/* ./

# 起動テスト
ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.5 application starting on http://127.0.0.1:3000
./script/../config/../vendor/rails/railties/lib/rails/gem_dependency.rb:119:Warning: Gem::Dependency#version_requirements is deprecated and will be removed on or after August 2010.  Use #requirement
/var/redmine/vendor/rails/railties/lib/rails/rack/log_tailer.rb:10:in `size': No such file or directory - /var/redmine/log/production.log (Errno::ENOENT)
        from /var/redmine/vendor/rails/railties/lib/rails/rack/log_tailer.rb:10:in `initialize'
        from /usr/lib/ruby/1.8/rack/builder.rb:54:in `new'
        from /usr/lib/ruby/1.8/rack/builder.rb:54:in `use'
        from /usr/lib/ruby/1.8/rack/builder.rb:73:in `call'
        from /usr/lib/ruby/1.8/rack/builder.rb:73:in `to_app'
        from /usr/lib/ruby/1.8/rack/builder.rb:71:in `inject'
        from /usr/lib/ruby/1.8/rack/builder.rb:73:in `each'
        from /usr/lib/ruby/1.8/rack/builder.rb:73:in `inject'
        from /usr/lib/ruby/1.8/rack/builder.rb:73:in `to_app'
        from /var/redmine/vendor/rails/railties/lib/commands/server.rb:95
        from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
        from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
        from script/server:3

# production.log がないと怒られたので作成する
mkdir log
touch log/production.log
ruby script/server webrick -e production

# 動作確認
w3m http://127.0.0.1:3000/

apache2 との連携設定

# 必要パッケージインストール
aptitude install apache2 libapache2-mod-passenger

# ここで指定したパスにアクセスすると、 rails が動く?
echo 'RailsBaseURI /redmine" >> /etc/apache2/httpd.conf

# apache の公開ディレクトリに、
# redmine のファイルへのシンボリックリンクを作成。
ln -s /var/redmine/public redmine

# apache スタート
/etc/init.d/apache2 restart

設定は、深く考えずに書きサイトよりコピペ的に拝借しました。

複数 Rails を行う設定なんかもあるようですね。 いつかは調べることになりそう。

参考文献

Apache + Passenger で作る Redmine 環境

複数アプリを動かす時のDocumentRootとRailsBaseURIの関係 | 世界 - daipresents!!

2012/08/23

[作業記録][Debian][KVM] Debian 最小構成から KVM 仮想マシンを作成するまで

Debian で KVM

事前準備

  1. 最初の HDD に ESXi が残ったままだったので、 grub がインストールできなかった...。
  2. grub インストールをスキップし、とりあえずインストールを完了させる。
  3. netinst CD を使って、レスキューモードで起動。
  4. なんか使い方解らんかった...。
  5. ということで再インストール。
  6. ssh をインストール。

結局のところ、 Debian 最小構成 + SSH からのスタートということで。 さて、ここから KVM.

事前準備

aptitude install kvm
adduser mikoto kvm
shutdown -r now

※ mikoto を kvm グループに入れてますが、ブリッジ接続の為に、 sudo(or root ユーザ) で起動することになりました。

VM 作成

mkdir -p ~/vms/vdebian
kvm-img create -f qcow2 ~/vms/vdebian/vdebian.img 10GB

VM 実行してみる

iso はたまたま HDD にあった Debian の LiveCD イメージを流用。 インストール不要ですぐ動作確認・環境確認ができて意外と便利でした。

ホスト OS に X サーバを入れていないので、 VNC 接続でインストールする。

kvm -hda vdebian.img -cdrom ~/debian-live-6.0.4md64-standard.iso -boot d -m 2048 -vnc :0,password -monitor stdio 
cQEMU 0.12.5 monitor - type 'help' for more information
(qemu) change vnc password
Password: **********
(qemu) 

これで、 VNC クライアントで VM に接続できるようになった。

今は、 qemu への入力をファイルに書いてリダイレクトで流し込むようにしている。 本当は設定ファイルとかありそうですがね。

kvm -hda vdebian.img -cdrom ~/debian-live-6.0.4md64-standard.iso -boot d -m 2048 -vnc :0,password -monitor stdio < vdebian.conf
cQEMU 0.12.5 monitor - type 'help' for more information
(qemu) change vnc password
Password: **********
(qemu) 

これだけだと、 NAT 接続の設定のようなので、ブリッジの設定を行う必要がある。

ブリッジの設定

/etc/network/interfaces の編集

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo br0
iface lo inet loopback

iface eth0 inet manual

# The primary network interface
allow-hotplug eth0
iface br0 inet static
    address 192.168.1.111
    netmask 255.255.255.0
    gateway 192.168.1.1
    bridge_ports eth0
    bridge_stp off

ネットワークの再起動

service networking restart

VM 起動

最終的に起動はこんな感じで。

  • ブートでバイスを sda に設定
  • qemu コンソールに接続したい場合は telnet を使用
  • ホストに X が無いので、 -vnc は設定しておく。(無いとエラーで怒られるので)
  • (基本的にコンソールでしか使わないので、 ssh の設定さえしてしまえばこっちのもの)
  • デーモンとして起動
kvm -hda vdebian.img -boot c -m 2048 -monitor telnet:127.0.0.1:10023,server,nowait -net nic,macaddr=12:34:56:78:90:12,model=e1000 -net tap,ifname=tap0 -vnc none -daemonize

参考文献

openSUSE 12.2: 第13章 QEMU モニタを利用した仮想マシンの管理

vnc設定に挑戦してみる - ymkoの日記

KVMを使う(ネットワーク設定編) « さくらインターネット研究所

DebianにインストールしたKVMの仮想OSで、ブリッジ接続が使えるようにする - Symfoware

2012/04/05

[Memo]タイトルとURLを表示するブックマークレット

コピペ支援に貼り付け。
表示中のページのタイトルとURLを、
「"TITLE":URL」の形式でダイアログ表示するブックマークレット。

javascript:(%20%20function(){%20%20%20var%20url=location.href;%20%20%20var%20title=document.title;%20%20%20var%20date%20=%20new%20Date();%20%20%20var%20year%20=%20date.getYear();%20%20%20var%20mon%20=%20date.getMonth()%20+%201;%20%20%20var%20day%20=%20date.getDate();%20%20%20year%20=%20(year%20<%202000)%20?%20year+1900%20:%20year;%20%20%20if%20(mon%20<%2010)%20{%20%20%20%20mon%20=%20"0"%20+%20mon;%20%20%20}%20%20%20if%20(day%20<%2010)%20{%20%20%20%20day%20=%20"0"%20+%20day;%20%20%20}%20%20%20var%20dateStr%20=%20year%20+%20"/"%20+%20mon%20+%20"/"%20+%20day;%20%20%20var%20linkTag%20=%20'%22'%20+%20title%20+%20'%22:'%20+%20url;%20%20%20var%20x%20=%20prompt('"title":url',linkTag);%20%20}%20)()

2011/12/01

[Android][Tool]Eclipse のビルド前に指定した処理を行ってほしい

■ 要求

Eclipse のビルド前に指定した処理を行ってほしい。
(ビルドするたび、ソースファイルを assets にコピーしたい)

■ 実現方法

build.xml を作り、Eclipse の Run 実行前(ビルド前)に実行してもらう。

■ 前提条件
  1. eclipse 導入済み
  2. android sdk 導入済み
  3. eclipse adt plugin 導入済み
  4. ant インストール済み
  5. ant へのパスが通っている

■ 手順概要
  1. build.xml を作成する
  2. ビルド前に build.xml の ant を実行するように設定する

■ 1. build.xml を作成する

今回は assets へのコピーのみなのでこんな感じ。

== build.xml ==
<project basedir="." default="copy" name="ProjectName">
   <target name="copy">
      <copy
         file="src/xxx.java"
         tofile="assets/xxx.java"
      />
   </target>
</project>
===============

こんなかんじで、コピー元(file)とコピー先(tofile)を指定し、プロジェクトのルートディレクトリ直下に保存。

■ 2. ビルド前に build.xml の ant を実行するように設定する
プロジェクトを右クリック-> "Properties" -> "Builders" -> "Import" -> "ProjectName build.xml" -> "OK"
Builders の一覧に、 "ProjectName build.xml" が追加されるので、 "UP" ボタンで一覧の先頭に移動する。

これで、ビルド時に、Android 用の色々な処理が走る前に、上で指定した build.xml が走る。

2011/09/09

[Android][OASIZ]「OASIZ 作業記録」 Version 1.0 を公開しました。

Android Market にて、「OASIZ 作業記録」 Version 1.0 を公開しました。
https://market.android.com/details?id=jp.dip.oyasirazu.timelogger

github からも、野良 apk のダウンロードが可能です。
https://github.com/mikoto2000/OASIZ_TimeLogger/archives/master

Version 1.0 追加機能
- 文字色指定機能追加
- 作業履歴タップで、作業名を入力する機能の追加
- 一秒未満の作業を無視するように修正
- ライセンス情報の表示機能追加

色の選択に、 SuperdryColorPickerLib を使用させて頂きました。
(https://github.com/superdry/SuperdryColorPickerLib)

2011/08/23

[Android][OASIZ]「OASIZ 作業記録」 Version 0.525 を公開しました。

Android Market にて、「OASIZ 作業記録」 Version 0.525 を公開しました。
https://market.android.com/details?id=jp.dip.oyasirazu.timelogger

github からも、野良 apk のダウンロードが可能です。
https://github.com/mikoto2000/OASIZ_TimeLogger/archives/master

ふー。
確認不足でまともに動かないものをアップロードした上に、今日まで気づかないとは。
穴があったら入りたい...。
あと、 github のダウンロード機能を勘違いしていました。
前回の記事からはダウンロードできないみたいですね。
改めて最新版 apk ファイルをアップロードしました。
Android マーケット・github どちらからもまともな apk がダウンロードできるようになりました。

2011/08/22

「OASIZ 作業記録」を公開しました。

Android Market にて、「OASIZ 作業記録」を公開しました。
https://market.android.com/details?id=jp.dip.oyasirazu.timelogger

github からも、野良 apk のダウンロードが可能です。
https://github.com/mikoto2000/OASIZ_TimeLogger/tree/master/bin/0.5

以下、 README より引用。

■ これは何?
時間記録支援アプリケーションです。


■ 何ができるの?

- 作業名を指定して、作業時間を記録すること
- 作業名を後から変更すること
- 作業記録をエクスポートすること
- 壁紙を選択すること

* 詳細画面のリストをタップすることで、選択した作業名を修正できます。
* 詳細画面のメニューから、 ACTION_SEND に対応したアクティビティに作業記録を送ることができます。
* 詳細画面のメニューに、壁紙選択メニューがあります

このアプリケーションは、無保証です、
不具合があるかもしれません。
個人の責任で使用してください。

github にてソースコードを公開しています。
https://github.com/mikoto2000/OASIZ_TimeLogger


■変更履歴
2011/08/21 Version 0.5 を公開しました。


■ TODO
・テストを真面目にする
・縦画面と横画面で別々の背景画像が指定できるとよいね。
・説明書的なものが必要か?
  (画面オーバレイで出てくるヘルプとか理想)
・テーマ指定(最低でも文字色くらいは...)
・入力補助機能が欲しい
・メモ書きくらいできるようにしたほうが良い?

2011/06/18

[Memo]Vimperator で Evernote プラグインを便利に使う

Evernote Web Clipper プラグインを入れる
Evernote Web Clipper :: Add-ons for Firefox


~/.vimperatorrc に追加
command clip javascript Evernote.Overlay.init(null)
これで、「:clip」と打つと、Evernote のクリップウインドウが表示されるようになる。
一度起動すると、2回め以降はbookmarkletよりもきびきび動く気がするので幸せ。

2011/05/16

[Android]Galaxy Tab のバックアップとリストア

前提条件

Galaxy Tab の root を取得していること。

カーネルイメージを転送するツール(Heimdall)の入手

Heimdall – Glass Echidna
上記ページから deb パッケージをダウンロードする。
フロントエンドは、 libqtcore4 が必要らしいのでそれもインストール
sudo aptitude install libqtcore4
sudo dpkg -i heimdall_1.1.1-1_amd64.deb heimdall-frontend_1.1.1-1_amd64.deb
squeez では libqtcore4.6 までしか提供されていない。
heimdall が依存しているのは 4.7。
一時的に aptline を sid にして対応する。
...と思ったが、qtcore4 依存のものが多くて不安になったのでフロントエンドは保留。

イメージのバックアップ

dd if=/dev/block/bml1 of=/sdcard/boot.bin bs=4096
dd if=/dev/block/bml2 of=/sdcard/pit.pit bs=4096
dd if=/dev/block/stl3 of=/sdcard/efs.rfs bs=4096
dd if=/dev/block/bml4 of=/sdcard/Sbl.bin bs=4096
dd if=/dev/block/stl6 of=/sdcard/param.lfs bs=4096
dd if=/dev/block/bml7 of=/sdcard/zImage bs=4096
dd if=/dev/block/stl9 of=/sdcard/factoryfs.rfs bs=4096
dd if=/dev/block/stl10 of=/sdcard/dbdata.rfs bs=4096
dd if=/dev/block/stl11 of=/sdcard/cache.rfs bs=4096
dd if=/dev/block/bml12 of=/sdcard/modem.bin bs=4096 
/data/bin/busybox tar -czvf /sdcard/data.tar.gz /data

adb pull /sdcard/param.lfs .
adb pull /sdcard/zImage .
adb pull /sdcard/factoryfs.rfs .
adb pull /sdcard/dbdata.rfs .
adb pull /sdcard/cache.rfs .
adb pull /sdcard/modem.bin .
adb pull /sdcard/efs.rfs .
adb pull /sdcard/boot.bin .
adb pull /sdcard/Sbl.bin .
adb pull /sdcard/pit.pit .
adb pull /sdcard/data.tar.gz .

バックアップのリストア

データ領域のリストア
adb push data.tar.gz /sdcard/data.tar.gz
adb shell su -c "tar -zxvf /sdcard/data.tar.gz"
その他領域のリストア
adb reboot download
heimdall flash --kernel zImage --factoryfs factoryfs.rfs --modem modem.bin --cache cache.rfs --dbdata dbdata.rfs --param param.lfs

参考文献

後で見る

カスタム ROM 作成のための足がかりになるか?
HOWTO: Unpack, Edit, and Re-Pack Boot Images - Android Wiki

2011/05/05

[Android]Galaxy Tab root 化

galaxy tab を root 化したい

ディスク(?)イメージごとバックアップをとりたい。
カスタム ROM を入れたり、最終的には Android Framework 以下の部分に手を入れてみたかったり。
結論から言うと、下記ページをみながら作業するといいよ。で終了。
dynabookAZをSuperOneClick抜きでルート化する - D!
以下、作業記録。
作業記録
以下のツールで root 化できるらしい。
[APP]SuperOneClick v1.9.1 (Root, Unroot, Enable Non-Market App) - xda-developers
mono のインストールが必要なのでインストール。
sudo aptitude install mono-2.0-devel
(libmono の一部で良い気もするが面倒なので全部インストール。)
** (SuperOneClick.exe:24913): WARNING **: The following assembly referenced from /home/mikoto/Download/SuperOneClick1.9.1/SuperOneClick.exe could not be loaded:
     Assembly:   System.Windows.Forms    (assemblyref_index=2)
     Version:    2.0.0.0
     Public Key: b77a5c561934e089
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/mikoto/Download/SuperOneClick1.9.1/).


** (SuperOneClick.exe:24913): WARNING **: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.

** (SuperOneClick.exe:24913): WARNING **: Missing method EnableVisualStyles in assembly /home/mikoto/Download/SuperOneClick1.9.1/SuperOneClick.exe, type System.Windows.Forms.Application

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies.
File name: 'System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
...うーむ。Forms が無い?それっぽいパッケージを追加。
sudo aptitude install libmono-winforms2.0-cil
よし、動いた。
とおもいきやルート化中にフリーズ。 chmod で失敗している?エラーログも吐かないし原因不明。
下記ページを見て手動セットアップ。
dynabookAZをSuperOneClick抜きでルート化する - D!
取り合えすこれでルート化はできたので、イメージバックアップをとってみよう。

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
さざなみフォントをインストールしないと文字化けするみたい。

2010/01/08

[Java]整数の各桁を足し合わせる問題

■ 整数の各桁を足し合わせる問題

5分で終わると聞いてやってみました。
5分問題 やってみた。 - 地獄の猫日記

■ ということで、作ってみた

負数が入力だった場合どうすれば良いのか解らなかったので、とりあえずマイナスは無視して数字を全部足す事にした。
・無難(?)な回答
public class PlaceNumberAdder02 {
   long number;
   public PlaceNumberAdder02(long number){
      setNumber(number);
   }

   public long addNumbers(){
      long number = this.number;
      long sum = 0;
      
      number = Math.abs(number);
      
      do {
         sum += number % 10;
      } while((number /= 10) != 0);
      
      return sum;
   }
   
   public void setNumber(long number){
      this.number = number;
   }
   
   public long getNumber(){
      return number;
   }
}
・変態(?)回答
public class PlaceNumberAdder01 {
   long number;
   public PlaceNumberAdder01(long number){
      setNumber(number);
   }
   
   public long addNumbers(){
      String numberStr = String.valueOf(number);
      long sum = 0;

      if(number < 0){
         numberStr = numberStr.substring(1);
      }
      
      for(int i = 0; i < numberStr.length(); i++){
         sum += Integer.parseInt(numberStr.substring(i, i+1));
      }
      
      return sum;
   }
   
   public void setNumber(long number){
      this.number = number;
   }
   
   public long getNumber(){
      return number;
   }
}
変態回答が01なのが問題だよねー。
・...言い訳をさせてもらうと
「3の倍数 or 3を含む」数の時にアホと表示するプログラムを書いた時に、数字を文字に変換して処理を行ったもんで、今回もそののりで書いてみた感じ。
普通に処理した場合(PlaceNumberAdder02)に比べて2から2.5倍くらい遅くなります。
しかし、プログラムの形的にも面白みの無い物になってしまったなぁ...。
あと、名前とかもっと考えようよ、自分。

■ テスト

・テストコード(とは言えない何か)
public class PlaceNumberAdderTest {
   static final long l1 = 1234, l2 = 9999, l3 = -65535;
   
   public static void main(String[] args) {

      System.out.println("Number = " + l1);

      PlaceNumberAdder01 pna1 = new PlaceNumberAdder01(l1);
      System.out.println("pna1: " + pna1.addNumbers());
      
      PlaceNumberAdder02 pna2 = new PlaceNumberAdder02(l1);
      System.out.println("pna2: " + pna2.addNumbers());

      System.out.println();
      System.out.println("Number = " + l2);

      pna1.setNumber(l2);
      System.out.println("pna1: " + pna1.addNumbers());
      
      pna2.setNumber(l2);
      System.out.println("pna2: " + pna2.addNumbers());

      System.out.println();
      System.out.println("Number = " + l3);

      pna1.setNumber(l3);
      System.out.println("pna1: " + pna1.addNumbers());
      
      pna2.setNumber(l3);
      System.out.println("pna2: " + pna2.addNumbers());

   }
}
・実行結果
Number = 1234
pna1: 10
pna2: 10

Number = 9999
pna1: 36
pna2: 36

Number = -65535
pna1: 24
pna2: 24
こんな感じ。

2009/12/17

[Java]カード配り問題に挑戦

■ カード配り問題に挑戦

qune: プログラミングメモ - カード配り問題とか
10分で終わると聞いてやってみました。
結局20分かかりました...。

■ ソースコード

public class Cards {
 public String[] deal(int numPlayers, String deck){
  String[] playerCards = new String[numPlayers];
  int cardNum = deck.length();
  
  //配列初期化
  for(int i = 0; i < numPlayers; i++){
   playerCards[i] = "";
  }
  
  //プレイヤーに同じ数のカードを配るために、余るカードは抜けておく
  int amari = cardNum % numPlayers; 
  deck = deck.substring(0, cardNum - amari);
  cardNum = deck.length();
  
  //一人に一枚づつすら配れない場合は誰にもカードを配らない
  if(cardNum == 0){ return playerCards; }
  
  //カードを配る
  for(int i = 0; i < cardNum; i++){
   playerCards[i%numPlayers] += deck.charAt(i);
  }
  
  //結果を返す
  return playerCards;
 }
}

public class CardsTest {
 public static void main(String[] args) {
  int numPlayers;
  String deck;
  String[] results;
  
  Cards cards = new Cards();

  //例1
  numPlayers = 6;
  deck = "012345012345012345";
  //Returns: {"000", "111", "222", "333", "444", "555" }
  results = cards.deal(numPlayers, deck);
  
  for(String result : results){
   System.out.print("\""+result+"\" ");
  }
  System.out.println();

  //例2
  numPlayers = 4;
  deck = "111122223333";
  //Returns: {"123", "123", "123", "123" }

  results = cards.deal(numPlayers, deck);
  
  for(String result : results){
   System.out.print("\""+result+"\" ");
  }
  System.out.println();

  //例3  
  numPlayers = 1;
  deck = "012345012345012345";
  //Returns: {"012345012345012345" }

  results = cards.deal(numPlayers, deck);
  
  for(String result : results){
   System.out.print("\""+result+"\" ");
  }
  System.out.println();
  
  //例4
  numPlayers = 6;
  deck = "01234";
  //Returns: {"", "", "", "", "", "" }

  results = cards.deal(numPlayers, deck);
  
  for(String result : results){
   System.out.print("\""+result+"\" ");
  }
  System.out.println();
  
  //例5
  numPlayers = 2;
  deck = "";
  //Returns: {"", "" }

  results = cards.deal(numPlayers, deck);
  
  for(String result : results){
   System.out.print("\""+result+"\" ");
  }
  System.out.println();
 }
}

■ 出力結果

"000" "111" "222" "333" "444" "555" 
"123" "123" "123" "123" 
"012345012345012345" 
"" "" "" "" "" "" 
"" "" 
ソースが無駄に長かった...。
そして別にsubstringする必要が無かった...orz
//プレイヤーに同じ数のカードを配るために、余るカードは抜けておく
int amari = cardNum % numPlayers; 
deck = deck.substring(0, cardNum - amari);
cardNum = deck.length();
上記は無駄。以下でokであることを確認...orz
cardNum -= cardNum % numPlayers;
いちいち文字列を作り直さないで、for文の繰り替えし数で調整すればいいじゃない。という話。うへぇ。

2009/12/05

[普通の日記]レイアウトがひどい

ファイル名とかコマンドとかいっぱいでてくる場合は気をつけないなぁ...。

[Debian]ネットにつながらなくなりました...。

■ ネットにつながらなくなりました...。

 インストール後しばらくは普通に使えていたのですがねぇ...。
dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
 こんな感じのがひたすら表示されていく感じ。IPを静的割当にしてもつながらない、というかルータへの ping すら通らないという...。
 取り合えず ifconfig。eth0 の認識を確認。それと同時にものすごい勢いで増えていく損失パケット(dropped)を確認。

■ 原因をさぐる

 やっぱり google 検索。「debian ifconfig 損失」で検索。 NIC のドライバがおかしいとこうなるらしい。Debian が NIC 用にロードしたモジュールが、実際はその NIC に対応していなかったって感じ?

■ NIC のドライバをインストールしよう

 今回の本題。
・このノートパソコンの NIC は何だ?
 初めのうちはきちんと動いているみたいだったから特に調べてませんよ? PC の型番で検索をかけて NIC の型番を調べる。
 NIC = Realtek RTL 8168D/8111D Family PCI-E GBE NIC
 (【NVIDIA ION】ドスパラ Prime Note Cresion NA まとめページ【Atom 330】 - スペックより)
 そういえばさっき調べたページでも蟹さんはちょっとアレという話題がでていたなぁ。
・ドライバ入手
 Realteck のホームページから r8168-8.015.00.tar.bz2 をダウンロード。解凍、READMEを読む。ふむ、ビルドにはヘッダやら何やら、新たにパッケージをインストールする必要があるらしい。
・必要なパッケージのダウンロード
 カーネルヘッダーパッケージが必要らしい。自分が使っているカーネルは 2.6.26-2-amd64(?) だから、ダウンロードするのは「linux-headers-2.6.26-2-amd64」。
 もちろん aptitude とか使えないので、別 PC にて手動ダウンロード。debian パッケージの内容を検索(http://www.debian.org/distrib/packages#search_packages) で「linux-headers-2.6.26-2」を検索し、「linux-headers-2.6.26-2-amd64」パッケージをダウンロード。芋づる式に依存パッケージ、依存パッケージの依存パッケージ...とか、全部もってくる。
 もってきたパッケージを USB 経由で debian へ。
・必要なパッケージのインストール
 もってきたパッケージがすべて揃っているディレクトリで、dpkg。
: dpkg -i *
 何か言われると思ったけれどすんなり完了しました。
・ドライバのビルド
 間違ってロードされているモジュールの削除。
: rmmod r8169
 正しいモジュールのビルド
: make clean modules
: make install
 変更の適用(?)
: depmod -a
 正しいモジュールのロード
: modprobe r8168
 確認
: ifconfig -a
・ドライバの自動ロード設定
 mkinitramfs で、起動時に r8168 をロードしてくれる initrd を作成する。
: mkinitramfs -o initrd.img-2.6.26-2-amd64 2.6.26-2-amd64
 元の initrd のバックアップをとったのち、今作った initrd を /boot に突っ込む。
: mv /boot/initrd.img-2.6.26-2-amd64 /boot/initrd.img-2.6.26-2-amd64.bkup
: mv initrd.img-2.6.26-2-amd64 /boot/
 これで、起動時に自動で r8168 をロードしてくれる。...はず。

■ ネットにつながるようになりました!

 めでたしめでたし。

2009/11/24

[電子工作]組み込みLinuxなら何でも良いわけで...

Chumbyの代わりにBeagle Boardという手もあるなぁ。Chumbyより安いし。
Digi-Key japanで約15000円也。
LM3674MF-ADJ/NOPBも250円くらいで売ってるみたい。
もう少しBeagle Boadについて調べたら注文してみましょうかね?

2009/11/20

[電子工作]Chumby修理計画?

前回の続き?
あきらめモード満点だったんですが、kinnekoさんからコメントをいただきまして、
kinneko さんのコメント...

http://tech.cerevo.com/blog/archives/50 このへん?

だそうなので、このページを真似して抵抗やら電圧やらを測ってみた。
  • R300=12V
  • J302=1.4V, 125Ω
  • J303=5.3V, 400Ω
  • J304=1.9V, 155Ω
3.3Vがだめになったせいでいろいろ不具合がおきたということかしら?
作業中にもうひとつわかったことが、U300が熱いということ。
やけどしそうになりました。
U302は指で触れる程度なのにU300は触ってたらやけどする、絶対。
これが原因か?
この場合、U300を新品交換って感じでよいのだろうか?
というかそれくらいしか思いつかないのでやってみようか。
どうせこのままでも動かないわけだし。
しかし、その辺で売ってるのか?LM3674ってやつは。

2009/11/19

[電子工作]Chumby壊れてた

シリアルコンソールケーブル作るまでもなかった。
シリアルコンソールの+3VとGNDをテスターで計ったら1.5V位しか電圧がなかった...orz
これはもう自分じゃ手に負えないわ。
さて、これからどうしようかねぇ...。

2009/11/18

[普通の日記]今週のノルマ終了(したと思いたい...)

Twitter, 気付けば13 days ago...
いやいや、P3P廃人になっていたわけではありませんよ?決して。

さて、やらねばならぬことに一区切りつけたので、あと1週間くらいは通常運行モードのはず。
そういうわけで、やりたいことを列挙してみようか。
  1. Bioroidを弄る
  2. シリアルコンソールケーブル作成
  3. 壊れた(?)Chumbyの動作確認
  4. AVRマイコン入門の続き
大威張りで「今週中にBioroidで何か組み立てますよ」
とか言っちゃったもんだからとりあえず何か組み立てねば...。
金曜までには3番まで終わらせる勢いでやっていきたいですね。

さて、それではこれからBioroidの説明書を読みますよ。

2009/11/04

[電子工作]Chumbyが壊れた

...と断言できないのがもどかしい。
タッチスクリーンの映像が微妙に乱れ、ずっとタッチしっぱなしだと認識される。
たぶんタッチスクリーンがあれになったのだと思うけれど、
タッチスクリーンを外して電源をつけてもSSHが復活しない...。
そうなってくると、なんだか基盤が熱すぎるような気がしてくる...。

そもそもタッチスクリーンを外して電源をつけたときにどういう挙動とるのか、
そこから解ってないし、自分。

うわー、基盤かね?タッチスクリーンかね?
とりあえずタッチスクリーン、SSH以外の入出力で動作確認が必要。

ということで、とりあえず秋月にレベルコンバータを注文しました。
シリアルコンソールケーブルを作って、そちらで動作確認します。
その前にシリアルコンソールケーブルの動作確認を何かで行う必要があるのか...。
(初自作、シリアルコンソールケーブル)

壊れたChumbyの画面画像ではほとんどわからないけれど、マルやら文字やらが軒並み右側へひげを出している。(うまい言葉が見つからなかった...)

いろいろと微妙な時期に壊れてくれちゃったもので、Chumbyを買いなおすかどうするか悩みどころですわ。(いや、まだ復帰不可能だと決まったわけではないですが...)

2009/11/02

[普通の日記]色々と終了

終了した後3日間位寝込んだわけですが、後は1月までは通常運行のはず。 色々お預けしていた物事を進めようかしらね。
  • ChumbyでV4L2&画像処理
  • AVRマイコン入門
  • CUDA入門
とりあえずはChumbyでV4L2してロボ制御って感じでひとつ。

2009/09/18

やっと見つかった…。

わかりにくいよ!この乗り場!
夕飯食べる時間がねいですわ。

岡山到着

回転処理が意外に面倒なようなそうでないような…。

VGA

画質的にはやっぱりVGAくらい欲しいと思った、個人的には。 ホームページとかブログとか画像サイズとか的にはどうなのだろうかね…?

特急やくも

どのくらいのサイズがよいのやら…。

松江駅

画像投稿テストがてら報告。
これから千葉に帰ります。

2009/07/09

[普通の日記][見た]「透明マント」を応用、存在しないものを見せるメタマテリアル技術

メタマテリアルを用いて不透明な物質が光を通すかのように見せる手法。「壁にとりつければ反対側が見通せる「穴」になるデバイス」という例が挙げられています。
[2009/07/09引用]「透明マント」を応用、存在しないものを見せるメタマテリアル技術(http://japanese.engadget.com/2009/07/08/illusion-device/)
これを思い出した。
http://portal.nifty.com/2009/03/10/a/

2009/07/07

[普通の日記]舌、完治

ものが普通に食べられる幸せ。プライスレス。

2009/07/01

[普通の日記]舌を噛んだ

 血こそ出なかったものの、噛んだところが窪んでしまった...。普通に口を閉じているだけでも歯にあたってものすごく痛い。さすがに我慢できなくなって、今さっき薬局で薬を探してみた。へぇー、口内用の軟膏とかあるのね。とか感心。ちょうど良さそうな薬を発見したので買ってみた。

 貼るタイプだから歯に当たった時の刺激をやわらげてくれそうということで購入。早速貼ってみたんだけれども、ものすごい違和感、ってか舌に貼るものじゃないかこれ。今にも外れそうで気が気でない。痛み自体は気にならなくなったけれど。(気が散っているだけという気もする。)

 苦痛の伴う食事というのはかなりのストレスなので、早く治ってほしいのだがどうしたものかね?

2009/06/18

[普通の日記][ロボット]自分会議

■ ちょっと体調を崩した。

ゆえに、ぼけーっと寝ていた。
寝ている間は暇なので、自分会議を開いた。
そしたら意外とやりたい事とかやらねばならぬ事とか溜まってた。
うへー。

■ やりたいこと

  1. chumbyでOpenCV
  2. ロボのモーション作成入門記事を書く
  3. フレームから作る自作ロボとか

■ chumby de OpenCV

chumbyでWebカメラ+haarDetectObjects()とか使って物体検知したい。

・現状

WebカメラもhaarDetectObjects()も一応乗った、動いた。
ただし、今一歩のところで満足いく結果に届かず。
  • Webカメラ:OpenCVで画像取得すると、画像の下半分がバグる。画像の取得速度の問題か?
  • HaarDetectObjects():セグフォ。ちょっとこの関数のソースを見てみたけれどお手上げってかんじ。どうしたものか。

■ ロボのモーション作成入門記事を書く

次の世代のためのチュートリアル文章の作成。
ロボ付属のモーションエディタ特有のチュートリアルになるのは仕方ないか。
基本の使い方と、ユーザ関数の作りどころ(?)的なTipsでも書けば良いのか?

■ フレームから作る自作ロボとか

chumbyにモータ4個と車輪、Webカメラ付けて遊びたい。
RC戦車とかのシャーシを丸々流用できるかなとか思ったらRCって高いのね。
13000円とか、タミヤの工作キット+(ベニヤ板orプラ板)で自作かな、値段的に。
いや、まぁ、そもそもOpenCVに問題があるからどうしたものかとうい状態ですがね。

■ そういえば

ミニ四駆に付属されているような歯車とか、シャフトとか、直径3から5mm位の鉄パイプ的なものとかはどんな店で売っているのかね?
ホームセンターとか模型屋とかでもみかけないのですが...。
うちの近くの店の品揃えが悪いだけ?

■ いつになく

長文。つかれた。

■ 願い

どうかやるやる詐欺になりませんよーに。
なむなむ。

[鯖]家鯖がダウンしているのでとりあえずこっちにメモ...

cupsでhttps通信をしたくないときは、
DefaultEncryption Never
/etc/cups/cupsd.confに上記記述を入れる。
いや、きちんと認証局立てて...とかやったほうがいいのはわかるよ?
でもさ、...ねぇ?

2009/06/04

[ロボット]うれしさ1割、情けなさ8割

残り1割は何だ...?

とりあえず、itoa使って変換するよりは、sprintf使って変換したほうがよいことはわかった。
itoaの使い方間違いに気づくのに約12時間かかるとかもう...orz

とりあえず、ロボット側のコマンド受付プログラムは完成。
後はコマンドを送る側を作れば見栄えはよくなるね。

.........teratermでいいんじゃね?って気持ち7割。

2009/05/26

[普通の日記][ネタと信じたい]あぁぁ...

明日の中間報告を前にネガティブスイッチが入りましたよ?
なんか中学時代を思い出しちゃったりしちゃって...。
南中コミュとか見てる場合じゃないから!
自己紹介が未だ20歳のままとか気付かなくてよかったから!
アーオモイデハイツモキレイダナァー。
............。
いや、ただの現実逃避だけれども。

2009/05/08

モンティ・ホール問題

モンティホール問題 - Wikipedia
  1. 3つのドア (A, B, C) に(景品、ヤギ、ヤギ)がランダムに入っている。
  2. プレイヤーはドアを1つ選ぶ。
  3. プレイヤーがどのドアを選んだかにかかわらず、ホストは残りのドアのうち1つを必ず開ける。
  4. ホストは景品のあるドアを知っていて、必ずヤギの入っているドアを開ける。もし、両方ともヤギだった場合はプレイヤーの見えないところでコインを投げて決める。
なるほど、このルールで必ずドアを変更する場合、 『運悪く最初に選んだドアが当たりだった時だけ変更した先のドアははずれ』 ということになるわけね。 なかなか理解できなかったけどようやくわかった。 あー、すっきりした。

2009/05/07

ロボットについていろいろ

この動画を見ていておもったのだけれども、学園祭&オープンキャンパス展示用ロボットとしてはもっと『おもちゃっぽさ』を出してもよいのかも知れない。
というか、スマートなモーションが作れないからこれくらい妥協してもいいかなぁー的な何か...。
コントローラーの方はいい感じなのができそう(もちろん、まだ、できていない)なだけにモーションをどうしたものかと。

2009/01/13

[普通の日記]サーバが応答しない...

多分DDNSアップデートデーモンがうまく動作していないのだろうなぁ...。
今から家に帰れと?外泊する気満々だったんですけどー?
うわー。書きながらものすごいイライラムカムカしてきましたよ!うがー!

2008/12/25

[見た]本日見たもの

■ PCが怪奇現象をおこすUSBいたずらデバイス Phantom Keystroker - Engadget Japanese

PCが怪奇現象をおこすUSBいたずらデバイス Phantom Keystroker - Engadget Japanese
こういうの欲しいな。
ってか、作れるようになりたい。
USBHIDとか。

2008/12/18

[普通の日記]ああぁ...

一晩でコーラ1リットルを飲み干してしまった。
これは太る。

2008/12/09

[普通の日記][見た]本日の「見た」

■ HP Mini 1000 ミニノート発売日決定

HP Mini 1000 ミニノート発売日決>定、12月10日 0時から - Engadget Japanese
おぉ...。このデザインは...。
物欲が刺激されるなぁ...。


■ アップル製ではないMac的な何か

アップル製ではないMac的な何か OpeniMacPRO - Engadget Japanese ライセンスとかいろいろな問題は置いておいて、iMacという名前なのにミドルタワーという大胆さが素敵だと思った。
またOpen iMacの上位版は、ただでさえクローンなのに「iMac」かつ「PRO」というアイデンティティーの危機をはらんだ「Open iMac PRO」。
[2008/12/09引用]アップル製ではないMac的な何か OpeniMacPRO - Engadget Japanese(http://japanese.engadget.com/2008/12/05/mac-openimacpro/)
この言い回しもツボ。


■ Nikonの顔認識技術はすごい!の広告がすごい


[普通の日記]あぁぁ...また自宅サーバが

落ちてますね。復旧は明日、12/11午後9:00頃を予定。
いや、多分DDNSの更新ミスなのですが...。
更新プログラムがうまく動いてくれないのよね...。
いっそ有料レンタルサーバとか借りれば気合い入って毎日更新とかするのかしら?

2008/10/26

真夜中の公園

怖っ!
そんなの撮影している俺、もっと怖っ!!

やべ、テンション上がってきたよ。

Q.=?iso-2022-jp?B?GyRCJDMkMyRPJEkkMyRHJDkkKyEpGyhC?=

A.千葉みなとです。

.........あれぇ!?

2008/10/25

そうか...

こういう時に携帯から投稿できると便利なのね。

...とか、終電を逃したバイト帰りの駅のホームで思った。

あー...。終電を逃したバイト帰りの頭で文章を書くと駄目だね、なにがどれにかかっているのやら...。

ツイッター的な何かのほうが思考垂れ流しにはむいているのかね?

.........。

船橋の漫画喫茶でもいくかな、...財布が軽いぜ(/_;)

2008/08/20

Vp-pってなによ?

Vp-pとは波形の上のpeakから下向きのpeak=谷底までの振幅のこと
[2008/08/19引用]amp(http://homepage1.nifty.com/th3/amp.htm)
なんですって...。
どうしてこんなことを調べているのかは秘密。
別に真空管アンプを作りたいわけではない。

2008/07/02

Vistaが少し好きになったカモ

自分の使い方では、Vistaになっても特に問題なく使えてしまっていたので、今までVistaを好きでも嫌いでもない感じだったけれど、この記事を見つけて少し好きになったかもしれない。
バッチファイルとか作っていろいろ遊べそうね。