祈り、働け初プレイ

祈り、働けを初プレイ。
20120226-180810.jpg
4人でショートプレイと通常プレイを一回ずつ。結果は108点2位タイと159点4位。プレイ中に地形の配置の仕方についてルールの解釈が誤っていたことが発覚。本来だと写真のように地形配置はズレないっぽい。2回目のプレイはパンとワインから聖遺物を狙っていったが、一度聖遺物に交換したらコマを回収するまで同じ事が行えないことに直前まで気付かず。あと村を甘くみていた。
非常に頭を使うゲームであったが機会があればもう一度プレイしたい。

VNCとVPNのインストール

Linux Mint 12にVNCとVPNをインストールし、iPhoneからリモート接続できるように設定した。

  1. IPアドレスの固定化
    [アプリケーション]-[その他]-[ネットワーク接続]でNetworkManagerを開き、IPアドレスを固定に設定する。
  2. SSHのインストール
    $ sudo apt-get install ssh
  3. VNCのインストール
    本来はvnc4serverをインストールしたかったがディスプレイマネージャがlightdmになったことにより従来の方法ではうまく動作しなかったため、ここではX11vncをインストールすることにした。

    $ sudo apt-get install x11vnc
    $ sudo vi /etc/init/x11vnc.conf
    start on login-session-start
    
    script
    x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.pass -rfbport 5900
    end script
    
    $ sudo x11vnc -storepasswd PaSsWoRd /etc/x11vnc.pass
  4. VPNのインストール
    iPhoneから接続するため、ここではPPTPとした。PPTPはパスワードのセキュリティレベルが低いため、定期的にパスワードを変更すべきである。

    $ apt-get install pptpd
    $ sudo vi /etc/pptpd.conf
    localip 192.168.xxx.yyy
    remoteip 192.168.xxx.zzz
    
    $ sudo vi /etc/ppp/pptpd-options
    ms-dns 192.168.xxx.yyy # DNSサーバのIPアドレスを設定
    mtu 1280 # for iOS devices
    mru 1280 # for iOS devices
    
    $ sudo vi /etc/ppp/chap-secrets
    shiba48x pptpd "PaSsWoRd" *
    
    $ sudo vi /etc/sysctl.conf
    net.ipv4.ip_forward = 1 # コメントを解除
    
    $ sudo sysctl -p /etc/sysctl.conf

    ルーターのポートマッピング設定でTCP1723とプロトコル47をLinux機にマッピングする。

ソフトウェアRAID0とLVMの導入

Ubuntuではalternate版のインストールメディアを使用することでインストール時にソフトウェアRAIDとLVMを導入することができるが、Linux Mintではalternate版にあたるインストールメディアはないようだ。そこで一旦OSをインストールした後にmdadmとlvm2をインストールして一部ディレクトリを別パーティションへ移動することにした。

