ベスパリブ

プログラミングを主とした日記・備忘録です。ベスパ持ってないです。

Python: 切り捨てはmath.floor()より//演算子を使ったほうが良いかも

環境はPython3.6.5です。 まずは以下の計算結果を見てください。 gist.github.com なぜ? float型において、有効数字が16桁以上の値を表現しようとすると誤差が生じてしまう可能性があるからです。 N//3 のような整数同士の切り捨て除算は内部処理的にint型…

Pythonでいもす法

いもす法とは いもす法(imos法)とは、長さNの1次元配列において、「ある連続する区間に、ある数vを足す」という操作をK回繰り返した結果を、計算量O(N+K)で高速に構築できる方法。 たとえば、「ある連続する区間に、1を足す」という操作を4回したい次の図の…

セキュリティ関連の参考サイトメモ

www.owasp.org

Jupyter Notebookをフォルダ右クリックで開けるようにしてくれるstart_jupyter_cm

Jupyter Notebookを起動したあと毎回フォルダ移動するのが面倒くさい。なのでstart_jupyter_cm というリポジトリをインストールします。Windows と GNONE に対応(2019/08/23現在)されています。 github.com インストール方法はリポジトリのREADMEを読めば…

Windows環境にMySQLを入れたかったけど、ネットワークが頻繁に切れるからやめた話

Windows10 64bit 環境にMySQLを入れたい。 やり方がさっぱりだったので、ドットインストールに頼りました。 ドットインストールのMySQL入門 やればわかりますが、まずはローカル環境を構築してくださいと言われます。 ドットインストールのローカル環境の構…

大阪府立大学の「アカデミックライティング入門」がとても良かった

私は大学はとっくに卒業してるのですが、大阪府立大学が学生向けに出している「アカデミックライティング入門 レポートの書き方」というPDFを読みました。私は大阪府立大学とは全く関係のない人間ですが、大学1回生のころに読んでおいたほうがいいというか、…

プライバシーポリシー

当サイトについて 当サイトに掲載されている広告・アドセンス・アクセス解析・コメント・免責事項等について、以下の内容を参照ください。 Googleアナリティクス 当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。 …

GitHubはリポジトリのコードをスキャンしてセキュリティの脆弱性を指摘してくれるらしい

公開しているGitHubのリポジトリに、ある日突然アラートが表示されました。 アラート We found a potential security vulnerability in one of your dependencies. (訳)依存関係のひとつに、セキュリティ脆弱性の可能性があるものを見つけました。 「See sec…

webpackメモ

参考 面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門 | さくらのナレッジ Installation | webpack 公式サイト インストール npm install -D webpack npm install -D webpack-cli バージョン指定 npm install -D webpack@4.35.0 pack…

`Unhandled rejection Error: original.line and original.column are not numbers` エラーの解消

--mode=developではエラーは発生せず、--mode=productionで以下のコマンドを打つとエラーが発生した。 $ ./node_modules/webpack-cli/bin/cli.js --mode=production Unhandled rejection Error: original.line and original.column are not numbers -- you p…

pathlibのファイル操作いろいろ

pathlibとは Python 3.4以上で推奨されているファイル・パス操作のモジュール。 os.path の代替となるモジュール。 docs.python.org 使い方をよく忘れるので備忘録です。 返り値はPathオブジェクトなので、文字列に変換したかったらstr()で囲んでやります。 …

VSCode用スニペットに変換するジェネレータサイト

日本語で検索しても見つからなかった方へ。 お探しのサイトは、以下のサイトです。 snippet-generator.app AtomやSublime Textのスニペットにも変換できます。

Pythonでダイクストラ法

編集履歴 (2021/02/21)ダイクストラのプライオリティキューが最短距離の小さい順に取り出されるようになっていなかったので、それを修正 ダイクストラ法とは ダイクストラ法とは、「重み付きグラフにおける単一始点最短路アルゴリズム」 つまり、「始点s か…

Pythonの辞書(dict)のgetメソッドの速度を調べてみた

辞書(dict)でキーの存在確認をする際の方法としては、 in演算子を使いif文で条件分岐する get()メソッドを使う try exceptを使う(そんな人いるか?) の3種類くらいだと思います。 その中でもget()メソッドはワンライナーで書けて便利なのですが、速度的に…

Pythonのin演算子の計算量について

