春に買って嬉しかったもの

最近買って嬉しかったもの(買ってよかったものは君が君の金で買ってから君の価値観で決めるんだ)の話をします。
・乾燥機付き洗濯機
https://jp.sharp/sentaku/products/ess7d.html
これまで住んできた家が共用洗濯機つきの家だったので初めての購入だったが、奮発した。
洗濯という家事は様々な観点から本当に最悪だったから。
1. そもそもゴミが取れない
洗濯機が古かったとか洗濯物を入れすぎとかそういう事情もありそうだが、フリース生地の服が洗濯機内でゴミを吸着しまくり、洗濯が終わった後にそれをコロコロで取るという作業が発生して最悪。フリース以外もはたくとホコリ出るし。なんでよ。洗っているにも関わらずゴミがついているので、油汚れ等についても本当に落ちているか疑念が生じてくるのが最悪。
ニューで高等な洗濯機になってゴミが取れるようになった。洗濯パートと乾燥パートで2箇所ゴミ受けがあるのだが、洗う度にそこのホコリを掃除するのが楽しい。取れておるわい、と思うので。
2. 干す際の整形は無価値
これは私が言うまでもなく全人類が気がついていることと思うが干して畳むという作業は完全に無駄。
着る(服の形)→洗濯(無秩序な形)→干す(服の形)→畳む(収納に相応しい形)→着る(服の形)のうち、干している部分の整形作業は何の意味もない。耐えられんよこんなことは。
このうちどこかを省略するとしたら論理的に考えて選択肢は「服の形のままクローゼットに収納」か「干す作業をスキップする」しかない訳だから。でも論理的に考えると最も相応しいあり方は洗濯機がでかい部屋みたいになって「干した形のまま洗濯から収納まで一つの部屋で終わる」ことだ。そういう技術が開発された暁にはいち早く言及した貢献を評価して私が利用できるようにして欲しい。
3. 干すのが面倒
外は暑いし寒い。雨の様子とか気にしなきゃいけないのも嫌。そういうのは山にいる時だけで十分。
私は服に何も、全く、一切の興味がないのだが、興味がないからこそ服に関心を払いたくない。触っていたくもない。だからお金を払って手間をスキップする。よかったよかった。
・食洗機
https://panasonic.jp/dish/p-db/NP-TCM4.html
ドラム式洗濯機に続き所謂現代の三種の神器。これが欲しくて引っ越しの時に広い台所を条件にしたくらいだ。食器を洗うという作業はマジで最悪だから。
そもそも飯を作るという偉業を達成しているのに何故その上で更に働かなくてはならない?飯を作る作業はいいよ。創作だし。生産的だし。片付けは嫌でしょ。労働だよ。なんで飯を作るという褒められるべき作業をしたというのにその結果労働が発生するのか。作業が発生するタイミングも嫌。食事した後に働きたくない。
その癖洗わないと飯を作る作業が滞る。食器は無限ではないので。逆に言うと食洗機を導入して飯を作るハードルが下がった。最高。あとでスーパー行こ。たらこパスタ作りたい。
あとこれが全部と言えば全部だが、手が荒れる。皮膚弱いのに。洗濯物も手が荒れるから触りたくなかったところがある。これで残す濡れ家事は風呂掃除だけだ。あれも擦らずに済むスプレーが最近はあるらしい……。
食洗機、聞いてはいたがやや癖がある。どうしても場所を取るし、このサイズだと調理器具が入らなかったりする。あと食器の詰め方に工夫がいるとか(絶対に洗えてないだろって箇所が洗えていたりして謎)。でも、もうそういう癖も含めて君と付き合っていくって決めたよ……一生……。嘘じゃない、見てくれ、君のためにハンドルが取れる鍋だって買ったんだ……。
・コーヒーメーカー
https://www.delonghi.co.jp/products/detail/id/445
コーヒーを抽出する作業は前2つに比べるとそこまで最悪ではない。でもコーヒーを抽出している時間は台所に立ってティファールを持って完全に「コーヒーを抽出する」という作業にかかりきりになる。何様なんだ。たかが飲み物の分際で強気に出たな。毎日飲まれるからってつけあがるな。
今は粉を用意しているけど豆からでもいいなと思っている。ミルで惹く作業はつけあがってもよい。楽しそうだから。
コーヒーの味って正直そこまでわからないけどアロマ機能で淹れるとおいしい。赤いし小さくてかわいい。満足。
・サボテン
なんかやたら花がつく。見てると元気になる。

