タグ

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

  • テキストファイルの標準エンコーディングは? - やねうらおブログ(移転しました)

    テキストファイルのエンコーディングとして何を基とすべきかというのは悩ましい。 日語のみならutf-16で幸せになれるのかと思ったら、JIS2004で追加された907字のうち304文字がサロゲートペアであって、2バイトで表現できない。 どうせ16bitで表現しきれないのなら、utf-32は保存領域がもったいない感があるので仕方ないのでutf-8を選択する。 utf-8だと相手に解釈してもらうためには、BOMをつけるほうが好ましい。 そこで、秀丸で標準保存形式としてutf-8(BOMつき)を設定しておく。 秀丸の拡張子関連づけで、".txt"を秀丸と関連づけておく。 よし、これでテキストファイルを新規作成して、秀丸で開くと…。 utf-8(BOMなし)と解釈される。一体どうなっているのか。 Windowsではエクスプローラーからファイルを新規作成するときにテンプレートを設定しておくことが出

    テキストファイルの標準エンコーディングは? - やねうらおブログ(移転しました)
    iww
    iww 2015/02/02
    幅無しスペース
  • 時代はまだゲームセンターあらしに追いつかないのか - やねうらおブログ(移転しました)

    私が小学生のころに『ゲームセンターあらし』という漫画が流行った。(1979〜1983年)「炎のコマ」と言う「スティックを高速で操作することでプレイヤーの操作するキャラクターが敵からの攻撃を潜り抜ける」というインチキまがいの技が出てくる。 私は小学生にして、その漫画に出てくる平安京エイリアンぐらいのゲームならオールアセンブラで余裕で作れる程度には天才児(?)だったので、「いくらスティックを高速に動かそうと、1回の描画ごとに1回の入力受付しかしないのだから、単に入力が取りこぼされるだけだろ。所詮、漫画だな。」と小馬鹿にしたものだった。 ところが、その考え方は間違いなんじゃないかと最近思うわけだ。 キーボード入力のようなユーザー入力は取りこぼしてはならないのである。ユーザーは1秒間にたかだか10文字程度しか入力できない。キー入力の遅い人は数文字が限界かも知れない。それなのにCPU負荷が高いときや

    時代はまだゲームセンターあらしに追いつかないのか - やねうらおブログ(移転しました)
  • ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)

    実際に関係者から聞いた話なのだが、いま、底辺のソーシャルゲーム会社は大変なことになっているらしい。底辺じゃない会社もそれなりに大変なものかも知れないが、底辺の会社はそれどころの騒ぎではないようだ。 まず、プログラマーの力量に合っていない。 「ソーシャルゲーム(の開発を)舐めんな」みたいな話は大手の開発会社のプログラマーからよく聞くが、人数がある日突然何万ユーザーも増える。このへんの流入する人数の調整が利かない。 もともと何十万人規模の接続をさばくには、MMORPGなどのオンラインゲームよりもシビアであり(普通、MMORPGでもワールドがわかれていて、1つのサーバーの常時接続人数は数千人規模に収まるので)、大人数になったときにうまくスケールアウトするように設計するためには、ゲームシステム自体がそのへんを考慮してうまく練られていないといけない。 ところが、底辺ゲーム会社だと、社長がそのへんの理

    ソーシャルゲーム運営地獄 - やねうらおブログ(移転しました)
    iww
    iww 2013/09/17
    典型的なデスマーチでこわい。 死ぬまでの距離が短いのが救いかな
  • 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 - やねうらお-よっちゃんイカを食べながら、息子語録を書き綴る
    iww
    iww 2013/07/12
    MSはやっぱ後方互換性に命かけてるんだな。
  • はてブは糞実装すぎて害悪でしかない件 - やねうらおブログ(移転しました)

    私の一つ前に書いた記事(→ http://d.hatena.ne.jp/yaneurao/20130702 )なのだが、はてブがカテゴリー自動判別で「テクノロジー」に分類しやがったせいで、はてブのブックマーク数が全く伸びない。 これだけ文中に音楽用語を散りばめてあるのになんで「テクノロジー」なんだよ…。ホント、はてブは糞実装だな!はてブなんか、とっとと無くなればいいのに! おまけにはてブのコメントで「音楽」とか「music」とかタグ入れてくれている人がいるというのに、どこをどう見ればこの記事が「テクノロジー」に見えるんだよ…。 twitterのほうでは音楽で飯をっているようなプロの方々からこの記事が参考になったとツイートを頂戴している。(念のために書いておくが、私が素晴らしい記事を書いたという意味ではなく、その記事の大半は翻訳文書であり、元記事が凄くいい内容だったということである。)

    はてブは糞実装すぎて害悪でしかない件 - やねうらおブログ(移転しました)
    iww
    iww 2013/07/08
    %23でなく#でブックマークしてみたいけどうまくいかない。 少し練習しないとだめか
  • 古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)

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

    古くて新しい自動迷路生成アルゴリズム - やねうらおブログ(移転しました)
    iww
    iww 2013/01/25
    迷路の作り方はペンゴで学んだ
  • 情弱がHDDを増設する話 - やねうらおブログ(移転しました)

    私には、いまどきインターネットすら出来ない友だちがいて、何かあると彼の携帯から「助けて」メールが送られてくる。 「いまバードディスクを買い増すためにショップに来てるんですけど」 なんやねん、“バード”ディスクって!鳥か!(`ω´) 「内臓のバードと外付けのバードとだと内臓のやつが速いんですよね?」 内“臓”ってなんやねん!臓器か!お前が欲しいのは、鳥の臓器か!(`ω´) 「内臓のほうが安いっすね。内臓のバードはSATAでつなぐんですか?」 そうじゃよ。 「いまバードディスク、前より高くないっすか?」 タイの洪水の影響でな。いま増設すると金かかるよ。 「地獄のSATAも金次第ってことですね」 誰がうまいこと言えと… 「バードディスク4台ぐらい増設したいんですけど、PCケースに収まりませんよね」 そういうときは、外付けにするか、ケース買い換えるか…。 「ケースbuyケースってことっすね」 ・・

    情弱がHDDを増設する話 - やねうらおブログ(移転しました)
  •  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ブロックの中括弧の省略について - やねうらおブログ(移転しました)
    iww
    iww 2011/09/05
    「if文の小括弧の後ろですぐ改行をせず、中括弧か命令のどっちか必ず書く」というルールが個人的に最強。
  • 理想の8方向レバーについて - やねうらお - ノーゲーム・ノーライフ

    アーケードゲーム歴史において8方向レバーがいつどのようにして誕生したのか私は知らない。もしかしたら、4方向レバーが発明されたとき、それはすでに8方向レバーとして使えたのではないかと思う。それをわざわざ4方向に補整する金具(ガイド)を入れて、4方向レバーとして使っていたのではないだろうか。 思えば、当時、8方向が入力できることがゲーム進行上、邪魔になることは多々あった。 例えば「ドラゴンバスター」(ナムコ 1985年)は、4方向レバー用のゲームとして設計されていた。ナムコ直営店では必ず4方向レバーでプレーできたのだが、それ以外のゲーセンではよく8方向レバーのドラゴンバスターを見かけた。 ドラゴンバスターでは斜めジャンプをするために、移動(右か左)からいったんレバーをニュートラルに戻したあとレバーを上に入れなければならない。「ニュートラルに戻して上」というのは、4方向レバーであれば、移動モー

    理想の8方向レバーについて - やねうらお - ノーゲーム・ノーライフ
  • メールは電子の海に消ゆ - やねうらおブログ(移転しました)

    以前、将棋のプロ棋士の神吉先生と仕事でご一緒させていただいたときに、神吉先生に私が送ったメールが届いていなかった。私が手入力した神吉先生のメアドが間違っているのか?ということになって、その場でメールを私が神吉先生に送ってみた。その場で神吉先生がメーラーで受信していただいたのだが、やはり届かない。 どうもおかしいなと思い、私が神吉先生のOutlookの設定を確認したところ、スパムを自動判定するになっていて、迷惑メールフォルダに入ったメールは自動的に(即座に)削除する設定になっていた。また迷惑メールの判定レベルは「高」で運用されていたので、差出人セーフリストに入っていなければかなりの確率で迷惑メール行きだ。これには私も白目をむいた。 私 「神吉先生!この設定ですと迷惑メールに判定されてしまった場合、メールが届いたかどうかすらわかりませんよ。」 神吉「迷惑メールのフォルダに迷惑メールがどんどんた

    メールは電子の海に消ゆ - やねうらおブログ(移転しました)
    iww
    iww 2011/08/03
    人力SNS
  • 合議アルゴリズムはインチキだ - やねうらおブログ(移転しました)

    昨年の10月11日に開催された清水市代女流王将とコンピュータ将棋「あから2010」との対局は記憶に新しい。 あから2010は、169台676coreを使った合議によるコンピュータ将棋マシンだった。 「文殊」の論文*1が発表されたときから、私は「合議は全く意味がないし、普通にクラスター並列化したほうが強い」と主張し続けてきた。 「1台のマシンと、そのマシンを3台使って合議させたものとを対局させて、3台合議のほうが有意に勝ち越したから合議は意味がある」みたいな結論を出すのはおかしい。3台のマシンで普通にクラスター並列化したものと、3台で合議したものとをなぜ真っ先に比較しないのか? 3台のマシンで単純にクラスター並列化したものより3台のマシンで合議したもののほうが圧倒的に弱ければそれは単にマシンリソースの無駄遣いに他ならないし、その比較すらせずに169台のマシン用意しましたって馬鹿じゃないの。大

    合議アルゴリズムはインチキだ - やねうらおブログ(移転しました)
    iww
    iww 2011/07/19
    ものすごく怒っておられる。
  • 心を亡くした四人のゲーマー - やねうらおブログ(移転しました)

    とあるMMORPGで「娘を隣村まで護衛しろ」みたいなクエストがあった。 ゲームに詳しくない人のために説明すると、“クエスト”とは達成すると経験値や報奨アイテムがもらえるイベントであり、普通に敵を倒すより効率的にレベルがあがるし、ゲームのストーリーや世界観が理解できるのでこれを優先的にクリアしていくのが常道なのだ。 今回のクエストでは娘が移動する経路に敵が出てくる。その敵をやっつけ続けなければならない。 私は、そのクエストが一人ではクリアするのが難しかったので、そのクエストをまだクリアしていない知り合いにお願いして四人でPT(パーティ)を組んでそのクエストに挑戦した。 いま仮にその娘の名前をビアンカだとしよう。 A「俺は右から出てきた敵を倒す係な」 B「じゃあ俺は左から出てくる敵を倒す係」 C「俺は敵にダメージをらったビアンカをヒール(回復魔法)する係な」 D「じゃあ俺もヒール手伝う。」

    iww
    iww 2011/07/03
    地球防衛軍の赤ヘルの話
  • 【ゲームデザイナー】永パを巡る戦い【必読】 - やねうらおブログ(移転しました)

    ■ 永パについて考えよう 最近、私はiPhone/iPadでいろんなゲームをしてみて気づくのだけど、当、海外の人の作ったゲームゲームバランスについてきちんと考えられていないことに腹がたつ。 簡単に永パ(永久パターン)が見つかる。この作っている人たちは当、永パのことが何もわかっちゃいない。国産のゲームにおいても、最近の製作者は当、何もわかっちゃいないことが多い。 今回は、永パとは何なのか、永パが何故いけないのか、永パはどうやれば防げるのかについて少し書いてみることにする。 ■ すべてはインベーダーゲームから始まった! もともとゲーム史を紐解くと、国内でのテレビゲームはインベーダーゲームに始まった。具体的に言うと、株式会社タイトーが1978年に出した「Space Invaders」とそのクローン(他社製の類似商品・模倣品)の文化だ。 このインベーダーゲームは、最初喫茶店に置かれた。テー

    【ゲームデザイナー】永パを巡る戦い【必読】 - やねうらおブログ(移転しました)
  • やねうらお将棋講座 その1 - やねうらおブログ(移転しました)

    アマ初段ぐらいの知り合いに将棋を教えようと思って資料作ってたのだけど、こういうの興味のある人が居るかも知れないので、体裁を整えて一部を公開する。続きははてブが10個以上ついたら公開しようとも思うが、たぶんつかない。 ■ 遠方駒 遠方への利きのある駒(飛・角・香)をここでは遠方駒と呼ぶ。 ■ ピン(pin)について 次図のように遠方駒で玉が間接的に狙われているとき、その中間にある駒(次図の3ニの金)は移動させられないので、この状態を「(3ニの金が)ピンされている」と表現する。 ピンされている場合でもその遠方駒の利きの方向には移動できる。(上図の3ニの金を4ニに移動させるのはすぐに飛車で取り返されるが、手としては合法手だと言う意味で。) ■ ピンされている駒は取られる ピンされているとその駒を動かせないので、上図で4一銀や4三銀、4四桂などとピンされている駒に利きを足されると、ピンされている駒

    やねうらお将棋講座 その1 - やねうらおブログ(移転しました)
    iww
    iww 2011/06/02
    『「ピン」と言う用語はチェスの用語』
  • インターネットのケーブルを齧りまくられた件 - やねうらおブログ(移転しました)

    先日、私はインターネットができなくなった。 光ファイバーケーブルをが引っ掻いてしまったのだ。犯人は左のにゃんこだ。いかにも悪そうな顔つきをしている。 終端装置のLOOPランプが点滅している。ああ、こりゃ駄目だと思った。 プロバイダの窓口に電話すると、当日の夕方に修理に来てくれるとのこと。うわー、それは嬉しい!正直、インターネットが出来ないと仕事にならんのだよ。 それで修理担当の人が来て、見積を提示してくれた。 ケーブルの上のほうに噛傷があるため、ケーブルを単に切断してつなぎなおすだけではケーブルが終端装置まで届かないので、延長工事がいるとのこと。 ・つなぎなおすだけなら→ 10,500円 ・延長工事も必要なら→ 17,500円 とのことだった。 がひっかいただけなのに17,500円か。17,500円も…。なんという悪いだ。ぐりぐりしちゃる! とをぐりぐりしながら考えていたのだけど、

    インターネットのケーブルを齧りまくられた件 - やねうらおブログ(移転しました)
    iww
    iww 2011/05/17
    ゴネ得かネコ得か
  • 3回に1回出力するだけの簡単ではないお仕事 - やねうらおブログ(移転しました)

    なんかさ、3回に1回出力するだけの簡単なプログラムのお仕事ってあるじゃん。 if ( (++counter % 3) == 0) printf("Fizz\n"); これって意外と難しいんだよね。 ……なんてことを言うと「おいおい、天下のやねうらお、ついに頭おかしくなったか」とか言われるだろうけど、これ実際うちの仕事であった話で、このコードが原因でお客さんと大きなトラブルになった。 あまり具体的には言えないので、ちょっと別のものに置き換えて話すけど、それは、ひよこの餌やりプログラム(仮)だったわけ。 上のプログラムは、3回に1回だけど、このソフトには、N時間に1回、餌をやるロジックが書いてあった。 if ( (++counter % N) == 0) printf("餌やるでー\n"); なんかこんな感じな。それでNの値は、UI(ユーザーインターフェース)で調整できる作りにしてあった。一度

    3回に1回出力するだけの簡単ではないお仕事 - やねうらおブログ(移転しました)
    iww
    iww 2010/10/10
    冗長でも元の意味をちゃんとコード化しよう。という話
  • 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が糞すぎる - やねうらおブログ(移転しました)
  • 黒歴史---高校受験用のノート - やねうらおブログ(移転しました)

    おまけに高校受験用ノートまで出てきた。 世界地理のノートには「ナイジェリアにも石油がアルジェリア」とか書いてあって普通に勉強になった。 「鳴くよウグイスエイリアン」って書いてあって何のことかと思ったら、たぶん「平安京エイリアン」の「平安京」を省略して「エイリアン」だけ書いてあるのか。これ何の勉強だい。 つうか、このノート、受験対策用の要点のまとめではなく、面白いことを書き留めておくネタ帳だったような気がする。

    黒歴史---高校受験用のノート - やねうらおブログ(移転しました)
    iww
    iww 2010/09/13
    「ナイジェリアにも石油がアルジェリア」
  • TabとSpaceの混在は駄目だろjk - やねうらおブログ(移転しました)

    ネタ元 : http://www.emacswiki.org/emacs/SmartTabs

    TabとSpaceの混在は駄目だろjk - やねうらおブログ(移転しました)
  • 僕はグラディウスで頭がさらにおかしくなった - やねうらお−よっちゃんイカを食べながら、やねうら王を開発中。

    久々にmixiにログインしたら、懐かしのグラディウスがmixiアプリで登場していたので、私のグラディウスの思い出をつらつら書いてみたい。 「僕はドルアーガで頭がおかしくなった」(→ http://d.hatena.ne.jp/yaneurao/20090108 )のあと、私とその仲間のゲーマーを襲ったのはグラディウスショックだった。 グラディウスは、いまどきのシューティングからすれば、ぬるいタイプのゲームで、敵の出現位置を覚えておけば、あまり細かく弾をよける必要もなく、どちらかと言えば覚えゲーだった。 このゲームは、エンドレスになっていて、stage 7までクリアすると2周目のstage 1からはじまる。3周目以降はそれ以上難度が上がることはない。2周目以降は敵を倒したときに打ち返し弾がくる。結局のところ、1周目と2周目以降とで全く異なるパターンが要求されるが、覚えてしまえばそれまでだ。

    僕はグラディウスで頭がさらにおかしくなった - やねうらお−よっちゃんイカを食べながら、やねうら王を開発中。
    iww
    iww 2010/01/22
    ラッシュやボスのときのBGMのタイトルは Aircraft Carrier