投稿

11月 8, 2018の投稿を表示しています

「AIでテストエンジニアは要らなくなるか」、90分間の激論

イメージ
「AIでテストエンジニアは要らなくなるか」、90分間の激論 :  エレクトロニクステストの国際イベント「ITC(International Test Conference)2018」(10月28日~11月2日に米国アリゾナ州フェニックスで開催)では、メインテーマが「AI」だった。そのAIをテーマにしたパネル討論会「Could AI Eliminate the Need for Test(AIでテストエンジニアは要らなくなるか)」があった。90分間、激論が交わされた。

「VirtualBox」にゼロデイ脆弱性 ~ロシアのセキュリティ研究者が“GitHub”で明らかに - 窓の杜

イメージ
「VirtualBox」にゼロデイ脆弱性 ~ロシアのセキュリティ研究者が“GitHub”で明らかに - 窓の杜 : 「VirtualBox」にゼロデイ脆弱性 ~ロシアのセキュリティ研究者が“GitHub”で明らかに - 窓の杜

サンクコストの呪縛-もったいないから、やめられない?

イメージ
サンクコストの呪縛-もったいないから、やめられない? : 経済学や経営学では、物事を実施する場合に、費用対効果という考え方が用いられる。どんな事業でも、何らかの費用をかけねば、効果を上げることはできない。そこで、かける費用に見合っただけの効果が上げられるのかどうかを見積もるわけだ。そして、費用対効果が高い事業は進める、低い事業は見送る、と判断する。ただし、実際に事業を開始してみると、計画どおりに進むとは限らない。費用対効果が高いとみられた事業が、いつも成功するとはいい切れないのだ。 なぜだろうか? それは、どんな事業にも、常にリスクがつきものだからだ。事業を始めた後に、費用対効果を見積もっていたときと比べて、収益環境や競争条件が変化してしまうことは、よくあることだ。ひどい場合には、環境や条件が大きく変化して、効果が全く見込めなくなってしまうことだってある。そういう場合、着手していた事業は中止とすべきだろう。ところが、中止の判断はそんなに簡単にはできない。それまでに既にかかってしまった費用が、事業中止の判断に水をさすのである。ひとつ、身近な例で考えてみよう。 サッカーやラグビーで、お気に入りのチームが出場する試合のチケットを購入したとしよう。試合の日がくるのを、毎日、楽しみにしていた。ところが、あいにく試合当日の天気は大雨。ゲームは、どしゃぶりの雨の中で行われることとなった。雨中の観戦は壮絶なものとなる。観客にとって、試合を観戦することの効用よりも、大雨のせいでずぶぬれになってしまう不効用の方が勝ってしまうかもしれない。ところが、それにもかかわらず、チケットを購入した人は、試合観戦に行こうとする。 なぜか? チケットの費用は、既に支払ってしまったので、試合を見にいってもいかなくても、とりかえせない。それならば、どんなにひどい大雨でも、かかった費用の分だけ試合を観戦して効用を得ないと損だ、と考えるからだ。 このように、既にかかってしまっていて、いまさらとりかえせない費用のことを、経済学では「サンクコスト」(埋没費用)と呼んでいる。サンクコストは、過大視されやすい。人は、サンクコストにこだわり過ぎて、ついつい不合理な判断をしてしまうといわれる。 ここで、もし、試合のチケットが自分で購入したものではなく、誰かからもらったものだったとしたらどうだろう。この

相談事例(女性):メットライフ生命の「米ドル建て一時払終身」10年125%(元本割れしない)に魅力を感じてます

