ABC001からABC007までやってみた思い出

AtCoder Biginner Contestの001から007までやってみて学んだことを覚えている限り ABC001-D 感雨時刻の整理 いもす法というシンプルですごいアルゴリズムを知った。 いもす法 - いもす研 (imos laboratory) 蟻本を買った当時はまだ生まれていなかったアルゴ…

AtCoder Beginners Selectionの問題でつまづいたところ

積本の中に蟻本があるのを見つけたところ、急に競技プログラミングをやってみたくなった。 日本にはAtCoderというプログラミングコンテストサイトがあり、競技プログラミングの練習ができるという。 (蟻本を買ったのは2010年頃だったが当時はなかったかと思…

'Deploy to Heroku' Buttonで、Dockerイメージを利用してDeploy

'Deploy to Heroku' Buttonを使った際に、Dockerイメージを利用してDeployする方法がわかりづらかったのでメモ。 対象のリポジトリに用意するものは次の3つ。 heroku.yml app.json Dockerfile heroku.yml 最低限の記述は次のような感じ。 ※Node.jsアプリの例…

暗黙的インテントを使用したときに選択されたアプリを知る

暗黙的インテントを使用したときにユーザがどのアプリを選択するか知るにはどうすればいいのか調査しました。 結論からいうと、Android 5.1以上から追加された次のAPIを利用することで、どのアプリを選択したかBroadcastReceiverで受け取ることができます。 …

WISPrのSmart Clientを実装する

WISPrとは? Wi-Fi based Wireless Internet Service Provider(WISP)のローミングについてのベストプラクティスです。 あくまでも、RFCのような標準ではなくベストプラクティスだそうです。 具体的には? 次のようなケースで使われています。 公衆無線LAN…

iOS 9.0でSVGにtext-shadowのカンマ区切り記法を適用すると描画がおかしい問題

2018年にもなってiOS 9.0の記事を書くのはどうかしている感がありますね。 概要 iOS 9.0でSVGのTEXTタグにCSSでtext-shadowをカンマ区切りで複数適用すると、本来描画される文字列の下の方にもうひとつ文字列が描画されてしまうwebkitの不具合があります。 t…

NEHotspotHelperでAuthenticatingにフックする

iOS

NEHotspotHelperの情報は、開発に使用するのにも申請が必須というハードルの高さからか情報が少ない。 そんな中で貴重な情報源の次のページを参考にNEHotspotHelperを使ってみるとはまるケースがある。 [iOS] Wi-Fi一覧でアピール表示し、パスワードを自動入…

Serverless Frameworkを使ってAWS LambdaにQRコードを返すAPIをデプロイする

サーバレスアーキテクチャ(AWS Lambda, Azure Functions, Google CloudFunctionsなど)の構成管理ができるServerless Frameworkを使ってみたかったので、任意の文字列をQRコード化して返すAPIを作ってデプロイしてみました。 環境は下記のとおりです。 Mac …

python-qrcodeのマスク処理結果の評価方法が若干間違っている

PythonでQRコードを生成するのに便利なライブラリ lincolnloop/python-qrcode: Python QR Code image generator このライブラリはマスク処理結果の評価方法が若干仕様と異なっているため、他のライブラリとはできあがったQRコードが違う結果になることがある…

Laravel5.2とmysqlnd_msを併用するとSegmentation faultで死亡

透過的にRW Splittingが実現できるという触れ込みのmysqlnd_msを既存アプリの構成に組み込んでみたところ、下記のようなログを残して死亡していた。 child pid 10815 exit signal Segmentation fault (11) その原因の(ある程度)切り分けと対策メモ。 環境 …

Twitter Kit for Androidを使って画像付きツイート

TwitterのAPIを使うのに、今までは非公式ライブラリであるTwitter4Jなどを利用しておりましたが、公式ライブラリであるTwitter Kit for Androidがリリースされましたので、このライブラリを使用して画像付きツイートを実現してみます。 環境は下記のとおりで…

Parse Android SDK1.8+でPush通知を無視する

Push通知をON/OFFにしたい。それをParseでするのに以前はPushService.setDefaultPushCallbackでnullを渡すことで実現していましたが、ひさしぶりにParseを使ってみるとPushService.setDefaultPushCallbackがdeprecatedになっていたので代替の方法を探しまし…

MacでWifi共有で透過的にmitmproxy

mitmproxyをWifi共有を使って透過的proxyとして使うための手順メモです。 実施環境は下記の通り。 OS X 10.9 USB LANアダプタ iPhone/Android 手順 mitmproxyのインストール 証明書を端末(iPhone/Android)にインストール Wifi共有の設定 Packet forwarding…

GradleでAndroidアプリを起動するタスクを追加する

GradleのAndroid Pluginはapkをビルドしてインストールするところまではやってくれますが、アプリの起動まではやってくれません。 ということで、アプリの起動をやってくれるタスクを追加しましょう。 実行環境は下記のとおりです。 OS X 10.9 Gradle 1.8 gr…