CAP 定理とは何か

データベースの勉強をしていると CAP 定理なるものに遭遇する。ずっと CAP 定理ってピンと来ないなぁと感じていたが、どうやら提唱者の Eric Brewer いわく CAP 定理は誤解された形で広がっているらしい。以下の記事に詳細がある。 www.infoq.com 自分が CAP…

Redis に入門する

どうやらアプリケーションのキャッシュの用途のために Redis なるデータベースがよく使われるらしい。ってことで調べて動かしてみたメモ。 Redis とは Redis を動かしてみる データ構造いろいろ プログラムから Redis を動かしてみる 気になったことを調べる…

React Native で全画面表示にする方法

例によって React Native 修行中である。Expo SDK を使って開発して、Expo Go でシミュレータを動かして、EAS でリモートビルドして、たいへん便利である。 ただ全画面(フルスクリーン)表示に問題があったので調べて解決したメモ。 困ったこと React Nativ…

React Native でテキストを枠内に収める方法

最近子どもがスマホのゲームでよく遊ぶので、自分でも簡単なスマホゲームを作ってあげたい気持ちに溢れている。我が子のツボはよく分かっているので(子にとっては)バチバチに面白いゲーム作れる気がするぞ。 React Native を使ってアプリを作ってみている…

Flow Free を自動で解く

子どもが「なんかゲームしたい」と言うので、子どもでも出来そうなスマホゲームを探してみた。すると Flow Free というゲームが目に留まった。一言でいうと迷路みたいなゲームで、実際4歳児でも楽しく遊べる感じであった。しかし、問題の規模が大きくなるに…

静的リンク・動的リンク・動的ローディングの違い

