Ruby on Railsはじめます。世の中の説明やチュートリアルはいろいろ間違っていて、Railsの前にRackを説明するべきなんですよね。rails newでたくさんファイルができてうれしいね、じゃないでしょ。意味の分からないファイルがたくさんできても嬉しくないんですよ。むしろ分からない領域が広がれば広がるほど悲しいでしょ。アクセスがどこから来て処理はどこに行くのか。それを知っとかないと不安が大きいままになってしまう。戦場の足場は大事なんです。 RackはPythonで言うWSGIみたいなもので、リクエストを処理するところだけ書くとうまいことWebサーバとつながってくれる、というもの。ググって調べると分かりやすい説明がありますのでどうぞ。そのRackの設定がconfig.ruで、Railsでも作られます。Rails自体がRackに対応したアプリとして実装されているので、WebサーバとつながっているRackのconfig.ruから辿って行くと処理が追いやすいと思います。
平日夜の雨の等々力。1万人弱の早帰りサラリーマンが集まりました。小杉駅からの直行バスはもうちょっと何とかしたほうがいいんじゃないですかね。あそこに2台並んでるんだから、2台同時に乗せてけば、もっとスループットが出そうな気がする。私が並んだとき、行列は階段どころかエレベーター越えてましたよ。ボトルネックは不手際がある乗客のところと、信号が変わるまで出て行かない先頭バスを待っているところのように思えた。バスの車自体はけっこう来るので。あの行列で諦めて杉40とかタクシー使う人も多いと思います。
ACLのグループリーグ最終節。H組はウェスタンシドニーが5-0で勝ったので、川崎は2位通過。最近のACLはベスト16でもホーム&アウェイやるんですね。まだ相手は決まってませんが、広島のいるグループFの1位のクラブとの対戦になります。グループFの最終戦は明日ですが、FCソウルが勝ち点8、他3チームが勝ち点6なので、全てのクラブに1位の可能性があります。最も川崎から距離が近い広島が1位通過しても、遠いですね。そこはACLですから。
- 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
- 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
今日も寒かったけど、1万人の早帰り社会人が等々力に集結。ゴールも全部こっち側で、気持ちは良かったと思います。外した惜しいシュートも鳥肌未遂でしたが、大島のゴールの興奮は凄かった。
グループHはここまで1位の蔚山現代が2勝1分の勝ち点7、2位のウェスタンシドニーが2勝1敗の勝ち点6。3位の川崎が1勝2敗で勝ち点3。残り3試合で2位との直接対決という状況。ここは勝たないときつい。ウェスタンシドニーとしては引き分けでもOK。そこに先制点を与えてしまうんだからね。ウェスタンシドニーは意外と上手い。テクニックもあるし、足も伸びてくる。
川崎のスタメンには小林悠が外れて森島、井川が外れて中澤聡太。コバユウは怪我でしょうね。嫌な予感しかしなかった。中澤と井川だとさして力は変わらないような気もするが、井川も近年やるときゃやる。
これで勝ち点で2位に並び、グループステージ突破の可能性を残した。あのまま負けてたら終戦に近かったから、大島のゴールがどれほど大きなものかが分かる。
ACLへの配慮による過激な金曜夜開催。涼しい顔で会社を抜け出した1万2千人が等々力に集まりました。時間も時間だし、意外と冷えたかな。
試合のほうはかなり技術に差があったと思いますが、終わってみれば1-0でした。この内容なら、もうちょっと点を取ってもよかったと思います。1000ゴールの投票は私はいろいろなビッグデータ分析と爆発的計算により導き出された答え「田中裕介」に投票して当てる気マンマンでいましたが、バーに嫌われて外したよコンチクショー。(あっち側のゴールだったから田中裕介本人のシュートだったかどうかすら定かでないのだが)
フロンパークに岡山一成が来てましたね。先を急ぎつつも「あ、ホンモノだ…」って感じでした。平日だから来れたのか…と思いきや、奈良クラブが参加するKSLのシーズンは4月から始まるんで、まだ開幕前なんすね。本を出したそうです。
来週も平日開催か…まあ、来るつもりだけどね。
結局のところ、最近はchef使ってないですね。Vagrantの場合はshell providerで過ごしてます。Vagrantfileの中にサクッと書けるし、共通で使い続けるもの(yumのミラーサイトに社内のURLを設定したり、プロキシの設定とかtimezoneの設定とか)はgistにシェルスクリプトを書いといてそのURLを書いたり、たまには共有フォルダの中にスクリプトを置いたりもする。
chefを使うと設定項目が複数のファイルに分かれがちになるし、設定ファイルがVagrantfileがあるディレクトリと離れて、下の階層に追いやられてしまう。オーバースペックゆえに単純なことが把握できなくなるというデメリットをどうしても見過ごせなかったんだ。
今のところ実マシンの管理者をやってない単なる利用者なので、という事情もある。Vagrantで操作する実験用のテンポラリVMしか管理する必要がないのよね。これなら毎日帰るときにdestroyすりゃいいので気が楽。
MBPの何がすごいって、購入して2週間近く経過しますが、まだ子どもたちに買ったことがバレていません! これはスゴイすぎる!!
より具体的に表現するなら、本棚で本に紛れて隠しておける。木を隠すなら森の中。実際は書類に紛れさせてますが、つまりこれってうまくやれば妻にもバレずに済んでいた可能性すらある! 素晴らしいぞMBP。
トッキュウジャーのCDをこっそり買ってWindowsマシンのiTunesに入れておきました。TVで聴いてた印象以上に名曲でしたが、あいつらこれには気づくかな?
ところで私は「一度に一つの奇跡」というフレーズが気に入っていて、自分ではAppleの広告に由来する言葉だと思ってたんですけど、ぐぐっても全くヒットしませんね。もしかして私が発明した言い回しなのかもしれない! だいぶ以前から、何となく気に入っていた表現。
まあ、あれだ、実際あまりどこかにバレるとよろしくないエントリだったりしますが、気にしないでいくか。
みおふぉんが到着したので、早速SIMを差し替えてb-mobileを解約した。年間契約とかじゃないので何の縛りもない。
b-mobileの解約の手軽さは異様なほどで、ログインしてボタンを1つ押すと、確認のOKダイアログが出て、そこでOKを押すと解約申し込み完了。解約理由のアンケートを何枚もやらせたりしてこない。メールのURLを踏ませて確認したりしない。しかも解約のキャンセルは不可。この手軽さは世の中の企業にも見習ってほしいですな。とても感心しました。
今後は回線の契約もくらうど型というか、API型になっていく気がします。回線契約のREST APIがあって、CLIツールで1行書くと何回線も一気に引けたり切れたりするっていうね。設定情報もJSONで返ってきてマシン側で設定できるのね。ちょっと何言ってるか分からないですけども。
稀に見るシーソーゲームは怒涛の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例外が発生する。違うんだこれが。