クマは森で用を足しますか?

アウトプットは重要です。

重複のない乱数を生成するには

英語学習用に音声アシスタント用アプリケーション(下記)を作ったわけですが、どうやらユーザーのご期待に沿えていないようです。ユーザーが先生役を演じることでたくさん発声してみるというコンセプトで作成し、またその説明を聞いてからご利用頂いている…

GET INKEY コマンドをサポートしてひとまず完成

しばらくぶりの Java Card プログラミングで結局のところ何を作っていたかと言いますと、GET INPUT コマンドを非同期的に SIM カードから端末に送信する SIM ツールキット用アプレットで、そのコマンドのパラメータをある程度コンフィギュレーションできるよ…

GET INPUT コマンドと TIMER MANAGEMENT コマンド

前回(下記)に引き続き、sysmoUSIM-SJS1 4FF を使って SIM ツールキット用 Java Card アプレットを作ってゆきます。cheerio-the-bear.hatenablog.comSET UP MENU コマンドに DISPLAY TEXT コマンド、SELECT ITEM コマンドとやってきましたが、今回は GET IN…

SELECT ITEM コマンドで二階層目のメニューを

先日から SIM ツールキット用の Java Card アプレットを書き始めたところ(下記)ですが、まとまった時間があまり取れていないと進捗しないですね。cheerio-the-bear.hatenablog.com前回は SET UP MENU コマンドと DISPLAY TEXT コマンドをやりましたが、今…

SET UP MENU コマンドと DISPLAY TEXT コマンド

sysmoUSIM-SJS1 4FF を久しぶりに引っ張り出してきて、SIM ツールキット用の Java Card アプレットを作ってみることにします。SIM 側の実装を知ることで、SIM ツールキットの理解も深められるのではないかと考えています。いわゆる "Hello World" 相当の、こ…

Alexa でユーザー発話全文を取得する際に必要な妥協

(English version of this article is here)cheerio-the-bear.hatenablog.com意味のない適当な発話例 'a' や同義語 'a a' を登録したカスタムスロットタイプを利用することが、Alexa のスキルでユーザーの発話の全文を取得する方法としては妥当な選択肢では…

Complete user utterance and compromises with Alexa

(この記事の日本語版はこちら) cheerio-the-bear.hatenablog.comIn the previous article below, I wrote that introducing a custom slot with no meaning sample utterance like 'a' is a kind of the best possible solution to get the complete user …

Alexa でユーザー発話全文を取得する最善の方法は?

(English version of this article is here)cheerio-the-bear.hatenablog.comGoogle Home 用に作成した下記アプリケーションを Amazon Echo に移植するために、Alexa に対するユーザーの発話の全文を取得する方法を幾つか試してみていました。assistant.goog…

What is the best way to get complete user utterance with Alexa?

(この記事の日本語版はこちら)cheerio-the-bear.hatenablog.comI am looking for the best way to get complete user utterance with Amazon Alexa in order to port the following application for Google Home to Amazon Echo.assistant.google.comAs fa…

Google Home 用 "My English Learner" を作りました

今年やりたいと思っていたことの中から下記の二つを実行するために、Google Home を対象とした簡単なアプリケーションをひとつ作りました。本当に簡素な実装で、ロジック部分はおそらく 100 行くらいしかないと思います。 音声アシスタントのアプリケーショ…

フォールバックインテントからユーザーの発話内容を取る

下記の Google Home 用アプリを作っているときに、ユーザーの発話内容をそのままアプリ側で受け取る方法を調べていました。また同じことやるときに調べるような気がするので、ここにメモしておきます。cheerio-the-bear.hatenablog.com フォールバックインテ…

"English" で作った Google Home アプリを起動できなくなる

"English" のみをサポートする Google Home 用アプリケーション(下記)を作っていたときに、アプリの利用目的の根幹に関わる不思議な現象に遭遇しました。cheerio-the-bear.hatenablog.com 日本語 (日本) 設定の Google Home mini で使えていたのに 自作ア…

(Dialogflow) TypeError: Cannot read property 'forEach' of undefined

Dialogflow のインラインエディタで書いていたシンプルな Fulfillment が、エラーを出すようになりました。インラインエディタ下の "View execution logs in the Firebase console" からログを確認すると、どうも forEach で失敗しているようです。TypeError…

スマートスピーカーのバイリンガル化を求む

Google Assistant の「バイリンガル化」なんて記事もあったので期待したのですが、どうもうまく二か国語を操らせることができません。期待していたのは下記の三点ですが、Google Home の Google Assistant と Amazon Echo の Alexa の両方とも駄目です。 ユ…

Dialogflowのビギナー向け解説ムービーを観る

そろそろ Google Home Mini で何か作ってみたいと思い、Dialogflow 上で適当に入力してみたのですが、それらしく対話してくれるものが(簡単なものですが)できるにはできました。でも、Google の Developer Advocate さんの YouTube ビデオ、"A 3-part gett…

Android Secure Element CTSの実行用ARA-Mできました