今日のネタはリンカの仕事について。低レイヤな話としてありがちだが、いかんせんバイナリを入力にバイナリを出力する処理なので直感的に理解しづらい。ってことで調べながらメモる。 リンカ(linker)とは何か リンカ とは、コンパイルされたファイル(オブ…

PyTorch の推論時のオーバーヘッドを調べてみた

論文投稿が終わって解放感がスゴい。勢いあまって PyTorch の推論の高速化について実験したのでその結果をここにまとめる。もちろん機械学習は勉強中なので手探りで実験しながら調べている感じである。アホみたいなことをしている可能性がある。 悩ましい(…

【読書メモ】Linuxで動かしながら学ぶTCP/IPネットワーク入門

定期的にやってくる「特に勉強したいこともないしネットワークのことでも勉強するか」ってシーズンが来た。ネットワークの考え方とか前よりは分かってきたが、実際のところどういう仕組みなのかピンと来ない。ってことで今回は書籍「Linuxで動かしながら学ぶ…

積率母関数の覚え方

統計で出てくる積率母関数って覚えてもすぐに忘れますよね。印象づけて覚えるためにマクローリン展開との関連性をメモる。 覚えたいこと 確率変数 の積率母関数 は以下である。 この関数を使うと以下のようにして n 次のモーメント を計算できる。 印象付け…

【読書メモ】Googleのソフトウェアエンジニアリング16, 18章

前回 に続き Google の SWE 本を読んでメモる。 書籍は以下である。 www.oreilly.co.jp 今回は以下の2つの章を読む。 16章 バージョンコントロールとブランチ管理 18章 ビルドシステムとビルド哲学 16章 バージョンコントロールとブランチ管理 16.1 バージョ…

必要条件と十分条件の覚え方

必要条件と十分条件ってどっちがどっち向きか分からなくなりますよね。 めっちゃシンプルな覚え方を高校生の時に編み出したので紹介します。 p は q であるための... のように 右 矢印が成り立てば 十分 条件 のように 左 矢印が成り立てば 必要 条件 ところ…

matplotlib でフォントを埋め込む方法

matplotlib とかその派生の seaborn で作った図(PDF)を論文に貼りたいが、その図にフォントが埋め込まれないときの対処メモ。焦らず、まずは心を落ち着けよう。 症状 PDF ファイルのフォントの埋め込み状況を確認すると Type3 フォントが埋め込まれてない…

【読書メモ】Googleのソフトウェアエンジニアリング11, 12章

ちょっとずつ Google の SWE 本を読んでいるので要約しながら所感をメモる。何においても本を読んだだけで実践できる人って最強だと思うのよね。本を読んだだけでいい気になっている人とは天と地の差がある。天側の人を目指そう。 今回読むのは以下の書籍で…

正規分布の覚え方

正規分布(ガウス分布)の確率密度関数の式って覚えづらいですよね。今回は自分的に頭に入りやすい覚え方をまとめる。 覚えたい式を以下に書いておく。これを一度見ただけで覚えられる人は天才。 正規分布の式の覚え方 気合いで覚えること まずは ガウス積分…

Docker コンテナで snap コマンドを使う方法

困ったこと Linux の新しめのパッケージマネージャとして Snap がある。 apt などのパッケージマネージャと違って、Snap によってインストールされるパッケージには必要な依存関係ごと含まているのが特徴である。いわば self-contained なパッケージマネージ…

トランザクション分離レベルとは何か

データベーストランザクションの ACID 特性とか分離レベルってややこしい。そんなある日、データベースの "状態" という概念があるのを知った。この概念を軸にすると、これまでややこしいと思っていたものが素直に理解できる気がしたので整理してみる。例に…

CPU使用率とは何か

OS

いきなりまとめ CPU使用率(CPU Usage, %CPU)は、CPU 時間の合計のうち、特定のタスクが占めた割合である。ただし合計時間には CPU が idle 状態の時間も含む。 背景 たとえば PC の動作が重いとき、Windows のタスクマネージャや Linux の top コマンドか…

【OS自作】littleosbook をやってみる #4

OS 自作シリーズの第四回。前回の記事は以下。 t-keita.hatenadiary.jp littleosbook は以下。今回は6章から。 littleosbook.github.io 6 Interrupts and Input この章では、ユーザからのキーボードの入力を受け付けるために interrupts(割り込み)をサポー…

【OS自作】littleosbook をやってみる #3

OS 自作シリーズの第三回。前回の記事は以下。 t-keita.hatenadiary.jp 不備が修正されたバージョンの littleosbook は以下。今回は5章から。 ordoflammae.github.io 5 Segmentation セグメントはメモリ上の区間である。セグメンテーションとはセグメントを…

【OS自作】littleosbook をやってみる #2

前回に続き、OS 自作のチュートリアル littleosbook の続きをやっていく。前回の内容は以下。 t-keita.hatenadiary.jp littleosbook は以下。今回は4章から。 littleosbook.github.io 追記:本家の littleosbook は不備が多いがメンテナンスされてない。以下…

【OS自作】littleosbook をやってみる #1

べつに暇なわけじゃないけど、たまには低レイヤなことをしたい。簡易的なオペレーティング・システムの開発方法を解説したサイト The little book about OS development を見つけたのでやってみる。ページは以下。 littleosbook.github.io 追記:本家の litt…

3Blue1Brown で学ぶ線形代数

最近は YouTube で数学の解説が上がっていたりする。質の高いコンテンツも多く、独学勢にとってはありがたい時代である。なかでもスゴいのが 3Blue1Brown の動画。チャンネル登録者数400万人も納得のクオリティである。 今回は 3Blue1Brown の線形代数(Line…

Scala UDF を SQL に変換する技術

論文メモ。今日はプログラム合成を用いてプログラムを変換する手法について。 論文 UDF to SQL Translation through Compositional Lazy Inductive Synthesis OOPSLA2021 https://www.cs.utexas.edu/~isil/clis.pdf (preprint) 論文の概要 データベースシス…

PyTorch の Transformer に入門する

PyTorch の公式チュートリアルに Transformer を使ったテキスト処理の章がある。これが何やってるのか分からん。もちろん Transformer の仕組みは分からん。それは想定内。問題は Transformer の外側で何をやってるのか分からんってこと。今回はそれを解説し…

PyTorch の自動微分に入門する

前回 は PyTorch のチュートリアルの最初だけやってみた。そこで PyTroch の自動微分の概念が重要であることが分かったので、今回は自動微分のチュートリアルをやってみる。ページは以下。 pytorch.org 忘れてはいけないのは PyTorch のテンソルはお化けオブ…

PyTorch に入門する

論文とかに載ってるニューラルネットワークのアーキテクチャを再現して自由自在にカスタマイズできるようになりたい。最近はニューラルネットワーク触るとなると PyTorch らしい。ってことで PyTorch のチュートリアルやってみる。チュートリアルのページは…

OverTheWire やってみた(Natas 編)

CTF

前回 に引き続き CTF(Capture The Flag)として OverTheWire をやってみる。今回はウェブセキュリティを扱った Natas 編をやる。ページは以下。 overthewire.org ウェブセキュリティなんてほぼ知らないぞ。課題をクリアしていけるか分からんがとりあえずや…

OverTheWire やってみた(Bandit 編)

CTF

最近、CTF(Capture the flag)という言葉をよく聞くので入門者向けのやつをやってみた。YouTube 上にビギナー向けの CTF サービスを紹介している 動画 があり、それが OverTheWire の Wargames をオススメしていたのでやってみた。 overthewire.org 今回は…

トップカンファレンスVLDB2021に通った話

筆頭論文がよいところに採録された。めでたい。業務でやった研究なので内容に踏み込んだことは書くべきでないが、外からでも観測できる情報と今の気持ちについてメモる。 なにが起こったのか 筆頭論文が国際論文誌 PVLDB(Proceedings of the VLDB Endowment…

誤差逆伝播法とは何か

プログラマの良いところは離散的な考え方に親しんでいる点である。だいたいのプログラミングなんて組み合わせの列挙と計算量の解析ができればなんとかなる。微分計算なんて大学1年の数学で見納めたはずだった。しかしながら、機械学習を勉強するとやたら微分…