It's raining cats and dogs.

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

swiftでsha256的なハッシュを作る

swiftでsha256的なハッシュを作ろうと思ったんだけど、標準ライブラリにないっぽく、 CryptoSwift つかった cocoapods.org インストール Podfile pod 'CryptoSwift' pod install pod install usage import CryptoSwift "hoge".sha256() 楽ちんだった

pod install後のno such module

pod installで新しいモジュール?をいれたときとか no such module 的なやつが出るんだけど、そんなときは一回Xcode閉じて open ほげ.wcworkspace で開き直すと解消されたりする

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を見に行くのだけど、 ちょっと場所を変えたいと思っ…