.NET とか Node.js で KeyVault を触る

KeyValult の値をコードから触りたい場合。 .NET の場合 こうする。 var client = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(new AzureServiceTokenProvider().KeyVaultTokenCallback) App Service からは MSI で認証しにいく*1。ロー…

膝上キーボード

ここ半年くらい、仕事中はキーボードを膝上に置いている。 板状のものはこれ。 イーサプライ 膝上テーブル ノートパソコン タブレット 15.6インチ ラップトップテーブル 木目調 EZ2-HUS006 出版社/メーカー: イーサプライ メディア: オフィス用品 この商品を…

Table Storage でバッチ処理

Azure の Table Storage を .NET から扱う場合は Microsoft.WindowsAzure.Storage 1 が利用できる。その中でバッチ処理についてメモ。 単一のテーブルにバッチ処理を行いたい場合は TableBatchOperation クラスを使う。 var entities = GetEntities(); var o…

フロントエンドのビルド周りを触った

半年前になるが、年末から年始にかけて業務でフロントエンドのビルド周りを初めてがっつり触ったのでメモ。最新技術みたいな話は特に無いのであしからず。 (この「フロントエンドのビルド周り」を表す言葉って無いんだろうか) 今回書くこと JavaScript Babel…

シベリウス 交響曲第2番 第2楽章 の無慈悲さ

まず、このシンフォニーは第1楽章冒頭で奏でられる、上昇する3つの音がモチーフとして全体を支配している。第2楽章も例外でなく、ファゴットの第1主題もこのモチーフから始まる。 たぶん、この楽章で上昇形は希望、下降形は絶望を描いている。冒頭は無感情に…

ホルンのウォームアップ

週末ホルニストは(ホルンに限らないだろうが)、合奏前の短いウォームアップでいかにベストコンディションに近づけられるかが重要です。 ウォームアップで重要なのは、音を出すことで体を暖めること。そして、自分のコンディションを確認すること。 集中力…

ドラッカーによるイノベーションの7つの機会

年末年始にドラッカーのイノベーションと企業家精神を読んだ。面白かったがが頭の中で整理しきれなかったので、その中から「イノベーションの7つの機会」をまとめてみる。 あるイノベーションは、いずれかの機会のみによって生まれるとは限らず、複数の機会…

ひとり Advent Calendar を振り返る

ひとりでやる Advent Calendar 2017 - Adventar 最終日。見切り発車で始めたものの、なんとか最後までたどり着いたのでほっとしています。まとまった時間がとれなかったために当初考えていた重めのテーマがいくつか書けなかったのが心残り。でも、しばらく放…

音楽をどのように好きか

ひとり Advent Calendar 24日目、きょうはポエムです。 音楽が好きだ。詳しくはないが。 俺はどう音楽が好きなのか、昔から考えていたけど、ここ数年で安定してきた。それは、俺は音楽に憧れ、音楽になりたいということだ。

いろいろな Web フロントエンドの技術

最近フロントエンドのあれこれに触ることが多い。フロントエンドといえば諸々のつらみとの戦いである。それらを解決するいろんな技術があるがいろいろありすぎてとっつきづらいので各技術が何を解決したいのかまとめてみた。 各技術の詳細は、それぞれ詳しい…

Node.js で Elasticsearch にクエリ

