投稿

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

次元の呪い、あるいは「サクサクメロンパン問題」 - 蛍光ペンの交差点[別館]

イメージ
次元の呪い、あるいは「サクサクメロンパン問題」 - 蛍光ペンの交差点[別館] : 次元の呪い、あるいは「サクサクメロンパン問題」 - 蛍光ペンの交差点[別館] 超球の体積、すなわち多次元空間における球は、一般的に私たちが観測する3次元の球体の体積とは遥かに異質な性質を示すらしい。 機械学習の有名な教科書によれば、 Our geometrical intuitions, formed through a life spent in a space of three dimensions, can fail badly when we consider spaces of higher dimens...

実行計画の話 - Speaker Deck

イメージ
実行計画の話 - Speaker Deck : 実行計画の話 - Speaker Deck 第14回 中国地方DB勉強会 in 福山の登壇資料です。 https://dbstudychugoku.github.io/events/event-014.html 合わせてこちらのYouTube動画を見ることをオススメします。 PGCon 2014 Tokyo【D3】PostgreSQL SQL チューニング入門 入門編(下雅意 美紀) https://www.youtube.com/watch?v=gxsBi-6ub3k&nohtml5=False

querySelectorAllしてmapしたいとき[...すると短い - hitode909の日記

イメージ
querySelectorAllしてmapしたいとき[...すると短い - hitode909の日記 : querySelectorAllしてmapしたいとき[...すると短い - hitode909の日記 表示中のHTMLから情報を雑に抜き出して利用するため,ブラウザのデベロッパツールなどでquerySelectorAllしてmapしたい.しかし,querySelectorAllはNodeListを返すので,mapするにはArrayに変換する必要がある. NodeListをArrayに変換するときに短く書く方法ないですかって同僚に聞いたらいろいろ教えてもらえたのでメ...

くしゃみの「しぶき」は2メートル飛ぶ。 インフル予防のマスク着用3原則 - あの人はなぜ風邪をひかないのか?

イメージ
くしゃみの「しぶき」は2メートル飛ぶ。 インフル予防のマスク着用3原則 - あの人はなぜ風邪をひかないのか? : インフルエンザが、過去最悪レベルの猛威を振るっています。年度末に入り、受験シーズン真っ最中でもあるこの時期、インフルエンザどころか風邪も絶対ひきたくない人が多いでしょう。そこで本記事では、『ヒルナンデス!』『世界一受けたい授業』などのテレビ番組で紹介され話題を呼び、大重版が決まった書籍『一流の人はなぜ風邪をひかないのか?』から、インフルエンザ予防効果の高い「マスクの着用法」をご紹介します。

AWS IoT Buttonで出勤ボタンを作る

イメージ
AWS IoT Buttonで出勤ボタンを作る : まとめ 最近社内でチャットサービスや勤怠管理デバイスの変更があった。 連携しやすくなったので、毎日の開店/閉店手続きをIoT Buttonにまとめた。 よかった。 背景 最近社内で使っているサービスの見直しが行われており […]

AWS メディアサービスの概要と使いどころ

イメージ
AWS メディアサービスの概要と使いどころ : AWSメディアサービスとは AWSが提供しているAWSElementalを主軸とした映像メディア系のサービス群 何を提供しているかは以下を見ればわかるのだが、自身の理解も含めてどんなことができるのか噛み砕いてみた https://aws.amazon.com/jp/media-services/ 大きく3つが可能 1. OTT(オーバザ・トップ)ビデオ配信 2. ブロードキャスト配信 3. メディア変換サービス OTTビデオ配信は、ライブ映像やビデオファイルなどをインターネットを介して、顧客に映像配信するサービス。 ブロードキャスト配信サービスはOTTとの違いが難しいが、ライブ映像を多地点に同時に提供する ライブビューイングなども可能(OTTでも可能と思うが) メディア変換サービスはわかりやすく、元のビデオファイルをMP4やHLSなどのビデオ形式および適切な解像度などに変換し、ビデオ提供をしやすくするサービス FFMpegで実施していたことがサーバレスで可能 上記から、AWSメディアサービスを使うと ・YoutubeやNetfilxなどのビデオ配信(ライブ含む) ・AmazonVideoなどのVOD(ビデオオンデマンド)サービス ・映画館などで実施しているライブビューイング(youtubeライブなども同等) ・ビデオ変換/ダウンローダサービス(FFMpeg相当のビデオ変換) ができるようになる 割と初期投資が必要そうな内容を手軽にサービスとして組み込んで始められる またはすでに提供している業者もサーバレスとしての拡張性やクラウド特有の使った分だけの料金コストになることも魅力の1つと言える 次からはAWSメディアサービスの概要とどこで使うかをざっと記載する AWSメディアサービスの概要 MediaConvert 大規模なブロードキャストやマルチスクリーン配信向けのビデオオンデマンド (VOD) コンテンツを簡単に作成 ⇨繰り返しになるがFFMpegによる変換と同等のことをサーバレスに実施できる。ビデオファイルをMP4やHLSなりに変換して提供。AWSメディアサービスの中で最もわかりやすく使われそう。 老舗サービスとなるElastic T...

AWSのLambdaとDynamoDBのローカル開発(SAM)

AWSのLambdaとDynamoDBのローカル開発(SAM) : 概要 AWSのコンソールで割と簡単にLambdaの処理とDynamoDBのテーブルを作成したり、編集したりすることができます。 ただ、チームでやるプロジェクトだと、バージョン管理とローカルのテストが重要になってきます。 SAMのCLIを使うと本物のコンソールを使わなくても、ローカルで動作確認もできますし、簡単にAWSにデプロイもできます。 環境の情報 Windows 10 Docker for Windows Visual Studio Code Python 3.7 (他のでも大丈夫だと思います) プロジェクト作成 プロジェクトフォルダーを作成し、VSCodeで開きます。 Pythonの確認 VSCodeのターミナルは【Ctrl+@】で開けます。 sam-lambda-dynamodb> python -V Python 3.7.2 pipの更新 sam-lambda-dynamodb> python -m pip install --upgrade pip 仮想環境の作成 仮想環境を作ることで、別の環境で構築する時に、Pythonのインストールされているライブラリーのバージョンを簡単に合わせることができるので、ライブラリーのバージョンの違いで問題になることはなくなります。 sam-lambda-dynamodb> python -m venv venv sam-lambda-dynamodb> .\venv\Scripts\activate (venv) sam-lambda-dynamodb> 仮想環境に入っていると、左側に(venv)が表示されます。 activateスクリプトを実行できない場合、管理者として以下のコマンドを実行します。 set-executionpolicy remotesigned 仮想環境の中のpipの更新 (venv) sam-lambda-dynamodb> python -m pip install --upgrade pip VSCodeのWorkspaceの設定 仮想環境のための設定を入れます。 - VSCODEに「Python」というEx...

コードに落としこんで 哲学やろうぜ その2 ~海賊王になる方法~

コードに落としこんで 哲学やろうぜ その2 ~海賊王になる方法~ : 概要 哲学は 日本語で書くからわかりにくい。JavaScript にすれば(少なくとも)プログラマには多少はマシになるだろう、という試み。 第一回 がわりと好評だったので、続編をつくった。内容のつながりはない。今回は帰納の正当性に関するトピック「グルー推論」をJavaScript で実装しながら、その意義を考察する。 最後まで読むと、「明日 目が覚めたら海賊王になれるはず」という信念を持てるようになれるかもしれない。毒虫になる危険性に怯えるかもしれないが。 グルーとブリーン ブルー(つまり青)とグリーン(つまり緑)という言葉がある。合体させると二つの造語が生まれる。それがグルーとブリーン。定義は以下: グルーの定義 : 「2019年5月1日0:00 以前に観察されたことのある緑色のもの」もしくは「2019年5月1日0:00 以降に初めて観察された青色のもの」に当てはまる性質 ブリーンの定義 : 「2019年5月1日0:00 以前に観察されたことのある青色のもの」もしくは「2019年5月1日0:00 以降に初めて観察された緑色のもの」に当てはまる性質 もし今が平成なら エメラルドを採掘したときに それが緑ならグルーだし、青ならブリーンだ。近い将来 新元号の下でエメラルドを採掘して、それが緑ならブリーンだし、青ならグルーだ。 いきなり何言ってんの? グルーとブリーンの定義を見て、「意味は(たぶん)わかるが、意義がわからない」というのが一般的な反応。もちろん哲学者が 言葉遊びでこんなことを考えているわけではない。この話を続けていくと、興味深い考察が得られる。それをコードを使って納得するのが本稿の趣旨。 興味深い考察 : 主張 $S_1$「平成が終わっても新発掘されるエメラルドは緑色だ」は、事実 $F_1$「これまで観察されたエメラルド全部が 例外なく緑色であった」からある程度正当化される。だがよく考えてほしい。$F_1$ とは 事実 $F_2$「これまで観察されたエメラルド全部が 例外なくグルーであった」であるともいえるではないか。ならば、主張 $S_2$「平成が終わっても新発掘されるエメラルドはグルーだ」もある程度正当化できるはずだ。そして、$S_2$ は、主張 $S_...

プロキシのある社内から利用できるjupyter notebook(GPU、EC2、ubuntu16.04、TensorFlow)の構築

プロキシのある社内から利用できるjupyter notebook(GPU、EC2、ubuntu16.04、TensorFlow)の構築 : はじめに 主に下記を参考にさせていただきました ubuntu 16.04が使いたかったので、その部分が違います Proxyが厳しい企業内からも利用できるJupyter NotebookをAWS上に用意する https://qiita.com/shunyas/items/3fa1a0f9e3287b6fb5bf AWSのGPUインスタンスでJupyter Notebookを実行する(Windows 2018/07版) https://qiita.com/nicco_mirai/items/1da092912adbce71b82b 一通りやるのに1~2時間ぐらいかかると思われます 手順 前提 利用環境 ブラウザの80と443しかポートがあいてない環境 AWSのアカウントがある AWSにブラウザで接続できる 構築環境 ブラウザのポート自由 AWSのアカウントがある AWSにブラウザで接続できる AWSにSSHで接続できる 1 利用環境でEC2の準備をする AWSに繋がる確認も含めて利用環境からサインインしてバージニア北部に移動します EC2ダッシュボードから、インスタンスの作成をします 「Ubuntu」で検索すると下記が表示されるので、これを選択してください Ubuntu Server 16.04 LTS (HVM), SSD Volume Type インスタンスタイプは p2.2xlarge を選択してください Volume Storage は20Gにしてください 2 構築環境でjupyter notebookのインストール 2-1 SSHで作成したEC2インスタンスに接続する puttyで接続する場合は、インスタンス作成時に保存したキーペアの.pemファイルを.ppkファイルに変換します 参考 pem ⇒ ppk 変換 https://qiita.com/naka46/items/3297242f3386b5f9e3dc AWSにログインして作成したEC2のインスタンスの「パブリック DNS (IPv4)」を調べputtyのHostに入力します ...

ElasticTranscoder VS MediaConvert

イメージ
ElasticTranscoder VS MediaConvert : 要件 1.ユーザーが動画をアップロードする 2.動画をHLSにエンコードする 3.HLSの動画を配信する どちらを使うか? AWSを用いた動画のエンコードをする時はどっちかを使うことになります。 MediaConvertはElasticTranscoderより幅広い種類のエンコードを対応しており超高画質の動画に対応するとかじゃない限り料金も安いです。 動画の結合や音声の差し替えなど高度な編集も可能です。 エンコードの処理時間も短縮されていますので基本的にはMediaConvertを選ぶべき。 AWSも推奨しています。 ただし、お互いできることできないことがあるので慎重選びましょう。 この記事が参考になると幸いです。 料金(2019/02/12) どれくらいの高画質にエンコードするかにもよりますが参考 ElasticTranscoder 0.034USD MediaConvert 0.0212USD 詳細はこちら https://aws.amazon.com/jp/elastictranscoder/pricing/ https://aws.amazon.com/jp/mediaconvert/pricing/ できないこと 全てではないですが自分が気になったとこ ElasticTranscoder ・高度な動画の結合などの高度な編集 ・H.265に対応していない ※H.265とは従来のH.264とくらべて圧縮率が2倍になっているので動画ファイルのサイズも大幅に削減されます、8Kにも対応しており今後の応用が期待されている ・エンコード結果はSNSにしか通知できない MediaConvert ・動画ファイルの暗号化のキーにKMSを利用できない ・動画の自動回転 ・WebM動画の作成 ・アニメーションGIFの作成 UI、管理しやすさ ElasticTranscoder シンプル 英語 MediaConvert ぱっと見でわかると思うがElasticTranscoderより大分使いやすい また、設定をテンプレートとして保存できるので管理もしやすい MediaConve...

「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード②

イメージ
「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード② : 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード② 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」を購入し、ただいま勉強中です。 これね↓ Puppeteer入門 スクレイピング+Web操作自動処理プログラミング 動かないサンプルコードがいくつかありますね。 のちのち使えそうなコードはせっかくなので修正して残しておこうと思いました。 まずpuppeteerについて 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード① の「まずpuppeteerについて」の項目をご覧ください。 7章の3,「ブログをPDFでバックアップする」 このサンプルも、アメブロがバックアップに対応していないので使えそうです。 しかし、どうも do { 処理 } while(true) の中に await Promise.all([ 処理 ]); があって、その中にpage.clickがあると途中でハングアップしてしまいます。 ワタシだけ? もしワタシだけなら無視してくだい。 修正箇所は///---修正---///の行、2箇所だけです。 /// 修正日(2019年2月11日)修正箇所は'///--修正--///'の行です const puppeteer = require('puppeteer'); const converter = require('convert-filename-ja'); const path = require('path'); const delay = require('delay'); /** * メインロジック. */ (async () => { // Puppeteerの起動. const browser = await puppeteer.launch({ headless: true, // true: Headlessモードで起動する. ...

「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード②

イメージ
「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード② : 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード② 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」を購入し、ただいま勉強中です。 これね↓ Puppeteer入門 スクレイピング+Web操作自動処理プログラミング 動かないサンプルコードがいくつかありますね。 のちのち使えそうなコードはせっかくなので修正して残しておこうと思いました。 まずpuppeteerについて 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード① の「まずpuppeteerについて」の項目をご覧ください。 7章の3,「ブログをPDFでバックアップする」 このサンプルも、アメブロがバックアップに対応していないので使えそうです。 しかし、どうも do { 処理 } while(true) の中に await Promise.all([ 処理 ]); があって、その中にpage.clickがあると途中でハングアップしてしまいます。 ワタシだけ? もしワタシだけなら無視してくだい。 修正箇所は///---修正---///の行、2箇所だけです。 /// 修正日(2019年2月11日)修正箇所は'///--修正--///'の行です const puppeteer = require('puppeteer'); const converter = require('convert-filename-ja'); const path = require('path'); const delay = require('delay'); /** * メインロジック. */ (async () => { // Puppeteerの起動. const browser = await puppeteer.launch({ headless: true, // true: Headlessモードで起動する. ...

AWS認定ソリューションアーキテクトプロフェッショナルを10日で取得する

AWS認定ソリューションアーキテクトプロフェッショナルを10日で取得する : はじめに AWS認定ソリューションアーキテクトプロフェッショナルにだいたい10日で合格しました。 一通り書いてから気づきましたが、 どうやって勉強するか より どうやって回答するか に重きをおいた記事になりました。 3行で 普通の資格試験と思うな普通免許試験だと思え とにかく英語で一次資料読め 過去問はベースロードにはなるが過信はするな Who am I AWSの実務経験は約1年 ソリューションアーキテクトアソシエイト(新テスト)のスコアは865。 受験日は、2019.01(Retiring 2019=旧テスト) プロフェッショナルのスコアは83%(90%は遠い) 総合成績: 83% 分野別の成績 : 1.0  High Availability and Business Continuity: 90% 2.0  Costing: 100% 3.0  Deployment Management: 71% 4.0  Network Design: 71% 5.0  Data Storage: 72% 6.0  Security: 78% 7.0  Scalability & Elasticity: 100% 8.0  Cloud Migration & Hybrid Architecture: 85% 普通の資格試験と思うな普通免許試験だと思え その前に。 アソシエイトも同様ですが、とにかく日本語の翻訳精度が悪いです。(AWS Japanさんお願いします) 単純に直訳したと思われる翻訳(例:EC2フリート、EC2作業者)等もありますが、 ひどいものだと否定文が肯定文になっている時があり、選択肢に答えが無いときがあります。 80問を170分で回答する必要があるため、とにかくスピード勝負なのに、これはキツイ。 対応策は2つ。 英語が得意な人 最初から英語で受験しましょう。切り替えの手間が省けます。 英語が苦手な人 日本語があることに感謝し日本語で受験しましょう。 なんとなく問題文に違和感があったときは、 画面上部の「日本語」と書かれたリストボックスを選択し「English」に切り替え...

「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード③

イメージ
「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード③ : 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード③ 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」を購入し、ただいま勉強中です。 これね↓ Puppeteer入門 スクレイピング+Web操作自動処理プログラミング 動かないサンプルコードがいくつかありますね。 のちのち使えそうなコードはせっかくなので修正して残しておこうと思いました。 まずpuppeteerについて 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード① の「まずpuppeteerについて」の項目をご覧ください。 7章の6,「ブログの画像を保存する」 これも 「Puppeteer入門ースクレイピング+Web操作自動処理プログラミング」の動かないサンプルコード② と同じです。do { 処理 } while(true)の中にawait Promise.all([ 処理 ]);があって、その中にpage.clickがある。そのせいか?ループ途中でハングアップします。 解決方法も同じ。 const nextに、セレクタオブジェクト'a[rel="next"]'を代入するのではなく、そのhref属性(リンク先URL)を代入。'a[rel="next"]').href。 そしてPromise.allの中で、page.click()ではなくpage.goto()を使う。です。 したがって修正箇所はほんの2箇所です。 /// 修正日(2019年2月11日)修正箇所は'///--修正--///'の行です const puppeteer = require('puppeteer'); const path = require('path'); const request = require('request'); const { promisify } = require('util'...

vue.jsでlazyload

vue.jsでlazyload : メモ カスタムディレクティブでlazyloadの処理を定義する 以下を参考に https://jp.vuejs.org/v2/cookbook/creating-custom-scroll-directives.html import Vue from 'vue' Vue.directive('lazyload', { inserted: function (el, binding) { let f = function (evt) { if (window.scrollY + window.innerHeight > el.offsetTop) { el.setAttribute('src', binding.value) window.removeEventListener('scroll', f) } } window.addEventListener('scroll', f) f() } }) imgタグに設定する <template> <div> <template v-for="src in imageList"> <img src="~/assets/images/loading.gif" v-lazyload="src" > </template> </div> </template>

自己紹介 - この時代にメインフレームでCOBOLやってる俺が転職を目指してRuby on Railsを勉強してみるブログ

イメージ
自己紹介 - この時代にメインフレームでCOBOLやってる俺が転職を目指してRuby on Railsを勉強してみるブログ : 自己紹介 - この時代にメインフレームでCOBOLやってる俺が転職を目指してRuby on Railsを勉強してみるブログ 初めまして。 僕は今大手ユーザー系SIerでメインフレームを担当している社会人3年目です。 そんな僕は現在身を置いているSI業界を辞めることを決意し、手始めにUdemyでRailsの勉強を初めています。このブログはその学習の記録を残していきたいと思います。 この記事ではまず自己紹介をさせていただこうと思っています。...

格安SIMに乗り換える前にチェックしておきたい注意点:ITコンシェルジュ - Engadget 日本版

イメージ
格安SIMに乗り換える前にチェックしておきたい注意点:ITコンシェルジュ - Engadget 日本版 : 格安SIMに乗り換える前にチェックしておきたい注意点:ITコンシェルジュ - Engadget 日本版 1)通信速度が遅くなることがある大手携帯電話会社であるNTTドコモ、au、ソフトバンクは、自社の通信回線網を所有している企業「MNO(移動体通信事業者)」です。一方、「格安SIM」(あるいは格安スマホ)と呼ばれるサービスの大部分は、MNOが所有する通信回線網の一部を借りて提供されています。このようにMNOの回線の...

地球が回転する球体ではない200の証拠|福音と真理

イメージ
地球が回転する球体ではない200の証拠|福音と真理 : 地球が回転する球体ではない200の証拠|福音と真理 エリックさんの無料ebookをダウンロードして、読んでシェアしてね。 ”地球”が自転する球体ではない200の証拠! PDF 200 Proofs Earth is Not a Spinning Ballこの35ページの写真画像と図解で埋め尽くされたebookは物議を醸しだして、あなたの友人や家族を陰謀論のイゼベル母なる巨悪の存在に目覚めさせるための完璧なツ...

.appという画期的でセキュアなgTLDについて - Lento con forza

イメージ
.appという画期的でセキュアなgTLDについて - Lento con forza : .appという画期的でセキュアなgTLDについて - Lento con forza .appというgTLDをご存知でしょうか。gTLDはgeneric top-level domainの略後で、ICANNが管理しているトップレベルドメインのことです。 有名どころでは.comや.net等があります。このブログのURLは https://kouki.hatenadiary.com ですが、この.comの部分がトップレベルドメインです。*1 このトップレベルドメインはICANN...

Hugoテーマ「viBook」を使ったCSS組版(前編) - Qiita

イメージ
Hugoテーマ「viBook」を使ったCSS組版(前編) - Qiita : Hugoテーマ「viBook」を使ったCSS組版(前編) - Qiita Hugoテーマ「viBook」について Goで書かれている静的サイトジェネレーターHugoと、CSS組版ツールであるVivliostyleを組み合わせ、複数のMarkdownファイルからPDFを作るのを便利にするためのテーマを作成した。よしなによろしく。 主な特徴 複数のMarkdownファイルからHTMLやOPF、ナビゲーションを自動生成。 Hugoの快速...