投稿

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

iframeのGoogleマップを印刷したときに中心にしたい(特にIEとEdge)。けど印刷時の余白を設定して諦めた。

イメージ
病院や組織のホームページを作っていて「確認してください」というと、ウェブサイトを印刷して紙で確認(回覧)する。レスポンシブデザインを採用していると、A4で印刷すると横幅が狭くなるので「ここで改行してほしくない」と言われることもある。ウェブ上で完璧に仕上げてもそもそも画面で見ていない。「画面ではぴっちり収まってます。普通は印刷しないので大丈夫です。」と言う前に出来るだけ印刷してもいい感じになるようにしたときの覚書。
まずはブラウザごとにデフォルト値が違う余白の設定。これだけでだいぶ違う。参考: @page - CSS | MDN@page {
   margin: 5mm;
}

あとは@media printを使って地道に調整していく。@media print {
   #nav-area {display: none;}
}
特に困ったのが画面の横幅いっぱいにiframeでGoogleマップを表示しているページ。印刷すると左部分しか表示されない。特にIEとEdge。Google Chromeは中心まで表示されるから許せる。印刷したときのイベントを取得してJavaScriptで制御しようとしても、再表示やsrcの置き換えをしようとしてもうまくいかない。参考: Detecting Print Requests with JavaScriptiframeではなくGoogle Maps JavaScript APIを使ってsetCenterすれば出来るかもしれない。けど使用制限があるので、普通のホームページで使いたくない。
拡大、縮小など試してみたけどダメ。中途半端は逆効果になるのでやめた。
どうしても見た目通りに印刷したい場合は、サイズ固定の別ウィンドウを表示した方がよさそう。もしくはウェブサイトを(サーバー側で)PDFにして表示してもいいかもしれない。
< Related Posts >Bootstrap3のWEBページを印刷してもいい感じにPHPでPDF生成するためにwkhtmltopdfをインストール

【健康経営】医療の力を人材力に。「産業医プロ」のホームページを制作

イメージ
産業医の先生のホームページを手掛けたときの覚書。制作したサイトはこちら産業医プロ | 合同会社DB-SeeD

産業医は労働者50人以上の事業所ごとに1人以上選任しないといけない。産業医 - Wikipedia最近は「働き方改革」で企業も職場環境改善に関する意識が高くなってきているけど、法律だから仕方なく産業医と契約している企業が多いらしい。産業医の先生も「メンタル診れない(診たくない)」という方が多いらしいので、神田橋先生のような意識高い方が評価されるようになってほしい。

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

Googleのロゴ、「Android」の使用に関するガイドライン

Google製品のロゴをドキュメントに入れたいと思って調べたときの覚書。今は日本語で分かりやすく説明している公式サイトがある。使用許諾 – Google「よくある質問」に答えがあった。手順などをわかりやすく説明するため、標準的な Google スクリーンショット(Google のホームページ、メイン プロダクト ページ、または検索結果ページの画像)を何も改変せず、印刷形式またはデジタル形式で使用するのであれば、Google の許可を得る必要はありません。ただし、使用に関するガイドラインに従うことが条件となります。必ず、一切加工せずに使用してください。スクリーンショットの上にグラフィック、写真、広告文を重ねたり、取り込んだ画像の外観を変えたりすることはできません。スクリーンショット以外の部分に Google ロゴを掲載する場合は、Google の使用許諾を得る必要があります。よくある質問 | 使用許諾 | Google
別件で「Android」という単語はGoogleの商標で使い方に関するガイドラインがあった。ブランド ガイドライン | Android Developers
< Related Posts >会社設立のための商号・商標調査GPLライセンスについて整理BSDライセンスについて整理

Googleマイビジネスの「更新内容の確認」が消えない

イメージ
Googleマイビジネスを使っていてバグと思われる現象をサポートに問い合わせしたときの覚書。
現象Googleマイビジネスの一覧画面に「更新内容の確認」が表示され、それをクリックして「情報」を表示すると、右上に「Googleによる更新」が表示される。そこの「ビジネスの変更をすべて承認」しても「更新内容の確認」が消えず残ったまま。この画面の下部に「送信」ボタンは表示されていない。管理中のビジネス2件が同じ現象。

サポートに連絡以前の画面に戻って指示通りの手順をしても直らない。技術の方に問い合わせてみるとのこと。
2日後に再度電話が来て、「不具合なのでしばらくしたら直っている」とのこと。これが2017年12月11日時点。
カバー写真に設定したのが反映されないのは、これが原因かもしれない。
とりあえずGoogle先生の中のエンジニアが頑張ってくれるよう祈るのみ。
< Related Posts >サイトのスピードテストと画像を最適化してスコアを上げるGoogle検索結果にサイトリンクを表示したくてJSON-LDを設定

ウェブページのSEO対策ガイドライン by Google

イメージ
Google先生が検索エンジン最適化(SEO)対策のためのスターターガイドを更新したので覚書。検索エンジン最適化(SEO)スターター ガイド - Search Console ヘルプウェブサイトを見ただけだと、これらに対応しているかが分かりづらい。しかもサイトを作る人(開発者)が意識してないと、後で対応するのが大変。後々人を雇ったときのためにSEOチェックリストを作った方がよさそう。
< Related Posts >Google検索結果にサイトリンクを表示したくてJSON-LDを設定SEO対策のためにGoogle Placesに登録してGoogle+ LocalとLinkする

Titanium SDK 7.0.0.GAとAndroid NDKはAndroid Studio経由に切り替え

イメージ
Axway Titanium SDKが7.0.0になってAndroid NDK r16に対応したということでアップデートしたときの覚書。環境: macOS Sierra v10.12.6, JDK 1.8.0_131, Android Studio 3.0.1
参考GA Release of Titanium SDK 7.0.0 (+Hyperloop), CLI 7.0.0, | Appcelerator Studio 5.0.0
1.Android Studio経由でNDKをインストールAndroid Studioを起動して、SDK Toolsの中にあるNDKをインストール。インストールされた場所
/Applications/android-sdk-macosx/ndk-bundle/環境変数は指定しなくてもいいのかな?と思いコメントアウトしてみる(昔は必要だった)。
$ less .bash_profile# Android SDK, NDK
export ANDROID_HOME=/Applications/android-sdk-macosx
#export ANDROID_NDK=/Applications/android-ndk-r12b

