タグ

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

  • 作りたいもの: 1歩ずつミッションをクリアすることでGitの使い方を覚えられるゲーム - 西尾泰和のはてなダイアリー

    増井さんの作りたいものリストを作ろうというスライドを見て「確かに『いつかやる』リストに入れてるだけじゃ発展しないから、公開しても問題ないものは公開したらいいなぁ」と思ったので早速やってみました。2つ目。 1歩ずつミッションをクリアすることでGitの使い方を覚えられるゲーム なんちゃらVille系のゲームはどうして人の心をとらえるのか? 「小さい粒度のミッションが提示されて、それを達成すると次のミッションが表示される仕組み」は、頻繁に「達成感」という報酬を与えることで人の心をとらえるのだろうか? そういえば僕が昔書いた、対話的インタプリタで1歩ずつ操作しながらPythonを覚えるコンテンツも評判が良かったなぁ。だったらgitの使い方も、1歩ずつ対話的にミッションをクリアしながら学べるようにしたら面白いんじゃないか? 学習ユーザのユースケース 実は既にgithubにおいてあったりする。一応遊べ

    作りたいもの: 1歩ずつミッションをクリアすることでGitの使い方を覚えられるゲーム - 西尾泰和のはてなダイアリー
    kenkitii
    kenkitii 2012/05/10
    あとでやってみる
  • 作りたいもの: JavaScriptのコードの質を保つためのガードレール - 西尾泰和のはてなダイアリー

    増井さんの作りたいものリストを作ろうというスライドを見て「確かに『いつかやる』リストに入れてるだけじゃ発展しないから、公開しても問題ないものは公開したらいいなぁ」と思ったので早速やってみました。3つ目。 JavaScriptのコードの質を保つためのガードレール JavaScriptは柔らかい言語で、typoとか変数名の変え忘れが実行時までエラーにならない。しかもしれっとundefinedとかになって、そのままHTMLSVGのpath文字列に埋め込まれてたりしてデバッグにコストが掛かってしまう。人間は間違える生き物だから、間違いをなくすことはできない。だから間違えた時になるべく早く気づけるようにする仕組みが必要だ。 Google Closure CompilerはJavaScriptのソースコードを静的に検証してエラーを報告してくれる。であれば自分がソースコードを編集している時にバックグラ

    作りたいもの: JavaScriptのコードの質を保つためのガードレール - 西尾泰和のはてなダイアリー
  • gitチートシートver0.2を公開して情報デザイン出身の人に激しく突っ込まれた日記 - 西尾泰和のはてなダイアリー

    http://www.nishiohirokazu.org/tmp/git02.pdf あまりに激しく突っ込まれたので「ちょ、ちょっとまって、続きはまた今度で」とお願いして逃げ帰ってきました。 「リポジトリって何」「変更履歴を溜めておく場所」 「これ書き換えるのはどこ」「<name>のところ」「じゃあ斜体にするか色変えるかいっそ日語にしなきゃ。かっこごと灰色とかにしないとかっこを入力しちゃうよ」 「コマンドの部分を箱で囲むなり書体を変えるなりプロンプトつけるなりが必要」 「コミットをするって何?」「変更履歴をリポジトリに入れること」 「なんで『最初の』コミットなの?最後のコミットはあるの?」 「コメントでの解説の色を変えろよ」 「『.gitにできる』ってどこ?急に思いついて作っていいの?いつもhomeにいるとは限らないでしょ」「いまいるディレクトリの中。思いついて作っていいよ」「2回 g

    gitチートシートver0.2を公開して情報デザイン出身の人に激しく突っ込まれた日記 - 西尾泰和のはてなダイアリー
    kenkitii
    kenkitii 2011/07/21
  • Rediscover the Monte Carlo - 西尾泰和のはてなダイアリー

    僕個人はゲームの思考ルーチンを作ることなどには興味があるので、みんな知っていることだと思っていたのですが、意外と「現在世界最強の囲碁の思考ルーチンはモンテカルロ」ってのは知られてないみたいですね。うっかりすると「そんなわけないだろー」とか言われてしまう。その根底には「モンテカルロはとても収束が遅くて使いものにならない」という過去の記憶があるのかなー。ちょうどJavaScriptが使いものにならないおもちゃ言語だと思われていたように。 囲碁の思考ルーチンを著しく進化させた新しいモンテカルロが昔の単純なモンテカルロとどう違うかというと、UCB1という評価関数で「もっと探索するとヨサゲな局面」を判断して、ヨサゲな局面から優先的に探索するという点なんだけど、そういう定性的な話をしてもピンと来ないよね。同じ発想をモンテカルロで円周率を求めるプログラムに適用したら収束の速さが定量的にはっきり見えて面白

    Rediscover the Monte Carlo - 西尾泰和のはてなダイアリー
  • 初iPhoneアプリがリジェクトされた - 西尾泰和のはてなダイアリー

    10月14日にSubmitして10月29日に返事が来ていた。以下翻訳。こんな丁寧な解説がくるのか〜。そりゃ多少時間がかかっても仕方がないなぁ。「iPhone Application Programming Guideを読め」的な1行コメントがくるのかと思っていたので逆に驚いた。こんなに丁寧に教えてもらえるんだったらリジェクトされても逆に勉強になるな。 - にしおさん、 ConicFilmのAppStoreへの投稿ありがとうございます。 我々はConicFilmをレビューし、このバージョンのあなたのiPhoneアプリをAppStoreで公開することはできないと判断しました。理由は、このアプリが iPhone Developer Program License Agreement の 3.3.5章「アプリはHuman Interface Guidlinesおよびその他のAppleが提供するドキ

    初iPhoneアプリがリジェクトされた - 西尾泰和のはてなダイアリー
    kenkitii
    kenkitii 2009/11/15
    mixiとは大違いだな
  • 日本人なら必ず誤訳する英文 - 西尾泰和のはてなダイアリー

    屋で立ち読みしてて「英語を正しく理解しているかどうかを知るには訳してみるしかない。『英語英語のまま理解する』とよく言われるが、それはあくまで最終目標であって、正しく日語に訳せない文章は絶対に理解できていない。」ということが書いてあって、納得したので買ってきた。越前敏弥の日人なら必ず誤訳する英文 このの著者はダヴィンチコードとか訳している人で、十数年英語を教えてきてて、みんながつまづくパターンを集めたらしくてかなり密度が高い。あと、自然言語って冗長性が高いからおおざっぱな理解で問題ないケースも多いんだよね。だから土台がシロアリにわれているのに気付けない。こういうで「ああ、この英文はこうだろ?」と訳してみて「いや、それはよくある間違い」ってつっこまれないと自力で気付くのは難しい。 I bought the book, which I have not read yet. これを間

  • weakref - 西尾泰和のはてなダイアリー

    知識としては知っていたが始めてweakrefが必要だと感じるシチュエーションにぶつかった。まずは短いコードで挙動を確認してみる。 from weakref import WeakValueDictionary class Foo(list): pass def make(): x = Foo([0]) y = Foo([1, x]) z = Foo([2, y]) return WeakValueDictionary(x=x, y=y, z=z), z d, cur = make() print cur print d.items() cur = cur[1] print cur print d.items() 出力は下記 [2, [1, [0]]] [('y', [1, [0]]), ('x', [0]), ('z', [2, [1, [0]]])] [1, [0]] [('y', [1

    weakref - 西尾泰和のはてなダイアリー
  • "Did You Know"和訳 - 西尾泰和のはてなダイアリー

    この動画は一見の価値がある。英語にひるんで見ない人がいるともったいないので和訳した。(追記: これはバージョン3.0らしい。) (追記:字幕付きのバージョンがニコニコ動画で公開されました) 知っていましたか? もしあなたが中国で「100万人に1人の逸材」なら… あなたみたいな人が国内に1300人います。 中国はまもなく世界一英語が話されている国になります。 インドの「IQが高い側から25%」は アメリカの全人口より多い。 つまりアメリカに生まれる全ての子供よりインドに生まれる優等生の方が多い。 知っていましたか? 2010年に需要のある仕事上位10位は 2004年にはまだ存在していませんでした。 今私たちは学生を教えています。まだ存在しない仕事に備えて。 まだ発明されていない技術を使って まだ知らない問題を解く仕事に備えて。 米国労働省は今の学生は10〜14の仕事につくと推測しています 3

    "Did You Know"和訳 - 西尾泰和のはてなダイアリー
  • 数式テスト - 西尾泰和のはてなダイアリー

    こうですか?わかりません!><

    数式テスト - 西尾泰和のはてなダイアリー
  • 「勉強会の違和感」に感じる違和感 - 西尾泰和のはてなダイアリー

    http://www16.atwiki.jp/tokoroten/pages/904.html 1000speakersはその辺が違っていて、圧倒的に価値の高い西尾さんとAmachangがトップに立つことによって、それに準ずる人たちが集まってくる。 そのため、西尾さんとAmachangには利益がないけど、その他の人には自分よりも価値が高い人が存在するという状態になるため、それらの人は大きな利益を受けることになる。 それは誤解以外の何物でもない。例えば今回であれば「へー、Curlってそういう言語なんだー。意外と使われているんだー。」とか「なるほど、OpenCOBOLでそんなことができるんだ!目から鱗!」とかあったわけだし、id:amachangもFPGAの話にかなり関心を持って色々質問してたみたいだし。 しかし、こういう「僕にとって違和感のある考え方」が発生する理由にちょっと興味が出てきた。

    「勉強会の違和感」に感じる違和感 - 西尾泰和のはてなダイアリー
  • VMWareにFreeBSDを入れる。 - 西尾泰和のはてなダイアリー

    前に入れたのだけど、うっかり操作ミスで消してしまったのでもう一度入れる。このエントリーは備忘録的に自分がやったこととか失敗とかを書き留める。FreeBSDは7.0。前は最初のインストールの時にPorts Collectionを入れなくて、後から入れようとしてうまくいかなくて挫折した。今回はちゃんとPortsを入れてみたらありとあらゆるもののインストールが楽になった。なんでもmake install。 ■ 自分をwheelに追加し忘れたためsuできない exitしてrootで入り直し、/etc/gruop をviで開いてwheelに自分を追加した。cf. suコマンドを実行可能なユーザーを限定するには ■ sshでログインする VMWareの画面からコピペする方法がわからないから。いちいちCtrl+Altしたり画面をクリックしたりするのも面倒だしね。sshはインストール時にONにした。ifc

    VMWareにFreeBSDを入れる。 - 西尾泰和のはてなダイアリー
  • ランダムソート(笑)とは - 西尾泰和のはてなダイアリー

    誰が「ソートするときに比較関数に『ランダムに1か-1を返す関数』を与えたらシャッフルできる」って言い出したのかしらないけど、真に受ける方も真に受ける方だと思う。 たとえばソート関数が下のような「リストの先頭の値をピボットにしてそれより大きいものと小さいものに振り分けるクイックソート」だったとする。比較関数の所はランダムにしてある。 >>> def quicksort(xs): from random import random if len(xs) < 2: return xs pivot = xs[0] left = [] right = [] for x in xs[1:]: if random() < 0.5: left.append(x) else: right.append(x) return quicksort(left) + [pivot] + quicksort(right

    ランダムソート(笑)とは - 西尾泰和のはてなダイアリー
  • 数学用語を必殺技化する - 西尾泰和のはてなダイアリー

    今日の86チャットまとめ ujihisa23の発言: 数学用語が非直感的で難しいってのだけど ujihisa23の発言: あれは中二病的にはむしろ良いこと from_kyushuの発言: 中二病www ujihisa23の発言: 「この非線形関数をラグランジュ緩和で不定積分したら名義尺度が下近似で証明終了。」 ujihisa23の発言: とかかっこよすぎるだろ asuinim/L4RK/nommyの発言: かっこいいな asuinim/L4RK/nommyの発言: 全中学生に啓蒙すべきだ 西尾泰和の発言: 数学用語が難しい名前なのは必殺技だと思えばOKなのか Haikuの発言: そういうことですね。(キラーン) 西尾泰和の発言: 「動的計画法!!!!」と書いて、ふりがなに「ダイナミック・プログラミング」と書いてある 西尾泰和の発言: うはー、かっこええーw ujihisa23の発言: おお

    数学用語を必殺技化する - 西尾泰和のはてなダイアリー
  • 草植えてみましたwWWwwww - 西尾泰和のはてなダイアリー

    wWWWwWWWWwv wWWwWWWwv wWWwWWWwv wWWwWWWwv wWWwWWWwv wWWwWWWwv wWWwWWWwv wWWWwWWWWwv wWWwwwwwwwwwwwwWWWWWWwWWWWWWwWWWWWWWWWwWWWWWWWWW WWWWWWwWWWWWWWWWWWWWwWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWww wwwWWWWWWWWWWWWWWWWwwwwwwwWWWWWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWWWWWwWWWW WWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwWWWWWWWWWWWWW WWWWWWWWwWWWWWWWWWWWWWWWWWWWWWwwWWWWWWWWWWWWWWWWWWWWWW

    草植えてみましたwWWwwww - 西尾泰和のはてなダイアリー
  • arguments.callee - 西尾泰和のはてなダイアリー

    なんかarguments.calleeとかいうものが流行っているらしい。 Perl で JS の arguments.callee 的なことしようと思ってハマった - IT戦記 http://d.hatena.ne.jp/amachang/20080501/1209623634 はじめての coderepos で arguments::callee 初体験 - TAKESAKOのはてな出張所 http://d.hatena.ne.jp/TAKESAKO/20080501/1209637452 それDevel::Caller でできるよ - TokuLog 改め だまってコードを書けよハゲ http://d.hatena.ne.jp/tokuhirom/20080501/1209625789 404 Blog Not Found:perl - で(Recall()|arguments.cal

    arguments.callee - 西尾泰和のはてなダイアリー
  • Rubyの名前解決は自分の入っているモジュールの兄弟をチェックしない - 西尾泰和のはてなダイアリー

    module Foo quux = 1 class Bar def baz print quux end end p Bar.new.baz # undefined local variable or method `quux' end quuxをdefしても同じ。クラスのメソッド内で修飾なしで使われた名前はまずローカル変数かどうかをチェックして、それから自分のメソッド、親クラスのメソッド・・・とたどっていき、Objectで止まるのだと思われる。 Pythonでは修飾なしの名前はローカル変数をチェックした後、外のスコープへとたどっていき、グローバル(モジュールスコープ)で止まる。self.quuxなら自分のメンバ、親クラスのメンバ、、、とたどってobjectで止まる。 Javaはthisを省略できるけど、どうなってるんだろうか。ネストしたクラスを作った場合に外側のクラスの変数に修飾なしでア

    Rubyの名前解決は自分の入っているモジュールの兄弟をチェックしない - 西尾泰和のはてなダイアリー
  • プログラ魔法学に関する考察 - 西尾泰和のはてなダイアリー

    さっきの for i in range(1,101):print"FizzBuzz"[i*i%3*4:8--i**4%5]or iとか明らかに禍々しいオーラをまとっている。闇の眷属に間違いない。 こういう一見この世の物理法則に従っていないような生き物を生み出すのは「召還魔法」だと思う。 こういうのはネタとして魔界のものを召還して見せ物にするくらいなら問題ないのだけど、普段の作業や仕事のコード、特に他人とシェアするコードで必要もなく闇の力を利用すると「黒魔術使い」「ダークサイドに堕ちたな」と言われるので要注意。生半可な気持ちで禁呪を使うと高い代償を支払う羽目になる。 IEを華麗に撃墜する一行 - ぼくはまちちゃん!(Hatena)とかは攻撃魔法。たぶん赤魔術。対象に対する深い理解が必要なのでほんの一握りの人しか新しい呪文を開発することができないが、行使するのは作り出すより簡単なので多くのスク

    プログラ魔法学に関する考察 - 西尾泰和のはてなダイアリー
  • 1