2018年10月25日木曜日

消費期限切れ

明日の朝に食べようと思って買ってきたパンが昨日賞味期限切れでした。

売り場にどう見てももうすぐ値引きシール貼られそうなパンがあったので、めずらしくあえてそっちを選んで買ってきたらコレですよ。
品出しがまともにできていない棚がある場合は、まともなスタッフが不在ということなんでしょう。今までこのお店で購入したもので期限切れのものはなかったので、チェックはしていなかったのですが、これから消費期限に限らず期限日チェックしないとダメだな。

telenetでraspberry piのスクリプトを手直ししていたらエラーがでて少し手間取ったのですが、チェックしてみるとタイプミスによるエラーでした。
例えば hostnameとするべきところを hostnmeとか。
修正しようと「a」を押しても表示されないので、押しなおすと「a」が表示されたのですが、しばらくするとやはり「a」だけ抜けてしまうので、とうとう壊れたかと脱力。
最近のキーボードは漏れなくシートタイプの接点なのですが、この手の接点は直せた試しが無いので調べてみると、一つ前のモデルならキー部分だけ部品交換できそうなのですが、手持ちのモデルではキーボードがピンとなるプラスチックを溶かして固定しているようで、部品も出回っていませんでした。旧モデルの流用はできそうな感じですがキーボードの販売もなさそうなのでどうしようか思案中。

安くて使えそうな10インチノート無いかなぁ…

2018年10月17日水曜日

element14とRS Components

先日キャンセルできなかったRSコンポーネンツ版のRaspberry Pi 3 B+が手元に届いたので落ち着いてから開封して、基盤を見るとRS版の方がすっきりとした印象を受けました。

Raspberry Pi 2BのRS版を見たときはチップが少し踊っていたのでRS製品はあまり良い印象は持っていなかったのですが、3B+を見るときれいに仕上がっています。

ヒートシンクを張り付ける際にチップの厚みがelement版の方が厚い気がしたのですが、ただの気のせいだったのかも。
背面のメモリチップに貼り付けるときにRS版の方が何も気にしなくて張り付けられたのですが、製品写真を比べるとどちらもほぼ差異はなく、基盤のプリントも一緒のような雰囲気。

直接見比べることができそうにないので判断が難しいですが…商品紹介に使われてる写真は加工されてるだけで元が一緒のような気がする。

手元に届いた製品で確実に違っているのはRS版ではボード上のディスプレイ用のコネクタとカメラ用のコネクタにシールが張り付けられているので、全く使用しない方は埃が入りづらくなってていいかも。

発熱温度はチップ内の温度センサーで見比べる限り、どちらも変わらない感じです。

2018年10月11日木曜日

注文キャンセルをしたときは、すでに出荷直前

手持ちのRaspberry 3bのメモリーに貼り付けているヒートシンクを付け替えようかと思ってケースを分解しました。
まず、安全のためにターミナルから、シャットダウンさせ電源を抜きLANケーブルを抜いて上蓋を外して、GPIOに付いたコネクタを抜き、microSDを抜いてから、下の蓋を外しました。
構造上少し余裕がないとはめ込みで当たりそうなので、少し大きめにケースに穴を空けて、すでにとりついている薄い銅板ヒートシンクを剥がして別のアルミ製のヒートシンクを取り付けました。
組み立てなおして電源ケーブルを入れた後、温度を確認したところ、アクセスできない状態に。
RaspberryのLANコネクタは光っているので、またSDが逝ったのかと思いつつももう一度電源を入れ直してみましたがダメみたいです。

何度か電源を入れ直したり、SDを差しなおしましたが状況は変わらず。むしろLANコネクタのランプもつかない状態になってしまい悪化した感じに。
慌ててGPIOも抜いて、ほとんど素の状態にするものの本体の赤いランプしか転倒しない状態に。

RaspberryPiで初の本体ボード故障。

