itochin2の日記(仮)

主に備忘録。Perl、MySQL、Unity、開発管理などについて情報を残していきたい。

「調査可能なアプリケーションがありません」の回避メモ

safariの実機でしか再現しないバグがあったので
Webインスペクタを使おうとしたら手こずったので備忘録。

環境

iPhone: iOS 8
Mac: OSX 10.9

参考

d.hatena.ne.jp

最新(WebKit-SVN-r192790.dmg)を入れたら
OS X 10.9 is not supported」というエラーで起動しなかった。
f:id:itochin2:20151130154330p:plain

Apple Support Communitiesの解決した日付に近いWebKit-SVN-r173715.dmgを使ったら
無事にサイトを選択できるようになった。

ビックカメラの株主総会に参加した感想

第35期定時株主総会に参加した。
総会自体が初めてだったから、新鮮さがあって良かった。

f:id:itochin2:20151126115906j:plain

流れ

  • 監査報告

資料に書いてることを読むだけ

資料に書いてることを読むだけ

質問、提案、クレーム、なんでもありな感じ。
ヨドバシは良かったんじゃー。おまえのところはqうぇrty(フェードアウト
電力自由化はビジネスにしないのか!?
御社のエアコン業者、壁に穴をあけたんだけどどうなってるんだ!
監査に女性がいないぞ!→いや、いるぞ!→いるかもしれないけど少ないぞ!→業界では多い方だぞ!
この流れがコントみたいで面白かったけど、このくだり必要だったか?

振り返ると、意味不明なことを言う人の方が多かった気がする。
話を簡潔に分かりやすく話す人は、意見もまともだなという印象。

参加特典

3%の割引券3枚もらった。
来年のカレンダーも配ってた。

その他感想

自分を含めてスーツじゃない人が結構いたので、私服でも浮かない。
質疑応答は、なんか質問してみた方が当事者感あって良い。
プレスリリースとかも追っていれば、もっと深く楽しめたかも。
他の会社もどんな感じか見てみたくなった。

nginxでメンテナンス画面を出す(POSTも対応)

POSTも対応、とか言ってリダイレクトしているだけです
※nginx version: nginx/1.6.2

課題

503でカスタムメンテページを出す設定をしている。
そこにPOSTリクエストがくると405が返ってしまう。
405じゃなくてメンテページを表示したい。

調べたこと

error_page 405 =503 @maintenance;

ググるとこんな記述を見るけど、nginxはstaticなページをPOSTで返せないので対応できないんじゃないかと思った。
なのでGET以外でメンテナンスのルールに流れてきたら、TOPに飛ばしてページを出せば良くね?
という雑な対応。リクエストが無駄に増えてしまうが、もうこれで許してください。
動いているからいいじゃない

結果のコンフィグ(抜粋)

server {

    set $maintenance false;
    if ( -f ~/etc/nginx/maintenance ) {
        set $maintenance true;
    }
    if ($request_uri ~ ^/static/(.*)$) {
        set $maintenance false;
    }
    if ($maintenance = true) {
        return 503;
    }
    error_page 503 @maintenance;
    location @maintenance {
        # POSTで静的ファイル返せないのでリダイレクトする
        if ($request_method != GET) {
            return http://$host;
        }

        root /home/app;
        set $is_sphone false;
        if ($http_user_agent ~ (iPhone|iPod|Android)) {
            set $is_sphone true;
        }
        if ($is_sphone = true) {
            rewrite ^(.*)$ /static/maintenance_sp.html break;
        }
        rewrite ^(.*)$ /static/maintenance.html break;
        expires 0;
    }
}

VagrantにSahara pluginをインストールする

vagrantにsahara pluginをインストールする

qiita.com

環境

mac 10.9

詰まった箇所
$ bundle install
-bash: bundle: command not found

bundleがなかったので、インストールする

qiita.com

libiconvがありませんと言われたのでスキップ
$brew install libiconv
Error: No available formula for libiconv
Apple distributes libiconv with OS X, you can find it in /usr/lib.
Some build scripts fail to detect it correctly, please check existing
formulae for solutions.

rubyインストールのコマンドも変更
RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.2.2

bundlerもインストールできたので、saharaもインストールできた。

用語メモ
rbenv rubyのバージョン管理
ruby-build rubyコンパイルするプラグイン
bundler perlのCarton
gem perlCPAN
gemfile perlのcpanfile

いつも忘れてしまう・・・

DNS用語メモ

DNS

ドメインからIPアドレスを返すサーバー
例)http://www.yahoo.co.jp/にアクセスしたとき。
client(ブラウザやwwwサーバー)が
jpを管理しているdnsサーバーを参照して、co.jpのdnsサーバーを取得
co.jpを管理しているdnsサーバーを参照して、yahoo.co.jpのIPを取得
DNSサーバーを利用してIPを取得する仕組みをリゾルバと呼ぶ。

DNSキャッシュサーバ

名前解決の結果をキャッシュしておくことで、同じ問い合わせに対して高速にレスポンスを返す

DNSサーバーに登録されてる情報

Aレコード

host:IPの対応

PTRレコード

IP:hostの対応

DNSリゾルバ

OSの機能として提供されている。
優先DNSと代替DNSの2つが設定されてることが多い。代替DNS2つ以上設定できる。
linuxだと、/etc/resolv.confに設定が書いてる。

nslookupコマンド

DNSサーバーに問い合わせをするコマンド

$ nslookup yahoo.co.jp
Server:		203.104.131.32
Address:	203.104.131.32#53