なお、以下の手順はLinux Mint 12で実施したものである。パーティションを操作する為、操作を誤るとデータ消失のリスクがある。実施にあたっては内容を理解し事前に十分な情報を収集した上で自己責任で作業をお願いしたい。

  1. mdadmとlvm2をインストールする。インストール途中で表示されるPostfix Configurationはデフォルトのままにした。
    $ sudo apt-get install mdadm lvm2
  2. ディスクにパーティションを作成し、raidフラグをオンにする。
    $ sudo parted /dev/sdb
    > mkpart
    > set 1 raid on
    > print
    > quit
    
    $ sudo parted /dev/sdc
    > mkpart
    > set 1 raid on
    > print
    > quit
  3. ディスクをRAID0に構成する。
    $ sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1
    $ sudo mdadm --detail --scan
    $ sudo cp -p /etc/mdadm/mdadm.conf
    $ sudo sh -c "mdadm --detail --scan >> /etc/mdadm/mdadm.conf"
    $ cat /etc/mdadm/mdadm.conf
    $ sudo update-initramfs -u
  4. 物理ボリューム、ボリュームグループ、論理ボリュームを作成し、ファイルシステムを作成する。ここではボリュームグループ名をvg、論理ボリューム名をそれぞれlvswap、lvhome、lvtmp、lvvarとし、ファイルシステムをext4とした。
    $ sudo pvcreate /dev/md0
    $ sudo pvscan
    $ sudo vgcreate vg /dev/md0
    $ sudo vgscan
    $ sudo lvcreate -L 8.0GiB -n lvswap vg
    $ sudo lvcreate -L 100.0GiB -n lvhome vg
    $ sudo lvcreate -L 100.0GiB -n lvtmp vg
    $ sudo vgdisplay
    $ sudo lvcreate -l 900615 -n lv_var vg
    $ sudo lvscan
    $ sudo mkswap -f /dev/vg/lvswap
    $ sudo mkfs.ext4 /dev/vg/lvhome
    $ sudo mkfs.ext4 /dev/vg/lvtmp
    $ sudo mkfs.ext4 /dev/vg/lvvar
  5. シングルモードに切り替え(init 1を実行後、[Ctrl]+[Alt]+[F1]で切り替え)、ディレクトリを別パーティションにコピーする。その後、アンマウントして元のディレクトリを退避し、/etc/fstabを編集する。/tmpはパーミッション1777にする必要があることに注意。また、fstabを編集する際にUUIDを打ち間違えないよう、blkidの結果をリダイレクトしてから編集している。
    $ sudo init 1
    # mkdir /mnt/home
    # mkdir /mnt/tmp
    # mkdir /mnt/var
    # mount /dev/vg/lvhome /mnt/home
    # mount /dev/vg/lvtmp /mnt/tmp
    # mount /dev/vg/lvvar /mnt/var
    # chmod 1777 /mnt/tmp
    # cp -a /home/* /mnt/home
    # cp -a /tmp/* /mnt/tmp
    # cp -a /var/* /mnt/var
    # umount /mnt/home
    # umount /mnt/tmp
    # umount /mnt/var
    # mv /home /home.bk
    # mv /tmp /tmp.bk
    # mv /var /var.bk
    # cp -p /etc/fstab /etc/fstab.org
    # blkid /dev/vg/lvswap >> /etc/fstab
    # blkid /dev/vg/lvhome >> /etc/fstab
    # blkid /dev/vg/lvtmp >> /etc/fstab
    # blkid /dev/vg/lvvar >> /etc/fstab
    # vi /etc/fstab
    # reboot

Linux Mint 12のインストール

LinuxのUbuntuのUIが一新されてからトレンドはLinux Mintに移行しているらしい。Linux Mint 12の64-bit版をインストールしてみた。

  1. LiveDVDからLinux Mintを起動し、デスクトップのInstall Linux Mintをダブルクリックする。
  2. 「Welcome(ようこそ)」で日本語を選択して「続ける」ボタンを押下する。
  3. 「Linux Mint のインストール準備」で「続ける」ボタンを押下する。
  4. 「インストールの種類」で作成したいパーティション構成を選択する。ここでは手動でパーティションを構成するためそれ以外を選択して「続ける」ボタンを押下し、手動でパーティション構成を行った。

  5. 「どこに住んでいますか」でTokyoを選択して「続ける」ボタンを押下する。
  6. 「キーボードレイアウト」で使用しているキーボードを選択する。ここでは日本語 – 日本語 (OADG 109A)を選択して「続ける」ボタンを押下した。
  7. 「あなたの情報を入力してください」であなたの名前、コンピューターの名前、ユーザー名の入力、パスワードの入力、パスワードの確認を入力して「続ける」ボタンを押下する。
  8. スライドショーが表示されるのでインストール完了まで待つ。
  9. 「インストールが完了しました」で「今すぐ再起動する」ボタンを押下し、表示されるダイアログで「Restart」ボタンを押下する。
  10. 再起動後、Ubuntu 11.10の手順を参考に日本語化を行う。但し、筆者が試した時点ではwww.ubuntulinux.jpの証明書が有効でなかったため、wgetコマンドに–no-check-certificateオプションを付ける必要があった。

    http://www.ubuntulinux.jp/products/JA-Localized

  11. そのままでは日本語入力ができないため、インプットメソッドをインストールする。
    sudo apt-get install ibus-anthy ibus-gtk3
    コマンド実行後、一旦ログアウトして再ログインすると日本語が使えるようになる。
  12. Firefoxを起動するとJapanese Language Packがインストールできる。

