NAKED WETWARE

「わがままになるのが怖い奴に宇宙は拓けねェさ」

pandocの使い方

使うたびに「オプションなんだっけ?」ってなるのがめんどくさいので、まとめておく。 # USAGE pandoc -f INPUT-FORMAT -t OUTPUT-FORMAT -o OUT-FILENAME -c style.css source_file.md --self-contained # example pandoc -f markdown -t html -o index.htm…

最短経路アルゴリズムの理解:Dijkstra

最短経路のアルゴリズムにもいろいろある。 その中でもダイクストラのアルゴリズムについて、理解した内容をまとめてみる。 基本戦略 いま注目してる頂点に隣接する頂点をみる 隣接頂点が持つコスト(初期値はINF)と、いま注目している頂点のコスト+隣接頂点…

AtCoder Beginner Contest 232 セルフ反省会

3ヶ月ぶりのコンテスト。 色々となまってた部分もあった。 A. QQ solver 自分ライブラリありのテンプレートファイルの使い方を忘れて焦った。 なまってた部分。 B. Caser Cipher カエサル暗号のやつ。 実装ミスってWAを出してしまう。 単純にmodの世界の話だ…

gitの認証でたくさんのsshキーがありすぎるときの解決方法

僕の場合、リポジトリA、リポジトリBでそれぞれ異なるSSHキーを使っていることがある。 例えば会社絡みリポジロリではid_rsa_aで、個人プロジェクトではid_rsa_b、推し事関連ではid_rsa_cなど。 git push するとき、それぞれで合う秘密鍵を指定してgit push…

SurfaceのWindows10を初期化に失敗したメモ

学生時代から使っているSurface3の調子が良くないので初期化することにした。 学生時代に調達したPC。気づけばもう10年選手だった。 CrystalDiskinfoによると、SSDはまだ大丈夫っぽい。一般的な対応年数2倍超化してるけど。 TL;DR 32GBのUSBを調達して、…

MSBuildの使い方

Windowsには、標準でC#コンパイラ(csc.exe)があります。 なので、VisualStudio(VS)がなくても、C#によるコーディングができます。 ただ、リンクとかめんどくさく、できればもっと簡単にコーディングできるようにしたいです。 MSBuild.exeというも、Windows標…

蟻本2-2 / Fence Repair コード解説

競プロを始めました。 実力を上げるために、いま蟻本を読んでいる。 そこで、2-2 Fence Repairの解答コードを読んで何やってるのかわからなかった。 いろいろいじってそういうことか、という理解を得たので、そのことについてまとめようと思う。 ソース C#で…

Pythonで二次元配列の初期化では「参照渡し」に気をつけないといけない

問題 先日、プログラミングコンテストで、バグチックな変な問題に足元をすくわれました。 それは、初期化した二次元配列の一部の値を更新したら、ほかの値も更新されるというものです。 以下のようなコードです。 # /usr/bin/python3 # coding: utf8 INF = 1…

PowerShellの設定

PowerShellの設定 WSLが使えない現場で、bashに似たコンソールはないかと調べてたらPowerShellに行き当たった。 コマンドプロンプトよりもかなり使いやすく、いじればbashにかなり近い使い方ができた。 今回は、そのPowerShellの設定方法をメモしておく。 実…

会社メールをGmailで送受信する方法

SMTP/POP3形式のメールをGmailで送受信できるようにした。 このエントリーは、その手順のまとめ。 TL;DR 設定 > アカウントとインポート > 他のアカウントのメールを確認/メールアカウントを追加する > 後はよしなに 設定 > アカウントとインポート > 名前/…

【Python】トラップした例外がロギングされない。

TL;DR Pythonで例外処理、それもエラーメッセージをログ出力するときは、例外クラス名も一緒に出しましょう。 発端 作ったスクリプトが異常終了するという報告を受けた。 聞いた挙動からして、どうもメモリ不足じゃないかと思い、ログを見てみる。 すると、 …

【Python/openpyxl】openpyxlで遭遇したMemoryErrorへの対処方法

TL;DR openpyxlはxlsxファイルをメモリ内に展開してあれこれする 書き込み専用モードにすれば、メモリへの展開をいい感じにしてくれる とりまwb = openpyxl.Workbook(write_only=True)を使っとけばOK 環境 Tools Versions openpyxl 3.0.3 Python 3.6.9 発端 …

【Python/スニペット】コードリーディングで知ったことをまとめる

個人的なまとめ。 他人のコードを読んでいて勉強になったと感じる部分を記述していきます。 math.ceilを使わない天井関数のような処理 math.ceil(A/B) == (A+B-1)//B == int((A+B-1)/B) 理由 いま、非負整数に対してとする。 (1). BがAを割り切るとき、なの…

なぜ -~n = (n+1) となるのか

Pythonゴルフテク(AtCoder)を読んだ。 目から鱗のテクニックが目白押しだった。 その中で個人的に引っかかった -~n = (n+1)について調べた。 なぜビット反転したものに-1をかけると(n+1)と等しくなるのか ここが一番の謎だった。 結論から言うと、 ビット反…

現状で自己最速の素数チェッカーを作った

去るABC149のC問題で、素数に関する問題が出た。 過去問を解いてただけだけど、久々に素数判定の関数を書いた。 一応そこそこの素数チェッカーは書けたけど、改めて自分にどれくらいの素数チェッカーが書けるのか挑戦してみようと思う。 言語はPython3 ソー…

Pythonで独自比較関数を用いてソートに適用する

Pythonでリストをソートするとき、独自の比較関数を使いたかった。 そのことについて調べたことをまとめます。 TL;DR Python2.xまではsort関数のcmp キーワード引数に独自compare関数を指定すればよかった Python3.xでは、sort関数からcmp キーワード引数が…