2013-07-18

アラビア語の学習環境を整える

思い立ってアラビア語の勉強をはじめたので、やった事をまとめる。

キーボードの設定

まずはMacのキーボードでアラビア語の入力をできるようにした。手順は「システム環境設定」→「言語とテキスト」→「入力ソース」からアラビア語入力ソースにチェックを入れるだけ。しかしここで入力方式が3つあり、どれにするか早速悩む。
ArabicとArabic - PCについてはWikipediaのアラビア語キーボード配列の項目に記載があった。Arabic - QWERTYについてはよくわからなかったので実際に触ってみた。配列は次のとおり。

ا(アリフ)がa、ب(バー)がbといった風に音感が似てるローマ字アルファベットにマッピングされている。配列の歴史的な経緯はどうでも良かったので、すぐに体が覚えられそうなArabic - QWERTYを使う事にした。السلام عليكم(アッサラーム アレイコム)と打ちたい場合は alslam elikm である。直感的に打てて良い。なぜかArabic - QWERTYの状態ではctrl + shift+ ]でChromeのタブの切り替えができなくて不便。

勉強用テキスト

Amazonで良さそうなのを二冊購入した。最初は全くアラビア語が読めないので単語を覚える事ができない、まずは書き取りから初めて単語が読める状態になるのを目指した。どちらも本にガリガリ書き込んで練習するタイプの本。
読める書けるアラビア文字練習プリント読める書けるアラビア文字練習プリント
アルモーメン アブドーラ,Al moamen Abdalla

小学館
売り上げランキング : 65350
Amazonで詳しく見る
アラビア語が面白いほど身につく本―文字から旅行会話までマスターできる (語学・入門の入門シリーズ)アラビア語が面白いほど身につく本―文字から旅行会話までマスターできる (語学・入門の入門シリーズ)
アルモーメン・アブドーラ,本田 孝一,Al moamen Abdalla

中経出版
売り上げランキング : 100014
Amazonで詳しく見る

カリグラフィ万年筆

最初はボールペンで書きとり練習をやっていたのだが、あの独特の雰囲気が出せず面白味に欠ける。そこで、カリグラフィ用万年筆があるとの事で使ってみた。アラビア書道用の物では無いが、太い線が引けるので雰囲気が出る。記事タイトル直下の画像がカリグラフィ万年筆で書いた文字。
パイロット万年筆 プレラ カリグラフィ 透明ブラック FPRN-350R-TBCMパイロット万年筆 プレラ カリグラフィ 透明ブラック FPRN-350R-TBCM
㈱パイロットコーポレーション
売り上げランキング : 18793
Amazonで詳しく見る

学習支援アプリの導入

AppStoreで探してもあまり数が無いので、見つかったアプリを全て試した。L-Lingoという奴が繰り返し練習できて良さげ。

L-Lingo アラビア語を学ぼう 5.03(無料)App
カテゴリ: 教育, 辞書/辞典/その他
販売元: Smart Language Apps Limited - Smart Language Apps Limited(サイズ: 85.9 MB)
全てのバージョンの評価: 無し(0件の評価)


このエントリーをはてなブックマークに追加

2013-07-06

iPython Notebook用のChefのCookbookを書いた

iPython Notebookが0.13.2にバージョンアップして、セットアップが自動化できそうな雰囲気がしたので勉強中のChefのcookbookにした。

iPython Notebookのパッケージインストール

apt-get install ipython-notebook で入るようになったので、これまでとは比較にならないぐらい簡単になった。レシピは次の通り。ipython-notebook本体と必要なパッケージをインストールする。
# Install packages
%w{
  python-pandas
  python-numpy
  python-scipy
  python-matplotlib
  python-nose
  ipython-notebook
}.each do |pkg|
  package pkg do
    action :upgrade
  end
end

# iPython needs sympy 0.7.2
# So use [pip install] instead of package install (0.7.1).
python_pip "sympy"
sympyだけはaptで降ってくるバージョンが古くて動作しなかったので、pipで入れている。

iPython Notebookの起動

サーバー起動時にiPython Notebookも起動して欲しいので起動もレシピにした。内容は

  • 起動ユーザー(ipynb)の作成
  • プロファイル配置ディレクトリの作成
  • 起動スクリプトの配置
  • 起動

デーモン化が面倒だったので nohup で起動するようにした。レシピは次の通り。
# Create launch user
group 'ipynb' do
  group_name 'ipynb'
  action :create
end

user 'ipynb' do
  comment 'User for ipython notebook'
  gid 'ipynb'
  home '/home/ipynb'
  shell '/bin/bash'
  supports :manage_home => true
  action :create
end

# Add to staff group
group 'staff' do
  action :modify
  members ['ipynb']
  append true
end

# Create serve directory
directory '/web/' do
  owner 'ipynb'
  group 'staff'
  mode '0775'
  action :create
end

directory '/web/ipython-notebook/' do
  owner 'ipynb'
  group 'staff'
  mode '0775'
  action :create
end

# 起動スクリプトの配置
template '/web/ipython-notebook/launch.sh' do
  source "launch.sh.erb"
  owner 'ipynb'
  group 'staff'
  mode 00776
end

bash 'Launch ipython notebook' do
  user 'ipynb'
  group 'staff'
  cwd '/web/ipython-notebook/'
  code >>-EOC
    nohup ./launch.sh restart
  EOC
end
起動スクリプトテンプレート、起動オプションのいくつかはAttributeから渡す。
#!/bin/bash

pid=`dirname $0`/ipynb.pid
port=<%= node['ipython-notebook']['port'] %>
ip=<%= node['ipython-notebook']['ip'] %>
ipythondir=`dirname $0`/.ipython

start() {
    if [ -f $pid ]; then
        echo "running already. pid: `cat $pid`";
        return 1;
    else
        cd `dirname $0`
        ipython notebook --pylab=inline --port=$port --ip=$ip --ipython-dir=$ipythondir &
        echo $! > $pid
    fi
}

stop() {
    if [ -f $pid ]; then
        kill `cat $pid`
        rm -f $pid
    else
        echo "Not running";
    fi
}

restart() {
    stop
    start
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart}"
    exit 1
esac

exit $?

動作確認

インスタンス起動後にチェック
$ ps aux | grep python
ipynb    23612  0.0  4.0 188952 20172 ?        S    13:24   0:02 python /usr/bin/ipython notebook --pylab=inline --port=8888 --ip=* --ipython-dir=./.ipython
 実際に使ってみる。
OK。あとはbitbucketのプライベートリポジトリで管理しているノートをgitで引っぱってこれば個人的な要件は満たせる。

このエントリーをはてなブックマークに追加