- 1. AtCoder Beginner Contest 221 参戦記
- 2. Azure の使用料金を Teams の チャネル に POST してみました 【Subscription-Daily編】
- 3. Python SQLAlchemyとPostgreSQLをローカルで試せる環境を作りました
- 4. AtCoder ABC221 挑戦!
- 5. pixivpyを使ってpixivから画像を取得する
- 6. ABC221 C – Select Mul が解けた
- 7. 様々な言語での日時表記
- 8. selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH.
- 9. 片耳でだけ聞こえる音を2つのスピーカーでつくれるか トランスオーラルシステム
- 10. LP測量グリッドデータをラスタ化
- 11. プロ野球ファンが”今日のベストナインbot”を作ってみた
- 12. python の TypeVar を最もシンプルな例で理解する
- 13. kivyMDチュートリアル其の参什陸 Components – NavigationDrawer(Twitterクローンもどきもあるよ)篇
- 14. [Poetry] [Windows10] “ValueError File .. pypoetry\ *.whl does not exist” を解決する
- 15. webページをPythonとSeleniumで自動入力する
- 16. コンピュータとオセロ対戦12 ~機械学習、方針決定2~
- 17. DjangoにおけるSQLインジェクション
- 18. PuLP で変数の和や内積を計算する際の注意点
- 19. Arch LinuxにJupyterLab Appをインストールする方法
- 20. [メモ] docker-compose による Bottle の構築
AtCoder Beginner Contest 221 参戦記
# AtCoder Beginner Contest 221 参戦記
## [ABC221A – Seismic magnitude scales](https://atcoder.jp/contests/abc221/tasks/abc221_a)
1分半で突破. 書くだけ.
“`python
A, B = map(int, input().split())print(32 ** (A – B))
“`## [ABC221B – typo](https://atcoder.jp/contests/abc221/tasks/abc221_b)
5分で突破. エレガントに書く手段が思いつかなかった……. エレファントだなあ.
“`python
S = input()
T = input()a = []
for i in range(len(S)):
if S[i] != T[i]:
a.append(i)if len(a) == 0 or (len(a) == 2 and a[0] + 1 == a[1] and S[a[0]] =
Azure の使用料金を Teams の チャネル に POST してみました 【Subscription-Daily編】
## 概要
[この記事(Python で Azure の サブスクリプション単位で使用料金 を取得してみました)](https://qiita.com/turupon/items/c0e9796c27dec6b04f93) のPythonプログラムを Azure Functions に登録して自動実行させ、その結果を会社の情報共有ツールとして利用している Temas のチャネルに POST し、少しでもAzureの使用料金削減につながれば、、、、、、と。### 実行環境
macOS Big Sur 11.1
python 3.8.3
Azure CLI 2.28.0
Azure Functions Core Tools 3.0.3785
Azure Function Runtime Version: 3.2.0.0—
## 事前の準備
### 実行するプログラム用の ServicePrincipal の作成
[この記事](https://jpazureid.github.io/blog/azure-active-directory/azuread-clients
Python SQLAlchemyとPostgreSQLをローカルで試せる環境を作りました
表題の通り、SQLAlchemyの動きをローカルで確認しながら実装したかったので、環境を作りました。
また、誰でも使えるように、githubに公開しました。https://github.com/engineer-taro/sql-alchemy-postgres-test
# 何に使うか
SQLAlchemyの動作が分からず、簡単にローカルで試したいときに使ってみてください。
SQLAlchemyは英語ドキュメントしかなく、私が実装した際にも動きが分からないところが多くあったため作成しました。# 使用方法
ここからはREADMEファイルに記載してある内容です。
READMEファイルと内容に齟齬がある場合、READMEの方を信用してください。1. Docker の起動
1. Python 仮想環境の起動
1. テストしたいコードの実装## Docker の起動
1. docker フォルダに移動
1. `docker-compose up -d`コマンドを実行
1. 5432 ポートにて PostgreSQL の環境が立ち上がっていることを確認## Python
AtCoder ABC221 挑戦!
ABC221、コンテスト3回目の挑戦です!
ついにC問題を落としてしまう。
着眼点は良かったが、抜け漏れがあった。悔しい。。。“`ruby:ABC221A
A, B=map(int, (input().split()))# 32**{(A-1)-(B-1)}=32**(A-B)が答え。
print(32**(A-B))
“`そのまま算数の問題。
“`ruby:ABC221B
#長さ2以上100以下の文字列 S, T
S=input()
T=input()Flag=False #判定用のフラグ
#全探索する
#並び替えずに一致するか
if S==T:
Flag=True
print(‘Yes’)
#一致しない場合は、隣り合う文字について入れ替えて、一致するか判定
else:
for i in range(len(S)-1):
ex_S=[_ for _ in S]#最初の文字列Sのリストで初期化
ex_S[i],ex_S[i+1]=ex_S[i+1], ex_S[i]
ex_S_join=”
pixivpyを使ってpixivから画像を取得する
# 環境
+ machine: Mac mini(M1, 2020)
+ OS: macOS Big Sur(11.5.2)
+ Python 3.9# 背景
CNNで遊ぶための画像が欲しくてやりました.CNNをやる動機は未整理の画像を分類したかったのに,さらに分類対象を増やすという矛盾を抱えてる記事です.ただ画像が星井だけで検索からやってきた方のために,コードはコピペで済む状態になっているはずです.画像はオリジナル画質で保存します.# 事前準備
## `pixivpy`のインストール
[公式](https://github.com/upbit/pixivpy)の通りに`pip install pixivpy`で完了.## chromeのインストール
pixivの認証を通すために必要になります.chromeを絶対にインストールしたくない場合は後述のログインは面倒な法を使って下さい.## `selenium`のインストール
これまた[公式](https://gist.github.com/upbit/6edda27cb1644e94183291109b8a5fde
ABC221 C – Select Mul が解けた
https://atcoder.jp/contests/abc221/tasks/abc221_c
![abc221_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/2d9ba9a5-40a9-d4e9-65d3-2b87d250d300.png)
![abc221_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/f8c252a9-cb58-9390-ebb8-de665546b483.png)
![abc221_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8c25a786-5da3-6862-a9c1-1be2e0a5f468.png)
![abc221_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
様々な言語での日時表記
#背景
日時表現は割とよく使うけど、言語で書き方統一されてなくて正直やり辛いな~~
似てるけどちょっと違う、が多くてよくミスってしまうな〜〜
と思ったので覚書程度にまとめます。というわけで、いろんな言語で現在の年月日・時刻を「2021年10月02日 23時00分00秒」の形式で出力します。
とりあえずはJava, Ruby, Python3, Go, php。適宜更新します#Java(8以上)
SE8から加わったDate and Time APIのおかげで実装がぐっと楽になりました。“`Java:Main.java
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class Main {
public static void main(String[] args) {
// SE8から加わったクラス。現在の日時を取得
LocalDateTime dateTime = LocalDateTime.now();// 独自のフォーマットを準
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH.
スクレイピングをするPythonスクリプトを久しぶりに動作させたら以下のエラーが出た.
“`
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
“`自分のChromeのバージョンとchrome driverのバージョンが異なる場合にエラーになるみたい.
“`
import chromedriver_binary
“`
をすることで直接PATHを指定する必要はないとのこと.
ただし正しいバージョンのChrome Driverをインストールする必要がある.Chromeで[chrome://settings/help](chrome://settings/help)にアクセスすると自分のChromeのバージョンを確認できるので,そのバージョンのDriverをインストールする
今
片耳でだけ聞こえる音を2つのスピーカーでつくれるか トランスオーラルシステム
# はじめに
スピーカーから発せられた音は片耳だけでなく両耳で聞こえてしまいます。これクロストークと言うそうですが、それをなくすことはできるのでしょうか。疑問に思ったのでやってみます。# 参考
以下を参考にしました。[猿渡洋, “4.逆フィルタによる音場再現技術”, 映像情報メディア学会誌, 68(8), pp.612-615, 2014.](https://www.jstage.jst.go.jp/article/itej/68/8/68_612/_pdf/-char/ja)
[日本音響学会 音のなんでもコーナー > Q and A 055](https://acoustics.jp/qanda/answer/55.html)手前味噌ですが、1年前に書いたブラインド音源分離も参考になりました。
トランスオーラルシステムは混合行列の要素が伝達関数になったようなものだと理解しました。
[Qiita 独立成分分析を使ったブラインド音源分離](https://qiita.com/Miyabi1456/items/936809664a128899b311)# 方針
実際に
LP測量グリッドデータをラスタ化
**対象読者**
LP測量成果をGISソフトで扱う方
python ユーザ**実行環境**
Windows10
Python 3.9.5
geopandas 0.9.0
pandas 1.3.1
rasterio 1.2.7## はじめに
xyz 座標の記載されたテキストファイルから、z 座標を格納した GeoTIFF データを作成します。
入力ファイルは、航空レーザ測量(LP測量)等の成果品として一般的なグリッドデータ[^1] を想定します。
[^1]: [航空レーザ測量製品仕様書応用スキーマ](https://psgsv2.gsi.go.jp/koukyou/public/seihinsiyou/data/%E2%91%A1%E8%88%AA%E7%A9%BA%E3%83%AC%E3%83%BC%E3%82%B6%E6%B8%AC%E9%87%8F_%E5%BF%9C%E7%94%A8%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E.pdf)
x、y、z 座標がひたすら並んだテキストデータです。
(座標値以外の項目を含む場合もあります)
プロ野球ファンが”今日のベストナインbot”を作ってみた
# はじめに
その日の投球・打撃成績をスクレイピングし,その日のベストナイン自動で選出してツイートするTwitter botを作ってみたので,ざっくりまとめておきます.
(興味ある方はぜひフォローしてみてください@todaysbest9)ツイートまでの大まかな流れは次の通りです.
1. プロ野球の試合成績のスクレイピング
1. スコアの算出
1. ベストナインの選出
1. ツイート# 実装
それぞれについて説明していきます.
## 試合成績のスクレイピング
試合成績はいつも愛用しているYahooのスポーツナビからスクレイピングすることにしました.
また,スクレイピングには,PythonライブラリのrequestsとBeautifulSoupを使いました.
##
python の TypeVar を最もシンプルな例で理解する
python の型ヒント(アノテーション)については、基本的に [公式ドキュメント](https://docs.python.org/ja/3/library/typing.html) に記述されている。しかし、実用的な範囲でのシンプルな例が記載されているため、理解したいこと以外の情報もあり、やや理解しにくいことがある。そのため今回、実用性は度外視し、 `TypeVar` 自体を理解することだけを目的とした情報を残したく、本記事を作成した。なお、記事中の表現は、筆者独自の表現である場合があることはご了承いただきたい。
python のバージョンは 3.9 を想定している。
## TypeVar とは
`TypeVar` とは、「とある決まった型」を表す場合に用いる型変数である。
## TypeVar の使用例
例えば下記のように、引数をそのまま返す関数の定義に使用する。
“`python:use_typevar.py
from typing import TypeVarT = TypeVar(“T”)
def get_t_arg(arg: T) -> T:
kivyMDチュートリアル其の参什陸 Components – NavigationDrawer(Twitterクローンもどきもあるよ)篇
ようこそ、KivyMDの世界へ!
さて、〇〇食堂の始まり方のような感じで始まりました。KivyMDのお時間です。
というか初月ですね。これ書いててふと気づきました。困ったな初月には時候の挨拶
をすることにしてたのに(すごくどうでもよい)。ま、一旦来週にすることとします。今週もこれといったことはなかったような気もしますが、あるとするならば総裁選の
こととかになるでしょうか。でも、政治の知識が皆無に等しいので話題の提供は出来
ないというのが現状ですが…でも日々生活に根付いて大事なことは間違いありません。
エンジニアは高給だから税導入するよーとかなればえらいこっちゃとなります(ならない)。ということで、最初のアプリは政治系にしようかな(難しそう)。なので早くアプリを作る
ためにも、KivyMDにガツガツ触っていこうと思います。今日は個人的には待望であった
NavigationDrawer篇となります。それでは、えいえい、えいー。:::note warn
Twitterクローンでホイホイ来られた方は、このページの1番最後に動かした様子を
まとめております。なので、そこだけ見
[Poetry] [Windows10] “ValueError File .. pypoetry\ *.whl does not exist” を解決する
# Windows10環境でのPoetryの不具合
Windows10で,最新版のPoetry (筆者の環境では`1.1.10`)にて`poetry install`を行おうとすると,`ValueError File \C:\Users\user\AppData\Local\pypoetry\ *.whl does not exist ` と表示されてしまい詰まってしまったので,解決法をメモする.
# 解決法
`C:\Users\your_username\AppData\Local\pypoetry\Cache`を削除してキャッシュの削除を行い,もう一度`poetry install`を実行すればよい.
また今のところ,`poetry install`を行う際に毎度この手順を踏む必要がある.(他の解決法を知っている方,良ければコメントで教えて頂きたいです.)# Reference
https://github.com/python-poetry/poetry/issues/4163#追記
https://qiita.com/radiol/items/a27530fd33b7
webページをPythonとSeleniumで自動入力する
あるページに定期的に情報を入力する機会があったのでこれを自動化した。
記事中に一部説明が不足しているところがあった場合は気軽にtwitterのリプライかDMでお問い合わせください。[@yosuke_yamakawa](https://twitter.com/yosuke_yamakawa)# 下準備
## 環境
AWSにてEC2インスタンスを用意する。“`
ubuntu20.04(ARM64)
t4g.small
GP3 8GB
22/tcpと3389/tcpを開放
“`t3aなどのx86_64ではなくARMなのは今回の構築はARMですべて動作可能であり、ARMの方が安くパフォーマンスが高いからである。
デスクトップ環境を構築するものの余計なソフトウェアをインストールしなければ8GBで問題ない
セキュリティーグループではインバウンドルールで22/tc
コンピュータとオセロ対戦12 ~機械学習、方針決定2~
https://qiita.com/tt_and_tk/items/068f2afde6db637e189f
[前回](https://qiita.com/tt_and_tk/items/49ed4bdd52f3597b80d6)
※コメントでの助言、大変ありがとうございました。13までは予定がありましたので14以降で反映させていただきます。
# 今回の目標
[前回](https://qiita.com/tt_and_tk/items/49ed4bdd52f3597b80d6)決めた方針を煮詰め、より実際に使える形にしていきたいです。# ここから本編
## データ集め方法の検討
まずは前回決めた方針を少しいじり、より正解率が上がらないか試します。
それぞれの案で前回のプログラムを少し変更したものを使っています。### 前回の学習結果 turnnum_and_num_
参考までに前回の学習結果。“`
LogisticRegression:
train score: 0.38835591599907693
test score: 0.39589262364433
DjangoにおけるSQLインジェクション
# はじめに
Djangoでの生のSQL文の正確な書き方の記事がほとんどないので、今回の記事の執筆に至りました。
最初にSQLインジェクションの基本事項を抑え後に、具体的にDjangoのSQLインジェクション対策について見ていきましょう。SQLインジェクションの基本事項は、[IPA 安全なアプリケーションの作り方- 1.1 SQLインジェクション](https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_1.html)を多く参考にさせていただきました。
# SQLインジェクションとは?
SQL文の組み立て方法に問題がある場合、攻撃によってデータベースの不正利用を行うこと。# SQLインジェクションの種類
### インバウンドSQLインジェクション
webアプリケーションからのレスポンスを収集して脆弱性を分析し、その脆弱性をついたSQL文を実行し、データを盗んだり消去したりすること。さらに以下の二つに分けられる。
– エラーベースSQLインジェクション
攻撃者がデータベースに対してエラーメッセージを生成させるアクションを実行す
PuLP で変数の和や内積を計算する際の注意点
## TL; DR
PuLP で大きなモデル作るなら、numpy や pandas の sum や dot の使用は避ける。最低でも `pulp.lpSum` と `pulp.lpDot` を使い、場合によっては `LpAffineExpression` を自前で定義する。## はじめに
数理最適化、特に MILP のモデリングツールとして知られている PuLP だが、Python 標準の sum や numpy.sum を使うと、モデルの構築が非常に遅くなるケースがある。今回、次の計算の速度を測定した。
– ベクトルの要素の総和
– ベクトル同士の内積実験環境は、Google Colaboratory の無償版。Jupyter notebook 上のセルで、10 回走らせたうちの最良の計算時間を採用した(`%%timeit -r 10 -n 1`)。Python のバージョンは 3.7 で、各ライブラリのバージョンは下記の通り。
– numpy==1.19.5
– pandas==1.1.5
– PuLP==2.5.0## ベクトルの要素の総和
PuLP の変数
Arch LinuxにJupyterLab Appをインストールする方法
# 概要
JupyterLab Appとは、Jupyter Notebookをデスクトップアプリとして利用できるようにしたアプリケーションです。
[jupyterlab/jupyterlab_app: A desktop application for JupyterLab, based on Electron.](https://github.com/jupyterlab/jupyterlab_app)
![1*ZbqjB3evW_yB_SKFjqliWA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7565/59fd5cc1-bcad-2656-7dd6-41b8b52cbb5d.png)
このアプリケーションはLinuxにも対応していますが、現在はDebian系とRedHat系しかパッケージが提供されていません。
https://github.com/jupyterlab/jupyterlab_app/releases/tag/v3.1.13-1
この記事ではdebパッケージをAr
[メモ] docker-compose による Bottle の構築
## 概要
通常 Bottle 自体は 1ファイルなので Docker を使う必要は無いが、
K8s や Fluentd の検証でも活用できるので Docker (docker-compose) による構築手順をメモしておく.# 構築する環境
Python 3.9.4 ベースの Bottle 59184 の動作環境を作る.
アクセスは `http://:59184/` である. # ファイル構成
“`
.
|– PV
| `– bottle
| `– app
| `– main.py ………. bottle を使って実装していくコード
|– assets
| `– bottle
| |– Dockerfile
| `– requirements.txt
`– docker-compose.yml“`
# ファイル詳細
## ./PV/bottle/app/main.py
“`python
#!/usr/bin/env python3
# -*- c