読者です 読者をやめる 読者になる 読者になる

It's raining cats and dogs.

無駄なことなんてないはず

ansibleで "Encountered unknown tag 'd'." なエラーがでた

どうして今までハマらなかったんだろう的な話で、ansibleでapacheの設定ファイルで表題のエラーがでた。 apacheのLogFormatを追加してprovisionしたときに出たのだけど、原因としては追加したLogFormatの記述がansibleで使っているJinja2テンプレートとして…

slim3のMiddlewareの実行順

slim3のMiddlewareは後から追加した順に実行されるらしい add(new \MyMiddleware1); // 実行順 3 $app->add(new \MyMiddleware2); // 実行順 2 $app->add(new \MyMiddleware3); // 実行順 1 上から実行されてほしい感ある

slim3でクライアントIPアドレスを取得する

slim2では request->getIp(); 的なことができたのだけど、slim3だとどうやら取得する術が標準では存在しないぽい。マニュアルにも、サードパーティなライブラリ使えって書いてある。 てかどうしてなくした。普通クライアントIPとりたくなるだろ。 本体になく…

apacheでS3にプロキシさせるときにbasic(digest)認証をかませていると400 bad requestになる

S3にBasic認証付きリクエストをすると400:Bad Requestになる | Siguniang's Blog この記事のapache版。 apacheのmod_proxyでS3においてある画像にプロキシさせた時に、basic認証をかませているとS3から400 bad requestが返ってきてしまって画像が表示されな…

多次元配列をうまいことマージしてくれるarray_replace_recursive便利

PHP

今更感あるけど、array_replace_recursive というメソッドが便利だった。 設定ファイルなんかはphpでサクッと書いちゃうことが多い。例えば [ 'key11' => 'val11', 'key12' => 'val12' ], 'key2' => 'val2' ]; みたいなファイルにしておけば

anyenvのphpenvでphp5.5を入れた時にapcの設定でハマった件

anyenvでphpenvを入れて、php5.5を入れて適当なphp書いて、ビルトインサーバで実行してみたら以下の様なnoticeが出た。 Notice: Unknown: 1. h->opened_path=[null] h->filename=[/private/var/apps/sample/index.php] in Unknown on line 0 Notice: Unknown…

android studioで2段階認証設定済みのgithubからcloneする

android studioを使ってgithubからコードをcheckoutするときに、github側で2段階認証(two factor authentication)を設定しているときはpersonal access tokenを使うそうです。 http://michaelcarrano.com/blog/using-github-with-android-studio githubの画…

slim 2.4からroutingでクラス形式のコントローラーを呼び出せるようになっていたらしい

slim 2.4からroutingでクラス形式のコントローラーを呼び出せるようになっていたらしい。 http://uzulla.hateblo.jp/entry/2014/01/11/040335 なるほどと思って、早速試したらできたので、おおーとなっていたのだけど、 上の例は特にパラメータを渡さない呼…

MySQL WorkBenchで日本語を使う

だいぶ今更感あるけど、メモ。 とりあえずざっくりER図を書きたいときにMySQL WordBenchを使うのだけど、テーブル名に日本語が表示できないのでざっくりかけない。悲しい。 調べたら設定を変えるだけで使えるらしい。 http://qiita.com/snaka/items/dc1d104c…

phpenvで作ったphp環境にpeclのライブラリをインストールする

phpenvでつくったphpの環境にpeclのライブラリをインストールした時のメモ。 pearのライブラリなんかはcomposerでプロジェクトローカルにインストールしてしまうんだけど、peclってsystem php?な環境にpeclコマンドでpecl install hogehogeみたいにインスト…

php5.4からデフォルトのtimezoneの扱いが変わっている件

php

結構今更感あるんだけど、php5.4からデフォルトのtimezoneの扱いが変わっている。 php5.4以上をインストールしてデフォルトのphp.iniのままphpを実行したりすると以下のようなメッセージが出る。 PHP Warning: Unknown: It is not safe to rely on the syste…

nkfでファイルの文字コードを確認する

nkfはファイルの文字コードを変換したりするもんだと思っていたけど、文字コードを確認するのにも使えるらしい(そりゃそうか) nkfの--guess or -gというオプションを使う。 そういえば僕のmacにはnkfが入っていなかった。 $ brew install nkf まずはutf8のフ…

