備忘録 blog

Docker/Machine Learning/Linux

将棋の棋譜を自動解析して詰み逃しを見つける

将棋の棋譜から、詰みがあったのにも関わらず詰ませ損ねた局面を集め、詰将棋集を作って練習したいと思った。そこで、棋譜内に詰み逃しがあった時に Jupyter Notebook 上で表示されるようなコードを実装した。例として著作権の切れた古い棋譜を使って、どの…

if 文と jump 命令の性質の違いを説明する

はじめに Human Resource Machine というゲームがある。 Steam 等で入手することができる。 Human Resource MachineTomorrow CorporationAmazon このゲームを雑に説明してしまうと、このゲーム固有の命令セットを持つようなプロセッサが処理できる、アセンブ…

先後差を考慮した将棋のプロ棋士の強さモデリング(2)

はじめに 本稿は前回に引き続き、先後差を考慮したプロ棋士の強さベイズモデリングをしていきたい。今回は棋士ごとの先手・後手の差をモデルに埋め込んで、先後の強さの差がどのぐらい出るかというのをみていきたい。 前回の記事はこちら。 sharply.hatenabl…

先後差を考慮した将棋のプロ棋士の強さモデリング(1)

はじめに 将棋は先手有利であるという通説があるが、実際にその効果はどのぐらいなのだろうか。また、「振り飛車党は先後の不利を克服できる」という説があるが、その説はどのぐらい信憑性があるのか、という点に対して、PyMC3 を用いたベイズモデリングによ…

壊れた Mac のデータをシングルユーザーモードで NTFS の USB メモリに救出する

mac

Mac の SSD が死んでしまった時の復旧方法をメモしておく。症状としては以下の記事と同じであった。 qiita.com 第一の手段としては、ディスク修復ツールを使うというものだが、 First Aid を使っても Error Code : 8 で失敗してしまった。 そのため第二の手…

宇野常寛「遅いインターネット」から想像する

ここでは、宇野常寛の「遅いインターネット」を読んで、政治の司法化について議論してみたい。 遅いインターネット (NewsPicks Book)作者:宇野常寛幻冬舎Amazon 第1章においては期間限定でこちらで公開されている。 slowinternet.jp 宇野常寛氏については当…

Java 軽量 Web フレームワーク調査

tl;dr Java で利用できる軽量 Web フレームワークを調査した。特に、 Helidon について最後に説明する。 なぜ Web フレームワークが必要となるか まずは冗長かもしれないが、 Web フレームワークがなぜ必要となってきたか、について1つの説明を考えてみたい…

ベイズ統計を用いた投票モデリングを目指して

はじめに 投票をある程度解釈可能なモデルによってモデリングすることによって、そのモデルのパラメータを変更した際に、選挙結果がどのぐらい変化するかというのを見積もることができる可能性がある。まず選挙に対するモデリング手法について、先行例として…

D3 で Sankey Plot を書く

tl;dr JavaScript のライブラリである D3 を使って、 Sankey プロットを描画する方法について、ウェブ上のリンクを収集した。 Sankey diagram d3 のデモサイト www.d3-graph-gallery.com Sankey diagram with d3v4 bl.ocks.org d3 で Sankey diagram を描画…

英文要約が欲しい

はじめに 要約の取得方法として、自然言語処理的な手法を用いて行いたいと考えた時、そのやり方は抽出型と生成型に分類できる。抽出型はそのものずばり、文集合のなかから要約に相当する文を抽出する手法である。たとえば、LexRank等の手法を使って、文のな…

小説に登場する若者像を考える

はじめに いつの時代も若者は、小説の主題となることもある中心的な存在であった。ここでは独断と偏見に基づいて小説をサンプリングして、その時代ごとに描かれている若者について探っていきたいと思う。 sharply.hatenablog.com 戦前 資本主義だけ残った――…

Konva をハックしたズームレイヤー実装に向けて

Konva は JavaScript 製ライブラリであり、 HTML5 Canvas上に矩形や円、画像などさまざまなオブジェクトを配置し、さらにアニメーションやズームレイヤーなどが整備されているので、ドラッグ・ドロップでオブジェクトを移動させられるなど、インタラクティブ…

DeepZoom フォーマット (DZI) の解説

Google Maps のような、もともとは1枚絵であるが、拡大すればするほど高精細な画像が表示される、あるいは拡大するたびに、情報の密度が異なる画像が表示されるようなアーキテクチャを Web 上で実装したいと思う。 こうしたアーキテクチャを実装するにあた…

Rust のポリモルフィズムとトレイトオブジェクト

Rust で、「ある構造体のフィールドに、ある条件(=トレイト)を満たす他の構造体と動的に取り替え可能なフィールドを設定したい」と思うことがある。例えば、struct Binary で定義している、バイナリファイルを、struct BinaryReader 経由で読み込むときに…

Rust で Write Offset を取得したい

tl;dr Rust で、Write + Seek トレイトを実装したストリームにバイナリを書き出していくときに、いまどれだけ書き出したのかが分かっているとする。このとき 書き始めた位置の Offset を持っておくと、その offset 位置から読み出したり、逆にその位置からデ…

