読者です 読者をやめる 読者になる 読者になる

Redisでlist型を触ってみる

# 配列に追加して行く # rなのは右から(末尾から)な操作 rpush mycolor pink rpush mycolor blue rpush mycolor green rpush mycolor red # 以下はleftのlじゃなくてlistのl # 要素を全て取り出す lrange mycolor 0 3 # これでも同じ lrange mycolor 0 -1 …

Redisを触ってみる

起動と接続 redisサーバー起動 redis-server /usr/local/etc/redis.conf redisクライアント起動 redis-cli Redisのデータベースを選択 # 1-15までがデフォルトで起動してる select 1 RedisでString型のインターフェースを操作してみる # 単一の値をセット, …

macにbrewでRedisを入れたらファイル書き込みエラーが出た

サーバー起動した後にクライアントから bgsave で動かしたら Background saving error って出たから 設定ファイル覗いてみたら vim /usr/local/etc/redis.conf dir /usr/local/var/db/redis/ こんな風に指定されてたので。 該当箇所を書き込み可能にしたらOK…

Hadoop HDFSコマンドメモ

hadoopコマンド使ってファイルをとりあえず触ってみるコマンド ファイルリスト表示 hadoop dfs -ls ファイルコピー hadoop dfs -get [元][先] hadoop dfs -cp [元][先] ファイル移動 hadoop dfs -mv [ファイル] その他同様にrm, mkdir, rmr(ディレクトリ削除…

Vagrantで"The guest additions on this VM do not match the install version of VirtualBox!"と出たら

こんな感じのメッセージが出た場合 [default] The guest additions on this VM do not match the install version of VirtualBox! This may cause things such as forwarded ports, shared folders, and more to not work properly. If any of those things …

vagrantのイメージ(OS)の管理

vagrant box add box名 vagrant用OSイメージのURL で追加出来る。 box名はgitのリモート名みたいなもんで、 複数持つ事が出来る。 vagrant的にはboxという単位でOSを管理してる。 恐らくVagrantファイルでこの名前を使って起動するOSを決めてるっぽい。 (本…

vagrantでOSのロールバックを可能にする

vagrantにsaharaというプラグインを入れるとOSの状態をロールバック出来るらしい。 なにこれ。凄そう。 # saharaをインストール vagrant gem install sahara # sandboxモードを有効にする vagrant sandbox on # sandbox onした所まで戻す vagrant sandbox ro…

vagrantでサーバーの起動,停止, 破棄

vagrantの設定ファイルを置いてあるディレクトリで 自分の場合 ~/vagrant/Vagrantfile のディレクトリで 起動 vagrant up 停止 vagrant halt 破棄 vagrant destroy もうちょっと使ってみたら設定からまとめてみる。

Rubyのsortで解らない所が

# -*- coding: utf-8 -*- # sort式で使われるこの条件は左右のオブジェクトを比較して # その関係が<がマイナス, =は0, >の場合はプラス hoge = [3, 4, 9, 6, 1] p hoge p hoge.sort { |a, b| a.to_i <=> b.to_i } p hoge.sort { |a, b| b.to_i <=> a.to_i }…

Rubyのハッシュでデフォルト値をセットしておく方法が色々あって辛い

ハッシュのデフォルト値をセット出来る方法が3種類あって。 便利だとは思うが中々辛い。 こんな感じ。 # encoding: utf-8 # Rubyはハッシュにデフォルトバリューをセットしておける, 不宣言のキーを読んだ時に出る値 # オブジェクトにデフォルト値をセットし…

Rubyのハッシュからキーと値を取り出すパターン

ハッシュ 配列として イテレータとして キーを取り出す keys each_key | キー| 値を取り出す values each_value| 値| [キー, 値]のペアを取り出す to_a each{| キー, 値|} each{| 配列|} 実際のコードでは eachでループする事が多そう。

Rubyのcollectでブロックの練習

# -*- coding: utf-8 -*- a = [1, 2, 3, 4, 5] b = a.collect! {|item| # ブロックの評価式をレシーバの値に返す item * 2 } p b この手のブロック評価を返す仕組みがどうも取っ付きにくい。 collectメソットはブロックで行った処理を1つの配列にまとめて返…

Rubyのコーディング規約,破壊的,非破壊的メソット

完全にメモ 破壊的なメソッドと非破壊的なメソッドの両方を提供する場合、破壊的なメソッドには`!'を付ける。

Ruby1.9で文字コードを指定する(日本語扱う)

# -*- coding: utf-8 -*- 後はコードを書くだけ。

Rubyで数え上げる

ループのさせかた色々あるみたいで。 # iをインクリメントしながら10を超えるまで繰り返す ary = [] 10.times do |i| ary << i end p ary # iをレシーバーの値からインクリメントしながら10になるまで繰り返す # iがuptoの引数を超えるまで繰り返す ary = []…

RubyのArrayクラスのpushと同じメソット

ary = [] ary << "hoge" こう書ける。 書き方が多いのは慣れれば良いんでしょうが。。。

Rubyのcatchとthrow

def est_throw # catchで指定したものと同じシンボルが指定されてるから呼び出し元のブロック終了 throw :test end puts "test start # ブロックの同じシンボルを引数にしてthrowを呼ぶとブロックを終了 catch(:test) do puts "before test_throw()" # メソ…

Rubyのクラス継承の書き方

MyError = Class.new(StandardError) こんな風に書いておくと class MyError < StandardError end と同じ意味になる。 何も変えない時に使えるみたいだけど。 何も変えないのにどう使うんだろ。。。 読み方として書いておく。

fuelphpでテンプレートファイルを分割する

テンプレートファイルも分割してincludeするような仕組みにするのは当然でしょうから。 テンプレートファイルも分割する。 基本的にはここに書いてある。 http://fuelphp.jp/docs/1.5/general/views.html 遅延レンダリングの所があんまよく解ってないが。。…

Rubyの標準出力(print,puts)とカンマ,の関係

ただの文法の話 print "Hello", "Ruby\n" こんな風に書いて ruby hello.rb とすれば HelloRuby と出力される。 putsでやれば多少便利かも。 puts "Hello", "Ruby\n" Hello Ruby こうなる。 便利なんだかどうなんだかよく解らない。

sqaleでfuelphpの.htaccessを開発環境と本番とで分ける

http://go-surftrip.hatenablog.jp/entry/2013/05/08/235026 これの続き↑ これでデプロイ完了した時にシンボリックリンクを貼ってくれる はずなのにshellが動かない。。。何故だ。。。追加で問い合わせ中。 相変わらず早い。 翌日に帰ってきた。 完全に勘違…

sqaleでfuelphpを実行する際に環境変数を設定する

http://go-surftrip.hatenablog.jp/entry/2013/05/06/200250 これの続き↑ どうも.htaccessを使って環境変数を変える事が出来ない仕様らしい。 仕様 https://sqale.jp/support/manual/php#htaccess ※ Sqale では環境変数は .htaccess で指定することができま…

Rubyのモジュールについて

クラスとの棲み分けがまだわかってないが。 module HelloModule Version = "1.0" # 定数定義 def hello(name) # メソット定義 print "Hello,",name, "\n" end module_function :hello # helloをモジュール関数として公開する end p HelloModule::Version Hel…

rubyのインスタンスメソットをまとめてアクセス制限する

1つ1つであれば class Hoge def pub puts "this is public" end public :pub # pubメソットをpublicに設定 def priv puts "this is private" end private :priv # privメソットをprivateにする end まとめて指定したい場合 class Hoge public # 引数を指定…

fuelphpの環境毎設定

fuelphpの環境毎に設定変えるには(dbの接続情報) 開発環境 fuel/app/config/development/db.php 本番環境 fuel/app/config/production/db.php にそれぞれ設定しておいて(名前のつきかたはイディオム) それぞれのサーバー内にあるこのファイルを設定する。…

fuelphpでBootswatchを適用してみる

TwitterBootstrapを使ってて、 もうちょっとオシャレにしたい時はこれを使えば良い。 (超今更ですが) http://bootswatch.com WordPressのテーマみたいなもんで。 単純にこのファイルで上書きすればサンプルにあるような表示に変えてくれる。超便利。 fuelp…

rubyのクラスメソット

クラスに関連する操作をするためにクラスメソットを定義する。 んで。このクラスメソットの定義方法は def クラス名.メソット end になる class HelloWorld def HelloWorld.hello() print 'hello' end end こんな感じ。 クラス定義の中のselfはその暮らすオ…

Titaniumの日本語サポートページと入力補完コマンド

上記は殆ど関連性が無いから覚え書きレベル Titaniumの日本語ドキュメント(非公式) http://code.google.com/p/titanium-mobile-doc-ja/ コード記入中に入力補完したくなったら ^ Space で補完してくれる。 最近やっとtitaniumを触り始めた。 率直な感想と…

vimでヤンクした文字をコマンドモードに貼付ける

全然珍しく無いんだけどproject.vimと組み合わせると凄く便利だった。 ヤンクした文字でgrepしたい時とかに使ってる。 ヤンクした後に " ctrl + rして"を入力 <C-R>" project.vimのトグル内で ¥g(¥G)でgrepしてくれるので 探したいメソットとかをヤンクしてトグル</c-r>…

screenでペアプロっぽい環境を作ってみる

まあ今更な内容だけど覚え書きとしても。 screenがインストール済みという前提で。 $HOME/.screenrcに下記を追記 multiuser on acladd rio rioは自分にアタッチしてくるユーザー名 で自分(hoge)が screen 立ち上げて screen -r ユーザー名/ソケット名 でア…

fuelphpのDB接続情報を記載する箇所

この場所に fuel/app/config/development/db.php こんな感じで書いとく array( 'type' => 'mysql', 'connection' => array( 'hostname' => 'host_name', 'database' => 'db_name', 'username' => 'user_name', 'password' => 'pass_word', ), ), );

fuelphpのモデル命名規則とか使い方とか

DB操作を行うモデルを作成する

fuelphpのバッチファイルの場所

クローラを作った時にoilから呼べるバッチファイルを配置する場所 crawl.phpを配置するなら fuel/app/tasks/crawl.php こんな感じで配置する。 実行する時は oil refine crawl これでデフォルト呼び出しのrunメソットが実行される。 サンプルコードに有る fu…

fuelphpの外部モジュールを置いておくディレクトリ

外部モジュールの置いとく場所 fuelアプリケーションディレクトリのこのディレクトリに置いておく simple_html_dom.phpを使ったクローラを作りたかったので。 こう配置しておく。 fuel/app/vendor/simple_html_dom.php そうすると

project.vimをカスタマイズしてみる

vim

project.vimは$HOME/.vimprojectsを参照しにいくので カレントディレクトリの.vimprojectsを読むように変更する $HOME/.vim/after/plugin/project.vimというファイルを用意して こういうスクリプトを書いておく " カレントディレクトリが$HOMEじゃ無かったら…

【Ruby】コンストラクタにブロックを渡す意味が分からん

mailモジュールを使ってメールを送るようにしたいんだが。 サンプル読んでるとこうなってる。 @mail = Mail.new do to to from from subject subject body body end ブロックを渡すのか。。。 このbodyが@bodyみたいにインスタンス変数の場合ってどうすれば…

ttyrecを使ってみる

ターミナル上で作業した物を記録してターミナル上から再生出来る。 2002年とか超前の事なんだけど超楽しい。 http://0xcc.net/unimag/4/ macなら brew install ttyrec でいける。 録画 ttyrec foo.tty 再生 ttyplay foo.tty 使い道考えてみる。

vimで画面を再描画するコマンド

vim

<C-R> 若しくはコマンドの場合 :redr</c-r>

git configを最低限設定する

git

gitの設定ファイルは全て.ini形式の簡単なテキストファイルになっていて、 gitの設定ファイルは階層的になっている。 編集はgit configコマンドを使って行う。 例えばgit diff等を実行した時にカラーハイライトしてくるようにするのも この設定。 gitコマン…

gitのhookスクリプトをテンプレート化する

git

gitのリポジトリ(自分の場合主にbare) を色々増やしていくとhookスクリプトを一々cpしたりするのが非常に面倒になる。 (hookでドキュメントルート側に展開したりするような処理) と思って調べてたら http://labs.gree.jp/blog/2011/03/2885/ ここに配置さ…

vimの学習

.vimrcの設定について " :letは変数代入コマンド " 接頭語g:でグローバル変数, 接頭子を省略した場合 " 一部の組み込み変数に存在した場合はv:(組み込み変数) " 関数内であった場合はl:(関数ローカル) " 上記以外ならg: " example :let g:proj_flags = "ims…

project.vimを使ってみた

vim

.vimrcを設定してみた ドキュメントによるとプロジェクト挙動ようの変数があってコレを上書きするっぽい g:proj_flags Default: "imst" " Default: "imst" なのでファイルが開かれたらトグルがクローズするようにしたければデフォルトにcのオプションを付与…

autocomplpop.vimで補完候補があっても改行する

vim

補完候補があってもとちゅうでそのまま改行したい場合、 多少の修正をしておかないと動作が非常に辛い時が有る。 http://blog.blueblack.net/item_164 上記を参考に if pumvisible() first match return "\<C-p>\<Down>" 上記を ↓こうする if pumvisible() first match </down></c-p>…

capistranoのrollbackタスクのメモ

ロールバックして最新のディレクトリを削除する $ cap deploy:rollback 実行されるタスク revision→シンボリックリンクを1つ前に付け替え restart→再起動(恐らくunicorn) cleanup→リリースディレクトリ削除作業 1つ前のリリースに戻し、最新のリリースソ…

fuelPHPのcss,js,imgといったテンプレート読み込みファイルの配置

php

fuelと同じ階層の public/assets/css public/assets/js public/assets/img に配置して こんな感じで読み込む(TwitterBootstrap)

Gehirn RS2でmysqlに接続した

話題の月額315円のPaaS(であってるのかな?) でnode.jsとか使って遊んでたんだけどmysqlの接続がどうも解らなかったのでメモ。 インスタンスの生成はGehirnのコントロールパネルのメニューに データベースというのあるからそこからDB名とPW入れるだけで作っ…