Rictyフォント自動作成スクリプト

プログラミング用フォント Ricty

プログラミング用フォント"Ricty"のフォントファイルがライセンスの問題でダウンロードできなくなっていますが、フォントを生成するスクリプトと作り方は作者によって公開されています。しかし、いちいち手動でファイルをダウンロードしたりーとか、いろいろ操作するのは面倒なので、その辺を一気にやってくれるスクリプトを作成しました。適当にファイルに貼りつけて実行すると、カレントディレクトリにフォントが作成されます。フォントの作成にFontForgeが必要ですので、予めインストールしておいてください。

#!/bin/sh

RICTYURL="http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty/Ricty-3.0.1.tar.gz"
MIGM1URL="http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fmix-mplus-ipa%2F51978%2FMigu-1M-20110514.zip"
INCONSURL="http://levien.com/type/myfonts/Inconsolata.otf"

CURDIR=`pwd`
TMPDIR=`mktemp -d`
TMPDIR2=`mktemp -d`

trap "cd $CURDIR; rm -rf $TMPDIR $TMPDIR2" INT HUP QUIT

if [ -z `which fontforge` ]; then
  echo 'FontForge is not installed.'
  exit 1
fi

cd $TMPDIR
for url in "$RICTYURL" "$MIGM1URL" "$INCONSURL"; do
  local fname=`basename $url`
  wget "$url"
  case $fname in
  *.zip)
    unzip $fname
    ;;
  *.tar.gz)
    tar xzf $fname
    ;;
  *)
    ;;
  esac
done
find . \( -name '*.sh' -o -name '*.?tf' \) -exec cp {} $TMPDIR2 \;

cd $TMPDIR2
sh ricty_generator.sh Inconsolata.otf Migu-1M-regular.ttf Migu-1M-bold.ttf
cp -f Ricty-*.ttf $CURDIR

cd $CURDIR
rm -rf $TMPDIR $TMPDIR2

覚書:Debian amd64 Testing の glibc と Adobe Flash "Square" の相性?

以前、Twitterでもつぶやいたのですが、今、Debian amd64 Testingにおけるglibcのバージョンが2.13です(squeezeは、2.11)。ですが、コレをインストールしてしまうと、Adobe Flash ”Squere”が正常に動作しません。具体的な現象としては、低ビットレートの音声を持つSWFを実行させると、音飛びしているようなノイズが発生します(ニコニコ動画の生放送を視聴するとよくわかります)。

応急対処としては、glibcを2.11にダウングレードします。ただ、一切Flashを使わないのであれば、この作業は必要ないでしょう。

# もしかしたら、私の環境が悪いのかもしれませんが・・・

Plone - Zope上に構築されたCMS

Plone CMS: Open Source Content Management — Plone.org
Plone 5.1 : パワフルで高速なCMS — Plone - エンタープライズ・オープンソースCMS Plone Users Group Japan

ポータルサイト作成に使えないかなと、現在評価中です。インストールが簡単すぎて驚きました。

 # mkdir tmp
 # cd tmp
 # (本家サイトから Plone-X.X.X-UnifiedInstaller.tgz をダウンロード)
 # tar xzf Plone-X.X.X-UnifiedInstaller.tgz
 # cd Plone-X.X.X-UnifiedInstaller
 # ./install.sh standalone

以上。

Pythonとか入っていないマシンでも、すべて必要なプログラムがインストーラに同梱されているので、ここまでやってしまえば、後は設定ファイルをいじくって、起動させれば完了。あ、ただ、同梱されているプログラムをコンパイルするので、gccなどは予めインストールしておく必要はあります。

このインストーラのテクニックは、スタンドアローンPythonアプリケーションを配布したい時に役に立ちそうなので、今後分析してみようかなと思います。

ウェブキャッシュサーバは重要

あると無いとでは、レスポンスに大きな違いがでてくることが、使ってみて実感できました。

キャッシュする際に重要なポイントは、次のとおりです。

  • 画像などのリソースファイルのような静的なデータをキャッシュする
    • ※これはどちらかというとブラウザのキャッシュを使うかな?
  • 変化の少ない動的なデータをキャッシュする

注意点として、不要なデータを表示させないよう「ユーザがログイン状態の時には、キャッシュしない」ことを考慮する必要があります。

最後に有名なキャッシュサーバとしては以下のようなものがあります。

VarnishはHTTPに特化したキャッシュサーバで、性能もそれなりに良いようです。

unzip with iconv patch

Debianのunzipコマンドには、展開するときファイル名を指定の文字コードに変換できる iconvパッチが当たってないので、当ててみました。手順はいかのとおりです。なお対象となるパッケージは、unzip 6.0-4です。

 $ mkdir tmp; cd tmp
 $ apt-get source unzip
 $ cd unzip-6.0
 $ wget -O iconv.patch https://bugs.archlinux.org/task/15256?getfile=3685
 $ pacth -p1 < iconv.patch
 $ debuild -uc -us
 $ sudo dpkg -i ../unzip*.deb

こうすることで、Windowsで作成された日本語ファイル込みのZIPファイルも、Linux上で正常に展開することができます。