Con_HumiのDEV_LOG

開発メモやガジェットのことをつらつらと.

jedi-vim 使ってみます.

Vimスニペット補完の設定はいい感じに動いたので,いよいよjedi-vimを導入しようと思います.

vimでpython3を書く時のおすすめの補完設定 - kazy no blog

[vim]python補完プラグイン「jedi-vim」を快適にする方法(jedi-vim+neocomplete) - dackdive's blog

このお二方の記事が大変参考になりました.
ありがとうございます.

で,やったことは,

jedi-vimのインストール

.vimrc

NeoBundle 'davidhalter/jedi-vim'

を追記して,jedi-vimの導入.
ちなみに,NeoBundleでプラグイン管理しています.
Shougoさんのプラグインを活用させて頂いています.
いつもありがとうございますm( )m

そんでもって,Vimのコマンドモードで:source ~/.vimrcを実行.
NeoBundleInstallのダイアログ(GVim使ってます)が出てくるのでyesを選択.
これでプラグインがダウンロード&インストールされます.

それだけではダメみたいでさらに,~/.vim/bundle/jedi-vim/jedi/に移動して,

git submodule update --init

を実行しました.

jedi-vimの設定も追記

.vimrc

"------------------------------------------------------------
" jedi-vim Setting

autocmd FileType python setlocal omnifunc=jedi#completions
let g:jedi#completions_enabled = 0
let g:jedi#auto_vim_configuration = 0
if !exists('g:neocomplete#force_omni_input_patterns')
    let g:neocomplete#force_omni_input_patterns = {}
endif

g:neocomplete#force_omni_input_patterns.python = '\h\w*\|[^. \t]\.\w*'

"------------------------------------------------------------

と追記して,再び:source ~/.vimrcを実行.

すると......

f:id:Con_Humi:20150114232329p:plain

お,補完できています!
参考にさせていただいた記事のお二方,ありがとうございます!

Pythonの勉強もがんばろーっと.

VimのNeoSnippetの設定

MBPでのメインエディタはMacVimを使おうと頑張っているCon_Humiです.

macvim-kaoriya - MacVim KaoriYa - Google Project Hosting

このエディタでPythonのコードを書こうと思っていて,

を使いたいなーと思っています.
Shougo/neocomplete.vim · GitHubShougo/neosnippet.vim · GitHub
連携できたらと思っているのですが,どうやらスニペットの展開がうまく出来ないので,
NeoSnippetの設定を見直しました.

" ------------------------------------------------------------
" NeoSnippetの設定
if neobundle#tap('neosnippet.vim')
    call neobundle#config({"autoload": {"insert": 1}})
    function! neobundle#tapped.hooks.on_source(bundle)
        " Plugin key-mappings.
        imap <C-k>     <Plug>(neosnippet_expand_or_jump)
        smap <C-k>     <Plug>(neosnippet_expand_or_jump)
        xmap <C-k>     <Plug>(neosnippet_expand_target)
        " SuperTab like snippets behavior.
        imap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)": pumvisible() ? "\<C-n>" : "\<TAB>"
        smap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)": "\<TAB>"
        " For snippet_complete marker.
        if has('conceal')
            set conceallevel=2 concealcursor=i
        endif
    endfunction
    call neobundle#untap()
endif
" ------------------------------------------------------------

NeoSnippetのGitHubで紹介されている設定をneobundle#tapと'neobundle#untap'で囲って
プラグインが読み込まれたタイミングで設定が有効になるようにしていた(のだと思う)のですが,
これが良くなかった模様.

" ------------------------------------------------------------
" NeoSnippetの設定
" Plugin key-mappings.
imap <C-k>     <Plug>(neosnippet_expand_or_jump)
smap <C-k>     <Plug>(neosnippet_expand_or_jump)
xmap <C-k>     <Plug>(neosnippet_expand_target)
" SuperTab like snippets behavior.
imap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)": pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)": "\<TAB>"
" For snippet_complete marker.
if has('conceal')
    set conceallevel=2 concealcursor=i
