考えるリンク
Rは分析用? プログラミングであることには変わりない
R言語徹底解説を読む (1) ようこそRプログラミング - 僕らはRを愛しすぎてる
記事のタイトルから、R言語特化型かと思ったが、プログラミングの大切なことがさらっと詰まっている。記事中で紹介された、『達人プログラマ』を読みたいが、絶版と聞いて先輩から借りるかと考えている。プログラムソースコードは、誰かが読むために書かなくてはいけない。仕事でソースコードを読んでいると、退社した人間の置き土産がたくさんある。至極読みづらいコードにあうと、精神をすり減らす。そんなことの無いように、テストで外側を埋めて、読みやすいコード、そして無駄な処理のない、シンプルな構成にしようと記事を読んで思った。
Googleの熱に心がざわっとした
ASCII.jp:グーグルを勝利に導いた美人 マリッサ・メイヤーとは (1/8)
仲間と将来について熱く語り合う体験というのは、滅多にない。この記事の冒頭で、Googleの将来について語り合うシーンが書かれている。将来どうなるのかまったくわからないのに、荒唐無稽で壮大なアイデアをお互い言い合って、真剣に考える。その瞬間は、本当にかけがえのない。何にも変えられない。
僕らは、さまざまな活動を行っている。会社の自分、趣味の自分、家庭の自分……。どれでもいい。一つでも夢中になって、そこにありったけの熱を傾けられるものを見つけたいと感じた。メイヤーは、自分よりも仕事のできるプログラマに会ったとき、自分はこの組織の中でどういう存在になるべきか自分に問うた。同じプログラマとして対決するのではなく、自分の役割を考えなおした。組織のために。
まとめ
- プログラムは、他人が読むものだ。複雑にしすぎるな。シンプルにわかりやすくまとめよ。
- 組織に対して、自分がどのように貢献できるか? そう問いなおすことが、あなたの居場所を作る。
段取りをすると会議はすぐ終わる
会議を早く終わらせたいと思ったときに、何をすればいいのか。早口でまくし立てるようにしゃべる? それとも、すぐに多数決する? そうではない。
会議なんてみんな早く終わらせたいと思っている。会議を開いたことがある人はわかると思うが、会議で意見なんて、全然まとまらない。一時間で終われば良いほう。長いときには3時間や6時間もやっていることだってある。
この原因は、一つ。会議時点でのそれぞれの足並みがバラバラであること。
会議の席に着いたはいいが、で、何を決めるの? 何をする会議なの?と発言する人だってしばしば。
会議を始める前に、必ずアジェンダを用意し、事前に配布しておくことが肝心。そして、会議の目的を必ず共有しておく。できるなら、メールではなく直接言うほうが望ましい。あと、会議のゴールを明確にしておくことが大事だ。
この会議で、得られることを箇条書きでアジェンダに書いておく。そして、会議の始めに読み上げる。会議の最後に、読み上げる。これをするだけで、会議の質がぐっと高まる。
アジェンダを作る人はいても、事前に伝えていない人は多いだろう。その場でアジェンダなんて配られても、そこから足並みを揃えるのは至極困難だ。足並みを揃えるだけで、30分はかかるだろう。
会議前にできる限りの準備・周知をしておくことがコツだ。準備こそすれど、周知を忘れる人は多い。「あれだけ準備したのに、うまくいかなかった」と頭垂れている人は、会議の出席予定者に確認と周知を一つしておくだけでぐっと楽になるはずだ。
事前に個別に話を通しておくとなお良い。本当に驚くほど、ミーティングがさっと終わり、満足度も高い。ぜひ試してほしい。
Common Lispを勉強するリンク集
Common Lispをこのごろ勉強していますが、ネット上に、まとまった情報があまり見当たりません。 ここでリンク集をまとめてみます。
入門記事は少ない割に、超絶技巧系の記事が多いように感じています。初学者が学びづらいのかなと思いますね。
入門できそうな記事
実践Common Lispを買いました。
やはり体系的に学ぶのは本が一番ということで5000円を握りしめて、買ってきました。最初の100ページくらい読んでみました。かなり実践的な印象が強く感じられて読み切るのが楽しみです。
Common Lispの練習
Common Lisp(SBCL)で簡単なファイルダウンローダを作りました。複数のURLが書かれたファイルを渡すことで、それぞれファイルをダウンロードしてくれます。
https://github.com/tamanobi/uri-downloader
画像を集めるのに便利ですね。
僕はいつも右クリックしてダウンロードするのが面倒に感じていました。[Ctrl+S]→[Enter]ですら面倒です。Chromeでは、Commandキーを押しながら、リンクをクリックすることで新しいタブで開くことができます。こうやってタブがたくさん数えきれないくらい増えていきますが、不要なタブを確認して消していきます。
すると、開いているタブはだいたいにおいて重要なタブになります。そのあとは、自前のChromeエクステンションを使って開いているタブのURL一覧を取得します。
これで必要なURLが揃ったので、今回作成したCommon Lispスクリプトにダウンロードを依頼します。あとは勝手にスクリプトがdownloadsフォルダにせっせとファイルを集めてくれるのでとても便利です。
参考にしたCommon Lisp系の記事
- slimv 環境構築メモ - たまに考える人のメモ書き
- 学生さんとかエンジニアさんがLispを勉強するべき理由! - 唯時@Blog
- 自分のTwitpicの画像・動画をダウンロードできるスクリプトを書きました - 八発白中
- tagbodyとgo
- Common Lisp 入門
- CLHS: macro WITH-OPEN-FILE
- Lisp/基本からさらに一歩進んで/文字列 - Wikibooks
- Common Lisp 入門
- http://tips.cddddr.org/common-lisp/index.cgi?%E7%89%B9%E5%AE%9A%E3%81%AEURL%E3%81%8B%E3%82%89%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B
- CLHS: Function MAPC, MAPCAR, MAPCAN, MAPL...
- 誰向けかわからないCommon Lispでの関数型プログラミング入門とその未来 - 八発白中
- CL-PPCRE - Portable Perl-compatible regular expressions for Common Lisp
- 週記くらい | common lisp defvarとdefparameterの違い
- Common Lisp 入門
- format関数
- Common Lispのパスネームまわりについて - opamp_sando's blog
- Common LispライブラリShellyを試してみた - 紺屋高尾
- オレオレlisp入門 - CL-USER> (start-up (the engine *bp-ze*))
- Modern Common Lisp: 第3回 SLIMEの使い方 基礎編
- http://dev.ariel-networks.com/wp/archives/303
Macで使える便利なキーボードショートカット
テキスト編集中で使えるショートカットを示しておきます。
これを覚えると小指が痛くなります(笑)が、カーソルキーが遠く感じるようになると思います。カーソルキーは普段右手の仕事ですが、下に示したショートカットを使うと左手(小指)が仕事をするようになります。
便利な移動系ショートカット
コマンド | カーソル |
---|---|
control+A | 行頭へ移動 |
control+E | 行末へ移動 |
control+N | 上の行へ移動 |
control+P | 下の行へ移動 |
control+F | 右に移動 |
control+B | 左に移動 |
便利なテキスト編集系ショートカット
コマンド | カーソル |
---|---|
control+H | 左の文字削除 |
control+D | 右の文字削除 |
control+M | 改行 |
最後に
この手続きを採用するときは、環境設定のキーボードから修飾キーの配置を変更しておくと便利です。僕はいつもcaps lockをcontrolに割り当てています。
ノウハウ本の寒さ
年度末の金曜日。学生は大学の学業が一段落しているころですね。
「私は悲しいです。どうしてそう思ったか教えてもらえませんか?」というフレーズに白々しさを感じませんか?
このフレーズは、後輩と読んでいた本に載っていたものです。その本は、少し前に流行った「アドラー流」を売りにした本でした。「ロボットみたいですね」と後輩から感想をもらって大いに同意しました。
「遅くなると、次の人の作業にも影響がでてしまうからね」
こんなフレーズも載っていました。なんとなく白々しさを感じて寒いセリフだなと感じてしまうのは僕だけでしょうか。この本のフレーズは現実離れしていると批判したいわけではありません。ただ、なんでこの白々しさを感じるのかなと疑問に思っています。
まるで下手な小説のようなフレーズにも思えてきます。目の前の相手が、あまりにも多様すぎて(一般化しすぎて)相手に依存しないフレーズになってしまっているような気がします。言葉というものが決して一般的なものではなく、相手との関わりから出来上がっていくことをここで目の当たりにしたような感覚を覚えました。
コミケ(C89)に行きました
サークル参加(出展者)してきました。コミケは3日間あって、29日から31日にかけて開催されました。僕が出展したのは、3日目の31日木曜日です。
コミケに一般参加者として初参加したときに、コミケの虜になりました。僕はコミケが好きです!その魅力は、「自由さ」。頒布している作品がとても幅広い。都内のおいしいラーメン屋をまとめた冊子、身近な文房具を擬人化した冊子、とある作品のファンブック、オリジナル漫画、オリジナルアニメ、自作アクセサリー、育児体験記など様々です。
言い換えれば、「雑多」という表現されそうなその自由さがいい。利益を追い求めないがゆえに、いろんなアイデアがコミケに集まってくることも魅力一つです。金銭のやりとり以上に、交流を大切にしているイベントだと思います。もちろん、スケジュールを組んで自分のほしいものを集める方もいますが、僕はゆっくりとコミケを見て回ったり、気になった作品をサークルの方とお話しながら楽しみたい派です。
人がこんなに集まるってすごい
C89でサークル出展して、「なんでこんなに人が集まるんだろう」と不思議に思っていました。
大手のサークルでは、とんでもない長さの行列ができます。そのサークルに人がたくさん集まっているわけです。でも、そういう大手のサークルでは、コミケと同時にある店舗に委託販売をするところも多いです。そこだけに焦点を当ててみれば、交通費もかかるコミケに行く意味はあまりないと考えられます。
ライブ感
じゃあ、「委託をする大きいサークル」以外も十分にコミケを担っているんだろうなと想像しました。まず、たくさんの人がその場にいるライブ感が一つ要因だと思います。お祭りと表現できます。
できるなら静かに買い物をしたいと思う人が大半だと思いますが、僕は適度に人がいることも重要だと思っています。人がたくさん集まっていたら、何をしているんだろう?と疑問に思って注意をひかれますし、人を避けるために別の道を通ったら素敵な作品を見つけたという場合もあります。人がいることによって生まれたノイズによって、新しい出会いがある。そういう小さな作用がコミケには紛れているのだと思います。*1
隣のサークルは100部売れた!と喜んでいても、僕は一人が買ってくれただけで同じくらい内心喜んでいました。ただ目の前にいる人が興味を持って手にとってくれただけで、嬉しい。その気持ちをいつまでも大切にしたいです。インターネットで作品を発表していたりすると、見てくれた人の表情が見れないので、そういう意識が希薄になっちゃうんですよね……。
残念だったこと
ただ、残念だったことが一つあって、他のブースを十分に見て回れなかったこと。僕が一番好きな、ゆったりブース巡りがあまりできなかったことが心残りです。自分が席を外すと、僕のブースは無人となってしまうので。
いくらSNSが発展しようと、コミケのような対面で交流できる場はなくならないだろうなぁと感じました。むしろそういう場が増えていきそうな気もしますね。