たにしきんぐダム

プログラミングやったりゲームしてます

tech

Tests as Documentation

production code の設計についてはよく議論される一方、ユニットテストをどう書くべきかについてはあまり議論されることが少なく。とにかくカバレッジが高ければヨシみたいな感じで軽く扱われていることが多い気がする。 その結果、テストを書くときやとりわ…

Scala3 Interactive Compiler API で遊んでみる

この記事は Scala Advent Calendar 2020 - Qiita 18日目の記事です。 完全に自分用のメモなのですが、コンパイラ周辺ツールの Scala3 対応に備えて、dotty の interactive compiler API の使い方を一部学んでみたのでその学習メモを残しておく。 今回試した…

Scala の開発環境構築 2021

特に意味はないけどおしゃれかなと思って貼ったスクショ Scala Advent Calendar 2020 - Qiita 3日目です ここ2,3年の間にScalaの開発ツールチェーンは進化を続けていて、Scalaの開発体験はめちゃくちゃ良くなってきています。例えば、数年前だと IDEは基本的…

Coursera / Sequence Models (week2) 受講メモ (Natural Language Processing & Word Embeddings)

Deep Learning Specialization 5つ目のコース www.coursera.org Coursera / Neural Networks and Deep Learning 受講メモ - たにしきんぐダム Coursera / Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization 受講メモ…

Coursera / Sequential Model (week1) 受講メモ (RNN/LSTM/GRU/BiRNN/DeepRNN)

Deep Learning Specialization 5つ目のコース www.coursera.org Coursera / Neural Networks and Deep Learning 受講メモ - たにしきんぐダム Coursera / Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization 受講メモ…

Coursera / Structuring Machine Learning Projects 受講メモ

Deep Learning Specialization 3つ目のコース www.coursera.org Coursera / Neural Networks and Deep Learning 受講メモ - たにしきんぐダム Coursera / Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization 受講メモ…

Coursera / Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization 受講メモ

データの正規化、様々な正則化手法、gradient descent with momentum や Adam などによる学習の高速化、batch-normalization、gradient checking、ハイパーパラメータチューニングの基本的な手法など。振り返ってみるとかなり盛り沢山な内容だった。jupyter …

Things happening before start coding with Metals ~behind the curtain of daily coding~ #ScalaTokyo でLTしました

Scala Tokyo 2020/09/25 開催の scala.tokyo で Things happening before start coding with Metals ~behind the curtain of daily coding~ という気取ったタイトルのLT(10分)をしました。 イベント主催の皆さん、21時を回っていたのに僕の発表を最後まで聞…

Coursera / Neural Networks and Deep Learning 受講メモ

Deep Learning を勉強しようと思い、Coursera の Deep Learning Specialization を受講し始めた。 ある手法がうまくいく/うまくいかないことのイメージを説明してくれたり、実装に際してのtips and tricksも教えてくれるのが良い。 解析や線形代数を知らない…

プレーンな Aho-Corasick を実装したけどそんなに早くなかった

TL;DR TypeScript で Aho-Corasick を実装しました https://github.com/tanishiking/aho-corasick-js ベンチマークとってみたところだいたいのケースで普通のTrieで複数パターンマッチするほうが早かった https://github.com/tanishiking/aho-corasick-bench…

2019年12月と2020年1月のOSS活動記

レビュー結構やってました 英会話とか仕事がちょっと忙しかった metals結構わかってきた。 scalameta/metals #1174 Sort auto-completed exhaustive match'es by declaration order sealed abstract class Test case object Foo extends Test case object Ba…

良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました

jpp というJSON Pretty-Printer を作りました。 github.com このコマンドはJSONを要素ごとに1つ1つ改行するのではなく、画面内(もしくは指定した幅)に収まる限りできるだけ改行を挟まずに要素を表示します。 そのため、例えばarrayの中身に大量の要素が入っ…

Instant scalafmt startup using SubstrateVM

github.com scalafmtはscalametaを利用したscalaのコードフォーマッタです。intellij plugin・sbt plugin・cli・mavenやgradle plugin といった様々な形で提供されており vim-autoformatなどを用いてvimからフォーマットを実行したり https://scalameta.org/…

ScalaMatsuri 2018 / OSS Hackathon に参加しました

ScalaMatsuri 2018|日本最大級の Scala のカンファレンス 2018年3月16日(金)の Scala OSS ハッカソン / 2018年3月17日~18日の Scalamatsuri2018 に参加しました。楽しかった! OSS ハッカソン blog.scalamatsuri.org ソイヤッて申し込んで良かった。scalike…

Bitcoin SPV Wallet を Golang で実装してみた

Golang と Blockchain 技術の勉強に、こちら の記事を参考にして Bitcoin の SPV Wallet を Golang で実装してみました。 github.com 結構雑ですが、とりあえず以下のことができます。 Bitcoin Address の生成 UTXOをかき集めて残高を計算 UTXOをかき集めて…

Golangで簡易的ワーカー/ジョブキュー