grep結果に色を付けるとなんだか捗る

grepで検索した時にヒットした文字列の色を替えるやり方をmonmonさんに教わったのでメモ。 --color=autoというオプションをつけると良いらしい $ grep --color=auto 'hogehoge' access.log のようにするとgrepの検索結果画面のhogehogeという文字に色がつい…

ホームディレクトリ($HOME)以外の場所にplenvの環境を作ってperlをインストールする

plenvはデフォルトではホームディレクトリ($HOME)にインストールする前提になっているようだ。 で、今回はわけあってホームディレクトリ以外にplenv(perl)の環境を作りたかったので、その時のメモ。 基本的な流れはREADMEの通り。 ※/path/toディレクトリにイ…

携帯(ガラケー)サイトで、PHP5.2以下から5.3以上へのバージョンアップ時にmb_output_handlerを使った文字コード変換でハマった時のメモ

php

前回のエントリでも触れたけど、とある携帯(ガラケー)サイトをPHP5.2から5.4にバージョンアップ対応していた時にまたハマった。※文字多めのエントリ ガラケーといえば、3キャリア対応するためにShift_JISでページを作るのは鉄板。やり方はいろいろあるけど、…

PHP5.2以下から5.3以上へのバージョンアップ時にcookie以外の手段でセッションIDを保持する場合のメモ

php

とある携帯(ガラケー)サイトのPHPを5.2から5.4にアップデートしようとしてハマった。 携帯サイトではcookieを使えない場合もあるので、(セキュリティ的に良いか悪いかは別にして)URLにセッションIDを付ける場合はわりと多いのではないだろうか? で、試し…

[ssh] ssh経由で他のサーバのスクリプトを実行するときに.bash_profileを読ませる方法

ssh

ssh経由で何かのスクリプトを実行したい時は $ ssh "/usr/bin/perl /path/to/hoge.pl" という感じで実行できるけど、~/.bash_profileとかに書かれた環境変数を使って処理をするスクリプトだと、sshの非対話モードでは~/.bash_profileを読んでくれないので、…

composerでSmarty2をインストールする