現状に納得できないまま、むき出しの状態のボードを目視チェック。ヒートシンクを取り外すときにチップやチップのハンダが損傷してるのかもしれない。ヒートシンクがボードに取りつつけられているチップのハンダに触れてショートしてしまったのかもしれない。GPIOにぶら下がってるブレットボードを電源が入ったままぶら下げたり結構乱暴に扱っていたので、抜けかけたケーブルがショートしたのかもしれない。
手持ちのSDカードをフォーマットしてHDMIでモニターをつなげたり色々やってみましたが、極まれに緑のランプが点灯したままになったので淡い期待で色々試していました。
理由はいろいろ考えられますが、かなりいい時間になってしまったので横になって気づけばRaspberry piの値段を探っていました。
正直なところあまり過負荷にさせたくないのと、発熱量が少ない方がいいので2Bがいいのですが、Wifiが無いのが厳しいところ。そうなると壊れた3Bがいいのですが、アマゾンで見るとセット売りでどのモデルもいまだに結構高値で売られています。メインメモリが大きければZeroWが一番理想なんですけど、Zeroシリーズですら2000円だと買えないとか。たしかWifiがないZeroって500円っていうイメージがあったのですが、Raspberry関連のアマゾン価格はどうもおかしい。それだけ返品が多いということなんでしょうかね。
返品と言えば日本人は返品というのは海外に比べて少ないらしいですが、レビューを見てると結構返品している人は多いイメージ。しかも説明書きも読まずに「動かない」とか壊れてるとかいう書き込みを多く目にします。raspberryなんてosのzipファイルをダウンロードして適当なsdカードに展開するだけであとはHDMIとUSBキーボードとUSBマウスを差し込んで電源を入れれば何らかの画面が出てくるはずなんですけど、一般的な商品と比べるとかなりの確率で返品されてそう(;´Д`)

寝落ち直前まで思案して結局ポチらず朝を迎えました。目覚めはかなりやばい状況でした。確実に寝坊。目覚ましも記憶にないし。

その後やはり思案して今日届くであろう液晶を動かしてみたくてスマホからポチって見ました。

昼にダメ元で再度チップを軽く押さえながら電源を入れたりしてましたがもちろん状況は変わらず。そしておもむろにコネクタにCRCを吹きかけたり接点にはあまり関係ないというか、良くない感じのシリコンスプレーも。掃除のためにSDカードを抜き差しを繰り返しながら電源を入れてみると、なんということでしょう。緑のランプがいい感じに点灯、消灯を繰り返し始めました。HDMIケーブルを接続してみると、画面の表示が。

結局、microSDカードコネクタの接点不良が原因だったみたいですね(*´Д`)
恐る恐るもう少し接点をボール紙などで掃除したり外してしまったヒートシンクにテープを張り付け直して取り付けたりしてセットしてみましたが、いい感じです。もともとのSDカードも問題は無さそうで無事起動できました。

昨日の悪夢は何だったんでしょうか。

あまりアマゾンではキャンセルしたことが無いのですが、問題なさそうなのでまだ出荷されていない注文のキャンセルを押してみると、「キャンセルリクエスト」として取り扱われました。最近アマゾンは着日から逆算して直前になるまで出荷されなかったり、真夜中から明け方にならないと出荷されない感じだったのですが、すでに出荷準備中でキャンセルできない可能性があるという趣旨の内容が表示されました。

そしてメールで「キャンセルリクエストをしていただいていた以下の商品をキャンセルすることができませんでした。」とか。
トドメは、
ご注文いただいた商品を本日、Amazon.co.jp が発送し、ご注文のお手続きが完了しましたので、お知らせいたします。
最近着日の午後にならないと発送のお知らせが届かなかったのですが。キャンセルリクエストすると、せっかくの売り上げを取り消されないように手早く出荷するんでしょうか。

2018年9月26日水曜日

また削除

先日アプリ側の対応したものが再度削除されました。
結局AdMobを利用しているアプリは根本的にダメっぽい気がします。

とりあえずユーザープライバシーについて明記を行って削除が解除されるか、解除されなければAdMobの利用をやめるぐらいでしょうかね。

2018年9月24日月曜日

Google Playストアからのアプリの強制削除

午前5時過ぎ。
半分寝ぼけながらスマホが光ってたので通知を確認するとPlay Consoleアプリからの通知で「アプリが削除されました」という内容の通知が4つ。
正直不意打としか感じない対応ですが、EUの個人情報保護に関する対応なのかなと。

メールを確認すると4つメールが入っていて、内容は同等ので以下の内容でした。
[アプリ]についての通知
デベロッパー各位

審査の結果、 [アプリ] は、Google Play ポリシーに違反していると判断されたため、Google Play ストアから削除されました。このアプリは、ポリシーに準拠するアップデートをご送信いただくまで、ユーザーに配布、販売されなくなりますのでご了承ください。

削除の理由: Android 広告 ID の使用ポリシー及び Google Play デベロッパー販売 / 配布契約 4.8 への違反

アプリが個人情報や個人情報や機密情報を扱う場合、有効なプライバシーポリシーを掲載して頂く必要があります。お客様のアプリは Android 広告 ID の収集及び転送を行うことが確認されましたので、プライバシーポリシーを掲載して頂く必要があります。

アプリが Android 広告 ID の収集を行う場合、有効なプライバシーポリシーを Play コンソールの所定の箇所及びアプリ内に掲載して頂く必要があります。プライバシーポリシーの中でユーザープライバシーについて明記し、URL が有効であることをご確認ください。

必要な対応: プライバシーポリシーをストアの掲載情報及びアプリ内に追加してください

