PostScriptは年賀状を書くための言語です
— keiichirou shikano (@golden_lucky) December 31, 2013
@golden_luckyさんのPostScript年賀状を勝手にまとめた。2012, 2008が好きです。
PostScriptは年賀状を書くための言語です
— keiichirou shikano (@golden_lucky) December 31, 2013
@golden_luckyさんのPostScript年賀状を勝手にまとめた。2012, 2008が好きです。
うちは夫婦ともに白湯が好きなので、電気ケトル大活躍過ぎる。ガスコンロ+ヤカンだと目が離せないんだよね。すぐ沸くし良い。電気代は、知らん。
これ歯がツルツルになってまじで良い。すごい気分がイイ。いままでは電動歯ブラシに懐疑的だったんだけど、口腔ケアマニアの上司に教えてもらって、試しに買ってみた。これを買ったお陰で人生がひとつ豊かになったわ。ってレベルで気に入っている。
フィリップスの公式HPを見ると、他にも上位モデルが多数ある。上位モデルは、多機能かつオプション満載。実際に上位モデルを使っている上司の「結局、通常モードしか使ってない」との一言で、このモデルに決定。
これも口腔ケアマニアの上司からのオススメ。やばい、これまじで気持いい。特に自分のように顎が狭い人や、歯並びが悪い人にオススメ。口の中スッキリ。
口腔洗浄機って、結構いろんなメーカーから出てるようだけど、故障が多いらしい。このオムロンのエレピックは、故障しないって評判が良い。
データのない主観なんだけど、これ使い始めてから口内細菌の量が確実に減ってる。と思う。口の中が気持ち悪くなることが減ったし、なりにくい。お口スッキリ。寝る前の歯磨き前に毎晩使ってる。出かける前の歯磨き前にも使ってる。
もちろん、これを使ってるからってフロスをさぼるわけにはいかないけどね。口の中がスッキリしてると気分もスッキリして人生はかどる。
出張が多いので必携です。こいつをフル充電しておけば、Galaxy S2aを2回フル充電できる。小さくて良い。大活躍でした。
安い。枕元用に使ってる。こいつのお陰でベッドでのネットサーフィンが快適になったわ。地味だけど、生活が一つ快適になった。
ベスト5ここまでー
Software Design 総集編(2001〜2012)。お買い得。PDFありがたや。取りあえず興味のあるところだけ目を通してしまった後は、放置してしまってるけども。
G-SHOCK。出張マンとしては、腕時計は必携。携帯で時間を確認するのって、片手塞がるから大変なんだよね。
で、本当に欲しいのはメタルなビジネスっぽい腕時計。でも、近頃の腕時計って文字盤が馬鹿デカイのばかりで、まじでクソクラエなんだよな。あれ全然カッコよくないと思うんだが。むしろクッソダサいと思うんだ。付けづらいしな。やだやだ。
ってな感じで、腕時計が壊れてここ数年、欲しい時計が見つからなかった。失礼な話だけど、その場しのぎ的に無難なG-SHOCKを購入。ソーラー、電波時計なので、手のかからない可愛いヤツ。意外と気に入ってしまった。
本当に欲しいのはこういうの。
ミシュラン プロ3レース 700×23C。ロードバイクのタイヤですね。本当はこれを1位にしたいくらい。これすげー転がる。やばい気持ちいいいいいい。これまでノーマルタイヤ履いてたんで、違い過ぎて魂消た。ノーマルタイヤって、とんでもないハンディキャップだったんだな。
でもチャリのタイヤで一本5,000円って高ぇーよな(笑)でも、転がりっぷりがすごいので、周りの人たちが一本1万円のタイヤ履く気持ちがわかったわ。
月に2〜3冊程度しか読まないマンなので、そもそも母数が少ないけれど、書いておく。こうやって選んでみると、今年読んだ本は当たりが多かった。全部書くわけにもいかないので、「これは書かないわけにはいかないだろ!」というのを選んでみる。
順不同。
これはプロの仕業。実際プロの仕業。小手先のテクニックやtipsみたいな枝葉ではなく、レトリックの話でもなく、文章を書くためのズッシリとした幹についての講義。
あとがきに
本書の執筆中、何名かの友人にこんなことを聞かれた。「その本であんまり手の内をさらしてしまったら、みんなに真似されるんじゃない?」
とある。自分も読んでみて「ここまで丁寧に惜しげもなく披露しちゃうのか」と思った。と言っても、プロとしては押さえておいて当然の基礎なんだろう。基礎こそが大事なんだと思う。
高校2〜3年生の頃、大学入試のために小論文の指導を受けていた。四苦八苦だった。ホントその時の自分に読ませたい。というか、中高生にこういう授業必要だろ常考。今後も読み直す系の本。
この2冊は特に外せない。説得、交渉の本。身を守るために読むと良いと思う。
影響力の武器 訳者あとがきより
社会心理学の研究は、どちらかといえば影響を与える側の立場から問題を扱うことが多い。しかし、本書では影響を受ける側の人々の心理やそうした影響力に対する対処法についても言及しており、この点でも貴重である。
プロパガンダ P.302 ペイソの子孫たち(ペイソ=古代ローマの説得の女神)
好むと好まざるとにかかわらず、われわれはペイソの子孫なのである。友人に「あそこのレストランは美味しい」とか「あのメーカーのステレオセットはいい」と言って勧めるときに、無意識のうちにその役割を果たす(ときには少し意識して行うこともあるが)。販売や法律や政治だけでなく、医学や科学や教育など多くの職業でも高度の説得術を必要とする。同様に、選挙の候補者や社会団体や慈善団体のために働く人は、自らの説得能力によって票を獲得し、請願のための署名を集め、寄付金を集め、情報を広める。実際にわれわれは、事物を誉めたり批評したりするとき、ある意見を弁護したり攻撃したりするとき、ある立場に賛同したり反対したりするとき、常に説得を試みているのである。
この2冊はペアで読んだ方が良いと思う。読む順は、影響力の武器を読んでからプロパガンダを読んだ方が良い。「影響力の武器」はそれぞれの影響力に名前を与えて、その名前ごとに章を分けてあるので解りやすい。章末にまとめがあるのも良い。
プロパガンダは「影響力の武器」の影響を受けているし、影響力の武器からの引用も多いので、「あ!これ影響力の武器で読んだ話題だ!」といったノリで読める。影響力の武器の補強として読むといいし、豊富な具体例が良い。
「自衛隊メンタル教官が教える」ってところに興味を惹かれた。自衛隊にそんな人がいんの?どんなことしてんの?って。
購読しているブログで「部下や後輩を持つリーダー向け」として紹介されていて、読んでみた。実際「疲れている当事者向け」というより、その上司や先輩向けの印象。ちなみに僕の心は疲れていないし部下もいない。
二十代前半の若いIT戦士にススメたい。この本を読んでいるとTwitterのTLで見かける人たちの顔が浮かぶ。反抗期のエンジニアを持つ諸先輩方も是非どうぞ。
恐い。日本もこんな風にならなきゃいいけど。今回読んだのはシリーズ3作目の「(株)貧困大国アメリカ」。ⅠもⅡも読んだけど、やっぱりこのシリーズ面白いわ。今度は同じノリで日本のルポ書いてくれよ。
SF、今年も何冊か読んだけど、この3冊がぶっちぎりに良かった。やっぱり、本の中の世界にどっぷり引きこまれて、帰って来れない感じがたまんないっすね。この3冊の中で、さらに一番を選ぶなら・・・未来からのホットライン。
「幼年期の終わり」は、いろんな有名作品の元ネタと言われてるんで、その意味では読んでおいて損はないかと。
今年はあんまり技術書を読んでないけど、この2冊はオススメできる。「入門UNIXシェルプログラミング」は、その名の通り入門書。Shell Scriptを書けるようになりたい人にとてもオススメ。基本から応用まで例題も多く、要所が押さえてあってわかりやすい。
Land of Lispはやばい。ゲームを作りながらCommon Lispを書けるようになる。説明が丁寧だし、このフザケた感じがとてもナイス。やばい。Lispエイリアン超かわいい。入門書としてもかなりいい感じなので、今後「Lisp始めたい」って人がいたら、この本をススメます。
今年の読書は満足度が高い。この中で一番オススメしたいのは、影響力の武器とプロパガンダ。仕事でも日常生活でも重要なことなので、来年も交渉と説得の本を読みあさりたい。
これ探し求めとったやつや・・・。TortoiseGitのdiffは単語レベルで表示できてたから、git diffのオプションかな?と思って調べたけど、できなくて諦めてた。
さっそく設定したが、満足である。
((--i)) でiが0になる時、返り値1なんだ。
iが負の値になる時でも返り値0なのに、0になる時だけ特別なんですね。
へぇー!こうか。
% i=10; while ; echo $i; ((--i)) && sleep 1s ; do; done; 10 9 8 7 6 5 4 3 2 1
を読んだ時のメモが面白かったので載っけとく。2011年5月のメモから一部抜粋。
P.252技術革新が人類の富を増大し、一人当たりの収入をどれだけ伸ばしても、結局、何かが剰余分を吸い取って、一般大衆は終生あくせく働くしかない。生産性がどんなに向上しても、労働の質が変わるだけで、人が労働そのものから解放されることはない。一般大衆が自分たちの労働の成果である富と自由を与えられないとしたら、いったいその収穫は誰が持ち去っているのだろうか?P.278
形態の如何を問わずすべて圧制者にとって、知識は敵なのだよ。知識は歴史を通じて、いかなるイデオロギーや信仰にもまして多くの人間を貧困と抑圧から解放した。P.246
「ひたすら働かせろ。目的に殉じる気持にさせろ。ただし、考える閑は与えるな、か。え?」
ふはは。太字のところ、IT業界の話みたいだな(笑)ITって楽をするための手段なはずなのに、当のIT業界の人々は死ぬほど働いてるってホントどうしてこうなった。
はたらけど はたらけど猶 わが生活(くらし) 楽にならざり ぢつと手を見る --石川啄木:一握の砂
調整力&交渉力が高い人がとても眩しい。欲しい。
— S式戦士キャンタマン (@valvallow) October 25, 2013
調整力ってか交渉力あると仕事も人生もすげー捗るんだなーという実例を普段から見ているので影響されている
— S式戦士キャンタマン (@valvallow) October 11, 2013
交渉とかそういう方面の良い本ないかなーなどと探すとアレ系のアレな感じの意識だけは高そうな本ばっかでレビューとか見るとほんとアレな感じでまともな本 is どこ
— S式戦士キャンタマン (@valvallow) October 11, 2013
交渉じゃなくて外交で調べると面白そうな本が出てくるな
— S式戦士キャンタマン (@valvallow) October 11, 2013
例えば、他者とのスケジュール調整や、納期の話し合い、入居/退去時の不動産屋とのやり取り、ご近所トラブル、勧誘、買い物、転職、打ち合わせ、プレゼン、どれも実は交渉や説得なんだな。日常の中で交渉力がものを言う場面は多い。交渉力があれば味合わずに済んだ苦い経験、結構あるわ。
交渉力があると人生もっと捗りそうなイメージ。例えば、弊社社長、交渉力が高いから一緒に仕事すると案件が終始めっちゃスムーズ。社長や上司の交渉力が高いお陰でデスマにならないし、残業も発生しない。毎日定時退社。ソフトウェアベンダーとしては珍しいと思う。普段から社長や上司を観察してるけど、なかなか真似できない。経験の差ってのはわかってるんだが。
一応書いておくと、交渉によって目指す結果はwinwin。言いくるめたり、無闇にゴネたり、強引に押し切るって話じゃない。それは交渉ではないと思う。理想はこちらの要求を叶えつつ、相手が「得をした」「良い結果を勝ち取った」というような感想を持って自らYesと言うこと。難しければ、最低限、双方にとって不本意な結果を避けるようにしたい。
自分は営業ではない。プログラマであり、SEなんだけど、営業的なことをやる機会もあるし、お客さんや他社と調整するし、サポートで現地に行って人とやり取りするしで、結局は「楽するために交渉力が欲しい」のだった。
で、掲題の本の話。両方ともとても有名な本。影響力の武器は、これまでに何度か読んでいるんだけど、先日もう一度読み直した。その後、プロパガンダを買って読んでいる。両方とも「業務で営業やマーケティングをやっているなかでも意識高い系の人」が読んでそう。でも内容は別に意識高い系ではなく、とてもまとも。無用な煽りなどはない。
プロパガンダは、評判通り影響力の武器と内容かぶりまくり。かぶりまくりなのにすごく面白い。お互いがお互いを補っていて、これはペアで読んだ方が良いと思う。「あ!これ、影響力の武器で言ってた一貫性の話だ!」みたいな。交渉や説得に興味なくても、防御のために読む価値がある。
どんな本なのかは、この辺をみるとわかると思う。
とにかく僕らは簡単に影響を受けてしまうわけだ。簡単に説得されちゃう。
われわれは「正しい持ち物」を購入することによって、お気に入りの著名人のように「なる」。そうすることで、自分自身の自我を強化し、自分の不完全さを合理化するのである。 --プロパガンダ P.107
「ハッカーと画家」読んでLisp始めたり、有名なプログラマがスゲーと言ってたの見てSICP買ったりなので、テレビで「ダイエットにはバナナ」と聞いてスーパーに走る人を笑えない
— S式戦士キャンタマン (@valvallow) November 30, 2011
さて、本の構成としては、影響力の武器の方が各章末にまとめがあって嬉しい。プロパガンダは、影響力の武器より読みやすい。両方とも事例(実験とか統計とか)がたくさん乗っていて、そこが特に面白い。ただ両方ともなかなか分厚い。
実は、評判が良かったので、この本も読んでみた。
結構参考になったんだけど、上の2冊に比べるとすごくライトな本。よく見るとアマゾンのレビューも評価は高いけど、なんかアレな感じ。前半は基本的なことの説明で少しクドい。なかなか退屈。ただし、例題は面白い。退去費用の交渉の話とか、近所の工事現場に対する苦情の話とか。
前半読んでると、もう読むのやめようかなーと思えてくる。我慢して読むと、前半の内容を踏まえての後半が面白い。とくに三章「こんなとき、どうするか」がすごく面白い。目次を抜粋。
これはこれで読んでよかったかなと思う。
先日読んだ、言葉と思考って本も少し関連があると言えばある。
ほんで、プロパガンダの次はこれを読もう、と思って買っといたのがこれ。
プロパガンダと一緒に買ったんだけど、プロパガンダ読んでたら引用されてて笑った。
こういう本を読んだからといって、すぐに交渉力は上がらない。間違いない(体験)。ただ、実際の交渉の現場に居るときに、今何が起こっているのかがわかるようになる。なぜ相手がみるみる説得されているのかがわかるようになる。それに、過去に自分が行った交渉の問題点に気づくことができる。これ多分すごい重要。
なぜうまくいかなかったのか、どうすればよかったのか。なぜ自分は不本意な説得に応じてしまったのか。もっと交渉の余地があったんだ、って。
以上、けっこう真面目に書いたけど、読んで面白いから暇つぶしにオススメ。
行列転置したいことは結構あるのに、shellでやろうと思うとちょっと面倒くさい。普段はExcelで「形式を指定して貼り付け」しているけど悔しい。
ので、簡単なコマンドにした。以前作ったcsv2sqlをコピってちょっと書き換えただけ。
ソースはこちら。
先日「面接法」っていう全然オレ得じゃない本読んだんだけど面白かった。薄いし簡潔な文章なのに密度すごかった。面接法ってかカウンセリング法って内容。初心者が書いたケース記録をベテランのアドバイスを基に何度も書きなおすところは、文章を書くことについてとても参考になった。
カウンセラー向けの本なんだろうな。面白かったよー。
さっきから暇つぶしに読んでる「ことばと思考 (岩波新書)」って本が思った以上に面白いので書いておく。
amazonの商品の説明より
私たちは、ことばを通して世界を見たり、ものごとを考えたりする。では、異なる言語を話す日本人と外国人では、認識や思考のあり方は異なるのだろうか。「前・後・左・右」のない言語の位置表現、ことばの獲得が子どもの思考に与える影響など、興味深い調査・実験の成果をふんだんに紹介しながら、認知心理学の立場から語る。
なんかプログラミング界隈で聞いたことある話じゃない?僕にはこう見えた。
私たちプログラマは、プログラミング言語を通して世界を見たり、アルゴリズムを考えたりする。では、異なるプログラミング言語を話すCOBOLerとLisperでは、認識や思考のあり方は異なるのだろうか。「静的スコープ・再帰・継続・マクロ」のない言語のコード表現、プログラミング言語の習得がプログラマの思考に与える影響など、興味深い調査・実験の成果をふんだんに紹介しながら、認知心理学の立場から語る。
序 章 ことばから見る世界―言語と思考
第一章 言語は世界を切り分ける―その多様性
第二章 言語が異なれば、認識も異なるか
第三章 言語の普遍性を探る
第四章 子どもの思考はどう発達するか―ことばを学ぶなかで
第五章 ことばは認識にどう影響するか
終 章 言語と思考―その関わり方の解明へ
プログラマな人たちは好きなんじゃないかなと思う。プログラミング言語が好きな人たちは特に好きそうな話だ。というのも「言葉は世界を切り分ける」「言語が異なれば、認識も異なるか」など、Rubyのまつもとさんがよく話題に出す「サピア・ウォーフ仮説」の類のお話だから。ちなみに二章に「ウォーフ仮説は正しいか」というセクションがある。
最近話題になったRubyコア用語集にもサピア・ウォーフ仮説のことが載っているな。
普段使ってるプログラミング言語に新しく追加された機能がどうしてもわからない。解説記事を読んでも、本を読んで勉強してもどうもピンとこない。そんな時、別のプログラミング言語を触ってみたらあっけなく理解できた!なんてことはプログラマであれば経験があるんじゃなかろうか。
自分にも経験がある。プログラミングを始めたばかりのころ、C#のdelegateの意味がよくわからなかった。C#の本を読んでもdelegateのところだけワケワカメ状態だった。ちょうどその頃仕事で、それまで未経験だったJavaScriptを書くことになった。入門記事片手にJavaScriptを書いていたら、delegateのことがあっさりわかってしまった。なぜわからなかったのかがわからないくらいあっさりわかった。ついでにクロージャのなんたるかまでわかってしまった。僕は「JavaScriptはなんて素晴らしい言語なんだ!!」と思った。今は「Lispはなんて素晴らしい言語なんだ!!神様ありがとう!」と思っている。Lisp・・・ふははっ!Lisp!
第一章 言語は世界を切り分ける、第四章 子どもの思考はどう発達するか、第五章 ことばは認識にどう影響するか、が特に面白かった。
印象に残っているのは、記憶が言語に引っ張られるって話。例えば、車がぶつかる映像を見せて「車が[衝突]したときのスピードはどのくらいでしたか?」と聞く。この[衝突]の部分の動詞をsmashed, collided, bumped, contacted, hitを言い換えて聞いた時、被験者が答えるスピードが異なるって話。
もうひとつ。子どもが何歳くらいでどういった言葉と概念を獲得するかという話も面白かった。大学の頃に似たような話が講義であったことを思い出した。獲得した言葉によって認識できることや区別できることが広がることを示した実験の話が興味深かった。知らないことを考えることはできないって点で、大人も同じだと思う。ヴィトゲンシュタインってエラい人が「私の言語の限界は、私の世界の限界」だとおっしゃってるそうで。
風呂に置いてるわけじゃないけど風呂で読む本。読むのに少し気合いが要る本は風呂で読むことが多い。半身浴しながら。今は「影響力の武器[第二版]―なぜ、人は動かされるのか」を読んでいる。第一版の方。これは好きな本で、読むのは3〜4回目くらい。特段難しいわけではなく読んでいて面白いんだけど、読んでいるとなぜか眠くなるのため風呂で読んでいる。プログラミング系の本もわりと風呂で読むことが多い。The Little Schemerは風呂で読んだけど紙質が悪くてふやけ方が半端無かった。素数夜曲みたいな分厚い本も風呂で読むことがある。手がつかれて大変だけど。PCやノートが使えないところがツライ。
8月はProject Euler、9月はアニメ強化月間だったので、10月は読書強化月間にしようかなって。秋だし。
しかし、まー、正直マンガ読んでる方が楽しい(笑)
めっちゃ参考になるわー。
先日batを作った時にtempファイルとして「ファイル名が日時のファイルを作る」ところで0埋めフォーマットできてなくて午前中だけ動かないbatを作ってしまった。
改めて探したらいろいろあった。いろいろあるけどほとんどのものはWebUIしかないようだ。個人的にはその仕様は残念だ。その中でgitinspectorというのがコマンドとしても実行できて感触がいい。統計の項目がちょっと物足りないけれど。
以前タイムボカンという名のディレクトリについて触れた。
スクリプトを書きなおしたので書いておく。
% timebomb -d 7 ~/timebomb.weekly
これを.shに書いてcron.hourlyに入れてる。
歯や歯茎のケア、大事ですね。虫歯はないと思って15年近く歯医者に行ってなかった。先日行ってみたら歯と歯の間の虫歯がたくさんあった。さいわい神経を抜くような虫歯はなかった。フロスはやっていたけど、足りなかったみたいだ。それに親知らず付近の歯周ポケットが深かった。
歯周病で口がくさくなったり歯がなくなるのは嫌だ!!特に口がくさいのは嫌だ!!
歯医者に通い、虫歯の治療をし、フロスも毎日やっている。親知らずも4本のウチ3本抜いた。上の親知らずは抜いても全然痛くなかったのだけど、下の親知らずを抜くのはすんげー痛かった。歯茎がごっそりくっついて抜けた(ガクブル。あとは右下の親知らずが残っている。上の画像のように真横向きに生えているらしく抜くのが怖い。親知らずを一旦途中でぶった切ってから抜くらしい。怖い。
と、まあ、歯や歯茎に対する意識が高まったので口腔ケアに余念がない上司に相談してみた。するとフィリップスの電動歯ブラシとオムロンのエレピックというものをススメられたので買ってみた。上司曰く「人生捗る」「人生がひとつ豊かになる」との絶賛ぶりだった。
今週末その二つが届いたので早速使ってみたら、これはすごい。もっと早く欲しかった。特にエレピック。エレピックは強い水流を噴射して歯と歯の間や歯と歯茎の間を掃除することができるマシーン。気持ち良すぎる。エレピックをやった後の口の中の爽快感。これはいい買い物。同じような機械は他のメーカーからもいろいろ出ているようだけど、けっこう故障するらしい。オムロンのエレピックは故障が少ないことで評判がいいとのこと。
上司曰く、電動歯ブラシはフィリップスというメーカーのものがオススメということだった。値段が高いモデルはいろいろなモードがあり、付属品が多いらしい。けど、結局ノーマルモードしか使わないらしいので、単機能で安いものを買った。この電動歯ブラシ、歯がツルツルになってとても気持ちいい。口の中が清々しいのは気分がいい。
近くに居るだけでキッツい口臭が漂ってくるおっさんおばさん、多いよね。ああはなりたくないので口腔ケアに勤しむ。
amazonでエレピックの取り扱いがなくなってますね。リンク貼っときます。
Gaucheスクリプト。ネタ元はこちら。
Gauche-net-twitterがTwitterのapi v1.1に対応してないっぽくて間に合わんなーと思ったら
対応してるのがあった。
で、スクリプトの使い方は、consumer-keyなんかを書いたファイルを用意してコマンドを実行。それぞれのtweetは別スレッドで投稿されます。
% ./tweet-bals-batch-balk.scm ばるす > bals.log
結果はこんな感じでわかる。
% cat bals.log | grep done | awk '{print $1}'| sort | uniq -c
合計はこれで。
% cat bals.log | grep done | awk '{print $1}'| sort | uniq -c | awk '{ total+= $1}END{print total}'
コマンド名が長いのでシンボリックリンクを作成した。
% ln -s `realpath ./tweet-bals-batch-balk.scm` ~/bin/bals % bals ばるす > bals.log
詳しくはでたらめ英語なhelpをご覧ください。
% bals -h Usage: bals [option ...] message h|help : Show this help n|number : Number of continuous tweets (default:endress) k|key-file : The path of the file for which have listed the Consumer-key and Access-token ex) twitter-id1 consumer-key1 consumer-secret1 access-token1 access-token-secret1 twitter-id2 consumer-key2 consumer-secret2 access-token2 access-token-secret2 ... twitter-idn consumer-keyn consumer-secretn access-tokenn access-token-secretn (default: ~/.tbbbrc) i|interval :Interval (default: 0.1) s|suffix :Message suffix (default: !) d|debug :Debug mode. Print message to console, Twitter not update
ソースはこちら。
素数夜曲: 女王陛下のLISPに書いてあった。
P.474 脚注1)
なおこの名称は, 「その内容である index の頭文字を採用するに当たり, より印象的にする為に対応するギリシア文字イオタιを用いたことに因る」とされている.
この素数夜曲: 女王陛下のLISPは前半(というか本編?)の数学がP.332まで、後半のP.333からP.834までschemeによる付録(付録!?)で、その他付録含めトータル871ページで3,600円というお得な本。
「SICPを読む前に読む本」とか「SICPに挫折した人のための本」とかそういうススメられかたをされる。Scheme手習いとScheme修行も似たようなススメられかたをするけど、難易度で言えば素数夜曲の方が難しく手習いと修行の方が易しい。
説明が丁寧でわかりやすく、とくに後半のScheme部分がすごくいい。継続の説明が平易でわかりやすい。
なかなか大変なのね。
現在ではSPAMがビジネスとして確立している反面、SPAMを受け取るヒトの大部分は多大なる迷惑をこうむっている。そのため、SPAMの温床となるオープンリレーのメールホストは基本的には設定しないことがスタンダードとなっている。
気づいたらlogwatchのメールが来なくなってた。サーバーでlogwatchすると何事もなく完了するけどメールこない。--output=stdoutオプションつければ当然terminalに表示される。初めはどこかの段階でスパム扱いされて詰まってるのかと思ったがそうでもない。メールのログを見たら、ある時からログがでてない。sudo service postfix statusしたらpostfixが死んでた。なんでかわがらね。
ところで、logwatchみたいなノリでgitwatchみたいなのないのかね。
検索するといろんな解決方法が出てくる。.bashrc|.zshrc|.profileなどに環境変数設定してexportしろとか、/etc/default/localesに書けとか、localのsshd_configdからSendEnv LANG LC_*をコメントアウトしろとか、/etc/environmentに書けとか。
「localのsshd_configdからSendEnv LANG LC_*をコメントアウト」で解決したかに見えたけど、sudoする時に同じ警告。結局、下記の方法で解決。
% sudo locale-gen en_US % sudo update-locale LANG=en_US.UTF-8
目障りだったので消した。/etc/ssh/sshd_configのBannerのとこをコメントアウトしたら消えた。
ほんであとは、telnetでSSHポートにつないだ時にでるOpenSSHのバージョンを消したいんだが、まだ調べてない。
表示が必要なようで。
やっと手をつけた。以前からやろうやろうと思っていたけど後回しにしていた。本当はFreeBSDにしたいんだけど、Serversman@VPSだと一番上のプランでしか選択できないので、やっぱUbuntu。変更自体は簡単なんだけど、ubuntuが10.10なので12.04までupgradeしたらコケた。のでやり直し。11.04まで上げた。ほんでユーザーを追加、SSHの設定、zsh,git,rlwrap,gauche,logwatch,build-essential入れて完了。焼肉食べたい。これまではdyndnsとddclientを使っていたんだけどdyndnsが有料になっちゃったみいなので、ついでにドメイン取得。
せっかくなのでGauche-makikiを試してみた。ほめぱげ作って全世界に情報を発信するお!(違
普通はどうやって集計してるのかな。コミットログを月間集計などして投げつけたりしてるんですか?誰がどのプロジェクトにどのくらいコミットしてるか毎日投げつけたりしてるんですか?そういう便利なツールがあるんですか?それともshellscript+cronとかですか?
git config --global --unset alias.myAlias
以下すべて余談だけど、gitに限らずshellでもあまりaliasは設定しない。人によってはかなりいろいろ設定するらしいですが、他の環境で困りません?.zshrc確認したらこんだけだった。
alias screen='screen -S main -UxRL' alias ls='ls --color=always' alias rm='rm -i' alias mv='mv -i' alias hd='hexdump' alias diff='colordiff -u' alias rlwrap='rlwrap -pCYAN' alias less='less -R' alias grep='grep --color=always'
原因を突き止めるまでに2時間もかかってしまったツライ。対策はまだない。
原因はVMのネットワーク設定だった。VMのNICを有線LANアダプタのみから、有線LANアダプタ+無線LANアダプタに変更したことが原因だったようだ。VMのネットワーク設定で無線LANアダプタを無効にしたら外部から のSSH接続ができるようになった。
社内ローカルネットワークからのSSHには全く問題がなかったので発見が遅れた。外からの接続はWiMAX、EasyTether、ConnectBotからsshとSSHポートへのtelnetで試した。hosts.denyとhosts.allowも全消し、iptables全消し、selinuxも停止(というか入れてない)、ufw停止の状態でも外からの接続が記録されてないなかった。VirtualBoxでVMのNICを2つ以上にした時にルーターのIPマスカレードがうまくいっていないのか?
原因がわかったところで力尽きたので同僚にバトンタッチ。tcpdumpしたりなんやかんやで原因の詳細と解決までしてくれました。いつもありがとうございます&いつもすいません。
で、原因はdefault gatewayが2つ登録されていたことみたい。
ネットワーク周りは楽しいけど、ほんと難しいなあ・・・。
そういえば、/etc/ssh/sshd_configにListenAddressを書いてなかったので一応下記加えたみたい。
Asteriskを光電話にregisterする作業を同僚にバトンタッチ!register成功!(爆)
うまくいかなかった根本的な原因は、AsteriskがAD-200NEにぶら下がっていないためでした(汗)sip.confいじっても、パッチあててもうまくいかない、うーん。となっていたところ、「そういえばAsteriskに限らず、WindowsのsipクライアントソフトやAndroidのsipホンアプリなりで登録できるか試していないよね。」ということで、試してみたらregisterできず。AD-200NE実機を目視確認。うちのAD-200NEは、メインのルータにWANポートで繋がっていたのでした。なので、AsteriskをAD-200NEにぶら下げてregisterすると登録できたという流れ。なんてこったい。Asterisk以外の子機がregisterできるか、もっと早くに試しておくべきことでしたね。
ちなみに、apt-getで入る1.8.10系は繋がらない、wikiにあるパッチはどうやら必要、sip.confのregister=>内線番号:パスワード:ユーザID@AD-200NEの@以降はIPでないと繋がらなかったみたい。
Google ReaderとGoogleListenの終了に伴って、Podcastを聞くためのアプリを探していた。
いくつか試したけど、Beyondpodってのがよかったので使っている。
せっかくだから他にもPodcastのRSS登録しようと物色していたら「新刊ラジオ」というのがあった。これがなかなか面白い。聴いてると読みたくなる。
胃腸炎でダウンして寝込みつつ、いくつか聴いてた。モルフェウスの領域って本、読みたくなった。
そんなにしょっちゅうPodcast聴いてるわけじゃないけどな。ちなみにお気に入りは、Hiroshima University's English Podcastの「やさしい英会話」シリーズ。
エンジニア向けっぽいのだと、Software Engineering Radioってのがある。Clojureのりっちひっきーとか巨人がいすてぃーるのインタビューなんかがある。
Vim派であれば、またはEmacsもVimも嫌いなら。
Gauche本体とrlwrapを入れるだけでも十分書ける。
hoge.scm
#!/usr/local/bin/gosh (print "Hello, world !!")
% gosh hoge.scm
または
% sudo chmod 755 ./hoge.scm
% ./hoge.scm
といった感じ。
rlwrapについては、サンプルを動かしたり、コード片の実行結果を確かめたりするのに便利。rlwrapを使うとgoshのreplでC-pとかC-nとかC-aとかC-eとかShellのやEmacsで慣れ親しんだキーが使えます。プロンプトに色をつけたり。
% rlwrap gosh
-pオプションでプロンプトに色がつくのでaliasにしとくといいかも
% rlwrap -pCYAN
ubuntuであれば
% sudo apt-get install rlwrap
でインストールできます。
一応Emacsのことも。
自分は、SchemeやLispつまりS式を書くときはEmacsを使います。その理由はEmacs標準のC-p、C-n、C-a、C-e、C-kなどのキーバインド以外に、C-M-tとかC-M-f、C-M-b、C-M-u、C-M-d、M-(、C-x r、C-xC-eなどのS式用のコマンドが便利過ぎるからです。これがVimにあったらVimに完全に移行するのになあ。今はS式以外ではVim、S式を書くのとorg書式の文章を書くときにEmacs。両方とも使ってる。でもVisual StudioもChromeもVimキーバインド。
完全に引きこもる覚悟があればEmacsはすごくいいけど、Shellを拠点にしているのであればEmacsは大げさで邪魔なことが多い。起動遅いし(serverあるけどさ)。CTRLキー押しっぱなしでの移動はtypoが多くなるし。Vimだとそういう心配がなくて、なんというかストレスが少ない。Emacsでも閲覧専用のViewモードでVimキーバインドを設定しているけど、やっぱり本家Vimには負ける。
こういうまとめ助かるわー。「今季熊本で見れるアニメまとめ」とか誰かやってくれない?ってかそういうのない?誰かうまいことやってくれませんか。
そういやうちの奥さんが会社でもらってきたITパスポート試験のパンフがみっくみくしててびっくりしたわ。
以前、必要だったのでザックリ書いたスクリプトだけど、便利だったんで結構使用頻度が高い。使うたびに修正したり機能追加されてる。あんまりちゃんとしたスクリプトでもないけど重宝してる。こういうのって普通はExcelとかで生成したりするもんなんだろうか?昔いた会社ではExcelで生成してたなあ。あれはあれで慣れれば便利なのかもしれん。慣れたくないけどな。
SQLつながりだけど、プログラマのためのSQL第4版が出てるんですね。ちょっと読んでみたい。第2版だったかなー、本屋で数時間立ち読m(ゲフンゲフン
しばらく前にスーツを2着ほど新調した。最近のスーツは細身で、特にパンツがすごく細い。いいと思う。でも着てみるとなぜかシャツに違和感がある。どうもダブついて見える。サイズはMで合っている。だけどウエスト周りがどこか不恰好だ。妻のススメでスリムタイプのシャツを買ってみた。Oh、シャレオツ。スーツと合わせてみるといい感じじゃないか。これは非常に気分がいい。気分が良くて人生が豊かになった。出張に行きたくなった。しかし、珍しくもしばらく出張の予定がないのであった。
そういえば、もうひとつ些細なことだけど気分の良いことがあったんだった。ひげ剃り用のシェーバーを買い換えた。ラムダッシュってやつ。安いんだけど、剃り心地が良くてご機嫌である。ずっとカミソリ派だったけど、1年ほど前からシェーバーを使うようになった。取りあえずはとんでもなく安いシェーバーを使ってたんだけど、もう少しだけまともなものを試しに買ってみたわけ。
この二つの記事、なぜかすごくアクセス数が多い。はてブされてるわけでもないし。わからん。
そういえば来週の金曜日、7/12はJ.P.ホーガンの命日ですね。もう3年も経つのか。幼年期の終わりはホーガンじゃないけどな。
Gaucheの組み込みの(Cで実装された)ソートはデフォルトではQuick Sortで始めて、 再帰の深さが ceiling(2*log(N)) を越えた時にHeap Sortにスイッチするように してる。
(slices '(a b c d e f g) 3) ⇒ ((a b c) (d e f) (g)) (slices '(a b c d e f g) 3 #t 'z) ⇒ ((a b c) (d e f) (g z z))で、それは置いといて、Pythonのzip(*[iter(s)]*n)ってのは、n個のiteraterを作ってzipしてるってことだと思う(python知らね)。
(use gauche.generator) (generator->list (apply gmap list (make-list 3 (giota 15)))) ;; => ((0 1 2) (3 4 5) (6 7 8) (9 10 11) (12 13 14))gzipを定義するとしたらこんなんでいいのかな。
(use gauche.generator) (define (gzip . list-of-list) (apply gmap list list-of-list)) (generator->list (apply gzip (make-list 3 (giota 15)))) ;; => ((0 1 2) (3 4 5) (6 7 8) (9 10 11) (12 13 14))
(define (strand-sort ls) (define (merge ls1 ls2) (let rec ((ls1 ls1)(ls2 ls2)(acc '())) (cond ((null? ls1) (reverse (append (reverse ls2) acc))) ((null? ls2) (reverse (append (reverse ls1) acc))) ((< (car ls1)(car ls2)) (rec (cdr ls1) ls2 (cons (car ls1) acc))) (else (rec ls1 (cdr ls2)(cons (car ls2) acc)))))) (define (filter-sorted-elements ls) (if (null? ls) '() (let rec ((ls (cdr ls))(sorted (list (car ls)))(acc '())) (if (null? ls) (values (reverse sorted) (reverse acc)) (let1 sorted? (< (car sorted)(car ls)) (rec (cdr ls) (if sorted? (cons (car ls) sorted) sorted) (if sorted? acc (cons (car ls) acc)))))))) ;; body (let rec ((ls ls)(acc '())) (if (null? ls) acc (receive (sorted rest) (filter-sorted-elements ls) (rec rest (merge sorted acc)))))) (use gauche.sequence) (define (test sorter n) (for-each (^i (let1 ls (shuffle (iota (expt 10 i))) (print "; length = " (expt 10 i)) (time (sorter ls)) (print))) (iota n 2))) (test strand-sort 5) ; length = 100 ;(time (sorter ls)) ; real 0.000 ; user 0.000 ; sys 0.000 ; length = 1000 ;(time (sorter ls)) ; real 0.005 ; user 0.000 ; sys 0.000 ; length = 10000 ;(time (sorter ls)) ; real 0.215 ; user 0.210 ; sys 0.010 ; length = 100000 ;(time (sorter ls)) ; real 6.727 ; user 6.710 ; sys 0.000 ; length = 1000000 ;(time (sorter ls)) ; real 205.260 ; user 204.550 ; sys 0.100