凹みTips

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

JavaScript

遠隔コンセントタップ WeMo を SOAP で動かすハックやってみた

はじめに WeMo は belkin 社が提供しているホームオートメーション製品で、iPhone からコントロールできる電源タップ (WeMo Switch) やモーションセンサー (WeMo Motion) といったものがあります。 WeMo Switch Belkin WeMo 家庭用電源リモートスイッチ + …

Node.js × PhantomJS で何でもサクサクスクレイピングするよ!

はじめに 先日、PhantomJS でログインが必要なページでも自由自在にスクレイピング - 凹みTips という記事を書きました。 前回は PhantomJS のみを用いてスクレイピングを行なっていましたが、スクレイピングした結果を使って色々やりたい!となると、Node.j…

PhantomJS でログインが必要なページでも自由自在にスクレイピング

はじめに PhantomJS | PhantomJS PhantomJS はヘッドレスな(ブラウザ画面のない)QtWebKit ベースのブラウザで、JavaScript の API を通じて、そのブラウザを自由自在にあやつることが出来ます。使用シーンとしては、Jenkins などの CI ツールとの組み合わ…

Google の URL 短縮サービスを Node.js で使う

はじめに Google の URL 短縮サービス goo.gl を使ってみようと思って Node.js で書いてみました。 goo.gl について Getting Started - URL Shortener API — Google Developers に書いてあるようにこんな感じに使えます。 $ curl https://www.googleapis.com…

作ってきた音声認識家電コントロールシステムのまとめ

はじめに 今年初めに公開された引越ししたので未来なお部屋を作ってみた。 - お前の血は何色だ!! 4 に触発され、リモコンはオワコン。音声認識でお部屋の家電を操作してみた。 - 凹みTips なる記事を書きましたが、最近はiRemocon も音声認識対応し、FHC や …

node-julius を更新して npm に登録した

はじめに Node.js で簡単に音声認識できるモジュールを作ってみた #nodefest - 凹みTips にて Julius の Node.js モジュール化を行いましたが、アップデートをかけたので報告します。 更新内容 ICU のモジュール依存をなくした npm からインストールできるよ…

Twitter のアイコンを音楽に変換するサービス TwMidi を作った

はじめに Twitter アイコンが音楽になったら良いなー、と思って作ってみました。 場所 TwMidi - あなたの Twitter アイコンを音楽に - 音楽というか適当な音の羅列って感じになります。。 仕組み コードはかなーり適当ですが、ざっと以下のような感じです。 …

OpenJTalk の Node.js モジュールを作り直した

はじめに 前回、OpenJTalk を使って Node.js で音声合成するモジュール作った - 凹みTipsで、OpenJTalk で言葉を喋らせることの出来る node モジュールを作りました。が、これを Julius の node モジュールと併用して使おうとしたところ、エラーで動きません…

OpenJTalk を使って Node.js で音声合成するモジュール作った

最新版の記事はこちら OpenJTalk の Node.js モジュールを作り直した - 凹みTips はじめに OpenJTalk はフリーの日本語音声合成エンジンです。 Open JTalk 以前、Node.js 用 Open JTalk アドオンを作ってみた - 凹みTipsというエントリを書きましたが、当時…

mmd.gl.enchant.js を使ってミクさんと音声認識で会話してみた

はじめに 本記事は、東京 Node 学園祭 2012 の LT 枠 - 6番目で発表したデモ内容の紹介になります。スライドは以下になります。(2012/11/25 20:57 貼り間違えたので修正) 構成としては、発表で紹介した Julius の Node.js アドオンから得た音声認識結果を …

Node.js で簡単に音声認識できるモジュールを作ってみた #nodefest

はじめに この記事は東京Node学園祭2012 アドベントカレンダーの 23 日目の記事です。現在、オープンソースの大語彙連続音声認識エンジン Julius を利用して音声による家電操作を行なっているのですが、どんな言葉を認識させるかの文法をゴリゴリ書いたり、…

MeCab で非同期に形態素解析する node-mecab-async を作って npm に登録してみた

はじめに node.js の mecab addon 作った - 凹みTipsというタイトルで前に MeCab の Node.js モジュールを作成しました。MeCab モジュールは他の人の手で作られたものが npm や github に幾つか上がっていますが、node-waf でコンパイルする古いものだったり…

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-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 経由…

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…

パーサジェネレータ 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 用 Open JTalk アドオンを作ってみた

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

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の肆 -

はじめに Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の壱 - - 凹みTips Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の弐 - - 凹みTips Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の参 - - 凹みTips とやってきて第4回目…

JavaScript から iRemocon/Julius/OpenJTalk を制御できるようにした

はじめに v8 を利用した C++ から JavaScript へクラスを簡単にエクスポートするヤツ作ってみた - 凹みTips にて作った C++ クラスを JavaScript に持っていくヤツをちょっと改良しました HAS-Project/v8.hpp at master · hecomi/HAS-Project · GitHub creat…

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の参 -

はじめに 前回、敵を表示したので、今回はプレイヤーを表示して操作するところまで作ります。↓のような感じです。 プレイヤーの表示 こんな画像を用意しました。 まずは今までと同じように、 Player の画像やその他情報を Materials に登録 Player クラスを …

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の弐 -

はじめに 前回、N-way 弾を発射するところまでやりました。今回は敵を表示するところを書いてみたいと思います。 用意する画像 オリジナルサイズ 拡大 こんな敵の画像を用意しておきます。横方向は時間経過によるアニメーション、縦方向が向きです。 ではこ…

Canvas を使ってみんなもお手軽に弾幕作ろうぜ!! - 其の壱 -

はじめに 勉強がてら Canvas を使ってなにか作りたいなーと思いまして、昔作っていた STG のドット素材を利用して、簡単なマルチタッチ対応 STG を作ってみました。 だんまくてすと 触った指の数だけゆっくりが出てきます。マウスでもプレイ出来ます。死んだ…

v8 を利用した C++ から JavaScript へクラスを簡単にエクスポートするヤツ作ってみた

はじめに 前回、v8 を利用した C++ から JavaScript 側へ簡単に関数をエクスポートして実行するクラスを作ってみた - 凹みTips というエントリを書いたのですが、今回はクラスも簡単にエクスポートできるようにしてみました。前回の内容も踏まえて紹介します…

C++ から JavaScript 側へ簡単に関数をエクスポートして実行するクラスを作ってみた

はじめに V8 と戯れてました。…もとい虐められてました。V8 流行ってから相当経つし、ネット上にかなりの情報が転がってるだろう、とタカをくくって取り組み始めたのですが、やりたかったことを実現しようとすると、うーむ、となってしまい結構悩みました(…