タグ

ブックマーク / moriyoshi.hatenablog.com (5)

  • 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記

    自分の知らないCJK Ideographのバリエーションがまだあったことに戦慄している pic.twitter.com/kUlyRLDDTM— moriyoshit (@moriyoshit) March 9, 2017 などというツイートをしたところ、思ったより反響があったのでまとめておく。 上記ではあいまいに「バリエーション」などと書いたが、Unicodeとそれを扱う環境においては、バリエーションと一口に言っても次のような状況がある。 意味論的に等価な異なる字形の集合 同じ字形で異なるコードポイントの集合 aは結構なじみ深いと思う。 a-1. 異なるコードポイントにそれぞれ異なる字形が割り当てられているもの 例: 「東」(U+6771) ⇔「东」(U+4E1C) 「斉」(U+6589) ⇔「齊」(U+9F4A) 「高」(U+9AD8) ⇔「髙」(U+9AD9) a-2. 同じコードポイ

    「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
  • Linux上で動くSkype用のbotを作る方法 - muddy brown thang

    はじめに 以前、知人のやっているBeProudという会社を手伝ったのですが、BeProudでは、エンジニアの主要なコミュニケーション手段としてSkypeが使われていました。当時、趣味でたまたまSkypeのAPIについて調べていたので、悪戯っ気を出して、開発環境に即席でSkype APIを使ったbotを設置してみたところ、思いのほか好評を博し、いまやインフラと言っても過言ではない存在 *1 *2と化したようです。 まあそんな状況を眺めつつ、自宅のサーバにSkype botを設置して、お気に入りのSkypeチャットにもbotを加えてみたところ、これも結構好評だったので、興味ありそうな人向けに作成方法をまとめることにします。 Skype Public API Skype Public APIとは、Skypeを外部からコントロールするためのインターフェイスです。 Skype Public API

    Linux上で動くSkype用のbotを作る方法 - muddy brown thang
  • MallocDebug と mach_override - moriyoshiの日記

    追記:あとで分かったことがあったので一部書き直しました。 今日ひょんなことから XCode Tools の一部で /Developer/Applications/Performance Tools にある MallocDebug.app を使ってみた。 これ、便利すぎ。valgrind がないというだけで Mac OS X の開発は気が重かったけど、大体は要求をカバーしてくれそうだ。 ただ、このツールはGUIアプリのようにセッションが長いプログラムのデバッグ用に作られたようで、ターゲットが終了してしまうとそれまでの情報がすべて失われてしまうので、コンソールで動くちょっとしたアプリなどでは使い物にならない。 そこで、exit() で停止させることを考えて、GDB からターゲットを起動し、 set environ DYLD_INSERT_LIBRARIES=libMallocDebug.A.d

    MallocDebug と mach_override - moriyoshiの日記
  • PL_keyword_plugin で、Perl の lexer と re2c を組み合わせる - moriyoshiの日記

    さいきん PL_keyword_plugin というのをよく耳にするので、ためしにつかってみました。 p5-php-embed たとえば use PHP::Embed; $a = <?php print " あ ほ か"; ?>; print $a, "\n"; こんなふうに PHP をインラインで Perl にまぜたりできる。 じつは、内部的には PHP を pipe でよびだす PHP::Embed::run を実行する OP をかいているだけなので、PHP をインストールして、パスをとおしておく必要があります。 Perl の lexer にはくせがあって、Perl_lex_next_chunk() という関数をよびだすと、つぎのチャンクを PL_parser->linestr によみこんで、PL_parser->bufptr や PL_parser->bufend を更新するようにな

    PL_keyword_plugin で、Perl の lexer と re2c を組み合わせる - moriyoshiの日記
  • epollのなかみ - moriyoshiの日記

    よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている人はそんなに多くないんじゃないだろうか。もう O(n) だの O(1) だのって煙に巻かれるのもうんざりだ。 というわけで、2.6.26 の fs/eventpoll.c のコードを読んでみた。正直 Linux カーネルにすごく詳しいわけでもないので、誤りがあったら適宜突っ込んでもらえると幸いです。 前提知識として VFS モジュールがどうなってるかとかは LinuxのFSモジュールを書いてみる LinuxのFSモジュールを書いてみる (その2) のソース中のコメントを追ってもらえればと。 登場する構造体 e

    epollのなかみ - moriyoshiの日記
  • 1