Archive for 7月, 2014

svnコマンドについて

金曜日, 7月 4th, 2014

export  EDITOR=vim

svn export {FilePath|URL} Path2

これで.svnファイルが除外された形で保存されるため、容量が圧縮できる。既存環境で約1/4になりました。

 

svn commit 時にCONFLICTが発生した場合の対処。

自分のファイルを消す。

マージする。

revertする。

conflictした場合は

svn: Aborting commit: '/svn/hoge.txt' remains in conflict
このようなメッセージが出て、どうするか聞かれます。
rコマンドでmergeして、その後該当ファイルを編集します。
<<<<<<< .mine
hoge
moge
=======
foo
bar
>>>>>>> .r2

 

ファイルを開くと上記のようになっています。
問題がなければ、<で始まる行、"
=======

 

"、>で始まる行を削除して保存しましょう。

 

mysqlbinlog

金曜日, 7月 4th, 2014

テキストで見られるようになるよ。

mysqlbinlog /var/lib/mysql/sv**.example.com-bin100 > /tmp/binlog.txt

sedをgrepぽく使う

金曜日, 7月 4th, 2014

sed -n ‘/server-id/p’ /etc/my.cnf

-n でパターンスペースをホールドスペースに突っ込む
アクションpでプリント

grepみたいに使う。正規表現などでsedに対応しているregexを使いたい時など。

trコマンドについて

金曜日, 7月 4th, 2014
echo unko | tr [:upper:] [:lower:]
UNKO

 

bundlerのメモ

金曜日, 7月 4th, 2014

まずはbundlerのインストールから

 

gem install bundler

実行したいスクリプトがあるディレクトリでinitコマンド実行

cd /PATH/TO/hoge

bundle init

initするとテンプレートファイルができるので、自分が必要なgemを記述する。

gemの配布先が別途必要な場合はsourceで指定

 

vim Gemfile

# A sample Gemfile
source “https://rubygems.org”

gem “redis”
gem “json”

 

 

bundle install

指定したディレクトリにgemをインストールする場合は–pathオプションをつけます。

bundle install –path=/home/osho-3/sample/bundle

Redis Commanderについて

木曜日, 7月 3rd, 2014

なにやら名前がカッコイイ

ブラウザからredisのデータにアクセスできる優れもの。

npmでパッケージが提供されています。

npmとはNodeむけパッケージ管理ツールです。

Nodeをインストールすると付いてくる。

yum とか aptとか gem とかの一種だと思って頂けるとよいでしょう。

npm -v
1.4.14 #バージョンが返ってくればインストールできてます。

 

npm -g install redis-commander # -g はグローバルオプションです。
/usr/local/bin/redis-commander -> /usr/local/lib/node_modules/redis-commander/bin/redis-commander.js
redis-commander@0.2.1 /usr/local/lib/node_modules/redis-commander
├── inflection@1.2.7
├── readline-browserify@0.0.4
├── cmdparser@0.0.3
├── sf@0.1.7
├── async@0.1.22
├── ejs@0.8.8
├── optimist@0.3.7 (wordwrap@0.0.2)
├── redis@0.7.3
├── node-redis-dump@0.2.1 (underscore@1.5.2, async@0.2.10, redis@0.8.6)
├── express@2.5.11 (qs@0.4.2, mime@1.2.4, mkdirp@0.3.0, connect@1.9.2)
└── browserify@1.12.3 (nub@0.0.0, commondir@0.0.1, crypto-browserify@0.4.0, resolve@0.2.8, vm-browserify@0.0.4, coffee-script@1.7.1, detective@0.1.1, http-browserify@0.1.14, deputy@0.0.4)

 

redis-commanderコマンドで起動させ、iptablesなどでアクセス制限をしていたらデフォルトの8081ポートを空けてブラウザでアクセスするだけ。

と、ここまで書きましたがnodeの管理もご多分に漏れず複数のバージョンを切り替えて使えるようです。

rbenv とか plenvとか

nodeのバージョン管理ツールの名称はnvm

nvmのインストールからしていきましょう。

git clone git://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh

#インストールできるバージョンの一覧表示

nvm ls-remote
nvm install v0.11.13
nvm use v0.11.13

node -v

v0.11.13

 

npm -v
1.4.9

npm install redis-commander

 

npm ls redis-commander
/”your account”
└── redis-commander@0.2.1

which redis-commander
~/.nvm/v0.11.13/bin/redis-commander

nvm経由で特定のバージョンが使えるのはsourceコマンドで ~/.nvm/nvm.shして nvm use ‘version’ しているからなんですね。

