タグ

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

  • ターミナルで動画を観る試み - moriyoshiの日記

    Unicode文字セットの一部に、これといって用途がわからないものがある。block elements というものだ。 Block Elements (Range: 2580-259F) マイコン世代にはおなじみのセミグラフィクス用キャラクターだ。なぜ Unicode 時代にもなってこれが必要だったのだろうという疑問はあるが、何にせよ、ノスタルジーをかき立てる身近な存在には違いない。 今日はこれを使ってターミナルで動画を見てみたいと思ったのでこんなコードを書いた。 出力はこんな感じ。 charfb: semigraphics on a Unicode-capable terminal.

    ターミナルで動画を観る試み - moriyoshiの日記
    jazzanova
    jazzanova 2013/06/03
  • PHP だけで非同期 DNS レゾルバを書く - moriyoshiの日記

    fiber について調べてて、そういえば PHP には tick とかいうのがあったなあと思い、頭に浮かんでから 30 分ほどでできたのがこれ。きれいに書けてないのは Net_DNS が汚いからと、PHP の select() の API のせいです。そうそう、Net_DNS が必要です。 <?php require_once 'Net/DNS.php'; class AsyncIOHandler { const READ = 1; const WRITE = 2; private $hdlrs = array(); private $readees = array(); private $writees = array(); private $in_crit_section = false; function add($sock, $event, $hdlr, $timeout) { i

    PHP だけで非同期 DNS レゾルバを書く - moriyoshiの日記
  • 俺とPHP - moriyoshiの日記

    なんか知らないうちにPHPを全然書いたことがないという噂が広まっていて心外すぎるので弁明しておく。長くなるかもしれない。 PHPを使い始めたのはちょうど10年くらい前のことだと思う。4.0.3 あたりが出た頃だ。当時友人たちとシラバスの情報を共有するサイトをつくろうとしていて、PHP を紹介された。データベースに接続してデータの出し入れをするような仕掛けを簡単に作れるという。 それまでは web で何か作るといったら Perl だったし、テンプレートエンジンとかマルチパートパーサとかをまとめたオレオレ web アプリケーションフレームワークを作ってお茶を濁していた。Perl はかなり好きだった。それでも、PHP の手軽さは輝いて見えた。コードをそのまま HTML に埋め込めることでさえ、「poor-man's ASP」だと思って感激していた。マニュアルを見れば、答えが書いてあったから、動く

    俺とPHP - moriyoshiの日記
    jazzanova
    jazzanova 2011/02/05
    おっぱいおっぱい
  • PHPのはなし ― by moriyoshi - moriyoshiの日記

    PHPのコミッタ申請したのは2002年の9月くらいだし、PHP は何度も fix(修正)しているから「関係ない第三者が」「勝手に」とか言われるのは正直腹が立つが。(Pythonとかあらゆるメジャー系スクリプト言語にバグレポートしてるのよ、一応) – 【お前ら貢献したことあるのか?お前らの方が第三者だろうが!】 なんで今更になって物議を醸してるのか、アホくさ、って感じ。 JAVA を表現するときに、「JAVA TEAは大塚製薬の登録商標です」といつも書くのと同じように、「PHPはPeace and Happiness through Prosperityの略です」と今後書くようにすれば、なんも焦ることはないじゃん。 (元ネタが支離滅裂すぎるので) あんまり面白くならなかった。

    PHPのはなし ― by moriyoshi - moriyoshiの日記
    jazzanova
    jazzanova 2010/06/24
  • 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の日記
  • なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記

    追記:「kzk's blog」の「Writing TokyoCabinet wrapper for Go language」で紹介御礼。この記事は cgo を使った TokyoCabinet のラッパーの書き方を解説しているので、下記のコードと組み合わせて当に tc が backend になっている KVS を書いてみるのもよいかも。 『早速 Go 言語を試してみる!』とか。 『Go で無駄にチャンネルを使ってクイックソートのようなものを書いてみた』とか。 こちらはというと、試しに memcache バイナリプロトコルで通信する KVS もどきを書いた。 サーバのイベントループで go すれば全部済むのが楽ちんですね。 追記: HandleConn() の中で、backend_ch を backend との送信と受信両方に使っていたのだけど、ここにあるように、まったく誤りだということが分

    なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記
  • PHP に autoboxing 追加するパッチ - moriyoshiの日記

    先日は、大量の「これはひどい」タグをありがとうございました。これからも PHP の生けるマジコンとして突っ走る所存です。 配列は、以下のようにして繋ぐことも <?php class Ref { var $val; function __construct($a) { $this->val = $a; } } function ref($a) { return new Ref($a); } ref(array(1, 2, 3))->val[0]; PHP で引数をそのまま返す関数を作っておくと便利 autobox があると便利だよねえ。ということで作りました。 <?php class IntObject { private $val; function __construct($val) { $this->val = $val; } function dump() { var_dump($t

    PHP に autoboxing 追加するパッチ - moriyoshiの日記
  • JavaScriptで音を鳴らしてみよう - moriyoshiの日記

    id:Voluntasのおかげで自分的に再燃したブックマークレット熱。まあブックマークレットというと実用的な感があるけど、まったくそんなことはなく、要はワンライナーのこと。 いろいろ作ってみた中で、ちょっと汎用化できそうなものがあったので若干体裁を整えてみたのがこれ。仕組みは単純で、16KHz 8bitのwavファイルをオンザフライで生成して、それをdata:スキーム化した上で隠しiframeのsrcに突っ込んでいるだけ。なので、ブラウザ側にaudio/wavを再生できて、しかも自動再生してくれるプラグインが必須というところに注意。 追記1: undefinedとNaNの扱いでバグがあったので修正。 追記2: generateして余った分を切り取るspliceで符号が逆になっていたのを修正。ほんとすみません。 var SoundPlayer = { HEADER: "WAVEfmt\x20

    JavaScriptで音を鳴らしてみよう - moriyoshiの日記
  • あなたがRoRを使わない10の理由に違和感を感じる幾多の理由 - moriyoshiの日記

    別に個人的にGREEでEthnaを使ってたから、とか藤さんと個人的に知り合いだからだとかそういう理由じゃなくても、ここでEthnaが引合いに出されるのはやっぱり違和感がある。だからあえて書く。勘違い君を増やしたくないので、ネタにマジレス。 EthnaってあのクソなStrutsの劣化コピーwwwwww -- Ethnaは確かに洗練されたフレームワークではない。それは誰しもそう思うだろう。実際に一緒に仕事をしていた同僚はみなRoRを引合いに出しては「なんでEthnaには○○がないの?」と言っていたように思う。でも、フレームワークって洗練されているか否かという観点で語るもんじゃない。現実世界の問題 (つまり案件一つ一つ) を、どうやって大勢でよってたかって解決するか、という解法に対するアプローチに過ぎないからだ。そして、いかなるアプローチでも現場の大多数が違和感を感じるならそれを選択するべきで

    あなたがRoRを使わない10の理由に違和感を感じる幾多の理由 - moriyoshiの日記
    jazzanova
    jazzanova 2007/03/16
    ネタに
  • 1