Skip to main content

ログ取得ツール

Fedora20のvagrant box

  • create new VM “F20”
    • VMDK, virtio_net, Host I/O cache
  • minimum install
    • BTRFS
    • root pass = vagrant
  • yum install kernel-devel gcc tar bzip2 perl ruby ruby-devel rubygems
  • yum clean all
  • install guest additions
    • Devices - Insert Guest Additions CD image…
    • mount /dev/cdrom /mnt
    • cd /mnt
    • ./VBoxLinuxAdditions.run
  • umount, eject
  • gem install chef –no-rdoc –no-ri
  • systemctl disable firewalld.service
  • vi /etc/selinux/config
    • disabled
  • useradd -G wheel vagrant
  • passwd vagrant (-> vagrant)
  • visudo
    • %wheel ALL=(ALL) NOPASSWD: ALL
    • ## Defaults requiretty

    • Defaults env_keep += “SSH_AUTH_SOCK PATH”
    • ## Defaults securepath

  • su - vagrant
  • echo ’export PATH=$PATH:/usr/sbin:/sbin’ » .bashrc
  • mkdir .ssh
  • chmod 755 .ssh
  • curl -O https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub
  • mv vagrant.pub > .ssh/authorized_keys
  • chmod 644 .ssh/authorized_keys
  • sudo poweroff
  • vagrant package –base F20 –output F20.box
  • vagrant box add –name fedora20 F20.box

川崎2-1ウェスタンシドニー (まだまだ続くよ)

今日も寒かったけど、1万人の早帰り社会人が等々力に集結。ゴールも全部こっち側で、気持ちは良かったと思います。外した惜しいシュートも鳥肌未遂でしたが、大島のゴールの興奮は凄かった。

グループHはここまで1位の蔚山現代が2勝1分の勝ち点7、2位のウェスタンシドニーが2勝1敗の勝ち点6。3位の川崎が1勝2敗で勝ち点3。残り3試合で2位との直接対決という状況。ここは勝たないときつい。ウェスタンシドニーとしては引き分けでもOK。そこに先制点を与えてしまうんだからね。ウェスタンシドニーは意外と上手い。テクニックもあるし、足も伸びてくる。

川崎のスタメンには小林悠が外れて森島、井川が外れて中澤聡太。コバユウは怪我でしょうね。嫌な予感しかしなかった。中澤と井川だとさして力は変わらないような気もするが、井川も近年やるときゃやる。

これで勝ち点で2位に並び、グループステージ突破の可能性を残した。あのまま負けてたら終戦に近かったから、大島のゴールがどれほど大きなものかが分かる。

川崎1-0名古屋 (余裕の1000ゴール)

ACLへの配慮による過激な金曜夜開催。涼しい顔で会社を抜け出した1万2千人が等々力に集まりました。時間も時間だし、意外と冷えたかな。

試合のほうはかなり技術に差があったと思いますが、終わってみれば1-0でした。この内容なら、もうちょっと点を取ってもよかったと思います。1000ゴールの投票は私はいろいろなビッグデータ分析と爆発的計算により導き出された答え「田中裕介」に投票して当てる気マンマンでいましたが、バーに嫌われて外したよコンチクショー。(あっち側のゴールだったから田中裕介本人のシュートだったかどうかすら定かでないのだが)

フロンパークに岡山一成が来てましたね。先を急ぎつつも「あ、ホンモノだ…」って感じでした。平日だから来れたのか…と思いきや、奈良クラブが参加するKSLのシーズンは4月から始まるんで、まだ開幕前なんすね。本を出したそうです。

来週も平日開催か…まあ、来るつもりだけどね。

chefなんて最初からいらんかったんや!

結局のところ、最近はchef使ってないですね。Vagrantの場合はshell providerで過ごしてます。Vagrantfileの中にサクッと書けるし、共通で使い続けるもの(yumのミラーサイトに社内のURLを設定したり、プロキシの設定とかtimezoneの設定とか)はgistにシェルスクリプトを書いといてそのURLを書いたり、たまには共有フォルダの中にスクリプトを置いたりもする。

chefを使うと設定項目が複数のファイルに分かれがちになるし、設定ファイルがVagrantfileがあるディレクトリと離れて、下の階層に追いやられてしまう。オーバースペックゆえに単純なことが把握できなくなるというデメリットをどうしても見過ごせなかったんだ。

今のところ実マシンの管理者をやってない単なる利用者なので、という事情もある。Vagrantで操作する実験用のテンポラリVMしか管理する必要がないのよね。これなら毎日帰るときにdestroyすりゃいいので気が楽。

MacBookPro、一度に一つの奇跡

MBPの何がすごいって、購入して2週間近く経過しますが、まだ子どもたちに買ったことがバレていません! これはスゴイすぎる!!

より具体的に表現するなら、本棚で本に紛れて隠しておける。木を隠すなら森の中。実際は書類に紛れさせてますが、つまりこれってうまくやれば妻にもバレずに済んでいた可能性すらある! 素晴らしいぞMBP。

トッキュウジャーのCDをこっそり買ってWindowsマシンのiTunesに入れておきました。TVで聴いてた印象以上に名曲でしたが、あいつらこれには気づくかな?

ところで私は「一度に一つの奇跡」というフレーズが気に入っていて、自分ではAppleの広告に由来する言葉だと思ってたんですけど、ぐぐっても全くヒットしませんね。もしかして私が発明した言い回しなのかもしれない! だいぶ以前から、何となく気に入っていた表現。