2.Androidモジュールをビルドarm64に対応したらしいので、公式サイトを参考にmanifestを変更。Android Module Upgrade Guide | Appcelerator Platform - Appcelerator Docsビルド実行
$ appc run p android --build-onlyエラー[ERROR] There is discrepancy between the architectures specified in module manifest and compiled binary.
[ERROR] Architectures in manifest: arm64-v8a,armeabi-v7a,x86
[ERROR] Compiled binary architectures: armeabi-v7a,x86
[ERROR] Please update manifest to match module binary architectures.
新しいモジュールを作成し…

FoundationのBlock GridをBootstrapで使う

イメージ
前に調べたCSSフレームワーク「Foundation」のBlock GridをBootstrapで使いたくなったので調査したときの覚書。環境: Bootstrap v3.3.7
参考Block Grid | Foundation Docs
GitHub Gistで公開されているのが使いやすかった。Foundation 5's block grids for Bootstrap 3. | GitHub画像サムネイル+タイトルをいい感じに並べるのに便利。
< Related Posts >CSSフレームワーク「Foundation」

CSSフレームワーク「Foundation」

イメージ
今のところBootstrap v3を便利に使っているけども、「Foundation」というCSSフレームワークを知らなかったので調査したときの覚書。
参考CSSデザインはComponents指向になって、BeMはなくなる?〜Web Components時代のCSSデザイン(座談会)に参加してきた〜 #html5exp | Developers.IOFoundationとは? | 基本 | Foundation5の使い方
Foundationの理解(Bootstrap v3との比較)IE9以上(IE8には対応していない)Sass単位はemBlock GridがECサイトで便利らしい。
参考:FoundationがBootstrapよりもECサイトに向いている理由 - Welcart カスタマイズ
今までの資産を捨ててまでFoundationに切り替える理由はなさそうだけど、公式サイトのShowcaseはデザインの勉強になる。
< Related Posts >Bootstrap3のWEBページを印刷してもいい感じにTwitter Bootstrap利用サイトでIE8だとimgが表示されない

株式会社の法人決算。初めての決算を自分でやってみた。

イメージ
法人決算の方法を調査したときの覚書。環境: 株式会社、埼玉県川口市、一人社長、9月末決算、一年目、MFクラウド会計
1.提出書類の確認。決算の概要把握各管轄から封筒が送られてくる。県税事務所は送られて来なかった。。。本社移転届も出しているのになぜ?。。。と思ったら市役所からの書類に同封されていた。
【税務署】法人税法人事業概況説明書(OCR)
全力法人税で出力したものを手書き入力確定申告書(OCR)
全力法人税で出力したものを手書き入力
1枚目と2枚目に押印が必要その他「全力法人税」で作成した申告書と勘定科目内訳書決算報告書
MFクラウド会計から出力
【県税事務所】法人事業税申告書送付先カード
全力法人税で出力したものを手書き入力欠損金額等及び災害損失金の控除明細書
全力法人税で出力郵送の場合、送付先カードは切り取って、一番上のだけ送る。受付印が欲しい場合は返送封筒を同封すれば送り返してくれるらしい。
【市役所】法人市民税申告書(戸田市)
全力法人税で出力したものを手書き入力申告書(川口市)
全力法人税で出力したものを手書き入力今年度は5月に本社移転したので、戸田市と川口市に分割して納付する。<月割りの計算方法>当社の場合は10/3に設立しているので、11/3で1ヵ月。5/9に本社移転しているので、10/3~5/3までの7ヶ月分を戸田市に払う。5/9~9/9までの4ヶ月分を川口市に払う。
2.書類準備決算報告書はMFクラウド会計から出力するだけでOK。申告書がめんどくさい。全力法人税という申告書を自動作成してくれるクラウドサービスがいいらしい。自分でできる!法人税申告書作成ソフト「全力法人税」登録無料、印刷時に料金が発生。初年度19,800円全力法人税の概要誰でもかんたんに法人税の申告を〜税務調査が来ない条件〜
案内に従って入力していく。2時間ぐらい掛かった気がする。MFクラウド会計のデータを取り込んだときに変換した勘定科目未払給与 → 未払金保証金 → 前払費用
完了後に印刷。。。。埋まっている値が正しいのか分からない。。。
3.税理士の方に確認してもらうさいたま起業家協議会の税理士の方に簡単に確認頂いた。いろいろと参考になる意見を聞けた。仕訳などMFクラウドで修正。一括編集機能があって助かった。「一括編集」機能の使い方 | MFクラウド会計
全力法人税で出力し直し。「取り込みデータ一括削除」し…

【WordPress】管理画面のメニューなどカスタマイズ

イメージ
特定のユーザーがログインしたときに投稿一覧を表示して、不要なメニューは非表示にしたいと調査したときの覚書。環境: WordPress 4.8.3, PHP 7.0.25
1.左のメニューから不要なものを非表示参考Function Reference/remove menu page | WordPress Codexadmin_initに下記のような処理をフックする。// ダッシュボードのアクセスは投稿一覧へ
if ('/wp-admin/index.php' == $_SERVER['SCRIPT_NAME']) {
     wp_redirect(admin_url( 'edit.php' ));
     return;
}// メニューを非表示にする
remove_menu_page( 'index.php' );
remove_menu_page( 'edit-comments.php' );
remove_menu_page( 'upload.php' );
remove_menu_page( 'profile.php' );
remove_menu_page( 'tools.php' );// アップデートのメッセージを非表示にする
remove_action( 'admin_notices', 'update_nag', 3 );// 左のメニューにログアウトボタンを表示
global $menu;
$menu[] = [__('Logout'), 'read', wp_logout_url()];

