投稿

2月 5, 2019の投稿を表示しています

グーグル、会話をリアルタイムで文字にする「Live Transcribe」など2つの新アプリ - CNET Japan

イメージ
グーグル、会話をリアルタイムで文字にする「Live Transcribe」など2つの新アプリ - CNET Japan : グーグル、会話をリアルタイムで文字にする「Live Transcribe」など2つの新アプリ - CNET Japan Live Transcribeを起動すると、スマートフォンのマイクで拾った音声を自動で文字に書き起こしてくれる。黒い背景に白い文字で文章を表示するか、白い背景に黒い文字で表示するかを選べる。対応言語は70種類以上。声ではなく文字で返事をしたい人のために、キーボードツールも用意されている。 アプリを閉じると、書き起...

[ITmedia News] 熟練工が1週間かかる調整作業→AIは1日で完了 三菱電機と産総研がFA分野でAI活用

イメージ
[ITmedia News] 熟練工が1週間かかる調整作業→AIは1日で完了 三菱電機と産総研がFA分野でAI活用 : 三菱電機と産業技術総合研究所が、工場での生産ラインの準備作業を効率化するAI(人工知能)技術を共同開発した。

心臓ペースメーカー「メドトロニック」を追加で回収-日本メドトロニック、電気刺激が停止の恐れ

心臓ペースメーカー「メドトロニック」を追加で回収-日本メドトロニック、電気刺激が停止の恐れ : 日本メドトロニック(東京都港区)は、製造販売した植込み型心臓ペースメーカー「メドトロニックSensia DR」などの自主回収を開始した。一定の条件下で使用した場合、心房と心室の電気刺激が停止する可能性...

コンテナセキュリティの決定版「Aqua Container Security Platform」を試してみた(インストール編)

イメージ
コンテナセキュリティの決定版「Aqua Container Security Platform」を試してみた(インストール編) : 「コンテナセキュリティって、決定打無いよなぁ…」 プロダクション環境でのコンテナ利用がどんどん普及するにつれ、そのコンテナ環境のセキュリティ対策も今まで以上に重要になってきています。 特に、AWSのFargateなどに代 […]

AWS CLIでSwitch Role してさらに Switch Role してみた。(ロールの連鎖:Role chaining)

イメージ
AWS CLIでSwitch Role してさらに Switch Role してみた。(ロールの連鎖:Role chaining) : 福岡オフィスの梶原です。 先日、福岡オフィスでこんな会話がありました。 「スイッチロールしたいけどできないんですよね。」 「できるでしょ。」 「いや、正確にはユーザからはスイッチロールできるんですけど、スイッチロールして […]

Docker on EC2のCloudFormationテンプレート

イメージ
Docker on EC2のCloudFormationテンプレート : こんにちは、坂巻です。 Docker on EC2のCloudFormationテンプレートを作成しました。EC2上でさくっとコンテナを起動したいときに使えると思いますので、こちらにアウトプットします。 構成図 今回のテ […]

Cloud Text-to-Speech APIをNode.jsで試した時の備忘録

イメージ
Cloud Text-to-Speech APIをNode.jsで試した時の備忘録 : Googleの音声認識ライブラリ Cloud Text-to-Speech API を試した時のメモ。 プロジェクトの登録 Google Cloud Platform にアクセスして、プロジェクトを作成する。 APIの有効化 ホームのメニューにある APIとサービス から ライブラリ を選択し、以下のAPIを検索して有効化しておく Cloud Text-to-Speech API Cloud Speech API Cloud Text-to-Speech APIは課金制なので、クレジットカードの登録が必要。12 か月間トライアル無料‎を使って登録する。ここでクレジットカードを登録して無料枠分を超えてしまうときでも、 黙って請求されることはない そうなので安心して使えます。Googleからメールにて通知されるそうです。 料金 音声認識のCloud Text-to-Speechは毎月60分(リクエスト)まで無料で使えます。それ以降は$0.006 米ドル/15 秒で課金される。 各リクエストは 15 秒単位で切り上げられます。たとえば、それぞれに 7 秒の音声が含まれる 3 つのリクエストは、45 秒(3 × 15 秒)の音声として $0.018 が請求されます。また、15 秒単位での切り上げは、小数点以下の秒数も対象になります。つまり、15.14 秒は 30 秒として請求されます install sox node.jsで音声を扱うために sox というライブラリを使う。 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null brew install sox node.js用のプロジェクトフォルダを用意 適当なフォルダを作成して、index.jsファイルを作成する。 ソースコードの中身はgoogleの サンプルコード をダウンロードしてきて、以下の箇所をコメントアウトして修正する。 uncommentする const encoding

