月別アーカイブ: 2012年8月

VirtualBoxと実マシンとでディスクI/Oの違いを確認

Windows上のVirtualBoxのLinuxが起動だけやたら遅いのはどうもBIOS経由のdisk I/Oが遅いんじゃなかろうか、と思って起動後の状態でベンチマークをとってみました。使ったのは、dbenchです。dbench 5で5並列でのアクセスをさせてみています。対象はraw diskを使ったVirtualBox環境とリアルブート環境です。

結果:VirtualBox

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX     240151     0.576   482.564
 Close         176257     0.051    28.976
 Rename         10162     1.454   295.741
 Unlink         48614     4.451  3611.593
 Qpathinfo     217765     0.222   413.916
 Qfileinfo      37911     0.055    32.303
 Qfsinfo        39954     2.234    60.401
 Sfileinfo      19542     0.550   388.175
 Find           84199     0.672  1678.476
 WriteX        118530     3.479  3651.417
 ReadX         376109     0.185  1692.655
 LockX            780     0.138    20.811
 UnlockX          780     0.130    18.023
 Flush          16811    90.072  4535.314

Throughput 12.4427 MB/sec  5 clients  5 procs  max_latency=4535.443 ms

結果:実マシン

 Operation      Count    AvgLat    MaxLat
 ----------------------------------------
 NTCreateX     283026     0.056  1043.521
 Close         207853     0.006    10.037
 Rename         12009     0.182   467.670
 Unlink         57203     1.961  4348.426
 Qpathinfo     256742     0.025   586.056
 Qfileinfo      44763     0.005     6.373
 Qfsinfo        47089     0.264    16.122
 Sfileinfo      23114     0.054    39.272
 Find           99221     0.094  2166.365
 WriteX        139882     0.612  2854.145
 ReadX         444345     0.026  1545.910
 LockX            922     0.008     0.135
 UnlockX          922     0.007     0.143
 Flush          19858   136.950  5046.682

Throughput 14.7063 MB/sec  5 clients  5 procs  max_latency=5046.695 ms

というわけで、スループットは2MB/sec程度しか落ちていません。パフォーマンス的には十分でしょう。raw partitionを使わず、仮想ディスク+ホストキャッシュONをやれば、もっと早くなるような気がします。

Windons7のVirtualBoxでデュアルブート用のraw partitionにあるLinuxを起動させる

修理に出していたノートPCが帰ってきたので、せっかくだからと今までデュアルブートにしていたWinodws7/Linuxのうち、Linux側をWindows7のVirtualBoxからも起動できるようにしようと思い立ち、やってみました。

まず、raw diskを認識させるためのvmdkファイルを作成します。具体的な方法はVirtualBoxのマニュアルに記載されています。VMBoxManageコマンドを使い、サブコマンドinternalcommands createrawvmdkを発行します。ディスクに直接アクセスするため、管理者権限が必要です。スタートメニューのアクセサリからコマンドプロンプトを右クリックして、管理者として実行を選択して、コマンドプロンプトを開きます。

スタートメニュー

VirtualBoxの各種コマンドには通常パスが通っていません。そこをカレントディレクトリとし、下記のコマンドを実行します。

C:\Program Files\Oracle\VirtualBox>VBoxManage.exe internalcommands createrawvmdk ^
 -filename C:\VBox\rawdisk.vmdk -rawdisk \\.\PhysicalDrive0 ^
 -partitions 3

-filenameには、vmdkファイルのパスを指定します。すでにファイルが存在しているとエラーになるので注意してください。-rawdiskには、Windows形式のデバイス指定を実行します。\\.は自分のコンピュータを意味し、PhysicalDrive0は0番目に接続されたディスクを意味します。どのディスクが何番目にあるかはdiskpart.exeで確認できます。必要なら、Linuxの入っているパーティション番号も確認します。-partitionsオプションを指定すると、そのパーティション以外にはアクセスできなくなるvmdkが生成されるので安心です。

C:\>diskpart

Microsoft DiskPart バージョン 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: KARL

DISKPART> list disk

  ディスク      状態           サイズ   空き   ダイナ GPT
  ###                                          ミック
  ------------  -------------  -------  -------  ---  ---
  ディスク 0    オンライン           112 GB      0 B
  ディスク 1    オンライン            15 GB      0 B

DISKPART> select disk 0

ディスク 0 が選択されました。

