凹みTips

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

JavaScript

ネットとつながる LED 時計の LaMetric を手に入れたので遊んでみた

はじめに Kickstarter で Back していた LaMetric が先月届きました。 LaMetric - Customizable Smart Ticker for Life and Business by Smart Atoms — Kickstarter LaMetric Time - clock for smart home and office LaMetric は 2014/7 より Kickstarter …

Unity WebGL x WebSocket で複数クライアント間の大量のオブジェクトを簡単に同期できる仕組みを作ってみた

はじめに まだ実験中なのですが、Unity WebGL x WebSocket で大量のクライアント間で大量のオブジェクトを同期できる仕組みを作っています。UNET や Photon によって近いうちに対応されると思うのですが、現状では使えないのと、制限なく扱えたりチューニン…

Unity 5 の WebGL で WebSocket を利用した通信をする方法について調べてみた

はじめに Unity の WebGL では現状ではネットワーク機能に制約がありますが、WebSocket は使えるようです。 (English) On the future of Web publishing in Unity – Unity Blog 以前の記事では外側の JavaScript で Socket.IO を通じて通信した内容を用いま…

Unity 5 の WebGL で外部からテクスチャを与える方法について調べてみた

はじめに Unity 5 の WebGL 出力で、外部(自分で書いた JavaScript のコード)からテクスチャを与えたいと思い、色々調べてみましたので情報を共有したいと思います。通常の画像をテクスチャとして指定する方法と、base64 エンコードした画像をテクスチャと…

Unity 5 x WebGL について詳しく調べてみた

はじめに 本エントリは Unity Advent Calendar 2014 8日目の記事になります。 Unity 5 からは Build ターゲットに WebGL が追加されます。Unity 5 プリオーダ向けベータ版で現在試すことが出来ます。 Unity - Beta - Unity 5.0 今年の 3/18 に行われた GDC20…

JavaScript(Node.js)で色々なハードウェアモジュールが動くマイコンボード Tessel を手に入れたので詳しく調べてみた

はじめに 今日、昨年夏に Back していた Tessel が届きました。 Tessel 2 次世代マイコン「Tessel」はJavaScriptとNode.jsをサポートしWi-Fiからアップデート可能 - GIGAZINE Tessel は、Node.js ベースの JavaScript 環境を利用してハードウェア制御可能な…

JavaScript で Pebble アプリを開発できる Simply.js をオンライン IDE の CloudPebble 上で試してみた

はじめに スマートウォッチの Pebble は Simply.js を利用することで JavaScript のみの開発が可能です。 Simply.js ひとりぶろぐ » 2.0で面白くなったスマートウォッチPebbleを、JavaScriptゴリゴリでネット監視装置として使う また、Pebble は開発環境とし…

Unity から Node.js を裏でこっそり立ち上げてアレコレ出来るアセットをつくってみた

はじめに 先日書いたエントリ(Unity から Node.js を起動時に裏で実行・通信して諸々の処理を肩代わりしてもらう方法考えてみた - 凹みTips)のネタをだれでも使えるようにアセットにしました。起動時に Node.js を裏で実行して面倒なネットワーク周りの処…

Unity から Node.js を起動時に裏で実行・通信して諸々の処理を肩代わりしてもらう方法考えてみた

はじめに Unity の C# の世界で完結して色々と実行してくれるのはライブラリの利用者側から見るととても楽ですが、プロトタイプをそれで作ろうとすると結構大変です。そこで、Processing なり oF なり自分の慣れ親しんだ環境で作成したものを別途動かし、そ…

Netatmo ウェザーステーションを買ってみたので Node.js でいじってみた

はじめに Netatmo という商品はご存知でしょうか?【日本正規代理店品・保証付】Netatmo ウェザーステーション NET-OT-000001出版社/メーカー: Netatmo発売日: 2013/10/10メディア: エレクトロニクスこの商品を含むブログ (1件) を見る 【レビュー】台風の接…

WebRTC でスクリーンキャプチャ(動画)をしてみた

はじめに WebRTC ではカメラからの映像だけでなくスクリーンキャプチャも可能です。イメージとしては Google Hangouts の画面共有のような形です。余り解説を見かけなかったので調べてみましたので紹介します。 デモ Screensharing with getUserMedia こちら…

Pebble SDK 2.0 Beta の JavaScript framework で Hello World してみた

