at backyard

Color my life with the chaos of trouble.

音声合成エンジンのVOICEVOXをMac上のDocker Desktopで試す

音声合成エンジンのVOICEVOXをMac上のDocker Desktopで試す 商用・非商用問わず無料で利用できる(※)という、音声合成エンジンのVOICEVOXをMac上で試すために、OSS版を手元で動かしてみることにした。 (※詳しくは各キャラクターの利用規約を参照とのこと。ま…

Seleniumで現在利用しているChromeのUser Agentを取得する方法

Seleniumで現在動かしているChromeのUser Agentを取得する方法について調べたので、備忘録がてら書き残しておく。 といっても仕組みは単純で、例えばChromeの場合、下記のようにConsoleを開いてnavigator.userAgentと打つことでUser Agentは取得することがで…

Seleniumとwebdriver-managerを使っていてDeprecationWarning: executable_path has been deprecated, please pass in a Service objectが出たとき

Selenium + webdriver-managerを使っていて、下記のようなwarningが出た。 DeprecationWarning: executable_path has been deprecated, please pass in a Service object コードとしては下記のように書いていたが、 from selenium import webdriver from web…

Pythonのsubprocess.Popenでファイルを開こうとすると【[WinError 2] 指定されたファイルが見つかりません】

Windows環境でsubprocess.Popenでファイルを開こうとすると【[WinError 2] 指定されたファイルが見つかりません】というエラーがでる MacとWindowsどちらにも対応したアプリを書いていて、とある処理でPythonのsubprocess.Popenを使って指定したファイルを開…

Wordle、面白い

最近海外のTwitter界隈で流行っているらしい?Wordleを今更ながらプレイしてみた。 www.powerlanguage.co.uk Wordleのルール ルールは簡単 ゲームとしては単純な5文字の単語当てゲーム 6回まで試せる 正解した文字を入力すると、その文字は緑色で表示される …

Pythonのsqlite3を用いてDBからの取得結果をdictで返すサンプルコード

タイトルのようなことをしたかったのだが、検索してみると理解が間違えている(?)日本語の記事が普通に検索結果上位に出てきたので、自分の方でも改めて記載しておくことにした。 fetchoneを使って指定したデータをdict形式で取得する方法 サンプルコードを下…

Python3で最大の整数を取得する関数 - sys.maxsizeについて

Python3 では表示できる整数の上限というのはないらしい。 (逆に言うとPython2ではあったようで、そちらの値は sys.maxint という関数で値は取得できた。だが、Python3ではこちらの関数自体がなくなっている) 整数の上限はないようだが、最大値を示す整数を…

Denoのsubprocessを用いたtestでTest case is leaking resources.というエラーが出るときの対応方法

Denoのテストで下記のようにsubprocessを使って、コマンド実行結果をテストしようとした。 Deno.test({ name: "test name", fn: async () => { const p = Deno.run({ cmd: [ /*コマンド*/], stdout: "piped", }); const { code } = await p.status(); // 返…

M1 Mac環境でのcx_Freezeの実行ファイル作成までのメモ

Pythonで配布可能な実行ファイルを作成する際に有効な手段としてcx_Freezeがある。 少し前に下記のポストでも書いたが、似た選択肢としてはpyinstallerがあるが、こちらはライセンスがGPLなので、例えば商用で利用するようなケースでは厳しくなってくる。 そ…

JavaScriptで動的に関数の引数を与える場合はスプレッド構文を使えばよかった

最近、こういう使い方もできるのかと学んだので備忘録がてら残しておこうと思ったのだが、書き始めてからMDNを参照したら、自分がこれから書こうと思ったそのままの例が載っていて、自分の知識の無さに幻滅した次第。 developer.mozilla.org せっかく書き出…

colors.jsの今回の問題で我々が対応すべきことについての個人的なメモ(実務的な部分のみ)

colors というnpmパッケージの最新versionについて意図的に悪意のあるコードが実行されるようになっている。 こちらの問題のあるversionなどの具体的な内容についてはazuさんが分かりやすくまとめてくれているので、こちらを参照してみるのが良い。 zenn.dev…

tkinterでLabelのテキストを変更する方法

tkinterのLabelのテキストを変更する方法に関する備忘録。 Labelのテキストを変更する方法は簡単で、tk.Label で生成したLabelインスタンスの text 属性を変更することで、テキストを変更することができる。 具体的には label["text"] = "変更後のテキスト" …

pyinstallerをmacで利用したときに"OSError: Python library not found: libpython3.10m.dylib, libpython3.10.dylib, Python3, .Python, Python" というエラーが出た場合の対応手順メモ

pyinstallerを利用したときのエラー対応に関する備忘録です。 目次 目次 環境 事象 対応方法 余談: pyinstallerのライセンスはGPLなので商用利用などには注意 pyinstallerがGPLで使えないなら、cx_Freezeという選択肢? 追記: ちょっと触ってみたが自身の環…

tkinterとsqlite3を使ってGUIアプリを作ってみる

tkinterとsqlite3(SQLite)を使ってみた際の備忘録です。 sqlite3でdatetimeを(擬似的に)扱う方法については下記を参考にしている。 qiita.com 色々と実装例を見ていると、フロントエンドとバックエンドで構成するほうが良さそうだが、今回はサンプルというこ…

tkinterのgirdを使ったウィジェットの配置について

あけましておめでとうございます。2022年もよろしくおねがいします。 昨晩は妻からプレゼントしてもらったニューマットレスを敷いて寝たのですが、マットレスが変わるとこうも寝心地が変わるものかと驚いています。 まるでホテルの良質なベッドで寝たかのよ…

2021年を振り返る

2021年も早いものでもう終わりなので、いくつかのトピックに絞って振り返っておこうと思う。 目次 目次 自身の仕事について 子育て YouTubeチャンネルについて 音楽について Google AdSenseの収益が伸びた年 まとめ 自身の仕事について 諸事情により去年から…

node-fetchでError [ERR_REQUIRE_ESM]: Must use import to load ES Module:というエラーが出たときの対応について

node-fetchでError [ERR_REQUIRE_ESM]: Must use import to load ES Module:というエラーが出た これについての明確な答えが下記のstack overflowにあった。 stackoverflow.com node-fetchはv3からESM専用モジュールとなったよう。そのため require でインポ…

PWAアプリにmaskableアイコンを追加する方法

Lighthouseで計測したところ下記のような要修正項目が現れた。 該当する下記のページを読んでみると、maskableアイコンとはどうやらすべてのAndroidデバイスで美しく表示されるアイコンフォーマットらしい。 ちなみにマスキング可能なアイコンフォーマットに…

tkinterでPython GUIプログラミング入門

PySimpleGUIは触っているが、その下のレイヤーで動くtkinter自体は触ったことがなかったので、このタイミングで入門してみようと思う。 一通りtkinterを使ってGUIアプリを作れるようになるところまでをこの記事内に書いていく。 長くなると思うので目次を要…

PySimpleGUIとtkinter、それぞれでHTMLのURLリンク(ハイパーリンク)をテキストフィールドに作る方法

目次 目次 PySimpleGUIでHTMLのURLリンク(ハイパーリンク)をテキストフィールドに作る方法 Pythonでブラウザを起動する方法 PySimpleGUIの画面上にハイパーリンクを実装したサンプル テキストに対してイベントを付与する tkinterでHTMLのURLリンク(ハイパー…

インストールされているChromeのversionに応じたchromedriverを勝手にインストールしてくれるwebdriver-managerが便利

SeleniumからChromeを扱う時、現在PCにインストールされているChromeのversionに応じたchromedriverを自身でインストールしておく必要がある。 ただ、Chromeのversionは定期的に新しくなるため、Chromeのversionが更新された際には対応するChromeのdriverを…

GitHubでコミットログを打ち間違えてリモートにpushしてしまった際の対応案

このポストは git commit --amend でコミットログを修正してからリモートブランチにforce pushする、というような内容ではない。 (当然ながら上のような行為を共有リポジトリで行うのは大変危険なことである。) ここで書く内容は非常に牧歌的な内容だ。 GitH…

Macのコマンドライン上からChromeをシークレットモードで開く方法

ごくたまに(年に2,3回)、ターミナル上からChromeのシークレットモードでHTMLファイルを開きたい時がある。 最初に結論から書くと、下記の一行で行ける。 open -n -a "Google Chrome" --args -incognito <開きたいファイル(htmlなど)> ちなみにこの開きたいフ…

Denoのtestでネストしたテストを書く方法

目次 目次 Denoのtestでネストしたテストを書く方法 --unstableをつけないで実行した場合(Deno v1.17) t.stepにはawaitをつける必要がある 1.17よりネストしたテストに関する情報がより充実した模様 Deno 1.18よりネストしたテストを行う際の --unstable フ…

PySimpleGUIで簡単な計算機を作ってみた

PySimpleGUIを試すがてら、簡単な計算機を作ってみました。 PySimpleGUIで作った計算機 2つのフォームに計算したい数値を入れてラジオボタンで足し算、引き算、掛け算、割り算を選択し、Submit を押せば、その下の窓に計算結果が表示されます。 目次 目次 P…

PySimpleGUIでポップアップの結果に応じて処理を変えたい時

PySimpleGUIを触っていると、popup関数を使うことは多いと思います。 この popup関数、様々なバリエーションが用意されており、例えばpopup_yes_noを使って下記のようなコードを書いてみることが可能です。 import PySimpleGUI as sg pressed_text = sg.popu…

Mac環境でpyinstallerを使ってOSError: Python library not found: libpython3.9m.dylib, Python, Python3, libpython3.9.dylib,というエラーが出た場合の対処方法

Mac環境で作成しているPythonプログラムを実行ファイルにまとめようとした際に発生したエラーの備忘録です。 実行ファイルにはpyinstallerを用いています。 github.com なお環境としてはM1チップのMacBook Airを使用しており、Pythonはpyenvを通じてインスト…

Wikipediaの文章素材を二次利用する際のライセンス周り

調査してみた際の備忘録。 基本的な内容は下記に記載がある。 Wikipedia:ウィキペディアを二次利用する - Wikipedia メモ ウィキペディアの文章素材はCC-BY-SA 3.0の条件のもとで利用できる。 また特記がない場合はGNUフリー文書利用許諾契約の条件のもとで…

NIRUさんのボタン配置を参考にApex Legendsでモンハン持ちにチャレンジしている話

NIRUさんのApex Legendsのボタン配置について 最近Apex Legendsで、もう少しキャラコン周りを強化したいと思うようになった。 私は完全にエンジョイ思考、というか、楽しめればいいやという形でゲームをプレイしていて、勝つために練習をするとかそういうこ…

Denoでfetchを用いてEUC-JPのサイトをスクレイピングするときのサンプル

Denoを使ってスクレイピングする処理を書いていた際に、データ取得元のサイトがEUC-JPだったため文字化けを起こしていました。 Denoを使っている場合、こういうケースはどうすれば良いのか調べたので備忘録として残しておくことにします。 (というか、Deno特…