Tweet

2018年11月28日水曜日

近況報告 amazonAlexaスキル開発 1個公開予定のスキル大詰めです。

近況報告

最近ずっとCSV作ったり色々でひとつのスキルに専念してます。
公開できたら、またここでも投稿します。

そして開発途中でハマった事とか回避したこととかTIPSで全投稿します!

乞うご期待!


AmazonAlexaスキル開発 AmazonDeveloperConsole(Amazon開発者ポータル)開発者名は変更できないけどお問い合わせしたら変更できる

こういう人向け

  • Amazon開発者ポータルアカウントの開発者名を本名にしてしまった人
  • 開発者名を変更したい人

なぜ、こういうミスになったか。


何も考えずにへたこいたー!って感じです。
具体的にはスキルストアで開発者(リリース者)の所で本名が出てました。
(1個目のキャプチャーは編集画面ですが、編集不可能になってます)



流石にあかんので直してもらうことに。

こちらからお願いすればOKです。
https://developer.amazon.com/ja/support/contact-us

こちらはアマゾンテクノロジーの開発者サポートチャンネルです。 商品に関する一般的なご質問やアマゾンデバイスの設定でお困りの場合などはアマゾンカスタマーサポートにお問い合わせください
また、アマゾン開発者コミュニティーに開発者関連のご質問をフォーラムの該当カテゴリに投稿することで、回答が得られることがあります。


メール文:例

カテゴリ Alexa
メールアドレス:AmazonDeveloperConsoleと同一。
(アレクサとかでログインしているメールアドレス)
内容:開発者名を変更お願いします。
変更前:言い草食べたろう
変更後:iigusaTabetoroドットコム



こんな感じです。

雑なメール内容で朝いちで対応してくれました。

すばらしい。

2018年11月24日土曜日

指定難病 医療費助成制度 自己負担限度額の判断について(住民税 所得割を重点的掘り下げて解説)

issue(今回考えるべきこと)


指定難病の自己負担限度額の基準って多くの自治体やサイトで書かれているけど、
これって正確な情報じゃないよね、っていう話。

<先に結論書いておきます>
指定難病 医療費助成制度の自己負担限度額は、
住民税の所得割のみで判断されるということが正しい、と考えました。


おことわり


現時点でネット上で調べていると、自己負担限度額について
「どう考えてもおかしいな」と思う事があったので、
問題提起という事で記載してみます。

本来の意味を考えれば自治体ごとに判断基準が変わってしまう事はないと思いますが、
自治体ごとに判断が違うかもしれません。最終的な判断は自治体のお問い合わせまで。

参考・根拠


住民税の説明がとても分かりやすく秀逸でしたので引用いたしました。

難病対策(厚生労働省サイト)


今回の記事を読む上で必要な知識

  • 市町村民税(住民税)
    • 地方自治体に納める住民税は、ゴミの収集や教育、福祉など、公共事業や公共施設などの行政サービスを行うために徴収されます。課税に際しては、「均等割」の部分を除き、所得が多い人がより多くの住民税を負担するという点や、個人の事情に配慮して控除がある点など、所得税と似た性質を持っているといえるでしょう。所得税と大きく異なるのは、納める時期です。
  • 住民税の内訳
    • 「均等割」
      • ざっくり説明:市区町村ごとに支払う税金。
    • 「所得割」
      • ざっくり説明:前年の所得に応じて変動する税金。

指定難病患者に対する医療費助成制度について


「難病の患者に対する医療等に関する法律」(平成26年法律第50号)に基づき指定される指定難病について、治療方法の確立等に資するため、難病患者データの収集を効率的に行い治療研究を推進することに加え、効果的な治療方法が確立されるまでの間、長期の療養による医療費の経済的な負担が大きい患者を支援する制度です。(参考サイトから引用)

ざっくり要約すると、

「医療費負担が大きい事が予想されるから月の負担上限を超えたら負担しなくてOK」
「所得が少ない人なら月1万円、所得が多い社長様などなら月2万円まで払ってね」
という制度です。