みおふぉん到来

まあ、あれだ、実際あまりどこかにバレるとよろしくないエントリだったりしますが、気にしないでいくか。

みおふぉんが到着したので、早速SIMを差し替えてb-mobileを解約した。年間契約とかじゃないので何の縛りもない。

b-mobileの解約の手軽さは異様なほどで、ログインしてボタンを1つ押すと、確認のOKダイアログが出て、そこでOKを押すと解約申し込み完了。解約理由のアンケートを何枚もやらせたりしてこない。メールのURLを踏ませて確認したりしない。しかも解約のキャンセルは不可。この手軽さは世の中の企業にも見習ってほしいですな。とても感心しました。

今後は回線の契約もくらうど型というか、API型になっていく気がします。回線契約のREST APIがあって、CLIツールで1行書くと何回線も一気に引けたり切れたりするっていうね。設定情報もJSONで返ってきてマシン側で設定できるのね。ちょっと何言ってるか分からないですけども。

川崎3-4大宮 (逆等々力劇場)

稀に見るシーソーゲームは怒涛の4試合連続ロスタイム被ゴールで劇的逆転負け、で幕を閉じた。これは痛い。痛すぎる。菊地に2ゴール。 伊藤宏樹が引退してなかったら勝ってた試合? 菊地を放出してなかったら?? そんなこと言ってどうなるわけでもないのだが、山本真希では逃げ切るための交代にはならんのでしょう。 神戸戦の感想で2005年がどうとか、書かなきゃ良かった。だってこんなことになるとは思わないもん。

テスト

練習。小括弧()を使わなくてもある程度までプログラムを書けるんだなぁ。Lispと対比して何かひとこと言う必要ある? [pyg language=“ruby”] #! /usr/bin/ruby tbl=[] STDIN.readlines.each do |l| tbl.push l.strip.split end lens=[] tbl.each do |row| row.each_with_index do |col, i| begin if col.length > lens[i] then lens[i]=col.length end rescue NoMethodError, ArgumentError lens.push col.length end end end tbl.each do |row| l=[] row.each_with_index do |col, i| l.push col.rjust lens[i] end puts l.join " " end [/pyg] ある種すごいと思ったのは、配列要素の初期値がnilなので存在しないインデックスを指定するとnilが返ってくるところ。Python時代は例外が発生するからね。ただし、awkなら0と"“の両方として使えるのでいきなり++とかしても数えたりつなげたり処理できるが、Rubyはそうはいかず、nilとintの演算で例外が発生する。結局if文を入れるか例外を拾うかのどちらか… そして、nil > 10 はNoMethodError、10 > nilはArgumentError例外が発生する。違うんだこれが。

initctl

upstartってUbuntuで使われているものなので、良さそうだけど縁がないと思っていたが、CentOSとかでも普通に使えるんですね。最近気づきました。 initctlコマンドはそれなりに使いやすいし、設定ファイルも分かりやすい。sysvinitは私は慣れてるけど不格好だし、systemdはいまいち動作をつかめる気がしない。 これは良いことを知ったぞ。 Macはlaunchdというまた別のものなんですね…しかもcronの仕事もこいつにさせてるのか。

Homebrew Cask

Macのアプリ(.dmgや.zipの中に.appや.pkgが入っているもの)もやっぱりbrewでインストールするよね、という人が使っているのがCask。 Caskが用意されていないアプリも多いので、どう効率よくCask化するか、というのが問題になる。 私の場合は、自分のリポジトリがgithub.com/wtnb75/homebrew-testであって、ここをbrew tap wtnb75-testで持ってきている。 そうすると、/usr/local/Library/Taps/wtnb75-test以下にcloneされた状態になっているので、少々気持ち悪いところもあるが、ここのディレクトリをそのまま使っている。git remote set-url –push origin git@github.com:wtnb75/homebrew-test.git みたいなコマンドを実行しておくと後が楽になる。 例えばLego Digital Designerの場合、

ということがわかる。ダウンロードしてsha256を求めると、これがaeba6d0a2d0feb2bf6ce2c6be257a87caf6d51a4038e046d45568c8df7e3c6caであって、zipファイルの中にはLDD.pkgというファイルが入っている、と。ここまで分かればあとは書き下すのみ。 こうなる → https://github.com/wtnb75/homebrew-test/blob/master/Casks/ldd.rb あとはインストール(brew cask install ./ldd.rb)して動作を確認する。 確認できたら、これを/usr/local/Library/Taps/wtnb75-test/Cask以下にldd.rbとして置いて、git add,commit,pushする。何も考えずにやると2度ダウンロードすることになるが、キャッシュディレクトリの場所を知っていれば、それは実際は/Library/Caches/Homebrew/なのだが、ここに最初に(sha256やパッケージファイル名を知るために)ダウンロードしたzipファイルを、パッケージ名とバージョン、拡張子をまぜた「ldd-4.3.8.zip」として置けば、ダウンロードが一度で済む。 Macの場合はアンインストールもそれほどややこしくない(アプリはディレクトリの格好になっていて、アンインストールは単にディレクトリを削除するだけ)のだが、中央管理したがるのは習慣か。Linux使ってても、何かとspecファイル書いて野良rpmを作って管理したがる習性があるんですよね私。 しかしbrewはファイル名とクラス名が一致(ファイル名はlowercase, クラス名はCapitalize)してないとダメなのかな? それはあまりよろしくないんじゃなかろうか。こういう制約は毎日邪魔だと思う以上の意味がないよね。Javaじゃないんだから。