rubyのオープンクラス
rubyのオープンクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
一度定義済みのクラスHogeに再度Hogeを定義している。
Hogeが定義されていると、二回目の呼び出しでは一回目の呼び出しのHogeが呼ばれ
そこにメソッドbbbが追加される。
当然String等の既存クラスにも対応。
1 2 3 4 5 6 7 8 9 |
|
rubyのオープンクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
一度定義済みのクラスHogeに再度Hogeを定義している。
Hogeが定義されていると、二回目の呼び出しでは一回目の呼び出しのHogeが呼ばれ
そこにメソッドbbbが追加される。
当然String等の既存クラスにも対応。
1 2 3 4 5 6 7 8 9 |
|
rubyで構造体を使いたい時
OpenStructが使える。
属性は動的に作ってくれる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
すばらしい
動画埋め込みやりたくて、はじめてyoutubeに動画あげてみた。
画像荒いなー。
千葉県一宮。
12月某日。
多分わからないと思うけど、5秒目ぐらいから中央の一番奥で真横にのってそのまま消えていくのが自分です。
真横に真横にって呪文のように唱えていて、頭にそのことしかなかったけど。
波が割れる前のうねりで真横に乗っちゃいけないということをこの時知りました。
コシぐらいで綺麗に割れる初心者向けの良い波でした。
風です。tail -f風。
前にwatchコマンドについて書いた。
watchコマンド ~ログとかファイル監視する時とかは何も考えずにtail -f ファイル名としちゃう人へ
の追記的なもの。
開発中ってマスタ系のテーブルは空にしないけど、トランザクション系のテーブルはテスト前に空にすることが多い。
んでデータ登録する作業する度に、なんていうのか知らんけど。SQLブラウザ?(common
sqlとか SI Object Browserとか)っていうんでしょうか
で、select文書いておいて一々executeボタンを押す。
このexecuteが対した手間じゃないけど、毎回押すとめんどいし、意外に時間もかかる。
そこでこの間紹介したwatchで2秒起きにselectしちゃえばいいよねってお話。
しかも変更部分ハイライトすれば、追加したレコードも一目瞭然。
1
|
|
で、どうでしょうか。
難点は差分ハイライト表示している時に、desc指定すると差分拾えないこと。
だいたい自分は10秒起きに、毎回差分拾ってます。
1
|
|
ちなみに今モデル監視してログ作成する処理書いているんだけど。
登録作業していないのに、意図しないタイミングでレコードが増えていることがあって、そういう場合にも一定間隔でselect投げるようになるので
ウィンドウ並べて操作していれば、すぐに察知できる。
ちなみにrailsでモデルのログ機能作るのであれば
acts as audited
つかうといいよ。
rubyだけじゃないんだけど。
変数の値を繰り替えしif文の条件にする場合
1 2 3 |
|
だったらこう書いた方がいいよね。
1 2 3 |
|
他に良い案ありますか?
ログとかファイル監視する時とかは何も考えずに
tail -f debugger.txt
とかってしちゃう人いると思うんですが。
表示する内容が少ない場合なら、watchってのがある。
watch cat debugger.txt
でデフォルトの2秒起きにcat debugger.txtが実行されます(表示は画面に収まるまで)
秒数変えたければ(下記例は60秒)
watch -n 60 cat debugger.txt
コマンドに-dをつければ変更箇所を毎回ハイライトしてくれる。
watch -d cat debugger.txt
cumulativeを指定すれば、watchし始めてからの変更をハイライトしてくれる。
watch -d=cumulative cat test.txt
もちろんコマンドも可能
watch -d ls -la
ロックファイルとか、ファイルが作成されたことの確認したい時とかに便利かもしれません。
開発中にログファイルに特定の文言が出たか知りたい場合とかにも便利。
例えば「error」と「fatal」がログに出た場合に、watch使えばすぐ気づける。
watch grep -n -e error -e fatal app.log
ってやると行番号付きでerrorかfatalが発生したことがわかる。
コマンドの繋ぎ方は
パイプ(|)とかファイルに書き込むリダイレクション( > もしくは > > もしくは <)が有名ですが。
ps aux | grep postfix
他にもあるんですね。
下の例のコマンド自体は意味のないコマンドですが。
1 cd /var/www/app/log/ ; scp app.log 192.168.X.XX:/home/user
2 cd /var/www/app/log/ && scp app.log 192.168.X.XX:/home/user
3 cd /var/www/app/log/ || scp app.log 192.168.X.XX:/home/user
1がコマンドを実行した後に次のコマンドを実行する方法。
2が移動に成功した場合のみ次のコマンドを実行する方法。
3が移動に失敗した場合のみ次のコマンドを実行する方法。
cronで指定するコマンドや、postfixのエイリアスで標準入力にメールの内容渡してプログラムを起動する際に使ったり。
例えばrailsのスクリプトランナー使いたい場合に。
cd rails appのルートディレクトリ ; rails runner "Calender.generated" RAILS_ENV=production
ルートに移動してからスクリプトランナー起動。
とか。
珍しく休日にPCを起動した。
何年ぶりだろう。
自宅PCはWindows7とUbuntuのデュアルブートにしているのだけど、Ubuntuを11.04から11.10にしたら無線が遅い。
ネットには接続されるし、IPもふられてるんだけど通信速度が異常に出ない。
なんじゃこりゃ。
このフォーラムWireless Internet Connection so slow after upgrade to 11.10のとおりにコマンド打ったら、解決した。
sudo rmmod iwlagn
sudo modprobe iwlagn 11n_disable=1
注意)以下の作業はやる前に、バックアップを取ってからやってください。
Ubuntu(OS関係あるのか不明)で、Android(IS04)のSDカードをマウントして、ファイル削除したけどSDカードの容量が増えない。゚ヽ(゚´Д`)ノ゚
よく見ると
.Trash-1000
とかってゴミ箱的なフォルダがあって、そこに削除したファイルが移動してた。
んでそこのフォルダ内のファイル全部選択して削除したけど、ファイルが一向に消えないヽ( ̄д ̄;)ノ
ここ見て、ubuntuのゴミ箱を全て空にしたら消えた(´・ω・`)
http://www.google.com/support/forum/p/android/thread?tid=60747a992c0a473b&hl=en
そして再び携帯に戻ったら、破損したSDカードとか出るようになってフォーマットしますかの一択となった。
色々やってたから、なんかまずいの消したのか?
それともまさか上の操作がNGなんだろうか?
めんどいので調査しないけど。
っていう投げっぱなしのどうしようもない記事。
初期値を指定して配列を作りたいならこうできる。
1 2 |
|
んで、指定した値で要素数Nの配列を要素数Mにしたい場合。
1
|
|
で出来る。
例)とりあえずMを5とする場合。
1 2 3 4 5 6 7 8 |
|
ちなみにfillは!ついてないけど破壊的メソッドなので、レシーバの値変わってしまうのがちょっと注意。
1 2 3 |
|