金曜日、KLab元CTOの仙石さんからありがたい話をいただきました。 話は、開発者の採用、教育、評価あるいは開発者の心構えなど多岐に渡りました。いくつも興味深い話がありましたが、個人的に一番聞いて良かったと思える話を紹介します。表題の件です。 若いプログラマの中には年をとってもマネージャになりたくないと言う人がいます。他人事ではなく自分もそのひとりでした。若い時にマネージャ志望のキャリアパスに語ることは、プログラマとしての自分の誇りを傷つける気がしていました。マネージャを偉いと見なす風潮が、技術に対する裏切りのような気分がしていました。技術者をマネージャより低いと位置づけるのが許せませんでした。 たぶんピュアだったのでしょう。そんな経験があるので、今でもピュアな若者は好きです。本物のプログラマになるには、技術だけに一心に向き合うピュアな期間が必要だと信じています。そして、技術に真摯に向き合
コードリーディングについて アリエルネットワークCTO 井上誠一郎 自己紹介 書籍 「P2P教科書」 「パーフェクトJava」 「サーバサイドJavaScript入門」 「パーフェクトJavaScript」 今回の講義 心構えや経験談が中心 抽象論になりすぎないように実践可能な「トライ」ページ 次回講義の予告 3月1日の予定 「Webアプリのアーキテクチャの歴史と進化」 専門用語多め 反応を比較して今後の講義の参考にします コードリーディング(1) 現場で重要なスキル 既存コードベースがある場合、書くコード行数は驚くほど少ない 学習と実務でのギャップ サンプルコードは短い コードリーディング(2) 既存コードを理解できないと デバッグできない 新機能の追加ができない 既存コードと同じコードを書いてしまう(無知ゆえのコピーコード) => 更に読みづらくなる悪循環 理解できないコードは悪 多少
WEB+DB PRESS Vol.66の特集3が「クックパッド 開発ノウハウ大公開」でした。他社がどのようなソフトウェア開発プロセスを確立あるいは試行しているのか、どんな開発者文化を醸成しているのかに関心があるので、興味深く読みました。読んだ感想は、クックパッドは良い開発者文化を醸成しているようで素晴らしい、です。なんと言うか、利用者視点の文化が醸成されているようです。 もちろん書かれたものと真実が一致していると信じるほどウブではありません。かつて、アリエルも開発プロセス(主に品質管理)の記事を書いたことがあります。もし社内の人がこれを読んだら、こんな良いことばかりでもないだろうと思うかもしれません。ぼくもそう思います。 そもそも世の中にあふれる「言語化して語られる開発プロセス」と「開発現場の現実」にはギャップがあります。現場の本当の根深い問題の多くは語られません。 開発プロセスの良い面あ
元祖Ariel Advent Calendar 2011の記事です。クリスマスなので就職面接の必勝法について書きます。 新卒でも中途でもどちらでも使えますが、それなりに若い人を想定しています。一定の年齢になっていれば、面接での小細工よりも実績で勝負すべきだからです。実績を積み重ねていれば、面接が多少下手でも採用に至るはずです。同様に、新卒や若い人でも、既に充分な実績や誇れる何かがあればこの記事は不要です。 とは言え、充分な実績を持つ若手は稀です。ほとんどの人はさして誇れるものもなく、売りもなく、挙げ句、下手な面接で採用の機会を逃しているのではないでしょうか。もったいないことです。そもそも就職活動は生産的な活動ではありません。さっさと就職して生産的な活動に精を出すほうが世の中のためです。 必勝法を文字どおり解釈すると、必ず勝つです。必ず通る面接なんてあるはずない、と反論がありそうです。それは
Recent entries 宣伝:C/C++のための開発補助ツール、GCCSenseをリリースしました matsuyama 2010-04-15 宣伝:Rubyのための開発補助ツール、RSenseをリリースしました matsuyama 2010-03-21 Emacsは死んだ matsuyama 2010-02-22 WebアプリケーションをiPhoneに対応させるための技術メモ matsuyama 2009-10-13 tokyo-emacs#x02の個人的レポート matsuyama 2009-09-07 Recent comments replica louis vuitton Anonymous User 2010-12-22 Re:テキスト入力中に補完候補を自動的に表示してくれる auto-complete.el をリリースしました Anonymous User 2010-12
以前から読もうと思っていましたがようやくレガシーコード改善ガイド (Object Oriented SELECTION)を読みました。読み始めて最初のうち、これは久しぶりに名著の予感と思いましたが、後半は自分の趣味と合わない部分が多々あったので、平均的には普通に良書という感想です。 ある意味、本書は奇書です。テストコードを書くためにコードの改悪も辞さない、という態度を貫きます。改悪は著者もわかっていて、次のように冒頭で断っています。 この仕事は外科手術のようなものです。切開し、内臓をかき分けていく間、美的判断は保留にしなければなりません。 小説には奇書と呼ばれる作品群があったりします(そして一部の熱狂的支持者がいます)。技術書で奇書と呼べるような本はあまりお目にかかりません。著者の技術レベルが低くて、内容がとんでもな意味での奇書は存在しますが、技術力のある著者があえて定石を外しまくる本書の
今日、オブジェクト指向について1時間ほど語りました。整理するため自分用に書いたメモを公開します。大まかな構成はメモどおりに話しましたが、メモに書いていないこともたくさん話していますし、書いていても話さなかったこともあります。 前提として自分自身のオブジェクト指向へのスタンスを書いておきます。 自分のプログラマとしてのキャリアとオブジェクト指向の隆盛の重なりを考えると客観的に見て自分はオブジェクト指向世代のプログラマなんだと思います。一方で、世間で過剰にもてはやされる技術には反発してきました。オブジェクト指向も例外ではありません。オブジェクト指向を否定はしませんが、金科玉条のように扱う人の前では、オブジェクト指向なんて技法のひとつに過ぎないと、冷たく突き放してきました。 ただここ数年、かつてに比べてオブジェクト指向の威光は下がっている気がします。関数型プログラミング支持者から、オブジェクト指
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
Emacsをちゃんと使いこなせるようになるためにはいくつかの大きな壁を越えなくてはなりません。今回説明するコピーアンドペーストは初心者がEmacsを使い初めて最初にぶつかる大きな壁の一つでしょう。一般的なエディタでは、マウスやキーボードで範囲を選択してCtrl+C(コピー)し適当な場所でCtrl+V(ペースト)という標準的な操作でコピーアンドペーストができます。そしてその動作は単純かつ明快で誰にでも簡単に理解できるものです。しかし、Emacsにおいてはそうはいかないのです。EmacsではCtrl+CやCtrl+Vといった標準的な操作は提供されておらず、そもそもクリップボードという概念も存在しません。クリップボードの代わりとしてkill-ringと呼ばれる(操作上)環状のデータ構造を使用してコピーアンドペーストを実現しますが、このkill-ringというのがクリップボードのような単純な構造で
Apacheのログに%T or %Dでリクエスト処理時間を載せることができます。%Tと%Dは内部的には同じ計算値で、単位が異なるだけです(%Tは秒、%Dはマイクロ秒)。 このリクエスト処理時間は、いつからいつまでの処理時間でしょうか。つまり計測時間の開始と終了はどのタイミングでしょうか。 終了はレスポンスデータをsend(2)し切ったタイミングです。 開始として思いつくのは次の3つのタイミングです。 listenキューに入ったタイミング(3wayハンドシェイクの最初のACKを受けたタイミング) accept(2)が返ったタイミング(3wayハンドシェイクの最後のACKを受けたタイミング) リクエストデータをrecv(2)する前 実はどれも間違いです。正解は、リクエストデータの1行目のリクエスト行を読み終わったタイミングです(ソースコードで言うと server/protocol.cのread
ご存知の人は多いと思いますが、来月の日本国際賞授賞式でケン・トンプソン(神)とデニス・リッチー(神)が来日予定でした。しかし授賞式が中止になりました。見に行く予定だったので神を拝む機会を逸しました。 隣のFさん(本人の名誉のため名前は伏せます)にこう話しかけました。 井上「ケン・トンプソンとデニス・リッチーが日本に来る予定だったのに、中止になってしまいました」 Fさんの答えはこうです。 Fさん「誰ですか、それ」 え… ショックでどうしていいかわかりません。とにかく逃げることにしました。 逃げる途中でIさん(本人の名誉のために名前を伏せます)に出会いました。まさかIさんも、そんなはずは…と思いながらも、ここで聞かなければ一生後悔すると思い、意を決して聞いてみました。 井上「ケン・トンプソンとデニス・リッチーは知っていますよね」 Iさん「誰ですか、それ」 もっと遠くへ逃げたいのですが、どこへ逃
あまり知られていませんが、アリエルは2012年向け新卒採用活動をしています。嘘をつく意味もないので嘘のはずもないですが、証拠のエン・ジャパンのページです。 少し前に開発志望の新卒向け会社説明会を行いました。その時に使ったプレゼン資料を公開します。今後、何度か説明会を行い、その度に少しずつ改訂しますが、骨子はそんなに変わりません。 アリエルはこんなに素晴らしい会社だと力説はしていません。慎み深い日本人だから、これもひとつの理由ですが、そもそもアリエルが良い会社かどうかは人によるだろうと思うからです。合う人もいれば合わない人もいます。説明会の話を聞いてアリエルが自分に合いそうだと思えば採用に応募してくれればいいですし、そう思わなければ無理に応募する必要はないと思います。この原則は新卒も中途も同じです。 言葉にすると、来たい人だけ来ればいいと高飛車な印象になるのが微妙ですが。 説明の後半、アリエ
今回はこのバッチモードでのEmacs Lispに焦点を当てて,テキストを処理するスクリプトやサーバーデーモンを書くためのテクニックを紹介したいと思います. ■■ バッチモードでの標準入出力 バッチモードでは一部の関数が標準入出力を扱うための関数に変化します.早速おきまりのスクリプトを書いてみましょう(リスト1). ------------------ <リスト1> hello.el (princ "Hello, world.\n") ------------------ princ関数は第一引数を標準出力に出力する関数です.このスクリプトを実行するにはターミナル上でEmacsを起動します(リスト2). ------------------ <リスト2> % emacs --script hello.el Loading subst-ksc... oading subst-gb2312...
Recent entries openSUSE 11.3 sato_t 2010-08-06 MandrivaLinux 2010 Spring sato_t 2010-07-14 私がプロジェクト管理を好きな訳 sato_t 2010-03-08 ありえるえりあ勉強会@五反田~テスト編~ 資料 sato_t 2010-02-02 いかにして問題をとくか sato_t 2009-12-20 オフィスの増床に伴い今月から同じビルの11Fに引っ越しました。静かで見晴らしがよくて快適ですが、席の都合で西日がきついので夏場はちょっとつらいかもしれません。それと、通勤時間が10秒ほど長くなるので朝ちょっと不安です。 最近はコードを書く量も減ってきて専らプロジェクト管理に注力しています。考えてみれば妙な話です。前の会社ではもっとコードを書きたかったのにプロジェクト管理の職務を強要され、結局それが嫌でア
約3年前に「 ソフトウェア開発のスケーラビリティ 」の記事を書きました。一番書きたかったことは、ある一定の開発期間を経たソフトウェアには次の2種類のタスクが残るという話です。 難しくて重要なタスク 簡単でどうでもいいタスク ソフトウェア開発に新しい人が来るたびに、これがジレンマになります。新しい人は、比較的簡単なバグ修正などの作業から入って、作業しながら全体像を把握するのが常套手段です。スキルがある人やベテランでも事情は同じです。自分の経験を振り返っても、新しいソフトウェアを目の前にした時は、手を動かしながら全体像を探っていくのが一番効率的だったと思います。 一方、どうでもいいバグは本当にどうでもいいことも多々あります。開発期間の長いプロジェクトの場合、数年放置されているようなバグも普通に存在します。このようなバグはそもそも修正が必要なのかどうかすら怪しいものがあります。修正による挙動の変
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ
anything.el って何? 「open anything」できるようになるらしいのですが、少し抽象的で分かりづらいと思います。簡単に言えば、複数の機能をひとつのインターフェースに統合してしまうということです。例えば、 M-x anything RET emacs と入力すれば、 find-file の候補として ~/.emacs 、 Info の候補として Emacs などが列挙され、さらに絞りこんだり、十字キーで直接選択して実際の機能を利用したりします。 動作原理 antyhing は入力されたパターンと anything-sources に定義されている複数の機能を使ってインクリメンタルに候補を生成します。つまり文字を入力してパターンを更新するたびに新しい候補が出てくるのです。 anything-sources は基本的に名前と候補関数のリストで構成されており、具体的な機能は候補
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く