投稿

3月, 2017の投稿を表示しています

CentOS7向けにwkhtmltopdfをソースからビルド

イメージ
YUM経由でインストールしたwkhtmltopdfがよく分からないエラーを吐くので最新版(0.12.4)をビルドしたときの覚書。環境: CentOS 7よく分からないエラー/usr/bin/xvfb-run: line 181: 21759 Segmentation fault      DISPLAY=:$SERVERNUM XAUTHORITY=$AUTHFILE "$@" 2>&1目次YUMバージョンをアンインストール Git cloneしてコンパイル インストール YUMバージョン(0.12.1)と比較して変わったところ 本番環境へインストール1.YUMバージョンをアンインストール今のバージョンを確認
# wkhtmltopdf --versionwkhtmltopdf 0.12.1アンインストール
# yum remove wkhtmltopdf2.Git cloneしてコンパイル公式サイトを参考にGitHub | wkhtmltopdf/INSTALL.md at master · wkhtmltopdf/wkhtmltopdfコンパイラ(開発ツール)をインストール
# yum groupinstall 'Development Tools'GitHubからダウンロードする。ユーザーのホームディレクトリじゃないとコンパイル時にエラーになるらしい。
# cd
# git clone --recursive https://github.com/wkhtmltopdf/wkhtmltopdf.git5分ぐらい掛かった。今の最新バージョン0.12.4をチェックアウト
# cd wkhtmltopdf/
# git tag
# git checkout 0.12.4セットアップ(?)
# sudo scripts/build.py setup-schroot-centos7エラー。CentOSのオプションはなくなったらしい。Building from source in CentOS 7 · Issue #3038 · wkhtmltopdf/wkhtmltopdf再度ビルド実行
# scripts/build.py posix-local -cleanエラーBasic XLib functionality test f…

Google Analytics認定資格を取得

イメージ
Google Analytics認定資格を取得したときの覚書。参考サイトGoogle PartnersGoogle Analytics AcademyGoogleアナリティクスアカデミーの動画はほとんど英語なので、理解するのに時間がかかるかも。Googleアナリティクスとは?を確認するのに有用な公式動画Google アナリティクスの活用方法 - YouTube用語集用語説明セグメントアクセスを特定の条件で絞り込みカテゴリー分けする機能。
セグメントについて - アナリティクス ヘルプディメンションデータの属性。データの性質。セッションなどのアクセスそのものではなく「どんな」アクセスか。
例)市区町村、ブラウザ、言語
ディメンションと指標 - アナリティクス ヘルプマルチチャンネルレポートコンバージョン(CV)に至るまでの経路には、複数の接点(チャンネル:有料検索やディスプレイ広告など)があり、ユーザーはどのようなチェンネルを参照したかを解析
マルチチャネルについて - アナリティクス ヘルプアトリビューションモデルコンバージョン(CV)に至るまでの経路で、それぞれの経路がどの程度貢献したかを重み付けするルールセット
アトリビューション モデルの概要 - アナリティクス ヘルプアシストコンバージョンコンバージョン(CV)に至るまでの経路上の各接点
チャネルの貢献度を分析する - アナリティクス ヘルプMeasurement ProtocolGoogle Analyticsへデータを送信するルールセット。ウェブやアプリ以外のSDKが提供されていない環境でも、このルールに従えばデータを収集することが可能。
Measurement Protocol - アナリティクス ヘルプテスト
(ウェブテスト)A/Bテストを行う機能。テスト用ページを作成しておいて、指定した割合で訪問者にテストページを表示できる。
ウェブテストのメリット - アナリティクス ヘルプリマーケティング ユーザーリストコンバージョンを達成する見込みが高く、再度アプローチしたいユーザー一覧。
AdWordsと連携前提。
Analyticsでユーザーリストを作成しておくと、AdWordsのターゲティングユーザーリストに表示される。
この機能に対応したAdWordsキャンペーンタイプを選択する必要がある。
リマーケティングの設定について …

GoogleアナリティクスからGoogleタグマネージャに切り替え

イメージ
Googleタグマネージャを使うと、Google AnalyticsやAdWordsのコンバージョンスクリプトをいちいち埋め込まずに管理できる。最近は使いやすくなって本番運用に活用できる。詳しくは公式サイトで。Google タグマネージャ公式サイトリリースノート - タグマネージャ ヘルプ出来ること任意のスクリプト(タグ)を任意のタイミング(トリガー)で実行することが出来る トリガーを設定するときにCSSセレクタで指定できるので、IDがついてない要素もコードを修正せずにトリガーに出来る プレビュー機能でどのトリガーが実行されたか分かる特に便利だと思ったところ静的なリンクもコードを修正せずにGoogle Analyticsのイベントを発生させることが出来るから、特定要素のクリック数も簡単に計測可能。 プレビュー機能が素晴らしいこれからはGoogleタグマネージャを埋め込んでおけば間違いない。< Related Posts >【PHP】Server-SideでGoogle Analyticsを使ったTrackingをする

【PHP】BMP画像をJpeg形式とWebP形式に変換

