投稿

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 --version wkhtmltopdf 0.12.1 アンインストール # yum remove wkhtmltopdf   2.Git cloneしてコンパイル 公式サイトを参考に GitHub | wkhtmltopdf/INSTALL.md at master · wkhtmltopdf/wkhtmltopdf コンパイラ(開発ツール)をインストール # yum groupinstall 'Development Tools' GitHubからダウンロードする。ユーザーのホームディレクトリじゃないとコンパイル時にエラーになるらしい。 # cd # git clone --recursive https://github.com/wkhtmltopdf/wkhtmltopdf.git 5分ぐらい掛かった。 今の最新バージョン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 再度ビルド実行 # scr

Google Analytics認定資格を取得

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

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 Developers iOSはiOS 10のSafariで対応しているが、アプリで表示させるためには別途ライブラリが必要。 iOSはjpeg、Androidはwebpを表示することにした。   2.サーバー環境の確認 YUM経由でImageMagickは 前にインストール してあったので、バージョンと対応フォーマットの確認 # convert --version Version: ImageMagick 6.9.8-0 Q16 x86_64 2017-03-12 # convert -list format WEBP* WEBP      rw-   WebP Image Format (libwebp 0.3.0[0201]) PHPから利用するためのimagickライブラリがあるか確認 # php -i | grep imagick imagick module version => 3.4.3   3.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

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

イメージ
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.2   1.Nginxキャッシュについて調査 WordPressにはこれを実現してくれるプラグインがある。 Nginx Cache Controller | WordPress Plugins ソースを見たけれど正直何をやっているのか分からない。 ちゃんとNginxのキャッシュの仕組みを理解しないといけないかもと思い、参考になりそうな記事を読む。 A Guide to Caching with NGINX and NGINX Plus - NGINX Flushing the nginx fastcgi cache via PHP (and/or WordPress) | mattgadient.com   2.Nginxの「fastcgi_cache_purge」モジュール WordPress公式のNginxキャッシュ設定にクリアする記述があった。 Nginx | WordPress Codex location ~ /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 -V nginx 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:

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

イメージ
Gmail API経由でメール一覧を取得しているときの覚書。 環境:CentOS 7, PHP 7.0.16 メールを取得する際に設定する検索クエリの参考サイト。 Search operators you can use with Gmail - Gmail Help Gmailの検索演算子一覧(隠れコマンド含む)。高度なフィルタ作成に!   日付の降順で取得したかったけど今のところ出来ないので、スレッド単位で取得して処理をしていく。 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のコーディング規約