蛇ノ目の記

技術のことも。そうでないことも。

ライブラリ

midoを使ってPythonでMIDIファイルを作る - テキストからメロディを作ってみた

半年以上からMIDIコントローラーを買ったりしていたものの何もしないまま歳を越してしまったわけだが、とうとう軽く触ってみることを始めた。 とりあえず『ゼルダの伝説 時のオカリナ』の"時の歌"を打ち込んでlofiっぽい感じにして遊んでみた。 ゼル伝『時の…

アイドルで理解するiCalendar

Webサイトをスクレイピングしてイベント情報を取得、iCalendar形式で出力してGoogleカレンダーにインポートできるようにした、という話。 リポジトリ github.com 背景 3/13(土)に開催されたIDORISE!! FESTIVAL 2021で初めて観たCYNHNがあまりにかっこよく、…

PythonでQRコードを生成してXMLに変換する

PythonでQRコードを生成してXMLに変換する話。 qrcodeというパッケージを使う。 pypi.org 8月半ばに作ったWebアプリでXMLに変換したQRコードを使っている。 nao-y.hatenablog.com QRコードのSVGを生成する話は以下のブログが詳しい。 tokibito.hatenablog.co…

Python3.7でDiscord.pyを動かすときの躓きどころと対策

近頃、またDiscord botを作っている。 Python.3.7に上げたことによってDiscord.pyが動かないという現象に見舞われたので対策をメモ。 発生したエラー このissueと同様のエラーが発生した。 github.com 対策 This library does not support 3.7. This error i…

herokuのProcfileに書くgunicornのコマンドにハマった話

herokuで動かすWebアプリがどんなプロセスを使うかを定義するProcfile。 Procfileはドキュメントルートに置き、例えばFlask + gunicornを使うときには web: gunicorn app:appとする。古事記にもそう書いてある(heroku公式ドキュメントやいろいろなブログ) he…

ユニットテストで躓いたところ - mock.patch()

単純なスクリプトのユニットテストを書いていて躓くことがあったので、解決法をメモ。 例えばこんな、おみくじをするだけの簡単なスクリプトがあるとする。 import random fortunes = { 1: '凶', 2: '吉', 3: '大吉' } number = random.choice([1, 2, 3]) fo…

BokehでグラフをJavaScriptとして出力してWebページに埋め込んでみた

グラフをWebページに埋め込んで、インタラクティブなWebアプリっぽくしたい。でもJavaScriptわからない。そんなときにBokehのembed.componentsを使おう。 Bokehのバージョンは0.13.0を使っている。 bokeh.pydata.org componentsに描画するグラフのFigureオブ…

BeautifulSoup4でコメントタグの中身を取得する方法に腹落ちするまでの話

同人音楽即売会M3の出展サークルリストから、サークル名やキーワードを抜こうとしている。何に使うかは未定だけど。 サークルリスト 2018年春 | M3 - 音系・メディアミックス同人即売会 を見てわかるように スペース, サークル名, 概要 となっている。サーク…

OverpyでOpenStreetMapのデータを取得して位置情報を可視化する話

4月末に近づいた頃にようやく今月初めての記事。あまりに書かなすぎた。 だいぶ前になるけど、OpenStreetMap(OSM)からガソリンスタンドの位置情報を取得してプロットしたデータアートめいた画像を見た。なにこれかっこいい。 Population density through the…

Bleachってなによ

ジャンプで連載してたやつではなく(念のため) 卍解とかもしない(念のため) 仕事で出会ったHTMLサニタイズライブラリなのだけど、日本語の情報がとても少ないのでちょっとまとめたい。 貴重な日本語の情報 www.ianlewis.org Bleachとは Bleach — Bleach 2.1.1…