【クイズ】現実逃避のためのSTDOUT, STDERR 〜その1〜

卒論前ですね こんなときは、卒論とは全く関係ない勉強が本当に楽しく感じてしまいます。 クイズ〜その1〜 [bash] perl -e ‘print "1\n" ; warn "2\n";' [/bash] さて、実行結果はどうなるでしょうか? 実行するとすぐ答えわかっちゃうので、ちょっと考えてみて下さい。 と、いってもこれくらいは簡単に答え分かっちゃうので、実行するまでもないですね。 クイズ〜その2〜 [bash] perl -e ‘print "1\n" ; warn "2\n";’ >a.txt [/bash] さて、a.txtの中身はどうなっているでしょうか? 答えが分かったら、実行して答えを確かめてみてください。 少し、タイトルの件で考えることがあったので、こんなクイズみたいなブログでした。 答えあわせと解説(といっても、僕の考えですが)は次回にしたいと思います。 と、いうわけでそろそろちゃんと論文に手を回さないと…。

名前を覚える

お食事会のときのこと。 そもそも 本題はこの下なので飛ばしても問題ないかも。 前までは名前を覚えるってのは割と苦手な部類でした。 今はできるのか、と聞かれたら、まだ難しいですが以前よりはだいぶマシになったかなと。 意識し始めたのがでかいような気がします。 「名前を覚える」ってのはほとんどの人が意識していることだとは思うので、 「名前を覚える意識」というのも少し変な感じがしますが。 多分ほんのわずかな差なのかとは思いますけど、それがでかかったのかな? 自分でもよく分かってません。 この意識が変わるきっかけとなったのは教育実習です。 頑張って生徒の名前を覚えようと常に意識してましたが、 簡単にパッと覚えられるほど記憶力が良いわけではないので…。 それでも、時間が空いたときには常に顔写真つきの生徒表を見てました。 結局、2学年400人超に頭はパンク寸前状態とか。 とにかく自分の担当学級は、、、といったところ。 「アカウント名つけてくれ」と何度思ったことか。 それでも色紙には「頑張って名前を覚えてくれて嬉しかった」と書かれていて、 嬉しいのと覚えきれなかった申し訳なさが…。 まさかの担当していないクラスや学年の子たちからも色紙があったのには かなり驚きましたね。余計に実力不足を感じます。 (岡崎先生の名前記憶のスゴさを改めて実感したのは教育実習です。) 「生徒は気軽に僕の名前を呼べるのに、僕の方はそうではない。」 というのは結構面白くないです。 どうやって覚えるか それから、かなり時間が飛ぶんですが、 インターネット上の違法・有害情報対策セミナー 過去〜未来 の前日に行われたセミナー頑張りましょう会でのこと。 参加者の半数以上は初対面で社会人の方でした。 まあ、今回は10人も居なかったので割と覚えられました。 今回、どうやって覚えようとしたのか、という話を適当に。ようやく本題。 事前にどんな人がいるのかチェック 上のリンクを直前にバッと目を通しました。 弁護士とか来るのか、って少し意外だったのでその衝撃でまずは頭に刷り込み とにかく呼んでみる 会場では下っ端なので飲み物回したりとかするわけです。 そこで、 「これ回して下さい」 っていうのと 「これ○○さんにです。」 って言うのは全然違います。 呼んでいるので名前を覚えやすいということが一つ。 また、「この人は名前を覚えてる」と周りが知れるということが一つ。 (副作用的に、周りの人もこれで名前を覚えやすくなるんじゃないかな、とかも思いますが) 周りには賢く見られます。(多分) 分からなかったらすぐ聞く 「この飲み物、向こうに座ってる、何さんでしたっけ?」 という具合にもうちゃちゃっと聞いちゃった方が早いです。 周りの話に適当に聞き耳をたてる これは名前とは直接は関係しないんですが、多分賢く見られます。(多分)(多分)(多分) いわれてみれば当然っていうようなことくらいしかしてないですけど。 反応とか 頭の中で反芻してもどうせ覚えきれないので、それなら声に出してしまおうってのが今回の実験。 割と上手くいったみたいで、周りからは割と反応ありました。 「名前すぐ覚えてましたね」「記憶力いいんですか?」 みたいな感じ。話もでき、悪くは思われないので良いこと尽くめ? 後はどう話を広げるか、っていう感じなんですけど、 最初に話した「名前を覚えようと思ったきっかけ」とか話してました。 そこから先のスキルは…まあ今後の課題で。 名前を覚えるようにするだけで、印象を与えることと話のきっかけができました! スピ○ドラーニングっぽい。 まあ、覚えないよりは良いのかな。 最近はとにかく試してみるっていうことができているので、良い傾向だな、と。 今回の一番の報酬は、 3日間もタダでご飯食べれてスゴく助かったことですね。