Non-authoritative answer:
Name:	yahoo.co.jp
Address: 182.22.59.229
Name:	yahoo.co.jp
Address: 183.79.135.206

正引き

host名からIPを取得すること

逆引き

IPからhost名を取得すること

gitで階層を維持したままディレクトリ構成を変える

PC向けに作ってたHTMLをスマホ対応するからディレクトリ分けて管理したい
ってなった時にやったこと。

[Before]

tmpl/index.tt
tmpl/404.tt
tmpl/500.tt
tmpl/member/history.tt
tmpl/item/detail.tt
tmpl/item/list.tt
:

[After]

tmpl/pc/index.tt
tmpl/pc/404.tt
tmpl/pc/500.tt
tmpl/pc/member/history.tt
tmpl/pc/item/detail.tt
tmpl/pc/item/list.tt
:
tmpl/m/index.tt
tmpl/m/404.tt
tmpl/m/500.tt
tmpl/m/member/history.tt
tmpl/m/item/detail.tt
tmpl/m/item/list.tt
:

再帰的に実行したかったので、findで取得したパスを加工してgit mvに渡してーとか
考えたけど、そんなスクリプト職人のようなことをしなくても、
以下のように簡潔なコマンドを叩いていくだけで実現できた。

$ mkdir .pc
$ cp -pr * .pc
$ git rm -r *
$ mv .pc pc
$ cp -pr pc m
$ git add pc
$ git add m

.から始まるファイルは*に含まれないという特性を利用しているのがポイント。
git mv はrmとaddをまとめただけなので、これでよし。

参考

ここをみて思いついた。
clmemo@aka: カレント・ディレクトリー内の全てのファイルを新しい下位ディレクトリーに簡単に移動させる 〜 dot dir を使って

あと、別の方法もあったけど、filter-branch機能は履歴を抹殺するっていうのが怖そうだったのでやめた。

Gitリポジトリのディレクトリ構成を変更する - ekreaの日記

YAPC::Asia 2014に参加してきた。

ブログを書くまでがYAPCなので感想を書く。

前夜祭と1日目が仕事の都合で行けなくて、今回は2日目だけ参加した。
1日目は知り合いのトークも多かったので、見れなかったのは悔いが残った。

今年見たトーク

突然ITインフラを任された人のための…監視設計入門

インフラって普段専任の人にお任せで、あまり意識していなかったので興味があった。
障害が起きた時に慌てないように、何を決めておけばよいのかを学べて勉強になった。
アプリのバグとかを追うために、ログは出さないとっていうのは考えていたけど
サービス運営という目線で考えたら、ミドルウェアのログも意識しておかねばならないと思った。

google BigQueryでDWH構築

ビッグデータって良く聞くけど、よく知らないから聞いてみようと思って参加。
伊藤直也さんのトークは聞きやすかったし、スライドの構成もわかりやすかった。
アクセスログとかガンガン投げて、あとから解析できる技術にパラダイムシフトが起こっているのは
理解できて、バッチで解析のスクリプトを回す時代じゃないということが分かったのが収穫。

JSON SQLインジェクション脆弱性と、そこから学ぶセキュアプログラミングの原則

だいたいの内容は社内で共有された情報と被っていたので目新しいことではなかった。
バリデーションは範囲や型をちゃんとみましょう。
SQLのクエリは、プレースホルダを使って発行しましょう。
という確認をした。

地域.pmミートアップ 2014

Plack for Fun and Profit、ほんとにあったスキーマの話のどちらも非常に悩ましかったのだけど
我らがchiba.pmが飛び入り参加すると聞いて、そのまま見ることに。
酒飲みLT、ガチハッカソン、全員LTなどなど、地域ごとに特色があるなーと感じた。
10/11(土) chiba.pm行くぞ!
9/17(水) 五反田pm行くぞ!

Perlあるある

「人に理解されるように気をつけてコードを書こう」
これが印象に残っている。
仕事だと、あんまり一人で開発しないし、仮に一人だったとしても、今後引き継いだりするんだから
ロジックなりコメントなり、読み手に書き手の意図が伝わるように書いていきたい。
コードでコミュニケーションを取るってそういうことなんだろうな。

OAuth/OpenID Connectを用いてID連携を実装するときに気を付けること

FacebookのIDを使ってログインとか良く見るけど、途中でキャンセルした時の挙動とか
考えたことなかった。(実装したこともなかったし)
エラーとキャンセルは別にして扱い、ユーザーに次のアクションをきちんと提示してあげるのが
よいサービスという言葉が印象に残っている。

趣味開発のためのクラウド/VPS活用術

オススメのクラウドサービスを値段付きで紹介してくれた。
そしてVULTR押しだった。今はサクラVPSのアカウントあるけど正直全然使ってないので
他のを見るのはもう少し使ってからかなーと思った。
個人向けでもたくさんの選択肢がありますな。

感想

今年はインフラ寄りの話が多かった印象。
そして自分の弱いところでもあるので、自然とそっちに興味がいったのかもしれない。

無限コーヒー、無限ビール、無限かき氷、そんな無限に必要だったのかなw
あとパーカーは普通に使いやすそうでありがたい。
そして今年もwifiの安定さが抜群だった。不自由なく使えるありがたさ。

これからやること

よーしCPANに何か上げるぜーって言ってもいったい何を感があるので
これ便利だったとか、自分が詰まってしまったことのアウトプットする回数を増やそうと思った。


スタッフの方、スピーカーの方、お疲れ様でした。
また来年。

#yapcramenもやりました。


しかしこれつけ麺だったわー。
ラーメンじゃないから食べ直さないとダメだわー(棒