ブックマーク / nishiohirokazu.hatenadiary.org (66)

  • レジ「972円です」客、支払う。レジ「104円のお返しです!」 - 西尾泰和のはてなダイアリー

    ビジネス街のレストランで972円の昼ごはんをべている僕。聞くとはなしにレジのやり取りが聞こえていくる。 レジ「972円です」 レジ「104円のお返しです!」 ……えっ、何が起きたんだ? 出題編 しばらく考えて、客もレジも間違ったコインを渡したり、渡さなくて良い余計なコインを渡したりしていなくても成立しうるストーリーを思いついた。これを考えるのは結構面白かったので、ブログ記事にすることにした。(間違いを許容すると別解がある) ヒント編 僕の思考の過程を追いながら一歩ずつ回答に近づいていこう。 : : : 僕「100円がお釣りとして返ってくるということは、客は100円玉は出していないということだろう」 : : : 僕「仮に客が1000円を出していたら、お釣りは28円だ」 : : : 僕「客が104円のお釣りを受け取るには、1076円払う必要がある。76円払うには1円玉を出す必要があり、お釣り

    レジ「972円です」客、支払う。レジ「104円のお返しです!」 - 西尾泰和のはてなダイアリー
  • TensorFlow Playgroundはニューラルネットを理解するのにおススメ - 西尾泰和のはてなダイアリー

    ネットワークの重みや各ニューロンがどういう入力の時に発火するのかが、学習していく過程で各時刻可視化されてとても良い教材です。 http://playground.tensorflow.org/ うずまきのデータセットに関して「中間層が1層しかないとうずまき(線形非分離な問題)は解けない」という誤解があるようなので、まずは1層でできるという絵を紹介。なお僕のタイムライン上では id:a2c が僕より先に気付いていたことを名誉のために言及しておきます。 で、じゃあよく言われる「線形非分離な問題が解けない」ってのはどういうことか。それはこんな問題設定。入力に適当な係数を掛けて足し合わせただけでは適切な境界を作ることができません。 こういうケースでは中間層を追加すると、中間層が入力の非線形な組み合わせを担当してくれるおかげで解けなかった問題が解けるようになります。 1つ目のデータセットでは特徴量の

    TensorFlow Playgroundはニューラルネットを理解するのにおススメ - 西尾泰和のはてなダイアリー
  • 「正規表現技術入門」はいい本だ - 西尾泰和のはてなダイアリー

    著者の新屋さんから技術評論社の「正規表現技術入門」を頂きました。 これはいいですね。特に第2章で語られている、正規表現がどうやって生まれてきたかという話がよいです。僕も拙著「コーディングを支える技術」の続編に向けて、正規表現の歴史を書こうとしたことがあったのですが、僕が書こうと思っていたもの以上によいものに仕上がっています。しかも20ページとコンパクトにまとまってて、もう、僕がこれに関して書く必要はないなぁ、とうれしいようなさみしいような。パイプとgrepの関係は知らなかった、面白い。 第1章で60ページぐらいで正規表現の基的なことをおさえてくれているのもよいところです。正規表現を使う必要のあるプログラマはみんな第1章だけでも目を通しておくとよいのではないかな。 正規表現がフォーマルにはどう定義されているものなのか。この話題は、コンピュータサイエンスを大学で学んだ人にとっては常識の範疇

    「正規表現技術入門」はいい本だ - 西尾泰和のはてなダイアリー
  • 僕は結城さんのことが好きなんだなぁ - 西尾泰和のはてなダイアリー

    僕は結城浩さんのことが好きなんだなぁ。彼の書いた「文章を書く心がけ」は自分が執筆をするときにも何度もお世話になった。彼の日記などに時々かいま見える「読者によりよいものを届けよう」という真摯な態度には好感を感じる。以前の僕は宗教と名の付くものが全て嫌いだったのだが、敬虔なクリスチャンである彼の日記を読んでいるうちに、その嫌悪感が軽減した。結局のところ、どんな集団にもいい人もいればわるい人もいるということなんだ。 では、わるい人に対してどう対処するのがよいのか。1601年生まれの哲学者バルタザール・グラシアンはこう言っている。 人の中傷は無視せよ。黙殺で答えることが賢明だ。身の潔白を明かそうとしてペンの力に訴えてはいけない。書かれたものはいつまでも残るから敵を懲らしめるどころかその名を留める手助けをしている。忘却に勝る復讐はない。 なるほどね。400年も経つけども、人間の社会はあんまり変わって

    僕は結城さんのことが好きなんだなぁ - 西尾泰和のはてなダイアリー
  • Facebookに書き続けることは損失なのではと思い始めた - 西尾泰和のはてなダイアリー

    ブログの更新頻度が落ちてるのは、Facebookに書いた方が有益なフィードバックの頻度が高くて、ついついそっちに書いてしまうから。 そうやってFacebookにばかり書いていると「あれ、この前Facebookに認知心理学が生まれてきた流れについて書いたと思うんだが、あれどこだったかな、参考にしたいのだが…」なんてことが起こるようになってきた。以前であれば、だいたいそういうのは自分のブログに書いているので、Googleに行って「西尾泰和 認知心理学」とかで検索すればすぐ見つかった。しかしFacebookに書いたものはそういうわけにはいかない。 で、発掘するのにすごく時間がかかったり、発掘できなくてあきらめてしまったりする。これってものすごい損失なのではないか?クロールして手元に保存して検索できるようにする必要があるのではないか? そしてそのクロールもまた手軽ではない。エクスポートの機能はある

    Facebookに書き続けることは損失なのではと思い始めた - 西尾泰和のはてなダイアリー
  • アイデアの出し方講座 - 西尾泰和のはてなダイアリー

    昨年、サイボウズの中でアイデアソンをやろうという話になった時に書いた、アイデアの出し方についての記事を転載します。特に秘匿すべき情報はないですし。サイボウズ社内にかぎらず有用だと思うので。 アイデアは新規なものでなければならない? 「アイデアが新規なものでなくてもよいのか」という質問がありましたが、僕は「よい」と思います。理由は2つあります。 1つ目は「新規性より有用性」という点。我々は研究所じゃなくて営利企業なので、新規のアイデアであることよりも、サイボウズと顧客にとって有用であることが重要です。 2つ目は「ハードル上げすぎ」という点。アイデアは最初から有用な完成形で生まれてくるのではなく、アイデアのかけらを集めてワイワイやっていくうちに組み合わさったり磨かれたりして徐々に育つものです。 アイデアの出し方講座#1 「アイデアソンのゴールはアイデアを発表することです」と言われても、「アイデ

    アイデアの出し方講座 - 西尾泰和のはてなダイアリー
  • 灘校土曜講座「学び方のデザイン」の講義資料を公開しました - 西尾泰和のはてなダイアリー

    日、灘校土曜講座で行った講演「学び方のデザイン〜盲点に気づくことから始まる学びのプロセス」の講義資料を公開しました。 http://www.slideshare.net/nishio/ss-40713032 この講義は京都大学サマーデザインスクールで3日間掛けて行ったワークショップ「学び方のデザイン〜盲点を見つけよう」の内容を1時間に圧縮したものになっています。より詳しく知りたい方はこちらをどうぞ: http://nhiro.org/kuds2014/ 取り急ぎ、使用したスライドをそのまま公開しました。 追記: 加筆バージョン 口頭で喋った内容を書き足したバージョンを公開しました。こちらの方が話の流れはわかりやすいかと思いますが、字は細かくてたくさんあります。 下では頂いた質問に少しずつ答えていっています。 Q: 小説の全体像を簡単に見渡せると、を読む楽しみが減るのでは? そうですね、

    灘校土曜講座「学び方のデザイン」の講義資料を公開しました - 西尾泰和のはてなダイアリー
  • 「文字列を文字の列とみなす単純化」ってどういうこと?解説編 - 西尾泰和のはてなダイアリー

    先日 @shyouhei さんのTweetに反応して文字列が文字の列かどうかが言語によって異なるという話をTweetしました。 shyouheiさんの投稿: PythonはどうかしらんがRubyの設計思想は「世の中はシンプルじゃない」だからな。文字列を文字の列とみなす発想その物がすでにRubyからすると過度に世界を単純化しすぎている。 https://twitter.com/shyouhei/status/528106973565165568 もうちょっと言っておくと数値計算で勝ち目のないRubyは文字列処理にめっちゃ注力してるんで。文字列処理こそがRubyの主戦場。そこでRubyが文字列をあえてカタマリで扱ってることにはそれなりの理由というものがある。つまり分解しようとするほうが困りごとが増える。IVSとか。 https://twitter.com/shyouhei/status/528

    「文字列を文字の列とみなす単純化」ってどういうこと?解説編 - 西尾泰和のはてなダイアリー
  • 例えば「写経」という言葉を避けてみる。 - 西尾泰和のはてなダイアリー

    サイボウズ式「続・エンジニアの学び方」の第5回が公開されました。この回では、小崎さんが「どうしてコードを読もうと思ったのか」と、コードを読むために新しい言語を学ばなければいけない場合に「どうやって学ぶか」を聞きました。 ところで、小崎さんは自分の学び方を「写経」と読んでいて、僕もこの用語は自然に理解できるのですが、公開後のTwitterの反応を見ていると「写経と呼ぶことが嫌」もしくは「仏教での写経の印象で、内容を勘違いしている」という事例がいくつも見つかりました。 プログラミングの学習法としての「写経」という言葉は色々な書籍で使用されています。例えば「100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊」の70ページでは「まず写経することから始めた」というエピソードが紹介されています。また「改訂新版 コンピュータの名著・古典100冊」の99ページでは「技術書の内容にそって深い

    例えば「写経」という言葉を避けてみる。 - 西尾泰和のはてなダイアリー
  • 「word2vecによる自然言語処理」を出版しました - 西尾泰和のはてなダイアリー

    オライリー・ジャパンから「word2vecによる自然言語処理」という電子書籍を出版しました。予定外のドタバタがあってブログで紹介するのが遅くなってしまいましたが、その間にオライリーのEbook Store Sales Rankingでは1位になっていました。 word2vecは2013年に論文が出たばかりの新しい技術です。色々な方がブログで取り上げていて、興味をもった方も多いと思います。知らない方のためにいくつかリンクを紹介しておきます: https://code.google.com/p/word2vec/ で少し遊んでみた。いわゆる deep learning で… Deep-learningはラテン語の動詞活用を学習できるか? Can deep-learning learn latin conjugation? - naoya_t@hatenablog 自然言語処理をなにも知らない私

    「word2vecによる自然言語処理」を出版しました - 西尾泰和のはてなダイアリー
  • 「エンジニアの学び方」を執筆しました。 - 西尾泰和のはてなダイアリー

    4月24日発売のWEB+DB PRESS Vol.80に、特別企画として「エンジニアの学び方」という記事を書きました。 Vol.80自体は4月発売ということもあって「新人さん大歓迎!」と銘打っています。「エンジニアの学び方」もこの4月に就職・進学をした人を想定読者にしています。ですが、きっとその他の人にも役に立つ内容だと思います。 この記事を書くきっかけとなったのは、ベストセラーにもなった拙著「コーディングを支える技術」のコラムです。余白があるからコラムを書けと言われて、学び方についてのいくつかのコラムを書きました。 p.23「理解を確認するためにはまずアウトプット」 p.26「何を学べばよいかがわからない理由」 p.79「具体的な知識と抽象的な知識」 p.80「噛み砕く」 p.82「必要なところからかじる」 p.134「おおまかにつかんで徐々に詳細化する」 p.235「端から順番に写経す

    「エンジニアの学び方」を執筆しました。 - 西尾泰和のはてなダイアリー
  • コード進行を五度圏で可視化してみた - 西尾泰和のはてなダイアリー

    Songleの外部埋め込みプレイヤーがJavaScriptでカスタマイズできるので、それを利用して五度圏の可視化をするデモを作ってみました。 スピッツの「ロビンソン」 中島みゆきの「地上の星」 きゃりーぱみゅぱみゅの「ファッションモンスター」 ロビンソンはコードの動きがわりとおとなしいですね。一方ファッションモンスターはGm Fmを交互にピコピコ動いてダンスを見ているような楽しさが。 Songleは音楽の理解を支援するサービスで、楽曲からコード進行などの情報を抽出し、可視化したり、コード進行を強調して再生したりしてくれます。詳しくはSongleのサイトの解説をごらんください。外部埋め込みプレイヤーを使うと、JavaScriptからそのコードの情報が取れるようになるので、以前から興味のあった五度圏での可視化を試してみました。100行未満のソースコードで実現できてとても手軽でした。このデモのソ

    コード進行を五度圏で可視化してみた - 西尾泰和のはてなダイアリー
  • Qiitaの話を聞いている - 西尾泰和のはてなダイアリー

    Qiitaとブログの違いがわからないと思ってたがだいぶ違うってことがわかった ブログでは記事に間違いがあった時にコメントで指摘して著者が修正するしかないが、Qiitaではプルリクエストを投げられる(投げてくれるかどうかわからないけど) 間違いがあって修正した時に、その記事を「ストック」している人に変更通知を飛ばすことができる Kobitoってアプリがあってローカルでリアルタイムmarkdownプレビュー Kobitoなら画像のアップロードもドラッグドロップでよい、Gistでは面倒 Emacsで編集してKobitoでリアルタイムプレビューも可 投稿データをJSONでダウンロードできる、他人のも テンプレートを作れるので社内Wiki的に同じフォーマットで複数の人が書く場合に揃えるのが楽 コメントを書いたりするのにgithubやQiitaのアカウントが必要なので非エンジニア避けになる 外に見えて

    Qiitaの話を聞いている - 西尾泰和のはてなダイアリー
  • 「キャリア戦略論 - 人・生き方・働き方の多様性」講義資料を公開しました - 西尾泰和のはてなダイアリー

    10月19日に灘校土曜講義にて、キャリア戦略に関して多様性にフォーカスして1時間半の講義をしました。講義資料を一部公開します。 参加者のみなさんがアンケートに書いてくれた感想は、全部目を通しました。一点、僕がうまく伝えられてなかったらしきところがあるのでここで補足します。 「マジック・ザ・ギャザリング」と「プログラミング」のどちらがよいか 「マジック・ザ・ギャザリングに時間をさくよりプログラミングを学ぶべきという趣旨か?」という質問がありました。いいえ、違います。 中学高校時代の時間を投資する対象として「マジック・ザ・ギャザリング」(MtG)が「プログラミング」よりも劣ると主張したようなとらえられ方をしてしまったようですが、そう主張したいわけではありません。僕がプログラミングに時間を投資したのは「将来役に立つ」とおもったからではなく、単にそれが楽しかったからです。MtG投資している人も、

    「キャリア戦略論 - 人・生き方・働き方の多様性」講義資料を公開しました - 西尾泰和のはてなダイアリー
  • 量子将棋が面白い - 西尾泰和のはてなダイアリー

    量子将棋というゲームが遊べるようになったということで、さっそくプレイしてみた。ルールは簡単に言うと、すべての駒は量子的な重ね合わせの状態にあり、どう動かしたかによって駒の状態が収束する。王将に収束した駒を取れば勝ち。(追記: ルールの解説書きました: 量子将棋 Q&A) 2勝2敗で結構面白かったので流れ去ってアクセスできなくなる前に感想をメモ。 1回目(勝ち) 棋譜: http://shogitter.com/kifu/884 僕の戦略 駒の種別が確定すれば取れる選択肢が減る。ということは必要がない限り駒は動かないほうが良い。動かさなければいけないのであれば歩の振りをするのが一番可能性が狭まらない。 王将に確定した駒を取れば勝ちなのであれば、相手の「王将かもしれない駒」をどんどん取って行って可能性を狭めるべき。 感想 駒の上にマウスポインタを置くと可能性のある駒の種類が出てくる 飛車を取る

    量子将棋が面白い - 西尾泰和のはてなダイアリー
  • Re: なぜ国内でPerlが急速に萎んだのか - 西尾泰和のはてなダイアリー

    Python使いとしては「なぜ国内でPerlが急速に萎んだのか」について一言ツッコみたいところがあります。 >遂にPerlにとどめを刺したのはPythonである。守備範囲は当然ながらPerlと駄々被りで えっ、PerlPythonの守備範囲がだだかぶりって、著者の観測しているそれぞれの言語の「守備範囲」ってどんだけ狭いんでしょう? まあそんな重箱の隅をつつくのはやめておきましょう。このエントリーには結論の文章(の一部)はとても素晴らしいです。 >10年でここまで時代は変わる。今のメインテクノロジーも明日は我が身だ。 >変化の速い時代に生きる我々に必要なのは質を学ぶ事だ。 >もっと10年20年たっても色あせない情報工学を身につけなければならない。 そう、そこで拙著「コーディングを支える技術」のようなが必要になるわけです!(宣伝) ちなみに僕自身は仕事でも趣味でもPerlは使っていません

    Re: なぜ国内でPerlが急速に萎んだのか - 西尾泰和のはてなダイアリー
  • やる気を出すシステム5000ユーザ突破記念エントリー - 西尾泰和のはてなダイアリー

    ひっそりと運用していた質問に答えるとやる気を出すためのアドバイスをしてくれるシステムがつい先日で5000ユーザーを突破しました。このシステムのおかげでやる気が出たという方も2000人いるようで、作ったかいがあったというものです。 ところでこのシステムは、用意した回答の中から適切なものが見つけられなかった場合に「なぜやる気がでないのだと思いますか?」と自由記述で問いかけて、あらためて自分の気持ちを見つめてもらうというのをやっています。これだけデータが集まってくると、この自由記述の中にも共通のパターンが見えてきます。そこで、5000ユーザ突破記念ということでいくつかピックアップして解説します。 自虐的レッテル貼り 「なぜやる気がでないのだと思いますか?」という質問に対して「ぐーたらだから」「クズだから」「怠け者だから」「ダメ人間だから」「いつまでたっても一人前の仕事ができないから」という種の回

    やる気を出すシステム5000ユーザ突破記念エントリー - 西尾泰和のはてなダイアリー
  • 再帰呼び出しを再帰呼び出しなしで実現 - 西尾泰和のはてなダイアリー

    拙著「コーディングを支える技術」の第5章「関数」では、P.50で「再帰呼び出しを使っているプログラムは、再帰呼び出しを使わなくても書くことができる」と説明しました。この件に関してここで補足記事として解説することにしました。 P.53の簡単な再帰呼び出しの例(total関数)をターゲットにします。これは空行とコメントを除くと8行の簡単な例です。このコードから、挙動を変えずに再帰呼び出しを取り除いてみましょう。腕に自身のある人はは続きを読む前に自分で実装してみるとよいでしょう。 チャレンジする人向けの注意点 今回の対象では再帰呼び出しをしながら行う処理が「要素の足し算」でした。足し算は順番を入れ替えても結果が同じです。なので、うっかり計算の順番を変えてしまっても、結果からは間違いに気付けません。例えば深さ優先探索を幅優先探索に変えてしまうと、[1, [2, 3], 4]が来の1, 2, 3,

    再帰呼び出しを再帰呼び出しなしで実現 - 西尾泰和のはてなダイアリー
  • 何をどう学ぶか? - 西尾泰和のはてなダイアリー

    何をどう学ぶか? from nishio 「コーディングを支える技術」を執筆している時に考えていたことをスライドにまとめました。

    何をどう学ぶか? - 西尾泰和のはてなダイアリー
  • プログラミング学習手段としての写経について - 西尾泰和のはてなダイアリー

    あるブログが「写経には効果がない」という趣旨のことを書いていて「何を言ってるんだ?」と思いじっくり読んでみたら、彼の言う写経は「動くとわかってる10000行のコードを何も思考せず作業として書き写すこと」を指しているようだった。「そんなわけないじゃん」と笑ってから「もしかして世の中は写経をそういう捉えてるのか?」と不安になった。 写経は自分の中にモデルを作るための行動で、他のもっと効率のよい方法と比べた場合の利点は「自分の中にモデルがなくても使える」点に尽きる。全く知識ゼロでいきなり「自分で考えて書く」ができる人はいない。考えるための材料となる知識をまず脳内に運び込む、それが写経だ。 写経の過程で大事なことは以下の3つだ。 1: 早く学びが得られるように、なるべく小さいコードで実験し、すぐに結果を確認する。 2: 疑問に思ったこと、考えたこと、気づいたことを書き留める。どうしてこういう書き方

    プログラミング学習手段としての写経について - 西尾泰和のはてなダイアリー