【備忘録】

個人的備忘録(兼 現実逃避) 失敗したこと 遅刻した Tuningathon は時間との勝負。しっかりとした時間に到着するようにしましょう。 また、遅刻しないことによるメリットは以下のもの。 ルールを聞ける 11:40からの解説・質疑応答を聞くことができます。 落ち着いた状態でバトルスタートを迎えられる 今回は結構慌てていました。 熱いピザを食べることができる 遅刻して着いたときには冷めていました(涙) ぱっと思いつくだけでもこれだけのメリットはあります。 一番大事なのは3番目の「熱いピザを食べれる」ってやつです。 xpizzaコマンドというものがあるくらいです。 これが一番大事なのは言うまでもないでしょう。 腹が減っては戦はできぬ…。 ピザを食べ、コーラを飲み、ターミナルと向き合う。これぞ欧米式ハッカー。(?) 問題の確認をしなかった 今回はMySQLというわけで、問題に当たるクエリを始めに確認しなかったことが失敗その2です。 /proc/meminfoと/proc/cpuinfo確認した後さっさとMySQLにメモリ振るという行為をしてしまいました。 先に問題を見ていたら、「order byしてるからここにメモリをちゃんと振ろう」という流れができて、タイムロスも少なかったはず…。 「スクリーンアウトを怠った」というレベルのミスだったと思います。 体調管理 バルマーピークってレベルじゃないです。気をつけましょう。 成功したこと 条件の確認をした /proc/meminfo と /proc/cpuinfo で条件を見ました。 結果、かなり潤沢なメモリだったのを確認でき、メモリ振る作業を楽にできました。 どんどん次の手段を考えた これは結構重要だったのかな、と。 細かく設定していって少しずつ早くなるより、ある程度早くなったらすぐ次の手段を考えました。 ある程度大雑把に設定して、次の設定に進んでいきました。 一つ一つの設定を深く細かくやって、少しずつ早くするのはラストにやって良かったな、と。 定期的な情報収集? 詰まったらすぐググったり、Twitter見たり。 Twitterで「こうしたら早くなった」って書いてる人多かったので、助かりました。 時間が無い時は、詰まったら情報収集する、というのがいいですね。 いろいろ試すのは、時間があるときに。 vimを使った vim使ったら早くなりました。 これまでやってて良かったこと デフォルトの設定に慣れていた 結構でかかったかな、と。いや、git管理して引っ張ってきたらそれで終わりっちゃ終わりなんですけどね。 ただ、今回はペアの人もいたのでデフォルトで。 それに、設定をgit管理とかしてないですし。 エディタやコマンドラインキーバインドをある程度使えるようになっていた やはり編集作業にエディタが使える、使えないってのは結構でかいです。(速度的に) vimtutor楽しいです。 キーバインドは、C-f, C-b, C-aとかC-eみたいな移動や、C-p, C-rみたいな履歴系、メタキー使ったM-fとかM-bとか。

何かに追われている時の現実逃避ほど楽しいことはない。

このページもその一環。 しばらくはRSSにお邪魔したいと思います。 何かにおわれているときにする環境構築は危ない。 「課題をしやすいような環境を作る」って楽しいです。 別にPC内の環境に限った話ではなく、「テスト前は部屋の掃除が捗る」みたいなもの。 さっさとやれって話ですが。 手を出して少し時間が経つと結構進むんですが、手を出すまでが長い。 これはほんとに危なくて、どうやら先輩には 「“課題をする時に流すBGM"を探すBGMを探し始めた」 とかいう話を耳にしたことがあるくらいです。 (追記)「」の中に誤字はありません。(/追記) その波にのって僕も、環境構築。(あとこのblog) texからpdfにするMakefileにscpを加えることでmakeするだけでwebで公開できるようにしてみました。 現実逃避の始まり scpするだけなんですけど、apacheいじってないせいでrootでしないといけない状態でした。 今もですが。 rootのsshは切っているので scp hoge.pdf root@hoge.jp なんてこともできません。 iptablesの設定をしているとはいえ、root loginを許すつもりにはなれず…。 logwatchとか見てるとrootへのアタック多すぎるよ。 kono先生が言ってるようにpassword認証を落とすってのも前にそれで失敗してびびってる状態。 root loginを切った状態でなんとかならんもんかと思い先輩に聞くと forced-commands-only というのがあるらしい。 とりあえずこれで対処してみましたら割とすんなりいけました。 root以外のユーザでuploadして、rootでloginすることがトリガーとなって ~/.ssh/authorized_keys に登録されてるcommandが起動してmvしてくれるというなんとも間抜けな仕様。 設定 sshd_config で PermitRootLogin forced-command-only にするだけでsshの設定は終わり。 scp aho.pdf “hoge@hogehoge.jp:" ssh root@hogehoge.jp をMakefileに記述して、あとはhogehoge.jpの (rootの$HOME)/.ssh/authorized_keys に command=“mv aho.pdf (webの場所)” id-rsa ~~~~~ このforced-commands-onlyに command=“echo did you think finished hack? ZAN-NEN SAYAKA CHAN DESITA!" とか書くと $ ssh root@hogehoge.jp did you think finished hacking?