何が違和感を覚えるのか。


指定難病センターなどで掲載されている表はかなり有名だと思います。
みなさん一度は確認した事はあると思います。


「階層区分の基準」「一般所得Ⅰ・Ⅱ」をみると、
「市町村税課税異常 7.1万円未満」と記載があり、補足説明がありません。


所得が多い、少ないで自己負担限度額が変動するにもかかわらず、
住民税の所得割ではなく均等割もふくめたような書き方になっている所に違和感を覚えます。

つまり、上記の表を読み解く限りだと
  • 前年の住民税総支払額(均等割+所得割)が7.1万円未満であれば「一般所得Ⅰ」
  • 前年の住民税総支払額(均等割+所得割)が7.1万円-2.5万円を超えていれば「一般所得Ⅱ」

こういうふうに解釈できるわけです。

厚生労働省HPではどうなっているのか



厚生労働省では、このようにしっかりと
「医療保険上の世帯における市町村民税の所得割の額により算定。」と明記してあります。

自分の市町村民税納税額を詳細に正確に知る方法

  • 住民税の課税内容は「住民税決定通知書」という書式に記載され、会社員であれば5月から6月にかけて、フリーランスやアパート・マンション経営をしている人であれば6月初旬にお住まいの市区町村から送られてきます。

郵送されてくる此方の書類にすべて詳細に記載されています。


また、市役所などで下記書類を発行する事もできます。
  • 「市民税・都民税課税・非課税証明書」とは、証明年度における市民税・都民税の年税額と、この計算の基礎となった証明年度の前年中の所得とこれに対応する所得控除などを証明するものです。


まとめ


指定難病 医療費助成制度の自己負担限度額は、
住民税の所得割のみで判断されるということが正しい、と考えました。


指定難病の医療費助成制度に関しては厚生労働省の公式資料を優先して解釈していいと考えています。
自治体によって判断が異なるとは考えにくいですが、
上記の住民税課税証明書などを照らし合わせた結果、
一般所得Ⅱに分類される場合は一度自治体にご確認いただいてもよろしいかと思います。

免責事項

おことわり

当記事では指定難病や障害者が受けられる制度や補助金、また便利や必要な情報を発信していきたいと考えております。

私自身が指定難病「IgA腎症」患者であり、指定難病に関する情報が世間には少なかったように思えたので、世の中が少しでもHappyになればいいと考えております。




指定難病「IgA腎症」エンジニア アウトプットblog
https://iga34.blogspot.com)(以下、「当サイト」とします。)における免責事項は、下記の通りです。

コメントについて

次の各号に掲げる内容を含むコメントは、当サイト管理人の裁量によって承認せず、削除する事があります。
特定の自然人または法人を誹謗し、中傷するもの
極度にわいせつな内容を含むもの
禁制品の取引に関するものや、他者を害する行為の依頼など、法律によって禁止されている物品、行為の依頼や斡旋などに関するもの
その他、公序良俗に反し、または管理人によって承認すべきでないと認められるもの

当サイトの情報の正確性について

当サイトのコンテンツや情報において、可能な限り正確な情報を掲載するよう努めています。しかし、誤情報が入り込んだり、情報が古くなったりすることもあります。必ずしも正確性を保証するものではありません。また合法性や安全性なども保証しません。

損害等の責任について

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますので、ご了承ください。
また当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任も負いません。
当サイトの保守、火災、停電、その他の自然災害、ウィルスや第三者の妨害等行為による不可抗力によって、当サイトによるサービスが停止したことに起因して利用者に生じた損害についても、何ら責任を負うものではありません。
当サイトを利用する場合は、自己責任で行う必要があります。

当サイトで掲載している画像の著作権や肖像権等について

当サイトで掲載している画像の著作権や肖像権等は、各権利所有者に帰属します。万が一問題がある場合は、お問い合わせよりご連絡いただけますよう宜しくお願い致します。

無断転載の禁止について

