2023-01-01から1年間の記事一覧

メモ_XserverVPSで無料SSL(Let's Encrypt)を設定する方法

XserverVPSで無料SSL(Let's Encrypt)を設定する方法についてのメモ。 VPS管理画面で「SSL証明書」というのがあったので、ここから「追加申し込み」をするのかなーと思って(Let's Encryptもメニューにあったので)申し込んだけど、何も起きず何日か待ちぼうけ…

メモ_Xserver-VPSで接続許可ポートが自由に設定できるようになった

Xserver-VPSでVPSパネルで接続許可ポートが自由に設定できるようになった。 今までは、あらかじめ決められた設定(SSH、Web、mailなど)のon/off、もしくは全部開ける設定しかなかったので、別途ufwとかで設定する必要があったけど、パネル側で簡単に指定ポー…

メモ_XserverVPSでPython-WebアプリをFlask+waitressで実行するまでの手順

XserverVPSでPythonで書いたWebアプリをFlask+waitressで実行するまでの手順のメモです。 手順は以下の通りです。OSセットアップ直後の環境でスタートします。OSは Ubuntu 22にしています。 手順 sshでログイン。apt-get update を実行 apt install python3.…

こじつけ算を求めるPythonコード

吉凶数に続いて、任意の西暦年月日の数字の組み合わせで、縁起の良い数字あるいは悪い数字との関係性を探索するコード。単なるこじつけなので「こじつけ算」とでも呼ぼう。 コード: from itertools import itertools def decompose_number(number): return […

吉凶数(西暦年月日の各桁数を合計した数字)を計算するpythonコード

西暦年月日の各桁数を合計した数字を吉凶数というらしいです。完全にオカルトですが、そうはいっても、縁起の悪い数字は避けたかったり、逆に何か大事な数字を決める際は、一応、良いとされる数字にしてみたかったり。 ということで、暇つぶしに吉凶数を計算…

メモ_XserverVPSでOSやアプリケーションを再インストール_試しにDjangoでログインするまで

XserverVPSでは、「VPS管理」というコントールパネルから、OSやアプリケーションを再インストールができる。試しにDjangoでやってみた。 手順1: VPS管理からVPSパネルを開いてOS再インストールを選択 「電源操作」というところで、シャットダウンしないと「O…

メモ_Ubuntu上のAnacondaで仮想環境を切り替える際、「conda activate 仮想環境名」とコマンドするが「conda activate 仮想環境PATH(/home/*****/myenv1)」としても切り替えられる

Anacondaで仮想環境を切り替える際、「conda activate 仮想環境名」とコマンド実行するが「conda activate 仮想環境のPATH(/home/*****/myenv1)」としても切り替えられた。当然だが、推奨される方法ではないらしい(環境変数とかシステム設定で不具合が出るか…

メモ_Virtual Box Ubuntu22.04 ServerをインストールしてSSH接続までの手順

Ubuntu22.04 Serverをインストールした直後の状況(メモリ使用量とか)を知りたかったので(検索すれば情報はたくさん出てくるけど)、手元で試してみた。 環境: Windows 11 HomeVirtual Box 7.0.6Ubuntu22.04 LTS Server 手順: Ubuntu22.04 LTS serverのイメー…

メモ_Pythonでグラフ構造のダミーデータを生成しjsonで保存して関係図を描画する

Pythonでグラフ構造のダミーデータを生成しjsonで保存して関係図を描画するまでの一連のメモです。コード例も。 ダミーデータ生成: 以下のような仕様でダミーデータを生成します。 ノード : User_idエッジ : relative、friend、acquaintanceプロパティ : 氏…

y-cruncherをUbuntu22で動かしてみた

y-cruncherという有名な円周率計算ソフトがあります。Windows版以外に、Linux版もあるので、試しにUbuntu22で動かしてみました。pythonで出来るだけ高速に大きな桁の円周率を求める方法を調べていたのですが、y-cruncherを実行して出力をそのまま利用するの…

メモ_4次魔法陣の全組み合わせ(880通り)のデータ(text,json)

個人的な取り組みで手元にて生成した4次魔法陣の全組み合わせ(880通り)のデータ一式 https://github.com/cicikero/my_data/tree/main/magic_square

メモ_Flaskでmysql.connectorとpymysqlだとエラーハンドリングが失敗する

Flaskアプリで、Mysqlと接続して情報を表示するという単純な処理で、DB接続のエラーハンドリングが失敗する。 mysql.connectorではなく、pymysqlライブラリを利用するようにしたら解消した。。。mysql.connectorとpymysqlを一緒に使うとダメなのかな。 mysql…

メモ_Pythonプロジェクトでソースコード群だけからrequirements.txtを生成する前準備

Pythonプロジェクトでソースコード群だけからrequirements.txtを生成する前準備のメモです。 githubなどからソースコードだけは取得できる状況で、手元には真っ新なPython環境しかなくて(出先で借りたパソコンで google colabとか)、requirements.txt なども…

メモ_JavaScriptでの有効桁数

Pythonで処理した大きな桁の数(例えば2の69乗=590295810358705700000)をFlaskアプリなどでWebページに表示する際、Java scriptで別処理を行ってから表示すると、数字が丸まったり指数表示になってしまうケースがあります。 原因はJavaScriptでの有効桁数の上…

Jupyter lab / notebook 上で、GUIで画像のフォーマット変換&リサイズを行うPythonコード

Jupyter lab / notebook 上で、GUIで画像のフォーマット変換&リサイズを行うPythonコードです。たまに画像を扱う際、Jupyter lab / notebook の操作画面からできるだけ離れたくない場合などに使う想定です。 コード: import ipywidgets as widgets from IPy…

メモ_Jupyter lab での設定

Jupyter lab 起動時のディレクトリの指定 Jupyter lab が起動した際、デフォルトだと立ち上げた場所がルートになりますが、指定したディレクトリに設定することできます。これでどこから立ち上げても、いつもの作業場所などでJupyter lab が開けます。 手順1…

メモ_Ubuntu22×MySQL8での自動起動設定

OSが起動した際に、MySQLを自動的に起動する、あるいは自動起動しないようにする設定方法のメモ。 手順 Ubuntu22は、systemd系の自動起動プロセスになっている(古いLinuxだとSysVinit系) 次のコマンドで、自動起動プロセスの一覧が確認できる。 systemctl li…

メモ_JupyterNotebookでtqdmを利用してプログレスバーを表示する

JupyterNotebookで処理時間が長いコードを実行する際、完了までどのくらいかかるか、どのくらい進行したかをリアルタイムでプログレスバーで表示したい場合、tqdmというライブラリを利用することができます。 pip install tqdm コード例: サンプルとして、My…

メモ_FlaskアプリでDBから指定範囲のデータをjsonでダウンロードさせる機能の追加

Flaskで構築したWebアプリに、DBから指定した範囲のデータをjson形式でダウンロードさせる処理を追加する際のメモ。 サンプルの仕様: id(連番)、prime_list(素列を格納)というカラムがあるDB(DB名はnuminfo、table名はrime_num)から、idないしprime_listの範…

メモ_Flaskアプリでapp.py以外でルート定義を行う方法

Flaskアプリを開発していて、app.pyがだんだん肥大化して見通しが悪くなることがあります。ルート(エンドポイント)定義をapp.py以外に切り出してコードをスッキリさせることができます。 一般的な方法は、FlaskのBlueprintを使用することです。Blueprintは…

メモ_Flaskアプリでjson fileをダウンロードさせる機能を追加

Flaskで構築したWebアプリに、Webページなどに表示させているデータをjson形式でダウンロードさせるための機能の追加についてのメモ。超簡単。 サンプルコード: from flask import Flask, Response, json app = Flask(__name__) @app.route('/json/') def do…

ipywidgetsを利用してJupyter notebook上でWebFormからMySQLを参照・更新するアプリを作る。

ipywidgetsライブラリを利用してJupyter notebook上でWebFormを直接実行するアプリが作れます。できるだけJupyter notebook(あるいはJupyter lab)から出ずに作業を続けたい場合などに便利です。データを可視化したグラフのパラメーターをリアルタイムに可変…

メモ_Python-FlaskとMysqlで構築したWebアプリでデータ参照をpandasに変えて高速化

データを表示するFlaskアプリを作っていたところ、数万件程度のレコードであれば一瞬で終わるので問題ないのですが、レコード数が数百万件程度になってくると、Webページの最初の表示が4秒ぐらいかかるようになります。 数百万件レコードに対するsqlクエリー…

メモ_VM上のゲストOS(Ubuntu)で立ち上げたFlaskアプリをホストOS(Windows)側からも閲覧可能にする

VM上のUbuntuでJupyter labを立ち上げてから、ホストOS(WIndows11)側のブラウザでJupyter labを開くと、pythonコード&テキスト編集とターミナル操作がブラウザで完結するので楽なのですが、Flaskアプリ(Jupyter notebookでは表示できない処理とか)も同時に…

ChatGPTに、任意の文章中に指定単語の含有数をカウントし、出力するPythonモジュールを書いてもらった

ChatGPTに、任意の文章に対して指定した単語がいくつ含まれるかをカウントして、結果を出力するPythonモジュールを書いてもらいました。 指示文(プロンプト): 以下の仕様に沿ったPythonモジュールを書いてほしいです。 仕様:入力したテキストを形態素解析し…

メモ_Pythonでの小数点計算の計算速度を、float、decimal、fractionそれぞれで比較してみた。

Pythonに限った話ではありませんが、コンピューターで小数点の計算をさせると誤差が生じるため、期待通りの計算結果が得られないことがあります。 例えば、0.1+0.2 は 0.3 ではなく、0.30000000000000004 となります。 10進数小数を正確に計算するためにdeci…

メモ_Flaskアプリでキャッシュを有効にして高速化

Flaskを用いたWebアプリとかで、Flask-Cachingというパッケージを使ってキャッシュを有効することで高速化できます。 @cache~デコレータをつけるだけという、とてもシンプルな方法。以下メモ。 準備: Flask-Cachingをpipでインストール pip install Flask-C…

メモ_セキュリティー対策のためDB接続情報をコード外部に置く

手元でデータ前処理とかで使う場合は、面倒なのでコード中にDB接続情報を書いてしまったりするけど、外部に出すアプリなどのコードではあまりに怖いので、接続情報は外部化して安全にしておきたいですよね。 コンフィグファイルを使用する: テキストファイル…

メモ_大量のファイル操作をメモリ内で完結させて高速化

大量のファイル操作を伴う処理は、ストレージの性能にもよりますが、大抵は遅い処理になります。 そこで、メモリ内で完結するようにファイル操作を行うと、どのくらい高速化されるか、実際に確認してみました。 tmpfsというLinuxにあるメモリ内の一時領域を…

メモ_MySQLでのコマンド

MySQLの操作コマンドのメモ。Ubuntu22、MySQL 8 基本 ログインする sudo mysql -u root データベースの情報を確認する SHOW databases; データベースを作成する。 CREATE DATABASE データベース名; 利用するテーブルへ移動する USE テーブル名; テーブルの情…