Entries from 2008-01-01 to 1 year

gVimを自分のアプリに埋め込む

追記: ソースコードを少し修正。あと、このやりかただと複数起動ができないので何か方法を考える必要がありそう。 追記2: 実行前にgvimをOLEオートメーションサーバとして登録する必要あり。gvim.exe -register。詳しくは help if_ole を。gVimにはCOMインタ…

invalid iterator同士の比較

諸事情でブログ名変えました。libstdc++とSTLportでは普通に通る下のようなコードが、VC++ (dinkumware) (2008-12-18 04:50追記: VC++の_SCL_SECURE系のチェックによるものなのでdinkumwareはあんまり関係ない) では動かなくて困っていた。operator==()で落…

invalid iterator同士の比較2

結局、上の問題への対処として、適当な空コンテナを作って、そいつのイテレータを有効でないイテレータとして扱う事で逃げようとしたんだけどそれでも依然例外が出る。テストコードは以下。さすがにこれが通らないと仕様に合致しているとは言えないだろう。 …

java-ja第十二回「第1回チキチキ(ry(仮」に混入してきた

http://java-ja.yoshiori.org/index.php?%E7%AC%AC%E5%8D%81%E4%BA%8C%E5%9B%9E">java-jaに混入してきました。会場のグリーさんありがとうございました!!id:yoshioriお疲れさまでした!!ピザも食べました!!結局ぴあーって言葉はAWTでしか聞きませんでした。ぴ…

Mac OS X版のOpenOffice.org 3.0のデフォルトのフォントがヒラギノ明朝になっている件

これは何とも気持ち悪い。なので原因を調べてみた。といっても /Applications/OpenOffice.org.app 以下をgrepしただけですが。あとここにも書いてあるみたいですが。/Appications/OpenOffice.org.app/basis-link/share/registry/data/org/openoffice/VCL.xcu…

Memcache拡張モジュールを透過的に扱えるパッチを書いてみた。

PHPなんだから透過的にmemcachedとか扱えないとまずいでしょうということで。要はphp.iniに # 以下の書式が利用可能 # hostname # hostname:tcpport # hostname:tcpport:udpport # [hostname] # [hostname]:tcpport # [hostname]:tcpport:udpport memcache.a…

Drizzleのプラグインを書いてみた (認証系)

DrizzleのSASLプラグインを書いてみた。 Drizzleとは 前坂さんのブログ記事や@ITの記事などを参照してもらえれば。一言でいうと「Lean and Mean MySQL」。 Drizzleをビルドするには 1次情報の垂れ流し失礼。まず、Protocol Buffersとlibeventという2大バズワ…

JavaScriptで音を鳴らしてみよう

id:Voluntasのおかげで自分的に再燃したブックマークレット熱。まあブックマークレットというと実用的な感があるけど、まったくそんなことはなく、要はワンライナーのこと。いろいろ作ってみた中で、ちょっと汎用化できそうなものがあったので若干体裁を整え…

Python温泉でやったことのまとめ

実はPython温泉に行っていました。 1日目 夕方まで仕事のバグハンティング。 Boost.Asioを触ろうとコードを書き始める。 途中でBoostをMac OS XのframeworkにしたくなってきたのでBoostのビルドシステムの調査を開始。 夕食。奇妙な自己紹介 (「はじめにお詫…

/usr/lib以下に入っているlibicucore.dylibを自分のコードから使う方法

libicucore.dylib。どう見てもICUのダイナミックライブラリ。存在は知りつつも、どういうわけかヘッダファイルが添付されていないため、自分のコードから使うことができず、歯がゆい思いをしている人も多いんじゃないだろうか。 -rw-r--r-- 1 root wheel 694…

kmyaccのPHP対応パッチをリエントラントにしたよ

今回作ったものをどう簡単に説明できるかわからないけど。id:kmori58さんによるyacc系パーサジェネレータkmyaccを「ベイエリア情報局: PHPのyaccを作ったよ」でbtoさんがPHPに対応させたものをさらに拡張して、クラス形式のパーサを生成できるようにしてみま…

kmyaccで$の扱いを柔軟にするパッチ

PHP+kmyacc (あるいはperl+kmyacc) を使うときに面倒なのが意味値 (semantic value) を指定するときに使う「$」の扱い。$$ とか $1 とか $ とか $-1 とか以外は普通に変数として見てほしいのにそのへんは甘くない。なので強引にパッチあてて回避。WTF factor…

おれおれWebアプリフレームワークを勢いで(しかもPHPで)書いてみた

はじめに いったい、一日に何個のフレームワークが生まれているのだろう。そんな疑問が浮かぶほど、PHPによる (Webアプリ) フレームワークの数は尋常じゃない*1。そして、PHPほどプログラマにフレームワークを書かせる気にさせる言語も他にはないんじゃない…

サスペンド直前にクリップボードを消去するプログラム

なんかすごくニッチだけどちょっと必要になったので作ってみた。どうしても動かしてみたいという人は、 $ gcc -mwindows -mno-cygwin -o ccb ccb.cもしくは C>cl ccb.c user32.lib shell32.libとかするとコンパイルできます。iconData は ICO ファイル の中…

各ブラウザのJSランタイムがどこまで再帰できるか試してみた、という。

誰でも一度は試すと思うんだけどV8がなんかtailcall最適化してそうで気になったのでためしてみました! Windows上の各ブラウザしかしらべてません。完全にへたれです。 試したやつ Firefox (Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/…

PHP Con 前日Hackathonに参加してきましたー

id:kunit さん超おつかれですー。ちなみに、私はMozo.PHPのPHP 5.3対応とオブジェクト対応をやりました。追記: id:masaki-fujimotoが本気を出してTokyo Dystopiaの拡張モジュール書いたみたいなのでみんなで使い倒しましょう。

Observable と Undoable を使ってみる。

はっきりしたことは分からないけど、なんかバグっぽい動きをする。 import scala.collection.mutable._ object test extends Application { // XXX: なんとかならないのかこれ class ObservableArrayBuffer[T] extends ArrayBuffer[T] with ObservableBuffer…

Scalaの代入式

トンデモ注意 追記2: 水島さんからコメントをもらった。ツッコミどころが多すぎて「こんな偽情報広めんなよアホ」という心持ちでタタタタタタと丁寧にコメント欄にご指摘をされたのだと思う。毎度すみません、というわけで言い訳っぽいコメントつきで掲示。 …

生産性を高めるために作られたものではないのです。

Struts、Springベースの社内フレームワークの生産性があがらない、大規模開発でつらいというのは、ある意味し方のないことです。もともと、生産性を上げるために作られたフレームワークじゃないから。Strutsは、Servletベースの開発にMVCというアーキテクチ…

Cneonction

% curl -D - http://www.youtube.com/comment_sevlet?all_commentsとやってみたところ HTTP/1.1 500 Internal Server Error Date: Tue, 03 Jun 2008 17:45:45 GMT Server: Apache Cneonction: close Transfer-Encoding: chunked Content-Type: text/html; ch…

ぜいたくなプレッシャー

とりあえず、突然に、何らかの職務が、意味がありそうでなさそうな内容の職務が、悪くない給料と一緒に与えられて「君はこれを全うしてください」と言われる。成果に対する説明責任は、あってないようなものだとする。どうします?普通に責任感がある人なら…

参照カウントを Ubigraph + Python で可視化する

Ubigraph を使って、オブジェクトの参照カウントを可視化するスクリプトを書いてみた。といっても見れば分かるようにかなり場当たり的なナイーブな実装で、制約だらけなことに注意。 追記: Google Video の不具合で動画をアップロードしても表示されなかった…

言語の GC 機能と参照カウント (中編)

前編でブクマコメントや日記コメントで どうしたら循環参照によるリークを回避できるのかを説明してほしい PHP 5.3 で cycle collector が搭載されることについてのフォローが欲しい という意見があったので、それも順次取り上げていくことにする。本当はこ…

言語のGC機能と参照カウント (前編)

たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオ…

.ttfファイルに格納されたフォントのファミリ名とスタイルを取得するプログラム

って探せばありそうなもんだけど無線LANの調子が悪くググれなくて見つけられなかったので仕方なくCで書いてみた。もったいないので張り付けておこう。 #include <stdio.h> #include <ft2build.h> #include FT_FREETYPE_H #undef __FTERRORS_H__ #define FT_ERRORDEF(e, v, s) { e,</ft2build.h></stdio.h>…

PHPerはもっと__toString()を使ったほうがいい

PHP

(前回までのあらすじ) 「PHP」とは最近流行の、ドメイン固有言語だったものが汎用化してえげつなくなったスクリプト言語です。 val = $val; } function __toString() { return htmlspecialchars($this->val); } } $vars = array( 'a' => '<test>', 'b' => '<aho>', 'c' </aho></test>…

data: スキームと Location: ヘッダ

ふと気になって Location: ヘッダに data: スキームを指定した場合ブラウザがどういう挙動を示すのか試してみた。慣れているので WEBrick で。 require 'webrick' require 'uri' s = WEBrick::HTTPServer.new(:Port => 8080) class MyServlet < WEBrick::HTT…

Pyrex / Cython で C++ の参照を扱う方法

またまた頭が悪いせいで予想以上に時間をかけてしまった。例えば次のようなクラスを Pyrex (Cython) でラップすることを考える。 template<typename T_> struct position: public boost::array<T_, 3> { position() { (*this)[0] = 0; (*this)[1] = 0; (*this)[2] = 0; } positio</t_,></typename>…

g++の末尾再帰の最適化 (-foptimize-sibling-calls)

これを当てにできるなら、かなり Boost.Preprocessor 使わずにすむかもという。 #include <functional> #include <iostream> #include <cstddef> template<std::size_t Nrep_, typename Timpl_> struct iter { inline void operator()(Timpl_& op) const { op(Nrep_); iter<Nrep_ - 1, Timpl_>()(op); } }; template<typename Timpl_> struct iter<0, T…</typename></nrep_></std::size_t></cstddef></iostream></functional>

なんでもありな感じ

form card month year number filetype:phpあたりはメジャーだけど filetype:xml crossdomainそうか、この手もあったんだな...cf. WTF in Kabuki-cho?