良いAlfred Workflowを教えてもらいました。Chromeのタブを検索できるAlfred Workflowがすこぶる便利です。 どんなの? こんな感じで、tabsと打ち込むと現在開いているタブの一覧が出てきます。検索文字を入れると、インクリメンタルサーチができます。僕みたいにタブを30個とか平気で開いちゃう人には必需品ですね! Workflowはこちらからダウンロードできます。
nginx.confに error_log /path/to/error.log; とか書いて、デフォルトと異なる場所にエラーログを出力するようにしてみたら、起動時に nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied) とか警告が出てしまってました。なんで出力先変更したのに/var/log/nginx/error.logを読みに行ってしまうのか〜、と調べていたら いつものようにStackOverflowで質問が見つかって、ありがとうございます、と。 なんでも、起動してコンフィグファイルを読みに行くまでの間にnginxはコンパイル時に指定したエラーログ出力先(私の環境の場合(CentOS)は/var/log/nginx/er
最近フロントエンドでfacebook/reactをずっと使っている。世界的には一部のエンジニアの間で流行っているのだが、国内だとqiitaのタグ等を見てもどうも少ない。みんなもっと使うべきだと思うので、宣伝かねて意見をまとめてみる。 複雑化するデータバインドに対する懸念 MVWのVに対して思いを馳せると、だいたい次のことに行き着く。すなわち、「ある構造体の入力に対して、必ず一意なビューを生成したい」 {items: [1, 2, 3]} を入力とすると、 1, 2, 3のli要素になってほしい。これは単純な例だから問題に成り得ないように見えるが、アプリケーション全体の状態を一つのjsonとして定義し、 そこから常に0から組み立てればアプリケーションの健全性が確保できると考えたことはないだろうか? 現実の問題 UIのだいたいの状態は遷移で表現される。遷移の差分をプログラマが記述する。jQue
(本エントリはDockerの基礎知識を前提としています。) Dockerにはイメージやコンテナレベルのアクセス制限機能がありません。つまり、Dockerデーモンに接続できる人は誰でも、全てのイメージやコンテナを操作できます。よって、社内にDockerを使う複数のプロジェクトがあり、各プロジェクトメンバーの権限をプロジェクト内に制限したい場合、Dockerホストを分ける必要があります。今回は、そんなシチュエーションでDocker-in-Docker(Dockerの入れ子)を活用する話です。 なぜアクセス制限機能がないか コンテナを起動するときDockerホストの/(ルート)をマウントすると、コンテナの中からホストの全てのファイルにアクセスできます。つまりDockerデーモンへのアクセスはホストのroot権限と同等であり、イメージやコンテナレベルのアクセス制限をしても意味がありません。Dock
まず手元の Windows7 + PHP 5.6.0 で検証した上での結論を書くと 「Windows で日本語ファイルパスを扱う場合 SplFileInfo は使うな」 です。 ロケール設定を適切に行うことで basename() や pathinfo() に関しては、Shift_JISのコード表に起因するいわゆる「5C問題」も回避できました。 しかし、SplFileInfo::getBasename() や SplFileInfo::isFile() に関しては、適切にロケールを設定したとしても、残念ながら「5C問題」を回避できなかったのです。 ロケール設定の影響を受ける関数について 文字列関数は基本的にマルチバイト非対応のものが多いのですが、中には対応はしているがロケール設定に依存する、というものもあります。というか結構多いです。 ファイルパスを扱う際によく使われる basename(
はじめに 2014年8月11日の晩に放送されたソニックガーデンのweb勉強会、SonicGardn Studyでは「いつまでクソコードを書き続けるの? 〜出来るプログラマだけが知っているコードレビュー7つの秘訣〜」というタイトルで、弊社ソニックガーデンの西見さん(@mah_lab)が講演してくれました。 デキるプログラマだけが知っているコードレビュー7つの秘訣 from Masahiro Nishimi いつまでクソコードを書き続けるの? 〜出来るプログラマだけが知っているコードレビュー7つの秘訣〜 - YouTube この放送の中でも触れられていたように、ソニックガーデンではコードレビューを大事にしています。 ただ、勉強会のスライドの中では具体的なコード例や指摘の例がほとんど出てこなかったので、「実際どんな感じなの?」という疑問を持った方もいたんじゃないかと思います。 そこで今回は「入社
Capistrano3を試してみる。 ※MacにRubyやVagrantはインストールされた状態。 インストール とりあえずMacにCapistranoをインストールする。 $ gem install capistrano $ cap -V Capistrano Version: 3.2.1 (Rake Version: 10.1.0) サーバを2台用意 VagrantでDBサーバを2台用意する。 $ mkdir server1 $ cd server1 $ vagrant init centos65 $ vi Vagrantfile config.vm.network "private_network", ip: "192.168.33.11" $ vagrant up sshで接続できるか確認しておく。 $ ssh vagrant@192.168.33.11 こんな感じでserver2
Auto Scaling を使った構成の場合、EC2 へのデプロイはどうやっているでしょうか? AWS を使ってる方はご存知の方も多いと思いますが、EC2 には User Data という仕組みがあります。 User Data は、インスタンス起動時にタスクやスクリプトを実行する仕組みです。 今回この User Data を使って、自分自身のインスタンスから最新のソースを GitHub から取得してデプロイする方法についてご紹介したいと思います。 図で表すと以下のイメージですかね。 ssh localhost? デプロイツールには Capistrano を使いますが、Capistrano は、デプロイ対象のサーバーに対してまず ssh で login を行います。 その後、サーバー上でデプロイ対象のコードの取得や、サービスの再起動をしたりしますが、 AutoScaling は自動でインスタ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く