当サイトに存在する、文章や画像、動画等の著作物の情報を無断転載することを禁止します。引用の範囲を超えるものについては、法的処置を行います。転載する際には、お問い合わせよりご連絡いただけますよう宜しくお願い致します。


平成301124日 策定

Amazon Alexaスキル開発 開発環境を改めて整えたら作業効率・正確性が100倍になった話

こういう人向け

  • Amazon Alexaスキル開発を整備したい人。
  • Gitを利用して言語開発をしたい人。
  • 履歴や変更点、差分などを確認したい人。


私の環境、使用ソフト

  • Macbook pro
    • 2011年モデルをめっちゃ騙し騙し使ってます。最新PCではないです。
  • SourceTree
    • Gitを利用した開発者を支援するサービスのひとつ。
  • ATOMエディタ
    • 有名なエディタ。ローカルで「index.js」を開く時に使っています。
  • Chromeブラウザ
    • Amazon Developer ConsoleやAWSにログインする時は、開発用ユーザー作成して、ログインしております。

はじめに

まず、私がどういう風に開発しているかの流れを書いてから
実際に新規でスキル開発プロジェクトを立ち上げているのか、流れも書こうと思います。
イメージはつかめるのではないでしょうか。

そもそも元々どうやって開発していたか。

お恥ずかしい話ですが、はじめてのAmazonAlexa開発ということもあり…
  • AWS Lambda上のインラインコード編集で「index.js」を編集して保存してテスト
ひたすらコレでしたね。
ただ、今考えるとウェブブラウザ上でのエディタって最適化されていないので、
下記のような不便な点を感じる事がありました。
  • if構文の{}の数が合わなくても警告が目立ちにくく実行失敗になる。
  • 変数名の変え忘れに気づかない。
  • フォントサイズなどの変更自由度が低いので見にくい状況でコーディング
  • ウェブブラウザの縦幅しか表示できない。

最初はインラインコード編集は便利かなって思ったんですけど、
json形式で500件ほどデータを追加してから処理がとても重くなってしまい、
スクロールのたびにイライラするのであまりオススメしないです。


元々の開発環境の問題点について

  • バックアップが残らない。
  • 差分が確認できない。
  • デグった時に以前のコミットに戻る事が出来ない。
  • コーディングしている時に処理落ちする。
  • デザイン性が自分とは合っていない。
  • 複数人で共有して作業することも出来ない。


どのように改善したか。

具体的には「SourceTREE」「ATOMエディタ」を今回導入しました。
仕事で「SourceTREE」は使っていて慣れ親しんでいるので選びました。
ATOMは未経験でしたが、有名で存在は知っておりましたので今回使ってみました。

結果的には良かったです。


開発の流れ(ふだん)

  1. SourceTREEでローカルリポジトリを作成し、その中にAWS lambda開発に必要な3ファイルを入れる。
    下層に直接置いていないですけど別に問題ないです。
    気持ち悪い人は「sourceTreeLecture」直下に3ファイル置いてみてください。
    極端な話すれば、ほとんど「index.js」しか触らないので「index.js」だけでもOK。

  2. ATOMエディタで「index.js」を編集。

  3. ATOMエディタで「自動保存」がオンになっているのでリアルタイムでSourceTREEのファイルステータスに追加される。
  4. SourceTREE上でコミットすればOK。
  5. 基本的には、ATOMエディタで編集し、AWS Lambda関数へ反映させたい時に、ATOMエディタのコードをCtrl+Aでコピーして、インラインコード編集に全ペーストして保存してテストする。


環境を整える上で注意点

  • 1人で作業する分にはリモートリポジトリの作成は不要。
    • ローカルリポジトリで対応可能。
  • ATOMは自動保存(autoSave)をしっかり有効にさせる(最重要、利便性に大きく異なる)
ATOMを自動保存を有効しない場合
→ATOMを毎回Ctrl+SしないとSourceTREEに差分が登録されない。

ATOMを自動保存を有効にした場合
→ATOMに少し編集を加えるだけでSourceTREE上で差分が反映される。

