みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

rusqlite を windows でコンパイルする

rusqlite を利用して Rust で作成したソフトウェアが,Ubuntu と macOS でコンパイルできるのに,Windows 11 だと以下のエラーでコンパイルできない問題に遭遇しました. note: LINK : fatal error LNK1181: cannot open input file 'sqlite3.lib' 公式ドキ…

devcontainer に巨大なファイルをコピーする

Visual Studio Code で devcontainer を利用した開発環境はとても便利です.しかし,vscode にサイズが 30 GB のファイルをドラッグ・アンド・ドロップしてコピーしようとしたら,転送速度が 10 MB/s 程度しか出ませんでした.この速度では,完了するまでに …

Ubuntu で SSD の寿命を確認する

smartctl コマンドを使用します. Ubuntu Manpage: smartctl - Control and Monitor Utility for SMART Disks $ sudo apt install smartmontools ディスクを検索する $ smartctl --scan /dev/nvme0 -d nvme # /dev/nvme0, NVMe device 環境によって結果は異…

Rust と Python で文字数を数える

環境 検証に使用した環境は,以下の通りです. Python 3.11.3 (main, Apr 11 2023, 16:14:10) [GCC 10.2.1 20210110] on linux rustc 1.68.2 (9eb3afe9e 2023-03-27) on linux 文字列を数える Python ならば len() 関数を使うだけです. >>> len("りんご") 3…

Rust で気軽に並列処理をする

Rust の rayon の紹介です.驚くほど簡単かつ安全に並列処理を行えます. Cargo.toml [package] name = "thread-pool-sample" version = "0.1.0" edition = "2021" [dependencies] chrono = "0.4.24" rayon = "1.7.0" rustc 1.68.2 main.rs use chrono::prel…

並行処理 (concurrent) と 並列処理 (pararell) を確実に覚える

英語ならば, concurrent と pararell ですぐに分かります. 日本語は「並行」と「並列」という単語が非常に似ていてややこしいです.ただでさえ「行」と「列」は間違いやすいのに,並ぶという字が前に付くと,別の類似する概念を表します. 行は横方向,列…

Ubuntu で電源ボタンの動作を変更する

Ubuntu で電源ボタンの動作を変更するには, /etc/systemd/logind.conf を編集します. 電源ボタンを無効にする 電源ボタンを押しても何もしてほしくない場合は ignore を設定します. HandlePowerKey=ignore 電源ボタンで電源を切る HandlePowerKey=powerof…

Dev Container で Tauri を用いた GUI 開発

Docker 環境で GUI の開発ができないだろうか,と思ったので調べてみたところ, fluxbox というウインドウマネージャーを使用した,ブラウザーで接続可能なデスクトップ環境があるそうで,これは Dev Container Features の Light-weight Desktop を使用すれ…

Dev Container Features で全部入り開発環境を作成する

Dev Container を利用して Docker 環境で開発をすると,それぞれのプロジェクトについて自由に依存関係を構成することが可能になり,大変便利です.しかし,開発に必要なライブラリを1個のコンテナに準備する必要があり,準備が大変でした.それでも一度全部…

tfsec google-iam-no-project-level-service-account-impersonation

Terraform でインフラストラクチャを管理している場合, tfsec を使用することで,セキュリティとして好ましくない設定を簡単に検知できます. https://aquasecurity.github.io/tfsec/v1.28.1/ tfsec is a static analysis security scanner for your Terraf…

UA, GA4, FA, Hatena のアクセス解析を比較する

以下の4個のアクセス解析サービスをはてなブログに導入して,測定結果を比較してみました. Universal Analytics Google Analytics 4 Fathom Analytics Hatenaブログ アクセス解析 方法 2023年に,4個のサービスのトラッキングコードを同じブログに1ヶ月間導…

Testcafe Visual Selector Debugger

TestCafe v2.4.0 から,Debug mode の時に Selector を入力して該当する要素が存在するかどうかを表示してくれる機能が追加されたようです*1. Pick ボタンを押すと,Selector が自動生成されます. 入力ボックスに Selector を入力すると,該当する要素が存…

TVアニメ「86-エイティシックス-」のウェブサイトのマウスカーソルについて

CSS

anime-86.com TVアニメ「86-エイティシックス-」のウェブサイトのマウスカーソルが凝っていたので,どうやって実装しているか見てみました. トップページでマウスを移動させると,赤いような青いような円形のカーソルが追従します.よく見ると背景によっ…

2623561561を素因数分解する

www.youtube.com 2623561561 を素因数分解する動画がありました.手計算で頑張っていました.もちろん人間が素因数分解するには大変な計算量だということは分かりましたが,パソコンならばどれぐらいで実行できるのか気になったので試してみました. 最小の…

Service Worker のキャッシュに悩まされた

Service Worker を有効にした状態でウェブサイトを開発していたところ,以下のエラーが発生して,CSS が読み込まれない現象に遭遇しました. Refused to apply style from "..../xx.css" because its MIME type ('text/html') is not a supported stylesheet…