Elasticsearch の公式クライアントで叩く。 const elasticsearch = require('elasticsearch'); const client = new elasticsearch.Client({ host: 'http://localhost:9200' httpAuth: 'user:password' log: 'trace' }); client.search({ index: index, type:…

Array.prototype.reduce() に親しむ

JavaScript の配列に reduce という関数がある。 MDM のドキュメント によると以下のように書かれている。 arrayObj.reduce(function(previousValue, currentValue, index, array){ // ... }) previous とか current いわれてもよくわからん。。 ただ、感覚…

Node.js × TypeScript 勉強中 (2)

Node.js × TypeScript 勉強中 - take a keen edge から続いた。 JavaScript の拡張メソッド (って呼ぶの?) 書くときはこうなる。 Array.prototype.chunk = function (size) { if (!this.length) return []; return [this.slice(0, size)].concat(this.slice…

打ち合わせで実現したいこと

良い打ち合わせは自然とは生まれないものです。自戒の意味も込めて考え直してみました。 参加者と、いわゆるファシリテーターの役割がごっちゃになっているので注意が必要かもしれません。 目的を明確にする 何のために集まっているか? 情報を知ってもらう …

ドヴォルザークの序曲「オセロ」について

ドヴォルザークの序曲「オセロ」作品93は、ここ数年で出会ったクラシック曲の中で断トツに好きな曲だ。 youtu.be この曲は序曲3部作の3曲目らしい。2曲目はドヴォルザークの作品の中でも有名な「謝肉祭」。アマチュアオケの演奏会情報を掲載されている i-Ama…

Elasticsearch でつまづいた話 (5)

Bucket Selector Aggregation というのがある。Terms Aggregation を柔軟にしたようなもので、「あるフィールドで特定の条件を満たすレコードの単位で集計」というような記述ができる。 下の例では 2 つのフィールドをまたがって条件を指定している。 { "buc…

Node.js × TypeScript 勉強中

Node.js × TypeScript の勉強中。いずれも触るのはほぼ初めてです。各種チュートリアル記事を読んで試していますが、「このおまじないは何?どっからきたの?」状態なので、今回疑問に思ったことがそれぞれがどの文脈に帰属する問題なのか (Node.js / TypeSc…

仕事中のBGM

昨日の仕事中の BGM - tom-manabe’s kiroku に触発されて、仕事中にきく BGM について。 私は仕事中はほぼエレクトロニカかアンビエントか、できるだけ感情が動かないような曲を聴きます。だいたい垂れ流しなのですが、たまに凄い刺さるアーティストに当たる…

Elasticsearch でつまづいた話 (5)

Elasticsearch でつまづいた話 (3) - take a keen edge のページング取得では、1回 scroll して、戻り値から次の scroll id を取得して、もう一度クエリを投げて... だったが、せっかくスナップショットをとっているのであれば並列で取得しにいきたいのが当…

今年読んだ本を総括

28冊。夏~秋にあまり読んでいなかったようだ。 ベストは終盤に滑り込んだ「失敗の科学」かな。「脳はなぜ都合よく記憶するのか」も面白かった。 来年は小説に力を入れていきたい。 技術書だとモデリング関係の書をもう数冊読みたい(実践しなきゃ意味ないと…

今年知って惚れたバンド(アーティスト)

4ユニットと1人。ほとんどは以前から活動している。 AL youtu.be andymori が再びバンドを組むときいて飛びついたけど小山田壮平と長澤知之のツインボーカルにかなり戸惑った。でも、これがこの2人にしかできない音楽だった。andymori 時代の小山田が歌う「…

同時実行するときのコレクション

C#

以下を実行すると、ArgumentException になったり result が歯抜けになったりする。 var result = new Dictionary<int, int>(); Parallel.For(0, 10000, i => { result.Add(i, CalculateSomething(i);); }); これは Dictionary がスレッドセーフでないため。 Concurren</int,>…

vue.js でつまづいた話 (1)

Elasticsearch に引き続き vue.js でつまづいた話。続くかどうかはわからない。 v-bind で、バインドする内容を動的に切り替えたいときの話。 公式ドキュメント のとおり、 v-bind:class では以下のように記述すると isActive や hasError の真偽値でバイン…

無作為抽出のトリック

この記事で、「ある集合の上位 5% を 95% の確率で選択するためには、全体のデータ数によらず 59 件取得すれば十分である」という命題を使用しました。これを証明しましょう。 集合 U の部分集合 Q があり、 Q の要素数は U の要素数に対して割合が p だとし…

会社の創業記念パーティのBGMを振り返る

弊社の Advent Calendar ネタにするつもりだったが、その前の流れがみんな真面目だったのでお蔵入りにしかけた内容。 今年の6月に会社の創業記念パーティがあり BGM を選曲したので振り返る。一晩で選んだので投げやり感もあるがご愛嬌。あと「音楽好きです…

いま修論を振り返る

この記事は Sansan Advent Calendar の9日目です。 約5年前、修士時代にやってた機械学習の研究の話をします。この分野で5年前といったら化石のような内容かもしれませんが、いま思い返してもなかなか面白いテーマでした。ちなみに普段の私の業務では機械学…

Elasticsearch でつまづいた話 (4)

前回に引き続きページング取得の話。 Aggregations でページング Terms Aggregations したとき、キーが多すぎる場合に分割して取得したい。そんなときは Partition に区切って取得することになる。 { "size": 0, "aggs": { "aggregation_name": { "terms": {…

Elasticsearch でつまづいた話 (3)

今回のテーマはページング取得。 Query したときの件数 RDB の発想だと SQL select * from table したら全件取得されるのが当然だが Elasticsearch だと何も指定しなければ 10 件までしか取得されない。 size を指定するとこれを大きくできる。 { "size" : 1…

ASP.NET のセッションと同時実行

ASP.NET で複数リクエストからセッションを扱おうとすると困ったことになるよという話。 SPA とかだと、画面からいろんなリクエストを非同期で飛ばして、パーツごとに表示することがある。 そんなとき、たとえば認証情報をセッションから取得して、その情報…

正解率の高い予測が必ずしも良い予測ではない

タイトルのとおりなんですが、何かしらの予測に対してその良さを語るために「正解率90%」とか「精度90%」とかよく表現されますね。 で、今回は「正解率が高ければ良いというわけじゃない」という話です。 正解率 (accuracy) 正解率の定義は、当然、正解数を…