タグ

ブックマーク / www.aoky.net (29)

  • ホワイの(感動的)Rubyガイド

    このはホワイ・ザ・ラッキースティフ(why the lucky stiff)により愛情を込めて書かれた。 ~ 目次 ~ このについて コンニチハ、Ruby このを開く 犬の話 赤い太陽が昇る はどのように始まるか (漫画のキツネと学ぶ)短時間の(そして願わくは辛くない)Rubyコース 言語と、言語で意味しているもの 品詞私がまだあなたのことを十分子供扱いして いなかったなら あなたの成長を促すための例題 そして短い旅はそっとクッション停止する 浮いている小さなコードの葉っぱ アンブローズにおけるステータスシンボルとしての葉っぱ 小さくてほとんど価値のないもの 妄想をつなぎ合わせる ブロックの奇跡 ルールを作るものと夢を生きるもの これは権利を奪われた人のため コンピュータのある城 娘のオルガン教師の話のつづき ヤギは映画を全部見たがっている 盗まれたくじ主 ルールを作る者たち 夢を

  • プログラミングの6大10項目リスト

    Jeff Atwood / 青木靖 訳 2007年3月22日 以下に私の選ぶプログラミングの6大10項目リストを挙げておく。取り上げた順序には特に意味はない。このエントリを簡潔なものにしておきたいので、それぞれの項目は短い要約を引用するに留める。興味を引くものがあれば、ぜひリンクをたどってオリジナルの作者の考えについてもっと詳しく読むことをお勧めする。 [ 訳注: 要約だけで意味が取りにくいものに簡単な説明をつけた。] ジェラルド・ワインバーグの「エゴレスプログラミングの十戒」 自分が誤りを犯すということを理解し、受け入れること 。 自分と自分のコードは別物である。 どんなに「空手」を学ぼうと、いつでもあなたよりもっと詳しい人間がいる。 相談せずにコードの書き直 しをしない。 自分より無知な人に対しても尊敬と敬意と忍耐を持って接すること。 世界で唯一変わらないのは変わるということだけ。 唯

  • どうしてプログラマに・・・プログラムが書けないのか?

    Jeff Atwood / 青木靖 訳 2007年2月26日 レジナルド・ブレイスウェイトが書いていることを読んだとき、私はそんなわけないだろうと思っていた。 私と同様、この著者は、プログラミングの仕事への応募者200人中199人はコードがまったく書けないということで苦労している。繰り返すが、彼らはどんなコードも書けないのだ。 彼が引用している著者というのはイムランのことで、彼は単純なプログラムも書けないプログラマをたくさん追い払っているということだ。 かなりの試行錯誤の末に、コードを書こうともがいている人たちというのは、単に大きな問題に対して苦労しているのではないことがわかった。やや小さな問題(連結リストを実装するというような)に対して苦労するということでさえない。彼らはまったくちっぽけな問題に苦労しているのだ。 それで、そういった類の開発者を見分けるための質問を作り始め、私が「Fizz

  • ソフトウェア開発者のための推薦図書

    Code Complete 2 [ Code Complete第2版―完全なプログラミングを目指して (上・下) ] スティーブ・マコネルのCode Completeはソフトウェア開発者のための「楽しい料理だ。このを読むということは、自分の仕事を楽しんでいるということであり、自分のすることに真剣であるということであり、もっと向上したいと思っているということなのだ。Code Completeの中で、スティーブは平均的なプログラマが読む 技術書は年に1冊に満たないと指摘している。このを読んでいるという時点で、あなたはおそらく周りにいる開発者たちの90%と違う行動を取っていることになる。それもいい方向にだ。 私はこのがすごく好きで、ここから自分のWebサイトの名前(Coding Horror)を取ったくらいだ。このではやるべきでない悪い例には"coding horror"アイコンで印

  • 天才になるのに遅すぎるということはない

    Kathy Sierra / 青木靖 訳 2006年9月27日 Webやテクノロジーの世界では(その他の多くの分野でも)、大きなアイデアというのは若い人から生まれるようだ。弱冠27歳にして、Ruby on Railsフレームワークの作者デビッド・ハイネマイヤ・ハンソンは世界を変え、Rubyに存在 意義を与えた。それにFlickrを作ったカタリナとスチュワートがいる。そして言うまでもなく、私がこの記事を書いているブログサービスの 生みの親、Six Apartのベンとミナがいる。 ラリーとサーゲイ、Googleの裏にいる「男の子」たち。ジェフ・ベゾスがAmazonを設立したのは、ちょうど30歳のときだった。O'Reillyの最初のFoo Campで、バート†をゲームで苦しめていた相手の若い子がBitTorrentの作者であるブラム・コーエンだったことを後で知った(彼はTime誌の最も影響力のあ

  • スタートアップを殺す18の誤り

    Paul Graham / 青木靖 訳 2006年10月 最近やった講演の後のQ&Aで、スタートアップを失敗させるのは何かという質問をした人がいた。その場に立ったまま何秒か呆然としていた後、それが一種のひっかけ問題なことに気付いた。これはスタートアップを成功させるのは何かという質問と等価なのだ——失敗の原因となることをすべて避けるようにすれば、成功することができる——そしてこれはその場で答えるにはあまりに大きな問だった。 後になって、私はこの問題をそういう方向から見るのも有効かもしれないと思うようになった。すべきでないことをすべて並べたリストがあれば、それをただ逆にするだけで成功へのレシピに変えることができる。そしてこの形のリストの方が、実践する上で使いやすいかもしれない。やらなければならないことをいつも頭に入れておくよりは、何かやってはいけないことをしているときにそれと気付くというほうが

  • 頭の中にプログラムを入れる

    Paul Graham / 青木靖 訳 2007年8月 いいプログラマは、自分のコードに集中しているとき、それを頭の中に保持しておくことができる。数学者が取り組んでいる問題を頭の中に入れているのといっしょだ。数学者は学校で子供たちが習っているように、紙の上で問題の解いているわけではない。彼らは多くの部分を頭の中でやっているのだ。問題の領域をよく把握しようと努めることで、普通の人が記憶にある育った家の中を歩き回れるように、数学者は頭の中で問題空間を歩き回ることができる。最高の状態で行われるプログラミングもそうだ。プログラムの全体を頭の中に入れたなら、それを思い通りに操れるようになる。 これはプロジェクトのはじめにおいては特に価値がある。それはプログラムを作り始めるときに最も重要なことが、やっていることを変えられるということだからだ。単に問題の解き方を変えるという ことではなく、解いている問題

  • Fine Software Writings

    最近のもの 目標でなく恐怖を明確にすべき理由 (Tim Ferriss) 我々が築き、掘っている未来 (Elon Musk) 表計算ソフト誕生の話 (Dan Bricklin) Linuxの背後にある精神 (Linus Torvalds) 先延ばし魔の頭の中はどうなっているか (Tim Urban) 好きになる仕事はどうしたら見つかるのか (Scott Dinsmore) 人間に新たな感覚を作り出すことは可能か? (David Eagleman) 人工知能が人間より高い知性を持つようになったとき何が起きるか? (Nick Bostrom) 厄介な問題を解決したい? ではトーストの作り方を説明してください (Tom Wujec) 子供の夢を奪う学校というシステム (Seth Godin) 彼らがいなくなってしまう前に (Jimmy Nelson) 頭良さそうにTED風プレゼンをする方法 (W

  • スタートアップを始めない理由が間違っている理由

    Paul Graham / 青木靖 訳 2007年3月 (このエッセイは2007 Startup SchoolとBerkeley CSUAで行った講演を元にしている。) 私たちはY Combinatorを十分長くやってきたので、成功率について話せるくらいデータがたまった。最初に投資をした2005年夏のグループには8つのスタートアップがあった。現在ではそのうちの少なくとも4つは成功しているようだ。この中の3つはすでに買収されており、Redditは2つの会社、RedditとInfogamiが合併したものだ。3番目のやつについてはまだ買収先を話せない。最後の1つはLooptで、これは非常にうまくいっており、その気があれば10分以内に買収先を見つけられるだろう。 だから最初の夏の創業者たちのうちの半分くらいは、2年もしないで金持ちになったことになる。少なくとも彼らの基準で言えば。(金持ちになってみ

  • いいアジャイルと悪いアジャイル

    スクラムはラグビーにおいて最も危険な段階であり、それというのも、潰れたり不適切なかみ合い方をすると、前列のプレーヤーが怪我をしたり、首の骨を折る危険すらあるからだ。—Wikipedia 私が子供の頃には、コレステロールは体に悪いものだった。これは覚えやすかった。脂肪は悪い。コレステロールは悪い。塩分は悪い。みんな悪い。しかし近頃では、コレステロールが「いい」コレステロールと「悪い」コレステロールに分かれている。私たちがこの2つをどうにかして見分けられるとでもいうように。そしてその切り替わりは奇妙なものだった。FDAが突然プレスリリースを発表して、殺鼠剤には2種類、いい殺鼠剤と悪い殺鼠剤があり、いい方はたくさん摂って悪い方は摂ってはならず、そして決して2つを混ぜたりしてはいけないのだと言ったかのようだった。 一年くらい前まで、私はいわゆる「アジャイル」プログラミングに対して、ごく一次元的な見

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • スタートアップの始め方

    Paul Graham / 青木靖 訳 2005年3月 (このエッセイはハーバードコンピュータ協会での講演を元にしている。) 成功するスタートアップを作るには3つのことが必要になる。優れた人たちと始めること、顧客が実際に欲しがるものを作ること、可能な限りわずかの金しか使わないこと。失敗するスタートアップのほとんどは、これらのうちのどれかをやり損ねたために失敗している。この3つをちゃんとやったスタートアップはたぶん成功するだろう。 そしてこれは、考えてみればわくわくさせられることだ。何しろ3つとも実行可能なことだからだ。困難ではあるが、実行可能だ。そしてスタートアップが成功すれば、創業者は通常金持ちになる。それはつまり金持ちになるということもまた、実行可能ということだ。困難ではあるが、実行可能なのだ。 スタートアップについて伝えたいメッセージが1つあるとしたら、これがそうだ。スタートアップに

  • プログラマの権利宣言

    Jeff Atwood / 青木靖 訳 2006年8月24日 企業は開発者に給与として60-100kドル支払いながら、ひどい作業環境と汚い使い古しのハードウェアによって彼らを損なっている。信じられない話だ。そんなのはビジネス的に理屈に合わない。ところがそういうのをどこでも目にする。ソフトウェア開発者が成功するために不可欠なものを与えていな い企業がいかに多いかは驚くばかりだ。 そこでプログラマの権利宣言を採択し、成功に不可欠な基的なことを否定する企業からプログラマの権利を守ることを提案する。 すべてのプログラマは2つのモニタを持つ権利を有する 下落する液晶ディスプレイの価格と、遍く存在するデュアル出力ビデオカードのことを考えるなら、開発者を1つのディスプレイに制限するのはばかげた話だ。ディスプレイを2つにすることによって得られる生産性の利益については、今では十分に説明されている。開発者の

  • 顧客の機能要求に折れないこと!

    Kathy Sierra /青木靖 訳 2006年5月10日 製品やサービスが成功するほど、ユーザの要望を受け入れるようにというプレッシャーは強くなる。ユーザが多くなるほど、要望の範囲は広がっていく。あるユーザにとっての 「それがないんだったら買わない」機能が、別のユーザには取引をぶちこわすものになる。そしてあなたの製品やサービスが人気になるほど、そういった要望は、要求と最後通牒へと変わっていき、ついには痛烈な批判になる。 私たちになしえる最悪のことは、それに折れるということだ。しかし要望/要求や批判が強く、怒りを帯びたものになるほど、誘惑に抵抗するのは難しくなる——「この1個だけ付け加えれば・・・きっとあの連中もおとなしくなってくれる」 しかしあらゆる色を1つに混ぜ合わせて泥色のしみを作るなら、誰も私たちのすることを嫌わなくなるが、同時に誰も喜びも、興奮も、魅了もされなくなる。そうして私

    顧客の機能要求に折れないこと!
  • デモではものができあがっているように見せない

    Kathy Sierra / 青木靖 訳 2006年12月27日 (アルファ版のような)開発中のものを私たちが世間や、クライアントや、ボスに見せるときには・・・彼らの期待のレベルを設定することになる。これは3通りの方法でやることができる。磨き上げられたモックアップで幻惑するか、プロジェクトの現状に合ったものを見せるか、ほとんどできていないものを見せながら順調に進んでいるから「信用しろ」と言っていら立たせるかだ。 結論を言うなら: どれくらい「できている」ように見えるかは、実際どれくらい「できている」かに合わせるべきだ。 ソフトウェア開発者はみんなそのキャリアにおいてこのことを何度も思い知ることになる。しかしテクニカルライターもまた、デスクトップパブリッシングツールによって同様の問題に直面する——フォントやレイアウトが完璧に仕上げられたドラフトを誰かに見せるなら、その人はあなたが考えるよりも

  • 失敗した結婚みたいな企業が多すぎる

    Kathy Sierra / 青木靖 訳 2007年2月24日 いい結婚生活のための秘訣が何かというと・・・変わらないということだ。言い換えると、デートしていた頃と同じ人間でいつづけるということだ。関心を払うのをやめないこと。優しくするのをやめないこと。50ポンド太ったりしないこと。いちゃいちゃするのをやめないこと。情熱的でありつづけること。セクシーでいつづけること。気配りするのをやめないこと。電話に応えること。残念なことに、 企業というのは多くの場合、ろうそくを灯したディナーで上等のワインを開け、そして「君のことを話そう」と言ってくれるのは、取引が済むまでのことで、ひとたび彼らがあなたを手に入れたなら(つまり、あなたが顧客となったなら)、あなたはその関係がひっかけだったことに気付く。 これは大きな間違いだ。こんなのは個人的な関係だったら理解できないことだし、企業と顧客の関係であっても理解

  • 私のような仕事につく方法

    Aaron Swartz / 青木靖 訳 これはカリカット工科大学で行われたTathva 2007カンファレンスでの講演のために書いたものだ(補足)。 アメリカの作家であるカート・ヴォネガットは、講演のタイトルをいつも「私のような仕事につく方法」にしていた。そして内容はその時々で好きなことを話していた。私はどちらかというとその逆の状況にある。何でも好きなことを話していいと言われたのだが、自分に話せる一番面白い話は「インターネットの将来」とか「マスコラボレーションの力」みたいなご大層なことではなく、「私のような仕事につく方法」だろうと思ったのだ。 それでは、私はどうやって自分の仕事を得られたのか? 疑いなく、第一のステップはしかるべき遺伝子を選択するということだ。私は白人男性アメリカ人として生まれた。家はかなり裕福で、父はコンピュータ業界で働いていた。残念ながら、これらのことを自分で選ぶため

  • あなたの知っていることはすべて5年以内に陳腐化する

    Jeff Atwood / 青木靖 訳 2006年3月20日 ソフトウェア開発で奇妙なことが何かというと、知識が陳腐化するのがいかに早いかということだ。ダニエル・アップルマンはこれをルイス・キャロルの「鏡の国のアリス」の一場面に喩えたが、この状況がすごくよく表されている。 「さあさあ」女王が叫んだ。「もっと速く、もっと速く!」 2人はあまりに速く走ったので、そのうち空中をかすめ飛んで足がほとんど地面に触れないくらいになった。アリスは不意にすっかり疲れ切って立ち止まると、息切れとめまいを起こして地面に座り込んでしまった。 女王はアリスを木にもたせかけて立たせると、優しく言った。「少し休むといい」 アリスは周りを見回して驚いた。「あら、ずっとこの木の下にいたみたい! みんな元のままだわ!」 「もちろん元のままだとも」と女王が言った。「どうなると思ったの?」 「だって、私たちの国では」アリスはま

  • 理解することが書き直すことを意味するとき

    Jeff Atwood / 青木靖 訳 2006年9月18日 開発者に時間をどう使っているか聞いたなら、彼らはほとんどの時間コードを書いていると答えるだろう。 しかし、ソフトウェア開発者が時間を実際どう使っているか観察したなら、ほとんどの時間をコードの理解に使っていることがわかる。 ピーター・ハラムがこのことについて説明している。 どうしてコードを新規に書くより5倍もの時間をコードの修正に使っているのか? それは新規のコードはほとんどすぐに古くなるからだ。何か新しくコードを書く。コーヒーを飲んで一服する。すると突如として、コードは古いコードになっている。できたてのコードはせいぜい初期のデザインしか反映していないが、デザインの多くの部分は前もって現われるものではない。開発プロジェクトの多く が反復的開発手法を使っている。デザイン、コーディング、テスト、繰り返し。たくさんの繰り返し。すべてが新

  • バベル案内

    Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、JavaPerl