AWS障害発生 – とりあえずのメモ書き
AP-NORTHEAST-1 に障害が発生していて運用中のウェブサーバーにアクセスできず。
AWS側の対応を待つしかないのですが、別のリージョンに作ったテスト環境があって、インスタンスを立ち上げてみるとこちらは問題なさそう。
ここしばらくプライベートサブネットにあるDBサーバーのメンテナンスをしていなかったので、NATを作成してupdate。更新が完了したらNATを削除してインスタンスを再起動。
[2019.08.27]
(参考)複数のAvailability ZoneにプロビジョニングしたELB(ALB) / AutoScaling Groupから特定Availability Zone上のリソースをパージする
[2019.11.21]
RDSのマスターの異常検知によってフェイルオーバー機能が働いて、リードレプリカがマスターに切り替わっていたようです。WordPressを使って運用しているサイトなのですが、公開ページは問題なくてダッシュボードにログインできない状態になっていました。手動でフェイルオーバーを実行してマスターとスレーブを切り替えて正常に稼働することを確認しました。
ダッシュボードのスタイル調整(印刷用) – WordPress
あまり利用する機会はないかもしれませんが、ダッシュボードのあるページを印刷する際に admin menu は不要かもと思って
試してみました。
Admin pagesのカスタマイズ方法はこちら(Plugin API/Action Reference/admin enqueue scripts)
概要は、メディアクエリの print を定義して、
adminメニュー領域を非表示にする。
ダッシュボードのコンテンツ領域(#wpcontent)の左側マージンをなくす。
以上です。
Polylangメモ – WordPress Plugin
プラグインPolylangを使って、ホームページ多言語化 その1:インストールして使ってみる | ゆうそうとITブログ
プラグイン導入に際し、参考にさせていただきました。m(__)m
Language switcherはウィジェットとして設置するので、使用するテーマがウィジェットに対応している前提。
上のページの例だとfunctions.phpのID home_right_1
とテンプレート側のID sidebar-1
が異なるので、実装する際はこのIDを揃える。
外観 -> ウィジェット から Language Switcher を追加。
How to display the widget flags horizontally?
デフォルトだと選択する言語が縦に並ぶので、横に並べたい場合のスタイル指定。
Rails Girls Ehimeに参加しました
昨年末からehime.rbで少しずつですが Ruby on Rails を勉強していまして、
今回 Rails Girls Ehime が開催されたのでスタッフとして参加してきました。
スタッフといってもイベント当日のお手伝いは特にしていなくて、開催前のお手伝いでイベントのお知らせページの一部をGitHubで更新した程度です。マスターリポジトリをフォークして、ブランチを切ってファイルを編集。コミットしてPRを送ってマージされたらフェッチしてフォーク先を更新、みたいな手順を何度か行いました。これはこれでgit操作の勉強になりました。
イベント自体は2日目の土曜日のみお邪魔して参加者と同じ立場でRailsの環境づくりとチュートリアルを試しました。昨年末かあるいはその前だったか作成済みのRails環境があって、今回のチュートリアルの環境に合わせるにはいくつかバージョンアップが必要でした。
anyenvのrbenvを更新しました。(してなかった
— ♂️ (@kazweda) June 15, 2019
https://t.co/fSKmKFgCd3
platformsオプションを削除してbundle update— ♂️ (@kazweda) June 15, 2019
herokuへのdeployをする際にherokuコマンドのバージョンアップを促すメッセージが出たので、更新を実行したところ更新できず。下記のherokuのドキュメントによると、どうやらnpmでのheroku(cli)のインストールはおすすめではないらしい。
The Heroku CLI | Heroku Dev Center https://t.co/feGOVy4DgU #rg_ehime
— ♂️ (@kazweda) June 15, 2019
で、なんとか環境が整ったのでチュートリアルを進めていきました。で、herokuへのdeployもできて、次の課題でファイルのアップロードに対応しようとしたところで、deployしたところでエラー発生。
Application error #rg_ehime pic.twitter.com/KhOy1Hww2m
— ♂️ (@kazweda) June 15, 2019
調べていくと、
— ♂️ (@kazweda) June 15, 2019
Gemfileの編集で gem 'carrierwave'
これを追加する場所がまずかったようです。(developmentの中にのみ書いていた)
そんなこんなでエラーを起こしつつもherokuでの動作確認までできました。
あとLTで参考になるサイトとか書籍の紹介があったのでいくつか書いておきます。
Progate – Ruby on Rails5
Paizaラーニング – 「Ruby on Rails」入門講座
ゼロからわかる Ruby 超入門 (かんたんIT基礎講座) 五十嵐 邦明 https://t.co/0GVpU2UICl via @amazonJP #rg_ehime
CodeLabsのbarcode scannerを試してみました。 – Firebase
チュートリアルはこちらから。
Detect Barcodes in an Image using Firebase MLKit
サンプルソースにはML Kitのプロジェクトがいくつか含まれているので、
その中から barcode-scanning/starter を適当な場所に置いて AndroidStudio で開きます。
Nextボタンで進めていきます。
Firebase consoleで入力するパッケージ名ですが、
誤:com.google.firebase.codelab.barcode-scanning
正:com.google.firebase.codelab.barcode_scanning
のようです。
あと appのbuild.gradle ですが、
`
implementation ‘com.google.firebase:firebase-ml-vision:17.0.0’
…
}
apply plugin: 'com.google.gms.google-services'
com.google.gms.googleservices.GoogleServicesPlugin.config.disableVersionCheck = true
`
このように disableVersionCheck = true を追加してエラーを回避しました。
(他に正しい方法があるのかも…)
emulatorでアプリが起動することを確認して、USBで実機を接続。
実行すると、書籍のバーコードが読み取れました。
Docker の WordPress で PHPUnit を試してみる
先日の WordPress Meetup で Docker 環境を試しました。
ゆるウェブもくもく会 #1 @ミュゼ灘屋
当日は phpunit コマンドが実行できることを確認して終了。
その後、実際にプラグインを追加してテストが通るところまで確認できたので、いくつか試したことをメモっておきます。
まずはこちら。Docker公式のドキュメント。
Quickstart: Compose and WordPress
これでローカルの起動までは簡単にできるのですが、WordPressのファイルがホスト側にマウントされないので、
Dockerにシェルで入って操作、編集する必要があります。
次に参考にさせていただいた記事。
Docker ComposeでWordPressを構築する
こちらだと docker-compose.yml を置いた場所に /html/ というフォルダができるので、ここから WordPress の各種ファイル操作ができます。
ただしこの環境だと phpunit まわりが入っていないので、必要なコマンド群を手作業でインストールする必要があります。
WordPressのイメージのカスタマイズで参考にした記事がこちら。
Dockerfile を編集して必要なコマンドをインストールすれば良さそう。
と調べているうちに、必要なものが一通り揃ったものがありました。感謝。
akahigeg/wordpress-plugin-unittest-on-docker – GitHub
こちらのソース一式をクローンなりダウンロードなりして、
$ docker-compose up -d
とすれば、phpunit用にカスタマイズされたWordPressのイメージで起動できます。
Dockerfileを編集した場合は、
$ docker-compose down
して、
$ docker-compose build
$ docker-compose up -d
という操作をすれば良さそうです。
少し気になるのが Docker 内のファイルのパーミッション。
この環境だと my-plugin の owner が root になるようで、
Cookiecutter Django のテスト
python3環境とcookiecutter実行
cookiecutter設定項目
必要な環境に合わせて適宜変更…
出来上がったプロジェクトフォルダに移動して、
ビルド・実行、停止
メールアドレスでユーザーを追加する際のactivation
Mailhog
ビルドをやり直す場合
(参考)Quickstart: Compose and Django
アクセシビリティに関するメモ
Twitterでアクセシビリティについて話し合うようなメッセージが流れていて、都合で参加できなかったのでわかる範囲でまとめておきます。
どちらかというと、視覚障害者(音声利用者)寄りの内容です。
音声利用(スクリーンリーダー)をするには、それぞれのOSについて下記のようなツールがあります。
私自身は晴眼者で、音声利用をする機会はほぼなくて、盲ろう者(視聴覚重複障害)のボランティアの経験が少しある程度です。
紹介しているツールについての詳しい知識はありませんのであらかじめご了承お願いします。
音声利用ツール
Mac, iPhone, iPad
VioceOver for Mac
VoiceOver for iPhone
Windows
ナレーター for Windows
PC-Talker for Windows
NVDA for Windows
Android
Android ユーザー補助機能の概要
Android TalkBack を有効にする
WordPress
当サイトもそうですが、仕事でWordPressを使う機会が多いので、WordPressのアクセシビリティについて探してみました。
Make WordPress Accessible
ここから辿っていくと良さそうです。
例えば Readability を開いてみると、
Good practice:
Start with a short summary of the content
Divide the rest of the text in short blocks
Use headings and lists and meaningful link text
Avoid large blocks of text
という説明があります。
音声利用の場合、コンテンツを全て読み上げてからでないとそこに何が書かれているかわかりませんので、あまり階層が深くて複雑なページ構成になっていると、読みたい記事があってもなかなかたどり着けないと思います。上に引用したように、先頭にサマリーがあって、テキストが比較的短いブロックに分かれていて、見出しやリンク文字列が理解しやすい、大きなブロックは出来るだけ避ける、といった配慮が必要と思います。
参考資料
Web Content Accessibility Guidelines (WCAG) 2.0
論文作成・発表アクセシビリティガイドライン(Ver.3.0)
総務省:みんなのアクセシビリティ評価ツール:miChecker (エムアイチェッカー)
Firebase In-App Messaging API – Android Studio
Firebase の In-App Messaging を試してみるものの、一向に表示される様子がなく…
Android Studio の Logcat を眺めてみると、
PERMISSION_DENIED: Firebase In-App Messaging API has not been
used in project ??? before or it is disabled.
のようなログがありました。
Enable it by visiting …
Firebase In-App Messaging API が有効になっていない?
ということでした。
ENABLE をクリックして、再度 Firebase console からテストを実行。
emulatorでアプリを閉じて開きなおすとメッセージが表示されました。
Turn off numbered list – Google Docs
Turn off numbered list – Google Docs Help Forum
Tools -> Preferences -> Automatically detect lists(to Uncheck).
Filename filters – FileZilla
To opt-out of system files like “.DS_Store”,
Open “View->Directory listing filters”,
check “Configuration files”
and click “OK” or “Apply”.
お問い合わせフォームからのspam対策 – Contact Form 7
昨年(2018)秋頃から、あるサイトでspamがたくさん届くようになったとのことで対処。
方法としては、
(1) reCAPTCHAによる自動送信の回避
(2) Akismetによるメールアドレスチェック
(3) 入力内容によるフィルタ
など。
で、(1)と(2)は適宜実施するとして、(3)について調べてみました。
ちなみに、問題となっているサイトは日本語のみでの運用のため、日本語が入力されていない場合はエラーにする方向で考えています。
参考にさせていただいた記事
Contact Form 7で本文に日本語が含まれていない時は送信できないようにする方法
Custom Validation | Contact Form 7
textarea* は何らかのひらがなが含まれていること。
text* your-address は半角英数が含まれていないこと。
としてみました。