composerでsmartyを入れる時は { "require": { "smarty/smarty": "*" } } とやるとインストールできるのだけど、これだとSmarty3が入ってしまう。でも今の環境ではSmarty2が使われているので2を入れたい(バージョンアップしたらいいがなという話は置いとい…

composerでライブラリのインストールディレクトリを変える

composerはphpのライブラリ管理ツールだ。改めて説明する必要はないくらいだけど、rubyのbundlerとかperlのcartonみたいなもんだ。 composerのざっくりとしたディレクトリ構成は current_dir ├ composer.phar ├ composer.json ├ composer.lock └ vendor ├ au…

perlがスクリプトをどのように解釈しているのかを知るためのB::Deparseなるものを知った

僕のperlの先生monmonさんに今日もまた教えてもらった。 perlがどのようにスクリプトを解釈しているのかを事前に知ることのできるB::Deparseというものがあるらしい。 ↓のサイトを参考にさせていただいた。 http://www.g-ishihara.com/perl/compiler01.html …

ORA-12154: TNS: 指定された接続識別子を解決できませんでした

sqlplusなどでoracle clientを使ってoracleにアクセスするときによく出るアレ。これがでるとなんだか憂鬱。 たぶんネットに溢れかえっているであろう内容だけど、備忘録。 $ sqlplus <ユーザーID>/<パスワード>@<SID> SQL*Plus: Release 11.2 Production on 月 9</sid>…

httpsでのgit cloneをやめてssh over https portでcloneした話

以前gitのバージョンが1.7.10以下の環境でhttpsを使ってgithubからcloneするエントリを書いた。 http://tadasy.hateblo.jp/entry/20130903/1378209883 基本的にはコレで問題無さそうで、個人の環境をとして使うのであれば特に問題はないのだけれど、共有の環…

perlコマンドの評価順

extlib的なプロジェクトローカルなディレクトリにCPANモジュールを突っ込んでいて、そのライブラリがうまくインストールできているか(動くか)を確かめたかったのでワンライナーで試していたらなんか失敗した。 $ perl -MDateTime -Mlib=extlib/lib/perl5/ …

はてなブログに移行した

なぜか markdownが使いたかった。それだけ。

https経由でgit cloneしたら「error: RPC failed; result=18, HTTP code = 200iB」的な怒られ方をした時の話

git

まえにhttps経由でとあるリポジトリを古い環境にcloneした時のことを書いた。http://d.hatena.ne.jp/tadasy/20130904/1378299371この時に確かもう一つハマっていたことがあって、それが表題の件。 $ git clone https://github.com/sampleProject/hoge.git Cl…

perlの@INCの値を調べる方法

情弱ネタperlのinclude path? load path?を調べる時はこれまで $ perl -e 'print join("\n", @INC);' /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5みたい…

CPANがFetching with LWPあたりで処理が止まってしまう件

僕がハマっているところをググっていると何年も前の記事に引っかかるので、perl力の低さが露呈していて辛いですね!表題の件。 cpanコマンドで何かをインストールしようとしたりした時に $ cpan -a Creating autobundle in /Bundle CPAN: Storable loaded ok…

cpanmのcpanfileの置き場所を指定する

とあるプロダクトでcpanminusを使おうとした時のメモcpanfileというのはrubyのbundlerでいうところのGemfileみたいなものだ。cpamコマンドを実行するとデフォルトではカレントディレクトリにあるcpanfileを見に行くのだけど、 ちょっと場所を変えたいと思っ…

githubにブランチをpushしたら ERROR: Repository not found. と怒られた

今日も怒られました。 とあるプロダクトのgithubリポジトリにアカウントを追加してもらって、masterをcloneして、ローカルでブランチ切って、アレコレ修正してコミットした。 問題無さそうなのでgithubのリポジトリにリモートブランチ作って、pull reqするか…

error: SSL certificate problem, verify that the CA cert is OK.

git

ちょっと古い環境(CentOS5以下)でgit cloneでとあるプロジェクトをhttps経由で持ってこようとしたら表題のようなエラーがでた。 $ git clone https://github.com/sampleProject/hoge.git . Cloning into .... error: SSL certificate problem, verify that t…

git clone で error: The requested URL returned error: 401 Authorization Required while accessing と怒られた

git

今新しく環境を作っていて、githubからとあるプロジェクトをcloneしようとしたら、表題の件で怒られた。 $ git clone https://github.com/sampleProject/hoge.git Initialized empty Git repository in /path/to/hoge/.git/ error: The requested URL return…

[ruby] omniauth-twitterでOAuth::Unauthorized at /auth/twitter っていうエラーがでる

かなり今更感ありそうなomniauthの話。 omniauthでサクッと認証する部分を作ろうとしたら OAuth::Unauthorized at /auth/twitter 401 Unauthorized っていうエラーに遭遇した。backtraceが出てたけどとりあえずしばらくググったら回答を発見。 OmniAuthのFAQ…

svnでdumpファイルload時に Cannot accept non-LF line endings in 'svn:log' property っていうエラーがでた

svn

バージョンの古いsvnリポジトリでdumpしたリポジトリを新しいバージョンのsvnにloadしようとしたら以下のエラーがでた。 Started new transaction, based on original revision 4257 svnadmin: E125005: Invalid property value found in dumpstream; consid…

svn hook(pre-commit)を使ってコミットを拒否る

svn

引き続きみんな大好きsvnネタ。集中管理バンザイ(泣 やりたいこと コミット対象のファイルの中に特定の文字列が含まれていた時にコミットを拒否したい svn hookについて http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_pre-commit.html の「設定方法の…

svnのリポジトリを統合する

svn

とあるリポジトリを別のリポジトリの配下に移してリポジトリを統合したい。 どういうことかというと repos1 └ foo.txt repos2 └ bar.txtこれを repos1 ├ foo.txt └ repos2 └ bar.txtのようにrepos1配下にrepos2を移動して統合する。事前にそれぞれのリポジト…

Vagrantでインストールしたboxファイルの行方

Vagrantを使って環境を作っていたんだけど、そういえばvirtualboxのboxファイルをインストールするときに $ vagrant box add centos6.3 https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box というようにboxファイルをインストールする…

変更した複数のphpファイルのシンタックスチェック

複数のPHPファイルに対して、いろいろ修正を加えたんだけど、とりあえずシンタックスチェックくらいは一気にやりたかったのでshellでまるっとチェックした。 対象はsubversionで管理されているので、変更したファイル(M)のファイルだけチェックした。 $ cd t…

SQLのreplace関数が便利

SQL

とあるカラムの文字列を一括して置換したいときはreplace関数が便利。たとえば、hoge_tableのcol1に入っている文字列の'foo'を'bar'に置換したいときは update hoge_table set col1 = replace(col1, 'foo', 'bar'); とすると一括で更新できる。 調べるとOrac…

さくらのVPSを借りて、真っ先に設定した内容まとめ

VPS

ついカッとなってさくらのVPSを借りたので、借りてすぐにやったことのメモ ちなみにディストリビューションはCentOS 6を選択しました。 rootのパスワード変更 契約時はrootしかアカウントがないので、とりあえずrootでログインし、rootのパスワードを変更し…

PHPの参照渡しを探す

PHP

関数呼び出し時の&をつけた明示的な参照渡しは、PHP 5.3からは非推奨、5.4からは廃止になるということで5.4になる前に撲滅しておきたいですよね!以前 id:MugeSo さんに教えてもらった技のメモプロジェクトのルートディレクトリとかで $ find $(pwd) -type d…

mysqlで全テーブルのカラム一覧を見たい

情弱メモ。 mysqlでテーブル一覧とかカラム一覧とかを見るときは /* テーブル一覧 */ mysql> show tables; /* カラム一覧 */ mysql> desc <table_name>; みたいにやるんだけど、mysqlコマンドではなくて、sqlで確認したいときは mysql> show databases; +---------------</table_name>…

androidのアイコン画像のサイズ

※下記の内容の認識が間違っていた。正しくは下の追記に書いた。たまにはandroidの話。というかメモ。 androidのアイコン画像を置くときに drawable-hdpi drawable-ldpi drawable-mdpi drawable-xhdpi あたりのディレクトリにそれぞれ画像を置くと解像度に適…

ブログチュートリアルをやった「だけ」でのCakePHPの感想的な何か

とりあえずブログチュートリアルをさらっとやっただけで、そもそもよくわかってないのですが、個人的にCakePHPの気になるところをまとめる。 ディレクトリ名の頭文字が大文字 ORMで取得したレコードのデータ構造 View側でのhelperの使い方 Controller内のmod…

PHP5.4のビルトインサーバーでCakePHP2.2でブログチュートリアルをやってみる。

Railsをやっていた人間的には、PHPでの代替品としてCakePHPあたりが良さげな感じらしいけど、昔CakePHP1以前くらいのときにbakeコマンドというのを使ってジェネレータがアレだなという印象を持ったまま、なんとなく避けて通ってきたCakePHPになぜだか向き合…

5.4のビルトインサーバーを試す

PHP

php5.4で導入されたビルトインサーバーをためす。RailsでいうWebrick的なアレ。 $ php -S localhost:8080 みたいに実行するだけでwebサーバー的なのが立ち上がる。ついでに $ php -S localhost:8080 -t /path/to/app/docroot -c /path/to/app/php.ini みたい…

install

そういえばhomebrewでmysqlを入れたはいいけど、設定してなかったので改めて。http://tukaikta.blog135.fc2.com/blog-entry-197.htmlメモメモ

homebrewのCellar

homebrewで何かをインストールすると/usr/local/Cellar配下にパッケージがインストールされるんだけどCellarってなんだろうと思って調べたらhttp://eow.alc.co.jp/search?q=cellar&ref=sa「地下貯蔵室」言わんとしていることはわかるんだけど、なんでhomebre…

rvmのアンインストール

rvmとrbenvがごちゃごちゃしてたのでrvmをアンインストール $ rvm seppku 切腹...

svn:ignoreを再帰的に調べる

とあるプロジェクトのsvn:ignoreがどこで設定されているかを調べる必要があったので調べました。 再帰的にignoreを設定するためにはhttp://d.hatena.ne.jp/tell-k/20090806/1249575564このブログに書いてあるとおりにしたらできるのだけど、反対にディレクト…

namespaceを調べる

PHP

今更感あるけど、PHPのバージョンを上げたいなと思ってphp5.3以上の機能を調べてる。異なるnamespaceにある同じクラス名のクラスを両方requireした時に、namespace指定せずにそのクラスを呼び出せるのか?また呼び出せるのであればどちらのクラスが呼ばれる…