tuningathon#5 でやったこと

Tuningathonに参加してきました。 http://www.zusaar.com/event/467009 きっかけ Tuningathonの前々日くらいに@himajin315に誘われたのがきっかけです。 どんなことするのかよく分かっていない状態でいつものノリで了解して当日を迎えました。 ハプニング 大学で待ち合わせたのですが、開始時間を間違えるというハプニング。 ・自分でもちゃんと確認しなかったのが悪いのですが、ペアの人が12時受付かと思ってた。 ・大学から30~40分はかかる。 ・大学を11:40分くらいに出た。 遅刻でした…。#moukaeritaiJPが頭に浮かびます。 向かってる途中に #tuningathon でTwitter見てたら「始まった!」みたいに書いてる人が多くて「え、早くない!?」と思いそこでzusaar確認して気付きました…。 以後、気をつけます…。 サテライト向かうまででレギュレーション読んでました。MySQL。 「今日は諦めない気持ちしか持ってきてない。」と呟いてる時点で気合い十分。 #moukaeritaiJP http://twitter.com/y0t4/status/292466127160889344 http://twitter.com/y0t4/status/292466413560549376 到着 沖縄サテライトに到着してからはお腹も空いてたので、sshして/proc/{cpu,mem}infoを確認した後ピザ、ポテトもぐもぐファンタごくごく。 これが欧米文化かぁ、なんて思いながら初のMySQLチューニング。 適当に$HOME以下を確認して計測スクリプト動かしてみると168.41320014秒 おっそい。ペアの人は初回157秒だったそうです。何もしてないのに負けた。 会場はなんか黙々と作業してる雰囲気だったので隣にいるにも関わらずSkype使って報告しあってました。(後半は普通に話してた) 今思えばログ残るから良かったのかな。 方針として、僕がMySQLチューニング、ペアの人がMySQLのsource installという感じに。 この時点で12:40。 チューニング開始 Skypeにあった途中経過を全部貼ってみます 計測時間 計測結果 13:10 28.6917150021秒 13:33 23.7787659168秒 14:34 20.9666309357秒 14:34 10.3262760639秒 14:52 14.7098088264秒 Skypeのログはここで途切れてました。(報告はSkype上でやればよかったかも?) 14:34に10秒とか出てますが、これはmysqld restartした直後の値ではなく、2回目の値です。 キャッシュのせい?早い。 それ以外は律儀に計測する前にrestartしてました。 (このときはmy.cnfいじってたから) ここからmy.cnfの設定はほとんどいじってないのでその設定貼っておきます。 innodb_buffer_pool_size=12884901888 key_buffer_size=268435456 innodb_flush_log_at_trx_commit=2 query_cache_size=1048576 thread_cache_size=2097152 sort_buffer_size=4194304 read_rnd_buffer_size=2097152 2^20くらいまでは覚えてますよね。(ニッコリ)…いや、M使えよ。 最初に/proc/meminfo確認してかなりメモリは潤沢なのを知っていたのでガンガン振ってます。 始めにちらっとQuery見てsortとかしてたので、google先生で確認しながら必要そうかな、って思ったのに振りまくりました。 ここからようやくベンチマークscriptのQueryをまともに見ました(遅い…) join…order by…group by… とりあえず復習がてら全てググり直し。…INDEXいじっていいんですか。はい。 使ってるテーブルはpageとrevisionの2つだけだったので、show indexesしてindexについてぐぐってました。 そんな中Twitter見ると「INDEX消すと早くなるよ!」ってあったのでとりあえずプライマリ以外全消し。 おー、ほんとに早い。

学生です。