Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

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

  • http://shokai.org/blog/archives/10217

    http://shokai.org/blog/archives/10217
    hitode909
    hitode909 2015/07/04
  • 橋本商会 » 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接続した
    hitode909
    hitode909 2014/05/31
    かっこいい
  • 橋本商会 » tw v1.0.9とanagoとUNIXという思想

    参考:はむおコマンド作った – hitode909の日記 anagoというコマンド作った UNIXという哲学にもとづいて作られているtwitterクライアント twの最新版v1.0.9にpipeで渡すとtweetできる 1.0.9以前は複数行pipe渡すと行ごとにtweetしてた。anagoのために仕様変更した。 最近のtwitterはunicodeの絵文字をがんばってimgタグで表示してくれてすごい。 でもandroidで見ると1つ目になっててヤバイ。

    橋本商会 » tw v1.0.9とanagoとUNIXという思想
    hitode909
    hitode909 2014/05/19
    便利!!!!
  • 橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか

    わからない。 自分以外、だれも使っているのを見たこと無いし、自分が使っているとよくナニソレって聞かれるので書いておく [システム環境設定]→[キーボード]→[キーボードショートカット] 「次のウィンドウを操作対象にする」に適当にさわりやすい所ショートカットキーを設定する。command+spaceにしている。 command+spaceはデフォルトではIMEを順に切り替えるのに割り当てられているが、英数・かなキーがあるのでいらない。USキーボードはおっさんが使えばいい。 どうなるかというと 左上のウィンドウでコード書いている時に、もうひとつのウィンドウに行きたい場合 command+spaceを押すと入れ替わる。 blog書くために複数ブラウザ開いている時なんかにも便利。keynoteやイラレで複数のドキュメント開いている時も便利。chromeと開発パネルを交互に見比べる時も便利。 こんな

    橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか
    hitode909
    hitode909 2013/07/21
    便利
  • 橋本商会 » HerokuでSinatra+PhantomJS

    ためしに、URLを入れるとaタグのhref属性とxy座標と幅と高さが取れる簡単なアプリを作ってみた。herokuでwebkitが動いててサーバー側でいったんページをレンダリングしてるから、座標とかがわかる。 http://phantom-getlinks.herokuapp.com/ ソースコード https://github.com/shokai/sinatra-heroku-phantomjs readmeに書いてある通りやればローカルでもHerokuでもすぐ動かせるのでcloneしてみるとよい。 PhantomJSでページをレンダリングしてからaタグの座標とか読む PhantomJSはプロセス内にwebブラウザ(webkit)を起動して、しかもその中のJavaScriptにアクセスできる → 橋商会 » PhantomJSでwebページ内のJavaScriptを読む Phantom

    橋本商会 » HerokuでSinatra+PhantomJS
  • 橋本商会 » 料理をはじめて1年経った

    ちょうど料理し始めて1年経過したので、今までに考えた事・良かったことを書きなぐっておく。 基的に研究したり新しいプログラム言語を勉強したりするのと同じ方法でやってた。 (画像はイメージです) 最初に作りたいものを書き出す 自分がべたいものを書き出す。 最初に作りたい料理を30個ぐらい、現時点で作れそうにない物も書きだした。 レシピを並べてみたら共通の部分があったので、なるべく簡単かつ発展性がありそうな所から攻める事にした。 俺の場合、主にこの2つから行く事になった。 1. ペペロンチーノがおいしく作れれば、そこからトマトパスタとか色々派生できる。具は少し手を加えればパスタ以外にも使える。 2. 肉じゃが・カレー・ポトフ・シチューあたりは途中までの工程が似てる。 このへんから攻めた。まず最初はべたいものを書きだして効率良さそうな所を見つけると良いと思う。 あとは和の醤油味の煮物系で、

    橋本商会 » 料理をはじめて1年経った
    hitode909
    hitode909 2012/09/01
  • 橋本商会 » 画像を安全に埋め込みたい

    チャットに画像のURLが貼られた時に、安全にimgタグを埋め込みたいという議論があったので書いておく。 一番単純な実装だと、 var s = "はろー http://shokai.org.ex/example.jpg てすとてすと"; s.replace(/(https?:\/\/.+)\.(jpe?g|gif|png)/g, "<img src=\"$1.$2\">$1.$2</img>"); のようにすると "はろー <img src="http://shokai.org.ex/example.jpg">http://shokai.org.ex/example.jpg</img> てすとてすと" になるのだが、よく考えると http://tumblr.com/logout#.png みたいなのを貼られるとimgタグが描画された瞬間にログアウトしてしまう。 正規表現がショボいのも悪いけど

    hitode909
    hitode909 2012/06/29
  • 橋本商会 » ネタ画像検索No.1 tiqav.com のrubygemとか作った

    レス画像検索No.1/画像会話なら ちくわぶ インストール gem install tiqav 画像を検索、保存 require 'rubygems' require 'tiqav' ## 検索 images = Tiqav.search 'ちくわ' images.each do |img| puts "(id:#{img.id}) #{img.permalink} => #{img.url}" ## 全部保存する img.save(img.filename) puts "saved!! => #{img.filename}" end ## ランダム img = Tiqav.random puts img.url puts img.thumbnail puts img.glitch ## 幸運 puts Tiqav.feeling_lucky 'ちくわ' 最初はスクレイピングで実装した。

    hitode909
    hitode909 2012/06/21
    良い
  • 橋本商会 » Ruby1.9のEncodeでUTF-8-MACをUTF-8に変換できた

    Macで「ぱぴぷぺぽ」等のファイル名があると「ぱÿぴÿぷÿぺÿぽÿ」みたいな変な文字になる問題について。 UTF-8-MACUTF-8に変換するではMacのiconvで変換したけど、 Mac以外で動かすにはApple製iconvを自前ビルドしなければならなくて、でもgccでコンパイル通らなかったので困ってた。 Ruby1.9以降のEncodeを使ったら解決した。

    橋本商会 » Ruby1.9のEncodeでUTF-8-MACをUTF-8に変換できた
    hitode909
    hitode909 2012/06/21
  • 橋本商会 » プログラムの写経

    プログラミング初心者が写経する時に気をつけると良い事を4つ説明します。 画像はイメージです プログラムを勉強する時に、写経しろ(すでに完成しているプログラムをから書き写せ)とか言われるが、ちょっと意識するとだいぶ違うと思う 1. 外から書け 例えば、1からnまでの数字を全部表示するプログラムがあるとする。 def run(max) 1.upto(max).each do |i| puts i end end run(10) これを写経する時、上から下に1行目から順に書くのではなくて、まず def run(max) end いちばん外側を書いて def run(max) 1.upto(max).each do |i| end end 中を書いて def run(max) 1.upto(max).each do |i| puts i end end こうなる。 上から書かないのが重要。プログ

    橋本商会 » プログラムの写経
    hitode909
    hitode909 2012/06/17
  • 橋本商会 » 動画からアニメgifを作る

    動画からアニメgifを作るツールを去年作った。https://github.com/shokai/video2gif 元動画を何fpsで切り出すか、それを何fpsで結合するかを指定できるのでコマ送り的なgifも簡単に作れる。 上は、動画を1fpsで切り出して20fpsでつないだ。 video2gif -i input.mov -o output.gif -size 150x100 -vfps 1 -gfps 12 元の動画はこれ

    橋本商会 » 動画からアニメgifを作る
    hitode909
    hitode909 2012/02/04
  • 橋本商会 » Dropboxチャットクライアント「drochan」

    Dropboxにチャット機能を付けるとても便利なクライアント「drochan」を開発しました。 共有フォルダに参加している他のメンバーと会話する事ができます。 発言するとこのように通知がでます。 drochanの利点は Dropbox以外のツールが必要ない drochanを使っていないユーザも、Dropbox標準のgrowl通知でチャットを読む事ができる 相手がオフラインでも、メッセージを送ることができる メンバー管理が楽。Dropboxの共有に招待したけどチャットに招待しわすれた、なんて事が無くなる ■使い方 drochanをダウンロードしてpathの通っている場所に置く。 7行目あたりの DIR = "#{ENV['HOME']}/Dropbox/drochan" を自分のDropboxの共有フォルダ名に変更する。(この場合はdrochanというフォルダを共有している) Dropbox

    橋本商会 » Dropboxチャットクライアント「drochan」
    hitode909
    hitode909 2011/07/12
    おもしろい
  • 橋本商会 » emobileに電話してから20日経ってもインターネットが半分使えないまま放置されたので解約した

    emobileが月1100円安くなってPocketWifiがもらえるプランに契約するとインターネットが半分使えなくなるの続き。 6/6(月)、サポートから電話がかかってきた。 契約内容の説明が不十分だったので、契約は全てリセットする Pocket WiFiの返送用の箱を送るので送り返してほしい との事。 「ssh等が使えないデータプランBから元に戻すのは2,3日中にできるか?」と聞いたところ、「今月中には・・」と言葉を濁された。 プランを戻すけど、戻したタイミングで電話連絡等はしないので、たまにemb1のアクセスポイントに戻して確認してみてほしいと言われた。 まさか、まだ月頭なのに丸一ヶ月元に戻らないとか無いよな〜とか思いつつ、ありがとうございますと言って電話を切る。 その後、3日に1度ぐらいの頻度で、emb2からemb1のアクセスポイントに設定を切り替えてデータプランBから元に戻っている

    橋本商会 » emobileに電話してから20日経ってもインターネットが半分使えないまま放置されたので解約した
    hitode909
    hitode909 2011/07/04
    大変そう
  • 橋本商会 » emobileが月1100円安くなってPocketWifiがもらえるプランに契約するとインターネットが半分使えなくなる

    (この記事の続きはここに書きました) sshが使えなくなって困っています。WWW以外をたくさん使う人は契約しない方が良い。 5月半ば、イーモバイルから電話がかかってきた。 橋さんは月4980円のプランで契約しているけど、通信料が多くないので3880円のプランに変更しませんか おまけにPocketWifiを1円であげる という内容。 何かデメリットは無いのか聞いたところ、 あと残り3ヶ月だった2年縛りは、2011年6月から24ヶ月にリセットされる イーモバイル解約時の違約金は、残りの月数×900円 とのこと。 まあ損は無さそうなので契約した。 5月末にPocketWifiが届き、6月から3880円のプランになった。するとgithubにpush/pullできなくなっている。 3880円のプランはデータプランBという物で、試してみたらたくさん制限があった。 pingが通らない ほとんどのpor

    hitode909
    hitode909 2011/06/04
    やばい
  • 橋本商会 » iPhone JavaScript Console作った

    作った → https://github.com/shokai/iphone-js-console iPhone用のJavaScript shellのようなもの。FirebugやChromeの開発パネルみたいな感じで使う。 chrome拡張やiPhoneシミュレータでiPhone用のwebページの動作は確認できるが、加速度センサやGeo Location APIなんかは実機で動かさないとデバッグできない。 しかしデバッグをしようにも、iPhone上で大量のalertを出すと気が狂ってしまう。iPhoneで実行中のwebページ上の任意のオブジェクトの中身を、Macから覗いたり値を書き換えたり関数を実行したりするツールが必要だったので作った。 なお、Androidのブラウザにはwebsocketが無いのでこのツールは動かない。Androidではlogcatで adb logcat | grep

    橋本商会 » iPhone JavaScript Console作った
    hitode909
    hitode909 2011/05/31
    便利そう
  • 橋本商会 » 湘南台の男のらーめん500円の営業状態を調べるrubygems作った

    昨日、男の店主がメルマガで、「急に三田二郎をべたくなったから昼の営業は休みます」「今神保町で二郎べたけど、これから用心棒もべるから夜は19時からになります」と言っていて面白かったから作った。 ■インストール gem install otokonoramen500yen ■使う gem installすると、otokonoramen500yenというコマンドが使えるようになる。 otokonoramen500yen 実行すると、最新のメルマガの日時と文が表示される。 これでterminalで作業している時に、ブラウザを開かなくても今日営業しているかパッと調べられるので便利です。 ■開発者向け情報 一応gemなので、文と発行日時を取得できるようにしておいた。 例えば、センサーで取得した自身の健康状態と、男のらーめんの営業状態とを連動させた健康促進システムの開発などへの応用が期待できる

    hitode909
    hitode909 2011/04/29
    便利そう
  • 橋本商会 » 男のらーめん500円

    最近、湘南台民のあいだで話題になっている男のらーめんに行ってきた。 男のらーめん500円専用Tumblr 「メルモ」男のらーめん(湘南台)のメルマガです。バックナンバー 調べたら2chが面白くて気になった。 湘南台にできた二郎インスパのインスパのインスパくらいの勘違いなお店。 今藤沢で一番熱くて寒いお店だ!(ドアがないからなw) 味が安定していなくて、ここ半年ぐらいでだんだん美味しくなってきているらしい。 湘南台駅西口のダイソーの前のあたりを線路の方に路地を入る 看板があるのでここを曲がる。二郎っぽい匂いがするのでわかる。 なんか緑色の何屋かわからない店がある メニュー でかい。次の日の昼になっても腹が減らない。男のらーめんで糧問題が解決する 一緒に行ったひろたはべきれなくてスープにいろいろ隠して逃げた。

    橋本商会 » 男のらーめん500円
    hitode909
    hitode909 2011/04/19
  • 橋本商会 » SFCが使えるか確かめる

    SFCが計画停電グループ1なのでしょっちゅう停電している。 ほぼ1日1回停電するし、停電するとサーバーで長い処理をしている人や3Dプリンタを使っている人はレジュームができなくて大変らしいので簡単にSFCの状況を調べられるツール作った。 gem install sfc_ikiteru して(適宜sudoつける) sfc_ikiteru すると というふうにどれぐらい生きてるかわかる。 物理的に離れてそうなサーバーがいくつか入っているので、これでどの建物が停電しているかもなんとなく察しがつくはず。 もちろん、gemなのでmoduleとしても使える。返り値はtupleで受け取る require 'rubygems' require 'sfc_ikiteru' per, details = SfcIkiteru.ikiteru p per p details perは1.0〜0.0の少数が返ってく

    橋本商会 » SFCが使えるか確かめる
    hitode909
    hitode909 2011/03/26
    おもしろい
  • 橋本商会 » 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

  • 橋本商会 » wavファイルをRubyで編集する

    Rubyでwavファイルのフォーマットを読んだり、データチャンクを編集するためのgemを作った。 ベースは以前作ったやつで、ついでにwavファイル操作のサンプルをたくさん追加してrubygems.orgに登録しておいた。 あくまでサーバーで音を合成して返すようなwebサービスで使う事を想定している物で、マイクからの入力をリアルタイムに音声処理するための物ではない。 ■インストール gem install wav-file ■使う フォーマットとデータチャンクを読む require 'rubygems' require 'wav-file' f = open("input.wav") format = WavFile::readFormat(f) dataChunk = WavFile::readDataChunk(f) f.close puts format するとこんな感じにフォーマット

    hitode909
    hitode909 2010/11/19