2.上のadmin_barも不要なメニューを非表示参考Function Reference/remove node | WordPress Codexadmin_bar_menuに下記のような処理をフックする。実行する優先順位を下げないとwp-logoとか消えなかった。function hoge_admin_bar_menu( $wp_admin_bar ) {
     $wp_admin_bar->remove_node('updates');
 …

一人社長の給与(役員報酬)を変更

イメージ
起業して1年が経ち、事業も軌道に乗ってきたので、自分の給与(役員報酬)を変更しようとしたときの覚書。環境: 一人社長、9月末決算、15日締め当月25日払い
参考サイト役員報酬変更の手続きの流れと議事録などへ押印する印鑑のまとめ - 印鑑証明マニュアル
1.取締役会議事録作成参考サイトのテンプレートの必要箇所に記入して終了。捺印済みをスキャンして印刷。日本年金機構へ提出用。
2.日本年金機構に月額変更届を提出月額変更届の提出は2月以降でよかった。変更した月から3か月後の提出でよかった。日本年金機構ホームページに従って書類を準備。月額変更届の提出|日本年金機構「タ」と「チ」に変更後の月額報酬額を書いた。
提出書類被保険者報酬月額変更届取締役会議事録の写し源泉徴収簿(改定月の前の月分)
MFクラウド給与の「帳票一覧→源泉徴収簿」で出力
間違いがあるか心配だったので窓口に行ってみてもらった。川口市の場合は浦和年金事務所
確認したこと変更届は支払った直近3ヵ月の給与を記入するので、私の場合は11月、12月、1月の実績を記入する。改定年月は平成30年2月。「タ」と「チ」は未記入。提出は1月25日以降でよい。改定年月から60日遅延してなければ、取締役会議事録の写しと源泉徴収簿はいらない。変更額が小さいならば、そもそも変更届もいらない。私の場合は5等級変わるので必要。7月に提出する算定基礎届で保険料は決まるので、変更届の重要性は低い。提出したときの覚書。SE奮闘記: 社会保険の算定基礎届を指定会場で提出
3.MFクラウド給与の設定変更従業員情報から役員報酬を変更。健康保険/厚生年金保険を変更したら保険料が変わるので、これは多分来年変更する。
4.翌年やっぱり下げた(2019/01/23 追記)調子に乗って上げ過ぎたので、翌年下げて申請書類を郵送したら下記添付書類が必要だった。賃金台帳の写し株主総会または取締役会の議事録郵送先は管轄の年金事務所ではなく事務センター。全国の事務センター一覧(健康保険・厚生年金保険の適用に関する届書等を郵送される場合)|日本年金機構


< Related Posts >社会保険の算定基礎届を指定会場で提出e-Taxを利用申請して所得税徴収高計算書(納期特例分)を申告株式会社設立④:社会保険

PHPExcelの後継ライブラリPhpSpreadsheet

イメージ
PHPExcelの後継ライブラリを見つけたので覚書。GitHub - PHPOffice/PhpSpreadsheet: A pure PHP library for reading and writing spreadsheet filesPHP7に対応していて、今風の作りになっているので流行りそう。2017/08/17にβ版がリリースされている。そのうちGAがリリースされると思う。PDF出力にも(TCPDFなどの外部ライブラリで)対応しているみたいなので、帳票を出力する仕組みの有力候補になると思う。
< Related Posts >PHPでPDF生成する方法を調査【PHP】PHPExcelがループ内でメモリを使いすぎるPHPからエクセルを操作するPHP-Excelを使ってみた

KotlinでiOS開発は出来るのか調査

イメージ
最近Axway Appcelerator Titaniumで開発し続けることに不安を感じていて、KotlinでiOS開発は出来るのかと調べたときの覚書。Kotlinはクロスプラットフォーム開発に力を入れていて、iOSの公式サポートを発表した。KotlinConf 2017 Keynote レポート | TechBooster
お正月休みに試せるような状況だと嬉しいな。
< Related Posts >Android Studio + Kotlinプラグイン

JPドメインの指定事業者変更とドメイン名移転の違い

イメージ
OCNで管理していたドメインをValue-Domainへドメイン移管したときの覚書。移管したドメインはor.jp(属性型ドメイン)。OCNのサイトでは「指定事業者変更」と「ドメイン名移転」がある。法人向けOCNサービス(各種申請書式ダウンロード一覧) | NTTコミュニケーションズ 法人のお客さまその違いは何?と思って調べてみると下記サイトの説明が分かりやすかった。汎用JPドメインの指定業者変更、ドメイン移転について | VALUE-DOMAIN ユーザーガイドJPドメインの管理方法に沿った言い方をしているらしい。要するに指定事業者変更ドメインレジストラの変更。登録者情報をそのままに管理するドメインレジストラを変更する。他のドメインを管理していなければこっち。例えばお客様が直接管理をしているドメインを自社管理にする場合などドメイン名移転(ドメイン移転)特定のドメインだけ他のレジストラに移管する。登録者情報を変更して、レジストラも変更する。別の業者が管理しているドメインを自社管理に変更する場合など

< 2017/10/12 Modified >OCNの「Bizメール&ウェブ ビジネス」を契約しているクライアントのDNSを変更してMXレコードは以前のままに設定しているのにメールが送受信できなくなった。原因は、オプションでメールのウイルスチェック機能を契約しているから。そうするとMXレコードは下記のサーバーを指定している。mwbgw2.ocn.ad.jp.
mwbgw1.ocn.ad.jp.このサーバーはウイルスチェック用らしく、メインのAレコードを参照して、それが配送先と違うとエラーになる。つまりホームページを別サーバーで運用して、メールだけOCNを使うということができない。サポートに問い合わせてもサービスの仕様で、ウイルスチェック機能を解約するしかないらしい。仕方がないから、とりあえずAレコードを元のサーバーに戻した。メールアカウントが多いとメールサーバーを変更するのにパワーがいる。しかも、そういった組織だと年間10万弱はたいした金額ではない。さくらのメールボックスを使えばウイルスチェック込みで年間1,029円なのに。。。

< Related Posts >Value DomainからGoogle Domainsにドメイン移管する

埼玉県武蔵浦和の法律事務所

イメージ
仕事を進めていく中で「揉めそうな予感」がピンと来たので、さいたま起業家協議会で知り合った弁護士の方に相談したときの覚書。お世話になった法律事務所はこちら。埼玉・さいたま市の弁護士なら交通事故・相続・離婚で実績のある武蔵浦和法律事務所
今まで交わした契約書はネットのサンプルを元に作成した自作。契約書内のダメな部分を指摘され、かなり焦った。書きづらいことは「誠実協議」の部分で何とかなると思っていたけど全く意味ないらしい。第9条(誠実協議)本契約に定めのない事項および疑義については、甲乙協議の上、誠意をもって処理するものとする。「契約書なんて関係ないよ。揉めるなんてプロジェクト管理が出来てない証拠」と思っていた自分が恥ずかしい。でも、このタイミングで相談できたのは本当に良かったと思い直すことにした。全部話せる弁護士の先生に会えたのは大きい。

プレゼン環境:ノートPC+Android vs iPad + VGAアダプタ

イメージ
今度「起業体験」をテーマにプレゼンするので、スマートな方法を調べたときの覚書。環境: Windows 10 Pro, MS PowerPoint 2016, Android 7.0, iPad Pro 9.7
いろいろ調べて2つに絞った。
方法①:ノートPC + AndroidノートPC(Let's Note)にVGA出力があるので、普通にパワーポイントで表示しつつ、Androidの「Office Remote」アプリを使ってスライドをリモートコントロールする。追加購入費用:1,190円(ノートPCのBluetoothが壊れているから)
Amazon | 【Newiy Start】Bluetooth4.0 USBアダプタ EDR/LE(省エネ) Windows10 apt-X対応 CSRスタック付属 ブルートゥース ドングル (抓み型) | Bluetoothアダプタ | パソコン・周辺機器 通販

メリット歩き回りながらプレゼンできるPCの前にいけばパワーポイントのフル機能を使える
デメリット途中で電話が掛かってきたらビクッてなる
→ 設定で対応可能ノートPCが重い

方法②:iPad + VGAアダプタiPadにPowerPointアプリをインストールして、iCloud経由で共有したpptxを開く。Keynoteアプリも試してみたけど、フォントや縦書きなど再現できなかったので諦めた。ちなみにKeynoteだとiPhoneでリモート操作できる機能がある。追加購入費用:5,616円
Lightning - VGAアダプタ - Apple(日本)
メリット軽い
→ iPadはいつも持ち歩いているのでVGAアダプタだけでいい
デメリットスライド操作するときにはiPadの前にいる必要あり経過時間が見れない特殊フォントが反映されない

iPadでやろうと思ったけど、現地のプロジェクタに繋ぐとノートPCと縮尺が違う。自分の番になったらプロジェクタの調整をしないといけなくなるので、結局他の人との共有PCにパワーポイントのデータをコピーしてやった。

社会保険の算定基礎届を指定会場で提出

イメージ
日本年金機構から算定基礎届に関する書類が届いたので対応したときの覚書。通常は郵送で提出するらしいけど、今回調査対象になったので指定日時に指定会場で提出して下さいと通知が入ってた。起業初年度だから選ばれた?環境: 従業員一人(一人社長)
目次算定基礎届の概要被保険者報酬月額算定基礎届の記入被保険者報酬月額算定基礎届 総括表の記入被保険者報酬月額算定基礎届 総括付随表の記入提出書類準備会場で提出
1.算定基礎届の概要毎月給与から天引きする社会保険料を決定するために4月、5月、6月の給与所得を申請する。そのための申請書類が「算定基礎届」。期限:7月10日今回は7月19日に指定会場で手渡し。
2.被保険者報酬月額算定基礎届の記入MFクラウド給与の「社会保険事務(β)」→「定時決定」から計算開始を実施したら画面に表示される値を用紙に記入。固定給なので特に難しいところはない。
3.被保険者報酬月額算定基礎届 総括表の記入記載例に従って記入。一人社長で手当てもボーナスもないので特に迷うところはない。
4.被保険者報酬月額算定基礎届 総括付随表の記入記入。もう何を書いたのか覚えていない。スキャンして保存しておけばよかった。
5.提出書類準備用意した書類など被保険者報酬月額算定基礎届、総括表、総括付随表
平成29年1月から現在までの賃金台帳
MFクラウド給与の帳票一覧→賃金台帳から印刷社会保険関係書類
日本年金機構から送られてきた通知書所得税徴収高計算書
この時点で支払期限日(7/10)過ぎているのに気付いた事業主印鑑(訂正するときに必要)
6.会場で提出指定日時の20分前に到着したけど、担当者が空いていたのですぐに案内された。書類をチェックしてもらって足りない箇所を記入。本社移転して事業所番号が変わっていたので、その場で修正。所得税徴収高計算書に関してはMFクラウド給与から出力した書類を見せるだけで特に何も言われなかった。(この後川口税務署に行って所得税納付済み)
記入ミスの不安がなく提出できたので良かった。来年も会場で手渡ししたいくらい。
< Related Posts >e-Taxを利用申請して所得税徴収高計算書(納期特例分)を申告株式会社設立④:社会保険株式会社設立③:税務署、市役所に法人設立届け

法人として住民税の特別徴収を納付する

イメージ
起業して初めて特別徴収を納めたときの覚書。環境: 従業員一人(一人社長)
目次市役所から「特別徴収のしおり」が届く銀行で振込手続き特別徴収を自動引き落としにしたい

1.市役所から「特別徴収のしおり」が届く私が住んでいる蓮田市から「特別徴収のしおり」が届いた。法人として6月給与から天引きで住民税を預かり、蓮田市に納付しなければならない(特別徴収)。特別徴収 - Wikipediaペイジーを試したかったけど、蓮田市は対応していない。一緒に送られてきた「特別徴収納入書」を銀行に持っていき払うしかない。

2.銀行で振込手続き申込用紙に記入して振込手続き。手持ちがなくても法人口座から引き落とすことができる。(口座がある銀行窓口の場合)
3.特別徴収を自動引き落としにしたい毎月銀行に行くのは面倒なので自動引き落とし出来ないか調べると、特別徴収の場合はできない。従業員が自分で納付する普通徴収はできる。だから毎月銀行に行かなければならない。納期の特例を申請すれば年2回で済む。住民税をネットで簡単に納付!毎月銀行に行かずに納付する方法 | 経理通信

< Related Posts >本社移転手続き(同管轄)。戸田市→川口市株式会社設立③:税務署、市役所に法人設立届け退職して起業した初年度の住民税の納付について調査

Windows10からスキャンできない(Canon MF222dw)

イメージ
スキャンしようとしたら出来なくなっていたので調べたときの覚書。環境: Windows 10 64bit, Canon MF222dw, Canon MF Toolbox 4.9.1.1.mf17いつものように「Canon MF Toolbox」を開いてスキャンしようとしたら下記エラー。スキャナー本体と通信できません。
ケーブルが外れているか、電源が入っていない可能性があります。
スキャナー本体の状態を確認してから、実行しなおしてください。
スキャナードライバーを終了します。普通にプリントは出来る。Google先生に聞いてみたらここに答えが。http://www.thecanondriver.com/2017/05/how-to-fix-mf-toolbox-does-not-work-on.htmlWindowsストアにある「Windows スキャン」を使うと出来る。デスクトップにショートカットを作成。
ちなみにこれを知る前に下記サイトを参考に設定を変えてる。この設定は必要ないと思う。Windows 10- Canon MF4350d Toolbox for scanner doesn't work - Microsoft Community
Canon MF Toolboxはアンインストールした。Canon MF Network Scan Utility 64bitもDisabledにした。
< Related Posts >【Windows10】一瞬ウィンドウのフォーカスが外れる現象

certbotでSSL化してあるサイトを別サーバーに移行

イメージ
certbot(Let's Encrypt)を使って無料SSL(https)化してあるサイトを別サーバーに移行したときの覚書。本番環境なのでユーザーに気付かせないようにやる。環境: CentOS7, certbot 0.14.1, nginx 1.12.0
手順一覧tarアーカイブしたソースを移行先にコピーデータベースをExport&Import移行元の秘密鍵と著名済み証明書をコピー、nginxのconf設定ローカルマシンのhostsファイルに移行先のIPアドレスと記述して動作確認ドメインレジストラでDNS変更移行先サーバーでcertbotコマンドから取得し直し移行元サーバーからデータを削除
3.移行元の秘密鍵と著名済み証明書をコピー、nginxのconf設定移行元から秘密鍵と証明書をコピーするところのコマンド。【移行先サーバー】# cd /etc/nginx/
# mkdir ssl.d
# cd ssl.d/
# vi hoge.co.jp.fullchain.pem
# vi hoge.co.jp.privkey.pem# cd ../conf.d/
# less hoge.confserver {
     listen       80;
     server_name  hoge.co.jp;
     return 301 https://hoge.co.jp$request_uri;    #root    /home/httpd/hoge-hp/wordpress;    # WordPress Setting
     #include conf.d/global/wordpress_restrictions.conf;
     #include conf.d/global/wordpress_dev.conf;
     #include conf.d/global/wordpress_live.conf;
}server {
     listen       443 ssl;
     server_name  hoge.co.jp;    root /home/httpd/hoge-hp/wordpress;
     # Gzip
     include conf.d/global/gzip.conf;    # WordPress Settin…

【CentOS7】開発用仮想マシンに設定するsmb.conf

イメージ
Hyper-V上にある仮想マシンのSamba設定ファイルsmb.confの覚書。環境: CentOS7, Samba 4.4.4全文はGistに置いた。my samba config file for centos7 | Gist今まで使ってたのからoplocksの設定を追記している。確認してsamba再起動するコマンド
# testparm[global]
         server string = Samba %v
         workgroup = VM
         log file = /var/log/samba/log.%m
         max log size = 50
         disable spoolss = Yes
         printcap name = /dev/null
         guest account = node
         map to guest = Bad User
         security = USER
         idmap config * : backend = tdb
         level2 oplocks = No
         oplocks = No
         guest ok = Yes
         hosts allow = 127. 192.168.
[opt]
         comment = Option Directory
         path = /opt
         read only = No
[httpd]
         comment = httpd
         path = /home/httpd
         read only = No
# systemctl restart smb
# systemctl restart nmb
< Related Posts >CentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ[CentOS]Sambaのsmb.confを設定してFile共有(第2弾)Sambaの設定ファイルsmb.confメモ

PhpStormが固まる

イメージ
他のアプリから戻ってくるとPhpStormが固まるので調査した覚書。環境: Windows 10 Pro 1703, Java SE 8  Update 131, PhpStorm 2017.1.4
直るまでのログPhpStorm起動後、File → Invalidate Caches / Restart...してみる。Event Viewerでエラーが出てないかチェックGoogle日本語入力とJavaの相性が悪い時がある。
→ Microsoft IMEを使うようにしても固まるJava SEを最新にしてみる。でも最近のPhpStorm 64bit版はJREをバンドルしていて、そちらを使うので最新のJava SEをインストールしても意味ない。
→ Help → Aboutで使っているJREのバージョンを確認できる。公式サイトを参考に使用するJava Runtimeを変更できるかもしれない。
Selecting the JDK version the IDE will run under | IDEs Support (IntelliJ Platform) | JetBrains
→ これは結局試してない特定のプロジェクトの特定の場所にカーソルを持ってくると固まる気がする。.ideaを削除「そんなバカな」と思いつつ、固まる場所のコードを全部削除してFile → Invalidate Caches / Restart...する。念のためPCを再起動して、お茶を飲みながら頭を冷やす。それでも再発するため、PhpStorm 2017.2 EAPをインストール。
PhpStorm Blog | Tips & tricks, news, how-to’s
これで直った。PhpStormのバグだったみたい。
< Related Posts >PHPStormを64bitで動作+メモリ容量を増やして高速化xyzzyからPhpStormに乗り換え。設定メモ

Gitリポジトリをコピーして別リポジトリとしてプッシュ

イメージ
新しくホームページを作成するときに既存リポジトリからコピーして、新しくプロジェクトを作成したときの覚書。環境: CentOS 7.3, git 2.13.1.394.g41dd433
参考サイトGitHub 別リポジトリに push する方法 - Qiita
コピー元のリポジトリを別名フォルダにcloneする。
$ cd /home/httpd/
$ git clone git@gitlab.com:dksg-websites/hoge-hp.git new-project
$ cd new-project今のリモートoriginを確認して、新しいアドレスに変更(GitLabで新しいプロジェクトは事前に作っておく)
$ git remote -v
$ git remote set-url origin git@gitlab.com:dksg-websites/new-project.git
$ git remote -v全部プッシュ
$ git push origin --all過去のコミットログも含めて登録されるので、過去ログがいらない場合は参考サイトのようにやれば出来るかもしれない。サブモジュールがある場合はinitする。
$ git submodule init
$ git submodule update
$ cd wordpress/wp-content/plugins/dksg-utility/
$ git checkout master
$ git pull
< 2017/10/02 Modified >
使わないサブモジュールを削除するとき
$ git submodule deinit wordpress/wp-content/plugins/enews/
$ git rm wordpress/wp-content/plugins/enews/
< Related Posts >よく検索するGitコマンドの覚書。自分用GitをSourceからBuildしてRubyの最新版をInstall

本社移転手続き(同管轄)。戸田市→川口市

本社を移転したときに行った手続きの覚書。環境: 埼玉県戸田市から川口市への移転。同一管轄法務局。従業員なし(1人社長)
参考にしたサイト法人・会社の本社住所移転・引っ越し(同管轄内)時に必要な手続きはなんですか? - ネットコミュニティブログ本店を移転した際の7つの手続きを効率的に片付ける全手順 | パパセンス
目次郵便局への転送手続き法務局で株式会社本店移転登記申請書の提出。法人クレジットカードの登録住所変更銀行へ移転届け税務署へ届け出県税務署へ届け出市役所(転出と転入)へ届け出年金事務所へ届け出その他届け出
1.郵便局への転送手続き郵便局が提供している「e転居」で登録してみた。転居・転送サービス - 日本郵便あたらしい町にも、しっかり届く安心。e転居 - 郵便局法人名で申請した。申請から3日後以降から転送可能なため、必要なら事前に登録しておいた方がいい。
2.法務局で本店移転登記(同管轄)ウェブサービス「会社設立ひとりでできるもん」を利用すると5400円で提出書類を作成できるということで使ってみた。本店移転(管轄内移転):定款変更手続き | 会社設立ひとりでできるもん手順通りに必要事項を入力してPDFをダウンロード。さいたま地方法務局(与野本町駅)へ行って、登録免許税3万円を購入/貼り付け、あとは受付に出すだけ。11日(木)に提出して22日(月)の午前中に登記完了予定。
3.法人クレジットカードの登録住所変更eオリコにログインして「お客さま情報変更」を見ると、個人の住所となってた。明細書の電話番号に電話して住所変更した。
4.銀行へ移転届け三菱東京UFJ銀行西川口支店ではウェブで変更出来ない。法人のお客さま向け「住所」・「社名(商号)」・「代表者」・「お届印」の変更手続きのご案内 | 三菱東京UFJ銀行住所変更だけなら登記簿謄本はいらなかった。
5.税務署へ届け出e-Taxで申請しようとIEでログイン(Google Chromeでは表示できない)【e-Tax】国税電子申告・納税システム(イータックス)ウェブ版では対応してなかった。。。提出書類を国税庁のページからダウンロード。[手続名]異動事項に関する届出|法人税|国税庁[手続名]給与支払事務所等の開設・移転・廃止の届出|源泉所得税関係|国税庁異動届出書はそのままPDFに入力できる形式になっているので、入力して印刷すると楽。…

yum updateがエラーで失敗する

イメージ
yum updateをしたらエラーになったので対処しているときの覚書。なぜか開発サーバーでは成功する。環境: CentOS7, YUM 3.4.3エラー
# yum update読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 370, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 179, in main
    result, resultmsgs = base.doCommands()
  File "/usr/share/yum-cli/cli.py", line 573, in doCommands
    return self.yum_cli_commands[self.basecmd].doCommand(self, self.basecmd, self.extcmds)
  File "/usr/share/yum-cli/yumcommands.py", line 504, in doCommand
    ret = base.updatePkgs(extcmds, update_to=(basecmd == 'update-to'))
  File "/usr/share/yum-cli/cli.py", line 1025, in updatePkgs
    self.update()
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 5114, in update
    upd…

Google検索とアプリを紐付けるApp Indexing(ディープリンク)を設定(書きかけ)

イメージ
Google検索結果にアプリがあることを通知するディープリンクを設定したときの覚書。公式サイトの手順が分かりやすい。Firebase App Indexing | Firebase目次Google Search Consoleにアプリを追加サイトと関連付ける「Fetch as Google」を実行アプリ内のページをインデックスに登録する(未実装)1.Google Search Consoleにアプリを追加公式ヘルプを参考にSearch Consoleにアプリを追加Search Console にアプリを追加する - Search Console ヘルプ同じアカウントでアプリを管理しているので、追加自体はすぐに完了する。2.サイトと関連付けるメッセージにある「検索パフォーマンスを改善できます」から「ウェブサイトと関連付ける」をクリックして、ランディングページを関連付けた。3.「Fetch as Google」を実行ディープリンクは設定してないけど、Fetch as Googleを試してみた。英語版で実行すると「一部完了」。一覧を取得するURLで「リソースが取得できませんでした」とエラーが出た。APIがアプリからのリクエストしか許可しない処理があるので、それが影響したのかもしれない。日本語版で実行すると「内部エラー」。この状態でも3日後に「検索アナリティクス」にはデータが表示されるようになった。4.アプリ内のページをインデックスに登録する(未実装)アプリがAppcelerator Titaniumで作っているので、これに手を付けれていない。実装したら追記予定。< Related Posts >GoogleアナリティクスからGoogleタグマネージャに切り替えAppcelerator Titaniumで作った「犬猫家族」アプリ

サイトのスピードテストと画像を最適化してスコアを上げる

イメージ
制作したホームページのサイトスピードを計測したときの覚書。環境: CentOS 71.サイトのスコアを計測最近公開されたGoogle先生のテストツールMobile Website Speed Testing Tool - Google前からあるこちらのツールの方がより具体的な修正方法を提示してくれるので分かりやすい。PageSpeed Insights | Google2.画像の最適化Google先生の提案に従って画像を圧縮してみる。詳しくは公式サイトで。画像を最適化する | PageSpeed Insights | Google Developers画像の最適化 | Web | Google DevelopersCentOS7にjpegtranをインストール
# yum install libjpeg-turbo-utilsバージョンの確認
$ jpegtran -vlibjpeg-turbo version 1.2.90 (build 20140610)ヘルプの確認
$ jpegtran -h使ってみる。
# jpegtran -copy none -optimize -progressive -outfile key-visual_mini.jpg key-visual.jpg640KBが635KBになっただけ。あまり効果がなさそうなので他の画像はそのままにした。画像を切り出すときに使っていたGIMPがうまいこと圧縮してくれたのかもしれない。< Related Posts >Google Chrome使ってWeb Siteの表示速度を計測する

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のコーディング規約

Gmail APIでシステムとGmail(G Suite)を連携【調査編】

イメージ
POP3とSMTPを使うのは面白くないので、API経由でGmailを利用したらメールを削除することなくシステムと連携できると思い、試したときの覚書。公式サイトを参考にGmail API | Google Developers目次APIの使用制限 システム用アカウントをGoogle Apps(G Suite)に追加 Server-to-Serverのサービスアカウントを作成 PHPサンプルを試す ウェブアプリケーションのOAuth2.0で認証1.APIの使用制限APIの使用制限がある。1日10億Quota Unit。メソッドごとに消費ユニットが違う。例えばメール送信は100ユニット消費する。一秒間に250ユニットの制限がある。同時に3つ以上送信しようとすると制限に引っかかる。詳しくは公式サイトで。Usage Limits | Gmail API | Google Developersメール送信はローカルのPostfixに任せた方がいいかもしれない。クライアントライブラリが未成熟(?)PHPはベータ版Getting Started | API Client Library for PHP (Beta) | Google DevelopersNode.jsはまだアルファ版Node.js Quickstart | Gmail API | Google DevelopersGitHub | google/google-api-nodejs-client: Google's officially supported Node.js client library for accessing Google APIs.2.システム用アカウントをGoogle Apps(G Suite)に追加 やろうと思っていることの概要。 システム専用のアカウントを作って、そのアカウント宛てに届いたメールを順次処理していく。 処理が終わったら「既読」ラベルを付けてアーカイブ。 Node.jsはアルファ版なのでWordPressのプラグインとしてPHPで開発することにした。 3.Server-to-Serverのサービスアカウントを作成 システム専用アカウントでGoogle Developer Consoleにアクセスして、API Keyを生成する。 公式サイトを参考に U…

【PHP】composerをインストールして依存関係管理

イメージ
Google先生の巨大ライブラリをリポジトリにコミットしたくなかったので、composerをインストールしたときの覚書。環境: CentOS 7, PHP 7.0.16参考サイトIntroduction - Composercomposer 導入をまじめに考える - Qiita目次composerとは YUM経由でインストール composerを使ってライブラリをインストール1.composerとはPHPの依存関係管理ツール。Node.jsのNPMやRubyのBundlerを参考にしている。composer installするとcomposer.jsonを参照して「vendor」ディレクトリにライブラリがインストールされる。composer.lockというファイルがあるとそちらを参照してそのバージョンをインストールするので、作った人と同じ環境を構築できる。WordPressのプラグインみたいに別ディレクトリに設置してほしい場合も対応可能。GitHub | composer/installers: A Multi-Framework Composer Library Installer2.YUM経由でインストールremiリポジトリにあった。バージョンは1.3.2
# yum install composer依存関係で結構な数のライブラリがインストールされる。確認
# composer --versionDo not run Composer as root/super user! See https://getcomposer.org/root for details
Composer version 1.3.2 2017-01-27 18:23:413.composerを使ってライブラリをインストールインストールするライブラリはこちら。GitHub | google/google-api-php-client: A PHP client library for accessing Google APIs今回WordPressプラグインの中で使う。
$ cd /path/to/wordpress/wp-content/plugins/hoge/対話形式でcomposer.jsonを作ってみる。
$ composer init{
    "name": &…

Twitter Bootstrap利用サイトでIE8だとimgが表示されない

イメージ
作ったサイトを念のためIE8で確認したら画像が表示されないので対応したときの覚書。環境: Bootstrap 3.3.7, WordPress 4.7.21.【準備編】Windows7 + IE8の環境を作る(Hyper-V)公式サイトでIE8を搭載した仮想マシンがダウンロードできる。Microsoft Edge Developer website - Microsoft Edge Development認証が必要。デスクトップに書いてあるのでそのままcmdで叩く。2.IE8だけ読み込むCSSを用意試した結果表示されない原因はdisplay: tableを指定していたから。画像は基本的に中央揃えにしたかったので、次のように設定していた(lessを使ってる)。.img-responsive {
    &:extend(.img-responsive all);
    display: table;
    margin: 0 auto;
}他のに影響与えないでIE8のみに対応したかったので、IE8だけ読み込むCSSを用意して、そちらで対応することにした。bootstrapを使うときにお約束の記述に追記(WordPressの関数を使ってる)。<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<link rel='stylesheet' href='<?php echo get_template_directory_uri();?>/assets/css/ie8.css' type='text/css' />
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif…

WordPressで非公開(private)にした投稿はリダイレクトしないようにする

イメージ
WordPressでホームページを作成しているときの覚書。環境: PHP 7.0.15, WordPress 4.7.2「お問い合わせ」ページから送信した内容を非公開の投稿として保存していた。そして気付いた。http://hoge.com/?p=20とPost IDを付けるとhttp://hoge.com/鈴木太郎/に変換(リダイレクト)される。これはパーマリンクの設定を「/%postname%/」にしておいて、氏名とかを記事のタイトルとして保存した場合に発生する。Contact Form 7を使っていれば発生しない(と思う)。少なくとも検索エンジンにキャッシュされると困るのでリダイレクトしないように設定した。このp=20がなかった(is_404)時に鈴木太郎に変換している関数は
/wp-includes/canonical.phpのredirect_canonical()下記のようにpost_typeで判定してる箇所(117行あたり)があったので$post_type_obj = get_post_type_object($redirect_post->post_type);
if ( $post_type_obj->public && 'auto-draft' != $redirect_post->post_status ) {
    $redirect_url = get_permalink($redirect_post);
    $redirect['query'] = _remove_qs_args_if_not_in_url( $redirect['query'], array( 'p', 'page_id', 'attachment_id', 'pagename', 'name', 'post_type' ), $redirect_url );
}「post」タイプは公開しないので、全てリダイレクトしないようにフックを仕込むfunction my_registered_post_type($post_type) {
    global $wp_post_types;    if ($…

WordPressがBlankだったりトップにリダイレクトするのをデバッグ

イメージ
久しぶりにWordPressの奥深くを潜っているときの覚書。WordPressは何がどの順番で実行するのか分かりにくいのでハマると長い。環境: PHP 7.0.15, WordPress 4.7.21.確認すること自分用チェックリストサーバーにエラーログが出力されているかどうか
# less /var/log/nginx/error.logwp_loadedにフックして読み込みが完了しているかどうか確認
参考:Plugin API/Action Reference/wp loaded | WordPress Codextemplate-loader.phpの$templateをデバッグ出力してテーマのどのファイルを読み込もうとしているか確認
参考:Template Hierarchy | Theme Developer Handbook | WordPress Developer ResourcesWordPressの内部で使っている「name」「year」などの名前でPOSTすると動作がおかしくなる
参考:Class Reference/WP Query | WordPress Codex存在しない関数を実行してエラーを起こして読み込まれた順番を確認。要xdebug2.xdebugのインストール手順YUM経由でインストール
# yum install php-pecl-xdebug
# systemctl status php-fpmphp infoを見て確認
# php -i | grep xdebug< Related Posts >XdebugをInstallしてError時の呼び出し履歴を表示XHProf + XHGuiをInstallしてPHPの実行結果を監視、解析する[WordPress]Themeのどの名前のFileが読み込まれるか理解する

Bootstrap3のWEBページを印刷してもいい感じに

イメージ
wkhtmltopdfでHTMLをPDF化しているときの覚書。今までウェブサイトを印刷したときのことは全く考慮してなかった。Bootstrapのデフォルト機能にお任せだったけれど、印刷しても出来るだけ読みやすくなるようにしてみた。環境: Bootstrap 3.3.7, less 2.7.21.印刷したときの横幅Bootstrapの場合、印刷するとExtra small devices(.col-xs-)が適用される。Grid System | Bootstrapこれは横幅が約547pxになるから。<計算方法>A4縦サイズの横幅は210mm
印刷するときのデフォルトマージンが約10mm
画面解像度が72dpi
1インチ=25.4mm、1mm=0.04インチA4の表示領域:210mm - (10mm x 2) = 190mm
mmをinchに変換:190mm x 0.04inch = 7.6inch
inchをpxに変換:7.6inch x 72dpi = 547.2px
2.Bootstrapで印刷用CSSまずはBootstrapのprint.lessをimportしない。替わりに下記CSSを読み込むと、small device(.col-sm-)が適用されたレイアウトに出来る。Render Bootstrap as "small" layout when printing | Gistこれをlessで表現すると@media print {
  .make-grid(sm);
}Bootstrapのgrid.lessを参照。あとの細かい箇所は必要なときに追加していく。@media screen {}も有用。< Related Posts >PHPでPDF生成するためにwkhtmltopdfをインストールPHPでPDF生成する方法を調査PhpStormのファイル監視機能でLESSをCSSにコンパイル

PHPでPDF生成するためにwkhtmltopdfをインストール

イメージ
HTMLからPDFを生成するコマンドラインツールwkhtmltopdfをインストールしたときの覚書。環境: CentOS 7 x86_64目次YUM経由でインストール 日本語フォントをインストール PHPシェルから実行 PHP-FPMから実行するとエラー(2017/02/06 追記)1.YUM経由でインストールEPELリポジトリにあったのでそちらを使う。
# yum search wkhtmltopdf
# yum info wkhtmltopdfVersion     : 0.12.1
Repo        : epel/x86_64
# yum install wkhtmltopdf試してみる
# wkhtmltopdf http://dksg.co.jp test.pdfエラーwkhtmltopdf: cannot connect to X server下記QAを参考にした。xserver - wkhtmltopdf: cannot connect to X server - Stack Overflowwkhtmltopdf: cannot connect to X server · Issue #180 · pdfkit/pdfkitwkhtmltopdf: cannot connect to X server (SOLVED) | Google グループ# yum search xvfb
# yum install xorg-x11-server-Xvfb再度試す。
# xvfb-run /usr/bin/wkhtmltopdf http://dksg.co.jp test.pdf成功したけど、日本語が表示されない。2.日本語フォントをインストールインストールされているフォント一覧を表示
# fc-listGoogle先生が公開しているNoto Sans CJK JPを使う。公式サイトで「Japanese」と検索Google Noto FontsHow to install fonts – Google Noto Fontsダウンロードと解凍
# cd /usr/share/fonts/
# curl -O https://noto-website-2.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip
# mkd…