Delphi/C++BuilderのiOS/Android向けアプリ開発で使えるQRコードリーダーのコンポーネント
とりあえずの忘備録。
無償で使えるもの
iOSだけなら TMSSoftWare社の ZBarSDK がある
http://www.tmssoftware.com/site/blog.asp?post=280
iOS + Androidの場合は TKRBarCodeScanner
http://www.fmxexpress.com/qr-code-scanner-source-code-for-delphi-xe5-firemonkey-onandroid- and-ios/
※iOS 向けで使う場合は ZBarSDK も必要です。内部で ZBarSDK を使用しているらしい。
有償製品
WinSoft社の Optical Barcode Recognition for FireMonkey
スマートフォンに貼ったガラスフィルムはクリアファイルで剥がす
今日、スマートフォンを落としてしまい、ガラスを割ってしまいました……。
ただし割れたのは本体のガラスではなく、万が一のために貼っておいたガラスフィルムです。いやあ、危ない危ない。
そしてこの写真は、割れたフィルムを剥がしてから表裏を逆に重ねて撮影したものです。ガラスフィルムって普通はこんなにキレイに剥がせないような気がしますよね!
私も最初は、これ、どうやって剥がしたらいいんだろ、と考えてしまいました。ガラスじゃない保護フィルムなら爪で引っ掛けて剥がせばよいのですけど、ガラスフィルムは爪が入らない。
インターネットでこういう場合の対処方法を調べてみるとスキマにカードを差し込む、なんて話が出ているのですが、あいにく手元に期限切れのクレジットカードはない。また、カードを差し込むにしても、カードはそれなりの厚みがあるわけで、最初に差し込むところが案外大変です。
さらにガラスフィルムは曲がらないわけだから、端から剥がすために引き上げていくと今回割れた箇所で折れてしまう可能性があり、これはこれで危ない。
そんなことを考えつつ、ふと目に止まったのが、クリアファイル。これを差し込めばよいのではと。
大抵のクリアファイルはスマートフォンやタブレットの画面よりも大きいのですから、これを端から押し込んでいくだけで実に手間なく綺麗に剥がすことができます。
これは本当に便利かつ簡単なので、割れたガラスフィルムを剥がすときは是非お試しください。
Bash on Windows のタイムゾーン表示がキモいので変更してみる
Bash on Windows で date コマンドを実行してみると、タイムゾーンがなんだかおかしい。
$ date Sat Aug 26 21.00:00 DST 2017
DSTってなんやねん。日本ならJSTでしょーと思うのだが、Windows 側のタイムゾーンを引き継いではくれないようだ。
ではこいつはいったい何者なのだろうかと思って調べてみることにする。
$ md5sum /etc/localtime ea4135d28ac2a759d0ac4cde8dcb9e55 /etc/localtime $ find /usr/share/zoneinfo/ -type f -print0 | xargs -0 md5sum | grep ea4135d28ac2a759d0ac4cde8dcb9e55 ea4135d28ac2a759d0ac4cde8dcb9e55 /usr/share/zoneinfo/Msft/localtime
Msft って Microsoft の略称じゃんかよ。
日本なら Japan でしょ、ということで、以下のように localtime を書き換えてみる。
$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime $ date Sat Aug 26 21.05:23 JST 2017
よし、これでOKだ。
「Yahoo路線情報」のページを予め好みの検索条件を設定した状態で開きたい
以前に、こんな記事を書きました。
このときは、Excel ベースの交通費精算用シートと連動させることを考えていました。これはこれで便利なのですが、あくまで交通費精算時にしか使えません。
しかし普段でも外出前の経路検索にYahoo路線情報を使ったりするわけですが、このときに普通にサイトにアクセスしてみるとデフォルトの検索条件が適用されてしまって不便だなあと思います。たとえば以下のような場合が不便です。
- 空路よりも新幹線移動を優先したい場合
- ICカード料金で検索したい場合
- 指定席優先
- 歩く速度を「少し急いで」に変えたい場合
こういうのを都度都度変更して検索するのは、めんどくさいです。そこでこれらの設定を予めパラメータで指定出来ないものかと思って試してみたら、うまく行ったので、メモとして残しておきます。
URL の例
前述の条件で路線検索のページを開きたい場合は、こんなカンジのURLでOKでした。
https://transit.yahoo.co.jp/?ticket=ic&type=1&expkind=2&al=0&shin=1&ex=1&hb=1&lb=1&sr=1&ws=2
こういうのをブックマークしておけばよいわけですね。さらに付け加えるなら、from に自宅付近の住所とや勤務先の住所を設定しておけば、その場所からの移動時の経路検索がカンタンになります。
その他、もうちょっとカスタマイズしたい場合は、過去記事を参考の上で調整するとよいでしょう。
Twilio で SMS を送信してみる
単なるメモ。久しぶりにやったら忘れていたのです。
なお、トライアル利用の場合はアカウントを作成した上でUSの電話番号を取得しておくことが大事。
何も考えずに電話番号取得すると日本の 050 番号が振られるけれど、この番号では SMS が送れない。
そしてトライアル利用では電話番号が1つしか取得できないので、この時点で詰む。(が、しかし別のメールアドレスでトライアルアカウントを取り直せばよいい)
Accounts にアクセスして AccountSid を取得する
https://{AccountSid}:{AuthToken}@api.twilio.com/2010-04-01/Accounts
AccountSid を含むカタチで Messages に POST する。
https://{AccountSid}:{AuthToken}@api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages
Post する内容はとりあえずこんなカンジで試してみた。
To=%2B[送信先電話番号]&Body=SMS Sending Test&From=%2B[発信元電話番号]
Content-type は application/x-www-form-urlencoded で。
パラメータって、JSONで渡せなかったっけ?
Google Public DNS64 や OpenWRT, LEDE + tanya 関連の忘備録
ちゃんとキャッチアップできてなかったのだけど、Google Public DNS64 というのができていました。 Google Public DNS64 | Public DNS | Google Developers
NAT64 の Prefix を 64:ff9b::/96 とした上で、2001:4860:4860::6464 か 2001:4860:4860::64 にDNS問い合わせすると DNS64 な AAAA が返されるのですね。
そうすると Unbound が不要になるわけだ。
実際にそういうのを試している事例。 Sideceres Blog: DNS64/NAT64してみた
OpenWRT, LEDE + tagya で Google Public DNS64 を組み合わせた NAT64 を設定できるスクリプトも見つけた。 GitHub - cvmiller/nat64: Configure and Startup script for Tayga, a NAT64 daemon for OpenWRT
ここら辺を週末に試してみた上で、次の過去記事のアップデートしてみることにしよう。
InterBaseやFirebirdのバージョンとODSの比較表
InterBase や Firebird はデータの格納先が1ファイルという個性的な形式なので、データのバックアップやコピーが非常にカンタンで便利なのですが、データファイルの形式 (ODS) のバージョンが InterBase や Firebird のバージョンによって異なるのが気になったので、自分が見やすい形式の表にしてみました。
ODSバージョン | InterBase | Firebird | 読み書き可能なODS |
---|---|---|---|
ODS 8.0 | InterBase 4.0 | ||
ODS 8.2 | InterBase 4.1 | ||
ODS 9.0 | InterBase 4.2 | ||
InterBase 4.5 | |||
InterBase 5.0 | |||
ODS 9.1 | InterBase 5.1 | ||
InterBase 5.6 | |||
ODS 10.0 | InterBase 6.0 | Firebird 1.0 | |
ODS 10.1 | InterBase 6.5 | Firebird 1.5 | |
ODS 11.0 | InterBase 7.0 | Firebird 2.0 | |
ODS 11.1 | InterBase 7.1 | Firebird 2.1 | |
ODS 11.2 | InterBase 7.5 | Firebird 2.5 | |
ODS 12 | InterBase 2007 | Firebird 3.0 | |
ODS 13 | InterBase 2009 | ||
ODS 14 | InterBase 2009 (Special) | ||
ODS 15 | InterBase XE/XE3 | 13-15(10-12は動作するがサポート対象外) | |
ODS 16 | InterBase XE7 | 13-16 | |
ODS 17 | InterBase 2017 | 13-17 | |
ODS 18 | InterBase 2020 | 13-18 |
内容的にはここらへんの内容を参考に書き換えただけです……
InterBaseの各リリースがサポートするODSバージョンの情報はここらへんからの拾い物です。 http://docs.embarcadero.com/products/interbase/IBXEUpdate4_JP/IB_XE_ReadMe_JP.html http://docs.embarcadero.com/products/interbase/IBXE3Update4_JP/IBsetup_XE3up4_ja.html http://docwiki.embarcadero.com/InterBase/XE7/en/On-disk_Structure(ODS) http://docwiki.embarcadero.com/InterBase/2017/en/On-disk_Structure(ODS) http://docwiki.embarcadero.com/InterBase/2020/en/On-disk_Structure_(ODS)