DISKPART> list partition

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
  Partition 1    プライマリ              100 MB  1024 KB
  Partition 2    プライマリ               92 GB   101 MB
  Partition 3    プライマリ               19 GB    92 GB

パーティションIDまではわからないので、サイズで推測してください。あるいは、Linux上でcfdiskなどを使ったほうが確実かもしれません。

以上を実行することで、C:\VBox以下にrawdisk.vmdkとrawdisk-pt.vmdk(-partitionsを指定した場合のみ)が生成されます。これを起動ディスクとして与えます。

仮想マシンの作成時も、管理者権限が必要です。スタートメニューからOracle VM Managerを右クリックして管理者権限で起動させ、新規ボタンを押して仮想マシンを作成してゆきます。途中で、仮想ハードディスクを選択するダイアログが出てくるので、ここで既存のハードディスクとして先ほど作成したrawdisk.vmdkを選択します(rawdisk-pt.vmdkは間接的に参照されるので、指定する必要はありません)。

VBox file dialog

あとは、起動ボタンを押せば普通に起動します。ただ、実マシンとして起動したときと比べると、速度はあまり早くありません。どうもBIOS経由のディスクI/Oが特に遅いようです。これについての原因はよくわかっていません。

raw diskへのアクセスが必要なため、この仮想マシンを起動するときは常に管理者権限が必要なようです。この点に気をつけてください。

ポートフォワーディングの設定をすれば、sshでのアクセスも可能です。以下は設定例です。

VBox port fw

Windows側をハイバネーション(休止状態)するときは、気をつけてください。私は昔、同様の環境をcoLinuxで構築したことがあり、Windowsマシン上の仮想マシンでext3をマウントしたままリアルブートして、ファイルシステムを完全に破壊してしまったことがあります。休止状態にするときは、必ず仮想マシンをシャットダウンさせましょう。

この記事も含め、このブログでの内容は無保証です。これらを参考に何かを実行し、ディスクなどに被害が出ても当方は保証しません。と今更書いておきます。ファイルシステム破壊はやってしまうと本当にへこむので気をつけましょう。

追記(2012/8/27):

cmd.exeの複数行入力のための制御文字は\でなくて^でしたので、そこを直しました。

あと、やはりディスクI/Oが遅いのはBIOS経由の読み書きだけのようです。いずれベンチマークを実行した結果を記事にします。

ブートローダーにgrub/grub2を使っていると、savedefaultsの設定がそのまま有効になるので、一度仮想マシン上で起動すると、次回のWindowsの起動時にデフォルトで選択されるOSがLinuxのに代わってしまいます。再起動時には気を付けましょう。

OpenPGPの鍵でOpenSSHと接続する(GnuPG2利用)

OpenPGPの鍵は、GnuPG2に付属のgpg-agantと組み合わせると、sshの鍵としても利用が可能です。しかし、これに関する日本語の情報がどうもなさそうなので、ちょっとまとめてみます。GnuPG 2.0系を対象とします。2.1系はもっと扱いが楽そうなのですが、そちらはまだ開発版なので使っていません。

まず、自分自身のOpenPGPの鍵を用意します。普段からGnuPGを使っているなら、その鍵を利用できます。ない場合は新規に作成しましょう。もちろん、すでにGnuPG 2.0がインストールされていることが前提です。また、.gnupg/gpg.confにuse-agentを追加しておきましょう。

次に、monkeysphereをインストールします。Debian stableならパッケージがあるのでaptで入れましょう。そして、ssh用のsubkeyを次のコマンドで生成します。

# 鍵長2048bitのRSA鍵を生成

$ monkeysphere gen-subkey -l 2048

subkeyの生成には時間とエントロピーが必要です。バックグラウンドで何か複雑な処理やdisk IOなどを発生させましょう。私の場合は、2GBぐらいのVorbis/Theoraファイルを適当にgrepさせていました。

今度はgpg-agentを起動します。gpg-agentはGnuPG2の一部ですが、Debianだとgpg-agentパッケージとして分離されていますので、これもaptで入れましょう。また、pinentryという、途中でパスフレーズを入力させるためのプログラムも必要です。tty向けのpinentry-curses, gtk2向けのpinentry-gtk2, qt/4向けのpinentry-qt/qt4パッケージがあります。環境に合わせて必要な方をいれましょう。

