ラベル 開発環境 の投稿を表示しています。 すべての投稿を表示
ラベル 開発環境 の投稿を表示しています。 すべての投稿を表示

2012年6月17日日曜日

reST→PDF出力の環境を整備した。

reST→PDF出力する環境を整備してみました。

当方の環境はMacOSX 10.7になっております。
Windows/Linuxの方はコマンドやディレクトリなどを
ご自身の環境に置き換えて作成下さい。

また以下のものがインストールされている前提となっています。
  • Python
  • pip

rst2pdfのインストール
コマンドラインから
$ pip install rst2pdf

日本語フォントのインストール
VLゴシックフォントIPAフォントをインストールします。
それぞれダウンロード解凍後に、フォントディレクトリにコピーします。

日本語出力のためのスタイル設定
これより下のファイルはプロジェクトディレクトリ内に作成します。
% vi ja.style
ja.styleに以下のように記述します。
{
    "fontsAlias" : {
        "stdFont": "VL-PGothic-Regular",
        "stdBold": "VL-PGothic-Regular",
        "stdItalic": "VL-PGothic-Regular",
        "stdBoldItalic": "VL-PGothic-Regular",
        "stdMono": "VL-Gothic-Regular",
        "stdMonoBold": "VL-Gothic-Regular",
        "stdMonoItalic": "VL-Gothic-Regular",
        "stdMonoBoldItalic": "VL-Gothic-Regular",
        "stdSans": "VL-Gothic-Regular",
        "stdSansBold": "VL-Gothic-Regular",
        "stdSansItalic": "VL-Gothic-Regular",
        "stdSansBoldItalic": "VL-Gothic-Regular"
    },
    "styles" : [
        ["base" , {
            "wordWrap": "CJK"
        }],
        ["literal" , {
            "wordWrap": "None"
        }]
     ]
 }

フォントの埋め込み
% vi ja.json
ja.jsonに以下のように記述します。
{
   "embeddedFonts" :
   [[
       "VL-Gothic-Regular.ttf",
       "VL-PGothic-Regular.ttf",
       "ipam.ttf",
       "ipag.ttf",
       "ipagp.ttf",
       "ipamp.ttf"
   ]],
   "fontsAlias" : {
       "stdFont": "VL-PGothic-Regular",
       "stdBold": "VL-PGothic-Regular",
       "stdItalic": "VL-PGothic-Regular",
       "stdBoldItalic": "VL-PGothic-Regular",
       "stdMono": "VL-Gothic-Regular",
       "stdMonoBold": "VL-Gothic-Regular",
       "stdMonoItalic": "VL-Gothic-Regular",
       "stdMonoBoldItalic": "VL-Gothic-Regular",
       "stdSans": "VL-Gothic-Regular",
       "stdSansBold": "VL-Gothic-Regular",
       "stdSansItalic": "VL-Gothic-Regular",
       "stdSansBoldItalic": "VL-Gothic-Regular"
   },
   "styles" : [
       ["base" , {
           "wordWrap": "CJK"
       }],
       ["literal" , {
           "wordWrap": "None"
       }]
    ]
}

rst2pdfの設定ファイル
以下のように作成
$ mkdir ~/.rst2pdf
$ vi ~/.rst2pdf/config
~/.rst2pdf/configに以下のように記述します。
[general]
stylesheets="ja"
compressed=flase
font_path="~/Library/Fonts"
header=
footer=
fit_mode="shrink"
break_level=0

後は以下のように叩くだけでPDFファイルが出力されます。
$ rst2pdf -o output.pdf input.rst

完了後は以下のようなフォルダ構成になっているはずです。
~/.rst2pdf/config
-project
|-input.rst
|-ja.json
|-ja.style
|-output.pdf
以上です。お疲れ様でした!

参考リンク

2012年4月22日日曜日

Sphinx+翻訳 Hack-a-thon 2012.04に行ってきました。

connpass-Sphinx+翻訳 Hack-a-thon 2012.04に行ってきました。

[追記](2012/04/30 16:05)
当日の様子はこちら
Sphinx+翻訳 Hack-a-thon 2012.04 - Yukarin'Note

