builderscon2019_8月31日
JPQRによって変わる日本のQRコード決済
近年、日本でもキャッシュレス社会に向けた動きが活発化しています。
様々な事業者によるQRコードによる決済が誕生し、コンビニや大手家電量販店でもQRコード決済で支払い出来るようになったり、ニュースで「キャッシュレス」という言葉を聞く機会もかなり増えたのではないでしょうか?
まさにスマホ決済元年・キャッシュレス元年といえる2019年ですが、そういった盛り上がりの一方で各事業者ごとのQRコードの技術仕様や業務フローの対応については加盟店、消費者双方への負担が課題になっています。
こうした負担を解決するための動きとしてキャッシュレス推進協議会が統一QR(JPQR)仕様を策定しており、このJPQRを使った実証実験が2019年8月から岩手県、長野県、和歌山県、福岡県の4県で行われる予定です。
今回、私はこのJPQRの仕様について解説しつつ、JPQRが実現する未来についてお話させていただこうと思います。
MPM/CPM
Merchant-Presented Mode
店舗加盟店側がQRコードを表示する
Cunsumer-Presented Mode
利用者が提示
コンビニとかPOSシステムが大規模に導入されてる店舗で使われることが多い
静的/動的
静的
一度つくったQRコードを複数の決済で利用する
動的
毎回新しいQRコードを生成する
QRコード決済
2015
origami pay
2016
LINE Pay/ 楽天ペイ
2017
pixiv PAY
2018
d払い/PayPay/メルペイ/au Pay/etc...
加盟店も消費者も負担が
アクセプタンス(立て札みたいなやつ)の設置
事業者側は目立たせたいので乱立してる
JPQR
コード決済における統一仕様
https://gyazo.com/732e63993476d2b2f5e4e266125d66cd
一括で事業者に申請したりできる
https://gyazo.com/5dcc74c500675c3c8489465d81969084
静的QRコードのフロー
EMVco(団体)
安全な支払い取引の世界的な相互運用性と受け入れを促進する組織
Visa/AMEXとかUnionPayとかを含むクレカ大手6社が入ってる
EMV MPM
EMVcoが策定した仕様
TLV(type length value)
Type: データの種類
Length: データ長
Value: データ
JPQR
EMVco QR仕様に則る
契約店情報に独自の仕様を追加
https://gyazo.com/14ebb972debc9f64bfb4726b284eb07e
具体的にn番テーブルというレベルで指定できる
JPQRの不正対策
JPQRは何を統一するか?
QRコードのデータフォーマット
統一店舗識別コードによる加盟店データの一元化
スーパーカミオカンデの開発と運用
岐阜県神岡の地下に設置されたニュートリノ検出器「スーパーカミオカンデ」。
検出器本体は直径 40m 高さ 40m の水槽に 50,000 トンのタンクとそこに蓄えら
れた超純水、そして約 12,000 本の光電子増倍管。純水中で電荷を持った高速の
粒子がつくり出す微弱な「チェレンコフ光」を光電子増倍管で観測することで、
ニュートリノを観測したり陽子崩壊の兆候を探そうとしています。
光電子増倍管は常時微弱なノイズをだしているため、約 12,000 本の光電子増倍
管から収集されるデータ量は 300MB/s 以上。このノイズの山から欲しい「事象」
を選びだし、記録するシステムが必要となります。
太陽や空気(大気)で作られるニュートリノは常時観測できますが、超新星はこの
銀河中では30年から50年に1回だけ。いつとんでくるかわかりません。また、陽子
崩壊もいつ起きるかわかりません。よって、24時間365日常時安定して稼働する
ことが必須です。(ちなみに観測されるニュートリノの数は1日20-30位)
これを実現するため、どんなことを気にして、機材を選んだりソフトを開発して
いるか、また、どんなことが問題になったりするかなど、ハード・ソフト両面に
ついて、お話したいと考えています。
Introduction to Super-Kamiokande for geeks(?)
Yoshinari Hayato
Kamioka obs., ICRR/Kavli IPMU
Univ. of Tokyo
KamiokaNDE
太陽から66ギガ個1cm^3あたり突き抜けてる
地球のコアからの素粒子を調べれば個数が分かる
半分ぐらいの素粒子
地球ができた頃の熱が未だに残ってるんじゃないかという可能性
Stars Supernovae SN1987a
小柴教授
ニュートリノ来てるっぽいと思ったらホントに来た
小柴教授は1987年の3月で定年退官だったのに1987年の2月にこの星からの11個のイベントを発見した
ビリヤード突くみたいに電子が移動する
移動した元の後ろに太陽があれば、太陽から出た、とかが分かる
ノイズがすごいので閾値を設定して、何かあれば取る
いっぱいリングがみえると陽子崩壊
8 events per day
1年で2500〜3000
カミオカンデは2日に1個ぐらい
鉄より重い物質は超新星爆発の時に作られたと言われている
10秒間で100メガぐらい
水の中のラドン
12000イベントper sec
GPSで測時してる
光電子倍増管
ガラスが3mmで薄いので職人が吹いて作る
5000本一気に壊れた時に修理に時間かかったのはこのため
ASICボードを自前でつくってる
TCP/IPおそいみたいな話をしていたら、TCP/IPをFPGA(w.o. CPU)に作った人がいた
UDPでパケロスするとヤバいけどTCPなので安心
ケーブルの長さが違うと、1メートルで5ナノ秒違う
なので全部70メートルに揃えてとぐろを巻いてる
2960(X)使ってる
FIFOみたいな挙動に特化
バランサーせずに
勝手に捨てるなという
QoSをOFFできること
J-PARC Main Ring
東海村に加速器
ニュートリノを作る
神岡まで打ち込む
Super-Kamiokande
750キロワット
700℃になる
ヘリウムで冷ます
打ち込んだ時間をL2VPNで神岡に送る
from - 500μs to + 500μs
シミュレーション
Fortran with C++
Subversion使ってる
実は陽子崩壊はまだ見つかってない
ハイパーカミオカンデ
Q&A
近々爆発するのはどれぐらい?
5000年ぐらい
500光年なので、既に壊れていてもおかしくない
500年前に壊れてる可能性もある
オープン化の予定は?
3PBとかあるので、難しいけど、社会的にもやる流れではある
20年後のソフトウェアテストの話をしよう
ソフトウェア開発においてテストはとても重要で、継続的インテグレーション(Continuous Integration:CI)やテスト駆動開発(Test Driven Development:TDD)といった、開発とテストに関するベストプラクティスもまとめられています。元来、ソフトウェアは、スタンドアロンまたは複数台で構成されたのコンピュータ上の環境で動作することが前提となっていたため、境界値テストや負荷テストなどを比較的容易に実施することができました。しかし、近年では、センサやアクチュエータを通じて情報のやり取りを行うInternet of Things(IoT)や、表示を物理空間へ重畳するAugmented Reality(AR)のように、コンピュータ上に閉じずに物理空間とのインタラクションを行うソフトウェアも増えています。それと同時にソフトウェアテストに求められる要件も多種多様になっていき、これからの時代にはますます増えていくでしょう。
立ち見してたのでメモとれず
Q&Aで実世界の入力装置を作るメリットについて聞いた
複数のビーコンを一気に操作できて簡単という話だった
後から思えば、ビーコンは部屋の上の方に置かれることが多いが、3D空間でそれを
アプリの国際化の舞台裏
アプリの国際化は単に表示されるテキストの翻訳にとどまるものではありません。
このセッションでは、開発者とユーザーの双方の視点から、様々な地域で使われる iOS アプリの開発を通して得られた具体的な事例を踏まえ、アプリの国際化で必要となる技術的な知識、避けては通れない問題とその対策、そして今後のアプリ開発における課題について検討します。
自分のアプリを海外のユーザーにも使ってもらいたい。アプリを翻訳したのにあまり使ってもらえない。あるいは、海外のアプリで日本語が使えないのは何故なのか。海外のアプリの挙動がおかしいけれど何故そうなるのかわからない。そんな疑問を持った方を対象とします。
i18n=国際化
アイエイティーンエヌ
文字の話
ユミカカ
弓可可
幽霊文字=存在してない
幽霊文字の説明のために存在してる文字ユミカカは
「文字」と決めたものが「文字」
規格が色々ある
Character Set = 符号化文字集合
あ JISX0208, Unicode <=> 2422, 3042
文字をバイト列にする
Encoding
2422
Shift-JIS: 0x82 0xA0
EUC-JP: 0xA4 0xA2
3042
UTF-16: 0x30 0x42
UTF-8: 0xE3 0x81 0x82
<meta charset="utf-8">
キャラクタセットって言ってるのに指定するのはエンコーディング
間違えて覚えてる人が多い
文字を正しく使う
Unicodeを使う
65536あれば十分?
2バイト
Unicode Principalに書いてある
U+0000〜U+FFFF
サロゲートペア
2文字使って表現する
サロゲート=代用、肩代わり
1024x1024=1,048,576個追加できる!
問題点
ありえない組み合わせ
片割れ
文字数を雑にカウントすると2文字になる
サロゲートペアにある文字はあまり使われない
問題はなくなりつつある
絵文字の果たした役割が大きい
サロゲートペアが必要な領域に割り当てられている😊
Unicode使っておけば問題なし?
OSのフォントレンダリングシステムでもバグが多い
英語のランタイム実装でもバグが
全角スペースと絵文字でクラッシュ
🐱全角とサロゲートペア
zero width spaceを間に挟んで対応してた
variation selector-15でクラッシュ
☀とCombining Diacritical mark
Devanagariでクラッシュ
インド
Devanagari Combination Character U+0900
なんでも
RTLとDevanagariでクラッシュ
Swift
Swift 5より前のアプリは任意の文字列でクラッシュできる
SR-9048
まとめ
国際化と文字
文字はそう決めたから文字、番号で区別
元になる言語でつくって、割り当てればい¥よい?
State => 都道府県・状態
可変文字列の翻訳
数の問題
単純な%dはほとんどの場合でつかえ名い
複数形が存在する
数詞が存在する
1st
複数形や数詞に種類があると気付かない
複数形や数詞に変化のない言語圏では関心がない
状況に応じた対応が必要・万能薬は存在しない
文字列が必要ないようにする
libicuやそれを使ってOSのAPIで頑張る
何種類も用意する
諦める(英単語の後ろに(s)をつけるとかのやつ)
文字列の入力
??人名とか気をつけポイントあるのかな
日本語入力は最強にむずかしい
状態遷移・遷移パターンがすごく多い
インクリメンタル検索つくるのはむずい
日本語の知識がないと使えない
IMEがいっぱいあって微妙に挙動が違う
APIですらバグってる
textView :shouldChangeTextIn: replacementText:
まとめ
翻訳はコンテキストリッチにする
変数は避ける
1入力1文字の思い込みが存在
コンテンツの話
中華フォント問題
言語の優先度について
ほとんどのシステムはLanguageではなくLocaleを指定するようになってる
Locale
言語
地域
通貨
カレンダー
言語コミュニティを指定できる
優先順位をつけて複数指定できる
デフォルトの優先順位がある
CJK統合漢字
各国で変わる似たような文字に同じ番号
アプリ側からは判別不能
niwさん的にはデメリットが大きいと思ってる
新年のお祝いとか
2018年12月28日に届く
チームの話
サロゲートペア、使ってなかったら関心が世の中になかった
1入力1文字の思い込み
無意識のバイアス
思い込みは生きるために必要で誰でも持ってる
持ってるということを気づけることが必要
Diversity
多様性の重要
働きにくさを感じるが、よりよい成果が出るという研究結果
各々が感心の無い問題を解決しなければならない
国際化は多様性の重要性という話題では直接的に関係のある問題
日本人が知っておくべき文化とか
コレーション
oにスラッシュ入ってたりとかする文字を使ってる
oを打って代用しちゃう人がいるので曖昧検索を実装しないと行けない
普通に作ると関係無いのが出てきちゃう
MySQLのUTFじゃないと大変絵文字が一緒になる問題
RTL
質問したいこと:人名のlocale対応はどうしてるか?
"さん"とか、Mr./Ms.とか
ベストプラクティスあれば教えてほしいです
敬称とかミドルネームの有無とか
He/She->TheyとかProf.とかあるので、会社で議論が必要な部分
☞ベストプラクティスは無さそう
まずは気づけるようなDiversityを確保するのが必要ということかakix.icon
中華圏の漢字問題とか
☞ 気づけるところからスタート
全部真っ新にして作り直すのは最終手段
ちょっとずつ直していく方が良いことがある
Unicodeが難しいんだけど、色んな人が考え抜いて統合漢字という間違いとかもありつつ、他のものよりはよく出来ているからよく使われている
ゼロから1から作り直して良いものが出来るかというと同じような物が出来ると思う
a17y = accesibility
i18nと並んで双対をなす