相談事例(女性):メットライフ生命の「米ドル建て一時払終身」10年125%(元本割れしない)に魅力を感じてます : 相談事例(女性):メットライフ生命の「米ドル建て一時払終身」10年125%(元本 ... Copyright © 2018 生命保険おすすめ比較ニュースアンテナ waiwainews All Rights Reserved.

BCGワクチンの生理食塩液にヒ素、新製品添付へ-日本ビーシージー製造が発表

BCGワクチンの生理食塩液にヒ素、新製品添付へ-日本ビーシージー製造が発表 : 日本ビーシージー製造(東京都文京区)は7日、BCGワクチンについて、新製品の生理食塩液を添付して出荷すると発表した。現行品から国の基準を上回るヒ素が検出されたことを踏まえた措置で、16日から新製品を添...

初めてのEMR!Hadoopクラスタを起動してみた。

イメージ
初めてのEMR!Hadoopクラスタを起動してみた。 : こんにちは、データインテグレーション部の平野です。 前職ではHadoopをぼちぼち触っていたのですが、EMRは心理的なハードルのせいか触ったことがありませんでした。 AWSに触ることにも少しずつ慣れてきたので、EMRでH […]

【開催レポ】Security Engineering Casual Talks #1

イメージ
【開催レポ】Security Engineering Casual Talks #1 : こんにちは。インフラストラクチャー部セキュリティグループの水谷( @m_mizutani )です。2018年10月31日にクックパッドにて Security Engineering Casual Talks #1 を開催しました。 sect.connpass.com セキュリティに関する様々なトピックが議論されている昨今ですが、「実際のところサービス開発や運用にどうセキュリティを組み込んでいるのか」という話はまだなかなか表にでてこない、と感じる方もいらっしゃるのではないでしょうか。各種製品・サービスによってセキュリティを高めるための手段は増えてきましたが、それを自社のサービスやプロダクト、社内のセキュリティ運用にどう役立てているか、あるいはどのような工夫をして運用されているのかの知見は組織に閉じてしまっていることがまだまだ多いかと思います。 この会は「開発や運用に実際携わっているエンジニア」があつまって「現場におけるセキュリティに対し、エンジニアはどのようにアプローチしているのか」にフォーカスし、ビールでも飲みながらざっくばらんに話せるように、ということを目的として開催しました。 第1回は「クラウドサービスでつくるセキュリティ」と題してクックパッドを含む3社からの発表がありました。各クラウドサービスが提供しているセキュリティ機能をどのように実環境で構築・実用化し、どのように運用しているのか?という実情について話をしました。 [発表1] 自由でセキュアな環境のつくりかた by @kani_b 1件目の発表は弊社の星( @kani_b )が「自由でセキュアな環境のつくりかた」と題して、いかにセキュリティを維持しつつ開発者が自由にAWSを使える環境を作るかというテーマについて話しました。 [発表2] 踏み台環境のあれそれ by @ken5scal 2件目の発表はFolioの @ken5scal さんによる「踏み台環境のあれそれ」で、クラウド環境における踏み台を Folio でどのように構築しているかという話をしていただきました。Folioでは Teleport というリモートアクセスをサポートするツールを活用して実際の運用をされているとのことでした。 残念なが

pybacklogがバージョン0.1.5にてBacklogのドメイン変更に対応しました

pybacklogがバージョン0.1.5にてBacklogのドメイン変更に対応しました : pybacklog を利用したハンズオンをこなしていたところ、Backlog側の仕様変更に伴って正常に動作しないケースがありました。原因を調査してpull-requestを送ったところ、即時バージョン更新で対応して頂けま […]

Amazon SageMakerの画像系アルゴリズムで増分学習がサポートされました!

イメージ
Amazon SageMakerの画像系アルゴリズムで増分学習がサポートされました! : Amazon SageMakerはJupyterノートブックを使ったデータ探索から機械学習モデルの作成、エンドポイントの展開等が行える機械学習のフルマネージドサービスです。また、Amazon SageMakerには手軽に […]

Oracle Database/APEXでPython/JavaScriptを使う

イメージ
Oracle Database/APEXでPython/JavaScriptを使う : 概要 Oracle Database Multilingual Engine (MLE) と呼ばれる機能により、Oracle Database/APEXでPythonやJavaScriptが使えるようになった SQL*Plus等から実行可能 Oracle Database 12cの実験的な機能 Dockerイメージ、Virtualboxイメージで提供されている 2018年12月まで、 https://apexea.oracle.com でMLE対応APEXサイトの無料のプレビュー版に登録可能 サンプル APEXのSQL Commandsから実行した例 Pythonを実行 JavaScriptを実行 PL/SQL内にJavaScriptを埋め込むことも可能

Amazon EFSをEC2から使ってみたメモ

Amazon EFSをEC2から使ってみたメモ : 伸長する夢のストレージEFS、気になっていたんですがはじめて使ってみました。忘れないためのメモ程度です。 https://aws.amazon.com/jp/efs/ 数千台のEC2から共有マウントできるとか。すごい! セットアップ AWSのWebコンソールからVPCや性能を指定するだけであっさりできました。 こんな感じのNFSホスト名が生成されます: fs-(固有のID).efs.ap-northeast-1.amazonaws.com パフォーマンスモード 最大I/O は多数のインスタンスからマウントして共有するようなケースで選択するとよいとのこと。 スループットモード プロビジョニング済み は、スループットにムラがあると困るとき(ゲームなど?)に設定するといいのかなと思います。 EFSマウントヘルパー NFS互換なので気軽に考えていましたが、マウントを簡単にするEFSマウントヘルパーというソフトウェアが提供されています。 暗号化や、最適なマウントパラメータなど、調べたらなんとかなるんだろうけど、手間のかかる部分をアシストしてくれるようです。 EC2インスタンスであれば、コマンドひとつでインストールされます。 sudo yum install -y amazon-efs-utils 詳しくは: amazon-efs-utils ツールを使用する https://docs.aws.amazon.com/ja_jp/efs/latest/ug/using-amazon-efs-utils.html 常時マウント 通常は /etc/fstab にエントリを記述しておいて、再起動しても自動でマウントされるようにしておくことが多いでしょう。 EFSマウントヘルパーを使う場合 EFSマウントヘルパーを使うと短い記述で済みます。 詳しくはこちらに記載されています: Amazon EFS ファイルシステムの自動マウント https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mount-fs-auto-mount-onreboot.html#mount-fs-auto-mount-update-fstab /etc/fstab fs-(

Python、Slack、Lambda、DynamoDBを使って簡単勤怠管理システムを作ってみた①

イメージ
Python、Slack、Lambda、DynamoDBを使って簡単勤怠管理システムを作ってみた① : はじめに SlackとAWSを使用して、勤怠管理システムを作成してみました! 使用したサービスは、Slack、API Gateway、Lambda、DyanmoDBの4つです。 システム構成図は以下です。 (新しいAWSアイコン使ってみました!) 目次 1.IAMロールを作る 2.Lambdaを作る 3.LambdaからSlackに投稿する 4.API Gatewayを作る 5.SlackからLambdaに通知する 6.DynamoDBを作る 7.SlackからDynamoDBに書き込む 8.DynamoDBの情報をSlackで確認する 1.IAMロールを作る Lambdaで使用するIAMロールを作成しておきます。 今回は、LambdaとDynamoDBのフルアクセス権限を付けておきます。 ロール名は、LambdaDynamoAccessRoleとします。 2.Lambdaを作る WorkTimeManagementという名前で、Lambda関数を作成します。 ランタイムは、Python3.6です。 IAMロールには、先程作成したLambdaDynamoAccessRoleを利用します。 Lambda関数には、デフォルトでPython標準外のモジュールが含まれていないので、ZIPファイルにしてアップロードする必要があります。 ローカル環境で下記のコードを実行し、ZIPファイルを作成します。 terminal $ mkdir environment $ cd environment $ pip install requests -t . $ zip -r environment.zip * コードエントリタイプの「.ZIPファイルをアップロード」を選択し、先程作成したenvironment.zipをアップロードします。 ここまでで、Lambda関数の作成は完了です。 3.LambdaからSlackに投稿する SlackのIncoming Webhooksページに移動します。 ポストするチャンネルを指定すると、Webhook URLを取得することが

ブロックチェーンに特化したデータ・アナリティクスプラットフォーム「catabira.com」、ベータサービスを開始

イメージ
ブロックチェーンに特化したデータ・アナリティクスプラットフォーム「catabira.com」、ベータサービスを開始 :  catabiraは、ブロックチェーンを活用してビジネスを行うサービス事業者向けの、ブロックチェーンに特化したデータ・アナリティクスプラットフォーム「catabira.com(カタビラ・ドットコム)」のベータサービスを、11月下旬に開始する。

.eachで画像がそれぞれ縦長か判別

.eachで画像がそれぞれ縦長か判別 : check_size.js $(function(){ //shop_infoの画像がそれぞれ縦長か判別 $('.shop_info li ').each(function(){ //imgを制作 let img = new Image(); img.src = $(this).children('img').attr('src'); //ソースから縦横サイズを取得 let h = img.height; let w = img.width; //縦長であればtallクラスをつける if (h > w) { $(this).addClass('tall'); } }); });

【小ネタ】Amazon Data Lifecycle Manager(DLM)でEBSのバックアップを簡単に世代管理する

イメージ
【小ネタ】Amazon Data Lifecycle Manager(DLM)でEBSのバックアップを簡単に世代管理する : Amazon Data Lifecycle Manager(DLM)というEBSのバックアップを簡単に世代管理出来るサービスがリリースされていたのを今更知ったので試してみたメモ。 これまでのEBSバックアップ これまで、EBSのバックアップを組むのに一番簡単な方法は、 CloudWatchEventsで「EC2 CrateSnapchot API 呼び出し」をスケジュール実行するものだった。 この方法でも問題なくバックアップは取れるのだが、 スナップショットの削除機能がないためバックアップに必要な世代管理(お掃除)は、 別スクリプトをlambda等で動かすか、手動でお掃除オペレーションをする必要があった。 Amazon DLMによるバックアップ 一言で言うとライフサイクルポリシが組めるので、設定一つでバックアップの世代管理が出来るサービス。 今まで何かしらの方法で行っていた、古いスナップショットの削除まで面倒をみてくれる 【出来ること】 定期的なEBSのバックアップ バックアップの世代管理(古いボリュームの削除) ※指定した時間から1時間以内に始まるとのことでピッタリではないのでそこは注意が必要 手順 ①DLMを選択 ②バックアップに必要な情報を入力 ③バックアップされたスナップショット こんな感じでDLMで作成したとわかる説明がつく 簡単にEBSのバックアップの世代管理が出来て最高だった 参考 Amazon EBS スナップショットライフサイクルの自動化 - Amazon Elastic Compute Cloud

Number.toFixed() の代わりになる関数

Number.toFixed() の代わりになる関数 : Number.toFixed vs getNumberDigit | CreateJS 小数点以下の桁数を指定して表示する Number.toFixed() の代わりになる関数 例えば、(2.005).totoFixed(2) などが 2.00 になってしまう //////////////////////////////////////// // 小数点以下の桁数表示(toFixedの代わり) //////////////////////////////////////// function getNumberDigit(value, digit) { var power = Math.pow(10, digit); if (value > 0) { value = Math.ceil(value*power)/power; } else { value = Math.floor(value*power)/power; } if (digit > 0) { if (value%1 == 0) { value += "."; } for (var n = 0; n < digit; n++) { value += "0"; } var before = value.split(".")[0].length+1; value = value.slice(0, before+digit); } return value; }

vuexを少しずつ少しずつ理解していこう(Nuxt.js環境下) その3(actions編)

イメージ
vuexを少しずつ少しずつ理解していこう(Nuxt.js環境下) その3(actions編) : 前回の復習 シリーズで書いております。前回までvuexの基本的な概念とstate,gettersについて書かせていただきました。↓ vuexを少しずつ少しずつ理解していこう(Nuxt.js環境下) その1(state,getters編) vuexを少しずつ少しずつ理解していこう(Nuxt.js環境下) その2(mutations編) 前回まででvuexのstate,getters,mutationsを理解したところで今回はactionsについて理解していこうと思います。 actions(アクションズ) mutationsの処理を行う前にここでapiからの情報を取得したりします。 参考書籍: 著 @potato4d タイトル  Nuxt.jsビギナーズガイド―Vue.js ベースのフレームワークによるシングルページアプリケーション開発 ※Nuxt.jsを使った開発について丁寧でわりやすく、非常に重宝しております。著者の方に深くお礼申し上げます。 事例① qiita一覧記事を取得 出来上がりのイメージ 仕様説明 qiitaのapiから記事一覧を取得する。所得したい情報は[vuex]のタグが入っている記事。 取得URLは https://qiita.com/api/v2/items?query=tag:vuex asyncData メソッド を使ってdispatchを動かす。 ソースコード store/index.js import Vuex from 'vuex' const createStore = () => { return new Vuex.Store({ state:{ qiitas:{} }, getters:{ qiitas:(state)=>state.qiitas }, mutations: { qiitasMutan(state,{qiitasDatas}){ state.qiitas = qiitasDatas; }

多分わかりやすいCloudFormation入門とチュートリアル

イメージ
多分わかりやすいCloudFormation入門とチュートリアル : Serverのリソース管理(WebサーバーとかDBサーバーとかのマシン管理)ってみなさん何で管理していますか? Ansible AWS CLI(Shell) etc.... 色々あると思いますが、AWSを使用しているならばCloudFormationも一つの選択です。 ただCloudFormationをいざ始めてみようとすると ドキュメントの量が膨大 謎のyml記法がある(DSL的な) とかで億劫になって敬遠されがちかと思うのでこれさえ覚えおけば使えるよ!!ってのをまとめてみました。 対象者 AWSを使っている CloudFormationってナニソレ美味しいの?って人 サーバーのリソース管理方法を選んでいる人 事前に必要なもの aws cli macな方は黙って brew install awscli と打とう やらないこと ポチポチとGUIでCloudFormationを作らない CloudFormationでまず知っておくことその1 スタック 簡単にいうとサービス単位とかでAWSリソースを管理する単位のことです。 例でいうとWEBサービスを作りたいと思った時に大抵の場合下記のような構成になると思います。 (最近はDockerっていう選択もありますが) WEBサーバー(EC2) DBサーバー(RDS) ロードバランサー(ELB) もう少し細かいところまでだと セキュリティグループ Route53 etc.... これらを管理する塊のことです。(各リソースユニットを管理する塊) CloudFormationでまず知っておくことその2 エクスポート 先程のスタックでサービス単位で管理をするとどのサービスでも共通して使用するものがあると思います。 例として 共通のセキュリティグループ VPC CloudFormationは原則としてスタック間での共有はできません。 (例: スタックAで定義したセキュリティグループはスタックBで重複管理することはできません) これを実現するためにはエクスポート機能を使用して値をエクスポートして共有します。 プログラム的に言うとグローバル変数を宣言するイメージ

JavaScriptのnewの知られざる2番目の使い方

JavaScriptのnewの知られざる2番目の使い方 : あまり良いタイトルではないですが 2つの使い方があるよ、という話です。 this についてここ( JavaScriptのthis(コンテキスト)とは? )で書いたのですが、 そういえば this の話なのに new にあまり触れてなかったなと気づいた流れで、 new といえばそういえば2通りの使い方があるなということで書いてみました。 new の2通りの使い方。 var a = new function(){ // 使い方:1つ目 this.x = 'x1'; this.y = 'y1'; }; var b = new function(){ // 使い方:2つ目 var that = {}; that.x = 'x2'; that.y = 'y2'; return that; }; console.log( a.x, a.y ); // x1,y1 console.log( b.x, b.y ); // x2,y2 newで関数を実行した際にその中で、 ・object(hash) を return した場合にはそれ自体が new の戻り値として返り、( ↑で書いた "2つ目") ・それ以外は [何かしら] が返ってきます。 ( ↑で書いた "1つ目") この [何かしら] は内部的には this としてアクセスできて、外部的にはそれを代入した変数 a からアクセスできます。 a も b も外からアクセスする分には同じ動きをします。 var c = (function(){ var that = {}; that.x = 'x3'; that.y = 'y3'; return that; }()); この c も同様の動きです。(new 使った例ではないですが) で、「何が違うんだ?」とか「どう使い分ける?」 とかですが、b,c は全く同じなのでどちらでもいい思います。(私は c の書き方をよく使う) 結局のところ単に object(hash)

色:ヘキサコードから眼球まで – Part 3.

イメージ
色:ヘキサコードから眼球まで – Part 3. : 色域とスペクトル軌跡 等色関数 rˉ(λ) 、 gˉ(λ) 、および bˉ(λ) を取り、それらを使ってスペクトル色のrg色度をプロットすると、その結果は以下のようになります。 注釈: スペクトル軌跡のrg色度 波長(um) 色の点が付いた黒の曲線は全てのスペクトル純色の色度を示しています。曲線は スペクトル軌跡 と呼ばれ、星印は等色実験で使用される可変出力試験灯の波長をマークしたものです。 前述した色度の三角形をこの表に重ねると、次のようになります。 注釈: スペクトル軌跡のrg色度 波長(um) スペクトル軌跡内の領域は、人間が見ることができる全ての色度を表しています。ただし格子模様の領域については、人は認識できますが、435nm、546nm、700nmの光を正の方向にどれだけ加算しても再現は できません 。また、この図から、純粋なシアンを含む435nmから546nmの間のスペクトル色は再現できないことが分かります。 格子模様のない右側の三角形は、正の方向の加算で再現 できる 色度です。色空間のこの再現できる領域を 色域 と呼びます。 最終的に ヘキサコードに戻る前に、もう1つ触れておくべき色空間があるので、次はそちらを見ていきましょう。 CIE XYZ色空間 1931年、国際照明委員会が開催され、2つの色空間を作りました。そのうちの1つはすでに説明したRGB色空間です。この色空間はライトとギルドの等色実験の結果に基づいて作成されました。そして2つ目はXYZ色空間です。 XYZ色空間の目的の1つは、人間の視認可能な色の全てを正の値で表せるようにすることであり、従って、全ての色度が両軸上の[0、1]の範囲に収まるようにすることでした。これを達成するために、RGB空間の一次変換が注意深く行われました。 XYZ空間においてrg色度の代わりとなるのはxy色度です。この座標系は、色度図ではより一般的に使われています。 注釈: xy色度図 通常、色域はxy色度図に配置された三角形によって表されます。例として、ここで再びCIE RGBの色域を、今回はxy空間で示してみましょう 注釈: CIE RGBの色域 色域と色度について理解できたら、次はやっとデジタルディ