gpg-agentの引数は設定ファイル~/.gnupg/gpg-agent.confに書くことができます。以下は設定例です。

pinentry-program /usr/bin/pinentry-curses
no-grab
default-cache-ttl 180
allow-mark-trusted
write-env-file /home/user/.gnupg/gpg-agent-info
enable-ssh-support

1行目はpinentry用のプログラムの指定です。環境に合わせて適切なものを選んでください。5行目は、GnuPG2が参照するための環境変数をファイルにも出力させるための設定です。6行目の設定は必須で、これを指定することでgpg-agentがssh-agentと同じ機能を提供してくれます。

ここまで設定したら、以下のコマンドを実行します(bash, zshの場合)。

$ eval `gpg-agent –daemon`

これでgpg-agentがdaemonとして起動します。次に鍵の登録をします。これは普通にssh-addを実行すればよいです。OpenSSHの鍵があれば、普通にそれについてのパスフレーズも聞いてきます。この段階でOpenPGPの鍵も登録されます。登録されていることは、ssh-add -lで確認できます。

$ ssh-add -l
2048 76:9a:97:aa:c6:9e:c1:c7:bc:a8:f6:fd:4b:10:d6:8b NOKUBI Takatsugu <knok@daionet.gr.jp> (RSA)
1024 31:b5:52:35:e0:70:0c:d6:yy:0f:65:f7:87:5b:a6:1a /home/knok/.ssh/id_dsa (DSA)

ハイライトされた部分がGnuPGの鍵です。パスフレーズは、必要になるときまで聞かれません。

ssh-add -Lを実行して、公開鍵を確認しましょう。

$ ssh-add -L
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC20e1bGCIzY+wi1UqIKWNGQ0pLRPgVGWtDJ2xyJ/sjHuzqr5r+JRd2bV5wRQ1uxGTSH5eJe1xYoPRThHLr6fos7vcGtXeTqBiu0qXKJ0EF4z6Q/yRNo6uXUUEdYoPPQHQYo7MtP8XFWp3CRAhhHAzAJZqsimqdwABaG+9wcM/OrJR6+oi42U0grZJcgw5glHXTLLX/3N7ZTXt2GK7Ddy/Pwsi7pSHRkpNnOfOy5KpFjQfEcru5Vx0rRg5yJS2IBBFNSiw6gPTFPwwUPBvS7Ih91p778hrKE3NcnZfW6CRk4Li9lzz61bJ8LXFklgo9O9Nm/IP3ZkG2LMxxxxxxxxxx NOKUBI Takatsugu <knok@daionet.gr.jp>
ssh-dss AAAAB3NzaC1kc3MAAACBAOIawGsPMDZ1XLIYk0YQFWtYUEc62UQsuSFJN+fHovSpjP8MPOY9Shsd20YbtiQpPT/M5DCT2ptI2kghJMokcoClsnWOqimuLxtl0RZMc5OgK6HpQmgjYf9iwr7n/N30FYt5iwHx2cRU/dH06nLQOfZpJnlOKH7Gltggul9g6Jt5AAAAFQC7UI2OtSFlQjnEJjbFxi8XDk5m3QAAAIAXo9X9NvBtueAxTvao/9CTneyd44waOgRAsMaiCqj/oc0S20Ldzlw25jJrQDMACkIvExsQ6U4sHFIAtrUb20PHeh03oQjMnT7YzTunudNKA62/FXC1oG5aZ7CXCm/cp5aSP+++EAkF3dSCr4Awl9GnakWTXNPQypYNIDZ5viXNAAAAAIEAhV/2sR9KbrnwXcMK+Dxu44zSuTLEjlnuJtorl0IFlnV64HzgUtMaM48kLcwfjPmGTuN8chcOcF05aF/1B11dCBwEONdJp/WyBJeLvUE4PWv61IAQZ7su/7J4U3MN/4MLheo4iUmpvFgq5qfxrmkhvtsV0ovCHqc/Icxxxxxxxxxx /home/knok/.ssh/id_dsa

コメント部分にOpenPGPのidが書かれているのが公開鍵です。これをリモートホストの.ssh/authorized_keysに追記します。

あとは対象のサイトにsshで接続すると、pinentryプログラムが起動し、パスフレーズを要求してきますので、入力してログインしましょう。

DebianのGNOME2環境では、デフォルトでgpg-agentとは異なるagentが走っています。Programmierecke.NET – The Source of Programming Informationを参考にgnome-keyringを止めてください。

