ブックマーク / qnighy.hatenablog.com (8)

  • 古いRubyをビルドする - 簡潔なQ

    動機 現時点でRubyの最新版は2.4, サポートされているのは2.2までで、2.1以前はメンテナンス対象外である。そのような古いバージョンを動かすのは決してよいことではない。 しかし実のところ、現在でも多くのWindowsマシンで、Ruby1.8.1とRuby1.9.2p0が動作している。具体的には、RPGツクールXP, RPGツクールVXというソフトウェアで作られたゲームRuby1.8.1の処理系とともに配布されており、RPGツクールVX Aceというソフトウェアで作られたゲームRuby1.9.2p0の処理系とともに配布されている。既に多くのゲームが世に送り出されているのみならず、これらのいずれのツールも、未だにそれぞれ根強い人気があり、今でも多くの名作が作られている。「ふりーむ」というサイトで「RPGツクール XP」と検索した結果からも、その人気を伺い知ることができる。 そういっ

    古いRubyをビルドする - 簡潔なQ
    zu2
    zu2 2017/09/27
  • ipc_botの紹介 - 簡潔なQ

    この記事はTheorem Prover Advent Calendarの22日めの担当記事です. 今年の僕の持ちネタの一つですが,ipc_bot というTwitter botを作りました. https://twitter.com/ipc_bot このbotは直観主義命題論理の命題を投げると解いてくれるbotです. 仕組み 証明を探すのは適当にやっても出来るのですが,証明が存在しないことを確認するのは結構大変です. (古典論理の場合は与えられた命題の否定をSATソルバーにかければ正誤がわかりますが,直観主義論理命題論理だとそう簡単ではありません) 証明が存在するかどうかを有限時間内で判定するには,推論規則を色々いじる必要があります.しかしその説明をはてなブログで書くのが面倒になってしまったので過去に某所に寄稿したものを見て下さい. http://www.tsg.ne.jp/buho/305/

    ipc_botの紹介 - 簡潔なQ
    zu2
    zu2 2013/12/26
  • Advent Calendar Advent Calendar (2012) 12日目 - 簡潔なQ

    飛び入りで書きます。Advent Calendar Advent Calendar 僕が今日紹介するのはLispギャグアドベントカレンダーです。 Lispギャグアドベントカレンダー 2011 Lispギャグアドベントカレンダー 2012 Lispに関するギャグが、かわいい絵とともに書かれています。 ですが、このギャグ、ものによっては非常にわかりづらいです。したがって、頭の体操を行いたいという人はこのアドベントカレンダーを見るといいかもしれません。 まとめると、このアドベントカレンダーを読むと得られそうなものは Lispに対する関心・Lispに関する断片的な知識 かわいい絵による癒し アハ体験とかいうやつ ただ、パターンが掴めてしまうとそれほど面白くはないかもしれない。でも癒されます。 これだけではつまらないので、僕なりの解答を載せておきます。どうしてもわからなかったら参考にするといいと思い

    Advent Calendar Advent Calendar (2012) 12日目 - 簡潔なQ
    zu2
    zu2 2012/12/16
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    zu2
    zu2 2012/12/04
  • 小学校算数における乗算の非可換性について(書きなおした)(書きなおした) - 簡潔なQ

    ↓今読みなおすと頭抱えたくなるような記事なんですが残しておきます 基的なことは 黄金原更新, 【もはや最短理解でもなんでもない】なぜ5×3ではなく3×5なのか - 跡地, たくさんの反響ありがとうございます - ワタタツの日記!(2010-11-13)に譲るとして。あとその時点での「数」は自然数だから、実数と混同しないでほしい>混同してる人。 なんで乗算を非可換で定義するかって話だけど、それは非可換なまま定義すれば、乗算を構成的に定義できるからじゃないかな。うまく説明できないけど。 Coqだと、自然数の乗算は以下のようになる。(Coqだけの話ではないと思う…) Fixpoint mult (n m:nat) : nat := match n with | O => 0 | S p => m + p * m end「n×mっていうのは、mをn回足したものですよー」(小学校算数とは逆のよう

    小学校算数における乗算の非可換性について(書きなおした)(書きなおした) - 簡潔なQ
    zu2
    zu2 2010/11/27
    「知らないふりゲーム」 (笑) たしかに。今にして思えば、知らないふりじゃなくて、恐ろしく知ってるふりゲームがしたかったな。もう遅いが。若い人はがんばってください。
  • 人材獲得作戦に応募してみた - 簡潔なQ

    人生を書き換える者すらいた。: 人材獲得作戦・4 試験問題ほか の問題を解いてみた。 アルゴリズマーとしてはこの程度の問題20分で書けないとパソコン甲子園とかで辛いなあと思うのですが、40分でできました。 頭を使って解けるかどうかは知りませんが、知識としてこの程度の問題の解法を思いつける程度のものは持ってほしいですよね。 最短距離の算出は典型的なBFS。 最短ルートの特定はBFS深度を記憶して逆から探索する方法で、これはEdmonds-Karpで必要となる。 #include <cstdio> #include <string> #include <deque> #include <vector> #include <utility> using namespace std; int main(int argc, char **argv) { vector<vector<int> > ta

    人材獲得作戦に応募してみた - 簡潔なQ
    zu2
    zu2 2010/01/11
    入力はASCII&&ファイル(標準入力じゃなくて)を仮定できるならmmapという手もあるかなあ。
  • CUDAコンパイラは糞。マクロを正常に展開しない。 - 簡潔なQ

    某Hiroaki Softwareが、Win32APIコードをcuコードに混ぜてコンパイルしようとして妙なエラーに巻きこまれたらしいので調査したら、 CUDAのコンパイラであるところのnvccはクソであることが判明した。 具体的には、CreateWindow()中に一行コメントを書こうとして失敗したらしい。 この動作を以下のように再現できる。 test.cu #define func_macro(x,y) func(x,y) func(x, //comment y); func_macro(x, //comment y); do preprocessing $ nvcc -E test.cu | tail{ return cudaFuncGetAttributes(attr, (const char*)entry); } # 1 "<command-line>" 2 # 1 "test.c

    CUDAコンパイラは糞。マクロを正常に展開しない。 - 簡潔なQ
    zu2
    zu2 2010/01/11
  • Rubyのユーザーを増やすためにできること。 - 簡潔なQ

    Rubyは素晴らしい言語だ。(ここで愛情表現をしてもいいけどアレな内容になりそうなのでやめる。) だけど、Rubyユーザーが増えるためには、まだまだ障害が大きい。そしてその中には、非常に些細な問題もあると思う。 例えば、別の言語のユーザーがRubyに触れるのをためらう一つの要因は、やはりその見た目があると思う。 例えば、BASICという言語がある。僕はあの言語はあまり好みではない。そもそもかなり歴史のある言語で、利便性が高いとは言いづらい。 Visual Basicという言語は、BASICの悪い面を数多く引きずっているうえに、余計な概念を導入して、さらにわかりづらくなっていると思う。 上記のような理由で、BASIC系の言語によいイメージを持たない人は多いと思う。また、BASICをそもそも知らなくても、世の中にはC言語に近い記法を持つ文法が普及していて、そちらに慣れている人は多い。 Ruby

    Rubyのユーザーを増やすためにできること。 - 簡潔なQ
    zu2
    zu2 2009/10/28
    do - end は BASIC ではなくて、 Pascal や その先祖の ALGOL から来てるんじゃなかろうか。 / FORTRAN だと、 10 CONTINUE の世界だし。
  • 1