投稿

AWS内で完結するウェブアプリケーションの作成 (仮想環境の構築編)

イメージ
AWS内で完結するウェブアプリケーションの作成 (仮想環境の構築編) : 作成条件 基本的にAWS内で完結させる。ローカルへのアプリダウンロード等は行わない。 できる限り無料枠を利用する。 AWSのアカウントを所持していることを前提条件とする。 構築手順 AWSにログインし、 AWS マネジメントコンソール に移動する。 仮想マシンの起動 をクリックする。 ステップ1 Amazon マシンイメージ にて、 Microsoft Windows Server 2016 Base (無料枠)をクリックする。 ステップ2 インスタンスタイプの選択 にて、下図のインスタンスタイプ(無料枠)をクリックする。 ステップ7(2から7に飛ぶ) インスタンス作成の確認 にて、作成ボタンをクリックする。 メッセージボックスが出るので、プルダウンで「新しいキーペアの作成」を選択し、キーペア名に任意の文字列を入力してダウンロードする。 「インスタンスの作成」をクリックする。ダウンロードしたキーは仮想環境を使用する際に必要なので任意の分かりやすい場所に保存しておく。 インスタンスの作成には約1時間かかる。1時間たったら「インスタンスの表示」をクリックして状態を確認する。 (インスタンス作成が完了しても画面は自動で切り替わらないので注意!) インスタンス作成が完了すると下記の画面が表示される。 ・インスタンスの状態 :running ・ステータスのチェック:(日付)のチェックが終了しました。 構築完了後 以上で仮想環境構築は完了です。 続きの記事ができましたので、こちらも参照していただければ幸いです。 AWS内で完結するウェブアプリケーションの作成 (仮想環境へのサンプルアプリケーションの搭載編) AWS内で完結するウェブアプリケーションの作成 (アプリケーションの構築編)

AWS ML University の 「Amazon Comprehend Medical」 についてのコンテンツを訳してみた

イメージ
AWS ML University の 「Amazon Comprehend Medical」 についてのコンテンツを訳してみた : はじめに re:Invent 2018で発表されたAmazonAI の新サービス Amazon Comprehend Medical についての概要が「 AWS ML University 」にて公開されているのでこちらを翻訳しながら紹介していきたいと思います。 コンテンツへのアクセス方法は こちら に記載しています。 Introduction Amazon Comprehend Medicalは、ヘルスケア領域で使用するための優秀なAPIです。これらは医療テキストから必要な情報を取り出したり、新しい情報と組み合わせたりすることが可能です。これを利用することで医療現場でのアプリや既存システムにAIを利用した機能開発に役立てることが可能です。 現在は、ほぼ全ての医療現場で Electronic Health Records(EHR) が患者のデータの蓄積に使われています。 しかし特定の情報を取り出そうとすると膨大な作業に追われるため、解析が進まずなかなかできないのが現状です。 これらの問題は Comprehend Medical を利用することで、解決することができます。 Comprehend Medical の仕組み 簡単に説明すると Comprehend Medical は Amazon Comprehend の自然言語処理モデル(NLPモデル)とディープ・ラーニングを使用して、与えられた医療テキストから、ヘルスケア関連の単語や用語を抽出しております。 Amazon Comprehend は機械学習の分野において、最新の情報や知識が備えられているので、とても精度の高い抽出が可能となっております。 Comprehend Medical では以下の2つのAPIが重要な役割を担っております。 NERe API:抽出した全ての単語や言語の関連性・関係性を JSON に送ります PHId API:テキスト内の保護された医療情報のみを抽出します Comprehend Medical は AWS Glue などのサービスを利用して Sagemaker や S3 などデータパイプラインツールと...

p5.jsでヒレが元気に動く魚を作ってみた!