Android 広告 ID の使用に関するポリシー、ユーザーデータに関するポリシー、Google Play デベロッパー販売 / 配布契約を確認し、アプリを修正します。個人情報や機密情報を要求する場合、上記 Google Play ポリシーに準拠した上で、有効なプライバシーポリシーへのリンクをストアの掲載情報及びアプリ内に掲載して頂く必要があります。
アプリが、デベロッパー プログラム ポリシーに含まれるすべてのポリシーに準拠していることを確認します。再度ポリシーに違反したアプリには追加措置が取られることがあります。
デベロッパー コンソールにログインし、ポリシーに準拠した修正済みの APK をアップロードします。必ず APK のバージョン番号を更新してからアップロードを行ってください。

また、お客様のアプリから個人情報や機密情報に関するアクセス権限リクエストを削除していただくことで、今回の警告を回避することも可能です。

アップデートが承認されると、アプリはすべてのインストール、評価、レビューが元のままの状態で再び配布、販売されるようになります。

ポリシーをご確認のうえ、今回の削除措置が誤りだと思われる場合は、お手数ですがポリシーサポートチームまでお問い合わせください。担当者が 2 営業日以内にご連絡いたします。

どうぞよろしくお願いいたします。

Google Play チーム
 句読点の「。」が一か所飛んでるのが気になりましたが、メールをざっくり読んで対応できそうなのは
  1. Googleへ文句を言う。
  2. アプリを修正する。
のどちらかという感じなのですが、おそらくGoogleへ連絡したところで対応があるとは考えられないのでアプリ修正を寝ぼけながら始めました。今見直すと、ポリシーの掲載だけでも行けそうですね。

現状削除された4つのアプリはAdMobを利用しているアプリで、アナリティクスも利用しているかな?

アナリティクスは、アプリ公開時は実装方法やレスポンスといったアナリティクスに対する興味で実装していたのですが、最近はその興味も全くなくなってしまい、Firebaseに統合されあとは、アプリソース内から関連コードを削除しているのが現状です。
ただ、アナリティクスは他のFirebaseの基本部分として firebase-core という位置付けで自動的に利用している感じはします。

AdMobに関しては、鼻で笑うしかない状態なので削除してしまってもいいんじゃないかと思う一方で、まぁもらえるものは欲しいという欲求のためにだけ使っている感じです。

問題となっている「広告ID」ですが、アプリ内では一切ノータッチです。アナリティクスが間接的に使ってそうな気もしますが、確実にAdMobが利用しているとは思います。

個人情報保護の観点ではアプリにダイアログを表示させて同意させればよかったと思いますが、まぁ…そんな同意がそもそも嫌いなので、利用していない「広告ID」を何とかできないかとググってみるとそれらしいのがありました。

広告IDを使っている覚えがないのにGoogle Playからポリシー違反を通告されたけどFirebaseのせいだった https://qiita.com/Nkzn/items/326ad03e358b5d3fbafc

このまとめっぽい記事内のメールは18日に届いてこれが7日前の警告なのですが、私の手元にはいきなり削除したあとの事後報告メールです。しかも自動(;´∀`)
ユーザーポリシーの掲載もしていないので、そんなデベロッパーは一斉に削除対象になったんだと思いますが、それでも18日+7日=25日に削除のはずなのに22日に削除するとかね…。

対応方法はメタタグを追加すればよさそうで、この方法は公式のドキュメントにも記載してありました。
そもそも「広告ID」は使用していないので、固定で無効にしておけばいいのでこれだけでOK。

そろそろ真面目にポリシー書いて掲載しておかねばならないのかな(´-ω-`)

対応方法は単純なのですが、問題なのはAdMobを含むアプリで機能的な理由からコンパイルSDKレベルを止めているアプリがあるので、その動作確認をする必要がありました。結果から言えばSDK26でコンパイルしてAndorid 7.0で動作したのでちょっとほっとしました。そもそも非力な端末でなければ必要ないアプリなのでもう出番はないかな?と思っていたのですが、Android Oneのおかげで意外と需要はあるみたいです。

他の物はライブ壁紙とスクリーンセイバーなのでSDKレベルが上がっても大丈夫かなと判断して最新の28でビルドし直して終了。

書けばたったこれだけなのですが、実際の作業は結構壁にぶつかりながらの作業でした。
Gradleのバージョンが上がってしまったための対応だとか、firebaseのライブラリのバージョンアップの対応とか、Android Studioのバージョンアップの対応とか。
ソースコードはほぼ変更していないのですが、.gradleの書き換え作業が面倒で何が引っかかってるのかわかり辛すぎました。

まぁこんなことが無い限り最近は製品版のリリースは行わないで、内部トラックでしかリリースしてませんけどね(;´∀`)

また削除