goroutineの数を制限しつつ並列にジョブを実行したい ジョブは定期的に投入できたい ジョブが空っぽになっても終了しないで欲しい SIGTERMとか送ったら実行中のジョブが完了するまで待ってから終了してほしい というようなものが欲しくなることが最近よくあ…

JavaScript とクロスブラウザでの IME event handling (2017年)

この記事は CAMPHOR Advent Calendar 2017 22日目の記事です。 昨日は @ryota-ka による Type-level TypeScript - ryota-ka's blog でした。 CompositionEvent が多くの主要ブラウザでサポートされた2017年冬なら、JavaScriptで日本語入力に対応したちょっと…

Python機械学習プログラミング を読んだ

機械学習に入門しようと思い、重い腰をあげて実践的な入門書として評判が良さそうだった「Python機械学習プログラミング」を読みました。 この本を読んでやっと機械学習分野の全体像がうっすら見えてきて、やっと入り口に立てたなと思います。読んで本当に良…

ISUCON7予選敗退した

ISUCON7 開催&日程決定! #isucon : ISUCON公式Blog (開催から2週間も経ってしまった...!)(ポエミーな感じです) ISUCON7予選に id:astjとid:aereal と id:tanishiking24 との3人で「秒速5000兆クエリ」というチームを組んで参加しました。最終スコアは 9203…

トランザクション技術とリカバリとInnoDBパラメータを調べた

トランザクションはACID特性を満たすと言われている。 そのうちA(Atomicity)はトランザクション内の操作をAll or Nothingとなるよう保証し、トランザクションが中途半端に実行されて(アプリケーションレベルから見た)データの整合性が失われることを防ぐ特性…

Pythonでの文字コードの取り扱い

定期的にこの手の記事が上がってる気がするけどあげていく。 unicode型とかstr型とかいう言い方するとわかりにくいけど、データの実体がどういうものかわかってれば理解しやすいよね。 参考 Python - ドキュメント - Unicode HOWTO プログラマのための文字コ…

Scala関西Summit2017に参加/LTしました #scala_ks

参加しました!今年は4トラックもあってScalaコミュニティの盛り上がりを感じる良いイベントでした。 https://skug.connpass.com/event/62304/ ついでにScala製インタプリタをブラウザで動かす3分クッキングというタイトルでLTもしてきました。 今年のトーク…

JSで CodePoint 数えたい

ここで一句 JSで文字列を16bit単位ではなくUnicode Code Point単位で数える方法はいくつかあるが、結局2017年5月時点で(IE11のようなブラウザも含めて)ほとんどの環境で動作する方法はどれなんだろう。調べたのでまとめておきます、ご指摘あればどしどし(ง ‘…

Coursera の Algorithms on Strings 受けました

Cousera の Algorithms on Strings を受講していて、平日にお昼ご飯食べながらビデオを見たり休日とかに課題をやったりしていたのですが先日完走しました!(講義は4週分なのですが忙しかったり難しかったりで2ヶ月くらいかかってしまった) お金を払うと課題…

JS知識ほぼ0からTypeScript入門してる

この記事は CAMPHOR- Advent Calendar 2016 23日目の記事です。 JS知識ほぼ0は言い過ぎかもしれないが、いわゆるモダンJSというものには縁遠く、つい最近まで jQuery をブラウザからぽちぽちダウンロードして適当に ajax とか使う人生を送ってまいりました。…

WartRemover で Scala を静的解析

この記事は CAMPHOR- Advent Calendar 2016 7日目の記事です。 WartRemover は Scala のASTレベルの静的解析ツールで、WartRemover に組み込まれているパターンに加えて、自分で定義したパターンをビルド時に検出することができます。 これを使えばscalacは…

Scala関西勉強会でscala.Eitherとscalaz.\/の違いを話してきた

Scala関西勉強会で scala.Eitherとscalaz.\/ の違いについて話してきました! connpass.com この話題、ブログとか漁ってみると3年前あたりに活発に議論されてる話だった... 僕自身for式の中でパターンマッチさせようとしてハマったものの(僕の検索能力の低さ…

空間インデックス(R-tree)入門

R-treeとは空間データを効率良く検索するためのインデックス構造。R-tree について調べたのまとめておく。 目次 目次 参考資料 ナイーブな例 R-tree の概要 各ノードの要素数 参照処理 点検索 範囲検索 データの挿入・削除 挿入処理 ノードの分割 Exhaustive…

Scala でジェネレータを作ったり、遅延評価してみる

メリークリスマス!!!!!! この記事は CAMPHOR- Advent Calendar 2015 の25日目の記事です. Scala はまだ始めたばかりですがとりあえずジェネレータ作ったり遅延評価してみようと思います. これまでの流れ Ruby の Enumerator でジェネレータを作ったり…

readコマンドで 矢印キー や Ctrl+x などの入力を読み取る

この記事は CAMPHOR- Advent Calendar 2015 の2日目の記事です. シェルで標準入力を読み取るコマンドといったらreadコマンドがあります. readの概要 read Man Page | Bash | SS64.com readコマンドはシェルの組み込みコマンドで 標準入力を読み取り 改行文字…