endif
" End NeoSnippetの設定
" ------------------------------------------------------------

読み込みタイミングの指定をなくしたらすんなり動作しました.(なんでだ?)

記事を書いていてもあやふやな部分が多いのでもう少しNeoBundleとVimScriptの勉強をしないとですね.

本買いました

何冊か本買いました.

いろいろ積み本あるから,勉強しなくては.
買った本+現在の積み本はコチラ↓

パーフェクトPython (PERFECT SERIES 5)

パーフェクトPython (PERFECT SERIES 5)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Vimテクニックバイブル ?作業効率をカイゼンする150の技

Vimテクニックバイブル ?作業効率をカイゼンする150の技

独習C++ 第4版

独習C++ 第4版

あぁ,勉強しなくては.

Vagrant おん CentOS6.5 おん Python 2.7 & 3.3 & virtualenv

VirtualBoxVagrantで操作して開発環境に使おうと考えています.

ということで,Pythonの開発環境を構築した時のメモです.

仮想マシンの用意

なにはともあれ,仮想マシンを用意します.
VirtualBoxVagrantはインストール&設定されているとして.

1. 仮想マシンのboxイメージをVagrantに登録

Vagrantでいう仮想マシンのOSに相当する(と思っている)boxイメージをVagrantに登録します.

A list of base boxes for Vagrant - Vagrantbox.es

このページから仮想マシンのboxイメージを探して,
気に入ったものを見つけておきます.
今回は
CentOS 6.5 x86_64
https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
というboxイメージを利用させてもらいました.
作者の方,ありがとうございます.

で,Vagrantにこのboxイメージを登録するには,

$ vagrant box add boxの名前 boxイメージのURL

とします.
[boxイメージのURL] には,先ほど記述したURLを入れます.
[boxイメージの名前]には,わかりやすい名前を任意で設定します.
ここでは,centos6_5 とします.

2. 仮想マシンの作成

次に,仮想マシンを作成します.
任意の作業ディレクトリに,仮想マシン用のディレクトリを作成します.(その後移動します)

$ mkdir vagrantVM && cd vagrantVM

仮想マシンのディレクトリで,

$ vagrant init centos6_5

すると,Vagrantfile なるものができるので,それを確認します.
そのままそのディレクトリで

$ vagrant up

すると,仮想マシンが起動します.

3. 仮想マシンsshして作業

仮想マシンにログインして作業するには,

$ vagrant status

コマンドでマシンが起動していることを確認しておいて,

$ vagrant ssh

でログインできます.
これでいくらでも仮想マシンをゴニョゴニョ出来ます.

仮想マシンの作成で作成した仮想マシンディレクトリ(今回の例ではvagrantVM)と,
仮想マシン上の /vagrant ディレクトリがシンボリックリンクされています.
「ホストのアプリケーションで仮想マシンのファイルを編集して,仮想マシンの実行環境で試す」
ということが可能です.

仮想マシンPythonの開発環境をいんすとろーる

本題のほうです.
仮想マシンで使っているCentOS6.5のデフォルトのPythonのバージョンは2.6です.
Pythonの最新バージョンは,2系統が2.7,3系統が3.4です.

CenOS6.5にPythonのvirtualenv環境とPython2.7、Python3とmod_wsgiをインストールする | Python Knowledge

こちらのサイトを参考にセットアップしました.
3系統の最新バージョンは3.4ですが,3.3を使うことにします.
Python3.4もyumでインストールできそうです.

手順通りに進めてインストール出来ましたが,
仮想環境を作るmkvirtualenvコマンドが実行できずにつまづきました.

mkvirtualenvコマンドにパスを通す必要があります.
そこで下記,


Python Django入門 (2) Mac編 - Qiita

Qiitaのkaki_kさんの記事を参考にさせていただき解決です.
.bashrcの設定内容で

source /usr/local/bin/virtualenvwrapper.sh

とある部分を,自分の環境に合わせて