ATOMで自動保存を行う方法についてはこちらの記事をご参考くださいませ。


開発環境を整えての感想、以前との比較

ひとことで言えば、ストレスフリーになりました。
差分も分かるからデグった時も以前のコミットに遡る事が出来ますし。
ATOMを自分好みにカスタマイズして見やすくなったのは非常に良いなと思いました。

ブログのエディタじゃないんだからわざわざネットでコーディングする必要も無かったわけです。

iOS開発者なのにSourceTREEを自分用のPCに導入していなかったので、
良い機会だと思って朝から取り組みました。





2018年11月23日金曜日

Amazon Alexaスキル開発 日本での収益化、ビジネス化、企業案件について_2018年11月23日時点

こういう人向け

  • Amazon Alexaについて知りたい人
  • Amazon Alexaを使って収益を稼ぎたいと考えている日本人
  • Amazon Alexaを使って企業に営業をかけたいと考えている管理職様

結論

先に結論を書いておりますが、
日本では現時点ではAmazon Alexaを使用して収益化するのは難しいです。

根拠を添えて説明していきます。

アメリカでは?

アメリカではAmazon Alexaで収益を上げる、特定企業のみに公開するなど可能なので、
現状のiOSアプリなどのような収益モデルは可能となっております。
ただ、日本では現時点で対応していないので出来ないというお話です。

ファクト(根拠)






Amazon Alexaスキル開発をしていると
よくこちらの文言を目撃します。


今後について

あくまで個人の見解ベースにはなりますが、
米国先行でAmazon Alexaの企業限定公開などのモデルが成り立っている事から
近い将来日本でも同様にサービスは開始されるのではないか、と考えております。

ですので、
エンジニアの方は今のうちからAmazon Alexaスキル開発のノウハウや知見をためておけばいいのではないかと思います。

当blogはAmazon Alexa初心者向けの記事など数多く投稿しているので、
もしよろしければ見ていってください。


Objective-c (Clang3.8.0) 標準入力を配列として取得するサンプルコード

こういう人向け

  • Objective-cで空白、改行をふくむ標準入力をストレートに配列で収納して取得したい人
  • そもそもObjective-cで標準入力はじめてやる人

参考サイト

標準入出力の操作方法(Obj-C)

