しゃしん

memo_0922

import re import time import random import sys from pathlib import Path import copy # 上位ディレクトリをパスに追加 sys.path.append(str(Path(__file__).resolve().parent.parent)) from src.Actor import MasterActor, DummyActor # from VolumeMoni…

VSCode拡張機能をデプロイしようとしたらやけに大きくなる時

.vscodeignoreがないのが原因。中身は以下のような感じ。 # .vscodeignore **/*.ts **/*.map **/.gitignore **/tsconfig.json **/webpack.config.js **/vsc-extension-quickstart.md **/changelog.md **/node_modules/** !node_modules/vscode-languageclien…

Pythonのプロセス間通信

Pythonでマルチプロセス通信を行う場合はmultiprocessingのManagerやQueueを使用すると便利。Managerは共有の変数、Queueはトリガーとして使用できる。 import multiprocessing import time class Device: def __init__(self, shared_state, command_queue):…

Pythonでノイズ検出方法を考える

想定するノイズは、バッファアンダーランのようなノイズ。 検証対象としてはノイズ検出しやすそうな穏やかな曲調のカノン。以下からダウンロード。 classical-sound.seesaa.net 以下のスクリプトで、バッファアンダーランを想定して一部バッファを削除してノ…

Pyvisで木構造を可視化(サンプル)

Panel+pyvisで木構造可視化

Panel+pyvisで木構造を可視化する。ほしいのは以下の機能。 - 木構造が表現できること。ノードとエッジが表現でき、矢印で方向を表現できること。 - 分析がしやすいこと。ノードの色や大きさで重要な箇所がわかりやすくできること。あるノードを選択した際に…

PythonでWindowsのGUIアプリを操作するコード

操作記録用。YAML形式で記録。 from pynput import mouse import pygetwindow as gw import yaml import time recorded = [] last_time = None # 前回クリック時刻を保存 def on_click(x, y, button, pressed): global last_time if not pressed: return # …

WSLのnpmで/usr/bin/env: ‘bash\r’: No such file or directoryといわれたとき

Windous側に入っているNode.jsにパスが通っています。Windows側はアンインストールすればOK

紹介URL

https://tr.a-q-f.com/ad/p/r?medium=3&ad=76&creative=99&sad=d1c55576-3652-4cdc-be4d-78ad340de7d6&s=14AZ

PythonでExcelを2回目から高速に読む方法

以下のようなExcelデータを使用する際、毎回Excelを読みこんでいるとめちゃ時間がかかるので高速化した。 方法としては、読みこんだデータを.npyで保存しておくようにした。今回はデータが更新されるのでチェックサムで更新を確認して、更新された場合は.npy…

ビットコインの年間利益計算スクリプト

ビットコインの年間利益計算スクリプト作成した。BitFlyerの取引レポートをそのまま読みこめるようにしてある。 間違っている点あればコメントで教えてください。 import pandas as pd def calculate_annual_profit_average_method(csv_file): # CSVファイル…

CでSEGVなどで異常終了した際にバックトレースログを残す方法

開発初期あたりのとりあえず正常系のみ書いて動かしてみるときなどで、SEGVが発生した場合にバックトレースログを出力したいときのコード。 シグナルハンドラでSEGVなど異常終了のシグナルをハンドリングしてログ出力する。 #define _GNU_SOURCE #include <stdio.h> #</stdio.h>…

マルチスレッドプログラムで性能計測する方法

