タグ

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

  • 橋本商会 » chrome extensionの作り方+クロスドメインXMLHTTPリクエストのやり方

    こないだ箱根合宿で学んだ。 単にchrome拡張を作ってみたかったというのと、chromeではgreasemonkeyが実行できるけど、Firefoxと違ってGM_xmlhttpRequestが無いのでクロスドメイン通信ができないのでなんとなくやってみたかった。 自分の見ているページの履歴を全部自分のサーバーに送って保存したい。 まずos0xさんのChrome拡張入門のスライドが勉強になる。 とくに 拡張コンテキスト、コンテントコンテキスト、ページコンテキストの3つのコンテキストが存在し、それぞれは完全に分かれているので、お互いが干渉してしまうことはない。さらに、拡張同士も独立したコンテキストで実行される。 拡張コンテキストはタブ操作やクロスドメイン通信などの特権を実行でき、コンテントコンテキストと通信したり、スクリプトを実行したりといったことができます。 コンテントコンテキスト(Cont

    橋本商会 » chrome extensionの作り方+クロスドメインXMLHTTPリクエストのやり方
  • 橋本商会 » JRubyでglitch iconを作る(2)

    プラグイン機構を採用し、ランダムにいろいろ作れるようにしてみた。 普通はjpegとかのバイナリを直接いじるみたいだけどよく分からないのでJRubyでjavax.imageioを使ってやっている。 ランダムに96個作ってみて8×12に敷き詰めてみたのがこれ。 で、定期的にランダムに作ってtwitterのアイコンとしてアップロードしてる。 敷き詰めるのはImageMagickと一緒にインストールされるmontageコマンドでできる montageコマンド – 橋詳解 ソースコードは全てgithubに置いた。 ■仕組み 単機能モジュールをランダムに連結する事である程度ランダムな画像を生成できる。 javax.imageio.BufferedImageのインスタンスを受け取り、少し加工して返すというJRubyのmoduleをプラグインとし、それらをGlitchというclassがランダムに呼び出す

    橋本商会 » JRubyでglitch iconを作る(2)
  • 橋本商会 » Android SDKのlogcat

    Log.v("button1", "押した"); などするとAndroid実機からEclipseにテキストが流れてくるlogcatだけど 17インチMacbookProでは文字が超小さい。なのにフォント設定ができなかったり、日語が文字化けしたりする。 terminalで adb logcat で起動する方のlogcatならちゃんと日語出る。 少なくともソースコードUTF-8で、iTermもUTF-8で使ってるので文字化けしない。 adbは複数同時に起動できるので、screenで画面分割して2つ起動。 左側は adb logcat | grep "^V\/" でLog.vでの出力だけを表示するようにしてみたりとかすると、Eclipseよりこっちの方が便利な気がしてくる。

    橋本商会 » Android SDKのlogcat
  • 橋本商会 » AndroidでGPSロガー

    Android2.1でGoogle Map API、メニュー画面、GPSでの位置の計測を使う方法が理解できたので作った。 GPSとって5秒おきにアップデートし、Google Mapに自分の位置を表示する。 移動に合わせて地図の中心点を動かし、移動のログを地図上に赤線で表示する。 GPS使いまくったら、電車で藤沢と日吉の間を往復する間使い続けただけでHTC Desireの電池が40%ぐらい減った。5秒間隔は狭すぎるか。 ソースコード 最新版バイナリ(updateされる) この記事のバージョンのバイナリ バイナリはAndroid2.1以上向け。右クリックで保存し.apkにリネームすればインストールできる 昨日テストした。日吉から藤沢方面に戻るところ。 緯度と経度のListをメモリ上に保存してあるので、線を引いて示す事ができる。 メモリ上に保存してあるだけなのでアプリを終了すると消える。でもAn

    橋本商会 » AndroidでGPSロガー
  • 橋本商会 » エディタ保存したらブラウザリロードするsinatra/auto-reloadを作った

    エディタを保存したらブラウザを自動リロードするsinatraプラグインを作った。 これでサブモニタにchromeJavaScriptコンソール置いておくと幸せになれる。 ソースはgithubに。 Google ChromeもしくはFirefox+Greasemonkeyで動作する。エディタには依存しない。 sinatraアプリをローカルではなくサーバーで実行していてもリロードできる。 ■インストール sudo gem install sinatra-auto-reload rubygems.orgに置いたので、gemコマンドでインストールできる ■使う sinatraアプリ内で読み込む require 'sinatra/auto-reloader' if development? if development? すると、shotgunか -e development オプションを付けて起

    橋本商会 » エディタ保存したらブラウザリロードするsinatra/auto-reloadを作った
  • 橋本商会 » mbedで取得したセンサーの値をsinatra+tokyocabinetで保存する

    まずセンサーのデータを時系列で溜めたり、取り出したりするためのwebサービスをsinatra+TokyoCabinetで作っておいた。 http://shokai.mag.keio.ac.jp/sensor-storage/ そこにmbedのADコンバータでCdSの明るさを計測、LEDを点灯/消灯 と mbedにEthernetを接続しtwitterにpostするを合体させ、約10秒間隔でセンサーの値をhttp-postしまくった。 一度web APIが出ている場所にマイコンの情報も保存しておけば、あとでマッシュアップできて便利になる。このAPIの下にmbedでもgreasemonkeyスクリプトでも何個でもぶら下げられる。 mbedからwedataに保存しても良かったんだけど、あえて自分で作ってみた。 ■mbedで明るさを計測してhttp-postする 作った回路。CdSで明るさを取得し

    橋本商会 » mbedで取得したセンサーの値をsinatra+tokyocabinetで保存する
  • 橋本商会 » Cでgearman workerを書いてRubyのclientから呼び出す

    gearmandをソースからインストールして、Cライブラリのlibgearmanが使えるようになった。 これでC言語でworkerを作ってRubyのclientから呼び出せる。環境はUbuntu9.04とgearmand0.11 ■Cでworkerを書く str_reverseというアビリティを持つworkerを作る。 ほぼAPIドキュメントのままだが、jobの引数を受け取るのと、値を返せるようにがんばった。ジョブ失敗した時とかのエラー処理全然書いてない。たぶんenum gearman_return_tを返せばいいんだろうけど strreverse-worker.c // 文字列をreverseして返すworker #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include 

  • 橋本商会 » Rubyでwavファイルをいじる WavFile.rbを作った

    gemにしました → 橋商会 wavファイルをRubyで編集する ***** Rubyでwavファイルを操作するためにWavFile.rbを作った。スピーカから音を鳴らすのではなくて、wavファイルそのものをいじって合成したりつなげたり、逆再生や左右反転させたりした後ファイルに書き出す為に作った。 packやunpackを使ってRubyでバイナリを読み書きする部分でかなり苦戦したけど、WAVファイル – MoonRock@MoonRock/A mere diary (2002-2)(7年も前に同じような事やってる!)がすごく参考になった。attr_accessorとかも知らなかったから勉強になった。 http://shokai.org/projects/ruby-wavfile/にサンプルを色々置いておく。 例えば、逆再生のwavファイルを作るコードはこう書ける reverseWav.r

  • 橋本商会 » apache2のサブディレクトリをthinで起動してるsinatraにプロキシする

    SinatraやRailsは開発は楽だけどデプロイ方法がいろいろあって悩む。 最近はpassengerを使う方法が流行ってるけど、あいにく学校に置いたサーバーでサブドメインが使えないので同一ホスト名でapacheと共存させるしかない。 passengerでもRailsBaseURIだったか?を設定すればサブディレクトリでRack対応アプリを動かせるが、 今回は1年前からRails+mongrelのデプロイに使っているapache2のサブディレクトリをmongrelで起動してるrailsにプロキシする – 橋詳解と同じ方法でSinatra+Thinをデプロイした。 Railsではmongrel_clusterで複数起動させたrailsにapache2のmod_proxy_balancerでアクセスを割り振ったが、同じ設定でsinatra+thinにも割り振れる。 結果、橋商会 Twitt

  • 橋本商会 » Twitterの地名なうbotを全blockするOAuthアプリ

    http://shokai.mag.keio.ac.jp/block_nowbots/から使える。 (8月15日:URL変更しました) とりあえずSinatraとOAuthの組み合わせを試してみたかったので、DBは使わないものを作りたかった。取得したOAuthのtokenなどはその場で捨てている。blockコマンドを送る権限だけを一時的に委譲してもらう。 以下技術的なことのメモ。 ■OAuthアプリの登録 まずhttp://twitter.com/oauth_clientsでアプリを登録し、consumer keyとconsumer secretを取得する。 で、下のコード中のCONSUMER_KEY, CONSUMER_SECRETを書き換える。 ■必要なライブラリ 必要なgemをインストールする。最新版にした。 sudo gem install oauth twitter sinatr

  • 橋本商会 » twitter上で親しい人のタイムラインを動的に生成するYahoo Pipes

    修論を出した後のテンションでまたYahooPipesを作った。 → Pipes: twitter dynamic timeline 親しい人で動的にタイムラインを作るpipes。 しくみは単純で、最近favを付けたり付けられたり、replyしたりされたりした相手でタイムラインを作る。 自分の発言内容やそれに対する相手の反応によってメンバーが動的に入れ替わる。 これの面白いのは、キーワードでの振り分けと異なりごく普通にtwitterを使っているだけでタイムラインが親しいメンツに変わっていく。 一見流動性が無いように見えるが、自分をふぁぼったりreplyしてきた人は入ってくるし、その人にreplyしたりfavし返せばしばらくはdynamic timelineに入り続ける。相手をfollowする必要すらない。 忙しくてtwitter見れない時は、これだけ見ておけば親しい人のpostはだいたいチェ

    橋本商会 » twitter上で親しい人のタイムラインを動的に生成するYahoo Pipes
  • 橋本商会 » chumbyでLDR未読数を表示するwidget

    LDR unread countがchumby.comのwidgetとして公開された。 Livedoor Readerのアカウント名を設定すると、未読数が表示されて焦らされるが、1万超えたあたりからどうでもよくなった。 アップロードしたwidgetは基privateで、publicにした後審査が入ってwidgetsの検索画面から他のユーザに使ってもらえるようになる。今回はだいたい4時間ぐらいで審査が通ったみたい。 ダウンロード → SourceCode(Flash AS2 / CS3) (うおお、前の記事書いてから1週間たってる・・・) 前のTwitter widgetより前に作って投稿してあったものなんだけど、これは数字が出るだけなので、Flash的にも手抜き。 Flashは手抜きだけど、chumby widget固有のノウハウである 1.クロスドメイン許可されていない外部のサーバーの

    橋本商会 » chumbyでLDR未読数を表示するwidget
  • 橋本商会» ブログアーカイブ » C# - FeliCaリーダでIDを読む

    あれば便利かもしれないが、無くても困らない製品 便利アイテムです 便利です。 飛行機に乗れなくてもマイルが貯まる edyを常用してる人ならお勧め felicalibをダウンロードしてくる。中にC#用ラッパー(FelicaLib.cs)も入っているので自分のプロジェクトに追加。 felicalib.dllは「参照の追加」から使うのではなく、bin/Debug, bin/Releaseなどにファイルを直接コピペして置く。実行時にFelicaLib.csからP/Invokeで読み込まれる。 ■コード ラッパーを読み込んで using FelicaLib; IDmを読むとbyte配列が来るので、Stringに直す。 try { using (Felica felica = new Felica()) { felica.Polling(0xFFFF); byte[] data = felica.ID

    橋本商会» ブログアーカイブ » C# - FeliCaリーダでIDを読む
  • 1