読書メーターからブクログに読了本のデータを移行する

5年位前から読書メーターで読みたい本と読み終わった本と感想の管理をしていたのだが、だんだん非公開にできないのが不満になってきた。これは読書メーターが読書好きが集まるSNS(率直にいってXXXXXだ)を標榜しており5年前の私がそれに気が付かなかったから仕方がないことなのだが、読む本もそこに書く感想も割と赤裸々なものがあり、一切非公開にできないのは、ちょっと。 思想の自由を守れ。

耐えきれなくなったので1年前にブクログに移行した。その際、読みたい本一覧についてはどうしようもないので選別も兼ねて手動でデータを移行した。これは読書メーターがXXXXXなサービスでインポートサービスがあるにも関わらずエクスポートサービスがないから。ちなみにブクログはどちらもある。
150冊くらいデータがある読了本(シリーズは最初の一冊しか登録してなかったり職の本を端折ったりしているから実際は多分5年でもうちょい読んでますよ:読書する人間的自意識主張)に関しては、流石に手作業で移行するのは面倒でそのまま置いておいた。スクレイピングとやらができれば抽出できると知ったけど、Rのその辺りはよくわからなかったので諦めた。1年前の私に解説すると、スクレイピングとはそのパソコンに命令して君の代わりにネット上の情報収集をやらせることでありこれをすると例えば昔書いたスコアアタックモデルのデータ入力パートが省略できるようになったりするよ。
そういう状況だったのだが春に転職してあれがそっち系になったので、pythonの練習をかねてコードを書いた。これでXXXXXサービスとはおさらば。ヨッシャッ!
まず読書メーターのどのページから情報を拾ってくるか決める。一年程前に書かれた記事によると、当時は読んだ本まとめみたいなコードが生成できたらしいのだが、読書メーターの仕様変更で一切できなくなっていた。すごいな。こんなに早く一方的に情報が無価値になることがあるのか。
ログインしたあとの読書管理ページのリストから拾うことにした。これは若干失敗で、読了本とそれ以外(未読本とか)のページの書式が違ったので、読了本にしか使えないコードになっちゃった。まぁいっか……。
#ログイン
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from lxml import html
import time
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
driver.get(“https://bookmeter.com/login”)
# ID/PASSを入力
id = driver.find_element_by_id(“session_email_address”)
id.send_keys(“YYYYY”)
password = driver.find_element_by_id(“session_password”)
password.send_keys(“ZZZZZ”)
time.sleep(1)
# ログインボタンをクリック
login_button = driver.find_element_by_name(“button”)
login_button.click()
できた~。うれし~。
ブクログにインポートする時に必要なデータを調べる。ISBN(13桁)が読書メーター側のリストに入ってなかったので面倒だなと思ったけど、これは必ずしも必要ないことがわかった。最低限必要なのはASIN(カンフージェネレーション)だけみたいだ。あとはレビューと読了日付を引っ張ってきたいな。
#読了日付リスト
date_list = []
for i in range(1,9):
    url = “https://bookmeter.com/users/WWWWW/books/read?display_type=list&page={}”.format(i)
    driver.get(url)
    date = driver.find_elements_by_class_name(“detail__date”)
    for i in date:
        date_list.append(i.text)
    time.sleep(1)
読了日付はユニークなクラス名があるので難しくなかった。
#ASIN関数
import re
def extract_asin(string):
    asin = re.search(pattern=r”(?<=asin\”:\”).+?(?=\”)”, string=string)
    return asin.group()
#review関数
def extract_rev(string):
    review = re.search(pattern=r”(?<=\”review\”:{\”text\”:\”).+?(?=\”)”,
                     string=string)
    if(review is None):
        return “”
    else:
        return review.group()
#ASINとレビューのリスト
asin_list = []
rev_list = []
for i in range(1,9):
    url = “https://bookmeter.com/users/WWWWW/books/read?display_type=list&page={}”.format(i)
    driver.get(url)
    #モーダルウィンドウ
    content = driver.find_element_by_class_name(“detail__edit”)
    content2 = content.find_element_by_xpath(“div”)
    string = content2.get_attribute(“data-modal”)
    content_list = driver.find_elements_by_class_name(“detail__edit”)
    for i in range(len(content_list)):
        content2 = content_list[i].find_element_by_xpath(“div”)
        string = string = content2.get_attribute(“data-modal”)
        asin_list.append(extract_asin(string))
        rev_list.append(extract_rev(string))
    time.sleep(1)
こっちが面倒だった……。モーダルウィンドウとかいうページ上で立ち上がるウィンドウがあるのだが、その要素の指定の仕方がわからなかった。クラスで名指ししようとしてもエラーが出るし……。結局モーダルウィンドウの手前のdivを指定してから、階層を一つ下げてパスで指定した。なんでこれでうまくいくのか一切わからん。詳しい人がいたら教えて下さい。
モーダルウィンドウの中身の取り出し方も最初わからなかった。多分こっちはget_attributeであっていると思う。出てくる文章は200文字くらいのタグ等含む文字列なのであとは正規表現で取り出し。正規表現もよくわからね~。宇宙人の言語か?見た目が記号の乱舞になるので本当に宇宙人の言語みたいに見える。正規表現って100年くらい歴史があるらしいけど、作った人絶対面白がってやったでしょ。
import pandas as pd
import csv
date_list2 = list(map(lambda x: str(pd.to_datetime(x, format=”%Y/%m/%d”)), date_list))
df = pd.DataFrame({“serviceID”: “1”,
                   “itemID”:asin_list, 
                   “ISBN”:””,
                   “category”:”-“,
                   “eval”:””,
                   “statement”:”読み終わった”,
                   “review”:rev_list, 
                   “tag”:”読メ”,
                   “memo”:””,
                   “regist_date”:date_list2,
                   “finish_date”:date_list2})
df.to_csv(“out.txt”, encoding=”cp932″, sep=”,”, index=False,
          header=False, quoting=csv.QUOTE_ALL)
あとはブクログの形式にあわせてデータフレームで加工。encordingはさくっといったけどquotingとダブルクオーテーション挿入の仕様がいまいちわからずしばし苦戦。
できた~!丸一日かかった~!面白かったからまぁいいか~。

家が1R→1Kに拡張されて(1Kは1+Kなのにワンルームのこと1Rって略記するのおかしくない?)、料理を複数品作り、それをリビングに運ぶというプロセスが生じるようになった。
……お盆、いるな。

町に暮らす

十年近く住んだ関西圏を離れて生まれ育った関東圏に戻ることになった。

とても悲しい。私は関西が大好きだ。主に愛しているのは大学時代を過ごした京都だが、関西のことは全部好きだ。そして東京という街が大体嫌いだ。
それを東京に暮らす妹に伝えると「私は姉と東京で会えるの嬉しいのに!」(何故か私は彼女のことを「妹」と呼ぶし、彼女もそれを真似てか私の事を「姉」と呼ぶ)と言われて驚いた。私だってその点については全く同意であったからだ。
私の中で「東京という街に暮らすのが嫌」ということと「東京に住むことで親しい人達に会えるのが嬉しい」という事象はかなり独立だと気が付いた。後者は前者を打ち消す理由にならない。
「生まれ育った場所が嫌い」と言うと、あぁきっと小さい頃は友達が全然いなくて家庭環境もよくなかったのが大学で外に出ていい経験をしたんだろうな……といった想像をされるのかもしれないが、別に東京が嫌いなのはそういった理由ではない。友達おるわ。じゃあ何故よと言われると困るが、東京という街が昔から好きでないのだ。
そういえば高校生の頃からずっと、瀬戸内海に面した町に住みたいと言っている。これも特に理由はない。大体、瀬戸内沿岸の町を訪れた事さえほとんどないのだ。でも瀬戸内海に住みたい。東京から関西に越して少しは接近したと思ったのに残念だ。生涯をかけてじりじりとお近付きになるしかないのか。
思うに、私は町のイメージの中に暮らしている。東京に住む人達は、東京という盆の上に今乗っている菓子なのであって、菓子が好きでも盆は食べられない。菓子は明日には盆を飛び出していってしまうかもしれない。私には何の断りもなく。
そういう訳なので、私の近所に住む皆様は私が物理的に側にいる間が機会と思って大いに酒を飲んでください。そして側を離れた後も一緒に酒を飲んでください。

新聞社の有料記事を読みたいことがある。

買い切りはできなくて、会員登録が必要だ。一月辺り千円くらい。会員登録すると読めるようにある記事は山のようにあるが、あくまで興味をもった記事を読みたいだけなのでメールアラートを片っ端から切る。
また別の有料記事を読みたいことがある。
読んでみようか、とクリックするとこれは別の新聞社の記事なので会員登録が必要だ。一月辺り千円くらい。
以下同じ。
……。
Komifloは偉大だなぁ。