秋月の時計キットを作ってみた

秋月電子の多機能デジタル時計Ver.3を作ってみた。

20120129-013249.jpg

立ち読みした雑誌でLEDが大型化したVer.4が出たようなことが書いてあったが、Webでも八潮店でも見当たらず。検索すると一時取り扱いしていた形跡があるので何らかの事情で取り扱いを休止しているのかもしれない。

電子工作の知識はほぼ皆無で手先も器用じゃないけど、3時間くらいかけて半田付け。

手持ちのテスターが何にでも値が振れてしまったのでDCジャックの極性は勘だったけど無事に動いた。

Arduinoで8×8電光掲示板を作成

Arduinoで8×8のドットマトリクスを使用して電光掲示板を作成した。

が、思うように点灯してくれない。まったく点灯しない行や列もちらほら。

20120122-110413.jpg

いろいろ試行錯誤してみたところ、どうもピン配列を勘違いしていたみたい。1〜8番ピンと9〜16番ピンの2行に分かれているのだけど、9番ピンは1番ピンと同じ列から開始じゃなくて8番ピンと同じ列から折り返すようになるんだね。

そんなわけで完成。スケッチで出力時間を抑えることで抵抗を省略。

動いている動画はこちら。ちなみに文字はフォントを使わずゼロイチで書いています。

ArduinoでLEDを点灯

ふと電光掲示板が作りたくなったので久し振りにArduinoを引っ張り出す。高校時代に物理電工部であったにも関わらず電子工作の経験はほぼゼロに等しく、大学時代に電子工学科(の情報工学コース)に所属していたにも関わらず電子回路の知識も身に付いていないので、まずはウォーミングアップがてら先日購入した入門書を基にLEDを点灯してみることに。

これがArduino。アルドゥイーノと読む。14個のデジタル入出力ピン、6個のアナログ入力ピン、6個のアナログ出力ピンを持つ。『14娘』と変換された私のGoogle日本語入力はどうかと思う。また、USB経由で電源を供給でき、MacやWindowsからプログラムを書き換えることができる。USBコネクタがタイプAなのが残念なところだ。

20120122-011026.jpg

Arduino上で動くプログラムをスケッチと呼ぶ。スケッチはほとんどC言語の構文で記述することができるため、C言語やJavaの経験者には敷居が低くて嬉しい。C言語のmain関数の代わりに以下の関数を作成して処理を記述する。

  • void setup() 初期化関数
  • void loop() メインループ

今回使用した関数は以下の通り。

  • pinMode(pin, mode) ピンを入力または出力に設定する
  • digitalWrite(pin, value) ピンにHIGHまたはLOWを出力する
  • analogWrite(pin, value) ピンにアナログ値を出力する
  • delay(ms) 処理を一時停止する
  • Serial.begin(speed) シリアルポートをbpsで初期化し使用を開始する
  • Serial.read() シリアルポートから1バイト読み出す。読み出せるデータがなければ-1を返す
  • Serial.print(data, [format]) シリアルポートにデータを出力する

ここまでは本に書かれていることをほぼそのままトレースしているだけなので特に問題も発生せず、無事にLEDを制御することができた。

20120122-011106.jpg

参考書籍は以下の通り。

PS VitaがSIMを認識しない

昨年、PS Vitaを購入したが、いつの頃からかSIMを認識しなくなった。普段はWi-Fi通信を使っており実害がなかったので放置していたのだけど、時間ができたので少しだけ試してみた。

PS VitaがSIMカード(UIMカード)を認識しない | PlayStation.com

まずは公式のサポートページを頼りにSIMの抜き差しや再起動を試してみた。が、何度試してもSIMは認識しない。

次に日本通信のプリペイドSIMがあったので、そちらに差し替えてみるも同じく認識せず。

この後の流れとしてはドコモショップに本体とSIMを持ち込み、SIMを交換しても直らないようであればメーカーに送付する形となるようだ。だが特に使わない機能でそこまで手間を掛けたくないので、ファームウェアのバージョンアップによる解決を期待して新ファームウェアの公開を待つことにする。