ブログ

  • Backup & Sync のエラー通知を止める – macOS

    Googleの Backup & Sync を有効にしていると、
    “Can’t backup files” のような通知がわりと頻繁にデスクトップに表示されることがあって、
    通知の止め方がわからず Backup & Sync 自体を止めていたのですが、
    それだと不便なこともあってあらためて調べてみました。

    結論としては Backup & Sync の設定でオプションを外せば良さそうです。

    参考記事はこのあたり。

    How do I stop Backup and Sync notifications on my PC?
    How to Fix: Disable Google Drive / Backup and Sync Popups when Inserting USB, DVD, or Smartphone

    • ステータスメニューの Backup & Sync アイコンをクリックして右端のメニューを開く。
    • Preferences…を開く。
    • ウインドウの一番下にある USB Devices & SD Cards をクリック

    すると、次の設定項目が表示されるので、不要な項目のチェックを外します。

    今回は Plug in a camera or phone to back up files. のチェックを外しました。
    今のところ通知が止まっているようなのでこれで様子をみます。

  • Windows Update の再起動に失敗する – Windows 10

    2018-04 x64 ベースシステム用 Windows 10 Version 1709 の累積更新プログラム(KB4093112)
    この更新を適用しようとして再起動を実行するのですが、数分後にエラーが発生して再起動できない状態。

    検索してみると、
    Windows Update トラブルシューティング ツール
    このようなツールがありました。

    早速「Windows 10 用トラブルシューティング ツールのダウンロード」をクリックして実行。

    これで再起動できました。

    「1709 の累積更新プログラム(KB4093112)」がスキップされた様子です。

    あらためて Windows Update を確認すると、
    Windows 10、バージョン 1803 の昨日更新プログラム
    のダウンロードが進行中。
    これで大丈夫そうです。

  • Visual Studio Codeを使ってみる – macOS

    Get Started Tutorialにそって進めてみる

    Getting Started with Python

    Python環境の確認

    Python 3.0 Release
    パッケージをインストール

    $ which python3
    /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
    $ python3 --version
    Python 3.6.5
    

    Visual Studio Code インストール

    Visual Studio Code

    python3 -m venv

    $ cd Hello
    $ python3 -m venv venv
    

    Running VS Code on macOS

    $ cat << EOF >> ~/.bash_profile
    # Add Visual Studio Code (code)
    export PATH="\$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
    EOF
    

    VSCodeを起動

    $ code .
    

    VSCode起動

    Configure Python Environment

    Configuring Python environments

    Command + Shift + P
    Python: Select Interpreter

    ./venv/bin/python
    

    Python3.6.5(venv)

    早速コードを書き始めると linter(pylint)のインストールを促される。
    そのままインストール。

    Successfully installed astroid-1.6.3 isort-4.3.4 lazy-object-proxy-1.3.1 mccabe-0.6.1 pylint-1.8.4 six-1.11.0 wrapt-1.10.11
    You are using pip version 9.0.3, however version 10.0.0 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    

    pipのアップデート
    最後のメッセージにしたがって、

    $ pip install --upgrade pip
    

    ひとまずの環境が整ったようなので動かしてみる。

    hello.pyを追加(編集)

    print('Hello World!!')
    

    VSCodeのterminalから

    $ source venv/bin/activate
    $ python hello.py
    

    Unit Testing

    Unit testing Python in VS Code
    Command + Shift + P
    で Command Pallete を開いて Unit と入力。
    Command Pallete

    Python: Run All Unit Tests
    

    を選択すると、画面右下に次の表示。
    Enable and configure a Test Framework

    青いボタンをクリックしてテスト環境の設定を進める。
    unittest

    テストコードをtestフォルダにまとめたいので test を選択。
    (testフォルダがなければ作成しておく。
    test folder

    testから始まるファイルをテストコードの対象に。
    test*.py

    出来上がった .vscode/settings.json

    ではコードを書いていきます。

    test/testCalc.py

    calc.py

    ステータスバーの [Run Tests] をクリックして [Run All Unit Tests] を実行。
    OUTPUT の Python Test Log に OK が表示されればOK。
    ただし、テストの2回目以降に、

    OK
    Unhandled exception in thread started by

    のような例外が発生する模様。
    しばらく様子をみます。

    [追記:2018.06.09]

    VS Code 1.24.0 にバージョンアップしたら上記の例外が出なくなりました。

  • wbehimeもくもく会のレシピ – WordPressでカスタム投稿

    WordBench愛媛もくもく会
    以下、このイベントに向けての準備です。

    子テーマの作成

    https://codex.wordpress.org/Child_Themes
    wp-content/themes/ts-child
    というフォルダを作成して、その中に
    style.css, functions.php
    というテキストファイルを作成。

    style.css

    functions.php

    「外観」->「テーマ」で
    Twenty Seventeen Child
    を有効にします。

    カスタム投稿タイプの作成

    参考記事
    WordPressプラグインCustom Post Type UIの使い方とテーマのカスタマイズ方法

    カスタム投稿をウィジェットに表示

    参考記事
    カスタム投稿やカスタムタクソノミーの一覧をウィジェットで表示することができるWordPressプラグイン「Custom Post Type Widgets」

  • WordPress + AWS S3サイトを独自ドメインでHTTPS対応

    WordPressのメディアをAWSのS3で配信するウェブサイトで、
    HTTPSに対応してみました。(備忘録)

    参考にさせていただきました。感謝。m(..)m
    WordPressサイトをCloudFrontで配信する
    Dot TKで取得した無料ドメインをRoute 53でホストする
    【無料&超簡単】S3と独自ドメインで公開しているサイトをSSL(https)化する
    AWS CloudFrontを使ってWordPressのメディアファイルだけS3に配置する
    案外簡単なAWS上のWordPressのSSL化

    以下、AWSのEC2+RDS+S3でWordPressが動いている前提です。
    example.comを独自ドメインに読みかえてください。

    作業の途中でWordPressのサイトが見えなくなったり、ダッシュボードにログインできなくなったりすることがあります。sshでec2インスタンスにログインして、wp-config.phpが編集できる状態にしておくと良いと思います。

    Route 53の設定

    Route 53コンソールを開く。

    「Create Hosted Zone」
    Domain Name: example.com
    Comment: (適宜入力)
    Type: Public Hosted Zone(デフォルト)

    「Create」して表示されるNSレコードを、独自ドメイン(契約サービス)のDNSとして設定する。

    CloudFrontの設定

    CloudFrontコンソールを開く。

    「Create Distribution」
    Webで「Get Started」

    Alternate Domain Names(CNAMEs): example.com
    と入力して、
    「Request or Import a Certificate with ACM」をクリックすると、
    AWS Certificate Manager のページが開くので、
    「証明書のリクエスト」からドメイン名を追加します。

    ドメイン名: example.com
    と入力して「次へ」
    「DNSの検証」を選択して「確認」を押すと検証のページに遷移します。

    ドメインのDNS設定にCNAMEレコードを追加

    「Route 53 でのレコードの作成」をクリックするとCNAMEが追加されます。

    オリジンの設定 – 独自ドメイン

    Origin Settings
    Origin Domain Name: example.com
    Origin Protocol Policy: HTTPS Only

    オリジンの設定 – EC2

    Origin Settings
    Origin Domain Name: (EC2インスタンスのドメイン).compute.amazonaws.com
    Origin Protocol Policy: HTTP Only

    オリジンの設定 – S3

    Origin Settings
    Origin Domain Name: (バケット名).s3.amazonaws.com

    Behavior – デフォルト

    Path Pattern: Default(*)
    Origin: (EC2インスタンスのドメイン).compute.amazonaws.com
    Viewer Protocol Policy: Redirect HTTP to HTTPS
    Allowed Encryption Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
    Cache Based on Selected Request Headers: All
    Forward Cookies: All
    Query String Forwarding and Caching: Forward all, cache based on all

    Behavior – /wp-admin/*

    Path Pattern: /wp-admin/*
    Origin: (EC2インスタンスのドメイン).compute.amazonaws.com
    Viewer Protocol Policy: Redirect HTTP to HTTPS
    Allowed Encryption Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
    Cache Based on Selected Request Headers: All
    Forward Cookies: All
    Query String Forwarding and Caching: Forward all, cache based on all

    Behavior – /wp-login.php

    Path Pattern: /wp-login.php
    Origin: (EC2インスタンスのドメイン).compute.amazonaws.com
    Viewer Protocol Policy: Redirect HTTP to HTTPS
    Allowed Encryption Methods: GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
    Cache Based on Selected Request Headers: All
    Forward Cookies: All
    Query String Forwarding and Caching: Forward all, cache based on all

    Behavior – S3

    Path Pattern: /wp-content/uploads/*
    Origin: S3バケットを選択

    SSL Insecure Content Fixer

    コンテンツのURLにHTTPが混在するとブラウザで警告が出て正しく表示されない場合。
    WordPressのプラグイン SSL Insecure Content Fixer で対処。

    非セキュアコンテンツの修正方法: シンプル
    HTTPS の検出方法: HTTP_CLOUDFRONT_FORWARDED_PROTO (Amazon CloudFront HTTPS キャッシュ済みコンテンツ)

    Offload S3

    WordPressでメディアをS3バケットで公開するためのプラグイン

    Copy Files to S3: ON
    Rewrite File URLs: ON
    CloudFront or Custom Domain: example.com
    Path: wp-content/uploads/
    Year/Month: ON
    Force HTTPS: ON

  • AtomのPHPCSでWarning – WordPress

    AtomエディタでWordPressのプラグインやテーマを編集する際に、
    PHPCSのエラーが表示されるようになったので環境を見直しました。

    macOS High Sierra 10.13.4
    Atom 1.25.0
    linter-phpcs 1.6.8

    こちらの記事に感謝。
    WordPressのコーディング規約をPHP CodeSnifferでチェックしてPhpStormでもチェックと自動整形する

    composer で phpcs をインストール

    $ composer global require "squizlabs/php_codesniffer=*"

    WordPress用のコーディング規約をインストール

    $ git clone git@github.com:WordPress-Coding-Standards/WordPress-Coding-Standards.git \
     ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress

    コーディング規約をWordPressに登録

    $ phpcs --config-set installed_paths ~/.composer/vendor/squizlabs/php_codesniffer/CodeSniffer/Standards/WordPress

    コーディング規約の確認

    phpcs -i

    Atomのlinter-phpcs設定(executable path)

    /Users/(username)/.composer/vendor/bin/phpcs
  • Android Things ハンズオン勉強会に参加しました – gdgshikoku

    GDG四国のAndroid Things ハンズオン勉強会に参加してきました。
    イベントページはこちら
    Android Things ハンズオン勉強会

    開催中の様子はこんな感じです。

    黒い箱(Android Things Kit)の中身
    https://twitter.com/kazweda/status/957107056665812993

    持参したMacBookをアダプター経由でKitのUSB-Cポートに接続
    adbコマンドが使えるようにPATH(環境変数)を追加

    講師の説明に従ってAndroid StudioでJavaのプログラムを書いていきました。

    まずはGPIO(汎用入出力)のリストを取得。
    次に、ボタンを押して、その状態を確認。
    さらに、ボタンの状態に応じてLEDを点灯・消灯。

    ここから各自でやってみましょう、ということで、
    Interact with Peripherals
    このページをみながら Blink an LED のソースをそのまま貼り付けて、LEDが点滅するところまで動作確認ができました。

    途中、build.gradleファイルの編集でモヤモヤすることもありましたが、割と簡単にデバイスが直接操作できたのでまた機会があればさわってみたいと思います。
    機材を含めイベントの準備をしていただいたGDG四国のスタッフの皆さんに感謝。

  • WARNING: HAXM 6.1.1 – Android Studio 3.0.1

    Android Thingsハンズオン勉強会があるとのことで、Android Studioのメンテナンス。
    立ち上げてみると、イベントログに赤い警告メッセージが。

    WARNING: HAXM 6.1.1 is installed. Please install HAXM >= 6.2.1 to fix compatibility issues on Mac.

    SDK Manager -> SDK Toolsを開いてみると、
    Intel x86 Emulator Accelerator (HAXM installer) 6.2.1 installed
    となっています。はて?

    調べてみると、
    [stackoverflow]Android Studio issue with HAXM
    という記事が見つかりました。

    記事に沿って Intel x86 Emulator Accelerator のチェックを外して uninstall した後、あらためてチェックしてインストール。
    Android Studio を起動し直して警告が出ないことを確認しました。

  • HUAWEI nova lite のGPSについて – バッテリー最適化

    最初に結論ですが、
    アプリ個別の設定でバッテリーの最適化を無視することで
    GPSが取れなくなるのを回避できました。
    ただし、当然のことながら電池の消耗が大きくなります。

    具体的な状況(経緯)は次の通り。

    昨年末に HUAWEI nova lite に機種変更して使っているのですが、
    PokemonGOを使っているとGPSがかなりの頻度で落ちます。

    アプリを起動して20分から1時間くらいの間に必ず位置が取れなくなったり、
    現在位置から数キロメートル離れた場所に飛ばされたりします。

    昨年末にHUAWEIのサポートに問い合わせたところ、
    「セーフモードで起動してGPSが機能するか確認してください。」
    とのこと。
    セーフモードでGoogle Mapsを数10分間試してみましたが、
    GPSは問題なく機能しています。
    ハードウェア自体は問題なさそうです。

    で、通常モードでPokemon Goを使っていて位置が取れなくなった際に、
    一旦GPSをオフにして入れ直すと復帰するので、
    そうやって使っていたのですが、それも手間なので何か解決方法はないかと調べていたところ、

    HUAWEI P9のGPS問題に関する書き込みを見つけました。
    Huawei P9 Questions & Answers -> GPS problem
    problem due to battery optimisation

    設定の手順

    1. 「設定」を開く

    2. 「アプリ」を開いて一覧の下の方にある「設定」を開く

    3. 「アプリの設定」で「特別なアクセス」を開く

    4. 「バッテリー最適化を無視」を開く

    5. 「許可」をタップして「すべてのアプリ」を選択

    6. 「Pokemon GO」をタップして「許可」を選択して「OK」

    以上です。
    この設定で1時間ほど試しましたが、これまでのように位置情報を見失うことなく継続して利用できました。
    ただし、バッテリーの消耗が大きくなったので、GPSを取るか、バッテリーを取るかという判断になると思います。

  • あけましておめでとうございます

    あけましておめでとうございます。
    本年もよろしくお願いします。

    昨年10月からエクストリームプログラミング(XP)の読書会に参加しています。ご興味のある方はお気軽にご参加ください。途中からでもご遠慮なくどうぞ。

    次回は1月10日開催予定です。
    エクストリームプログラミング読書会 第6回

    教材はこちら「エクストリームプログラミング」

    ふと、あとがきを開いてみました。
    目についたのが、

    エクストリームプログラミング(XP)はソーシャルチェンジである。

    成功には「優れた技術力と良好な人間関係が必要」

    の部分。

    これまでいろいろと失敗したことや反省すべきことを思い返しつつ、XPのプラクティスを少しずつ実践しているところです。

    それと次の部分。

    あなた自身が自分の言葉を生み出しながら、利用すること

    状況に応じて自分の言葉に置き換えて実践することがポイントなのかなぁと。

    一人で本を読むと、勝手な解釈や思い込みのまま読み進んでしまいますが、読書会だと参加者の皆さん、それぞれ捉え方が異なったりして、そういうところからもまさにソーシャルチェンジに繋がりそうです。