はじめに 11 月末に $20 ディスカウントセールをやっていたので Pebble を買ってしまいました。Pebble は Kickstarter 発のスマートウォッチで、スマホと Bluetooth で連携してアプリが動いたり通知を垂れ流したりしてくれます(ただし日本語は現状は文字化…

結婚式二次会用に Node.js x ブラウザでタイピング対決アプリを作ってみた

はじめに 先月、友人の結婚式の二次会でタイピング対決をしたいとの企画を、幹事の友人から受けました。面白かった要件としては、 二人の顔を 2 台のカメラで映したい タイピングしてる様子をリアルタイムで見たい というものです。これをサーバは Node.js …

Qt Quick Local Storage で設定をお手軽に保存する

はじめに Qt Quick では Local Storage という SQLite ベースの DB を利用して設定の保存が可能です。 Qt Quick Local Storage QML Types | QtQuick 5.1 | Documentation | Qt Project ただ生で SQL を扱うのは面倒なので key-value ベースでデータを保存し…

Windows でも Node.js C/C++ アドオンを作ってみる

はじめに Linux や Mac で動かしている方が多いと思いますが、Windows でも Node.js を動かすことが出来ます。手順はとても簡単で、インストーラを実行するだけです。 Node.js 日本ユーザグループ 他の PF と比較すると数は減りますが、コンパイルが必要な s…

QML で表示した WebView をシェーダでいじって遊んでみた

はじめに QML では ShaderEffect という要素を利用して、表示している要素をソースにシェーダでいじることが出来ます。 http://qt-project.org/doc/qt-5.0/qtquick/qml-qtquick2-shadereffect.html そこで WebView で表示した Web ページをソースに色々と遊…

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

はじめに 1年間更新していなかったのですが、先日コメントを頂きまして再開しました。ゲーム用 JS ライブラリを使わずに弾幕シューティング作ってみる企画です。今回が最終回で、弾幕シューティングゲーム一番の醍醐味の弾幕を作ってみる回です。 第1回 〜 …

QML の WebView 内の JavaScript と外の JavaScript でやり取りをする

はじめに QML の WebView 内をゴニョゴニョしたいなと思って調べると、evaluateJavaScript すれば出来るよ!と書いてあったのですが、どうやら Qt Quick 2.0 の QtWebKit 3.0 からは API が変わったようです。 How to call JavaScript methods from HTML con…

Boost.勉強会 #11 東京 での質問への回答

はじめに Boost.勉強会 #11 東京での発表内容(Boost.勉強会 #11 東京で発表してきた - 凹みTips)で頂きましたご質問について、簡単にですが調査しましたのでまとめます。 質問の返答 Emscripten の行数が 12万行になった理由 結論としては「iostream の中…

Boost.勉強会 #11 東京で発表してきた

はじめに 本日、神保町の IIJ さんの本社で行われた Boost.勉強会 #11 東京にて「Hello, C++ + JavaScript World!」というタイトルで発表して来ました。 ちなみに Boost.勉強会ですが、本発表には Boost 成分は1ミリも含まれていないです。。 発表内容 当日…

Qt Quick での C++ × QML バインディングについてまとめてみた

はじめに QML で特定のフォルダ内に含まれる画像をスライドショーする処理を書いてみた - 凹みTips でもチラッと書きましたが、もう少し詳細に Qt Quick での C++ バインディングについて調べてみたのでまとめてみました。 Qt 始めたてなので幾つか間違い含…

QML で特定のフォルダ内に含まれる画像をスライドショーする処理を書いてみた

はじめに QML は JavaScript ベースなので、ファイルを扱うことができません(XHR とかは出来ます)。なので、特定のディレクトリに含まれる画像をスライドショーしたいなぁ、と思っても、画像パスのリストを JS から取得することが出来ず、ファイル名を JS …

Hyperlapse で環状八号線を南下する動画を Google ストリートビューからつくってみた

はじめに Googleストリートビュー上を移動するムービーを制作してくれる「Hyperlapse」 - GIGAZINE Google Street View Hyperlapse Hyperlapse は Google ストリートビューから取得した画像を用いてタイムラプス動画を作ってくれます。コードは github に公…

Emscripten で C++ の Hello World を JavaScript に変換してみた

はじめに Emscripten は今流行りのコンパイラ基盤 LLVM を利用して C/C++ のコード(正確には LLVM-IR)を JavaScript に変換してくれるコンパイラです。フロントエンドである Clang を利用して C/C++ のコードを LLVM-IR という中間言語へ変換、Emscripten …

1文字足すだけで Twitter API 1.1 対応する

はじめに みなさん、API 1.1 対応していますか?私はまだです。 今回は、既存の node-twitter(jdub/node-twitter · GitHub)を使用している人向けに、1文字足すと API 1.1 対応できるよ!というモジュール、mtwitter を紹介したいと思います。 passcod/mtwi…

SimSimi API x Web Speech API x OpenJTalk x mmd.gl.enchant.js でブラウザ上で音声対話できるヤツ作った

はじめに SimSimi とは巷で噂の凄いチャットロボットです。 参考: simsimiってアプリが凄すぎてワロタwwwwww : 無題のドキュメント 例 で、この SimSimi さんですが、API を公開しています。 SimSimi API 無料では使用制限があるようで 1ヶ月しか使え…

WeMo を操作する Node モジュールつくった

はじめに Belkin 社の WeMo を JS から操作するために、「遠隔コンセントタップ WeMo を SOAP で動かすハックやってみた - 凹みTips 」にて書いた内容をモジュール化しました。 インストール & ソースコード インストール $ npm install wemo ソースコード g…

Native Client の導入と Hello World までのまとめ

はじめに Welcome to Native Client - Native Client — Google Developers Google Native Client とは、ブラウザ上でネイティブコードを安全に実行するためのサンドボックス化技術です *1。開発者側から見れば、Chrome 上で高速に動くアプリケーションを既存…

Web Speech API で遊んでみた

はじめに “Web Speech API”をサポートした「Google Chrome 25」のベータ版が公開 - 窓の杜 2013/01/14 公開の Google Chrome v25.0.1364.29 beta-m から Web Speech API が実装されました。これで JavaScript から音声認識が出来ると言うわけで、ユーザビリ…

Google リーダーではてブのコメントを自動で見れるようにした

はじめに 皆さん、Google リーダーで日夜情報収集に励まれていると思います。その際に、はてブ数やコメントを表示してくれる素晴らしい greasemonkey のエクステンションがあることはご存知でしょうか? gr-puls-hatena - GoogleReaderにはてなブックマーク…

遠隔コンセントタップ 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…