Google Analytics の廃止

今までは Google Analytics を使用してアクセス解析をしてきましたが,2023/04/05 に同サービスの使用を終了いたしました.合わせてプライバシーポリシーを改定いたしました. みーのぺーじはこれまで通り運営いたします.今後ともなにとぞよろしくお願い申…

Dev Container でゾンビプロセスに対応する

Dev Container を使用していると,ゾンビプロセスが大量発生することに気づきましたので,init を有効にすることで解決しました. 現象 htop コマンドで確認すると,10個以上のゾンビプロセスが発生しています. 解決方法 Docker container で init を最初に…

gRPC の通信を Wireshark で観察する

gRPC の通信の中身が気になったので,Wireshark でパケットキャプチャして観察しました. Wireshark のインストール Wireshark · Go Deep M1 MacOS 用の Wireshark が公開されているのでダウンロードしてインストールします.権限が不足している場合は "Inst…

Python で非同期処理の gRPC を使用する

gRPCが流行っているようなので,アプリケーションの開発に取り入れるために,Pythonで非同期処理に対応したgRPCを使用する方法について,検討してみます. 教科書を読む gRPCは様々な言語に対応しており,多くのライブラリが開発されているため,汎用性が高…

M1 MacOS の Docker CLI で compose を使う

M1 MacOS で,Docker CLI と docker compose を使用する方法をまとめます.Docker Desktop は使わずに準備します. Docker CLIをインストール 以下のウェブサイトからダウンロードします. https://download.docker.com/ ダウンロードしたファイルを展開して…

一見動作しているウェブサイトがGoogle Search Consoleで取得できない

動作しているように見えるウェブサイトを公開して,Google Search Console で確認したところ,コンテンツの読み込みが途中で止まってしまい,正常に取得できない問題が発生していました. どうやらページを読み込む最初の部分で,javascriptからxhrで読み込…

多数のページのウェブサイトはSSGで作りにくい

ページが1万個を超えるウェブサイトを静的サイトジェネレーター(SSG)である VitePress を用いて作成しようとして,根本的な問題が生じることが分かりました. VitePress で生成されたproduction用の全てのhtmlファイルには,hashmapが挿入される*1ため,以下…

Milsker を公開しました

日本の法令を素早く簡単に検索・観覧できるウェブサイト Milsker を公開しました. milsker.atsuhiro-me.net ブラウザー環境で動作する日本の法令の構文解析を実装しました.法令の文章中の条番号や法令へのリンクが自動生成されます. 法令全体を観覧するこ…

クラウドプロバイダのシェア

Synergy Research Group が公開している情報によると,2022 Q4 は全世界で610億ドル ($61 billion) を超える料金がクラウドインフラストラクチャサービスに支払われているそうです.シェアの推移は以下のグラフようになっています. *1 Amazon が 3割,Micro…

Pythonで現在時刻を取得する関数の比較

Pythonで実際に測定してみました. import datetime from benchmarker import Benchmarker def validate(): native_now = datetime.datetime.now() assert native_now.tzinfo is None # native_utcnow = datetime.datetime.utcnow() assert native_utcnow.tz…

macOS のインストールイメージの配信サーバーが速い

macOS Ventura のインストールイメージをダウンロードしたら,52.8 MB/sec の速度でした.つまり,422 Mbps です. インストールイメージをUSBスティックに書き込む速度は6.97 MB/sec で,55.8 Mbps でした.USBスティックの書き込み速度よりも速いのは驚き…

SHA256よりもSHA512が速いらしい

結論はタイトルの通りですが,pythonで実際に測定してみました.16 bytes, 256 bytes, 4096 bytes, 65536 bytes, 1048576 bytes の長さの文字列を用意して,MD5, SHA256, SHA512 の3種類のハッシュアルゴリズムを使用してハッシュ値を取得するまでの時間を計…

Terraform で GCS Bucket を削除するのに苦労した

Google Cloud Storage (GCS) の,とある Bucket を Terraform で管理していたのですが,不要になったので削除することにしました.何も考えずに google_storage_bucket を tf ファイルから削除して,terraform apply を実行しましたが,以下のようなエラーメ…

docker/setup-buildx-action で複数のイメージを扱う

GitHub Action で,docker/setup-buildx-actionを用いて複数のイメージを扱ってみます. 前提条件 簡単な例として,pip コマンドで依存関係を解決して,結果を表示する Docker イメージをビルドします. Dockerfile FROM python:3.11-slim-bullseye WORKDIR …

エクセルでウェブサイトの表を取り込む

エクセルでウェブサイトの表を取り込むには,コピー・アンド・ペーストではなく,エクセルの機能を使用する方が簡単です. 例えば以下のようなウェブサイトから検索結果をエクセルに取り込んでみます. 動物用医薬品等データベース エクセルの「データ」→「…