Skip to main content

ログ取得ツール

MacOSのbashとshとPOSIXLY_CORRECT

Linuxでは/bin/shも/bin/bashも同じで/bin/shは/bin/bashへのシンボリックリンクですが、MacOSの場合、/bin/shと/bin/bashは微妙に異なっています。


# uname -a
Darwin mbp.local 13.1.0 Darwin Kernel Version 13.1.0: Wed Apr  2 23:52:02 PDT 2014; root:xnu-2422.92.1~2/RELEASE_X86_64 x86_64
# ls -l /bin/bash /bin/sh
-r-xr-xr-x  1 root  wheel  1228240 10 31  2013 /bin/bash
-r-xr-xr-x  1 root  wheel  1228304 10 31  2013 /bin/sh
# gsha1sum /bin/bash /bin/sh
5151b7973af09c094516a602efae96dd702a8424  /bin/bash
2ff0132fe784dcd3aeb1c258b064eb2592776652  /bin/sh

実体はどちらもbash-3.2です。意外と古いですね。


# sh
sh-3.2$ echo $BASH_VERSION 
3.2.51(1)-release
sh-3.2$ exit
# bash
bash-3.2$ echo $BASH_VERSION 
3.2.51(1)-release
bash-3.2$ exit

しかし、bashとshでは、初期設定が少し異なっています。大きく異なるのはPOSIXLY_CORRECTの値。shはPOSIXLY_CORRECT=yですが、bashは未設定です。この値が設定されているMacOSの/bin/shは、私が多用するecho -nが"-n\n"が出力されたりして、甚だ不便です。Linuxの場合はPOSIXLY_CORRECT=yでもecho -nは正しく改行なし-n抜きで出力してくれます。つまり、シェルスクリプトを実行するときに、Linuxであればsh hogehoge.shで良かったのが、MacOSではbash hogehoge.shとする必要があるわけです。これは忌々しい。/bin/echo -nなら問題ないが、echoごときにいちいち/binなんてつけてらんないし。

巨蕪、墜つ

俺達のピーカブーがついに引退。お疲れ様でした。 10年間、まるで馬車馬のように働いたカネで悠々自適の引退生活か? 南の島でビーチに入り浸りか? そうなのかピーカブー!? それがおまえのホワイトカラーエグゼンプションなのか? 色白なだけに?? もともとローソンのロッピーで株取引ができるという、トチ狂ったとしか思えないサービスのアイコンイラストから生まれた、蕪に顔が描かれてそこから直接手足が生えてしまった、ちょっと何を言っているのか分からない恐るべきキャラ。いわゆるこんにち流行りの「カブ型モンスター」というジャンルを単独で切り開いた先駆者なわけだ。 当時私は株取引をしていましたので少し検討しましたが、さすがにコンビニの端末で取引はしないよなぁ、と思って申し込みませんでした。 私にとっても、ピーカブーはアンパンマンの次に描けるようになった顔。まあアンパンマンのボディはまだ描けないので、全身を描けるキャラとしては唯一無二? あーピチューは微妙に全身かけるかも(ちょっと怪しい)。あと、うーたんもかけるかもしれない。 この後、万が一にも川崎が負け続けたら、カブの呪いとして後世に語り継がれますね。それだけは避けてほしいよね。

Railsその前に

Ruby on Railsはじめます。世の中の説明やチュートリアルはいろいろ間違っていて、Railsの前にRackを説明するべきなんですよね。rails newでたくさんファイルができてうれしいね、じゃないでしょ。意味の分からないファイルがたくさんできても嬉しくないんですよ。むしろ分からない領域が広がれば広がるほど悲しいでしょ。アクセスがどこから来て処理はどこに行くのか。それを知っとかないと不安が大きいままになってしまう。戦場の足場は大事なんです。 RackはPythonで言うWSGIみたいなもので、リクエストを処理するところだけ書くとうまいことWebサーバとつながってくれる、というもの。ググって調べると分かりやすい説明がありますのでどうぞ。そのRackの設定がconfig.ruで、Railsでも作られます。Rails自体がRackに対応したアプリとして実装されているので、WebサーバとつながっているRackのconfig.ruから辿って行くと処理が追いやすいと思います。

川崎3-1蔚山 (2位通過)

平日夜の雨の等々力。1万人弱の早帰りサラリーマンが集まりました。小杉駅からの直行バスはもうちょっと何とかしたほうがいいんじゃないですかね。あそこに2台並んでるんだから、2台同時に乗せてけば、もっとスループットが出そうな気がする。私が並んだとき、行列は階段どころかエレベーター越えてましたよ。ボトルネックは不手際がある乗客のところと、信号が変わるまで出て行かない先頭バスを待っているところのように思えた。バスの車自体はけっこう来るので。あの行列で諦めて杉40とかタクシー使う人も多いと思います。

ACLのグループリーグ最終節。H組はウェスタンシドニーが5-0で勝ったので、川崎は2位通過。最近のACLはベスト16でもホーム&アウェイやるんですね。まだ相手は決まってませんが、広島のいるグループFの1位のクラブとの対戦になります。グループFの最終戦は明日ですが、FCソウルが勝ち点8、他3チームが勝ち点6なので、全てのクラブに1位の可能性があります。最も川崎から距離が近い広島が1位通過しても、遠いですね。そこはACLですから。

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で返ってきてマシン側で設定できるのね。ちょっと何言ってるか分からないですけども。