当日やったことリスト
  • Sphinxテーマのimpress.js弄った。
  • Sphinxプラグインのblockdiag触った。
  • MacにMercurial入れた。
  • bitbucket試した。


  • Sphinxテーマのimpress.js弄った。

  • 今まではs6触ってて「これはシンプルでいいなー」と思ってましたが、
    "impress.js"っていうのもアニメーションが効いてて良さそうと思ったので試しました。

    sphinxjp.themes.impressjs 0.1.0 : Python Package Index
    を参考にして、
    pip install sphinxjp.themes.impressjs
    
    した後、conf.pyに以下の設定を記述しました。
    extensions = ['sphinxjp.themecore']
    html_theme = 'impressjs'
    

    そしたら何故か以下のようなエラーがでる……
    Exception occurred:
      File "/Users/***/.virtualenvs/impressjs/lib/python2.7/site-packages/sphinx/jinja2glue.py", line 149, in get_source
        raise TemplateNotFound(template)
    TemplateNotFound: genindex.html
    The full traceback has been saved in /var/folders/cg/8n8k9bvj5vgbp65py_kxf52r0000gn/T/sphinx-err-l8t7JZ.log, if you want to report the issue to the developers.
    Please also report this if it was a user error, so that a better error message can be provided next time.
    Either send bugs to the mailing list at ,
    or report them in the tracker at . Thanks!
    make: *** [html] Error 1
    

    エラーのログを見てみると以下のようになっているので、
    「どこか設定ファイルの記述が間違っているのでは?」と予想。
    exception jinja2.TemplateNotFound(name, message=None)
    Raised if a template does not exist.
    

    もう一つ出てきたサイト、
    shkumagai/sphinxjp.themes.impressjs
    を参考にして見ると、先の2行に加えて以下の1行を加える必要があることが判明。
    html_use_index = False
    
    設定を追記したら、あっさりmakeできました。

    その後は、先のサイトのoutputと、inputを見比べながら進めて行きました。

    他に参考にしたサイトは以下になります。
    use No::Name; [log][sphinx][python][document]sphinxjp.themes.impressjs 0.1.2 リリースしました。
    百式年賀状 powered by impress.js

    その時四苦八苦している様子を@usaturnさんがまとめてくれています。
    Sphinxのかっこいいスライド作成拡張「sphinxjp.themes.impressjs」 - Yukarin'Note

    impress.jsでは以下の設定を記述して、魅せ方の調整を行うようです。
    .. impressjs:: title
           :data-x: 0           横軸の設定
           :data-y: 0           縦軸の設定
           :data-z: -1000       奥行きの設定
           :data-rotate-x: -90  回転する角度の設定
           :data-scale: 4       表示するスライドの大きさの設定
    
    これの意味が最初ちんぷんかんぷんで、
    適当に数値を変えてみたら複数のスライドが重なって表示されました。

    しっかりと意味あるものにするのには微妙な調整が必要のようです。
    実際に試してみないと感覚がつかめないなと思いました。


  • Sphinxプラグインのblockdiag触った。

  • pip install sphinxcontrib-blockdiag
    
    して、
    Sphinx 拡張:sphinxcontrib-blockdiag — blockdiag 1.0 documentation
    を一通り試して終了。


  • MacにMercurial入れた。

  • Mercurial binary packages for Mac OS X
    から最新版をインストール。
    ターミナルからhgを打ったら起動……しない。
    あれ?と思って調べてみると、どうやらPATHが通っていない。
    更に調べてみるとインストールされたはずの、
    /usr/local/bin/以下にアクセスできなくなっていました。

    アクセス権限を設定し直したらうまく行きましたが、
    以前システム設定の共有の設定を弄った時に変えてからかな……
    Mercurialに原因があったわけではありませんが少し気になります。


  • bitbucket試した。

  • 完全に忘れていましたがアカウントは以前に作成してため、
    まずはgithubと同様にdotfilesを上げてみました。
    これからはちょくちょくこちらも弄っていきたいです。

    まとめ
  • 今月一回も勉強会にこれてなかったので、まずはこれてよかった。
  • やっぱりmake一発でプレゼン式のPDFなりPPTなりの出力する仕組みが欲しい。
  • 来月もHack-a-thon参加します。
  • 2012年4月9日月曜日

    今更ながらpythonの開発環境を整えてみる。

    Pyfesの時にも思ったのだけど、
    前から一度開発環境を整えてみたいと思っていたのでやってみました。

    導入したのは以下、
  • 1.MacPorts
  • 2.virtualenv, virtualenvwapper
  • 3.ipyton
  • 4.pythonbrew


  • 1.MacPorts

  • 巷ではHomebrewが人気らしいのですが、
    Shibu's Diary: MacPortsは生まれ変わった
    を見て導入を決意した次第です。

    The MacPorts Project -- Download; Installation
    からdmgを選択してインストール。簡単ですね。


  • 2.virtualenv, virtualenvwapper

  • virtualenvは以前から使用していたのですが、
    便利だと言われるvirtualenvwapperも
    virtualenv, virtualenvwrapper, pip を使う方法 - Ian Lewis
    を参考に導入しました。
    $ pip install virtualenvwapper
    
    と打つだけでvirtualenvも導入してくれました。
    その後virtualenvwapperのコマンドを使えるようにするため、
    .bashrcに以下のように記述しました。
    export WORKON_HOME=$HOME/.virtualenvs
    source `which virtualenvwrapper.sh`
    
    その後.bashrcに記述した内容を有効化するために、
    以下のコマンドを打って完了です。
    $ source ~/.bashrc
    


  • 3.ipyton

  • IPython — kenkov.jpを参考にして導入。
    $ sudo port install py27-ipython
    $ sudo port select --set ipython ipython27
    
    その後、設定ファイルを作成しました。
    $ ipython profile create
    
    でデフォルトの設定ファイルを作成し、
    出力されたファイルに以下の設定を記述しました。
    c = get_config()
    # 出力の後の改行をなくす
    c.TerminalInteractiveShell.separate_in = ''
    # 入力のプロンプトの変更
    c.PromptManager.in_template = '[\\#] >>> '
    # 出力のプロンプトの変更
    c.PromptManager.out_template = '[\\#] ==> '
    # デフォルトのエディタの設定
    c.TerminalInteractiveShell.editor = 'vim'
    


  • 4.pythonbrew

  • pythonbrewはPyfesの時に導入済みだったのだけど、
    何故かsudo付けないと有効化されなかったので以下のようにして入れ直しました。
    $ export PYTHONBREW_ROOT=~/.pythonbrew
    $ curl -kLO http://xrl.us/pythonbrewinstall
    $ chmod +x pythonbrewinstall
    $ ./pythonbrewinstall
    

    よしこれでOK!と思っていたら、
    何故か毎回
    source ~/.bashrc
    
    しないとpythonbrewの設定が反映されない…

    そこで、.bash_profileを作成して以下の1行を追加しておきました。
    source ~/.bashrc
    

    これで一通りPythonの開発環境を整えることができました。
    さあ後は実践するだけ!

    2012年3月11日日曜日

    MacとWindowsでvimのdotfiles管理してみた。

    去る3/3、TokyoVim#4に行って参りました。
    参加登録の〆切は過ぎていたのですが、
    主催の@kana1さんに直接連絡することで何とか参加!
    いや〜きいてみるものですね。

    当日の様子は@usaturnさんがまとめてくれています。

    TokyoVim#4 - Yukarin'Note


    自分が当日やったこととしては以下の3つです。
    NeoBundle.vimを用いてdotfilesの整理
    ・VMに入れているWindows7にNeoBundle.vim導入
    ・バイナリエディタとしてのVimの使い方調べ

    dotfilesについては以下のURLが詳しいです。
    gitが入っていれば2〜3分でいつも使ってる自分の環境が構築出来ます。
    ナウなヤングのためのgithub入門講座 -基本機能からdotfiles管理まで- - 馬鹿と天才は紙一重
    少し引用させてもらうと、

    dotfilesはhomeディレクトリにある各種プログラムの設定ファイルです。
    .vimrcとか.screenrcとか、ああいうやつです。
    これらがgithubにあると同じ設定ファイルを
    例えば会社と自宅のような別環境で使うことができ、
    どちらかで設定をしなおすという面倒なこともなくなり便利です。

    以前は下記リンクを参考にvundleでやってみましたが、
    neobundle.vimでまたやり直してみました。
    今回移行しようと思った最大の理由は、
    Pluginを入れるたびに出てくるDOS窓が煩わしかったから。
    そろそろしっかりvimを使う。dotfilesのgithub管理とvundleの導入。 - holyppの日記
    そろそろしっかりvimを使う。github+vundleを利用したWindowsとの同期。 - holyppの日記

    vimprocという非同期処理を行う
    Pluginを動かすのに少し手こずりましたが、
    MBAに入れるときは
    30秒で MacVim に VimShell を入れる最速の方法 | ウェブル
    を参考に_vimrcに
    let g:vimproc_dll_path = $VIMRUNTIME . '/autoload/proc.so'
    
    と記述することであっさり動きました。
    WindowsでもWindows7 GVim にVimShellをインストールする | karakaram-blog
    を参考に解決することができました。
    proc.dllをproc.soにリネームして.vim/autoload/にコピーすることで完了。

    Vim上で、
    :Unite neobundle/install:!
    
    と打つとDOS窓がでることなく次々にUpdateが実行されていきます!

    これでMacだろうがWindowsだろうが
    問題なく自分のVimが使えるようになりました。
    参加者のみなさんお疲れ様でした!

    2011年12月30日金曜日

    Vimテクニックバイブルを読んでVimにプラグイン追加してみた part3

    part1, 2に続いてpart3です。しばらく間が空きましたね。
    まあ気にせず行きましょう。

    今までquickrun.vimneocomplcacheだけで過ごしてきたものの、
    気になるプラグインがでてきたので
    まずは簡単そうなものから入れてみました。
    今回入れたのは以下の2つ
    - Vundle
    - simplenote.vim

    気になるプラグインを入れる際に、
    管理は簡単な方がいいだろうとまずはVundleを導入。

    Vundle
    Vundleはvimがどのディレクトリから設定ファイル、プラグインファイル
    を読み込むのかを決定している「runtimepath」オプションを操作する
    だけなく、インストールや更新なども行うことができます。

    導入の際はgitが必須です。以下のようにインストールします。
    git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
    
    次に_vimrcに以下のような記述をしました。
    "Vundle設定
    filetype off
    
    set rtp+=~/.vim/bundle/vundle/
    call vundle#rc()
    
    "Bundle 'gmarik/vundle'     "必須
    "githubにあるプラグイン
    Bundle 'thinca/vim-quickrun'
    Bundle 'Shougo/neocomplcache'
    Bundle 'mrtazz/simplenote.vim'
    
    filetype plugin indent on
    
    後はVimを立ち上げて、
    :BundleInstall
    

    と叩けばインストール開始です。
    インストールが完了すると以下のようになります。


    simplenote.vim
    SimplenoteはEvernoteのスキマを埋める簡単メモツールです。
    (Vimテクニックバイブルには書いてありません)
    simplenote.vimはvimからそのSimplenoteを扱おうという代物。
    普段から書き慣れているエディタでメモを取りたいと思っていた自分には最適でしたね。
    若干重いようですが許容範囲内かと思っています。

    インストールは先程のVundleの設定に記しているので割愛します。
    _vimrcに以下の設定を書きこむことでログインの手間を減らせます。
    let g:SimplenoteUsername = "Enter your username"
    let g:SimplenotePassword = "Enter your password"
    

    最低限以下の3つのコマンドを覚えておけばOK
    :Simplenote -l "Simplenoteにあるデータの一覧
    :Simplenote -u "Simplenoteのデータを更新する
    :Simplenote -n "新しいデータを作成する

    その他・・・
    他にもvimshell, unite.vim, surround.vimに興味があります。
    会社でWindowsでもシェル使いこなしたいな
    →自分Vim使っている
    →vimshell使ったほうがいいのかな
    という安直な気持ちですが(笑)

    unite.vimは何が何だか分からないから知りたい。
    surround.vimはテキストオブジェクトの操作を身につけたいからです。
    まあPythonだけ弄っていくならそれほど意識する必要がないのかもしれませんが……

    2011年12月11日日曜日

    Pythonの仮想開発環境作成ツール-virtualenv1.7-での変更点

    気がついたらvirtualenvが1.6.4から1.7にバージョンアップしていた。
    (virtualenvについてはこちらでも書いてみた。)

    以下変更点。
    • Updated embedded Distribute release to 0.6.24. Thanks Alex Grönholm.
    • Made --no-site-packages behavior the default behavior. The --no-site-packages flag is still permitted, but displays a warning when used. Thanks Chris McDonough.
    • New flag: --system-site-packages; this flag should be passed to get the previous default global-site-package-including behavior back.
    • Added ability to set command options as environment variables and options in a virtualenv.ini file.
    • Fixed various encoding related issues with paths. Thanks Gunnlaugur Thor Briem.
    • Made virtualenv.py script executable.
    特に大きいなと思ったのが2つ目の変更点
    virtualenv1.7は指定しなくても
    --no-site-packagesを勝手に指定してくれるようになった。

    --no-site-packagesはインストール済みのモジュールを、
    全て外した状態で仮想環境を作成できるオプション。
    これをつければ、
    virtualenv内のパッケージのみのリストを得ることができる。

    しかし今までは、
    python virtualenv.py --no-site-packages env1
    
    といちいち指定しなければならないので面倒だった。
    これが
    python virtualenv.py env1
    
    で済むのだから快適と言わざるを得ない。

    人によっては、
    • インストールするPythonのバージョン(2.5, 2.6, 2.7, etc)
    • パッケージ管理ツールdistribute
    など指定するオプションも多いはず。
    (例)
    python virtualenv.py --distribute --python=python2.5 --no-site-packages env2
    

    distributeは既にデフォルトで設定する方法もあるようなので、
    virtualenv1.7で--no-site-packagesもデフォルトにできるようになったのは大きいと思う。

    ちなみに確認のため--no-site-packagesを付けて試してみたところ、
    インストールが始まる前に
    The --no-site-packages flag is deprecated; it is now the default behavior.
    と表示された。
    確かにインストールしてくれているようだ。
    より使いやすく便利になったね!

    2011年11月5日土曜日

    Python開発環境-virtualenvと-pip-

    virtualenvはPythonの仮想的な開発環境を作るライブラリ。
    いろいろな実行環境
    (Pythonのバージョンが違う、モジュールが違う、etc)
    をごちゃごちゃさせたくない時に便利らしいです。
    (参考にしたのはこちら)

    pipはPythonにおけるバージョン管理システム。
    他にもeasy_installとかdistributeなどがあるらしいのだけど、
    将来統合される予定なので好きなモノを使えばいいらしいです。
    (ソースはこちら)
    今回はHerokuの公式ドキュメントに従ってpipをインストール。


    virtualenvとpipをインストールするために、
    公式ドキュメントを眺めていたのだが全然ピンとこない。
    そこでGoogle先生で調べていたら、
    Virtualenv — 清水川 Docs v1.0 documentation
    にたどり着きました。

    記述の通りに打ち込んだら一発でインストールできました。
    New python executable in env1/bin/python
    Installing setuptools............................done.
    Installing pip.....................done.
    
    あっという間でした。
    virtualenv入れるとpipも一緒に入るのね。

    今の段階では-distributeオプションをつけていないので、
    デフォルトのsetuptoolsになっています。
    (virtualenvはvirtualenvwapperを入れると更に便利らしい)


    清水川先生のおすすめは
    virtualenv + distribute 環境下で buildout + distribute
    らしいけど(ソースはこちら)、
    とりあえずHerokuの公式ドキュメントを見ながら進めてみよう。

    2011年11月4日金曜日

    Herokuインストールdone…

    公式にはまずRuby1.9系入れるみたいなこと書いてあったけど、
    そういえばRubyはXcode入れた時に一緒に入っている!

    Rubyはあえてインストールせず、
    sudo gem install heroku
    
    したらあっさり入れられました。
    バージョンは1.8系なんだね。へー。

    Successfully installed term-ansicolor-1.0.7
    Successfully installed mime-types-1.17.2
    Successfully installed rest-client-1.6.7
    Successfully installed addressable-2.2.6
    Successfully installed launchy-2.0.5
    Successfully installed rubyzip-0.9.4
    Successfully installed heroku-2.11.0
    7 gems installed
    Installing ri documentation for term-ansicolor-1.0.7...
    Installing ri documentation for mime-types-1.17.2...
    Installing ri documentation for rest-client-1.6.7...
    Installing ri documentation for addressable-2.2.6...
    Installing ri documentation for launchy-2.0.5...
    Installing ri documentation for rubyzip-0.9.4...
    Installing ri documentation for heroku-2.11.0...
    Installing RDoc documentation for term-ansicolor-1.0.7...
    Installing RDoc documentation for mime-types-1.17.2...
    Installing RDoc documentation for rest-client-1.6.7...
    Installing RDoc documentation for addressable-2.2.6...
    Installing RDoc documentation for launchy-2.0.5...
    Installing RDoc documentation for rubyzip-0.9.4...
    Installing RDoc documentation for heroku-2.11.0...
    
    
    
    ふむ…とりあえずインストールまで完了したので、
    また公式サイトを探ってちょくちょくいじっていきます。
    次はPythonの環境を整えていかないとな〜。

    p.s.
    sudoつけないでインストールしようとしたら、
    
    ERROR:  While executing gem ... (Gem::FilePermissionError)
        You don't have write permissions into the /Library/Ruby/Gems/1.8 directory.
    
    
    と表示された。
    インストールする時は忘れずに、ですねぇ…


    2011年10月27日木曜日

    Vimテクニックバイブルを読んでVimにプラグイン追加してみた

    まだ試行錯誤中なので一部のみ抜粋。
    _vimrcと_gvimrcは逐一変わってるのでまた今度にしようと思う。

    今回はVimのプラグインをインストールしてみた。
    インストールしたのは以下の2つ
    quickrun.vim(Vim上でプログラム実行)
    neocomplcache(補完)

    今回はその中でもquickrun.vimについて書きます。
    Vimテクニックバイブル持ってない方は、こちらとかを参考にどうぞ。

    以前のPython Developers festa2011.10では
    下記の設定を_vimrcに追加して実行結果を確かめてた。
    点線で囲っているところを追加すれば、
    <Ctrl+P>でPythonの実行結果をすぐに検証できた。
    " python実行
    function! s:Exec()
        exe "!" . &ft . " %"
    :endfunction
    command! Exec call <SID>Exec()
    map <silent> <C-P> :call <SID>Exec()<CR>
    

    しかしPython以外のプログラム書く時に
    逐一_vimrcを変更したり、外部プログラムを呼び出すのは大変。
    ということでquickrun.vimに目をつけた。
    これは<\+r>で実行結果を確かめることができる。

    実行結果を確かめる時
    Vimを縦分割か、横分割するのを変更できるらしいと聞いて、
    以下の設定を、_vimrcに追加した。
    " 横分割をするようにする
    let g:quickrun_config={'*': {'split': ''}}
    
    " 横分割時は下へ新しいウィンドウが開くようにする
    set splitbelow
    

    実行した結果はこんな感じ。

    まだPython以外では試してないけど、
    他の言語も何種類も対応しているから捗ることは間違いなさそう。

    2011年4月26日火曜日

    geditの設定を自分仕様にしてみた。

    [編集]-[設定]より、
    ■行番号を表示する
    ■対応するカッコを強調表示する
    ■タブの幅 8→4に変更
    ■タブの代わりにスペースを挿入する
    ■自動インデントを有効にする
    ■ファイルを自動的に保存する間隔 10分ごとにする
    ■Pythonコンソール、コード・スニペット、外部ツールの有効化

    とりあえずはこのくらい。
    Pluginとか入れればもっと便利かな。

    2011年4月24日日曜日

    仮想環境上にAndorid 開発環境を整えてみた。

    入れたものは以下の通り。

    ■VirtualBox
    ■Ubuntu10.04LTS
    ■Sun-JDK
    ■Eclipse
    ■Android SDK
    ■Eclipse用ADTプラグイン
    ■VirtualBox Guest Additions

    ここからVirtualBoxを落として、
    Ubuntu10.04 LTS 日本語Remixのisoから新規作成。
    基本デフォルト設定です。

    その後[Ubuntu][Android] Ubuntu 10.04 に Android 開発環境をインストールしてみた
    に乗っ取ってAndroid開発環境を作成。
    Windows7 64bitで丸1日+αかけてもできなかったものが
    割とあっさりとできあがりました。

    この後 HelloWorldアプリケーション作成 Eclipse編の手順に従って、
    Hello,World!をエミュレータ上で実行してみました。
    これでひと通りAndroidを開発できる環境は整いましたね。

    最後にモニタの解像度が800×600になっているため、
    見やすくするためにをVirtualBox Guest Additionsを用いて
    解像度1024×768を上げて基本的な設定は終了です。