コーディング

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // 標準入力を取得する
        NSData *stdinData = [[NSFileHandle fileHandleWithStandardInput] availableData];
        NSString *stdinString = [[NSString alloc] initWithData:stdinData encoding:NSUTF8StringEncoding];
        
        //標準入力を半角スペース,改行区切りで配列に格納する
        NSArray *stdinArray = [stdinString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
        
        //配列から空白を削除して、データのみを配列に整理
        NSMutableArray *mStdinArray = [stdinArray mutableCopy];
        [mStdinArray removeObject:@""];
        [mStdinArray removeObject:@" "];
        
        // TODO: 問題を解く
        
        // 解答を半角スペース区切りで文字列とする
        NSString *stdoutString = [mStdinArray componentsJoinedByString:@" "];
        
        // 解答を標準出力する
        NSFileHandle *fileHandle = [NSFileHandle fileHandleWithStandardOutput];
        [fileHandle writeData:[stdoutString dataUsingEncoding:NSUTF8StringEncoding]];
        [fileHandle writeData:[@"\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [fileHandle closeFile];
    }
    
    return 0;
}

Amazon Alexa スキル開発 トラブルシューティング_Lambda 関数 「~~~~」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。

こういう人向け

  • 「Lambda 関数 「test_01」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。」
    • このメッセージが出て、何も分からない人。
  • Amazon Alexa スキル公式ヘルプページを読み進めてサンプルスキル作成に取り掛かっている人。
  • はじめてAmazon Alexaスキルを取り組む人。
  • Alexaスキル開発トレーニングシリーズ 第1回 初めてのスキル開発を読んでいる人。



おことわり


今回ご紹介する方法は100%正しい方法ではないと思います。
ただ、全く問題なく解決するのでOKという考えです。
出来ればめっちゃ正しい方法をコメントなどでご教示いただきたいです。
私は今回ご紹介する方法で何も問題なくスキル開発出来ております。

また、Amazon公式ヘルプページでサンプルZIPファイルを配布しておりますが、
こちらで配信している内容をそのままではハマる場合が多いのでGoogleドライブでzipファイルを再配布しております。
当ファイル配信で私は収益を得ませんし、営利目的ではございません。


「インラインコード編集」を有効にできません。ただし関数を呼び出すことは出来ますってどういう意味?


インラインコード編集とは、ネットブラウザ上でコーディング出来る機能になります。

<イメージ図>
こんな感じの完成イメージですね。
これはChrome上で動作しているキャプチャーになります。

インラインコード編集のメリット
  • 公式準拠プログラミング環境
  • ブラウザを使って更新するので更新・変更がお手軽(右上から即時保存)
インラインコード編集を使わない場合は、zipファイルの中身を毎回更新して圧縮してアップロードになります。
それに比べたら、いかにインラインコード編集が便利かっていう話です。
めっちゃいいでしょ。

だから、「関数を呼び出すことは出来ます」と書いてあるんですよね。
zipファイル内部を更新してアップロードしても関数自体は機能しますよ、と。

用意するもの

Chromeブラウザ

ファイルダウンロードなどに深い知識がある場合以外はChromeブラウザ使ってください。
こちらからダウンロードできます。 https://www.google.com/intl/ja_ALL/chrome/
(safariでDLすると自動解凍とかされるのでそれを防ぐ為です。)

Chromeブラウザでこちらの配布用URLをお開きください。

私が用意したGoogleドライブです。

右上のダウンロードボタンをクリックしてダウンロード。
zipファイルでダウンロードできたらOK。ファイルの場所は確認しておいてください。
(Google Chrome公式ヘルプ:ファイルをダウンロードする-パソコン

AWS の関数の関数コードにzipファイルをアップロードする


コードエントリタイプ > .zipファイルをアップロード
関数パッケージ > さきほどダウンロードしたzipファイル

キャプチャー通りに行い、右上の「保存」を押します。

フォルダ階層を正しい形に整理する


File not found '/index.js'
こちらのメッセージが出てくると思いますが、スルーでOKです。
正しい位置に「/index.js」が存在していないのでシステムが見つけられませんでしたというメッセージですから。

アップロードしたばかりのフォルダ階層をチェックしてみましょう。


▶test_01(関数名と同一)
 ▶フォルダ「_MACOSX」
 ▶フォルダ「AWS lambda アップロード」
   ▶フォルダ「node_modules」
   ▶ index.js
   ▶package.json

上記のようなフォルダ構造になっております。

上記の中で必要なのは色の付いたファイルだけになりますので、
フォルダ「test_01」の直下に置いてあげましょう。

一番上をファイルを押して一番下のファイルをshiftキー押せば複数選択が出来ます。
青くした状態で「test_01」へドラック&ドロップしてください。
ここらへんはパソコンのフォルダ整理と一緒だから大丈夫だよね・・・?


フォルダ整理後


上記3ファイルが階層が上がり、左側に移動したのが分かりますか。
これでOKです。
不要な「_MACOSX」「AWS lambdaアップロード」フォルダは右クリックで削除しましょう。
deleteという選択肢でOKです。

これで保存すればインラインコード編集が可能となります。




なぜ記事を書いたのか。


結構いろんな人ハマりやすそうなのにネットで調べても一切無かったからです。
iga34が調べた限り、本当の理由は
「Alexa SDKをダウンロードする時に依存ライブラリとしてAWS SDKまでnode_modulesにダウンロードされ、zipサイズが大きくなってしまう為」とか書いてあった。

正直はじめて開発する人にこれ解決しろはキツくないかな…
だからトラブルシューティング記事書きました。

エラーメッセージで検索して、この記事が出てきてくれれば嬉しいね。