motacaplaのめう

日頃得られた知見と気付きをdumpするところ

2023年の雑感

今年の振り返り 相変わらず記事の投稿は継続できていませんでしたが、2023年について振り返ろうと思います。 今年もあと数日で終わってしまいます。年々早くなっているように感じます。 変わったこと 今年の春に入籍しました。 仕事 特段何か新しいことをや…

AI競馬予想マスターズ2023に参加しました

netkeiba主催のAI競馬予想マスターズ2023という大会に参加しました! yoso.sp.netkeiba.com 競馬AIを作っている人々が集まって、競い合う大会です。 予選1, 2を通過した参加者が集められ、各予選で稼いだ金額を元手に本戦で競い合うというルールでした。 詳…

競馬における期待値 (EV) と資産 (BR) あたりの掛け金の考察

投資において、資産 (BR) の何%をリスクに掛けるかは非常に重要な問題である。 この割合を間違えると破産しかねるし、逆に複利をうまく活かしきれないことにもなりかねない。 どちらも損失である。 競馬の馬券購入にも同じ考えが当てはまる。今回は単勝と複…

2022年の雑感

今年の振り返り 今年も特にブログを書いてなかったので、1年越しの投稿となりました。皆様、いかがお過ごしでしょうか。 去年と比べ、働く環境が変わったり趣味が増えたりと激動の1年だったように思います。 仕事 4月から現職のサイボウズでWebエンジニアと…

2021年の雑感

今年の振り返り をしていこうと思いましたが、驚くことに、前回の記事から1年が経とうとしているようです。 今年も起こった出来事や仕事、趣味などについて、覚えている範囲で書き起こそうと思います。恐らく趣味ばっかりになると思います。 昨年たてた目標…

2020年の雑感

今年の振り返り をしようと年を越す1時間半前に思い立ったので、今年起こった出来事や仕事、趣味などについて、覚えている範囲で書き起こそうと思います。 2020 weed 1~3月 所属している会社で新規決済フローの開発に携わらせて頂いたりしていました。他には…

Effective Javaを読んでまとめてみる その2

Item6 : 不要なオブジェクトを作らないこと 極力immutableにすること ng String s = new String(hoge); ok String s = "hoge"; また, static factory methodsを使ってもimmutableなオブジェクトを作ることができる. ng 正規表現のmatchs() は呼ばれる度に内…

Effective Javaを読んでまとめてみる

はじめに 秋からの業務でJavaを書くこととなった. Javaを使う上での best practiceを学びたいと思い, おすすめされたEffective Javaを読み始めた. 著者の主張を自分なりに解釈してまとめることとする. 項目数が100近くあるので, いくつかに分ける. Item 1-5 …

Sort-Tile-Recursive (STR) algorithmの論文についてまとめてみる

これは何? Sort-Tile-Recursive (STR) algorithm に関して日本語・英語で説明された記事がなかった (+英語で書かれたスライドが間違っていた) ため, 原論文を読んでまとめることとした. Sort-Tile-Recursive (STR) とは? R-treeと共に用いられるpacking algo…

今更ながらJavaでSortアルゴリズムを実装した