Android Secure Element CTSの実行に必要なアクセスルールを返すARA-M、とりあえず完成です。インストール後にルールの追加や変更を動的に実行できるようには作っていませんが、それはまた他にやることがないときにでも。github.com アクセスルールの選択ル…

GET DATA [Refresh tag]の追加

前回の変更で、現在製造中のARA-MがGET DATA [All]コマンドとGET DATA [Next]コマンドをサポートしました。cheerio-the-bear.hatenablog.com GET DATAコマンドとしてはもうひとつ、GET DATA [Refresh Tag]コマンドにも対応させます。 GET DATA [Refresh Tag]…

GET DATA [All]とGET DATA [Next]の実装

ARA-Mがアクセスルールをターミナルに提供できるようにするために、GET DATAコマンドをサポートします。コマンド仕様の詳細については、Global PlatformのSecure Element Access Control仕様書4.1章を。github.com GET DATA [All]コマンド GET DATA [All]コ…

ではARA-Mを作り始める準備を

前回までは、Android Secure Element CTSの実施時に必要なJava Cardアプレットを作成していました。cheerio-the-bear.hatenablog.comアクセスコントロール系のテストケースには、そのアプレットだけでは全然足りません。ということで、テストが期待するアク…

OMAPI/ACテスト用アプレットはこれで完成(のつもり)

自作のJava Cardアプレットをインストール可能な珍しいSIMカード、OSMOCOMコミュニティーのsysmoUSIM-SJS1 4FFを使ってAndroid Secure Element CTS仕様のアプレットを作る件、今回の変更でひとまず完成ということで良いのではないかと思います。テスト仕様に…

論理チャネルを開くときにP2値を割愛するケース

Android Secure Element CTSページのOpen Mobile API関連の記述について言えば、これまでの対応でカバーできていないのは、おそらく下記の件のみではないでしょうか。 a. 0xA000000476416E64726F696443545331 ... vi. The applet should return success stat…

各種警告系ステータスワードの返却

ターミナルとカードの間で行われるAPDUコマンドのやり取りには、当然ながらカードOSが介在します。ふと見つけてドイツから個人輸入したsysmoUSIM-SJS1 4FFですが、カードOSの制限事項のようなもの、例えばカードOSが通過を許してくれないクラスバイトやイン…

Case 2コマンドやCase 4コマンドへの長いデータの応答

Android Secure Element CTSに使えるSIMカードをsysmoUSIM-SJS1 4FFで作ってみる件、次はOmapiTest.testSegmentedResponseTransmit()です。 testSegmentedResponseTransmit()が期待する動作 テストコードによると、セキュアエレメントから返ってくるデータの…

突然のSW 6F00はメモリリークによるものなのか?

Android Secure Element CTS仕様に沿ってJava Cardアプレットを作成中ですが、ある日突然アプレットを選択することができなくなりました。最初に作ったアプレットAID 'A000000476416E64726F696443545331'に対するSELECTコマンドに、SW 6F00が返ってきてしま…

OmapiTest.testLongSelectResponse()のサポート

OSMOCOM (Open Source Mobile Communications) コミュニティのSIMカードsysmoUSIM-SJS1 4FF上で動くAndroid Secure Element CTS用Java Cardアプレットを作成するこのシリーズ、前回までにOmapiTest.testTransmitApdu()の対応を終え、今回はOmapiTest.testLon…

OmapiTest.testTransmitApdu()が期待するSIMカードの振る舞い(2)

前回は、Android Secure Element CTSのOmapiTest.testTransmitApdu()を、Pythonスクリプトで再現するところまで。今回は、それに対応するJava Cardアプレット側の実装を行います。cheerio-the-bear.hatenablog.com その前に「インストール」できないことに気…

OmapiTest.testTransmitApdu()が期待するSIMカードの振る舞い(1)

sysmoUSIM-SJS1 4FFを、Android Secure Element CTSの要求仕様に沿ったSIMカードへと仕立て上げることができますかどうか。ビルド済みオブジェクトとして提供されているgoogle-cardlet.capを、そのまま単純にロードすることはできませんでした。では、順番に…

google-cardlet.capはロードできるのか

SIMツールキット用のアプレットのロードおよびインストールができることはわかりましたが、その他のJava Cardアプレットでも同様の操作が行えることを確認してゆこうと思います。あまりまとまった時間を確保してやってはいないので、さて何日かかることやら…

GET STATUSコマンドで確認してみましょう

SIMツールキット用サンプルアプレットのビルド、sysmoUSIM-SJS1 4FFへのロードおよびインストールを実行することができました。次は、インストールされたアプレットの存在について、GET STATUSコマンドを使ってあらためて確認してみましょう。cheerio-the-be…

SIMツールキット用サンプルアプレットは動きます

Java Cardアプレットのロードやインストールに使うPythonスクリプトが実行可能になりましたので、その仕組みについても少しずつ確認したりしなかったりします。cheerio-the-bear.hatenablog.com APDUコマンドを出力してみました スクリプトは正常に終了する…