itochin2の日記(仮)

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

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

第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もやりました。


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

退職一時金の移換で思ったこと

ITソフトウェア厚生年金基金から手紙がきた。
退職一時金があるから、どうするか選べ、とのこと。

選べって言われてもよく分からなかったので、調べてメモした。

ITソフトウェア厚生年金基金 is 何

http://www.softkikin.or.jp/
国が運用してる年金の一部を代行して、年金を運用しているところ。
国とは独立して積立した年金を、将来支給する。

転職して、ITS基金を脱退したので、年金用に貯めてたお金どうする?
っていうのが今回の趣旨みたい。

追記:一時金が発生するのは、加入して3年以上の場合。

選択肢

一時金化する

そのままもらう。
20万以下の場合は、所得税の確定申告はいらない。

会社に企業年金制度がある場合

会社に企業年金制度がない場合

企業年金制度

企業が社員に対して年金を支給する仕組み。
退職金を一度にガッツリ支払うのは痛い会社側と
老後に定期的な収入が欲しい社員のニーズにマッチして、バブルの頃は流行った。
現在では運用が難しく、企業年金で会社が傾くと嘆かれるオワコン

ちなみに弊社も制度がなかった。

企業年金連合会

http://www.pfa.or.jp/
厚生年金基金が設立した特殊法人
運用利回りは年2.25%
メリット
65歳以降、死ぬまで受け取れる。
デメリット
65歳まで(基本的には)現金化できない。

65歳まで手を出せないし、年利2.25%ってあんまり魅力を感じない。
30年以上預けるより、自分で投資に回した方が良さそう。

個人型確定拠出年金

http://www.npfa.or.jp/401K/
国民年金基金連合会が運営する年金で運用する。
運用利回りは、年利3%程度。
メリット
掛け金に税金がかからないのが旨い。
投資する額も柔軟に増減でき、別の企業に転職しても運用を継続できる。
デメリット
60歳まで解約できない。
企業年金があるところに就職したら追加で積立できない。
その上、60歳まで口座維持手数料だけを払い続けるという制約もある。

企業年金オワコンであることを考えると、デメリットが発生する状況は少ないかもしれない。
銀行の定期預金よりも利回り良いし、税金面が優遇されているので
資産運用の一角に組み込むのもありかもしれない。

結論

年金として預けると30年は取り出せないので、少し慎重に考えたい。
個人型も確定で3%の利率じゃないので、いますぐに入れる程の魅力じゃない。
なので、一時金を受け取って、別の投資に回そうかなと思った。

その他

調べてて思ったけど、すごく理解しづらかった。
名称とか説明の粒度が統一されてないからだと思う。
サービス名と同じ階層に、組織名があるのが一番気持ちわるい。

以下のようにしたらわかりやすくないだろうか?

退職一時金

名前の通り。

会社に企業年金制度がある場合

会社がお金を出して、会社が運用する年金

社員がお金を出して、会社が運用する年金

会社に企業年金制度がない場合

個人がお金を出して、企業年金連合会が運用する年金

個人がお金を出して、国民年金基金連合会が運用する年金


名前と中身が正確に合致しているか微妙だけど、だいぶ見通しがよくなったと思う。

今後、年金のパターンが増えても、ルールに従って名称を決めれるようにした方が
名前をどうするか会議とかやらなくていいし、効率がよいはず。


法改正に携わる人、リファクタリングの本を読めばいいのにな。

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)