タグ

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

  • エンターテイメントとしての将棋 - やねうらおブログ(移転しました)

    「XXXは観るものか(試合を観戦して楽しむものか)、(自分で)やるものか」という設問はなかなか興味深い。 「プロレスは観るものか、やるものか」と言えば多くの人は前者だろう。 「野球は観るものか、やるものか」 「陸上競技は観るものか、やるものか」 「セックスは観るものか、やるものか」 など、話題は尽きない。 とりわけ「将棋は観るものか、やるものか」 この疑問が長年、私のなかでくすぶっていたのだが、先日、一つの結末に辿り着いたのでそれを今日は書いてみたい。 プロの試合の指し手の意味を理解するにはそこそこの棋力が必要である。NHK将棋対局などを見ていても、少なくともアマ五級程度の棋力がなければ解説者の言っている意味が理解できない。そういう意味では、ずぶの素人が見て楽しめるものではない。 ただ、将棋人口のうち、このレベル以上の級位者の占める割合はかなり多い。野球で言うと「俺、昔、草野球やってた」

    エンターテイメントとしての将棋 - やねうらおブログ(移転しました)
    tyru
    tyru 2013/03/17
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

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

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
    tyru
    tyru 2013/01/26
    穴堀り法、クラスタリングアルゴリズム
  • CSV形式でデータを出力するときのバッドノウハウ - blogをメモ代わりに使う実験5 - やねうらお-よっちゃんイカを食べながら、息子語録を書き綴る

    ExcelでA1セルにIDとか書いてはいけない件 http://d.hatena.ne.jp/yaneurao/20121206#p4 上記の記事がtwitterで話題になっているようなので少し補足します。 エラーメッセージとして、以下のダイアログが出ますが、「はい」→「OK」と押せば開くことは出来ます。 いまどき誰もSYLK形式なんて知らないでしょうから、こんなダイアログ出されましても…という部分を私は問題にしています。 また、CSV形式はダブルクォーテーション記号( " )で囲むことにより、エスケープする機能がありますから、IDという文字列の両端にこの記号をつけておけばこのダイアログが出るのは回避できます。(要するにバイナリで見たときに1バイト目に "I" 、2バイト目に "D" という文字列が来ていなければこのダイアログは出ません。) そこで、CSV形式で出力するプログラムを書く場合

    CSV形式でデータを出力するときのバッドノウハウ - blogをメモ代わりに使う実験5 - やねうらお-よっちゃんイカを食べながら、息子語録を書き綴る
    tyru
    tyru 2013/01/06
  • 多次元メモリ空間プログラミング - やねうらおブログ(移転しました)

    新年会で酒を飲み過ぎて頭が痛くて眠れないので、新年の挨拶代わりにプログラミングの話でも適当に書き散らしておく。 以前、私の知り合いのラノベ作家である土屋つかささんが、「プログラミングのソースコードって当に1次元(plain text)でいいんですかね?」みたいなことを言っていた。 例えば、フローチャートは普通、二次元上に表現する。条件分岐(菱形の図形)が何箇所もあるようなフローチャートを描く場合、来のソースコードよりも流れが見やすいということは多々ある。それは何故だろうか? 「条件が成立したらソースコードのXXX行目に移動する」というような1次元的な移動より、「条件が成立したら下に移動、成立しなかったら右に移動する」というような2次元的な移動のほうが可視化する上ではわかりやすいというのがあるのではないかと私は思う。 こう考えると、ソースコードは最終的に直列化(1次元化)するにせよ、頭の

    多次元メモリ空間プログラミング - やねうらおブログ(移転しました)
    tyru
    tyru 2013/01/03
  • ExcelでA1セルにIDとか書いてはいけない件 - blogをメモ代わりに使う実験5 - やねうらお−よっちゃんイカを食べながら、息子語録を書き綴る

    アカウントをCSV形式のファイルで管理したいときにA1セルに"ID",B1セルに"PASSWORD"などと列名を書いておくことはよくあると思うのだけど、A1セルに"ID"と書かれているとExcelで開いたときに「SYLK:ファイル形式が正しくありません。」というエラーメッセージが表示される。("ID_xxxx"でも同様のエラーメッセージが表示される) たぶんいまどき誰も知らないと思うけどSYLK形式というのはExcelの前身であるMultiplan(1982年〜)の形式である。 ちなみにExcel 2011(Mac版)、Excel 2012(Windows版 来年1月発売予定?)でも動作を確認してみたが、A1セルに"ID"と書かれていると上記のエラーメッセージが表示される。迷惑極まりない。 誰がいまどきSYLK形式のデータを使っているというのか…。 そもそもファイルの拡張子がCSVとなって

    ExcelでA1セルにIDとか書いてはいけない件 - blogをメモ代わりに使う実験5 - やねうらお−よっちゃんイカを食べながら、息子語録を書き綴る
    tyru
    tyru 2012/12/09
    なんじゃこりゃ
  • 実現確率に基づいた辞書攻撃をしてみた話 - やねうらおブログ(移転しました)

    昨日、4月1日に3月末に退社した社員のパスワード(ここに詳しくは書けない)がわからなくなって困っているという相談をあるお客さんから受けた。 その社員は、そこの上司に個人的な怨恨があるらしく「死ね!」と言い残して辞めていったのだそうだ。パスワードを教えなかったのは何かの腹いせなのだろうか。 ともかく、その社長の許可を取り、私はダメ元で総当り攻撃をしてみることにしたが、1時間ほどやってみて、無理そうだから切り上げ。 次に辞書攻撃をしてみることにした。辞書は英語辞書やWikipedia等から集めてきた私のお手製のものだ。これも1時間ほどやって無理そうだから切り上げ。 辞書の単語の組み合わせも試してみることにした。 私が攻撃に使う辞書はそれぞれの単語のIDなどに出現する頻度を統計的に求めてある。 これを使って、例えば、10%で出現する単語flowerと20%で出現する単語catを組み合わせたflo

    実現確率に基づいた辞書攻撃をしてみた話 - やねうらおブログ(移転しました)
  • 自然言語処理こそが今世紀最後の錬金術 - やねうらおブログ(移転しました)

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

    自然言語処理こそが今世紀最後の錬金術 - やねうらおブログ(移転しました)
    tyru
    tyru 2012/02/12
  •  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ブロックの中括弧の省略について - やねうらおブログ(移転しました)
  • 0÷0がよくわからない件 - やねうらおブログ(移転しました)

    小学校の計算問題で「0÷0=」という問題が出て、(その教師の用意していた)答えが「0」だったらしく、その生徒の親に高校の数学教師が居て、「こんなの不定に決まってるだろ」と猛烈に抗議をしたが、その小学校の教師にはその意味が理解できなかった。それで仕方なく校長のところに話を持っていき、なんとか決着がついた。 まあ、それ自体は昔からよくある話なのだが、何故、いまだに小学校で「0÷0」を計算問題として出してしまう小学校の教師が後を絶たないのだろうか。 その理由を簡単に説明する。 私も高校数学の教免(一種)を持っているのだが、まず、「0÷0=」なんて学校で習ったことがない。 小学校のときの計算問題でそんな問題を出されたことは一度もない。要するに知らない。考えたこともない。 しかし、小学校では割り算を掛け算の逆操作として定義していて、 2 × 3 = 6 のような掛け算から、 6÷3=2 を導く。 こ

    0÷0がよくわからない件 - やねうらおブログ(移転しました)
  • virtualを「仮想」と訳していいものか - やねうらおブログ(移転しました)

    私は「virtual」を「仮想」と訳すのにすごく抵抗がある。 「virtual」って英語来の意味は、「実質上の」「実際上の」というような意味だ。「表面的にはそうではないが実質的にはこれなんだ」というような時に使う。 「virtual memory」を「仮想記憶」と訳すと「実際は存在しないメモリ」であるかのように思える。現実的に存在しないのなら無くても構わないようにすら思える。確かに物理的には存在しないから実在はしないんだけど、かと言って不要というわけでもなく、「virtual memory」来の意味は「(ユーザーアプリなどが)実際に使うときのメモリ」みたいなニュアンスで「無くても構わないメモリ」とは、ちょうど真逆の意味だ。 「仮想」という言葉が、「存在しない」という否定っぽい語感なのに対して、「virtual」来の意味は「実質上(は、これだ)」という肯定っぽい意味だからどうもギャップ

    virtualを「仮想」と訳していいものか - やねうらおブログ(移転しました)
  • 暁美ほむらの周辺 - やねうらおブログ(移転しました)

    【俺の】まどか☆マギカの全容【理解】 http://d.hatena.ne.jp/yaneurao/20110418 ↑で、ざっと魔法少女まどか☆マギカのあらすじを書いて、おおむね高評価だったのだけど、twitterでこんな意見をいただいた。 これは全くその通りで、最終話を見終わった直後は、暁美ほむらという存在が何であったのか、私のなかでも考えがまとまりきっていなかった。 私は10話を見た時点では、暁美ほむらはTAS動画のように何度もやりなおすことによって最適解に到達するのかと想像していた。*1 しかし11話、12話は全く予想外の結末だった。 暁美ほむらは、同じ時間を何度もやりなおした。それは、何度もやりなおすことで解を見つけるという旅ではなく、永遠の回帰のなかで自己を肯定できるかという試練だった。 ニーチェの永劫回帰思想になぞらえて言えば、彼女はニーチェが『ツァラトゥストラかく語りき』で

    暁美ほむらの周辺 - やねうらおブログ(移転しました)
  • PIC×PICCによるシリアル通信(6) - やねうらおブログ(移転しました)

    今回、私は丸一日半(記事としては6日に渡ってしまったが)かけてPIC16F877A(16F887)をターゲットとしたUSARTによるシリアル通信のプログラムをPIC Cを用いて書くという試みを行なった。(検索などで直接この記事に飛んできた人は是非、過去5日分の記事も併せてご覧ください。) ここまでのことをまとめると…。 ・PIC用にCで書かれたサンプルがインターネット上に少なすぎる。(いままでPICの開発はアセンブラがメインだったため) ・PIC CとCSC Cとで細かい点が異なる。どちらの情報も不足している。 ・PIC CはコンパイラがC++に対応していない。そのため他のC++で書かれたソースをコピペしてくるといろいろ問題を起こす。これではいままで開発してきた資産が流用できない。 ・PIC Cしか使っていないが、コンパイラベンダーがどう見ても素人。 ・CSC Cのほうは体験版のライセンス

    PIC×PICCによるシリアル通信(6) - やねうらおブログ(移転しました)
  • いますぐPICをやめてAVRに移行すべき10の理由 - やねうらおブログ(移転しました)

    電子工作用のお手軽なワンチップマイコンと言えば、AVRとPICである。数年前、国内ではPICのほうが日語での情報が多く、国内での入手性が良かったのでPICばかりが普及した。PICで有名な後閑さんの功績も大きいだろう。 だが、いまから始めるなら間違いなくPICではなくAVRにするべきだろう。値段的にもPICと大差ないし、国内でもAVRマイコンをある程度調達できるようになってきた。 では、いまPICをやっている人はAVRに移るべきか? 迷っている人のために、「いますぐPICをやめてAVRに移行すべき10の理由」というのを書いてみる。 1) AVRなら、ほとんどのモデルでCで開発することができる。もちろん、フリーの環境。(AVRStudio + WinAVR) PICの上位モデル限定のくせに60日すぎたら最適化レベルが下がるどっかの体験版(?)のCとは大違い。 2) AVRのアセンブラはPI

    いますぐPICをやめてAVRに移行すべき10の理由 - やねうらおブログ(移転しました)
  • Software RAID on Windows - やねうらおブログ(移転しました)

    WebサーバーをVMWare上の仮想マシンで動かすことにした。 バックアップはhost OS側にNorton Ghost 15.0を入れて外付けのHDDに日々、差分バックアップをするようにしてある。たぶん、まともなサーバー管理者が見たら「その発想は無かった」と言うか「頭おかしいんじゃないの?」と言うかどちらかだろう。 そんなに大きなお金が動くサイトではないので、サーバーマシンが丸一日止まってようがたいした損害ではないのだけど、HDDが破損した場合、前回バックアップからそこまでの決済の記録自体が吹っ飛ぶ。これはさすがに問題だ。ゆえに、DB用のHDDは常時ミラーリングしておきたい。 普通、こういうのは、RAIDを組むとか、iSCSIで共有ストレージを用意するとかすると思うのだけど、私はRAIDがどうも信用できない。 例えばお手頃価格のセンチュリー 裸族のインテリジェントビル USB3.0+eS

    Software RAID on Windows - やねうらおブログ(移転しました)
  • 学校と会社って両極端じゃね? - やねうらおブログ(移転しました)

    学校って習う側がお金を払うじゃん。 授業料、年間だと結構の額になるじゃん。 時間当たりで言うと数百円払ってるじゃん。 会社って働く側がお金を貰うじゃん。 それも最低賃金法があるからどんだけ働きが悪くとも時給800円ぐらいもらえるわけじゃん。 両極端だと思わね? エンジニアとしては中途半端なスキルだけどお金を払って学校で習うほどでもなくて、かと言って、会社で雇ってもらっても実戦で役に立つほどでもない人って世のなかにいっぱいいるじゃん。 そういう人はなにやってんの?ニートITとは無関係のアルバイト? 企業「プログラミング、タダで教えてやんよ。その代わり雑用、頼む。」ぐらいの緩い関係を築きたい企業と個人がいるとして、それを結ぶ方法って無いものかね。

    学校と会社って両極端じゃね? - やねうらおブログ(移転しました)
  • 美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)

    #include <iostream> #include <cstring> using namespace std; long long dp[18][4][4][4][4][4][4][4][4][4][4]; #define FORN( n ) for ( int i##n = 0; i##n < 4; i##n ++ ) int main() { memset( dp, 0, sizeof( dp ) ); FORN( 0 ) FORN( 1 ) FORN( 2 ) FORN( 3 ) FORN( 4 ) FORN( 5 ) FORN( 6 ) FORN( 7 ) FORN( 8 ) FORN( 9 ) dp[0][i0][i1][i2][i3][i4][i5][i6][i7][i8][i9] = 1; for ( int r = 1; r <= 17; r ++ ) { FORN

    美しすぎるプログラムを解読せよの巻 - やねうらおブログ(移転しました)
  • Borland C++ - やねうらおブログ(移転しました)

    https://twitter.com/Cryolite/status/26084067723 私が最初に会った時の名前はTurbo C++だったな。1993年だったかな。コンパイルがすこぶる速く、私は持ち運び用のMS-DOSが立ち上がるラップトップ機に入れて使ってた。 Turbo C++だとHello worldのコンパイルが数秒で終わるんだよね。 当時、gccだとリンクやら何やらで30秒ぐらいかかってたと思う。 マシンがすこぶる遅かったのもあるんだろうけど。 私の友人であったX68000ユーザーはFDD上のgccでコンパイルしてて、Hello worldのコンパイルに3分ぐらいかかるって言ってた気がする。3分と言うとずいぶん長いように思えるけど、8ビット機時代のCP/M上のCコンパイラだと10分ぐらいかかってたので、まあそれからすれば許せる気はした。 それはそうと、Wikipedia

    Borland C++ - やねうらおブログ(移転しました)
  • 倒産した会社から個人情報が流出する件 - やねうらお−よっちゃんイカを食べながら、ぬるぬる動くドール動画を制作中

    通販カタログを請求するのに名だとどこから個人情報が流出したのかわからなくなるのですべて偽名にしているのだが、下の名前を「珍古(ちんこ)」とか「雲虎(うんこ)」とかにしても普通にカタログが送られてくる。 あと住所も何番地の下にさらに1035のようにマンションっぽく見える番号を付与しておく。これは付与されていても郵便物はちゃんと届くし、これによりどこで情報が漏れたかがわかるのだ。 それはそれとして、数年前、架空請求の葉書が実家のほうに送られてきた。その送られてきた葉書に書かれている住所は、私が15年ぐらい前に使っていた番号が付与されているので、おそらく私がある雑誌の懸賞に応募したときのものだと思う。その出版社は倒産して、なんかその手の業者が債権回収をしたんじゃないかと思う。(100%の確証は無いので、その出版社名はここには書かないが。) 個人情報保護だの何だの言っても、結局こんな感じでその会

    倒産した会社から個人情報が流出する件 - やねうらお−よっちゃんイカを食べながら、ぬるぬる動くドール動画を制作中
    tyru
    tyru 2010/09/06
    自分も一時期偽名の郵便物ばっか届いてた頃があった。個人情報なんて流出しまくってんだなぁと思った
  • ENTERキーの壊れたおっさん - やねうらおブログ(移転しました)

    知り合いのおっさんが、ENTERキーを壊した。そのおっさんは、いつも力をこめてENTERキーを押すので、ENTERキーを押すときだけパコン、パコンと高い音が鳴っていた。 なんでも急いで伝票を印刷しなければならないらしく「どないしたらいいですか、助けてください」と私に電話がかかってきた。 「そんなん知らんがな!」と思いながらもキーバインドを変更するフリーソフトを紹介したが、今度はインターネットのつなげ方は娘しかわからないとかぬかしやがる。 「ほんとに面倒くさい人だなぁ」と思いながら、「そしたら、いいですか。ALTキーを押し下げて、押し下げたまま、テンキーで 1 , 3と入力して、そのあとALTキーから指を離してください」と言った。*1 どうやら、そのおっさんはそれで事足りたらしく満足げだった。 というのは、2年ほどの前の話で、最近になって知ったのだが、そのパソコンはいまだにENTERキーが壊

    ENTERキーの壊れたおっさん - やねうらおブログ(移転しました)
  • レベル255のプログラマになる方法 - やねうらおブログ(移転しました)

    KLab×はてな エンジニア応援ブログコンテストというのをやっているらしいので、私もちょっとした小話を書いてみる。 もうかれこれ10年近く前の話なのだが、そのことはいまでも鮮明に覚えている。 私は当時学生だったA君に、とあるプログラムの修正の仕事をお願いしたのだ。A君はとても優秀なプログラマだった。しかし正直に告白すると私は彼がどれくらい優秀なのか、その時点はあまり正しく理解していなかった。 A君はすぐさま与えられたソースコード上のバグをいくつか見付け出した。そのバグの一つは、私の部下のT君が書いたコードに存在していた。そのバグを修正したついでにA君は「なんでこんなことするんだ!こうなってると×××が○○○になったときにバグるじゃねーか!この大馬鹿野郎!」みたいな罵声混じりのコメントをプログラム上に追記した。 そのコメントを見て、その元のコードを書いたT君はいたく感情を害した。T君は「もう

    レベル255のプログラマになる方法 - やねうらおブログ(移転しました)