イメージ
Androidアプリから送信された画像がBMP形式なので、サーバー側でJPEGとWebPに変換したときの覚書。環境: CentOS 7, PHP 7.0.16目次AndroidとiOSのWebP対応状況サーバー環境の確認PHPのImagickを使って変換1.AndroidとiOSのWebP対応状況Androidは4.0以上でWebPに対応している。Supported Media Formats | Android DevelopersiOSはiOS 10のSafariで対応しているが、アプリで表示させるためには別途ライブラリが必要。iOSはjpeg、Androidはwebpを表示することにした。2.サーバー環境の確認YUM経由でImageMagickは前にインストールしてあったので、バージョンと対応フォーマットの確認
# convert --versionVersion: ImageMagick 6.9.8-0 Q16 x86_64 2017-03-12# convert -list formatWEBP* WEBP      rw-   WebP Image Format (libwebp 0.3.0[0201])PHPから利用するためのimagickライブラリがあるか確認
# php -i | grep imagickimagick module version => 3.4.33.PHPのImagickを使って変換BMPからJPEGに変換するサンプルコード$info = pathinfo($path);$image = new \Imagick($path);
$image->setImageFormat('jpeg');
// Save as progressive jpeg
$image->setInterlaceScheme(\Imagick::INTERLACE_PLANE);
$image->setImageCompressionQuality(80);$result_path = $info['dirname'] . '/' . $info['filename'] . '.jpg';
$image->writeImage($result_path);
$…

マーケティングは学問。本から学んだ広告コピーの基礎

イメージ
AmazonのKindle Unlimitedで読んだ本がとても有用だったので、忘れないための覚書。読んだ本はこちら。ここらで広告コピーの本当の話をします。 | 小霜 和也 |本 | 通販 | Amazon用語用語説明USP
Unique Selling Proposition競合優位性。
競合と比較した”価値”をどう最大化するかが重要タグライン商品の価値が最大化されるような定義付け。
常に商品と一緒に表示する。
誰もが分かるシンプルな表現で。キャッチコピータグラインに誘導するためのコピー。
ターゲットの共感を得る表現。
「不満のMAX」か「気持ちよさのMAX」を描くAIDMAの法則広告を見てから購買に至るまでの流れ
1.Attention
2.Interest
3.Desire
4.Memory
5.Action
ダイレクト(ウェブ)広告の場合はMemoryがないアウトバウンド企業からターゲットにアプローチすることインバウンドターゲットから企業にアプローチすること。
これを「見つける」ことがマーケティング。「作って」はダメ。クロージングコピーその場での決断を促すための提案ウェブサイトを作った際の自分用チェック項目。本と無関係のもある競合をしっかりと調べUSPが明確かタグラインがモノとヒトとの関係を新たに創造しているか。ターゲットの心を揺さぶる表現になっているかターゲットの視点で作られているかユーザーの利益が明確か。推測させるのはダメ。一瞬で理解できるようにAIDMAの流れになっているかクロージングコピーが出来ているかシンプルに。無駄に長くないか< Related Posts >"ハッカーと画家(Hackers and Painters)"を読んだ「SEを極める 50の鉄則」を読んだ

WordPress記事を投稿時にNginxのキャッシュを削除

イメージ
WordPressから任意のタイミングでNginxのfastcgi cacheを削除したいと調査したときの覚書。環境: CentOS 7, Nginx 1.10.3, PHP 7.0.16, WordPress 4.7.21.Nginxキャッシュについて調査WordPressにはこれを実現してくれるプラグインがある。Nginx Cache Controller | WordPress Pluginsソースを見たけれど正直何をやっているのか分からない。ちゃんとNginxのキャッシュの仕組みを理解しないといけないかもと思い、参考になりそうな記事を読む。A Guide to Caching with NGINX and NGINX Plus - NGINXFlushing the nginx fastcgi cache via PHP (and/or WordPress) | mattgadient.com2.Nginxの「fastcgi_cache_purge」モジュールWordPress公式のNginxキャッシュ設定にクリアする記述があった。Nginx | WordPress Codexlocation ~ /purge(/.*) {
  # Uncomment the following two lines to allow purge only from the webserver
  #allow 127.0.0.1;
  #deny all;  fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}これを実行するには「fastcgi_cache_purge」というNginxモジュールが必要らしい。インストールされているか確認
# nginx -Vnginx version: nginx/1.10.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modul…

Gmail検索クエリとGmail APIと一緒に使うPHPライブラリ

イメージ
Gmail API経由でメール一覧を取得しているときの覚書。環境:CentOS 7, PHP 7.0.16メールを取得する際に設定する検索クエリの参考サイト。Search operators you can use with Gmail - Gmail HelpGmailの検索演算子一覧(隠れコマンド含む)。高度なフィルタ作成に!日付の降順で取得したかったけど今のところ出来ないので、スレッド単位で取得して処理をしていく。Users.threads: list | Gmail API | Google Developersドキュメントに書いてないことはライブラリのソースを読んだ方が早い。 メッセージはraw形式で取得してPHPライブラリでパースした方が開発し易い。 GitHub | php-mime-mail-parser/php-mime-mail-parser: Fully Tested Mailparse Extension Wrapper for PHP 5.4+送信するときはPHPMailerでメールオブジェクトを作って、getSentMIMEMessageしたデータを(base64UrlEncodeして)setRawすると開発しやすかった。 GitHub | PHPMailer/PHPMailer: The classic email sending library for PHP< Related Posts >Gmail APIでシステムとGmail(G Suite)を連携【調査編】Google Apps Scriptで自動的にGmailのメールを定期的に削除Gmailフィルタメモ。必要なメールだけ携帯に転送

PHP Standards Recommendations:PHPコーディング規約

イメージ
composerのauto-loadingの仕組みを見ていて、名前空間やファイル名の付け方を統一しようと思ったときの覚書。PHP Framework Interop Group(PHP-FIG)というグループがPSRという規約をまとめてくれている。PHP-FIG — PHP Framework Interop Groupさくっと理解するのはこちらのスライドが参考になった。新標準PSRに学ぶきれいなPHP個人的にWordPressを使うことが多いけど、WordPressはインデントがタブだったり独自路線が強い。PHP Coding Standards | Make WordPress Core< Related Posts >Wordpress 開発リファレンスのリンク集PHPのコーディング規約