Python から Rust を呼ぶライブラリを比べる

tl;dr Rust で実装されたライブラリに対して Python 側から関数呼び出しをしたいと考えたとき、Rust に対して Python binding を提供してくれるライブラリとして maturin、setuptools-rust、milksnake があり、それぞれのツールの間で微妙に特徴が違うので、…

Docker / Singularity の実用面での違い

Singularity と Docker の互換性の問題 Singularity は、 Docker image を変換してSingularity image として実行することができる機能を有している。Singularity が導入されているマシンでは、no-root でDocker image を実行することができる。このほかにも…

three.jsでテキストの向きをカメラに追従させる

Three.js で三次元の可視化を実装するときに、カメラ移動を実装して、様々な角度からその三次元データを見られるようにしたいと考えることがある。このときに必要なマウスドラッグやマウスホイールによるカメラ移動は、OrbitControls.js を使うと苦も無く実…

現時点での好きなLinux環境

自分の気に入っている、Linux環境上でのソフトウェア群をまとめてみた。 Desktop Environment KDE 重厚長大だが、充実した機能とカスタマイズ性が、どのKDEのバージョンでも維持されており、それがKDEの魅力でもある。Qt製で、Qtのバージョンアップに従ってK…

Google BigQuery の SQL文tips

Google BigQueryとはおおざっぱに言うと、大量のテーブルデータに対して高速にSQLを実行できるフルマネージドサービスである。主にアクセスログや、テーブルデータのように、十分に大きいデータソースを持っている企業にとっては安価で、すぐにSQLを実行する…

3Dで使われるオイラー角とクォータニオンとは何か?

tl;dr 3次元上の回転について調べたのでまとめる備忘録。 復習: 2次元の場合はどうだったか 2次元座標上で回転をどう定義するか、ということについては、ここでは詳説しない。 回転行列 オイラー角 複素数 これらの表現が、3次元上ではどうなるのかについて…

宇野常寛「ゼロ年代の想像力」から想像する

ここでは、宇野常寛の「ゼロ年代の想像力」を読み、サブカルチャーを中心として年代ごとを表象する作品と人々の志向について考える。その後、10年代の作品について概観する。 ゼロ年代の想像力 (ハヤカワ文庫 JA ウ 3-1)作者:宇野 常寛早川書房Amazon 1970年…

RailsとReactを統合する方法を考える

なぜReactを導入したくなるか 現代のWebアプリケーションの発ではしばしば、リッチなユーザエクスペリエンスを提供するためなど様々な理由で、クライアント側に(ウェブブラウザ上に)状態を持っておきたいという状況があります。例えばチェックボックスにチ…

MacのNotes.appで過って削除されたメモを復元する

tl;dr Notes.appを使っているとき、sqlite3の書き込みがエラーになったようで、クラウド上への同期もとっていなかったことでNotes.appのメモがあらかた消えてしまった。サルベージを試みた記録を遺しておく。 What I have done 元のファイルのありかを特定し…

ガベージコレクション(GC)

tl;dr ガベージコレクション(GC)についてサーベイしたので、メモを残す。 ガベージコレクションのアルゴリズムと実装作者: 中村成洋,相川光,竹内郁雄出版社/メーカー: 秀和システム発売日: 2010/03/17メディア: 単行本購入: 25人 クリック: 810回この商品…

UEFI環境下でのgrubでLinuxとWindows 10をデュアルブートする

Windowsでのブートの制約 Dual boot with Windows - ArchWiki 上記より、Windows 10ではUEFI-GPTあるいはBIOS-MBRの組合せでしかブート出来ません。ところで旧来のBIOSブートに比べてUEFIブートは高速であることが知られています。またMBRに比べてGPTでは基…

Rustの覚書

全体的に postd.cc https://japaric.github.io/discovery/ インストール rustを手元の環境に導入する方法として、rustc(rustコンパイラ)を直に入れるほかにrustupと呼ばれるツールチェーン管理用のソフトウェアを介してインストールする方法がある。これはni…

HaskellにおけるHTMLのテンプレートエンジンを調査する

HaskellはWebフレームワークだけでもYesod, Snap, Happstackといった重厚長大型のフレームワークに加え、軽量なもの/API向けのものでもSpock, Scotty, Servantなど乱立しているが、Template Engineとて例外ではない。Blaze-html, shakespeare, mustache, sta…

シェルコマンドでよく使う引数を書き留める

TL;DR シェルコマンドの中で、しばしば自分が使っていて便利な引数、毎回検索するも忘れてしまって前回打ったコマンドをback-i-searchで探そうとするも見つからなくて困るものなどを記す。 diff diff -y -B -b -i -W 200 -y : 結果を2行に表示 -W 200: 各行…

Haskellで参考にしたもの

Web Framework Scotty / Spock Rubyで言う所のSinatraのような軽量フレームワークのhaskell版。ScottyよりSpockの方が、waiに準拠している上に機能も充実していて良いらしい。 Spockの紹介記事は以下。 qiita.com ScottyをHerokuで動かしてみたサンプルアプ…