リスト(list)、タプル(tuple)、集合(set)、辞書(dict)にはin演算子がありますが、それぞれ計算量が違うようです。 python リスト、辞書、セット型のinを使った時の参照速度を調べてみた。 - Qiita Python Speed - www.peignot.net リスト(list) タプル(tuple…

Pythonでベルマンフォード法

ベルマンフォード法とは 蟻本によれば、「重み付き有向グラフにおける単一始点最短路アルゴリズム」 つまり、「始点s から各頂点i までの最短コストを求める」アルゴリズムです。 以下の条件で使えます。 DAG(有向グラフで閉路を持たない)である 負のコス…

行き詰まったり、やる気が起きないときの対処法

今の所の個人的なベストプラクティス 行き詰まっているとき 誰かに相談する 独り言を言う やりすぎるとクビが飛ぶらしい 歩行運動しながら考える(とにかく席を立つ) やる気が起きないとき さっさと家を出る(家にいる場合、最優先でこれをすること。家以外…

PythonでUnion-Find木

Union-Find木とは Union-FindまたはDisjoint Setとは、蟻本の言葉を借りると「グループ管理のためのデータ構造」。 ・要素aと要素bが同じグループかどうか ・aが属するグループと、bが属するグループを併合(unite)する ということをしたいときに使います。 U…

Pythonのリスト操作のinsert(0, v)やpop(0)の計算コストはO(N)かかる

散々語り尽くされていますが、リストの先頭に対する要素の挿入(insert)や要素の削除(pop)の計算コストはO(N)かかります。このことは公式ドキュメントのcolections.dequeの説明に記載されていているのでその該当箇所を引用すると、 docs.python.org list …

RecursionError: maximum recursion depth exceeded in comparison の対策(Python3)

再帰関数を書いたら以下のエラーが発生した。 RecursionError: maximum recursion depth exceeded in comparison エラーで検索したら以下の記事にあたった。 Python3で再帰上限数の変更 - Qiita 書いてあるとおりに、ソースに以下のコードを追加したらなおっ…

私のGitの定形フロー

git

2020/12/17更新 現在のブランチ状態をわかりやすくした Gitに慣れ、だいたい以下の流れが定形になったので、備忘録として残します。 以下では、 (develop) $ 上記を、developブランチにいることを表しています。 1. featureブランチの作成 機能Aを追加するこ…

Chrome拡張のContent Scriptのメモ

Content Scriptについて Content ScriptはWebページに差し込まれる Webページ内のidなどの要素にはアクセス可能 document.getElementById('title')などが可能 Webページ内のJavaScriptの変数にはアクセス不可能(スコープが違うので、Content Scriptの変数と…

Anacondaの環境変数のパス(Windows)

$ conda update anaconda-navigator をしたらCondaHTTPErrorとかSSLErrorとかエラーだらけになった。 メインPCだとエラーにならず、ノートPCだとエラーになったので、メインPCと同じ設定にしようと思って環境変数のパスを確認したらパスが足りなかった。最終…

SSHでもBitbucketのpushやfetch時に毎回パスワード聞かれるときの対処法

ググったら似たような症状が出るわけです。 git パスワード を毎回聞かれる問題の解決方法 - Qiita bitbucketへのpush時に毎回パスワード入力しなくて済むようにする - Qiita ただし上記の記事は、「HTTPSからSSHに変更したら直る」という内容です。 私の場…

com_error at / (-2147221008, 'CoInitialize は呼び出されていません。', None, None)

エラーの対処法 Djangoで作ったWebアプリケーションで表題のエラーが発生しました。 このWebアプリは、Web画面でファイルをアップロードし、ファイルをサーバーに渡し、サーバー側でExcelを起動しファイルを処理する。というようなものです。Excelを起動する…

condaのPackagesNotFoundError

condaで何かをインストールするときにPackagesNotFoundErrorが出るときの主な原因は、 (1) タイプミス (2) 探すリポジトリになかった (2)の場合は探すリポジトリを追加させます。 # condaが探すリポジトリ先の確認 $conda config --get channels # conda-for…

Django Girls Tutorialをする

はじめに Djangoの最初のプロジェクトを作る方法、毎回ググってやるのがつらいので、備忘録として残したい。 Django Girls Tutorialを通してやることで、備忘録とします。 上記のページは情報が古くなってる可能性があるので、GitHubのリポジトリを確認した…

AtCoderSort

オブジェクト群を何かの値でソートしたいとき、それはともかくAtCoderのレートで先にソートするソート手法。 コード # coding: utf-8 class Person(): def __init__(self, rate, height, age, name): self.rate = rate # レート self.height = height # 身長…

リストの要素がクラスオブジェクトの場合のソート(Python)

リストの要素がクラスオブジェクトの場合に、そのオブジェクトのメンバ変数に対してソートをしたい。 クラスに対するソート(と言ったら語弊があるけど)。 やりたいこと class Person(): def __init__(self, _id, height, name): self._id = _id self._heig…

海底ケーブルマップがすごい

Django GirlsのREADMEを読んでいて、インターネットの仕組みの項目を読んでいた。 そこに海底ケーブルマップのサイトのリンクがあった。 Submarine Cable Map すごい。色々すごいけど、志摩市の海底ケーブルの本数がすごい。志摩スペイン村しか知らなかった…