≒ jawiki/latest 20160801/ のページ数の件>2082845

 約10日でもう更新かよ!仕事が速すぎるよ!データ使わしてもらってるア〇〇トサイトの内容大幅に弄ってる途中だから、更新作業同時にするのがちょいと面倒。
タダでデータ使わせて貰っててこんな勝手な都合言ってると罰当たるかw
 そのサイトのhttps化は順調に終わった。Let’s Encryptだと証明書の自動更新も簡単。多数の有志による日本語のドキュメントも充実してるし。
 面白かった不具合は、いくつかのサイトで変なhttpsアクセスの捌き方をすることに起因するもの。いちいち確認して回るのが面倒なので、外部へのリンクは「http://]とか「https://」じゃなくてプロトコル明示しない「//」で統一してみた。
 そしたらほとんどのサイトはhttpsアクセスを受け付けない場合、普通に「http://」urlの内容を返却してきて、画像リンクだった場合ブラウザが怒る。
ちなみにdmmさんのAPIが返してくるjsonにはurlがほぼ全部「http://」で記述されてるのだけど、httpsサイトから「//」アクセスしたら全部ちゃんとセキュアなhttpsレスポンス返してくれる。素晴らしい。なんで隠してるんだろう。
負荷対策だったら申し訳ないけど、たぶん同じドメインだろうから関係ないよなー。
で、面白いのがヤフーさん。「//」でhttpsアクセスしたらどんなページでもトップページに飛ばされる。でも画像は大丈夫。ちゃんとhttpsレスポンス返ってくる。
ウーマンエキサイトさんはアクセス不能になってしまう。こちらも画像リンクだけはhttpsでok。理由はなんだろう?ともかく、画像が大丈夫なんで気付きにくい。サイトの内容弄ってる中でリンク先に飛んでみたら判明、まだほかにも変なリンクがあるかもしれない。
 以上、https化の顛末。以下は全然関係ない、ほんとに自分向けの備忘録。
 昨日夜中に仕事して、朝帰ってきて飯食って、メール確認したらAmazonさんから発送連絡が。注文受付メールとカード会社からの引き落とし連絡メールの時間見たら、思いっきり仕事中の時間。こわー!
でもそういえば夜中の休憩中にスマホ見たら、ケツで押して変な画面になってたから恐らくケツで注文したんだと思う。しかも同じ本を二回、1分の間をおいて注文してる。
昨日の昼間にその本のAmazonさんのページでレビュー見たりしてたのは確かだから、おそらく俺のケツがその時よっぽど気に入ったんだろうと思う。
 ちょっと感動したのはAmazonさんの返品対応。初めてやってみたけどすごくシステマティックで分かりやすい。さすが返品大国アメリカの企業w。さすがに返送料はこっち持ちだけど、手続き自体が簡単ですぐ終わるのはありがたい。
返金も返送品到着後1-3日で入金だって。助かった、結構高い本だったから。それも×2。Amazonさん、これからもよろしくお願いします、というかこの件関係なく先日からAmazonさんへのアフィリエイト申請の準備中。そちらも是非よろしくお願いしたいw

≒ jawiki/latest 20160720/ のページ数の件>2079408

油断してたら3週間で新ダンプ。更新が遅くなっちゃった。
1万レコード増加ごとor1カ月ごとにダンプのルールでもあるのかなぁって前に書いたけど、約5000レコード増加なんで両方外れたw

今はサイトのhttps化を試行錯誤中。前にやろうとしたんだけどまだLet’s Encryptがクローズドな段階でお金かかりそうだったから諦めた。
今回は無料でできそうな感じなのでやってみようと。色々http接続では制約も出てきたしね。まずはほとんどアクセス稼いでない別のサイトでやってみて、上手く行ったらこのサイトでもやろうと思ってます。
そのあとは最近フロントエンド全然触ってなかったからModernなJSいじってみよう。おそらくAngular2になるんだろうなぁ。顔本嫌い。でもそうすると俺のコーディングはGoogle様の周りをグルグル回ってるだけのような感じになるなぁ。
いや、前からそうか。

≒ Simple Kitchen timerの件

アプリ公開しました。
Simple Kitchen timer

開発で2週間、アイコンやスクショ作成、リリース前レポートの確認とかで3日掛かった。前のエントリで書いた通り、openGL処理部分は使いまわしなんで時間がかからなかったです。

今回ハマったのはタイマー処理。ほぼイディオムな次のようなコードなんだけど、

[code language=”java”]
Timer timer = null;
@Override
public boolean onDoubleTap(MotionEvent e) {
if(timer == null){
timer = new Timer(true);
timer.scheduleAtFixedRate(new mTimertask(activity,timer),0,100);
}else if(timer != null){
timer.cancel();
timer.purge();
timer = null;
}
return false;
}
[/code]
(だいぶ簡略化してます)

他のクラスからタイマーをキャンセルしても死なない(nullにならない)。コンストラクタやメソッドの引数で渡してそれをキャンセルしても死なん。
ググりまくって結構同じハマり方してる人いるみたいなんだけど、結局タイマー定義を

[code language=”java”]
  static Timer timer = null;
[/code]

にしたら上手く動くようになった。我ながらまだJavaの理解が浅いんだよなー。
他にもタイマー処理の色んなところでハマりまくりながらようやく公開寸前までたどり着いて、まだ問題が残ってたのでググりまくってたら(コピペプログラマだからね)、何やらキッチンタイマーみたいなアプリに最適なGoogle様謹製のクラスがあるような話を散見した。
今さら処理のコア部分を書き直すのはつらすぎ、悲しすぎたのでそっち方面の検索はしないまま自前の複雑怪奇なタイマー処理のまま押し切った。勉強になりました。

良かったら使ってみてください。コードの複雑さにしては単純なアプリです。
…クラッシュレポート上がってきたら全部書き直そう…

追記:ワロタw

OpenGL や Unity3D のフレームワークに基づくアプリ テスト用自動クローラは、OpenGL や Unity3D を使用するアプリの UI 要素を識別できません。テスト結果は、アプリの起動と数秒後のアプリの終了のテストに限られます。