source /usr/bin/virtualenvwrapper.sh

とします. これでmkvirtualenvコマンドを使うことが出来ました.
で,結果のスクショをドヤ顔で(笑)

f:id:Con_Humi:20150109133636p:plain

Pythonを勉強してみよーっと.

あ,新年だ.

あけましておめでとうございます.

管理人のCon_Humiです.

さっきの投稿をした後に新年であることに気づきました.

昨年中を振り返ってみると,
早いうちに内定を頂いたので,就職活動が早々に終了し,
研究に専念できるかとおもいきや,自分の堕落した生活のせいでそうも行かず,
一方で,他の内定者の皆様との交流を通じで,沢山の刺激を得られた年でした.
趣味の音楽の活動でも,沢山の刺激を受けることが出来ました.
それもこれも,支えてくださっている沢山の方々との出会いのお陰です.
本当にありがとうございます.

今年の4月には就職で,気の引き締まる思いです.
仕事と両立しながら,開発メモを量産できるよう,
自己研鑚に励んでいきたいと思います.

当ブログを読んでくださっている皆様,ありがとうございます.
駄文が多くなるかもしれませんが,本年もよろしくお願いいたします.

NAS4FreeがTimeMachineのバックアップ先に指定できないよ

こんにちは.
昔の記事

で紹介しましたがMicroServerにNAS4Freeをインストールして,
ファイルサーバーにすることは出来ました.

なぜだか,TimeMachineのバックアップ先に指定できない

こちらの記事↓

NAS4Free で Time Machine サーバーを実現する - Ellinikonblue.com Weblog

を参考にさせてもらいながら,AFPを設定し用としたのですが,
なぜだか僕の環境ではTimeMachineのバックアップ先として
MBPが認識してくれません(T T) AFPは記事の通り設定すればMacから見れるようになります.

TimeMachineのバックアップストレージの認識のあたりでコケてるのかな?

そもそも,バージョンが異なるからか,NAS4FreeのAFPの設定項目が足りないし...

原因調査してまた書きます.

MicroServer N54LをNASにする

HPのProLiant MicroServer N54L を1台所有していて,CentOSをインストールして
ファイルサーバとして動かしています.

f:id:Con_Humi:20141229000243j:plain

↑自室ではこんなかんじです.(汚くてすみません)

で,そのMicroServerをMBPのTimeMachineストレージとして使おうと思ってるわけです.
CentOSでも設定すれば出来ないことはないのだと思うのですが,
サーバーにログインして作業することはほぼないので,デスクトップLinuxである必要はないかなと思い,
試しにNAS専用のOSインストールして,バックアップ&ストレージサーバーを構築したいと思います.

ZFSというやつを使ってみたかったのもあります.

FreeNASかNAS4Free

NAS用のOSといえば,
* FreeNAS * NAS4Free
のあたりが有名かと思います.(他にもいろいろあるみたいだけど)
FreeNASとそこから派生したNAS4Free,それぞれ特徴はあるのですが,
基本的な機能はあまり変わらなそうな感じだったので........

なんとなく,NAS4Freeにしてみます.

ダウンロード

公式サイトからダウンロード出来ます.
そいつをCDに書き込んで起動ディスクを作ればOK

インストール

とりあえず起動CDで起動してしばらく待つとメニューが表示されるので,
インストールしてくれそうなやつを選択.
あとはインストールウィザード的な物の問に答えていけばOK.
HDDだけではなく,USBメモリにもインストールできます.
BIOSでUSBブートを設定すればHDDの容量をフルに使えます.

エンターキーと矢印キーでインストールできちゃいます.簡単.

初期設定

CDを取り出して,起動ドライブから起動.
しばらく待つとさっき見たようなメニューが出てきます.
ここで,IPアドレスの指定はしておいた方が良いかと思います.

あとは設定したIPアドレスにブラウザでアクセスすると,
WEB設定画面が見れるので,そこで設定していきます.

設定覚書

ここからは,設定した内容を随時更新で備忘録的に書いていきます.