タグ

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

  • Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー

    先日、こんな問題を見かけたのだけども、JavaのGCにはあまり詳しくないので答えがわからなかった。 OutOfMemoryErrorが発生しました。(中略)ヒープメモリは足りているようです。原因として何が考えられますか? http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244 なんでだろうなぁと思っていたところid:moriyoshiが「Permanent領域があふれたんじゃないの」と一言。「Permanent領域」で検索してみると、なるほど、そういうことなのかー。 というわけで早速それを再現させるコードを書いてみた。ヒープの大部分ががら空きなのにPermanent領域だけ99%になっているのがわかるかと思う。 Exception in thread "main" [Full GC [Tenured: 515K->515K(56896K

    Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー
  • 作りたいもの:技術書向きの電子ブックリーダ - 西尾泰和のはてなダイアリー

    昨日Twitterでつぶいたことのまとめ。こういうアプリが既にあったりしないのかなぁ。既にあるなら喜んでそれを使うんだけど。あったら教えて下さい。 技術書小説の違い 技術書小説と大きく異なる点は、シーケンシャルアクセスじゃなくてランダムアクセスが必要になるケースが多い点だ。 小説のように頭から順に読んでいくのではなく「ざっくり眺めておいて必要なところだけじっくり読む」という読まれ方のニーズがある。 「ざっくり斜め読み」をどうやって電子ブックビューワ上で実現するか? ページを画像として縮小しても漫画じゃないから「全く読めないゴミ情報」の山にしかならない。章タイトルだけ表示とか、太字や図などだけ表示とかが必要 ざっくり読んだ後の「あれどこに書いてあったっけ」支援のために検索とタグクラウド(検索キーワードのサジェスト)が重要 縦書きの対応は必要ない 理想を高く持つ 電子書籍ビューワはページを

    作りたいもの:技術書向きの電子ブックリーダ - 西尾泰和のはてなダイアリー
  • 言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー

    言語女子会: undefとnullは両方必要?の続編です。 varは必要なの? とあるプログラミング言語が集う女子会にて: Python: JavaScriptちゃんってさ、なんでvarだらけなの? JavaScript: えっ、変? Python: varなんかいらなくない?私ぜんぜん持ってないよ? JavaScript: えー、じゃあ変数をどうやって宣言するの? Python: 宣言っていうか…「x = 1」みたいな代入文があれば変数xが必要なのって自明じゃない?宣言とか必要? Ruby: 必要ないよね。っていうか変数宣言とか古臭くない? JavaScript: そうかなー。 Python: 少しダサイかも。ほら断舎離ブームだし要らないものは捨てなきゃ! JavaScript: 要らないかなぁ、変数宣言。Pythonちゃんは関数がネストしているときに外側のスコープの変数に代入するのって

    言語女子会2: varは必要?/privateがない? - 西尾泰和のはてなダイアリー
    yokochie
    yokochie 2012/03/22
    Haskellはなんで語尾がにゅなの...
  • 言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー

    Twitterのタイムラインが面白すぎて、ついうっかり言語を擬人化して脳内で言語女子会なるものを開いてしまいました。なお、登場人物と実在の人物は1対1に対応しません。 undefinedとnullの両方必要なの? とあるプログラミング言語が集う女子会にて: Perl: そういえばさ、なんでJavaScriptちゃんってundefinedとnullの両方もってるの? JavaScript: えっ、未定義の変数にアクセスした時undefined返したいじゃない? Python: 例外投げて死ねばいいじゃん Ruby: 例外投げて死ねばいいよね Python & Ruby: ねー♡ Java: いやそこは参照型ならnull、数値型なら0で初期化すべきでしょ C: これだから最近の若い子は…初期化にだってコストが掛かるんだからね!デフォルトで初期化するなんて無駄遣いよ!必要な人だけが責任をもって初

    言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー
    yokochie
    yokochie 2012/03/19
    最初のLispが秀逸
  • 焼畑農業をやめるために---新卒準備カレンダー 2011春 - 西尾泰和のはてなダイアリー

    by Lior Shapira under CC BY-NC-ND 2.0 このエントリーは新卒準備カレンダー 2011春という、みんなで仕事に関して自分が考えることなどをエントリーに書いていく企画で書かれたものです。 渋川さんの話を聞く会のつもりが、なぜかいつの間にか名前入りで「新卒準備カレンダー 2011春 : ATND」を作られていたので、空気を読まずに農業の話をします!! お前だれよ? 西尾泰和と申します。サイボウズっていうグループウェアの会社のサイボウズラボっていう研究部門子会社で、まあ研究とかをしています。一番最近のアウトプットはこのブログの右サイドバーに出ている「 Amazon.co.jp: WEB+DB PRESS Vol.60」で「言語設計の基礎知識」という特集を書いたことかな。そうそう、3年くらい英語版のプロフィールページしか更新していなかったら3年前の日語版を最新版

    焼畑農業をやめるために---新卒準備カレンダー 2011春 - 西尾泰和のはてなダイアリー
  • dllやsoから本体側の関数を呼ぶ方法 - 西尾泰和のはてなダイアリー

    [注: この記事はわかったところまでを忘れないうちに書き留める目的のもので、soとdylibの違いとかELFとMach-Oの違いとかがいまいちわかってない人間が書いているので要注意です!] プラグインの側から体が提供している関数(API)を呼んでどうこうしたいってケースの話。たとえば下の例ではプラグインの側から体で定義されているaddって関数を呼ぼうとしている。しかし単に体側の関数のプロトタイプ宣言を持ってきただけではシンボルが見つからない旨のエラーになる。 #include <stdio.h> int add(int, int); extern "C" { void foo(int x){ printf("%d\n", add(x, 42)); } } $ g++ -shared -o so.so so.cpp Undefined symbols: "add(int, int)",

    dllやsoから本体側の関数を呼ぶ方法 - 西尾泰和のはてなダイアリー
  • Ruby 1.9.2リリースとWEBrick脆弱性問題の顛末 - 西尾泰和のはてなダイアリー

    はい、Ruby 1.9.2がリリースされましたね。このバージョンではWEBrick にゼロデイ攻撃可能な脆弱性 - スラッシュドット・ジャパンで紹介されている脆弱性が僕が書いたパッチで修正されているわけなのですけど、そもそもなんで僕が修正しているのか、って顛末がわりと面白いので紹介します。 Apple、upstreamに報告してくれないまま脆弱性をCVEに届け出る upstreamに連絡が来ないまま脆弱性が公開される ruby-devにAppleが書いたと思われるパッチが貼られる(Appleでない人間によって) パッチのライセンスが不明なので取り込めない ライセンスを問い合わせるAppleの窓口が不明なので問い合わせもできない ruby-devを読んだ人はライセンス上安全なパッチを書けない 脆弱性だから話は非公開に進めたい yuguiさんがruby-devを読んでない僕に書かせることにする

    Ruby 1.9.2リリースとWEBrick脆弱性問題の顛末 - 西尾泰和のはてなダイアリー
  • プログラマの3つの格言 - 西尾泰和のはてなダイアリー

    初めての人のためのLISP[増補改訂版]を読んでビビっときたので追加。 僕のプログラマの格言ベスト3は下記(順不同) 早すぎる最適化は諸悪の根源 --- Donald Knuth 怠慢: 全体の労力を減らすために手間を惜しまない気質 --- Larry Wall 美しいということと、実用的価値が常に一致しているとは限らん --- 竹内郁雄 全部プログラミング以外のことに応用出来る。

    プログラマの3つの格言 - 西尾泰和のはてなダイアリー
  • ドミニオンでいつ勝利点購入に切り替えると有利か - 西尾泰和のはてなダイアリー

    1行まとめ:ドミニオンでコイン戦略をする場合、10ターン目で勝利点購入に切り替えるのが一番有利だった 今までの話 ドミニオンのシミュレーション ドミニオンのシミュレーション2 でわかったように、アクションカードを一切買わなくても12ターン目には平均コインが1.63になるので、1デッキが平均8コインを超えるようになる。つまりその頃には属州が買えるターンもあるってことだ。ここで問題になるのは「いつコイン購入から勝利点購入に切り替えるか」だ。焦って早く買ってはコイン濃度が薄まってしまい、後で伸び悩む。一方、コイン濃度を高めてから買いはじめれば勝利点の獲得速度は早いが、追いつく前にゲームが終わってしまう。 周りのプレイヤーがどう行動するかによって大きな影響を受けるだろうと思ったので、「nターン目手前までは金貨か銀貨を買う。nターン目以降は購入できる最も高い勝利点を買う。勝利点が買えない場合は金貨や

    ドミニオンでいつ勝利点購入に切り替えると有利か - 西尾泰和のはてなダイアリー
  • リフルシャッフルがいかに混ざらないか - 西尾泰和のはてなダイアリー

    最近オンラインでカードゲームのドミニオンをプレイしているが、オフラインでプレイする時と違ってシャッフルを自分でしないのが楽でいい。ところで、コンピュータがシャッフルする場合ランダムにシャッフルされるが、人間がシャッフルする場合はそうはならないよな。どれくらいちゃんと混ぜられているんだろう?というわけで実験してみた。 1: トランプを25枚用意する 2: 並びを記録する 3: 普段どおりにシャッフルする 2に戻る 4回シャッフルした時点でもう結果が見え見えなのでやめた 1 2 3 4 5 6 7 8 9 t j q k h1 h2 h3 h4 h5 h6 h7 h8 h9 ht hj hq 6 3 4 5 7 8 9 1 2 j q t k h1 h3 h4 h5 ht h2 h9 h7 h8 hq h6 hj 6 3 4 5 8 j q 1 2 9 7 h2 h7 t k h1 h3 h4

    リフルシャッフルがいかに混ざらないか - 西尾泰和のはてなダイアリー
    yokochie
    yokochie 2010/02/26
    ディールシャッフルって時間かかるけどそんなメリットがあったのか
  • ドミニオンの引ききりデッキについて - 西尾泰和のはてなダイアリー

    ドミニオンでコインを買うと強いと覚えたのでコインを買いまくっていたら引ききりデッキにぼこぼこにされたので、村と鍛冶屋がある場合に、それぞれ何枚ずつ買うとどれくらいの確率で引ききれるのかをテストしてみた。 凡例 2 4 1710これは村が2枚、鍛冶屋が4枚、残り10枚がコインや勝利点カードの時の引き切る確率が17.1%と読む。 出力を全部見てもいまいち面白くないので、村と鍛冶屋の枚数の合計が一定の時にどう配分するのが一番多いのかだけをピックアップ: 3 4 2030 4 4 3689 5 4 4852 6 4 5438 6 5 5997 7 5 6714 8 6 7455 9 6 7758 10 6 8045 11 6 8236 11 7 8445 12 7 8629つまり、鍛冶屋は村の半分+1〜2枚くらいをめどに買うのがいちばん確率が高い。そして村を12枚買うなんて無茶をしても引き切る確率

    ドミニオンの引ききりデッキについて - 西尾泰和のはてなダイアリー
  • ドミニオンBSWの使い方 - 西尾泰和のはてなダイアリー

    ドミニオンなどをネット対戦できるBrettspielWelt(BSW)についてざっくり書いてみた。ネット対戦でたくさんプレイするのが上達のコツかと思う。 1: http://www.brettspielwelt.de/ からダウンロードしてインストール 2: windowsだとC:\Documents and Settings\UserName\Application Data\BSW, Macだとアプリのすぐそばにあるlocalizationのなかのlanguages.txtのdominionって所にjaを書き足して起動して(Windowsだと初回起動時に生成される?) 3: 画像をクリックして適当な名前とパスワードでログインして 4: /language jaで日語にして (ときどきlanguages.txtの内容が元に戻っていて日語にならない) 5: /ghook usernam

    ドミニオンBSWの使い方 - 西尾泰和のはてなダイアリー
  • ドミニオンチートシート - 西尾泰和のはてなダイアリー

    ドミニオン/Dominion 攻略 @ ウィキ - カードリスト(日) ver.2が表形式のせいでみにくいので整形中 0銅貨 1coin 3銀貨 2coin 6金貨 3coin 2屋敷 1vp 5公領 3vp 8属州 6vp 0呪い -1vp 2地下貯蔵庫,地下室,貯蔵庫 +1act 任意の枚数捨て、同数draw 2堀 +2draw 他のプレイヤーがアタックカードをプレイしたとき、このカードを手札から公開できる。そうした時、アタックの影響を受けない。 2礼拝堂 手札のカードを4枚まで廃棄 3宰相,大臣,長官 +2coin 即座に山札を捨て札にできる 3工房,作業場 4コストまでのカードを獲得 3木こり +1buy +2coin 3村 +1draw +2act 4密偵,スパイ +1draw +1act 各プレイヤーは、山札の一番上のカードを公開する。あなたはそれを山札に戻すか捨て札にするか選

    ドミニオンチートシート - 西尾泰和のはてなダイアリー
  • ドミニオンのシミュレーション - 西尾泰和のはてなダイアリー

    概要 ドミニオンのコインを買う戦略をする際に、初手で礼拝堂を買うべきかどうかについて。 初手終了後10ターンの間「礼拝堂が出たら屋敷を捨てる。買えるなら銀貨や金貨を買う。」という戦略をとった場合に、デッキ1枚あたりのコイン価値がどうなるかを1万回シミュレーションした。結果、「礼拝堂+銀貨」は「銀貨+銀貨」、「礼拝堂+礼拝堂」、「銀貨+堀」のいずれよりも優れていることがわかった。 動機 タケルンバのドミニオン戦略 - その4 アクションカード(その1) - タケルンバ卿日記を読んで コインをかき集めるというシンプルな戦法に礼拝堂がどれだけ効くかというと微妙。効果はないとは言えないし、2金ならどうせ銀貨を買えないので、とりあえず購入して屋敷を処分する考え方はアリなんだけど、屋敷3枚を都合良く処分できるかどうかは運次第だし、礼拝堂の1枚分、コインを引く可能性が下がるので、序盤にどれだけ有利になる

    ドミニオンのシミュレーション - 西尾泰和のはてなダイアリー
  • ドミニオンのシミュレーション2 - 西尾泰和のはてなダイアリー

    ドミニオンのシミュレーションの続編。 30分ほど電車で座って移動することになったので昨日のコードに手を加えてみた。礼拝堂が手札にある場合に昨日のコードでは「屋敷を捨てられるだけ捨てる」という戦略だったが、それに加えて「銀貨や金貨を買うのにあまる量の銅貨があればそれも捨てる」に変更。 この結果、初手で銀貨と礼拝堂を買った場合の期待値は2.06, SD 0.2。礼拝堂2つを買った場合の期待値は1.73, SD 0.45となった。 前回の結果と比較しよう。 初手で礼拝堂と銀貨を買った場合、平均1.72、SD 0.1。銀貨だけを買った場合、平均1.62, SD 0.05。初手のコインが3-4に別れて銀貨を2枚買えた場合で平均1.68, SD 0.05。礼拝堂2枚を買った場合、平均1.60, SD 0.08。堀と銀貨を買った場合、平均1.59, SD 0.05、となった。つまり、「礼拝堂+銀貨」は「

    ドミニオンのシミュレーション2 - 西尾泰和のはてなダイアリー
  • C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー

    C++のテンプレートで計算をするなんて変態だと思っていたのだけど、奥さんがさくっと10分くらいで書いたFizzBuzzのコードを見るとなんか非常に素直で読みやすいコードだったので、僕もテンプレートで何かしてみることにしました。 Kazuho@Cybozu Labs: C++ テンプレートで(いまさら)FizzBuzz http://labs.cybozu.co.jp/blog/kazuho/archives/2008/04/fizzbuzz_cpp_template.php そんなわけでできたのが素数を求めるコード。途中の「数字を全部出す」と「2の倍数を出す」をコメントで残してあります。isPrime2とかisPrime3とかあるのは3つ合わせてisPrimeの働きをする型のそれぞれの名前を思いつかないので適当な名前になっています。テンプレートにはデフォルトの型引数があるみたいなのでisP

    C++のテンプレートで素数計算 - 西尾泰和のはてなダイアリー
    yokochie
    yokochie 2009/12/08
  • 特定のファイルで指定したmajor-modeとminor-modeになってほしい時 - 西尾泰和のはてなダイアリー

    todo.howmでmajor: taskpaper, minor: howmになってほしくてこう書いた。 (add-to-list 'auto-mode-alist (cons "todo.howm$" 'taskpaper-mode)) (add-to-list 'auto-mode-alist (cons ".howm$" 'howm-mode)) するとhowm-modeにしかならない。F1 v auto-mode-alistしてみると後から追加したものが先に来るみたいだ。そこでこう書いた。 (add-to-list 'auto-mode-alist (cons ".howm$" 'howm-mode)) (add-to-list 'auto-mode-alist (cons "todo.howm$" 'taskpaper-mode)) こんどはtaskpaper-modeしかつか

    特定のファイルで指定したmajor-modeとminor-modeになってほしい時 - 西尾泰和のはてなダイアリー
  • YAMLのヒアドキュメント - 西尾泰和のはてなダイアリー

    twitterで「YAMLにヒアドキュメントみたいなのがあればいいのに」という声が聞こえたので「あるよ」と答えたけど、ぐぐってみてもわかりにくいのでわかりやすくするためにエントリー化。 リファレンス(YAML Ain’t Markup Language (YAML™) Version 1.2)の2.3節「Scalars」から2件引用 # ASCII Art --- | \//||\/|| // || ||__name: Mark McGwire accomplishment: > Mark set a major league home run record in 1998. stats: | 65 Home Runs 0.278 Batting Averageね、難しくないでしょ?ヒアドキュメントとの大きな違いは終了記号があるのではなく、インデントでブロックを表現しているという点。

    YAMLのヒアドキュメント - 西尾泰和のはてなダイアリー
  • 86開発合宿 - 西尾泰和のはてなダイアリー

    10人くらいの部屋が3つ。 なんだこの高校の修学旅行みたいな雰囲気は!と言ったら修学旅行で全員ノートパソコンとかあり得ないと言われた。 結構広くてきれいな旅館で、24時間温泉に入れて、電子レンジとかお湯とか使える。会議室も借りられる。ちょっと遠いことをのぞけばいい会場だ。 昼ご飯はカレー。 「VMは嫌いです」(上野氏) TwitterPodを入れる。 かっこいい。 マリオの効果音FLASH http://pya.cc/pyaimg/pimg.php?imgid=23982 今度ネタに使おう HugFlash(Windows95/98/Me / 画像&サウンド) http://www.vector.co.jp/soft/win95/art/se326509.html MacBook に VMWare 入れないとなー。Windows用のとか使えないの不便だな。 MOONGIFT: » FLVフ

    86開発合宿 - 西尾泰和のはてなダイアリー
    yokochie
    yokochie 2008/04/05
  • 1