ラベル linux の投稿を表示しています。 すべての投稿を表示
ラベル linux の投稿を表示しています。 すべての投稿を表示

2013/07/27

png のファイルサイズを最適化するコマンド

png ファイルって、便利ですけど可逆のはずなのに、なぜか出力するソフトによってファイルサイズが違ったりしますよね。

更に、前回のエントリと同様に、PageSpeed Insights にかけてみると、こんなことを言われるわけです。
以下の画像を最適化すると、サイズを 15.7 KB(7%)削減できます。
    http://example.com/.../image_thumb.png を可逆圧縮すると 8.5 KB(7%)削減できます。
そこで、コマンド一発通したら png ファイルを小さくしてくれるコマンドがあったら便利ですよね。探して見ました。
  • optipng - 進化した PNG (Portable Network Graphics) オプティマイザ
  • pngnq - PNG (Portable Network Graphics) 画像最適化ツール
  • pngcrush - PNG (Portable Network Graphics) ファイルを最適化
aptitude search したらこれぐらい見つかりました。

ひとつ注意として、pngnq だけ他とちょっと違います。pngnq は、32-bit RGBA な PNG ファイルを 8bit RGBA に変換するファイルです。つまり、強制的に小さくなりますし、(通常は)非可逆です。GIF みたいなものです。

それぞれ使ってみます。変換するファイルは、256x256 の GIMP で生成したファイルです。(ODCP のロゴ)
  • Original
    • 37652 byte
  • `convert in.png out.png` (参考)
    • 38654 byte
  • `optipng in.png` => in.png
    • 24482 byte
  • `pngcrush in.png out.png`
    • 24482 byte
  • `pngnq in.png` => out-nq8.png
    • 13853 byte
参考で ImageMagick で convert した結果も乗せて見ました。サイズ増えてますwww

pngnq は 8bit に変換するだけあって、さすがに減ってます。グラデーションとかな png だとがっつり劣化するので、用途によりますかね。

optipng と pngcrush は同じ結果でした。好きな方を使えばいいと思います。

2013/07/16

Debian で起動時に NFS マウントが詰まる問題

某所で運用しているシステムで、Debian squeeze で HA 化されたストレージに対して、起動時に NFS マウントしています。

/etc/fstab の記述はこんなかんじです。
192.168.0.xxx:/nfs/var/www /var/www nfs rw,hard,intr,rsize=8192,wsize=8192 0 0

ところが、起動時に "Waiting for /var/www..." で詰まって、タイムアウトするまでブートシーケンスが止まる、しかも結局マウントされない、という問題が起きてました。しかしながら、起動した後 mount -a すると正常にマウントされます...

/var/www がマウントされないと、その後の apache の起動もコケるので、非常に良くない状況です。再起動するたびに、手動でマウントするようなことはしていられません...

原因を探ってみたところ、起動時に nfs のマウントを司っているのは、/etc/init.d/mountnfs.sh だという事がわかりました。このファイルを辿って行くと、"$ASYNCMOUNTNFS" という変数を見て、do_wait_async_mount に飛ぶか飛ばないかを見ているようです。どうもこいつが怪しそうです。

結局以下のコマンドを打ったら、現象は再現しなくなりました。根本的な原因はよくわかりませんが、まあいいかなと...
`echo "ASYNCMOUNTNFS=no" >> /etc/default/rcS`

2013/06/04

LinuxCon Japan 2013 へ行ってきた

今年も LinuxCon Japan へ行って来ました。Student であれば first50 が参加費免除という、去年と同じパターンです。こういうカンファレンスに、学生であれば優遇して参加できるというのはいいことですね。

去年は、割と軽い気持ちで参加したのですが、今年は研究室でカーネルをいじったりストレージやメモリ周りの話をしているので、割と本格的に話を聞きに行きました。

プレゼンテーションはこちらにアップロードされてるみたいです

Cloud Open が併設ということで、Keynote も公演も、仮想化・クラウドの話が多かったですね。あと、リアル Linus の話を初めて聞くことができました、いつもの調子で結構ぶっちゃけてました。

ストレージとかメモリ周りの話を重点的に、Intel の CPU hotplug の話とか、Google の RedHat から Debian にダイナミック移行の話だとか、少し KVM の話も聞いたりしてました。英語ついていくの大変でしたけど、とても面白かったので、来年も行けたらいいな、とか。というか、毎年 Student Presentation があるので、来年こそはなんか成果を発表できたりしたらいいですね...

