タグ

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

  • 橋本商会 » DockerとdokkuをMacにインストールして自分をHeroku化した

    dokkuを普段持ち歩いてるMacbook AirのVirtualBoxのUbuntu12.04に入れた。 dokkuはDocker環境をセットアップしてくれて、そこに個人用のHerokuのようなものを建立してくれる。 dokku体は100行ぐらいのshellscriptで実装されている。そこから作者のprogrium氏が作った色々なツールが呼び出されるので、実体としてはもっと大きいけど。 vagrantとかchefとか全く使わずに、アプリをgit pushするとVMが建つ環境が簡単に作れる。 gitのhookでdockerコンテナが作られて、フロントのnginxのproxyが設定されて、websocketも通る。 コンテナ構築にはherokubuildpackが使われているので、アプリの内容に応じて自動的にnodeとかrubyとかの環境がセットアップされる。 buildpackはhe

    橋本商会 » DockerとdokkuをMacにインストールして自分をHeroku化した
  • 橋本商会 » 赤外線学習リモコンIRKitのrubygemを作った

    IRKitはよく「iOSから操作できる赤外線リモコン」と説明されるけど、そのAPIはHTTPなのでiOS以外からももちろん使えます。 というわけでRubyから使いやすいようにした。 ソースコードはgithubにある。不具合等はissueかtwitterにお願いします。 irkitコマンドという便利ツールも入れておいた。 bonjourでLAN内のIRKitを発見する機能や、赤外線データのgetとpost(と保存)、家のLANの外からIRKitを操作するInternet API関連が実装されているので プログラムを書かなくてもirkit gemをインストールすればすぐIRKitが使える。 なんでこういうツールが付いているかというと、デバイス系はコマンド一発で全部実行できるテストコードが書きにくい部分がかなりあって、しょうがないから各機能をテストしやすい実行可能コマンドを作るぐらいしかない。

    橋本商会 » 赤外線学習リモコンIRKitのrubygemを作った
  • 橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか

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

    橋本商会 » Macの「次のウィンドウを操作対象にする」をなぜ設定しないのか
    Watson
    Watson 2013/07/21
  • 橋本商会 » 信用出来ないRubyスクリプトを安全にevalしたかった

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

    Watson
    Watson 2013/06/18
    Ruby 2.1 で $SAFE=4 が消えるのか!
  • 橋本商会 » Mac/LinuxのWiFiで位置情報を取得

    wifi_locationというrubygemを作った。Mac (Lion, Mountain Lion)と Ubuntu 12.04で動く。 gem install wifi_location whereami --help whereami --dump whereamiというコマンドが付属してるので、これを使うと {"towers":[{"bssid":"20:f3:a3:8c:66:ab","signal":-72},{"bssid":"00:0a:79:a5:7c:16","signal":-80},{"bssid":"1c:b1:7f:11:f8:c2","signal":-82},{"bssid":"20:f3:a3:32:58:f7","signal":-91},{"bssid":"の","signal":0},{"bssid":"00:24:a5:b8:90:e7","s

  • 橋本商会 » プログラムの写経

    プログラミング初心者が写経する時に気をつけると良い事を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 こうなる。 上から書かないのが重要。プログ

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

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

    橋本商会 » chrome extensionの作り方+クロスドメインXMLHTTPリクエストのやり方
  • 橋本商会 » 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

    Watson
    Watson 2009/12/14
  • 1