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

YTsudaのブログ

1985生まれ、男。東京で働くWeb制作者

vagrant up したら "Guest Additions Version" とに関するエラーが出た時のメモ

The guest additions on this VM do not match the installed version of VirtualBox! In most cases this is fine, but in rare cases it can cause things such as shared folders to not work properly. If you see shared folder errors, please update …

python でオブジェクトを var_dump

PHPでやっていた print_r や var_dump といったオブジェクトの展開表示をpythonでやりたい場合。 いつも忘れるのでメモ。 from pprint import pprint pprint(vars(object))

Python で Google Analytics API を使うためにやったこと

やりたいこと とあるページのとある日のPV数を自動で取得し、別のアプリ内で使いたい pythonでやりたい ライブラリのインストール httplib2 python-gflags google-api-python-client という3つのライブラリを pip で入れる $ sudo pip install httplib2 $ su…

VagrantでマウントしたJavascriptファイルが文字化けする問題の対処法

環境 Vagrantで作ったVM内でNginxを走らせ、ホスト側のブラウザからリクエストしている。 アプリのソースファイルはホスト側からVMにマウントしている。 Distributor ID: Ubuntu Description: Ubuntu 12.04 LTS Release: 12.04 Codename: precise 現象 ホス…

chefのレシピを開発する時はdebugモードで in Vagrant

chefのレシピを開発する時はdebugモードで行うと良いです。 例えばexecuteリソースを自分で書いた時、 only_if/not_if をテストするのに重宝します。 [2013-08-08T03:09:17+00:00] DEBUG: Skipping bash[update-locale] due to not_if command `cat /etc/def…

Vagrantで複数のcookbooksを指定する

chefのレシピは自作のものとサードパーティーのものを別のディレクトリに分けて入れることが推奨されています。 knifeでchefのプロジェクトを立ち上げると以下のようなディレクトリ構成になります。 cookbooks がサードパーティの、site-cookbooks が自家製…

Chef(Vagrant) で "apt-get update" する方法

vimがインストールできなかった Opscodeから引いてきたレシピで vim をインストールしようとしたのですが、以下のようなエラーが出てインストールできませんでした。 Chef::Exceptions::Exec ---------------------- apt-get -q -y install vim=2:7.3.429-2u…

高速でドキュメントを書くためにMarkdown記法を使う on GoogleDrive

Markdownとは エンジニアたちがドキュメントを高速で書くために編み出された記法です。 Markdown記法を使うと「見出し」や「リスト」のようなドキュメントの要素を簡単に記述できるようになります。 例えばMarkdownで以下のように記述すると... ## 小見出し …

Facebook likeボタンのimageを編集する with Cakephp

facebookボタンを押した時にピョンと出てくるポップアップの imageを編集したい。 昨日の日記で書いた og:description の編集方法 に習えば、view内で以下のようにヘルパーのmetaメソッド使えばできると考えられる。 echo $this->Html->meta(array( 'propert…

Facebook Likeボタンのdescriptionを編集する with CakePHP

facebookボタンを押した時にピョンと出てくるポップアップの descriptionを編集したい。 そんな時は、以下のようなmetaタグをhead内に書くことで編集できる。 <head> ... <meta property="og:description" content="A description to be used in the share dialog." /> </head> CakePHPでmetaタグを埋め込む方法 さて、この仕組みをcakeで利用する場合、 それぞれのvie…

PythonとcronでURLの死活監視

指定したURLが生きているかどうか監視する必要に迫られたため、なるべく手軽に導入・管理できるものを探したところ、以下の方法に行き着きました。 環境は Ubuntu-12.04 です。 要件 監視対象のURLリストを外部ファイルで入力したい ステータスコードが 200-…

Nginx設定ファイルをデバッグするため、任意の変数をログに出力する方法

Nginxの設定ファイルでは変数やif文を使用できる。 その変数をデバッグしたい時にログに出力する方法のメモ。 新しいログフォーマットを作る /etc/nginx/nginx.confの httpブロック内に log_formatの設定を追加する。 http{ log_format debug_val_format "$d…

groongaのfilter検索条件でスペースが使えない?

groonga で select をする際の条件指定(SQLでいうWHERE句)には、 query と filter という2種類の方法がある。 今回は類似検索を使いたいので、filter を使うことにした。 そこで、ドキュメントのこのあたりを参考にしつつ、 以下のようなクエリを投げてみる…

スマホ版webサイトの下部固定バナーをDFPで出したい

もっぱら苦戦中の案件。 現在関わっているサイトはバナー広告の出力にDFPスタンダードを利用している。 このサイトをスマホで見た時に、ウィンドウ下部に固定でバナーを掲載したい。 position:fixedされていて、スクロールしてもついてくる、よくあるやつ。 …

CakePHP2.xのテストで不適切なエラーが出る件

CakePHP2系のPHPUnitを用いたテストでWeb上(/test.php)からテストする際、 テストケースを書いてない状態だと以下のエラーが出る。 Call to undefined method PHPUnit_Framework_AssertionFailedError::getComparisonFailure() エラー内容がよくわからなくて…

新年

新しい年になった。 12月30日から1月3日の現在まで、 ほぼPCの前から動かなかったせいで年を越したという感覚が無い。 紅白も見てないし除夜の鐘も聞いてない。 浦安魚市場の年末大売出しで蟹を買ってきたのと、 コミケにちょっとだけ顔を出したのが、 わず…

SublimeText2のvim化にはVintageEX

話題のSublimeText2を使い始めました。 公式のvim化 vim化する方法として以下の方法が公式サイトのVintage Modeで紹介されています。 やり方は、Preferences -> Setting - Default を開き "ignored_packages": ["Vintage"] を "ignored_packages": [] に変更…