タグ

ブックマーク / unknownplace.org (21)

  • Dockerを使ったGolang開発環境 - unknownplace.org

    しばらくiOSアプリのクライアントサイドばかり開発していてサーバサイドプログラムにご無沙汰だったのだけど、 最近またGoでアプリのサーバサイドを書くようになった。 ちょうど xhyve が話題になっているのもあって、OS X の仮想環境がアツい感じだったので、 ひさしぶりに Docker で開発してみよう、と思いたち、Dockerを使ったアプリ開発をやってみている。 docker-compose を使って依存ミドルウェアも一緒に立ち上げる docker-compose [1] というのを使うと、複数のコンテナを同時に立てられ、それぞれにリンクも良い感じにやってくれる。 開発環境を作るにはもってこいのツールだ。 GoのWebアプリ サンプルとして以下のようなアプリを考える。 // main.go package main import ( "fmt" "log" "net/http" "gi

    oppara
    oppara 2015/06/17
    Dockerを使ったGolang開発環境 - http://t.co/8fdxJ9DWfu B!
  • Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - unknownplace.org

    Kibana や Grafana を使う時に、これらはjsのツールなので、 Erasticsearch や InfluxDB といったバックエンドサービスにjsからアクセスできるようにする必要がある。 そのためには、 普通にバックエンドサービスのportを開放 nginxとかでリバースプロクシ とかする必要があり、めんどくさい。 さらにセキュリティのことを考えると、2の方法のうえに、nginxでSSL+Basic認証なんかにする必要があってよりめんどくさい。 さらに、僕はBasic認証が嫌いだ。 昔は Firefox + 1Password で良い感じにBasic認証の入力が行えたが、いまはだめになってしまったし、 Basic認証だとアカウントの管理もめんどくさい。 なので、Google認証なhttpdでリバースプロクシもできる、gateというツールを作った。 https://github

    oppara
    oppara 2014/08/31
    Google認証なリバースプロクシ&静的コンテンツ配信サーバー「gate」 - http://t.co/yWVJFZTfD6 B!
  • irssiで良い感じにlingrができる irssi-lingr - unknownplace.org

    最近、 Perlの話題を日語で – Lingr お気軽なかんじで、Perl に関する話題をしましょう。 初心者のかたでも御気軽にPerl の質問など、もりもりしてください♪ というLingrの部屋が盛りあがってる。 最初はブラウザで見ていたんだけど、だんだんつらくなってきたので、APIを使ってirssiでLingrチャットができるのを作りました。 https://github.com/typester/irssi-lingr ~/.irssi/scripts に置いて、 irssi内から、 /run lingr /set lingr_user your_lingr_username /set lingr_password your_lingr_password /set lingr_api_key your_api_key # オプション /lingr start で lingr/* と

    oppara
    oppara 2013/03/22
    irssiで良い感じにlingrができる irssi-lingr - http://t.co/8fdxJ9mkQU
  • plenv の Perl バージョンを取得する zsh スクリプト - unknownplace.org

    plenv でつかわれる Perl をプロンプトに表示したりするのに使えるかと。検出ロジックは plenv とおなじつもり。 plenv_perl_version() { local dir=$PWD [[ -n $PLENV_VERSION ]] && { echo $PLENV_VERSION; return } while [[ -n $dir && $dir != "/" && $dir != "." ]]; do if [[ -f "$dir/.perl-version" ]]; then head -n 1 "$dir/.perl-version" return fi dir=$dir:h done local plenv_home=$PLENV_HOME [[ -z $PLENV_HOME && -n $HOME ]] && plenv_home="$HOME/.plenv"

    oppara
    oppara 2013/01/25
    plenv の Perl バージョンを取得する zsh スクリプト - http://t.co/dWw65AdO
  • plenv が良い感じ - unknownplace.org

    perlbrew 使ってたんだけど、tokuhirom がつくってる plenv にスイッチした。 perlbrew よりシンプルでなにやってるかわかるのがなにより。 というか perlbrew がよく分からなすぎるという話もある。 plenv だとさらに .perl-version というファイルに perl のバージョンをいれておくと、そのディレクトリ以下では自動的にそのバージョンの perl が使われるという機能があって、これがだいぶはかどる。 perlbrew で入れた各種 perl は -g つけわすれて SEGV したときこまってて別途 --as=5.14.2-debug みたいのをつくってたけど、 その経験を生かして今度は最初から $ plenv install 5.14.2 -D=DEBUGGING=-g な感じで全部入れるようにした。ちなみにこの install オプショ

    oppara
    oppara 2013/01/24
    plenv が良い感じ - http://t.co/dWw65AdO
  • MacでのBluetoothホストコントロールデバイスの優先順位の変更 - unknownplace.org

    毎回ググるのでメモ。 OSX は USBのドングルとかBluetoothホストコントローラとかをつけたときの挙動を、ファームウェアの NVRAM ってところに bluetoothHostControllerSwitchBehavior というキーで値を設定してあげることによって以下の3種類のうちから決めることができる。 never: 外付けのホストコントローラにスイッチせず、つねにビルドインコントローラを使うalways: ビルドインコントローラからdetachして外付けのホストコントローラにスイッチするdefault: 外付けホストコントローラがApple以外のときはビルドインからdetachして外付けデバイスを使う デフォルトはもちろん default。 で、 BT4LE に対応したドングルを持っていれば、BT4積んでない昔の MacBook なんかでも CoreBluetooth つ

    oppara
    oppara 2013/01/18
    MacでのBluetoothホストコントロールデバイスの優先順位の変更 - http://t.co/dWw65AdO
  • Githubの各種イベント通知をPubSubHubbubで受け取るの巻 - unknownplace.org

    tl;dr - 通常のHookではなくPubSubHubbubのほうのHookを使えばGithubのすべてのイベントをひとつのWebHookで受け取ることができる。 Github の WebHook ではレポジトリの更新しか受け取れず、issue とかも受け取れたら便利なのになーと思いつつ API ドキュメントを見てみると Hook を API から登録したりすることができるようになっていた。 だがこれは所詮は Web から登録できる Hook をいじるもので、このリストにあるものしか登録できない。 また、それぞれの Hook について登録できるイベントはリストで定義されている物に制限されているようで、たとえば WebHook だと push イベントしか設定することはできないみたい。(API 経由でも設定できなかった) 一方、それとは別に用意されている PubSubHubbub の Ho

  • 無線APによって自動でhostsを変える方法 - unknownplace.org

    OSX の LaunchAgents には特定のパスを監視して更新があったらプログラムを起動すると言うことが出来ます。例えば以下のような設定を書いてみると: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>org.unknownplace.wifi_switch</string> <key>ProgramArguments</key> <array> <string>/usr/bin/zsh</string> <string>-c</

  • OSX のコマンドラインから、wi-fi の情報をつかって位置情報を得る - unknownplace.org

    linux のコマンドラインから、wi-fi の情報をつかって位置情報を得る - tokuhirom's blog. を見て、面白そうだと思ったのでそのMac版。MacでコマンドラインからWiFiスポットをスキャンするのは、 /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s でいけます。ってことで、 use strict; use warnings; use utf8; use 5.012; use JSON; use LWP::UserAgent; my @addresses = do { my @lines = split /\n/, qx{/System/Library/PrivateFrameworks/Apple80211.framework/Version

    oppara
    oppara 2012/07/21
    /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -s
  • AnyEvent でバックエンドに EV を使う時の注意 - unknownplace.org

    AnyEvent を利用する際に注意する必要があることに、コールバック中で発生した例外の処理方法がバックエンドに任されている(=例外処理の方法がバックエンドによってちがう)、というのが挙げられる。 Impl::Perl では例外は単純に rethrow されるため、プログラム中で例外が発生したり die したりすると普通にプロセスは終了する。 しかし、Impl::EV の場合、デフォルトでは例外はキャッチされ標準エラーに出力されるものの、そのまま処理は続行されてしまう。 以下のような1秒タイマーをまわしてタイマーが発火したらアプリを終了する、というようなコードがあったとき、 use strict; use warnings; use AnyEvent; my $cv = AnyEvent->condvar; my $t; $t = AnyEvent->timer( after => 1,

  • 最近の Mac での EV モジュールの入れ方 - unknownplace.org

    Xcode4.2くらい(?) からデフォルトになった clang だとビルドがこけるので、 $ perl Makefile.PL CC=gcc などとして gcc でビルドするようにすれば普通に入ります。

  • CoffeeScript - unknownplace.org

    なぜ CoffeeScript がダメか - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtech 僕の考えでは JavaScript ネイティブでない(けれど非同期プログラミングやネットワークの知識はある)人が、Node.js を使ってネットワークアプリケーションを書くという用途では結構使えると思う。 デバッグしづらいという点も Node と組み合わせる前提で考えれば coffee コマンドで直接実行すればいい話である。 また僕自身も小さなネットワークアプリケーションは最近は CoffeeScript で書いてて、fujiwara 氏などにメンテしてもらっているけれど、やはり彼も僕と同じようなスキル(JavaScriptネイティブでない)だから、そういう人が見て大体なんとなく理解できるものになってると感じる。 これがもし、AnyEvent で書いたコードだったらそ

  • tmux で pbcopy - unknownplace.org

    デフォルトだと動かないのでなんか変なラッパーを挟むのがスタンダードな方法みたいですが、たまにしか使わないのにそんな無駄なことしたくないと、 # tmux if [[ "$TMUX" != "" ]] then alias pbcopy="ssh 127.0.0.1 pbcopy" alias pbpaste="ssh 127.0.0.1 pbpaste" fi としてしのいでいる。僕の使用頻度だとこれで十分ぽい。

  • tmux + irssi + canything で Anything 風チャンネル切り替えする - unknownplace.org

    irssi 環境を prgmr.com からさくら VPS に移行したついでに irssi のプラグインを見直していて、そのときに nicklist.pl というのをいれたわけですが、これがなかなか hackish な実装になっており(笑)、named pipe なファイルつくってそれを cat しておくと irssi がそこに nicklist を書き込むというような感じになってて、基的に GNU screen などの縦分割と一緒に使うように設計されている。 で、僕はリモートサーバー上の GNU screen 上で irssi を動かしているので、それをつかうために縦分割をためしてみたわけですが、window 分割したときにでる caption を GNU screen では消すことができず、ローカルで使っている screen の hardstatus の上に、リモート screen

  • Growl 1.3.1 と Skype - unknownplace.org

    ひさしぶりにMacを再起動したらSkypeがGrowlを認識しなくなった。 そういえばGrowlを1.3.1にしてから再起動していなかった。原因はそれだろうとSupport Forumをのぞいてみると同様の問題を持った人がいっぱいいて、そこに解決法も書かれていた。 Skypeに内蔵されてるGrowl.frameworkが古いからそれをアップデートしてやればOKということらしい。 フレームワークのアップデートは自分でファイルを置き換えても良いが、Growl公式サイトでそれ用のツール、Growl Version Detectiveが配布されているのでそれを使用すると良い。 Growl - Downloads アプリはこんな感じで、 Skypeを選択してUpdate FWを押すだけで入れ替わる。

  • node.js を iPhone アプリから動かす - unknownplace.org

    結論から言うと、 jailbreak してないと動きません。詳細はこの辺: Issue 1312 - v8 - It's time to get iOS supported! - V8 JavaScript Engine - Google Project Hosting というわけでターゲットがデベロッパー用に絞られてしまいますがやってみましょう! Node ダウンロード 今回はリリースされたばかりの 0.6.0 を使いました。 http://nodejs.org/#download からダウンロードして展開しましょう libuv にパッチを当てる libev はなにもしないでもそのまま iOS で動きますが、 libuv はそうではないようです。 $ cd deps/uv $ wget --no-check-certificate https://raw.github.com/gist/

  • Lion ドックの殺しても殺しても復活してくるアイコン - unknownplace.org

    MissionControl とか AppStore とかのアイコンがドックから消しても消しても再起動するたびに復活してきて大変うざいですが、それらの設定は /Library/Preferences/com.apple.dockfixup.plist の add-app ってところで定義されている模様。 $ sudo defaults delete /Library/Preferences/com.apple.dockfixup 'add-app' で、全部消しちゃえる。

  • Lion の /usr/bin/perl とその設定 - unknownplace.org

    http://twitter.com/kazuho/status/96099885094412288 @kazuho: /usr/bin/perl は defaults を見て設定されたバージョンの perl を exec するラッパーじゃないかな ということで、man 引いてみたらそう言うようなことが書いてありました。kazuho++ これはじめてしったんですが、 OSXperl コマンドは defaults や環境変数によって実行バージョンやアーキテクチャを変更できるらしい。 $ defaults write com.apple.versioner.perl Version 5.10 とすれば 5.10 がデフォルトになったり、 $ defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes とかすればさっき意味

  • local::lib を切り替える - unknownplace.org

    レガシーなアプリをメンテするのにレガシーな Perl モジュールが必要になることがあり、そのために古いアプリ用には専用の local::lib ディレクトリを切っているわけですが、普段から日常的に local::lib を使用しているため shell が上がったタイミングではデフォルトの local::lib 環境変数がセットされていて切り替えが非常に面倒だった。 これまではそれほど頻繁に使用しなかったので放置していたのだが、ここのところ頻繁に必要になるためいい加減うざくなってきて簡単に local::lib を切り替えられるよう設定をしてみた。 zsh に次のような関数をつくり、それで local::lib を切り替えるようにする。 function locallib () { INSTALL_BASE=$1 if [ -d $INSTALL_BASE ]; then eval $(~/

  • 2005/12/06 - memo - unknownplace.org

    なんで caution とかいわないで。なんとなく。 んで elisp は 33rpmさん に教えてもらって (add-hook 'riece-keyword-notify-functions (lambda (keyword message) (call-process "touch" nil nil nil "/tmp/riece"))) (add-hook 'riece-after-switch-to-channel-functions (lambda (last) (call-process "rm" nil nil nil "/tmp/riece"))) こんな感じのを .riece/init においておく。これでIRCでキーワード流れると /tmp/riece ができる。 チャンネルかえると消える。 #!/usr/bin/perl use strict; use warning