はじめに Javaに親しむ一貫として、有名なSortアルゴリズムを3つ実装してみた。 今回実装したのは、QuickSort、BucketSort、MergeSortの3つ。 (ジェネリクスの扱いになれてなくて、結局int型配列で実装した) package motacapla.lib; public class Sort<T> { pri</t>…

合意プロトコル(Consensus Protocol)についてまとめてみる 第3章 3-phase commit (3PC)

この記事は何? 下記の続編で、3記事目である。 tikeda-meu.hatenablog.com というわけで今日は3-phase commit (3PC) についてまとめてみる。 3-phase commit (3PC) とは commitまでに3つのフェーズが存在し、それらをpassした時にのみcommitする、そうでなけ…

合意プロトコル(Consensus Protocol)についてまとめてみる 第2章 2-phase commit (2PC)

この記事は何? 下記の続編である。今回は2 Phase Commit (2PC) についてまとめる。 tikeda-meu.hatenablog.com 2-phase commit (2PC) とは 2PCはatomic commitment protocol (ACP) の一種である。このatomic commitとは、"変更"操作の集合として処理が実行さ…

Dependency Injection (DI) について入門した話

これは何? 「Dependency Injection (DI) を知ってますか?」と聞かれ、何も分からなかったので調べてまとめました Javaでコードを書いてみたので、参考になればと思います DIとは DIは"あるクラスが他クラスのオブジェクトを引数で受けとる"ようなソフトウェ…

合意プロトコル(Consensus Protocol)についてまとめてみる 第1章 概要と背景知識について

この記事は何? 分散環境下において合意を取るためのプロトコルがいくつか存在するので、それらを簡単にまとめることとする。 ※分散システムの勉強を兼ねて書いておりますので、間違い等ありましたらご指摘頂けると幸いです。 利用用途 分散合意プロトコルは…

ABC130に参加して冷えた話

はじめに 更新をサボり気味なので、これから毎週コンテスト後の感想を綴っていこうと思います。 2完しか出来ずに氷河期を迎えた(茶パフォ)、前回稼いだレートは消えました。 Contest Result - AtCoder A問題 お決まりのif文知ってますか問題、変数の名前は…

忙しい人のためのRedisチュートリアル

この記事は何? RedisConf19参加にあたり, Redisのdocsをしっかり読み込んだことがなかったため実施した. 量が多いため, 途中から要約だけ載せる.(疲れたので) https://redis.io/ なお, 現時点でのlatest stableはRedis v5.0.4である. commands データ型はstr…

ABC118 に参加した話

問題 下記リンク atcoder.jp 解答 A問題 cin >> a >> b; if(b%a == 0) cout << a+b << endl; else cout << b-a << endl; B問題 mapに挿入、n個あるものをカウントして出力 int k[31], a[31][31]; map<int, int> mp; int main(void){ ios_base::sync_with_stdio(false);</int,>…

ABC097 D Equals を解いた話

最近更新できていないので、競プロネタを投稿。 下記の問題を解説ACした。 D - Equals 問題 整数x [1, N]を適当に並び替えた順列p_1, p_2, ..., p_NとM個の整数ペア(x_1, y_2), ..., (x_M, y_M)が与えられる。 与えられた整数ペアを用いて、 swap(p_x, p_y)…

日本語形態素解析エンジンKuromojiについて調べた

はじめに とある事情(仕事)により、日本語の形態素解析エンジンKuromojiについて調べる必要があったので、ドキュメントとコードを読み込んだ。 形態素解析とは、ものすごく簡単に言うと、文章をその構造や品詞に細かく分解することです。分解された単位をト…

AtCoder Beginner Contest 109 に出場した

はじめに こんばんはtikedaです。 先週の9/8(土)にAtCoderのABC109が開催されたので、久々に出場しました。 最近、競プロのモチベがダダ↓↓↓だったのですが、@chokudaiさんにtweet(以下参照)を「いいね!」されてしまい、出ることに... もちべあがってきた今…

NoSQLについてまとめてみる 〜後編〜

DB

前回からの続きです。 tikeda-meu.hatenablog.com NoSQLは、モデルによって大きく4種類に分けられます。 それぞれの特徴をざっと表にしました。 ?はケースバイケースです。 種類 スケーラビリティ 性能 柔軟性 (高い表現力) 簡易さ Key-Value Store o o x o …

NoSQLについてまとめてみる 〜前編〜

はじめに こんばんは、tikedaです。 7月末までは時系列データ解析のお仕事に携わっていました。8月から元の部署へ戻り、お仕事させて頂いています。 今私がいるチームでは、主にストレージ系の研究開発に取り組んでいます。私自身はDBや分散ストレージの知識…