2021年11月24日水曜日

webdriver の更新

いいの見つけたと思ったら、結構知られてるみたい。みんな早い!
webdriver_manager

2021年11月9日火曜日

Python 3.10 の新機能

今回のバージョンはてんこ盛り。パターンマッチングはとりあえずでもいいので、目を通しておくべき。

■ 複数のwith
ネストさせずカンマ区切りで書けるようになった
with (open("file1") as file1, 
      open("file2") as file2,
      open("file3") as file3):
    print(file1.read(), file2.read(), file3.read())

■ パターンマッチング
対象となる変数がstringや int だったら他の言語のcase文のような感じで利用できる。
# dict の場合
import requests
pulls = requests.get("https://api.github.com/repos/python/cpython/pulls?state=all").json()

for pull in pulls:
    match pull:
        case {'state': 'open', 'number': number, 'title': title}:
            print("オープン:", number, title)
        case {'state': 'closed', 'number': number, 'title': title, 'closed_at': closed_at}:
            print("クローズ:", number, title, closed_at)

tuple, list にも使える。同じ長さやn番目の値を一致するかどうかの判定に使える。
独自のclass やそれらの型を含むdict, list でもOK

その他
case _: # ワイルドカード: 全てにマッチする
case Point(x, y) if x == y: # ガード: if でマッチ条件を追加する
case (Point(x1, y1), Point(x2, y2) as p2): # キャプチャ: ここにマッチした場合、2つ目の値はp2 として利用できる

どんなパターンがあるのか、PEPは一読しておいたほうがいいかも。
PEP 634 – Structural Pattern Matching: Specification
PEP 635 – Structural Pattern Matching: Motivation and Rationale
PEP 636 – Structural Pattern Matching: Tutorial
日本語でまとめられている
Python 3.10の新機能:「構造的パターンマッチ」とは


What’s New In Python 3.10
Python 3.10の新機能(その1) パターンマッチ

2021年6月5日土曜日

Oracle Cloud無料枠に飛びついてみた

Oracle Cloud に登録してみた。GCP のように無期限で無料インスタンスが使えるようなので...
AWSやGCPのように色々なサービスはなく、VPSのような感じ。OracleDB推しのVPSといったところか。

Out of capacity for shape VM ...
ということでインスタンス作れませんでした。

無料枠で大人気!

[翌日 6/6] --------------------------
翌朝、インスタンスが作成できました。
イメージはOracle Linux 8 を選択

とりあえず、nginx, postgres, pyenv をインストール。

PostgresSQL 13をインストールするとエラー
Error: GPG check FAILED
/etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG と一致しない。

OracleCloud の無料インスタンスはARM (Ampere Altra)なんだけど、
問題のPGP はnoarchってことで、大丈夫そう。

# rpm -qf /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg-redhat-repo-42.0-15.noarch

検索してみると...
pgAdmin on OpenShift using RedHat base image

AARCH64用をインストールしてくれ!ということ。
rpm --import https://download.postgresql.org/pub/repos/yum/RPM-GPG-KEY-PGDG-AARCH64
これで、postgresql 13がインストールできました。

2021年4月5日月曜日

Evernote Alternative を探して、Evernote が必要ないことに気づく

evernote は長い間使っていて最近は、twitterのつぶやきを保存することが多くなってきた。
ていうか、ほぼつぶやきの保存用になっている。

で、だんだんと画像の貼り付け作業がめんどくなってきて、Webクリップのエクステンションを利用してみた。
(twitterの画像を一旦ローカルに保存して、再度 evernoteにアップロードするのがめんどくさい...)
結果、このエクステンションが全く使い物にならない。
(選択した画像を、特定のノートに貼り付けてくれることを期待していた)

Evernote Alternativeを探して次の3つが最終候補。
- Joplin
- Standard Notes
- Boost Note

フリー版のStandard notes は使えない機能があるようなので後回し。
機能の説明を読んで Joplin, BoostNote を使ってみた。
そして、あることに気がついた。

そもそも、Evernoteでの自分の使い方は画像やURLリンクを利用する以外は、ただのエディター。
こんなに機能はいらない。情報を共有する人なんかいない
そもそも自分にはEvernote が必要なかったんじゃないのか!

画像やURLリンクが使えるエディターなら「Google Doc」やLibreOffice でいいでしょ!
問題の「画像の保存を簡単にする方法」は解決していなのでもう少し考える。

ちなみに、Evernote を使っていて不満がある人は Joplin, BoostNote を検討してみてもいいと思います。
すごく良くできたサービス、アプリだと思います。
だたしフォーマットはMarkdown なので... どうなんでしょうね。

2021年2月8日月曜日

VSCodium でエクステンションが追加できない?

CodiumはデフォルトではVSCode Marketplace を検索してくれない。

https://marketplace.visualstudio.com/ でエクステンションを検索
目的のエクステンションのページからvsix ファイルをダウンロード。
ダウンロードした .vsixファイルをインストール

インストール
(ショートカットは Ctrl+P)

ext install rangav.vscode-xxxxx

Install from a VSIX

ダウンロードするひと手間がめんどくさいなら、
marketplace を検索するように変更もできる
Extensions + Marketplace

それか vscodeを使うのもありだと思う...

2020年12月8日火曜日

Python3.9 リリース

2ヶ月ほど遅れてリリースノートを読んでいる...
今後は1年ごとのメジャーリリースとなるらしい。3.10 は来年の10月頃

■ PEP 584, union operators added to dict
今まではupdate メソッドを利用していたのがset のように書けるようになった
>>> {1:'A'} | {2:'B'}
{1: 'A', 2: 'B'}
>>> {1:'あ', 2: 'い'} | {2:'う'}
{1: 'あ', 2: 'う'}
>>> d1 = {1: 'A'}
>>> d1 |= {2: 'B'}
>>> d1
{1: 'A', 2: 'B'}

■ PEP 616, string methods to remove prefixes and suffixes
removeprefix とremovesuffixメソッドの追加
スペース以外に対応したlstrip() rstrip()の拡張版
新メソッドでなく、lstrip, rstrip に引数を追加する形でも良かった気がするが。
>>> "【大安売り!】".removeprefix("【").removesuffix("】")
'大安売り!'

■ ZoneInfoモジュール
今までは標準ライブラリだけではタイムゾーン名が利用できなかった。
(あれ、そうだった?とにかく日時処理はめんどくさいし、すぐに忘れるので大変!)

Python 3.9の新機能
What’s New In Python 3.9