イメージ
p5.jsでヒレが元気に動く魚を作ってみた! : 先日、魚のマウスストーカーが実装される拡張機能を作りました! gif動画では確認しにくいのですが、実はこの魚たちは p5.js で作られていて、ヒレや尾びれも元気に動いています笑 ここでは、 p5.js における魚の作り方を紹介します。参考になれば幸いです。 成果物 魚の基本形 まずプログラムを紹介し、その後に解説を進めていきます! p5.js class Fish { constructor(x, y) { this.position = createVector(x, y) this.theta = 0 this.color = { filet: color(153, 206, 255), body: color(30, 144, 255) } } update() { this.theta += PI / 100 } display() { push() noStroke() translate(this.position.x, this.position.y) //左右のヒレ for (let i = -1; i <= 1; i += 2) { push() fill(this.color.filet) translate(0, 10) rotate((PI / 12) * sin(this.theta * 2) * i) beginShape() vertex(0, 0) vertex(12 * i, 4) vertex(10 * i, 10) vertex(0, 4) endShape() pop() } //////////// //尻尾 push() fill(this.color.filet) translate(0, 25) rotate((PI / 12) * sin(this.theta * 2)) ...

download属性のクリックによるダウンロードはドキュメントに存在しなければダウンロードできない。ブラウザ依存で。

download属性のクリックによるダウンロードはドキュメントに存在しなければダウンロードできない。ブラウザ依存で。 : 要約 <a href="ダウンロードしたいファイルパス or blob" download="ダウンロードファイル名"><a> という download 属性を使ったリンクは、 href , download , click をJSで操作してもいいものの、a要素自体はdocument下に存在していなければならず、 JavaScript空間のみで createDocument しただけのものでは一部ブラウザでダウンロードできない。 確認できたダウンロードできるブラウザは Vivaldi 2.2.1388.37 おそらく参考したコード記事からの情報によりChromeも可。 ダウンロードできないブラウザは Firefox 64 IE 9 他のブラウザに関しては下記リンクからテストしてもらえればと思います。 多ブラウザ対応としては、ファイル内容をJSで作るにしてもダウンロード用のa要素を先にHTMLで書いておくか、JSでa要素を作ってもappendChildなどでDOMツリーに追加してやればいいんじゃないでしょうか。 発端 Togetterのツイートまとめをスクレイピングしてコマンドやブラウザから一発で取得する機能の開発 #ファイルダウンロード - Qiita downloadText(e) { const blob = new Blob([this.$store.state.text], {type: 'text/plain'}) const link = document.createElement('a') link.href = window.URL.createObjectURL(blob) link.download = this.$store.state.text.split('\n')[0] + '.txt' link.click() ...

AWS S3のファイルを署名付きURLでアクセスする

AWS S3のファイルを署名付きURLでアクセスする : EC2からS3にアクセスしてオブジェクトを返却してbase64でエンコードして・・なんて 実装も手間だし(多少処理時間も短縮したいし)なので、 private設定のままクライアント側から直接S3を参照できないものかと実験しました 環境 php 7.2 laravel 5.5 Vagrant 2.0.2 VirtualBox 5.2.6 準備 AWSコンソールのIAMでS3の権限をもつユーザを作成(readだけで良いはず) S3はprivateにしておく(デフォルト) 手順 aws-sdk-phpを使います ◆SDKインストール コンソール php composer.phar require aws/aws-sdk-php ◆Controller ※認証情報は仮で直書きですが.envかconfigにもちましょう! Controller //認証情報 $s3 = new Aws\S3\S3Client([ 'credentials' => [ 'key' => 'XXXXXXXXXXX', //アクセスキー 'secret' => 'SSSSSSSSSSSSSSSSSSSSSSSSS', //シークレットキー ], 'version' => 'latest', 'region' => 'us-east-1' //リージョン ]); $command = $s3->getCommand('GetObject', array( 'Bucket' => 'bucketName', //bucket名 'Key' => 'work/test.png', //bucket名以下のファイルパス )); $request = $s3->createPresignedRequest($co...

エスケープ処理とは

エスケープ処理とは : エスケープ処理 エスケープ処理をしないと、セキュリティが、、、とはよく聞くものの、なんじゃそりゃ状態だったので、調べてみました。 エスケープ処理とは 特殊文字や記号を一定の規則に従って別の文字に置き換えること 参考:エスケープ処理とは 例えば console.log('test1test2'); このようなコードを実行した場合、出力結果は test1test2 となります。 これを、アレンジして出力したいとします。 例えば test1 test2 と表示したいと思い、下記を実行してみました。すると、どうなるでしょう。 console.log('test1 test2'); Uncaught SyntaxError: Invalid or unexpected token エラーが出てしまいました。 キーボードで入力した改行が、コード上の文字列には反映されず、PCに改行するという行動の指示にしかならなかったからです。 改行の他にも、 ' (シングルクウォーテーション)や " (ダブルクウォーテーション)などもエスケープすることによって console.log('I'm Taro.'); このようなコードもエラーを吐くことなく実行できるようになります。 なぜエスケープする必要があるのか とはいえ、別に出力結果を改行する必要なかったり、シングルクウォーテーションの中にシングルクウォーテーションを入れる必要がなければ、いらないのでは?と思う方もいるかもしれません。 私も最初はそう思いました。普通にjs書いてる分には必要ないかなと。 では、次のような状況の時を考えてみましょう。 ページ内にユーザが入力するフォームを設置しました。 エスケープ処理をしないとどういう危険性があるか。 文字を入力するところに、コードを書くことができ、最悪の場合サイトを壊されてしまいます。 これは避けたいですね。 まとめ というわけで、エスケープ処理とは文字を変換することであり、入力フォームが悪用されないための最低限のセキュリティ対策であることがわかりました。 この記事は、私がわからないことを調べた備忘録です。もし、なにか間...

エスケープ処理とは

エスケープ処理とは : エスケープ処理 エスケープ処理をしないと、セキュリティが、、、とはよく聞くものの、なんじゃそりゃ状態だったので、調べてみました。 エスケープ処理とは 特殊文字や記号を一定の規則に従って別の文字に置き換えること 参考:エスケープ処理とは 例えば console.log('test1test2'); このようなコードを実行した場合、出力結果は test1test2 となります。 これを、アレンジして出力したいとします。 例えば test1 test2 と表示したいと思い、下記を実行してみました。すると、どうなるでしょう。 console.log('test1 test2'); Uncaught SyntaxError: Invalid or unexpected token エラーが出てしまいました。 キーボードで入力した改行が、コード上の文字列には反映されず、PCに改行するという行動の指示にしかならなかったからです。 改行の他にも、 ' (シングルクウォーテーション)や " (ダブルクウォーテーション)などもエスケープすることによって console.log('I'm Taro.'); このようなコードもエラーを吐くことなく実行できるようになります。 なぜエスケープする必要があるのか とはいえ、別に出力結果を改行する必要なかったり、シングルクウォーテーションの中にシングルクウォーテーションを入れる必要がなければ、いらないのでは?と思う方もいるかもしれません。 私も最初はそう思いました。普通にjs書いてる分には必要ないかなと。 では、次のような状況の時を考えてみましょう。 ページ内にユーザが入力するフォームを設置しました。 エスケープ処理をしないとどういう危険性があるか。 文字を入力するところに、コードを書くことができ、最悪の場合サイトを壊されてしまいます。 これは避けたいですね。 まとめ というわけで、エスケープ処理とは文字を変換することであり、入力フォームが悪用されないための最低限のセキュリティ対策であることがわかりました。 この記事は、私がわからないことを調べた備忘録です。もし、なにか間...