Windows 11 の設定

ASUS TUF AMD Ryzen/RTX 3060 Laptop アマゾンタイムセールで 156K が 135K くらいに。 www.amazon.co.jp キーボード設定 PowerToys の Keyboard Manager では期待通りに変更できず。正確には、CAPS LOCK (VS 240 1と認識される) を Ctrl (Left) へマップす…

ファイルやディレクトリの探し方まとめ

完成 gist.github.com 実践 /usr/で実践 リンクファイルがあると末尾に@がつくためFile not foundになったり、空白をファイル名に含む場合にうまくソートできなかったり、ファイルが無いディレクトリだとディレクトリを表示してしまったり、等を修正。 user:…

Binary Searchと分割統治によるコード最適化

Binary Searchは強力でソート済みでない配列に対して適用することも可能である。それどころか、対象が離散的な値である必要すら無い。 分割統治(Divide-and-conquer)はそれに良く似た手法で、対象を再帰的に半分にしてく手法である。 今回はランダムに数値…

tracerouteのベストプラクティス

ファイヤウォールの設定が厳しいネットワークや、ロードバランサーが動作するネットワーク、使用するパケットのプロトコルによる違い、等を考えて最も経路発見しやすい方法を考える。 ファイヤウォールの設定が厳しいネットワーク ファイヤウォールの設定が…

Git for WindowsにおけるRubyのputsの挙動

Git for Windows (Git bash)でrubyのプログラムを走らせているときプログラムが停止しているような挙動に遭遇した。デバッグしてみると、停止している箇所はユーザからの入力を受け付ける部分であったが、入力待ちで停止しているのではなく、putsでユーザに…

仮想マシンのスタックとネットワークI/Oについて

仮想マシン=ゲスト=ゲストOS 仮想マシンモニタ=VMM=ハイパーバイザー 仮想化コンセプト 仮想マシンモニタ=VMM(Virtual Machine Monitor)は、自身の子プロセスとして仮想マシンを実行し、ユーザモードでは実行できない命令を仮想マシンが発行したとき…

Sortアルゴリズムの消費メモリについて(続 〜In-place merge sort & Multithread merge sort〜)

