めもちょー

メモ帳代わりに使っています。

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

ブログに上げる画像の加工サーバーを作った

旅行記を書いているのですが、流石に何百枚とアップロードしているのに無加工は厳しいと思い画像の右下にロゴを入れる簡易アプリケーションを作りました。 写真の取り込みはWindowsで行うため、ローカル環境でWindowマシンからアクセスし、Ubuntu上で加工が…

nba_apiからAPIのドキュメントを生成する

全endpointのドキュメントを作るためのスクリプトはコチラ import inspect import json import os from dataclasses import dataclass from typing import Any, Union from nba_api.stats import endpoints DIR_PATH: str = "endpoints" REJECT_ARGS = ["pro…

Workload Identity連携をしてGitHub ActioinsからCloud Functionsをdeployする

Workload Identity連携とは 何が嬉しいのか どういう仕組みか 設定の仕方 事前準備 Workload Identity Poolの設定 IdP (Identity Provider)の登録とWorkload Identity Poolの追加 外部IDがサービスアカウントを使えるようにする workflowにdeploy jobを記述…

LSDをインストールしてlsコマンドの結果にアイコンをつける

前置き fontのインストール ソースのインストール Ubuntuにフォントを登録 alacrittyに設定 lsdのインストール aliasの設定 前置き 下記の端末のようにlsdコマンドでファイルやディレクトリにアイコンをつけることができましたのでやり方をご紹介します。 環…

FlourishでBar Chart Raceを作成しPremiere ProとPhotoshopで加工する

基本的な作り方 FlourishでBar Chart Raceの基本的な作り方はたったこれだけです。 CSVデータの準備(Flourishでは各国の人口推移のデータが初期セットされています、自分で容易したデータも使えます) グラフの体裁を整える 工夫した点 累計データでBar Cha…

MySQLの全文検索インデックス構築にMeCabパーサーを利用する

全文検索について 準備 コンテナ起動 初期状態確認 データの用意 MeCabパーサーを使う 最小長の設定を変えてみる 参考 全文検索について 全文検索についてはコチラの記事を参照してください。 この記事ではデフォルトの全文検索インデックスの作成および、N-…

MySQLで全文検索を使ってみる

はじめに grep型 index型 基本事項 転置インデックス stopword トークンサイズ 実験 準備 テーブル作成・データ挿入 インデックスの確認 全文検索を実行してみる N-gramパーサーの使用 MeCabパーサーの使用 参考 はじめに 「全文検索」とは複数の文書から特…

nba_api のendpoint 一覧をまとめた

ChatGPTを使いnba_apiの各エンドポイントの概要を教えてもらいました。 alltimeleadersgrids assistleaders assisttracker boxscoreadvancedv2 boxscoredefensive boxscorefourfactorsv2 boxscorematchups boxscoremiscv2 boxscoreplayertrackv2 boxscoresco…

『SQL実践入門』よりDBMSアーキテクチャのメモ

DBMS クエリ評価 一時メモリ データキャッシュ ログバッファ ワーキングメモリ DBMS DBMSの役割は下記図のようである。 クエリ評価 我々は、データを探すときに「何を、どのように」探すかを指定する必要がある。 何を:xxxの条件に合うデータを どのように…

プリンシプル オブ プログラミング メモ

2章 2.1 KISS 2.2 DRY 2.3 YAGNI 2.4 PIE 2.5 SLAP 2.6 OCP 3章 3.7 ロジックとデータの一体化 3.20 参照の一点性 3.26 信頼性 3.34 線形原理 3.35 明証原理 3.36 安全原理 3.37 UNIX思想 3.46 表現性の原則 3.47 驚き最小の原則 3.48 沈黙の原則 3.51 生成…

MySQLの暗黙的COMMIT

DDLとは 暗黙的コミットとは DDLの暗黙的コミットの例 参考 DDLとは DDL(Data Definition Language)とは日本語では「データ定義言語」と言い、一言で言えばCREATE, DROP, ALTER文のことです。 暗黙的コミットとは DDLではトランザクションを張れません。 D…

PythonのFakerモジュールを用いてDBにダミーデータを100万件挿入する

はじめに Fakerについて ダミーデータの挿入 tableの準備 挿入スクリプトを書く データの確認 はじめに こちらの記事ではUNIONとCROSS JOINを用いてダミーデータをSQL内で生成する方法を書きました。 memo.geso.site今回はPythonのFakerというモジュールを用…

『Pythonのレベルを上げる12のデコレータ』メモ

はじめに logger wraps lru_cache repeat timeit retry countcall rate_limited register singledispatch はじめに このような記事を見つけました。 functools等で提供されているデコレータではなく、使用頻度の高いデコレータを独自に実装しようという試み…

MySQLのパラレル操作についての実験

準備 データベースの作成 データの用意 実験 1スレッドでの実行 16スレッドでの実行 感想 参考 準備 データベースの作成 $ docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secr…

MySQLのテーブルに100万件のダミーデータを挿入する

クエリの実行速度の実験などで100万件規模のレコードを操作したい場合の環境を構築する方法をまとめました。 環境構築 コンテナ作成 DB作成 データ挿入 考え方 テーブルの作成 実際に100万件のダミーデータを挿れてみる 追記 環境構築 コンテナ作成 $ docker…

金色のガッシュの魔物生存期間の可視化

TSVに(名前, 登場話, 退場話)を記録 (記録するために全巻読みました) 名前 登場話 退場話 メモ ガッシュ 1 322 レイコム 4 6 ゴブレ 7 10 ブラゴ 7 321 スギナ 13 15 コルル 16 18 フェイン 19 20 フリガロ 22 22 エシェロス 22 25 キャンチョメ 27 301…

MySQL JSON型

準備 JSON型カラムを持つテーブルの作成 JSON型のレコードの挿入 値の抽出 配列の操作 参考 準備 $ sudo docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secret-pw -h127.0.0.1…

MySQL 空間情報型

準備 空間情報の型 空間情報の表し方 空間情報に対しての関数 地球上の位置情報 参考 準備 $ sudo docker run --platform linux/x86_64 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest $ mysql -uroot -pmy-secret-pw -h127.0.0.1 -P330…

dotfilesをgit管理する

前書き 管理方法 GitHubにリポジトリdotfilesを作成 既存のファイルをローカルリポジトリ内に移動します。 リンクを定義するシェルスクリプトファイルを作成 前書き 自分のUbuntu 22.04 LTS環境でdotfilesを管理する方法が落ち着いてきました。 下記のリポジ…

MySQLでUPSERT

導入 UPSERTの実現 検証 準備 Docker環境の用意 database, tableの用意 INSERT ON DUPLICATE KEY UPDATE REPLACE 備考 INSERTとAUTO_INCREMENT KEYについて 導入 UPSERTの実現 MySQLにはUPSERT構文が用意されていないため次のフローチャートにしたがってUPSE…

MySQLでJSONを要素とする配列を平坦化し集計する問題

目次 事例 環境の用意 MySQLのコンテナを立ち上げ MySQLクライアントから接続 データの準備 データベース作成 テーブルの設計 データの挿入 データの確認 JSONに対する基本操作 JSONのあるキーの値を取得 配列を平坦化 商品のカテゴリごとにグループ化 事例 …

Ubuntu 22.04 LTS フォントの変更方法

フォントファイルをインストール 今回はMacのフォントを使いたかったためコチラのサイトからSF-Monoを選択 $ cd path/to/downloaded_font_directory $ 7z x SF-Mono.dmg $ cd SFMonoFonts/ $ 7z x "SF Mono Fonts.pkg" $ 7z x "Payload\~" $ mkdir ~/.fonts …

Iterator生成関数をスクラッチ実装

前置き 実装済 chain.from_iterable(iterable) count(start, step) cycle(iterable) groupby(iterable, key=None) pairwise(iterable) dropwhile(predicate, iterable) takewhile(predicate, iterable) filterfalse(predicate, iterable) starmap(function, …

flogを使ってfake logを生成する

テスト用のログを自動生成してくれるflogを検証しました。 github.comJSON形式のログを10000件logディレクトリにhoge.logというファイルで生成する。 $ docker run -it -v ${PWD}/log:/log --rm mingrammer/flog -t log -f json -o /log/hoge.log -n 10 $ wc…

DockerでMySQL

この記事はMySQLのリファレンスから要所をメモ及び、コマンドの実施結果のメモです。 dev.mysql.com目次 MySQLサーバーをたてる 永続化 追加スクリプト 別のDockerコンテナ内のアプリケーションからMySQLへ接続する Enterprise Backupの使用 MySQLサーバーを…

gitの使い方をGUIで理解できるgit-simを試してみた

git

git-simと呼ばれるgitの挙動を可視化してくれるOSSが話題になっているので試してみました。 github.com目次 導入 挙動 実験 感想 導入 Ubuntuの場合、公式のやり方に従えば問題なく導入することができました。 sudo apt update sudo apt install build-essen…