タグ

ブックマーク / shokai.org (11)

  • 橋本商会 » slackとnode-lindaとhubotとdockerとibeaconとraspiとarduino接続した

    slackでhubotに頼むとドアあけてくれるようになった。hubotはじめて使った。 増井研はインドア派なので、ハローワールドするためにドアを開ける。 あと部屋を指定してスピーカーからmacのsayが流せる。 iBeaconで位置をはかって、誰が近づいたとか通知される。 試験的に、近づいたらドア勝手に開くようにしてみた。 電気ついたりとか、そういうセンサー値の大きな変化も通知される。 hubotがslackにつながってて、コマンドを待ち受けたりしてる。センサーとか実世界系の操作はnode-lindaに投げてる。 node-lindaの下にはraspberry pi+arduino+センサやサーボモータ色々のセットとか、dockerコンテナとかがたくさんぶら下がってて、色々処理してる。 そのうちくわしく書く羽目になると思う

    橋本商会 » slackとnode-lindaとhubotとdockerとibeaconとraspiとarduino接続した
  • 橋本商会 » irkitコマンドで家の外からIRKitを操作する

    前:赤外線学習リモコンIRKitrubygemを作った irkit gemに付属のirkitコマンドは、Internet APIも使えるので家の外からIRKitを操作できます。 解説しておく。 インストール % gem install irkit % irkit --help デバイスをirkitコマンドに登録する 最初のこの設定だけはIRKitと同じLANの中にいなければならない。 % irkit -device:add デバイス名 なお2つ以上IRKitを持っている場合は、-addressでIPアドレスを指定すればそれぞれ保存できる。 % irkit -device:add デバイス名 -address 192.168.1.123 登録されているか確認 デバイスリストと赤外線データのリストが見れる。LAN内のIRKitもbonjourで探す。 % irkit -list なおこのデー

    橋本商会 » irkitコマンドで家の外からIRKitを操作する
  • 橋本商会 » node-webkitでNHK Newsを連続自動再生するアプリ作った

    あまりにも世情にうといので作った。 NHKRSSを定期的にチェックして、新着ニュースの動画を連続自動再生する。 とてもテレビっぽい。おかげで4日後にオリンピックが開催されるという事を知れた。 ソースコード https://github.com/shokai/nhk-news-app zipでダウンロード https://github.com/shokai/nhk-news-app/releases node-webkitはネイティブアプリ作成のためにwebkitが改造されたwebブラウザで、HTML/JavaScript/CSSが実行できるだけでなくnode.jsのAPIもそのまま呼び出せる。 つまりjQueryでDOM操作すると同時にnodeのライブラリを使うような処理が、同じプログラムファイルにまとめて書ける。変にブリッジを書く事なくいつものnodeのように require(‘モジュ

    橋本商会 » node-webkitでNHK Newsを連続自動再生するアプリ作った
  • 橋本商会 » ScalaでAndroidアプリを作る

    普段Javaで書いている部分をScalaで書けるようになった。 Javaだと、文字列や複雑なデータ構造を処理したり、関数プログラミングがしづらい。lambda無いし。そういう部分だけでもScalaでやりたい。 https://github.com/pfn/android-sdk-pluginというフレームワークを使って、既存のAndroidアプリのプロジェクトScalaJavaを混ぜこぜに書けるようにする方法を説明する。 全体の簡単な手順 homebrewでscalaとsbtをインストールする Androidプロジェクトを普通に作る or 既存のAndroidプロジェクトを用意する sbtで使う設定ファイル3つを配置する sbt初回起動時に必要なライブラリがインストールされて、Androidプロジェクトとsbtプロジェクトが共存した状態になる sbtでandroid:packageす

    橋本商会 » ScalaでAndroidアプリを作る
  • 橋本商会 » 信用出来ないRubyスクリプトを安全にevalしたかった

    たぶん大丈夫だと思うんだけどヤバかったら教えて下さい。 (皆様からの温かいトマホーク(2)(3)によるとやっぱダメなようです) 要件 – ブラウザでRubyのコード書かせて、サーバーに保存してサーバーで実行したい – 危険な事はされたくない。ファイルへのアクセスやコマンドの実行、やたら時間のかかる処理など – 安全に実行できたらコードの返り値を取得したい。コードが危険だったらエラーを取得したい。 – 危険な事されても、コード実行しているプロセスは終了しないでエラーをブラウザに返したい。 – コードはWebサーバーと同じプロセスで実行したい 調査 ということで調べていたらsafelevelを使えばいいらしい – Programming Ruby: The Pragmatic Programmer's Guide – Rubyのセーフレベル4環境とその使い方 – ¬¬日常日記 $SAFEに0〜

  • 橋本商会 » JavaScriptとRubyによるWeb版Linda入門(1)

    (第11回プログラミング方法論の演習資料です) 次:JavaScriptRubyによるWeb版Linda入門(2) Lindaは共有メモリを用いた分散並列プログラミングのしくみです。 最近このblogでよく書いている、Ruby上のLinda実装を使う解説です。 → Ruby上に並列言語拡張Lindaを実装してWebSocket/Cometで使えるようにした Web版LindaはWebSocketとCometで使えるようになっているので、Ruby以外の言語でも接続可能です。 JavaScriptは公式のライブラリが配布されています。AndroidJava版は馬場君が作っています。 とりあえず、一番簡単なJavaScriptでのLinda入門をしてみましょう。 Webブラウザで動くチャットを作る JavaScriptとLindaでチャットを作ってみましょう。 完成形は http://dev.

    橋本商会 » JavaScriptとRubyによるWeb版Linda入門(1)
  • 橋本商会 » Sinatra RocketIOというプラグイン作った、これでWebSocketとCometが使える

    nodeのSocket.ioっぽい物のRuby版を作った。 https://github.com/shokai/sinatra-rocketio 依存 EventMachineが有効なWebサーバー(thinとか)と、jQueryが必要。 Rubyは1.8.7〜2.0.0まで動く。 Sinatraで使う インストール gem install sinatra-rocketio ブラウザとか回線に応じてWebSocketとCometの使える方が自動的に選ばれる。 切断されても定期的に再接続を試みるようになってる。 sinatraに読みこむだけで使える。sinatraのプロセス内にwebsocketサーバーも組み込まれる。 require 'sinatra' require 'sinatra/rocketio' modular styleではclass内でregisterすればok class

  • 橋本商会 » 別ドメインのiframeの中身をフレーム外からスクロール

    諸事情あって、iframeの中身をフレーム外側のページからJavaScriptでスクロールできるのを作った。 ふつうは別ドメインのページをiframeに読み込むとスクロールできないんだけど、(marginに負の値を入れたりして)iframeごと上下左右に動かしたり、iframeの外側にbox要素2つ付けてはみだした部分を表示しないようにcssでなんか色々やったりしたらそれらしい物ができた。 デモ XFrame.js shokai/xframe.js · GitHub 使い方は簡単である js読み込んで <script src="xframe.js"></script> XFrameを出したい箱を作って <div id="tv"></div> 読み込む var xframe = new XFrame("div#tv"); xframe.load("http://shokai.org"); あ

  • 橋本商会 » Ruby書くならBundler使え

    Rubyでプログラム書くにあたって、bundlerを使わないプログラムは1年ぐらい経つと動かなくなってる事が多々あって、bundlerマジ重要なのと ぐぐってもあまりbundlerの利点や説明がまとまってる記事がなかったので 研究室のwikiに書いた記事を転載しておく。 Bundlerとは Bundler: The best way to manage a Ruby application's gems プロジェクト内で使うRubygemsを管理するしくみ。 プロジェクトの一番上のディレクトリに「Gemfile」というテキストファイルを置き、その中にgemの名前(と必要あればバージョンも)書く。 % bundle install というコマンドで、gemが一括インストールできる プログラム内で require 'bundler' Bundler.require と書くと、gemが一括req

  • 橋本商会 » Mobage運用技術勉強会に行ってきた

    Web公開制限が無いらしいので、殴り書いたメモを貼り付けておく。 謎のアルゴリズムで集められたはてなユーザーに、モバゲーの運用技術を惜しげもなく教える勉強会に行ってきた。 インフラもPerlも全然わかんないんだけど何故誘われたのか謎。 モバゲーすごい・・・台風激しかったけど行ってきて良かった。特にモニタリング手法が面白くて、一瞬だけ全プロセスにデバッガをアタッチして待機状態のプロセス数を調べるとか、DBバックアップサーバーの遅延を監視してるとSlaveへの遅延発生が予測できるとか。頭いい。 たぶんMobageを支える技術に書いてある内容の一部だと思われるので、も買ってみる。 あと社で閉店前に「モバゲ〜」って歌が流れててわかめ高校みたいで面白かった。 2012年6月19日 @ DeNA 渋谷ヒカリエの21階 台風きてるからヤバかったらすぐ帰りましょう インフラ部門紹介(小野氏) 世界展開

  • 橋本商会 » Sinatra+Haml+jQuery入門

    研究室の後輩にSinatraとhamlとjQueryを教えるために作ったテンプレートについて、ここにも書いておく ソースコード https://github.com/shokai/sinatra-template 実際動いているもの http://masui.sfc.keio.ac.jp/sinatra-template/ git clone git://github.com/shokai/sinatra-template.git ■Sinatraを何に使うか Sinatra+haml+jQueryが便利。 Railsと似てるけど、ちょっと違う。 個人的には RailsHTMLのページをいっぱい作るのに便利 Sinatra → 画面遷移あまりしなくて、同じURLのままjsonのAPIをjQueryのajaxで取得して動的に表示を変えるwebページを作るのには便利 に感じる。 でもSi

  • 1