最後に、会場が椿山荘という場所だったのですが、庭園が綺麗でした。昼休みに、庭園と神田川沿いを散歩したりしてました。去年のみなとみらいもそうでしたが、休み時間にそとをぶらぶらして楽しめる立地というのは、時間が無駄にならないですし、海外から来てる人にとっても、嬉しいだろうなーという。よく考えられてますね、偶然かもしれないけど。

2013/05/14

自炊 PDF を Kobo Touch 向けに ImageMagick で変換してみる

最近このおもちゃを手に入れました。Kobo Touch です。
http://kobo.rakuten.co.jp/

当たり前のように、買ったのではなく、キャンペーンでもらいました。貰わなくても、そこら中で投げ売りされてるわけですが、タダより安いものはないです。もちろん、もらうには理由があって、最近研究室関連で本を読んだり論文を読んだりすることが多いので、活用してます。

そんなわけで、まずはあんなことやこんなことをしないで、正常に使ってみます。しかしながら、少し使ってみた感じとしては、(定価では)同じような値段で売っている Kindle Paperwhite に勝るところはたぶん無いと思います。バックライトついてないと、暗いところだと辛いですね。

 さて、早速 ScanSnap で自炊されている本を入れてみたのですが、縦横比の問題とか余白が大きすぎて、そのままでは綺麗に見るのは難しそうです。世の中には、Windows 向けに自炊したものを変換してくれるものもあるみたいですが (ChainLP など)、手元に Windows もないので ImageMagick とかを使ってうまく行かないか試してみます。

2013/02/04

Linux から L2TP/IPsec で VPN

最近、Softether が開発している PacketixVPN 4.0 に、L2TP, OpenVPN, MS-SSTP が対応して、その界隈ではとても熱い感じです。
おかげで、様々なクライアントから特別なソフトウェアの導入なしにつなげるようになったことで、夢が広がります。
まだ、ベータ版というか、RC1 の状態ですが、ダウンロードして試すことができます。

クライアントから、手軽に L2TP/IPsec したいよね?

そんなわけで、Linux からも L2TP/IPsec で VPN したいわけです、しかも手軽に。
クライアントからつなぐ際、PPTP とか OpenVPN であれば、NetworkManager が対応しているわけなんですけど、L2TP/IPsec は StrongSwan が対応しているようで、なんかうまくいきません。
(少なくとも PSK, 事前共有鍵 を使った接続はできなさそうだった)

設定ファイルをぽちぽちいじるのも、なんか前世代的で面倒です。
それに、結構色々設定しなきゃいけません。

l2tp-ipsec-vpn を使ってみる


色々探してみたのですが、OpenSwan をバックエンドとして使う l2tp-ipsec-vpn を使うのが良さそうです。
これなら、GUI からぽちぽち設定してつなぐことができます。PSK にも対応してます。

Debian (wheezy 以降) や Ubuntu であれば、以下のようにしてインストールするだけです。
sudo apt-get install l2tp-ipsec-vpn
メニューから GUI のプログラムをたちあげると、上記のような設定画面が出てくると思います。

設定とか

接続の設定画面はこんな感じですね。
"Use pre-shared key for authentication" の部分に PSK (事前共有鍵) を入力します。

今回の接続先の、Packetix VPN の L2TP/IPsec は PAP にしか対応していませんので、PPP タブに移って、"Allow these protocols" を選択して PAP にチェック入れた後、"User name" と "Password" を入力します。

それと、"IP Settings" の中の "Obtain DNS server addresses automatically" にチェックを入れておきましょう。
これにチェックを入れないと繋がらないかもしれません。
または、DNS サーバーのアドレスを手動入力しましょう。

設定が終わったら、GNOME3 であれば、右下のタスクバーみたいなところに l2tp-ipsec-vpn が常駐しているはずなので、設定名をクリックするとつながります。

初期設定は、VPN を貼ったネットワークがデフォルトゲートウェイになるので、設定を変更したい場合は "IP Settings" -> "Routes..." で設定しましょう。

Linux でも割と手軽に、L2TP/IPsec で VPN を張ることができました。
接続先も Packetix VPN を使えば、とても簡単に設置することができるので、良い時代になりましたね...

2013/01/05

Raspberry Pi のセットアップから日本語化まで

先月辺り、僕のところにもやっと Raspberry Pi が届きました。

"ラズベリーパイ"というこのボード、$35 で買える ARM の SoC が乗った名刺サイズコンピューターというやつです。
Linux が動いて HDMI, LAN, USB がついていて、SD カードがストレージになります。
RAM は 512MB も積んでいます。(僕に届いた新しいモデルの場合)

