概要 PythonのPEP8準拠のコードフォーマッターとして、Blackが有名です。 Blackは、他のフォーマッターよりもカスタマイズ性が低く、制限が多いです。 その代わり、コードの書き方が統一されるので、細かい書き方で議論したり、悩んだりする必要がなくなり、…
概要 機械学習の実験を回していると、しばしば複数の定数を管理したくなることがあります。(例えば、実験を回すマシンごとのデータセットのパスなど) Pythonでは、他のプログラミング言語のconstのような定数がサポートされていません。 PEP8の慣例に従って…
概要 最近、numpyの配列をとある方法でシャッフルする関数を実装していたのですが、 与えたseedの値によってシャッフルの仕方が固定されるようにしたいと考えていました。 np.random.seedをシャッフルの処理の前に挟んでやれば、必ず同じシャッフルの仕方に…
上記のようにterminal上で、ハイフンから始まるファイルを指定して、何かしらの操作をしようとすると、上記のようなエラーが出てしまいます。 これは、ハイフンから始まるファイルが、オプションとして認識されてしまっているためです。 解決方法はシンプル…
概要 行動認識などの動画データセットは、youtubeから動画をダウンロードするのが一般的ですが、 稀にboxなどで提供されていることがあります。 軽量なファイルであればweb上で一括ダウンロードが可能なのですが、動画などのサイズが大きいファイルがあると…
概要 今回は、オブジェクトの生成方法に関するデザインパターンである、 Factory パターン、Factory Method パターン、Abstract Factory パターンの違いについてまとめました。 これらは混同やすく、自分も違いをしっかりできていなかったのですが、 最近や…
概要 最近Rustの勉強をしていて色々と調べていたところ、rustlingsというものを見つけました。 rustlingsは、Rustコードの読み書きに慣れるための小演習を行うことができるツールです。 実際に使ってみて非常に良かったので、簡単にですが使い方などについて…
最近忙しく、ブログなどを更新する余裕がなく、アウトプットの量がめっきり減ってしまいました。 このままでは良くないと思い、週一回のペースを目標に細々とアウトプットできればと思っております。 そこで簡単ではあるのですが、その週に自分が読んだ記事…
MonkeyTypeとは 今回は、Pythonの型アノテーションを自動で付与するMonkeyTypeを使用してみました。 MonkeyTypeは、実行時の引数や返り値の情報から、自動でスタブファイルを生成したり、型アノテーションを追加してくれるライブラリです。 ※ スタブファイル…
概要 これまでMac純正のターミナルを使用していましたが、異なるMac間での設定の統一が面倒だと感じ、Alacrittyを導入してみました。 AlacrittyはRust製のターミナルエミュレータで、設定をyamlファイルに書くことができ、設定の共通化が用意です。 他にも動…
概要 今回はtmuxのステータスラインをいい感じにしてみたので、その手順についてメモを残しておきます。 具体的には以下の情報が表示されるようにステータスバーを変更しました。 現在のセッション / ペイン / ウィンドウのインデックス prefixが押された時…
概要 ネットでPythonの記事を読んでいると、以下のような1行で複数の変数に同時に値を代入する方法が速いという記事を見かけました。 a, b, c = 1, 2, 3 こちらについてちょっと怪しいなと思い、速度の比較、及び速度差の原因について調査してみました。 結…
概要 今回はPythonの標準ライブラリであるatexitについて調べてみました。 非常に便利なライブラリですが、あまり日本語の情報がなかったので、こちらにメモを残しておきます。
概要 最近、Pythonの標準ライブラリにarrayというデータ型があるのを知りました。 今回は、このarrayの勉強も兼ねて、Pythonのlist、arrayとnumpy.arrayの3つを速度、メモリの観点から比較し、それぞれの使用用途について検討してみました。 その結果を備忘…
概要 yiskw713.hatenablog.com 私はこちらの記事で紹介したコマンドライン曖昧検索ツールであるfzfを愛用しているのですが, ふとある日を境にCTRL+RやCTRL+Tのようなショートカットが使えなくなってしまいました. 原因 こちらについて調査していたところ,…
概要 Pythonのlinterであるflake8を用いることで,コードの品質を担保するために静的解析を実施することができますが, 今回はそのflake8のプラグインであるwemake-python-styleguideというものを使ってみました. 公式ドキュメントによると, Welcome to th…
__main__.pyとは Pythonでは__main__.pyというファイルを定義することで, python -m <MODULE_NAME>を実行した際の挙動を定義できるようです. ※ -mオプションはモジュールをスクリプトとして実行するオプション 例えば以下の例を見てみます. ディレクトリ構造 . ├── mod</module_name>…
Pythonの標準ライブラリであるheapq.nlargest / heapq.nsmallestを使用することで, リストから簡単に大きい/小さい順にn個の要素を取り出すことができます. import heapq import random a = [random.randint(0,1000) for _ in range(10)] print(a) # [326,…
はじめに 今回はtyping.Annotatedを用いて,変数に型以外のメタ情報もアノテーションする方法について調べたので,こちらにメモを残しておきます. こちらを使うことで,より可読性の高いコードが書けるようになります typing.Annotatedとは typing.Annotate…
はじめに 今回はpsコマンドの改良版で,プロセスの表示をカラフルにわかりやすくするprocsを使用してみました. procsは表示をわかりやすくするだけでなく,プロセスの検索なども容易に行うことができ,非常に便利です. procsの使い方や設定方法について,…
はじめに RustでABC125 B - Resaleを解いていて,bit全探索を実装する方法がわからなかったので,こちらにメモを残しておきます. bit全探索を実装する bit全探索については,以下の記事が非常にわかりやすいので,こちらをご参照ください. たのしい探索ア…
ターミナルにNerd Fontを導入した際に,アップルマーク が表示されなくなってしまいました. github.com こちらのIssueでも特に解決策が書かれていなかったので,色々調べていたところ, Nerd Font内にもアップルマークが用意されているようでした. www.n…
はじめに lsコマンドの改良版であるexaを使用してみました. exaはRust製のツールで,カラフルにファイルの一覧を表示することができます. またNerd Fontとともに使用することで,アイコンの表示も可能です. 今回はexaの設定方法と,使い方に関してこちら…
はじめに treeコマンドの改良版であるtreを使用してみました. treはRust製のツールで,treeをより使いやすくしたものです. ツリー構造をカラー表示してくれるだけでなく,ファイルやディレクトリの横に表示されている番号を指定することで, 自身が使用し…
はじめに プログラマーなら誰しもターミナルで作業しているときに,コマンドを打ち間違ってしまい, 「くそ!」っと思った経験があるかと思います. そんなときに役立つツールとして,The Fuckというものを見つけたので,ご紹介します. (あまり良くないタイ…
はじめに RustでB - String Shiftingを解くにあたり, ベクタ型の要素を右 / 左にシフトさせる方法について調べたので,こちらにメモを残しておきます.
はじめに 機械学習モデルの可視化できるライブラリであるnetronを使用してみました. netronでは,ONNX,Keras, TensorFlow Liteなどのモデルの可視化を行うことができます. また実験的な段階ですが,PyTorchやTensorFlow,scikit-learnなどのサポートもし…
概要 linuxコマンドのcdの改良版であるzoxideを使ってみたので,こちらにメモを残しておきます. zoxideを使うことで,頻繁に使用するディレクトリに高速に移動ができるようになります. 過去にその他のツールについてもまとめておりますので,良ければご参…
題名の通り,はてなブログの記事のURLを,カスタムURLにしたところ,記事がインデックスされる確率が下がりました. 結論としては,デフォルトの日付を使用したURLに戻すことで,元通り記事のインデックスがうまくいくようになりました. とある記事で,「カ…
概要 最近機械学習モデルの学習用に画像データを収集しているのですが, その際,画像に写っている物体のみを切り取って保存したい状況がありました. 今回はこちらをOpenCVを使用して実装してみたので,メモを残しておきます. 今回実装したコードはこちら…