参考サイト

Android 2.x向けにL2TP/IPSecサーバ(openswan+xl2tpd)を設定する

前々から設定しかけてはうまくいかなかった、Android向けL2TP/IPSecがようやく動くようになったので、どんな設定をしたかをまとめてみます。対象はDebian squeezeです。

パッケージとして必要になるのは、openswanとxl2tpdです。これらをapt-get installします。

まずopenswanの設定をします。これはIPSecの実装の一つです。もともとFreeS/Wanというプロジェクトがあったのですが、その開発が止まったためforkしてできたのがOpenswanです。ほかにStrongswanという実装もあるようですが、ここでは触れません。

/etc/ipsec.confというファイルが存在しているので、それを編集します。冗長なコメントは消しています。

# /etc/ipsec.conf - Openswan IPsec configuration file
version 2.0     # conforms to second version of ipsec.conf specification

# basic configuration
config setup
        # NAT-TRAVERSAL support, see README.NAT-Traversal
        # exclude networks used on server side by adding %v4:!a.b.c.0/24
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
        # OE is now off by default. Uncomment and change to on, to enable.
        oe=off
        # which IPsec stack to use. auto will try netkey, then klips then mast
        #protostack=auto
        protostack=netkey
        nhelpers=0

# Add connections here
include /etc/ipsec.d/*.conf

次に、L2TP向けの設定ファイル/etc/ipsec.d/l2tp-psk.confを新規に作成します。

conn L2TP-PSK-NAT
        rightsubnet=0.0.0.0/0
        also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=%defaultroute
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any

次に、/etc/ipsec.secretsを編集します。ハイライトされた行を追加します。your-passwordを自分が設定したいパスワードにしてください。このパスワードがIPSec事前共有鍵になります。

# RCSID $Id: ipsec.secrets.proto,v 1.3.6.1 2005/09/28 13:59:14 paul Exp $
# This file holds shared secrets or RSA private keys for inter-Pluto
# authentication.  See ipsec_pluto(8) manpage, and HTML documentation.

# RSA private key for this host, authenticating it to any other host
# which knows the public part.  Suitable public keys, for ipsec.conf, DNS,
# or configuration of other implementations, can be extracted conveniently
# with "ipsec showhostkey".

#: PSK "1234567890"
: PSK "your-password"

# this file is managed with debconf and will contain the automatically created RSA keys
include /var/lib/openswan/ipsec.secrets.inc

次に、sysctl関連の設定をします。/etc/sysctl.d/for-ipsec.confファイルを作成し、以下のように設定します。自分はすべてのインターフェースに{accept,send}_redirectsを設定しています。各自のインターフェース名に合わせて設定してください。

# forward
net.ipv4.ip_forward=1
# redirect
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.ppp0.accept_redirects = 0
net.ipv4.conf.br0.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.ppp0.send_redirects = 0
net.ipv4.conf.br0.send_redirects = 0
net.ipv4.conf.lo.send_redirects = 0

ファイルを作成したら、sysctl -p /etc/sysctl.d/for-ipsec.confを実行してこのsysctl設定を有効化します。リブート時には/etc/init.d/procpsの中でこのファイルが自動的に読まれます。

ここで、一度ipsecを起動してみます。/etc/init.d/ipsec startして、ipsec verifyを実行してみてください。問題なければ以下のような出力が出ます。[NG]という出力があれば、何か設定に失敗していることになります。

Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.28/K2.6.38-bpo.2-686-bigmem (netkey)
Checking for IPsec support in kernel                            [OK]
NETKEY detected, testing for disabled ICMP send_redirects       [OK]
NETKEY detected, testing for disabled ICMP accept_redirects     [OK]
Checking that pluto is running                                  [OK]
Pluto listening for IKE on udp 500                              [OK]
Pluto listening for NAT-T on udp 4500                           [OK]
Two or more interfaces found, checking IP forwarding            [OK]
Checking NAT and MASQUERADEing
Checking for 'ip' command                                       [OK]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]

ipsecはデフォルトでは自動起動になっていないので、insserv ipsecを実行して自動起動するようにしてください。

最後は、xl2tpdの設定です。/etc/xl2tp.confを以下のように設定します。

[global] ; Global parameters:
auth file = /etc/xl2tpd/l2tp-secrets ; access control = no
;debug avp = yes
;debug network = yes
;debug packet = yes
;debug state = yes
;debug tunnel = yes
[lns default] ; Our fallthrough LNS definition
name = l2tpd
ip range = 192.168.126.1-192.168.126.20
local ip = 192.168.126.2
require chap = yes  ; * Require CHAP auth. by peer
refuse pap = yes    ; * Refuse PAP authentication
require authentication = yes ; * Require peer to authenticate
ppp debug = yes     ; * Turn on PPP debugging
pppoptfile = /etc/ppp/options.l2tpd.lns ; * ppp options file
length bit = yes

2行目で、ppp認証用のユーザー、パスワードを記述したファイル名を指定します。10,11行目でVPNに振るアドレスを指定します。各自にあったIPアドレスレンジを使ってください。16行目では、xl2tpdが起動するpppdの設定ファイル名を指定しています。うまく動かないときは、各種デバッグオプションを有効にしてみてください。

/etc/xl2tpd/l2tp-secretsは以下のように書きます。user, passwdは適切なものにしてください。

# Secrets for authenticating l2tp tunnels
# us    them    secret
user    *       passwd

/etc/ppp/options.l2tpd.lnsの設定例は以下になります。

ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
noccp
nodefaultroute
auth
#crtscts
idle 1800
mtu 1280
mru 1280
debug
lock
proxyarp
connect-delay 5000
#nobsdcomp
ms-dns 192.168.3.4
netmask 255.255.255.0
logfile /var/log/xl2tpd.log

最初、MTU/MRUのサイズを指定しないで動かしていたら外部との通信がうまくいかなかったので、かなり小さめ(1280)にしています。16行目のネームサーバは適切なものに変更してください。

あとは/etc/init.d/xl2tpd restartを実行して、Android側の設定をしてゆきます。VPNのタイプはL2TP/IPSec PSK、VPNサーバ名とIPSec事前共有鍵(ipsec.secretsの値)を設定します。L2TPセキュリティ保護は無効にします。

あとは接続を実行し、l2tp-secretsに書いたユーザー名、パスワードを入力すれば接続できるはずです。設定がおかしいと、一瞬pppセッションが確立したあとすぐ切られる、というような状況が起きることがあるので気を付けてください。

知人から、これらに関していくつか助言をいただいています。

@ 蛇足情報だけどopenswan ICSで繋がらないとかあるよ http://t.co/TXmfvEKC
@northeye
にゃーすあい

ICSとOpenswanの組み合わせでは動かないことがあるようです。

新しいkernelにはopenl2tpというin-kernel l2tpモジュールがあるそうです。ただし、まだuserlandはDebianパッケージが(sidにも)ありません。

参考:

追記(2012/8/24):

MS-CHAP-v2の脆弱性と攻撃ツールの流通が報告されていますが、pppの設定を見ての通り、L2TP/IPSecでもMS-CHAP-v2を使っています。暗号化されたトンネルの下でpppを確立するため、直ちに危険というわけではありませんが、PSK共有鍵方式だと安全とはいえないようです。

証明書ベースの接続(CRT VPN)の設定を今後は調べてみようと思います。

川崎でSoftware Freedom Day 2012イベント

来る9/15に川崎の専修大学 サテライトキャンパスにてSoftware Freedom Day連動イベントをやります。概要はFSIJの案内ページをご覧ください。

私は「自由なデータ」について、議論できればと思っています。以前から自由に使えるデータに関しては自分も関心があり、Flashでプレゼンテーション資料を作るという試みもしていました。その時に、自由に流用できるパーツ的なものがないことを残念に思い、せめて自分が作ったパーツぐらいは、と公開しています。まあでも、Flash自体がこのまま入滅しそうな情勢になってしまいましたね。

Flashで資料を作っていた当時はまだOpenOffice.orgもなく、Unix系技術者のプレゼンテーションはたいていMagic Pointが使われていました。Magic Point自体はそんなに悪いソフトウェアでもないのですが、利用感覚としてはLaTeXに近く、サクサクとテキストベースでソースをかける反面、凝ったレイアウトを作るのはちょっと大変でした。

OpenOffice.org以降はImpressを使えばよいので楽になりましたが、商用ソフトにあるような豊富なクリップアート、ステンシルなどがないのが残念です。

最近はプレゼンテーションを作るのにGoogle Presentationを使うことが増えています。しかしWebアプリは自由ソフトウェアでないのが難点です。SFDでは、アウトラインだけGoogle Presentationで書いています。あとでLibreOffice Impressにて整形することになりそうです。

私立プログラミングキャンプ参加 #upcamp

帰省する直前に、私立プログラミングキャンプに参加しました。もともと私は2008年の公式なプログラミングキャンプ講師をやっていたのですが、その後都合により参加できず、今年はとうとうプログラミングキャンプ自体がなくなってしまいました(それまではセキュリティキャンプと同時開催、というか名称が「セキュリティ&プログラミングキャンプ)。

Webにもあるように、過去のセキュリティ(&プログラミング)キャンプの参加者が主催されています。会場の確保等ファシリティの用意が大変だったと思いますが、ありがとうございます。

しかし、参加人数が多すぎたので会場のキャパシティが厳しく、私はLTで軽く話しただけで、夜にはかえってしまいました。なので、実質何もできていません。申し訳ないとは思いつつ、場を若い人に任せた方がいいかななと思っての処置です。

LTの発表資料は公開しています。実際に喋ったのは7ページ目まででした。

名古屋へ帰省しました

ぎりぎりまで家で寝てから、実家へ帰省しました。前回の帰省のときにVPNの設定をしたので、ルータが死なない限りはまあ自宅のほうもなんとかメンテナンスできます。

この帰省中に、daionet.gr.jpのサーバを更新しようと思っています。まあCore2Duoでも速度的に困らないわけではないのですが、メモリがDDR2でちょっと高いので、安いメモリの使える最近の世代に変えたいところです。

 

Android端末の修理

結構前から、E-MobileのGS-01(DELL Streak Pro)が充電時にタッチパネルの反応がおかしくなるという症状に見舞われていました。きちんと連続した入力ができないので、パターンロックも外せないという状況です。サポートに連絡したところ、故障の可能性があるということで修理におくりました。

そして昨日、「調べてみているけど、これ以上は一度リセットしないといけないのでリセットしてもよいか」という連絡が来ました。ちょっと悩んだものの、SDカード部は全てバックアップしたから、ということでリセットすることに承諾しました。

E-Mobileは修理に出すとき、代替機を送ってきてくれて、自分のSIMカードを刺してGoogle accountを設定しただけで本体側の情報は勝手にリストアしてくれたっぽいので、まあたぶん大丈夫だろうと思っています。

それより、いつからかGS-01の標準ブラウザの挙動がやたら遅くなったことが気になります。代替機の方は普通にサクサク動くので、なにか入れたアプリケーションに問題があったのかもしれません。それも一緒に治るとよいのですが…

追記(8/10): 代替機も挙動が同じだった。これって特定の個体の故障じゃないのでは…?

LibreOfficeを使うのにMS Officeのマニュアルが便利

いやあ、こんなことじゃいけないんだろうとは思いつつも、LibreOfficeのCalcで「この計算はどうやるんだ」と思った時に、LibOのマニュアルではよくわからなかったので、結局Excelのマニュアルを見てしまいました。

大学は入って一番英語の勉強になったのがLuna-OS Bのマニュアルを読むことだったな。たまにNEWS-OSの日本語マニュアルでカンニング
@knok
NOKUBI Takatsugu野首貴嗣

こんな過去のことをちょっと思い出してしまいました。

今後のイベント予定

正確には、コメントspamすら来ないというべきか。一応英語版blogも用意してPlanet Debianに登録してあるんですが、なかなかの勢いでspamがやってきます。

もちろん普通のコメントも来ました。しかしこちらには何も来ない・・・まあいいんですけどね。というかあまりネタがないです。

直近のイベントとしては、私立・プログラミングキャンプ 2012 東京大会 – #upcamp が8/11-12にあります。もはやなくなってしまったプログラミングキャンプを有志で実現しようというものです。私立・プログラミングキャンプ 2012 京都大会 – #upcamp #upcampKansaiもあります。

他には、国際的なイベントとしてSoftware Freedom Dayが9/15にあります。FSIJとしてもイベントを実施する予定なのですが、いかんせんまだ詳細が決まっていません。とりあえずEkigaを使ってほかの拠点とビデオ会議をやりたい、という話は出ています。

Ustreamみたいなのを、自由ソフトウェアだけでやりたいですね。GNUstreamというか。