凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Node.js

Node.js でマルチスレッド対応のネイティブモジュールを作成する

はじめに 前回(Node.js で C++ アドオンから EventEmitter のイベントリスナを呼ぶ - 凹みTips)、C++ のネイティブモジュールから EventEmitter を利用して JavaScript 側で定義したイベントリスナを呼ぶ方法を紹介しました。ただ Node.js はシングルスレ…

Node.js で C++ アドオンから EventEmitter のイベントリスナを呼ぶ

はじめに EventEmitter は Socket.IO などでも採用されているように、次のようなコードでイベントリスナの登録/処理ができるモジュールです。 var EventEmitter = require('events').EventEmitter; var ev = new EventEmitter(); ev.on('hoge', function(dat…

node-xbee を使って JavaScript で XBee から温度取得してみた

はじめに XBee は ZigBee 規格で通信を行なってくれる小型の無線通信モジュールです。前回(boost::asio::serial_port で ZigBee と会話してみた - 凹みTips)は C++ で ZigBee を扱いましたが、今回は Node.js での値の取得をやってみたいと思います。 出来…

Mac OS X で node-gyp するのに -std=c++0x つけようとしてハマったけど解決した

はじめに node-waf はオワコンと聞いて node-gyp を使おうと思ったのですが、Mac で相当ハマったのでメモします。 環境 Mac OS X 10.8 Ubuntu 10.04 (比較検証用) 問題点 公式 の HelloWorld を C++11 風に書いてモジュール作れるかなぁ、と試してみました…

node-iRemocon つくった

はじめに 前回(http://d.hatena.ne.jp/hecomi/20120930/1349018540)、iRemocon の IP 調べるのどうやれば良いのかな…、という締めだったので、やってみました。ついでに iRemocon を便利に使える Node.js モジュールも書きました。 iRemocon?という方は一…

Node.js で SSDP したり TCP/IP で Socket 通信したりする

はじめに iRemocon の発見や操作を node.js から行いたいな、と思って調べてみました。 SSDP 参考: Xedecimal / node-ssdp — Bitbucket インストールするには、 $ npm install ssdp で OK のようです。ただ、mac だとうまく行かなかったので mercurial 経由…

モテる! Node.js でつくる twitter ボット制作

というタイトルで身内の勉強会で発表してきました。資料は以下になります。 勉強会の時に気づいた資料の間違いや補足などを追記して SlideShare にアップしておきました。 モテる! Node.js でつくる twitter ボット制作 みんなループにハマって @ 飛ばしま…

Twitter のリストの TL を定期的にメールで送信してくれるようにしてみた

はじめに 行き帰りのぶちぶち電波が途切れる地下鉄でイライラしながら TL をスクロールしまくって遡るのが面倒だったので作ってみました。 API 1.1 時代を見据えて、リストのツイートを取得する API を使わずに Streaming API 経由でデータを取得しているの…

Twitter の TL を全部 MongoDB にぶち込んでニヤニヤする

はじめに タイトルの通り、自分の Twitter のタイムラインを全部 DB にぶち込んで後でニヤニヤする方法を紹介します。データの取得と保存は Node.js + MongoDB で行います。 これで MongoDB シェル上で以下の様な形で過去のツイートを検索できるようになりま…

on{x}が面白いので色々やってみた

はじめに https://www.onx.ms/#!landingPage on{x} とは Microsoft が開発している Android 上で動く「日常のタスクを自動化してくれる」ツールです。Android の機能で何かイベントをキャッチ(ある場所についた、ある WiFi spot に接続した等)したらほげほ…

20 行で作る node.js による Twitter bot 作成講座

はじめに あんまり見当たらなかったので node.js での Twitter bot 制作について解説してみます。つぶやきを受け取ってそれをそのままオウム返しするところまで 20 行くらいで実現できます。User Stream でつなぐので cron で回す必要も無いです。(追記: 201…

node.js の exec の同期版を作ってみた

はじめに タイトル通り node.js の exec 関数の同期版を作ってみたというお話です。 問題点 node.js の child_process から使える exec 関数は非同期に行われるので、例えば A という処理をコンソール上で行なって成否判定をしてから、 B を行いたい、といっ…

パーサジェネレータ Gin を使って正規表現(っぽい)文字列を処理してみた

はじめに Gin は Boost.Spirit 風のパーサを JavaScript でお手軽にかけるライブラリです。EBNF っぽく文法を書くことができ、Spirit のようにセマンティックアクションを使ってゴリゴリと文法を解析、その場で計算等もすることができます。また、すべて Jav…

オンライン学習ライブラリ oll の node.js アドオンを作って JavaScript で機械学習させてみた

はじめに OLL によるオンライン学習を試してみた - 凹みTips にて oll (Online-Learning Library) を触ってみた記事を書きましたが、これを元に oll を node.js のアドオン化をしてみました。 ダウンロード hecomi/node-oll · GitHub 使ってみる github の …

node.js の mecab addon 作った

はじめに node.js のオレオレアドオンを拡充していきたいと思います。目的は MeCab そのものでなく、どちらかというと文字列をカタカナに変換したかっただけなのですが、そういえば v8::Array 使ったこと無いなぁと思い、勉強も兼ねて書いてみました。 ちな…

node.js で JavaScript 側で定義した関数を C++ から呼ぶ方法

はじめに 例えば、なんか重い作業が回っていて、それが終わったら JavaScript 側で予めセットしておいた関数を呼びたい!みたいなときに使えます。 参考ページ Callbacks from Threaded Node.js C++ Extension | Brave New Method コード ここでは関数の名前…

Node.js 用 Open JTalk アドオンを作ってみた

はじめに Twitterの内容をベラベラ喋ったり、こっちの問いかけに応答してくれるようなシステムを作ろうと思っているので、その一環として作ってみました。 内容は過去の継ぎ接ぎのような感じです。 v8 を利用した C++ から JavaScript へクラスを簡単にエク…

Twitter Streaming API + node.js でブラウザ用簡易 Twitter クライアントを作ってみた

はじめに 前回、node.js で Twitter Streaming API につないでみた - 凹みTips という記事を書きました。今回は取得した情報をクライアント側(ブラウザ側)へ取得した情報を Socket.IO(Socket.IO: the cross-browser WebSocket for realtime apps.) を用…

node.js で Twitter Streaming API につないでみた

はじめに node.js を触り始めてみました。Twitter Streaming API を色々と弄りたいなと思い導入しようとしたのですが、色々と躓いて時間がかかってしまいました。今は何とか安定して使える環境になったのでメモを残しておきます。 環境 Ubuntu 10.04 node 0.…