仕事中の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) 正解率の定義は、当然、正解数を…

いろいろな交響曲第1番

作曲家にとって交響曲第1番はロックバンドにおける 1st アルバムと同じ。 Oasis の Definitely Maybe だし、 Weezer の blue album だ。 今回は、偉大なる作曲家たちの交響曲第1番を振り返ってみる。セレクションは適当です。 L. v. ベートーヴェン www.yout…

Elasticsearch でつまづいた話 (2)

今日のテーマは複数の Nested Field があるときの Aggregations 。 Nested Field とは 日本語での説明は このあたり に譲るが、簡単に言うと親子関係が維持された Array である。データの見た目は Array と同じだ。 "user" : [ { "first" : "John", "last" :…

Elasticsearch でつまづいた話 (1)

一人で Advent Calendar をやる。 テーマは決めてない。技術か音楽の話が大半になりそうだ。 いまのプロジェクトで Elasticsearch を使っている。そのなかで、知ってたらそりゃ当然なんだけど、はじめ概念として理解できなかったことが色々あったのでまとめ…

ユーザーストーリーマッピング

ユーザーストーリーマッピングを読みました。 ユーザーストーリーマッピングの方法論よりも、とにかく会話する、作るものを減らすことを論じています。 ドキュメントが正義じゃない、バックログを上から消化するのが正義じゃない、というのは私もぼんやりと…

パセラのコワークに行ってきた

パセラのコワーク 東新宿に行ってきた。なかなか快適だったのでメモ。 快適ポイント ディスプレイ借りられる 15インチのWXGAだったかな。 変換ケーブルもあったが、不足気味だった。 コーヒー、ミネラルウォーター飲み放題 コーヒーはもちろん豆から挽いてる…

Productivity Engineering − Forkwell Meetup #4

【増枠!】Productivity Engineering − Forkwell Meetup #4 - connpass に参加したメモ。 チーム開発、改善のフローをどうやって回すかが大事。改めて感じた。 あとなんだかんだで、リモートとかで顔を合わせないことによるデメリットはなかなか埋められない…

Code IQ 感謝祭メモ

落合陽一さん、澤円さん、ちょまどさん登壇決定!CodeIQ感謝祭~聞いて触って感じるデジタルアートな1日!~ #codeiq39 : ATND に参加したメモ。全然まとまってない。すみません。 前回までは「第n回」と銘打っていたけど、今回は無いらしい。 落合さん、胡…

【翻訳】「イベント駆動」と言ったら、あなたは何を指しますか?

この記事は、Martin Fowler 氏の What do you mean by “Event-Driven”? を翻訳したものです。 もともと Serverless Architectures を翻訳しようとしていたのですが長すぎて諦めました。。 イベント実施状態転送 (Event-Carried State Transfer) の訳がイマイ…

目的を意識していますか

会社の新人くんから、「常に目的を意識していますか?」と聞かれた。 そのときは「している時もあるし、していない時もある」と答えたが、振り返ってみるとなんだかすっきりしないので一人で考えた。 この問いは、(私にとっては)二つの観点があると気づい…

JavaScript で連続値からカラーコードに変換する

Number の値から赤さを変えたいことがあったので書いてみた。 Number.prototype.toString(radix) なんてあるのね。便利。 でも線形だとイマイチな気もする。あと真っ赤になるのも芸がない。 jsfiddle.net

[ASP.NET MVC] Controller から Json を Camel Case でシリアライズして返す

C#

public class User { public string Id { get; set; } public string Name { get; set; } } public class DefaultController : Controller { [HttpGet] public ActionResult GetPerson() { IEnumerable<User> users; // DB からとってきたりする return Json(users</user>…

画像の解像度を変換する

C#

【注意】画像エンコードのことは全然詳しくないので、本質的に正しいやり方なのか不明。 System.Drawing.Image で読み込んで .SetResolution してもいいのだが、 var image = Image.FromFile(path); image.SetResolution(dpiX, dpiY); System.Drawing は ASP…

2016年に読んだ本から再読したいものを5冊挙げる

去年に引き続き。 自分の中に毒を持て―あなたは“常識人間"を捨てられるか (青春文庫) 不連続的に人生を変えるレベルの一冊。迷ったら困難な方を選べ。困難は、経験して必ずしも成長するわけじゃない。困難を味わうことが人生の醍醐味だ。……なんて書いていた…

定期的に GitHub API を叩いて Slack にポストしたい (3)

最終回 メッセージを Slack に投げる function sendToSlack(message, attachments) { var url = "https://slack.com/api/chat.postMessage"; var token = "token" // Slack のアクセストークン var channel = "#channel"; // 投稿する先のチャンネル var tex…

定期的に GitHub API を叩いて Slack にポストしたい (2)

前回 では PR 一覧を取得したが、ラベルでの絞込やコメントが追加されたかどうかを判定できていなかった。 PR のラベル、コメント数を取得 PR 取得の API ではラベルとコメントを取得できないので別途 API をたたく。 /// ある PR に付与されたラベルを取得…

定期的に GitHub API を叩いて Slack にポストしたい (1)

発端 GitHub でレビューコメントきたら Slack に通知ほしい かといって全部のコメント通知されてもウザい 定期的に GitHub をみにいってコメントが増えてたら Slack に投げる、みたいなの bot を作ろう 全3回の予定。 調べた 「GitHub Slack」で検索すると大…

TransactionScope のネスト

C#

System.Transactions.TransactionScope は Complete を呼ばない限り Dispose されたときにロールバックしてくれる。 テストとか例外処理とかで便利だ。 using (var ts = new TransactionScope()) { // DB に書き込み ts.Complete(); } ネストしてもつかえる…