文系フロントエンドエンジニアは、アニメーションに三角関数をどう活用したら良いのか Part.2

イメージ
文系フロントエンドエンジニアは、アニメーションに三角関数をどう活用したら良いのか Part.2 : 目次 文系フロントエンドエンジニアは、アニメーションに三角関数をどう活用したら良いのか Part.1 文系フロントエンドエンジニアは、アニメーションに三角関数をどう活用したら良いのか Part.2 はじめに 三角関数を調べていて、素敵な記事を見つけました。 三角関数、何に使うの?→点を回すことができます(すごい) タイトルの通り、上記記事の主題は 「三角関数とは、点を回す道具である」 というお話です。 前回は「y=sin(θ)やy=cos(θ)の返り値は何かと都合が良いので、アニメーションに使えるぜ!」的なお話だったのですが、 今回はその三角関数の図形的性質そのものに着目して、色々やってみようと。 視覚的理解 画像は wikipedia より 半径1の円を考えた時、三角関数の定義から x座標はcosθ、y座標はsinθである。 (上記図ではθをtで表してますが) なぜか?よくわからんけど、そういう定義である!突っ込んだら沼なのでこの辺で。 上の図の点について、θ(t)をぐにょぐにょ動かしていけば、一周して円を描きそうだ。 理屈はわからんが、性質として便利そうだ。 ということで使ってみよう。 アニメーションの大枠 簡単なのでTweenMaxで動かすことを考えます。 円を描く TweenMax.set($obj,{ x: Math.cos(θ) * 100, y: Math.sin(θ) * 100 }); x座標がcosθ、y座標がsinθなのだから、こう設定すればいいかな。 (100を掛けているのは、sinθもcosθも-1から1の間で値を変えるためです。 そのままだとあまりにも変化幅が小さすぎるので、アニメーションがわかりやすいように100を掛けました。) ※より数学的には、半径1じゃアニメーション見えないから、半径100にしました。 θはラジアンだが、ラジアン変換公式は前回学んだ通り。 とりあえず下の関数に角度をぶちこめばいい。 角度をラジアンへ変換する function radian(val) { return val * Math.PI / 18

Neptuneの個人的にだいじなところ

イメージ
Neptuneの個人的にだいじなところ : AWSより1/23に待望のNeptuneが利用可能になりました。やったぜ!!! https://aws.amazon.com/jp/about-aws/whats-new/2019/01/amazon-neptune-available-in-asia-pacific-tokyo/ ここ数日業務でNeptuneを触らせてもらえる機会があったので、抜粋して(自分のために)まとめてみようと思います。 コスト感 東京リージョンのNeptuneは下記の 価格 テーブルになっています。 下記のRDSと比較すると若干割高ですね。 可視化 Neo4jの調査をしていたときに、グラフDBの可視化することで、調査効率が格段とあがりました。 しかし、Neptuneではそのような機能の提供がないため別途可視化ツールを容易します。 可視化ツールについては BlackBeltのスライド 内に紹介があります。 ちなみに私は graphexp を使っています。 READMMEにも記載があるのですがneptune用に graphConf.js ファイルに SINGLE_COMMANDS_AND_NO_VARS = true の変更を加え、neptuneはhttpsでの接続となるため graphioGremlin.js の下記の部分をhttpからhttpsに書き換えました。 今回Private Subnet内にNeptuneを配置したため接続周りでいろいろと苦労したのですが、 それは後ほど 冗長化 スケールアップは簡単。 リードレプリカの追加、これも簡単。 singleAZでつくったものをMultiAZに変更できるか。 (RDSはできた記憶があるような、ないような) neptuneのCLI に、 modify-db-instance というコマンドが用意されています。そのパラメータに --multi-az | --no-multi-az があります。 これを、singleAZ配置してしまった、インスタンスに対して実行すると。。。 とりあえず、できないということがわかりました。

S3からNeptuneにバルクロードする

イメージ
S3からNeptuneにバルクロードする : NeptuneにVertex(頂点)、Edge(辺)のデータをいれる手段の一つとしてS3を経由したバルクロードの方法があります。 公式ドキュメント にもある通り、csvを用意してIAMを設定すればほぼほぼ完了です。 IAMの用意 マネジメントコンソールから「クラスターのアクション」から「IAMロールの管理」を選択すると下記の画面が現れます。 ここに、設定したIAMロールを紐付ければオッケーです。反映まで少し時間がかかります。 設定方法ですが ここ にある通り、 AmazonS3ReadOnlyAccessを使う 信頼関係の編集を行う 以上の2点を行えばオッケーです。最終的に以下のようになると思います。 データの用意 ここ を参考にためしてみます。 ヘッダーとして、下記が最低限定義できれていれば、ほぼほぼオッケーでしょう。 ちょうど、私は駅すぱあとを提供する会社に勤めていますので、駅データを抽出してCSV化してみました。 作成したcsvファイルをS3に配置します。 バルクロード 個人的都合でNeptuneをPrivate Subnet内に配置しているため、アクセスが許可されたEC2からバルクロードしたみたいと思います。 以下の2点がちゃんとできていれば、ほぼほぼオッケーです。 curlコマンドが使える セキュリティグループが適切に設定されている EC2上で下記のコマンドを実行します。 curl -X POST \ -H 'Content-Type: application/json' \ https://あなたのクラスターエンドポイント:8182/loader -d ' { "source" : "s3://csvを配置したバケット/作成した.csv", "format" : "csv", "iamRoleArn" : "さっきつくったIAMロール", "region" : "ap-nor

RDSでmax_allowed_packetの値を変更する

RDSでmax_allowed_packetの値を変更する : 大きなサイズのSQLを実行しようとしたとき MySQL server has gone away となってしまうことがありますが この場合、 max_allowed_packet の値を確認すると解決する場合があります。 mysql> show variables like 'max_allowed_packet'; +--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 4194304 | +--------------------+---------+ で現在の設定が確認できます。 私の環境では4MBになっていました。 例えばMySQL5.6であれば設定できる最大値は1GBですので、状況に応じて適切に設定してあげるとクエリが通せるようになると思います。 なおRDSの場合は、マネジメントコンソールからパラメータグループ内の設定を変更することになります。 タイプがDynamicになっていれば、インスタンスの再起動は不要です。 参考 [ https://dev.mysql.com/doc/refman/5.6/ja/packet-too-large.html:embed:cite ]

gremlin-consoleを入れたDockerイメージからNeptuneに接続する

イメージ
gremlin-consoleを入れたDockerイメージからNeptuneに接続する : 昨年あたりから、はじめてグラフDBであるNeo4jを触った身としては、Neo4jのCypherQLは書きやすかった反面、gremlinは非常にとっつきにくいです(個人的に) リファレンス もありますが、どのような関数を使えば、どのように動くかは実際試してみるしかないと思っています。 ですので、今回Private SubnetにあるNeptuneに gremlin-console をいれたコンテナ内から接続したみたいと思います。 基本的な接続周りの設定は、過去に記事化した Docker内からPrivateサブネットに配置したNeptuneに接続する とほぼ同じです。 大きく違う点は、設定ファイルの用意です。 用意するもの docker docker-compose SFSRootCAG2.pemファイル https://docs.aws.amazon.com/ja_jp/neptune/latest/userguide/access-graph-gremlin-console.html Dockerfileの用意 下記のようなDockerfileを用意します。 FROM openjdk:8-jre-stretch RUN apt-get update -y && apt-get -y upgrade RUN wget https://archive.apache.org/dist/tinkerpop/3.3.2/apache-tinkerpop-gremlin-console-3.3.2-bin.zip RUN unzip apache-tinkerpop-gremlin-console-3.3.2-bin.zip RUN apt-get install -y net-tools RUN apt-get install -y openssh-server RUN apt-get install autossh RUN mkdir /root/.ssh docker-compose.ymlの設定 足りないところは補完してください gremlin-console: build:

無駄に壮大なじゃんけんアプリをつくった

イメージ
無駄に壮大なじゃんけんアプリをつくった : はじめに 初心者向けのプログラミングコースで、じゃんけんアプリを作る課題って良くありますよね。 ただし大抵クライアント側のみで実装してるので、結果を改ざんし放題です。 これを野放しにしておくわけにはいかん…!サーバーサイドでしっかり判定せなあかんやろ…! というのは冗談で、最近Railsのようなバックエンドに全て任すような開発ばかりだったので、今回はAPIを用いたフロントエンドとバックエンドが分離されたアプリケーション開発の練習のため、作ってみました。 成果物 無駄に壮大なじゃんけんアプリ 構成 フロントエンド:React バックエンド:AWS API Gateway, AWS Lambda(Node.js) API Gatewayに対して、選んだ手をボディに含めたPOSTリクエストを送信して、そのままLambda functionに流れます。Lambda側では、出す手をランダムに選択した上で、受け取った手と比較して勝敗を判定し、レスポンスを返します。 Reactアプリケーションはnetlifyでホスティングしてます。 Githubにpushするだけで勝手にやってくれるので、便利すぎますね。 ソースコード https://github.com/Sinhalite/janken 課題 ・Reactのコンポーネント分割 おわりに 「なんだこのしょうもないアプリ」と思ったそこのあなた…。 あなたがじゃんけんで出す手はすでにお見通しですよ…。 (ここで世にも奇妙な物語のBGMが流れる)

ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい!

イメージ
ネットワーク越しでパイプしたり、あらゆるデバイス間でデータ転送したい! : 何を解決したいか? Mac, Windows, Linux, iPhoneやAndroidのスマホ・タブレットとかのデバイス間でデータの転送したいことがあります。 SlackとかLineとかSkypeとかAirDropとかあっても  送りたい相手と共通して使っているサービスを探す必要とか、 GUIのソフトウェアのインストールが必要とか、 AirDropだとApple系OSである必要 があるなどの転送の障壁があって、GUIが使えないデバイスに送りたいときなどは困ってしまいます。 すでにたくさんのファイル共有系のサービスがありますが、コマンドを使ったCUIベースにあまり親切な設計なものはあまりないと思います。 そこで、上記の問題を解決するために、以下のようなファイル転送の仕組みを作りました。 他デバイス間でデータ転送 ができ、 別途ソフトウェアの インストール不要 で、 パイプにとても親和性が高く エンジニアフレンドリー 実際の動作 データの送信者も受信者も転送するためにインストールするものはありません。 curlコマンドやブラウザなどHTTP通信ができるものがあれば転送できます。 以下のデモでは、 seq 100000 を上のマシンから下のマシンに送っています。 これは seq 100000 以外にも cat でも ls でもパイプ渡せるあらゆるものが転送できます。例えば、ファイルが送りたいときは cat ファイル名 とします。 以下のように、 100MB.dat をデバイスをまたいで送れます。 エンドツーエンドの暗号化なども可能です。 パイプが使えるということは、、圧縮や暗号化など、また2つ組み合わせて圧縮+暗号化すること可能です。 圧縮送信: cat myfile | gzip | curl -T ... 解凍送信: curl ... | zcat > myfile や 暗号化送信(共通鍵): cat myfile | openssl aes-256-cbc | curl -T ... 復号化受信(共通鍵): curl ... | openssl aes-256-cbc -d > myfil

PHPとMYSQL

イメージ
PHPとMYSQL : PHPとMYSQL ブラウザからデータベースに書き込むための参考例 参考 これで何となくイメージをつけることができました。

CloudFormationでLambdaのLayerを作成する

CloudFormationでLambdaのLayerを作成する : 準備 ライブラリを作成し、ディレクトリ構成は以下のようにします。 python/youfile zipファイルにして、S3にアップロード zip -r layer.zip python aws s3 cp ./layer.zip s3://yourbucket CloudFromation template sample lambdalayer.yaml AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 #Layer作成 LambdaLayer: Type: "AWS::Lambda::LayerVersion" Properties: CompatibleRuntimes: - python3.6 #or other Runtime Content: S3Bucket: your-bucket S3Key: layer.zip #Layer File Description: something LayerName: yourlayername #LambdaSAM Lambda: Type: 'AWS::Serverless::Function' Properties: Handler: lambda_function.lambda_handler Runtime: python3.6 MemorySize: 128 Timeout: 20 Role: !Sub 'arn:aws:iam::${AWS::AccountId}:role/lambda-common-role' CodeUri: src/lambdasrcc/ Layers: - !Ref LambdaLayer

EKSのチュートリアルをやりながらKubernetesを感覚で学ぶ

イメージ
EKSのチュートリアルをやりながらKubernetesを感覚で学ぶ : やりたいこと Aamazon EKSをチュートリアルをやりながら、どうせならKubernetesについても感覚で学んでいこうと思います。 参考文献: https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/getting-started.html 前提 作業はmacosで行います。 EKSは対応リージョンが限られています。 詳細はURLをご確認ください。 https://aws.amazon.com/jp/about-aws/global-infrastructure/regional-product-services/ IAMロールの作成 EKSでは自身でELBを作成するため、IAMのロールを作成する必要があります。 https://console.aws.amazon.com/iam/ にログイン [Create role] > [AWS service] > [EKS] でIAMを作成 VPCの作成 https://console.aws.amazon.com/cloudformation にログイン CFn(CloudFormation)の管理画面で、以下のURLのyamlを使いstackを作成 https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2018-11-07/amazon-eks-vpc-sample.yaml 上記のYamlでは以下のリソースを作成しています。AWSからインターネット接続する基礎部分となります。 VPC InternetGateway RouteTable Subnet SecurityGroup ※ 今回はCFnで作成しましたが、勉強のためにYamlを見ながら手で作成するのもありだと思います。 kubectl のインストール kubectl について Kubectlはawscliのようなもので、kubernetesのApiをcliで管理できるコマンドです。 awscliをお使いの方はご存知かもしれませんが、