Quick Sortは理論上は対象データの並び順によって最速のソートになる可能性があるが、最悪の場合(降順にソートされている場合かつPivotを先頭あるいは最後の要素に選択する場合)はO(n^2)かかってしまう、という問題点があり、Merge Sortは安定してO(nlog(n…

Binary Searchの集合への適用について

Binary Search – topcoder Binary Searchは、例えばソートされている整数のリストにある値が含まれているかどうかを確認するときに使うと、単純なループでチェックするよりもかなり計算量を抑えることができる。単純にループで確認するやり方は計算量がO(n)…

Linuxにおける各種メモリについて

Linuxで扱う様々な種類や単位のメモリについてまとめておく。また、メモリというリソースに関する制御や管理について考察する。 ulimit $ ulimit -a | egrep "memory|stack" max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited stac…

コード最適化についての考察

文字列のリストとその出現数をカウントして多い方からN個取得する処理を考える。単純にやろうとすれば、とにかく文字列とその出現数をkey/valueとしてカウントしていき、最後にvalueでソートして多い方からN個取得すればいい。 ただし、Nが非常に小さい場合…

ファイルシステム(ext2/ext3/ext4)の基礎まとめ

ext2 正常にアンマウントが実行されなかった場合には、パーティション全体のメタデータと実データの整合性をfsckによって確認する必要がある ブロック構造 - ブロックサイズは1KB,2KB,4KBのいずれか スーパーブロックには全体のi-node数など、グループデスク…

FeliCa/Suicaについて調べた

Suica(FeliCa)がiPhone7とApple Watch series 2に搭載されることになったので、この機会にいろいろ調べてみた。まだ、憶測の域をこえないところはある。 Sony Japan | FeliCa | FeliCaとは | FeliCaって何? SuicaはFelicaに対応した一つのアプリケーショ…

Linuxのブートシーケンスの基礎まとめ

ファームウェア(BIOS or UEFI*1)が マザーボードのROMからメモリにロードされて実行開始し、ハードウェアをスキャン(POST - Power-On Self Test というハードウェアの自己診断を)する [BIOSの場合] プライマリHDDのMBR(先頭のセクタ(512バイト))を見る…

AVL木の更新状況が見たい

AVL木は平衡二分木の一つで、ノードの追加・削除のたびに木の再構成を行い、検索時の計算時間を最小に抑えるようなデータ構造を維持する。木の再構成を行わない場合、最悪の場合には木の片側のみを使ってしまい検索時にO(n)の時間がかかってしまうが、再構成…

Sortアルゴリズムの消費メモリについて(続)

ソートにおいて、ソート対象の配列に対するポインタを操作すれば、各関数の中でソート対象の配列が持つ要素に対するメモリを確保する必要が無くなる。もし、ソート対象の配列の要素の型がポインタよりも小さいサイズであれば、その要素に対するメモリを確保…

いかなる算術演算子も使わずに加算を実現する

という問題を解く。 答えは、ビット演算子をたくみに使って加算を実現する。 つまり、ビット演算子は算術演算子には含まれないので、使っても良い。 具体的には、XORによって各位の加算を実現し、ANDと左シフト演算子によって繰り上げを実現する。 繰り上げ…

動的計画法とメモ化の実行状況が見たい

N x N のマス上にいくつか穴が開いていて、2マスを使うドミノを置いて、穴以外のマスを埋めることができるか、という問題があるとする。愚直に一つずつ試していくやり方としては、動的計画法が使える。ドミノは2マス使うので、縦に置くか、横に置くか、の…

Kubernetes background and network configuration

Kubernetesとそれに関連するミドルウェア Kubernetesはdockerなどのコンテナのスケジューリングやロードバランスを担うクラスタリング制御用運用管理ツール。様々なミドルウェアを組み合わせて使うモジュラー型のアーキテクチャになっている。 etcdは分散KVS…

ハノイの塔でディスク遷移が見たい

Necessary moves over 3 rods = logN - 1 (N = # of disks) 5 disks 8 disks 12 disks 実装はこちら Tower of hanoi with arbitrary disks showing the move among rods · GitHub

Sortアルゴリズムの消費メモリについて

Sortアルゴリズムの消費メモリについて(続) - Tech random memoranda Sortアルゴリズムを自分で書いてみるとそれぞれの特性が良く分かってくる。メモリを最も消費しないのは、Bubbleソートのようにソート対象の配列を直接触っていけるような、時間がかかる…

Sortアルゴリズムについて

Bubbleソート、Quickソート、Mergeソート、をpythonとCで実装してみた。何年ぶりだろうか。なお、pythonはバグがあるので、Cを参照のこと。 Quickソートさえ分かっていればよくて、qsortとか標準ライブラリを使えば良いと思っていたけれど、Mergeソートに負…

Rustの文字列とコピーのlifetimeについて

Rustで簡単なマルチスレッドプログラムを書いているとき、ふとコンパイルが通らなくなって困ったのでいろいろと調べていて、gitterできいて解決したことを書き留めておく。 標準入力から入力された文字列を取得して関数に渡し、その中でチャネルを通してスレ…

ブログがFlickrの写真貼り付けに対応した

staff.hatenablog.com ということでFlickr Proで管理していた時代からだいぶ時間が経ってしまっていた写真を載せてみた。ユーザ選択も写真マルチ選択も簡単で、楽しい。 Touring on the back photo by senbonzakura08 A young man walking into the classic …

Google Code Jam 2016 Qualification Round レビュー in Haskell

今年もスケジュールが合わず参戦できなかったので後日レビュー実施。Pythonで解いた後にHaskellでやってみた。ただしHaskellで解いてみるだけでは今までと変わらない気がするので、do構文とArrayは使用しない、という制約を付けた。ただ、HaskellらしくList…

IPフラグメントされたTCPの接続テストを行う環境をNetwork Namespaceで構築する

TCP接続の際にはIPフラグメントが発生しないように、通常はPath MTU DiscoveryによってEnd-To-Endのパス中で最小のMTUを認識して、そのサイズに収まるようにパケットを送出する。これはTCPのデータ転送を効率良く行うための最適化の結果であり、インターネッ…

Deep Learning勉強会に参加しました

大阪大学人工知能研究会 Deep learningの勉強会に参加して、TensorFlowのBeginnersチュートリアルと、多層パーセプトロンの実装をPythonでやりました。基本的なところは青本やCouseraなどでカバーしてありましたので導入部分は特に問題無く進めましたが、ニ…

numpyの多次元配列の比較時に発生するエラーについて

numpyの多次元配列を比較しようとすると、配列の各要素を比較した結果を配列として返すので、all()やany()を使ってANDやORでreduceした結果を取得できそうだが、以下のようなエラーに遭遇する。 ValueError: The truth value of an array with more than one…

Haskell Stateモナド(状態モナド遊びについての理解)

状態モナド遊び - あどけない話 すごいHaskellたのしく学ぼう!作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行本(ソフトカバー)購入: 25人 クリック: 580回この商品を含むブログ (70件) を見る Haskell…

Cousera Machine Learning Course 修了

www.coursera.org CouseraのMachine Learningコースを修了した。iPhoneのアプリもフルに活用していたので、修了までの期間は始めてから1ヶ月ちょっとくらい。このコースにはQuizとAssignmentがあって必要な点数を取らないと修了とみなされないのだが、Octave…

ズンドコキヨシをErlangのgen_fsmを使って書いた

FSMが保持するStateDataを使わないバージョンを追加 そういえばズンドコキヨシは gen_fsm のイイサンプルになるとおもうので、誰か書きませんか。— V (@voluntas) March 18, 2016 ということで書いてみた。graceful exitがなかなか思うようにいかなかったし…