タグ

ブックマーク / yaneurao.hatenadiary.com (17)

  • 天才になるために気をつけるべき3つのこと - やねうらおブログ(移転しました)

    お正月からいきなり何を言いだすのかという感じですが、ちょっと天才になるためのアドバイス的なものを機械学習の観点から書いてみたいと思ったんですよ。 そもそも天才とは何なのか。人間の脳って生物学的には同じ仕組みで学習しているわけですから、学習アルゴリズムに個体差はないと思うんです。しかし学習の早いとか遅いとかはあるわけです。 これは脳のなかでシナプスが形成される速度に個体差があるからだと思うのですが、なぜそういう差があるのかはいまの脳科学ではたぶん解明されていません。べ物などの栄養バランスによるものか、心の持ちようによって何かの脳内物質が出て、それがシナプスの形成を促進するのか。 ともかく、同じ学習アルゴリズムで学習しているのが人間であります。 では、学習が早い人(習熟が早い人)ほど能力が高いのでしょうか?学習速度が天才と凡人とを分かつのでしょうか?世間的にはそう思われているかと思うのですが

    天才になるために気をつけるべき3つのこと - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2014/01/07
  • ドワンゴの川上会長との対談その後 - やねうらおブログ(移転しました)

    ドワンゴの川上会長と私との対談記事が公開された。当日、緊張のあまり、うまくしゃべれていなかった私であるが、4Gamerの神編集によって素晴らしい対談記事へと昇華しており、twitterでの言及数はこの対談シリーズのなかで現時点ですでに過去最多を記録している。是非、ご覧いただきたい。 電王戦,なんで勝てたんですか?――「ゲーマーはもっと経営者を目指すべき!」第15回は,「BM98」を開発した伝説的なプログラマー・やねうらお氏がゲスト http://www.4gamer.net/games/001/G000183/20131222001/ 関連) ドワンゴの川上会長に聞くべきだった『経営はなぜクソゲーなのか?』 http://d.hatena.ne.jp/yaneurao/20131126#p1 記事が公開されてから3日間は4Gamer.netの注目記事ランキング1位だったようだ。また、ニコニ

    ドワンゴの川上会長との対談その後 - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2013/12/27
  • CodeIQで結城先生が出題されたCrossingが神がかっていた件 - やねうらおブログ(移転しました)

    CodeIQで挑戦者数が400人超えという異例の事態になったCrossingとはどんな問題だったのか。twitterでも恐ろしい勢いで拡散され、最終日に100人を超えるチャレンジがあった、この問題。一体どこにそんな魅力があったのかについて考えてみる。 まず、このように注目されるためには満たすべき条件が二つある。 繁盛する飲店を考えてもわかるように、まず美味しくなければならない。CodeIQで言うと、問題として良問でなければならない。解答後の達成感がなくてはならない。 次に、飲店なら、その店に入ってみようという気にさせなければならない。入りにくそうなお店でも、料理さえ美味しければその後口コミで広がることもあるだろうが、それだと繁盛するまでに時間がかかりすぎる。だからCodeIQで言うと、まず問題を解いてみようという気にさせなければならない。 このどちらが欠けても駄目である。この問題はこの

    CodeIQで結城先生が出題されたCrossingが神がかっていた件 - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2013/09/04
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

    最近、ゲーム界隈ではプロシージャルテクスチャー生成だとか、プロシージャルマップ生成だとか、手続き的にゲーム上で必要なデータを生成してしまおうというのが流行りであるが、その起源はどこにあるのだろうか。 メガデモでは初期のころから少ないデータでなるべくど派手な演出をするためにプロシージャルな生成は活用されてきたが、ゲームの世界でプロシージャル生成が初めて導入されたのは、もしかするとドルアーガの塔(1984年/ナムコ)の迷路の自動生成かも知れない。 なぜ私が迷路のことを突然思い出したのかと言うと、最近、Twitterで「30年前、父が7年と数ヶ月の歳月をかけて描いたA1サイズの迷路を、誰かゴールさせませんか。」というツイートが話題になっていたからである。 この迷路を見て「ああ、俺様も迷路のことを書かねば!俺様しか知らない(?)自動迷路生成のことを後世に書き残さねば!」と誰も求めちゃいない使命感が

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2013/02/11
  • クロージャーだと苦労するんじゃ?(ダジャレ) - やねうらおブログ(移転しました)

    closureで継続(continuation)を実現する技法ってあるじゃないですか。 例えば次の記事は私が5年以上前に書いてますね。 C#2.0時代のゲームプログラミング(49) 〜 delegateを用いたcontinuation http://d.hatena.ne.jp/yaneurao/20070207 上の技法は私は10年ぐらい前にclosureを使い出したころに自力で発見しましたが、まあ、いまや常識ですよね。それで最近、それに似た話題があったので取り上げてみます。 ここで再度認識して欲しいのは、node.js の素晴らしさは「クライアント側で皆が使っているJavaScriptでプログラムが書ける」という部分などにあるのではない、という点だ。node.js がこれほど多くの支持者を得ているのは「来記述が煩雑になりやすい非同期処理をJavaScriptの無名関数を利用して書きや

    クロージャーだと苦労するんじゃ?(ダジャレ) - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2012/11/12
  • 自然言語処理こそが今世紀最後の錬金術 - やねうらおブログ(移転しました)

    日本語入力を支える技術 ~変わり続けるコンピュータと言葉の世界』(asin:4774149934)が発売された。PFI(株式会社Preferred Infrastructure)のなかの人が書いただ。 日本語入力を支える技術というを書きました http://d.hatena.ne.jp/tkng/20120203/1328248554 以下、どうでもいいことをつらつらと。 最近、ソーシャルゲーム界隈が賑わっているのでIT系の優秀な人材がそっちに大量に流れてしまっていて、IT業界自体の空洞化が起きようとしていて当に嘆かわしい限りである。私は自然言語処理こそが今世紀最後の錬金術だと思っているのだが、この分野はなかなか大きな進歩がないのが実状だ。 例えば、2chのまとめサイトが収益を生み出すのだから、機械によって自動的にどこかの記事のまとめ(要約etc..)を生成できれば、これが自動的に

    自然言語処理こそが今世紀最後の錬金術 - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2012/02/11
  •  thenブロックの中括弧の省略について - やねうらおブログ(移転しました)

    いま、2chの某スレでC/C++Javaのifのthenブロックで中括弧を省略したほうがいいのかどうかについての議論が繰り広げられていて、面白そうだったので取り上げてみる。*1 要は、次の書き方は中括弧を省略したほうがいいのか? if (xxx) { continue; } という、昔からよくある議論である。 その前にまず言っておかなければならないが、「(文法的には)中括弧を省略できる」という表現は正しくないと私は思う。 と言うのも、C/C++Javaの文法的には、 1) statement : if ( expression ) statement1 [else statement2] 2) statement : { [ statement-list ] } 3) statement-list: statement または statement-list statement ※ [

     thenブロックの中括弧の省略について - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2011/09/05
  • iPhoneアプリ設計の極意 - やねうらおブログ(移転しました)

    iPhoneアプリ設計の極意 ―思わずタップしたくなるアプリのデザインというが6月18日発売になるらしく、このをオライリーの編集の人から献していただいた。 基的にはデザイナー向けにiPhoneのような携帯デバイスでの魅力的なUIはどうあるべきかを書いたなのだが、iPhoneの小さな規模のアプリではUIの配置やその設計をすべてデザイナーが担当するわけでもなく、配置やレイアウトはプログラマがある程度決めてしまうことも多々あると思う。だから、これはプログラマも読むべきだと思うし、プログラマにも大いに参考になるだ。 むしろ熟練したデザイナーにとっては、“常識”に分類される事柄も多く書かれており、“iPhoneで”という部分以外はあまり参考にならないかも知れない。 このには、Twitterific(iPhoneで人気のtwitterアプリ)やThings(iPhoneのToDoリスト管

    iPhoneアプリ設計の極意 - やねうらおブログ(移転しました)
  • Blunderについて - やねうらおブログ(移転しました)

    今年の第19回世界コンピュータ将棋選手権に出場したBlunderは、C#で書かれたコンピュータ将棋である。 コンピュータ将棋ではC#で書くとC++などで書かれた場合の1/4〜1/2ぐらいの速度しか出ないのだが*1、一次予選を3位で通過した。二次予選は惜しくも7位で終わったが、初出場とC#というハンデのわりには、十分な奮闘を見せたと思う。 そのBlunderのソースがこの度、公開された。 http://hp.vector.co.jp/authors/VA039571/blunder/ いまのところソースが公開されている将棋プログラムを強さ順に並べると、 GPS将棋 Bonanza Blunder うさぴょん …(以下略) こんな感じか。 GPS将棋とBonanzaが圧倒的なのは言うまでもないが、Blunderも、C++で書き直したりすれば、あとR200〜300ぐらいは上がる見込みがあるので、

    Blunderについて - やねうらおブログ(移転しました)
  • C#のvarとtry〜catchが糞すぎる - やねうらおブログ(移転しました)

    C#3.0からはvarと書くと型を明示的に指定しなくても済む。 var hoge = new HogeClass(); しかし例外処理をするためにこれをtry〜catchで囲みたいとする。 try { var hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } このプログラムはコンパイルが通らない。catchのなかでは変数hogeにアクセスできない。try節が終わっているため、hogeのスコープが終わってしまうのだ。仕方ないのでhogeを外部のブロックに出す。 var hoge; try { hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } しかしこれまたコンパイルが通らない。var hog

    C#のvarとtry〜catchが糞すぎる - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2010/09/30
    普通に"初心者がやちゃうパターン"で書いてるんだけど... / "try-catch ブロックは、例外が発生しうる『1 行』のみを囲む。" http://bit.ly/9XXKgJ / コンストラクタが例外を返すことがあるなら、コンストラクタに対してもtry-catch
  • 広く知られているinsertion sortのコードは駄目すぎる - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術

    insertion sortは「挿入ソート」と訳される。(Wikipedia→ http://ja.wikipedia.org/wiki/%E6%8C%BF%E5%85%A5%E3%82%BD%E3%83%BC%E3%83%88 ) ■ 日語版 Wikipediaの日語のページのコードを引用すると次のようになっている。 for (i = 1; i < n; i++) { tmp = data[i]; for (j = i; j > 0 && data[j-1] > tmp; j--) { data[j] = data[j-1]; } data[j] = tmp; }上のコードでは、内側のループでinsertの必要がなかった場合でも最後にdata[j] = tmpでtmp変数をwrite backしており、しかも、insertの必要のなかった場合でもj=iが1回実行される。それらの意味に

    広く知られているinsertion sortのコードは駄目すぎる - やねうらお−よっちゃんイカを食べながら年収1億円稼げる(かも知れない)仕事術
  • 降順insertion sortについて - やねうらおブログ(移転しました)

    昨日の記事で、世間で広く知られているinsertion sortのコードがいかにひどいかについて書いた。 私の提案したコードをWikipediaにも掲載(注記としてだろう)したほうがいいのではという意見をいくつか頂戴した。 Yuichirou 2009/11/26 02:03 私はyaneuraoさんのコードの方が可読性にも優れていると思います。むしろ日語版Wikipediaのコードは脱出条件が複雑な内側のループを無理にfor文で書いているため、可読性が落ちています。 yaneuraoさん、ぜひその最後のコードをWikipediaに掲載すべきだと思いますがいかがでしょうか。 上のYuichirouさんの意見は好意からだろうが、はてブでは、次のような否定的な意見も見られる。 shuji_w6e 「馬鹿すぎる」とか「駄目すぎる」とか何様なんだろ?調べて回ったついでに全部書き換えてくればいいの

    降順insertion sortについて - やねうらおブログ(移転しました)
  • はてなのCAPTCHAを破るプログラムは30分で書ける - やねうらおブログ(移転しました)

    CAPTCHAとは、スパムコメントなどを防止するための認証画像のことである。 それにしても、はてなのCAPTCHAはひどい。無いよりマシという考え方もあるのでそれについてはあまり議論する気は無いのだが、それにしてもこれを破るプログラムは30分あれば十分書ける。 具体的には、はてなのCAPTCHAには8つの好ましくない特徴と、2つの脆弱性がある。 ■ 8つの好ましくない特徴 ・画像自体のサイズが小さすぎる。→ こんなに小さいと探索量(計算量)が小さくて済む。 ・フォントにゆがみがない → フォントはある程度変形させたほうが良い。変形させてあるとテンプレートマッチングがしにくくなる。 ・フォントが固定。→ フォントは毎回変えたほうが良い。 ・フォントを回転させていない → フォントは文字ごとにある程度ランダムに回転させた方が良い。 ・フォントサイズが一定 → フォントサイズは文字ごとにある程度

  • ASP.NET 3.5開発ノウハウ集 - やねうらおブログ(移転しました)

    ASP.NET 3.5ならphpの3倍ぐらい速く作れる」という知人の言葉にそそのかされてやり始めたASP.NET 3.5での開発。 書籍も少なく、資料も少ない。途方に暮れる毎日であった。 しかし慣れてくると、LINQのO/Rマッピングはなかなか便利で、初期段階でDB設計なんかせずに思いつくままテーブルを追加したりしてもまあ、なんとかなる。(よい子は真似しないように!) 確かにこれはphpの数倍速いわ。 LINQを覚えたおかげで、「SQL Server Compact Edition 3.5の使い方」(→http://d.hatena.ne.jp/yaneurao/20081124)なんかも自動的に学習できて、一粒で二度おいしかった。 そこで、「ASP.NETはもっと活用されるべき!」と思ったのであとから学ぶ人のために参考になればと思い、ざっと道しるべを書いておくことにする。 書きかけの部

    ASP.NET 3.5開発ノウハウ集 - やねうらおブログ(移転しました)
  • 正直、ASP.NETとその周辺はどうなのよ - やねうらおブログ(移転しました)

    ASP.NETで開発する場合、Expression Web2をデザインツールとして使っている方も結構といるだろう。 これはASP.NETと連携性が良いからである。簡単に言えば、ASP.NETの独自タグ(asp:XXXX で始まるタグ)を解釈して表示してくれるのである。まあ、これは、Dreamweaverのほうでも一応解釈してくれるのだが。 私はMicrosoft MVPという立場上、あまりMicrosoft社の製品をボロクソ言うことは憚れるのだが、それでもExpression Web2は正直まだ作りかけという感じがプンプンする。 例えば、市販のコンポーネントを配置したページを表示しようとすると、これがうまく表示できない。自分で.NETのGACに登録すれば表示できるらしいのだが、「ユーザーにそんなことさせるか?」という気がする。 あと、ASP.NET標準ではないaspタグがあると開いた瞬間ク

    正直、ASP.NETとその周辺はどうなのよ - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2009/03/04
    学生の分際で、私はASP.NET教教徒。ただやっと向き不向きがわかってきたところ
  • FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)

    最近、あるプログラマと話していて気づいたのだけど、彼は16進数の2桁と1桁との掛け算(FDh×5とか)が出来ない。やり方自体を知らないのだ。彼はWindowsの電卓を立ち上げて計算していた。 そのときは「プログラマでなくともこんなこと知ってて当然だろ!」と思ったのだけど、その後、10人ぐらいのプログラマに出来るかどうか聞いてみたが誰も出来ない。 結局、「普通は出来ない」のだと私は理解した。しかし16進数の掛け算はそんなに難しくない。私が子供のころには、まわりにFF(1×1=1に始まって、F×F=E1まで)を丸暗記している人がいっぱいいた。情報教育の一環として中学か高校で教えても計算の仕方ぐらい教えればいいのになぁと思っている。 前置きが長くなったが、以下にやり方などを書いておく。 ■ 16進数に馴染もう 16進数では、A = 10 , B = 11 , C = 12 , D = 13 ,

    FF(16進数の掛け算)を覚えよう - やねうらおブログ(移転しました)
    InoHiro
    InoHiro 2009/01/08
    10進以外基本的に苦手なのでがんばる
  • iPhoneアプリ開発の始め方 - やねうらおブログ(移転しました)

    1. Macを買おう Mac miniで構わないのでMacを買おう。Windowsでもtoolchainを自分でbuildすればiPhone用のバイナリを作れなくはないが、デバッグが実機でしか出来ない。 Mac用のiPhone SDKは非常に出来が良く、統合環境としても、シミュレータとしても優れている。無理してWindowsで開発しようとしないこと。これが開発の近道である。 2. Cocoaを勉強しよう iPhoneのアプリを開発すると言ってもiPhone専用のAPIはごくわずかであり、実際の開発の大半はObjective-CやCocoa,Quartz,OpenGL ESなどの勉強に費やされる。 Cocoa/Objective-Cのとして日語でお勧めなのは、「詳解 Objective-C 2.0」(左の) である。内容はかなり凝縮されている。もう少し説明を丁寧にしたほうが良かったよう

  • 1