タグ

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

  • 「Boost.Python で C++ から Python の関数オブジェクトをコールする」より簡便な方法 - moriyoshiの日記

    http://d.hatena.ne.jp/ousttrue/20100204/1265291359 たまたま目にしたので。 生の PyObject* を触らなくとも、 #include <boost/python.hpp> void call_python_func(boost::python::object func) { func(123); } BOOST_PYTHON_MODULE(calling_python_func) { boost::python::def("call_python_func", &call_python_func); } これだけで OK ですよ。 実行結果: Python 2.5.1 (r251:54863, Feb 6 2009, 19:02:12) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type

    「Boost.Python で C++ から Python の関数オブジェクトをコールする」より簡便な方法 - moriyoshiの日記
    rti7743
    rti7743 2011/04/29
    めも
  • 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
  • 俺とPHP - moriyoshiの日記

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

    俺とPHP - moriyoshiの日記
    rti7743
    rti7743 2011/02/05
    おっぱいおっぱい
  • Adobe MAXのセッションでなぜか発表してきた - moriyoshiの日記

    2009/2/23追記: 発表資料はこちら。 最近「何の人かわからない*1」とよく言われ、アイデンティティを喪失しつつある今日このごろ、Adobe MAXというアドビさんのイベントの午後のセッション「出張JUIカンファレンス - Flashはもういらない?」にて、kawa.netの中の人にお誘いを受けたので、 id:gyuque さんや id:amachang さんや id:yukoba さんというすごい面々の中に、一人だけ「君だれ?」状態で発表してきました。関係者の皆さんお疲れさまでした。 ネタは例の「JavaScriptで音合成」だったわけですが、その後のSpark Projectのセッションの発表で id:zk3 さん作の「sazameki」に完全にやられた感じで、ASに対する闘志を新たにしました。JSでdataスキーム使ってストリーミンしちゃうもんね。 さて、日発表したデモコード

    Adobe MAXのセッションでなぜか発表してきた - moriyoshiの日記
    rti7743
    rti7743 2010/08/13
  • 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の日記
    rti7743
    rti7743 2010/08/13
  • 動的な配列サイズの増やし方 - PHPの場合 - moriyoshiの日記

    もう誰か触れてそうなもんだけど。 PHP : 2 倍?(これは PHP から使う配列の実装とは別物かな…?) // Zend/zend_dynamic_array.c : 43行目〜 if (da->current == da->allocated) { da->allocated *= 2; http://www.kmonos.net/wlog/111.html?_2334100705 PHP の場合、動的に配列サイズが変更される箇所は、 文字列連結 連想配列 の2つだけど *1、後者はハッシュテーブルなので、例の議論は当てはまらない。なので前者だけを見る。 上の zend_dynamic_array.c は関係ありません>< zend_operators.c: ZEND_API int concat_function(zval *result, zval *op1, zval *op2

    動的な配列サイズの増やし方 - PHPの場合 - moriyoshiの日記
    rti7743
    rti7743 2010/07/27
  • PythonにC++のconstみたいな、Javaのfinalみたいな修飾子を追加する… - moriyoshiの日記

    パッチを書きました。 Python 2.6.5 (r265:79063, 魔改造, May 2 2010, 17:41:13) [GCC 4.0.1 (Apple Inc. build 5465)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> def a(): ... readonly a = b = 3 ... a = 3 ... File "<stdin>", line 3 SyntaxError: variable 'a' is read-only >>> def a(): ... x = 3 ... readonly x = 3 ... File "<stdin>", line 3 SyntaxError: name 'x' is assigned to b

    PythonにC++のconstみたいな、Javaのfinalみたいな修飾子を追加する… - moriyoshiの日記
  • Objective-C を使わずに Cocoa を使ってみるテスト - moriyoshiの日記

    PyObjC とか RubyCocoa とかの話ではなく、C で書くって話。 なんかも結局 #import 使ってるので全部自前で用意した次第。 $ gcc -o test test.c -framework AppKitなどとしてコンパイルして実行すると空のウィンドウが出現します。 Objective-C 2.0 の API は使ってないと思うので Tiger なんかでも動くかも。 Leopard + Intel Mac でしか確認してない。 ↓以下コード

    Objective-C を使わずに Cocoa を使ってみるテスト - moriyoshiの日記
    rti7743
    rti7743 2009/08/04
    なげぇー
  • 「パッチを当ててやってもいいんだぞ、お前が嫌なら」 - moriyoshiの日記

    PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); PHP で引数をそのまま返す関数を作っておくと便利 PHP はどうせマジメな言語ではないので自分用に作り替えるくらいが丁度いい。 以下 diff↓

    「パッチを当ててやってもいいんだぞ、お前が嫌なら」 - moriyoshiの日記
    rti7743
    rti7743 2009/08/04
  • 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