iOSデバイスだけブラウザバックでキャッシュを利用されて困った、しかもサーバー側の環境によって異なる

Webサービスのリリースで、最近iPhoneなどiOSデバイスだけ表示がおかしい、ということがあった。調べてみると、どうやらiOSデバイスでブラウザバックをしたときに、JavaScriptで前の値が残っていて、それに起因するエラーであった。

iOSデバイス以外では再現しなかったし、もっといえば開発環境でも生じない事象で、なかなか悩まされた。まぁこの事象が起きてしまったのは、ソースコードを見たところロジックに問題があったように思うのだが、それはそれとして、キャッシュの問題と環境依存の問題はまったくたいへんだ。。。

“iOSデバイスだけブラウザバックでキャッシュを利用されて困った、しかもサーバー側の環境によって異なる” の続きを読む

探索的テストの試行

ギリギリの時間で開発していると、どうしてもテストが疎かになりがちであるけれど、だからといってバグが許容されるかというとそんなことはもちろんないわけで。しかし、実際のところバグはボロボロ出てくるもので、その時はやはり「テストしないといけませんね」という当たり前の結論になるのだが、そんなことはそもそもわかっていたことであって、それにも関わらずリリースに踏み切らねばならない状況だったことに問題の本質がある。そして今日も本質は放置されたままである。

とはいえ、短い時間でもどうにかできんものだろうか、ということで探索的テストについて調べた。

“探索的テストの試行” の続きを読む

改行コードをbrタグにして反映したいがhtmlエスケープもしたい時

たとえばdata.textの中身を出力したいとする。ここで、改行コードは<br />タグにしたい。なのでhtml出力ということになるが、変なのを入れ込まれても困るので、htmlエスケープもしたい。<br />タグだけ許したい。そういう時のメモ。

“改行コードをbrタグにして反映したいがhtmlエスケープもしたい時” の続きを読む

JavaScriptのプログラムに渡す時刻の文字列の形式は何が良いか

発端は、d=”2018-09-11 10:00:00″というような形式の文字列をjsのプログラムに渡したら、new Date(d)で一部環境(iPhone + Chrome)ではNaNが返ったこと。

それからあれこれ調べて、JavaScriptのプログラムに文字列で時刻を渡すのであれば、”2018-09-11T10:00:00+09:00″というフォーマットが無難かなぁと。JavaScriptと書いたけれど、ISO準拠なので、他のケースでも考え方は同じかと思う。

キーワード: ISO8601拡張形式, RFC3339, ECMAScript

“JavaScriptのプログラムに渡す時刻の文字列の形式は何が良いか” の続きを読む

大文字小文字区切り、ハイフン区切り、アンダースコア区切り

最近ついに仕事でもgitが使われ始めた。プルリクしてからmasterにマージする流れは、やってみれば便利なもので、なんといってもコードレビューが流れに組み込まれているのが良いと思う。

で、チェックしていると、group_user.htmlとGroup_userController.javaというようなファイルがAddされていた。気持ちはとてもよくわかるのだが、クラス名で色々な区切りがあるのはよくないだろう、また区切り入れる必要なければ入れないほうがいいよなー、ということで修正することに。/group/user.htmlとGroupUserController.java。

案外ちゃんと考えることがないよなぁということで、大文字小文字、ハイフン、アンダースコア区切りについて備忘録も兼ねてまとめる。

“大文字小文字区切り、ハイフン区切り、アンダースコア区切り” の続きを読む

boto3でS3にアップロードした画像が、ブラウザで表示するとダウンロードされてしまう時

公開用のS3のバケットにアップロードした画像を、URL直打ちで閲覧すると、いつもならブラウザに表示されるのだが、ダウンロードされてしまうケースがある。

content-typeでイメージのmimeタイプが指定されていないため。対応のメモ。

“boto3でS3にアップロードした画像が、ブラウザで表示するとダウンロードされてしまう時” の続きを読む

Raspberry Piとかやり始めた時に知っておきたかった電子工作系のネットショップ

最近姉にRaspberry Piを買おうと思っているようで、ちょっとやりとりしたら妙にテンションが上がってしまった。

まぁそれはよいとして、Raspberry Piでなんちゃって電子工作みたいなことする時、最初に知っておきたかったなーと思ったネットショップのあれこれ。お店を知るのもお勉強?

“Raspberry Piとかやり始めた時に知っておきたかった電子工作系のネットショップ” の続きを読む

Pandasで2列を比較してTrue/Falseの新たな列を作る。さらに1/0へのマッピング

Pythonの便利なデータフレームのライブラリPandasを使って、2列の値を比較してTrue/Falseの新たな1列を作るやり方のメモ。また、他のシステムとの連携ではTrue/Falseじゃなくて1/0(or 0/1)が必要だったりするので、そのマッピングについても。

“Pandasで2列を比較してTrue/Falseの新たな列を作る。さらに1/0へのマッピング” の続きを読む