詳しい仕様は、以下のサイトを見てみてください。
とにかく、ガジェットオタクとしては格好のおもちゃなわけです。
しかし、乗り遅れたこともあって、7月初めに注文して、届いたのが12月初旬という...

とりあえず動かしてみる

とりあえず Raspberry Pi を動かしてみたいと思います。

まあ、Raspbian という Raspberry Pi 向けの Debian が用意されていて、これを書き込むだけなんですけど。
必要なものはこんな感じです。
  • MicroUSB ケーブルか、MicroUSB ACアダプタ
  • 4GB 以上ぐらいの SD カード
  • USB キーボード・マウス
  • HDMI ケーブルと対応したディスプレイ
  • 有線 LAN (ソフトウェアのインストールに必要)

2012/10/07

Debian wheezy で Skype を使う (Multiarch)

最近、amd64 な Debian sid (wheezy/testing) で Skype が使えなくなったー。
と思っていたのですが、どうも Debian が Multiarch に対応したようですね。
ARM 周りのサポートおかげでしょうか?
そのおかげで、ia32-libs などがなくなって、Skype の 64bit 版が使えなくなりました。
しかしながら、Multiarch を使えば、引き続き使えるようなのでそれをご紹介。

Multiarch とは、例えば i386 のバイナリを amd64 な kernel, マシンの上で動かせるようになるものです。
メインターゲットは x86 ではなく、ARM も複数の arch が最近出てきて (armel, armhf) その周りの対応のおかげのような気がしないでもありません。
このあたりに詳しいことが書いて有ります。

とりあえず、Multiarch で x86-64 なマシンの上で、i386 バイナリが動くように設定してみましょう。
やりかたは、Debian Wiki を参考にしました。

Architecture の追加

まずは dpkg に、multiarch で使う新しい architecture を追加します。
$ sudo dpkg --add-architecture i386
以下のように、foreign-architecture が追加できたことが確認できます。
$ sudo dpkg --print-architecture   
amd64
$ sudo dpkg --print-foreign-architectures
i386

apt の設定

/etc/apt/sources.list を以下のように編集します。
deb 行の [arch=amd64,i386] の部分を追加してください。
deb [arch=amd64,i386] http://ftp.jp.debian.org/debian/ wheezy main non-free contrib
deb [arch=amd64,i386] http://security.debian.org/ wheezy/updates main contrib non-free
それができたら、apt-get update します。

やらなくて良いみたいです。、

Skype のインストール

まずは、依存関係からチェック。
Multiarch で他の arch のバイナリをインストールする場合、パッケージ名に :i386 のような postfix をつけます。
$ sudo dpkg -I skype-debian_4.0.0.8-1_i386.deb
 Depends: libasound2 (>> 1.0.18), libc6 (>= 2.3.6-6~), libc6 (>= 2.7), libgcc1 (>= 1:4.1.1), 
libqt4-dbus (>= 4:4.5.3), libqt4-network (>= 4:4.5.3), libqt4-xml (>= 4:4.5.3), libqtcore4 (>= 4:4.6.1), 
libqtgui4 (>= 4:4.6.1), libstdc++6 (>= 4.4.0), libx11-6, libxext6, libxss1, libxv1

$ sudo aptitude install libasound2:i386 libc6:i386 libc6:i386 libgcc1:i386 libqt4-dbus:i386 
libqt4-network:i386 libqt4-xml:i386 libqtcore4:i386 libqtgui4:i386 libstdc++6:i386 libx11-6:i386 
libxext6:i386 libxss1:i386 libxv1:i386
Skype のサイトから 32bit (i386) 版をダウンロードしてインストールします。
$ sudo dpkg -i skype-debian_4.0.0.8-1_i386.deb
これでおわり。
他にも Multiarch が使えるようになると、色々できるようになるので、使ってみてください。

追記:
Debian Wiki にもやり方が掲載されてました。こちらもご覧ください。
http://wiki.debian.org/skype

2012/06/13

LinuxCon Japan 2012 に参加してきました


先週は LinuxCon に参加してきました。
今年の LinuxCon は Student Presentations があったり、そのおかげか 70 人まで学生が無料で参加できたり、面白そうだったので参加してきました。
学生にこういう機会を与えてくれて、ありがとうございます。
なかなか行けないですからね。
まあ、授業は完全に生贄に捧げて参加してきたんですけどねw
会場がみなとみらいでちょっと遠かったですが、頑張ってつくばから行きました。
参加記をちょっとレポートしてみたいと思います。