ログアウトして再度ログインすると使えなくなります。

では~/.*sh_profileにでも登録しましょう。

echo -e “\n” >> ~/.bash_profile

echo “nvm use v0.11.13” >> ~/.bash_profile

 

 

 

redis-commander はフロントで常駐するので、supervisorとかそこらへんので、デーモンとして起動してやればいいでしょう。

http://sample.com:8081

sample.comをあなたのサーバーのホスト名にしてアクセスしてみて下さい。

 

 

Swiftではじめよう その3

木曜日, 7月 3rd, 2014

前回は寄り道したので戻ります。

swiftのREPL(Read-eval-print loop 対話型評価環境だそうです)環境を整えましたが、複数行コピペすると思った通りに動かなくて

イライラしたので、ファイルに落としてswiftコマンドの引数に渡してコンパイルと実行をしてみました。

vim hoge.swift

swift -i hoge.swift

 

// If

//閉じブレースが特徴的

var com = “pepabo”

ifcom.isEmpty {

    println(“Empty”)

} else {

    println(com)

}

// Optional

//下記の:Type?で条件指定できる

// 変数:Type?で表現される

let cityDict = [

    “Japan”:“Tokyo”,

    “France”:“Paris”

]

let cityOpt:String? = cityDict[“Japan”]

if let cityName = cityOpt {

    let currentityName = “You ar in “ + cityName

   println(currentityName)

} else {

   let message = “You ar not here”

  println(message)

}

//ifの簡略化

/*

let opt:String? = cityDict[“France”]

if opt {

    println(“Do something”)

}

*/

// optをつけないとエラーになる。

//unwrappedされていない値ということだが、飲み込めていない

let opt:String? = cityDict[“France”]

if opt {

    let message = “You are in “ + opt!

}

//forループ

for var idx = 0; idx < 5; idx++ {

    var message = “かえりたい + String(idx)

    println(message)

}

// 5回実行される idx < 5

for idx in 15 {

    var message = “Count=” + String(idx)

    println(message)

}

// 4回実行される 条件式のドットの数が違う idx <= 5

for idx in 1..5 {

    var message = “Count=” + String(idx)

    println(message)

}

// List Collectionの要素を回す

//eachのような使い方

let names = [“Hikari”, “Kodama”, “Nozomi”, “Komachi”]

for name in names {

    println(“Hello, \(name)!”)

}

// Dictionary型の要素を回す。(連想配列)

for (country, city) in cityDict {

    println(“Country : \(country), city: \(city)”)

}

つづく

Swiftではじめよう その2

火曜日, 7月 1st, 2014

前回の続きをやる前に一つ。

playground でコードを書いていると実行結果が見えてスバラシイ!って聞いていたのですが、

ShellScritpt を書きながらquickrun(vimのプラグイン)を実行するイメージだったんです。。

irbやらpryやらインタラクティブなプロンプトを期待していました。

 

そんな感じで困っていたら、swiftコマンドをターミナル上で実行すると上記の悩みが解決出来ると聞きました。

ターミナルを起動してswiftコマンドを実行するもcommand not found

 

私の場合はここにありました。

/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

 

PATHを探して、.bash_profile や.zshrcに追加してあげましょう。

export PATH=/Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Users/osho-3/local/ruby-1.9.3/bin:$PATH

プロンプトを抜ける時は

:quit

です。コロンを忘れるとエラーになるので注意です。

 

追記:2014/07/03

playground上でバックスラッシュが出なくて困っていました。

xcode バックスラッシュでググったら出てきた。

option + ¥ -> \

となります。

今までエディターはvimでしたので困った事が無くて知りませんでした。

 

つづく

 

vimのアップデート

火曜日, 7月 1st, 2014

いつまで待ってもvimの7.3~ がyumでインストールされず.vimrcのエラーが出まくる。

疲れたのでアップデートする事にしました。

 

今回からmercurilaを利用してインストールとアップデートをしていきます。

mercurialはBTS(BugTrackSystem)です。

すみません、聞いたことなかったです。

yum install mercurial

hg clone https://vim.googlecode.com/hg/ vim

cd vim

少々パッケージが必要でした。

yum install gcc python python-devel ncurses-devel python-setuptools

下記で指定しているprefixは個人のディレクトリにするなり、システムワイドな環境にするなりしてください。

./configure –prefix=/usr/local/vim7.4

make && make install

 

以降のupdateはpullを行い、updateコマンドを実行

cd vim

hg pull

hg update