メインスレッドである処理を行いサブスレッドに通知し、サブスレッドでまた別の処理を行う、というマルチスレッドのプログラムを作成した際、結局どのくらい処理時間がかかっているのか調べる必要があったため、LTTng (Linux Tracing Toolkit Next Generatio…

Googleスプレッドシートの時系列データを等間隔に補完するプログラム

収集している時系列データを、生データから等間隔に補完するプログラム。GoogleColabで実行すること。 データはGoogleスプレッドシートに保存しておき、1列目がタイムスタンプ、2列目が対象のデータとすること。 # 認証のためのコード from google.colab imp…

ビットコイン価格データ

ダウンロードリンク 期間:2023/12 ~ docs.google.com docs.google.com データ形式 1か月ごとにシートを分けて保存している。 1列目:タイムスタンプ 2列目:ビットコイン価格(JPY) 注意点など 価格データは生データではなく、一部補完を行ったデータであ…

DynamoDBにFloatや配列、Noneを含むJSONを保存する関数

Floatや配列はそのままでは保存できないので、バイナリに変換して保存する。ただしバイナリも400KBという上限があるので、分割して保存する。Noneはそのままでは保存できないので文字列に変換する。 以下にDynamoDBへの保存、リストア用の関数を示す。 impor…

ビットコインシステムトレード開発

概要 MT4のような自動売買システムをビットコインでも行いたいということで開発。コンセプトとしては以下のような感じ。 運用コストはかけない(AWSの無料枠で動かせるような構成にする) 開発に時間をかけない(自動売買のアルゴリズムなど必要な部分のみ開…

CSVファイルを1つのGoogleスプレッドシートにまとめるコード

以下のコードをGoogle Colabで実行する。ファイルごとにシート名を分けて、複数行ずつ書き込んでくれる。 from itertools import count import csv import gspread from datetime import datetime import glob import tqdm # 認証のためのコード from google…

ビットコイン価格データ自動収集プログラム

ビットコインの価格データをバックテストに使用したいと思ったものの公開しているところがなかった(日ごとのデータならあるが、それより細かいものはなかった)ので、データ自動収集プログラムを作った。 プログラムはGoogle Apps Script上で動作し、データ…

ビットコインのバックテスト用プログラムを作った

Pythonでビットコイン取引のバックテスト用プログラムを作ってみた。その時のメモ。 github.com インストール方法 $ git clone https://github.com/wooolwooolwoool/bitbacktest.git $ cd bitbacktest $ python -m build $ pip install dist/bitbacktest-*.w…

Pythonパッケージの作成~.whlビルドまで

cookiecutterのインストール pip install cookiecutter テンプレートを使ってプロジェクトを生成 cookiecutter https://github.com/audreyfeldroy/cookiecutter- pypackage プロンプトに従って必要事項を入力。 依存関係をインストール pip install -r requi…

Pythonでリングバッファ作るならcollections.dequeが速い

表題の通り。以下のようにリングバッファのクラスを作成し性能を比較した。(検証環境:GoogleColab) from collections import deque class DequeRingBuffer: def __init__(self, size): self.size = size self.data = deque(maxlen=size) def append(self,…

PythonのPanelライブラリでJavaScriptを実行する方法

Panelライブラリでは直接JavaScriptを実行するインターフェースは提供されていない。ただし、pn.pane.HTML()で疑似的にJavaScriptを実行することができる。 例としては以下のような感じ。 def copy_to_clipboard(text): return f""" <script> function copyToClipboa…

AiraloのeSIMの使い方とトラブルシューティング

先日マチュピチュへ旅行した際、どれが一番安くネットを使用できるのだろうと調べたところ、AiraloのeSIMが最も安かった。 使用感としては、開通に少々手間取ったが、開通後は特に問題なく使用できていた。マチュピチュへ行く途中の鉄道などよっぽどの田舎以…

【プログラミング学習】Pythonで業務効率化アプリを作ろう

Pythonで業務効率化アプリを作成する方法を紹介します。プログラミング学習にどうぞ。 流れとしては以下の通りです。環境構築から、要件定義、設計っぽいものも行います。 開発環境構築 何を作るか決める(いわゆる要件定義) 機能を決める(いわゆる外部設…

FlaskでRuntimeError: Working outside of application context.というエラーが発生

以下のようにFlaskやeventletをImportしようとしたらエラー。 from flask import Flask, render_template, request from flask_socketio import SocketIO, emit, join_room, leave_room import eventlet eventlet.monkey_patch() エラー↓ $ python3 app.py A…

職務経歴書の書き方

はじめに 職務経歴書の書き方をまとめる。本記事はSWエンジニア向けの内容になる。 職務経歴書の書き方 職務経歴書のテンプレートは、dodaが無料で配布している以下のドキュメントを参考。このテンプレートをベースに、職務経歴書の書き方について項目ごとに…

GStreamerカスタムエレメントの作成方法

GStreamerカスタムエレメントの作成方法を調べたのでメモ。 参考↓ gstreamer のエレメントを作る 上記ページではSinkエレメントを作成してるが、今回はtransformエレメントを作成する。 とりあえず、参考ページと似たような感じで作成していく。 $ cd ~/work…

簡単プロキシ設定

(ほぼ)コピペだけで、Ubutnuのプロキシ設定を行えるようにした。 前提:HTTPSでアクセスする場合は、システムの時刻合わせしてから行うこと。時刻合わせしていないと、証明書のエラーになる。 準備 準備としてパスワードとプロキシサーバを一時的に環境変…