HHKBを掃除!! 1年掃除しなかったキーボードはこんなに汚かった
はじめに
どうも、こじまるです。
『HHKBの掃除をしたいけど、掃除方法が分からない』と悩んでいませんか?そんな方に向けて、『HHKBの掃除方法』を記事にまとめました。
本記事で紹介する方法を実践すれば、お手持ちのHHKBを掃除することができます。
HHKBの掃除
筆者はHHKB Professional2 Type-S 英語版の刻印ありと無刻印の2つのキーボードを使っています。普段の仕事では刻印ありのキーボードをメインで使っています。
1年ぶりに掃除をするのですが、キートップに細かな汚れが付いています。よく見るとキートップの下にもゴミがたまっているのが見えますね。
キートップを外す
キートップ引き抜き工具を使用して、キートップを外します。キートップにワイヤーを引っ掛け、引き抜きます。
割と簡単に引き抜くことができます。
スペースキーは両端を指で掴み、引き抜きます。スペースキーに付いているゴムは無くさないように気を付けてください。
キートップをすべて外しました。作業に慣れれば、5分程度ですべてのキートップを外せます。
かなり細かなゴミがついていますね。
結果
こちらが掃除後の結果になります。キートップもかなり綺麗になりました。
今後無刻印のHHKBも使用したいので、位置を覚えられていない一行目を刻印ありに変更しました。(刻印ありのF1キーは壊れているので、変更できずにいます。)
キーボードを仕事で使用していると、1年くらいするとかなり汚れが溜まります。せっかく購入した高級キーボードなので、定期的に掃除するようにしましょう。綺麗なキーボードを仕事で使用するのは気分がいいですよね。
まとめ
今回HHKBの掃除方法について、ご紹介させていただきました。キートップ引き抜き工具以外は、日常生活で使用するもので代替できると思いますので、試してみてください。
今回使用した道具は下記にもリンクを張っております。
python ftplibによるファイルのダウンロード・アップロードを行ってみた
はじめに
どうも、こじまるです。
『pythonでFTPサーバのファイルをダウンロード、アップロードする方法』をお探しではないでしょうか?そんな方に向けて、pythonの標準ライブラリftplibを使ったファイルダウンロード・アップロードの方法を記事にまとめました。
- ftplibを使ったファイルダウンロード・アップロードの方法
本記事で紹介する方法を実践すれば、pythonを使ってFTPサーバのファイルをダウンロード・アップロードすることができます。
ftplibを使ったファイルダウンロード・アップロード
ファイルのダウンロード
FTPサーバ上のファイル(test.txt)をsample.txtという名前でローカルにダウンロードすることを例に説明します。
FTPサーバへのログイン
まず、FTPサーバにアクセスするためにFTPクラスのインスタンスを作成します。FTPクラスはwith構文がサポートされているため、下記のように記述できます。
host = '127.0.0.1' with FTP(host) as ftp: ftp.login() # login as anonymous user
FTPサーバで匿名ユーザ(anonymous user)を許可している場合、FTP.loginメソッドは引数なしで実行できます。特定のユーザでログインしたい場合には、FTP.loginメソッドの引数にユーザ名、パスワードを追加してください。
カレントディレクトリの変更
FTPサーバ上のダウンロード対象のファイルパスに応じて、カレントディレクトリを変更する必要があります。
FTP.cwd(pathname)
FTP.cwdメソッドのpathnameにカレントディレクトリを指定することで変更できます。今回はFTPサーバでログインしたパス(物理パス)の直下にtest.txtが配置されているため、変更は不要です。
リモートからローカルへのファイルダウンロード
ローカルのsample.txtというファイルを'wb'モードでファイルオープンし、FTP.retrbinaryメソッドによりバイナリ転送モードでファイルを受信します。
cmd = 'RETR test.txt' with open('sample.txt','wb') as local_file: ftp.retrbinary(cmd, local_file.write)
FTP.retrbinaryメソッドの第一引数cmdには適切な'RETR filename'という形式で指定する必要があります。FTPのcommandについてはこちらをご確認ください。
ソースコード
全体のソースコードは下記の通りです。
from ftplib import FTP, error_perm, all_errors def copyFile(src, dest): host = '127.0.0.1' cmd = 'RETR test.txt' try: with FTP(host) as ftp: ftp.login() # login as anonymous user lists = ftp.nlst() print(lists) if src in lists: print('file is existed') with open(dest,'wb') as local_file: ftp.retrbinary(cmd, local_file.write) print('copy is done') else: print('file is not existed') except error_perm: print('Pemission denined') except all_errors: print('Internal server error') if __name__ == '__main__': src = 'test.txt' dest = 'sample.txt' copyFile(src, dest)
ファイルのアップロード
ローカルのファイル(sample.txt)をFTPサーバ上にhoge.txtという名前でアップロードすることを例に説明します。
ローカルからリモートへのファイルアップロード
ローカルのsample.txtというファイルを'rb'モードでオープンし、FTP.storbinaryメソッドによりバイナリ転送モードでファイルを転送します。
cmd = 'STOR hoge.txt' with open('sample.txt','rb') as local_file: ftp.storbinary(cmd, local_file)
FTP.storbinaryメソッドの第一引数cmdには'STOR filename'という形式で指定します。FTP.storbinaryメソッドの第二引数はファイルオブジェクトになりますので、ファイルオープンで開いたファイルオブジェクト local_fileを指定します。
ソースコード
全体のソースコードは下記の通りです。
from ftplib import FTP, error_perm, all_errors import os def uploadFile(src, dest): host = '127.0.0.1' cmd = 'STOR ' + dest try: with FTP(host) as ftp: ftp.login() # login as anonymous user lists = os.listdir('.') if src in lists: print('file is existed') with open(src,'rb') as local_file: ftp.storbinary(cmd, local_file) print('upload is done') else: print('file is not existed') except error_perm: print('Pemission denined') except all_errors: print('Internal server error') if __name__ == '__main__': src = 'sample.txt' dest = 'hoge.txt' uploadFile(src, dest)
【運営報告】ブログ開設1か月の初心者がPV数、収益の結果公開
はじめに
どうも、こじまるです。
『ブログ1か月運営したらどれくらいPV数、収益が得られるの?』そんな疑問を持つ方に向けて、『初心者がブログ開設 1か月運営した結果』を記事にまとめました。
- ブログ開設1か月運営した結果
- 今後の方針
筆者と同じブロガーの方、ブログを始めたいと思っている方の参考や励みになればと思います。
一か月の運営結果
こちらが結論になります。
期間 | 1月30日~2月27日 |
ユーザ数 | 141人 |
PV数 | 682PV |
記事数 | 14記事 |
収益 | 0円 |
※Google Analyticsの情報を掲載しています。初めて1週間後にこちらでISPのグローバルIPアドレスを除外しました。
PV数
合計PV数 : 682PV
下記がこの1か月でのPV数の遷移になります。
以前の記事で6か月で月1000PVを達成するということを長期的な目標に掲げていました。なので、一か月目でそれに近いPV数を得られたことは凄く嬉しく感じます。
ただ、下記の通り、2週間あたりのPV数は停滞しています。そのため、伸びていない原因を分析しようと思います。
PV数が伸びていない原因
下記で詳細に見ていきます。
ブログの更新頻度が低下した
下記の画像は『2週間まで』と『2週間から1か月』の期間の記事数になります。『2週間まで』はおおよそ1記事/1日でしたが、『2週間から1か月』は1記事/3日になっています。
SNS流入を狙う場合、ブログの更新をSNSに投稿するとフォロワーの方が訪れてくれることがあります。頻度が低くなったことでその機会も減少するので、これらがPV数が伸びていない原因になっていると思います。
SNSをうまく活用できていない
SNSは主にTwitterを活用しています。私のTwitterのフォロワーはブロガーさん、個人投資家が多いので、プログラミング系の記事はあまりウケがよくありません。
下記はTwitterからのアクセス先ページになります。
スクリーニングツールや食洗器などの記事は比較的アクセスが多いですが、プログラミング系の記事はほとんどアクセスされていません。今後もプログラミング系情報は配信したいので、プログラミングに興味があるユーザにフォローしていただけるようにSNSを活用していきます。
また、SNSではブログ情報の配信しか出来ていません。なので、今後ブログ以外の情報も配信できるように活動します。
収益
合計 : 0円
収益は前回と変わらず0円になります。
ただ、7記事執筆時点不合格だったAmazonアフィリエイトですが、10記事執筆時点で再申請したところ合格できました。他のブロガーさんからもしもアフィリエイト経由では、5記事でも合格したと報告がありましたが、合格には10記事程度の記事数が必要になるのかもしれないですね。
Google AdSenseは現在申請しているところです。
来月からは収益化のことも考えながら、記事を執筆したいと思います。
今後の方針
今回の記事で記載した通り、PV数は停滞傾向にあるので、今後1か月は下記の方針で運営したいと思います。
1記事/2日でブログを投稿できない根本原因は記事のネタ探しに詰まっていることにあります。なので、ネタ探しは他の方のブログやSNSとかを活用して、継続的に最新の技術情報やブログネタをキャッチできるようにしたいと思います。
今後も読者の皆様に価値ある情報を共有できるように頑張りますので、応援よろしくお願いします。
pythonでTwitter APIを使ってみた
はじめに
どうも、こじまるです。
『Twitterの情報を解析してみたい、自動で投稿してみたい』などと悩んでいませんか?そんな方に向けて、『pythonを使ってTwitter APIで自動投稿、指定ワードで検索する』ための方法を記事にまとめました。
本記事で紹介する方法を実践すれば、pythonを使ってTwitterに投稿すること、指定ワードでの検索をすることができます。
Twitter APIを使ってみた
Twitter APIとは
Twitter APIとは、Twitterが提供しているWeb APIになります。Twitter APIを通して、Tweetの投稿やTweetされた情報の取得などができます。
Twitter APIの始め方
上記手順は説明を割愛させていただきます。下記記事に詳細に書かれていますので、こちらを参照ください。
digitalnavi.net
環境設定
pythonでTwitter APIをコールするために、requestsを使用します。requestsがインストールされていない場合にはpipを使ってインストールしてください。
pip install requests
Twitter APIでTweetの投稿
Tweetを投稿するAPIとして、下記を使用します。APIの仕様書はこちらから確認できます。
TweetはOAuth1.0aで認証します。下記のようにTokenを取得しました。
""" settings.py """ ACCESS_TOKEN = "xxxxxxxxxxxx-xxxxxxxxxxxx" ACCESS_TOKEN_SECRET = "xxxxxxxxxxxx" CONSUMER_KEY = "xxxxxxxxxxxx" CONSUMER_SECRET = "xxxxxxxxxxxx"
認証のために、OAuth1Sessionを使用します。
import requests from requests_oauthlib import OAuth1Session twitter = OAuth1Session(settings.CONSUMER_KEY,settings.CONSUMER_SECRET,settings.ACCESS_TOKEN,settings.ACCESS_TOKEN_SECRET)
message = "Twitter API test" params = {"status":message} endpoint = "https://api.twitter.com/1.1/statuses/update.json" res = twitter.post(endpoint,params=params)
ソースコード
全体のソースコードは下記の通りです。
import json import requests import settings from requests_oauthlib import OAuth1Session if __name__ == '__main__': message = "Twitter API test" params = {"status":message} endpoint = "https://api.twitter.com/1.1/statuses/update.json" twitter = OAuth1Session(settings.CONSUMER_KEY,settings.CONSUMER_SECRET,settings.ACCESS_TOKEN,settings.ACCESS_TOKEN_SECRET) res = twitter.post(endpoint,params=params) json_res = res.json() print(json.dumps(json_res,indent=4,sort_keys=True,ensure_ascii=False))
Twitter APIでTweetを検索する方法
Twitter APIでTweetの検索
最近のTweetを検索するAPIを使用します。
Bearer Tokenが使用できるので、そちらを使用します。
bear_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" headers = {"Authorization":"Bearer {}".format(bear_token)}
今回は『Python』を文字列に含むTweetを検索するようにしました。
query = "Python -is:retweet" tweet_fields = "tweet.fields=author_id" endpoint = "https://api.twitter.com/2/tweets/search/recent?query={}&{}".format(query,tweet_fields) res = requests.get(endpoint,headers=headers)
ソースコード
全体のソースコードは下記の通りです。
import json import requests import settings from requests_oauthlib import OAuth1Session if __name__ == '__main__': bear_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" headers = {"Authorization":"Bearer {}".format(bear_token)} query = "Python -is:retweet" tweet_fields = "tweet.fields=author_id" endpoint = "https://api.twitter.com/2/tweets/search/recent?query={}&{}".format(query,tweet_fields) res = requests.get(endpoint,headers=headers) json_res = res.json() print(json.dumps(json_res,indent=4,sort_keys=True,ensure_ascii=False))
実行結果
下記が実行結果になります。事前に投稿したTweetが取得できることが確認できました。
pythonでLINE notifyを利用してみた
はじめに
どうも、こじまるです。
『Web Serviceの情報をLINEに通知したい』などと悩んでいませんか?そんな方に向けて、『pythonを使ってLINEに通知する』ための方法を記事にまとめました。
- LINE Notifyの始め方
- pythonでLINEに通知を送る方法
本記事で紹介する方法を実践すれば、下記のようにpythonを使ってLINEに画像やテキストを通知することができます。
LINE Notifyによる通知
LINE Notifyとは
LINE Notifyとは、メッセージアプリ『LINE』が提供するサービスです。Web Serviceと連携することで、LINEの公式アカウント『LINE Notify』アカウントに通知を送ることができます。
最近では、IFTTTといったWebサービス同士を連携させるサービスを活用し、例えば『メールが届いた時』に『LINE notifyで通知をする』といった形で使用されています。IFTTTは下記記事で紹介していますので、興味がありましたらみてください。
LINE Notifyの始め方
1.LINE Notifyにアクセスし、LINEアカウントでログイン
2.マイページに遷移
3.アクセストークンの発行
5.アクセストークンのコピー
以上で、LINE notifyの設定は終了です。発行したアクセストークンはpythonで通知を飛ばすために必要です。
LINE notifyはOAuth2.0という仕組みを使って、LINEへの通知を実現しています。下記記事で分かりやすく解説されていました。
qiita.com
pythonで通知を飛ばす方法
環境設定
pythonで通知を飛ばすために、requestsが必要です。requestsがインストールされていない場合にはpipを使ってインストールしてください。
pip install requests
LINE notifyでメッセージを送信する方法
LINE notifyでメッセージを送信するために、LINE Notifyの仕様書に準ずる形でリクエストを行う必要があります。メッセージの送信のために、ヘッダにアクセストークンが必要になります。
def send_message(url, message): api_token = '' // something value headers = {'Authorization': f'Bearer {api_token}'} data = {'message': f'message: {message}'} response = requests.post(url,headers=headers,data=data) print(response) if __name__ == '__main__': notification_url = 'https://notify-api.line.me/api/notify' send_message(notification_url,'Test')
実行結果
LINE notifyで画像を送信する方法
def send_image(url, message, file_path): api_token = '' // something value headers = {'Authorization': f'Bearer {api_token}'} data = {'message': f'message: {message}'} files = {'imageFile':open(file_path,'rb')} response = requests.post(url,headers=headers,params=data,files=files) print(response) if __name__ == '__main__': notification_url = 'https://notify-api.line.me/api/notify' send_image(notification_url,'Test','cojimaru_image.png')
実行結果
まとめ
最後に、ご紹介した内容をおさらいしていきます。
LINE notifyを使用するためには、下記の手順が必要になります。
ご紹介した内容を実践すれば、初心者の方でもpythonを使ってLINEに画像やテキストを通知することできます。株価情報の自動配信の記事なども出していますので、ぜひ見てください。
cojimaru-chan.hatenablog.com
Slack APIで高配当株情報をスマートフォンに自動配信してみた
はじめに
どうも、こじまるです。
今回は『Webスクレイピングで高配当株 スクリーニング自動化ツールを作成した』の続編になります。
以前の記事で、スクリーニング済みの高配当株情報を含むExcelファイルをフォルダに配置できるようにしました。しかしながら、平日の特定の時間帯にツールが自動で動作する要件を満たせていないため、続編として対応を行いました。また、スマートフォンでも高配当株情報を見たいので、スマートフォンに情報を配信できるようにしました。
スクリーニングツールの作成
要件定義
前回の記事で下記のようにスクリーニングツールの要件を定義しました。今回は要件1と新たに追加した要件3を満たすようにします。
スクリーニングツールの要件定義
スクリーニングツールの自動実行
私はWindowsのパソコンとUbuntuのサーバを所有しています。Windowsのパソコンは常に起動しているわけではないため、今回はUbuntuのサーバを使って自動実行を行います。
Windowsパソコンでpythonスクリプトを自動実行する方法はこちらで説明していますので、参考にしてください。
cojimaru-chan.hatenablog.com
スマートフォンに高配当株情報の配信
Slack APIの設定
スマートフォンに高配当株情報を配信するために、Slack APIを使用します。詳細な手順については割愛しますので、参考サイトをご確認ください。
設定手順
- Slack APIより、アプリを作成
- スコープにファイル書き込みのため files:write の設定
- Slackにアプリをインストール
- Tokenをコピー
- Slackのチャンネルにアプリを追加
Slack APIの設定を行った後に、ソースコードを実行することでファイルをアップロードすることができました。
検証に使用したソースコードは下記になります。
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests api_token = '' # please enter your api_token channel = '' # please enter your channel class SlackManager: def __init__(self): self.api_token = api_token self.channel = channel def upload_file(self,file,file_name): files = {'file':open(file,'rb')} param = { 'token' : self.api_token, 'channels' : self.channel, 'filename' : file_name, 'initial_comment' : 'file upload', 'title' : 'dividend stocks' } res = requests.post(url="https://slack.com/api/files.upload", params=param, files=files) print(res.json()) if __name__ =='__main__': file_name = 'stock_210220_144325.xlsx' file_path = './' + file_name slack = SlackManager() slack.upload_file(file_path,file_name)
参考
https://qiita.com/yaju/items/2e1ab8a25b6e207bfbe6
https://www.whizz-tech.co.jp/5857/
スクリーニングツールの修正
前回作成したスクリーニングツールでは、1行(1つの銘柄)に20個の情報を表示しています。スマートフォンでは情報が多すぎると見づらいので、14個の情報を表示します。
ソースコード
ソースコードはこちらに配置しています。
github.com
家電好きが選ぶ!!食洗機の選び方!!パナソニック食洗機一覧比較
はじめに
どうも、こじまるです。
私は家電に物凄くこだわりがあります。今まで購入してきた家電は全て、インターネットでの調査、家電店での調査を何度も繰り返し、購入してきました。
今回は最近購入した食洗機について、私の選び方などをお伝えしたいと思います。
前提条件
まず、前提として、私の欲しかった食洗機のタイプを記載します。
- 据え置き・卓上型
- 食器容量 : 多い方がいい
食洗機の選び方
メーカー選択
前提条件を基に、メーカーを選択します。据え置き・卓上型の食洗機の食器容量は、3人分、4人分、5人分なので、迷わず5人分を選択しました。
理由は可能な限り多くのものを自動で洗いたいためです。我が家ではよくフライパン、鍋、炊飯器などを使用するので、それらが入るほどの大きさを持つ食洗機を選択しました。5人分の食洗機はパナソニックのファミリーモデルのみなので、こちらが候補になりました。
製品選択
一番悩んだところがファミリー向けの中でどの製品を選択するかになります。
パナソニックはハイグレードモデル、ミドルモデル、スタンダードモデルの3つに分かれています。最近ではヤフオクやメルカリなどでも食洗機は売っているので、候補は下記の2018年~2020年の下記の8モデルになります。
製品名 | NP-TZ300 | NP-TZ200 | NP-TZ100 | NP-TH4 | NP-TH3 | NP-TH2 | NP-TA4 | NP-TA3 |
---|---|---|---|---|---|---|---|---|
発売日 | 2020/9/1 | 2019/9/1 | 2018/10/30 | 2020/9/1 | 2019/9/1 | 2018/10/30 | 2020/9/1 | 2019/9/1 |
ドア開閉方式 | 前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
前開き式 (上下2枚) |
食器容量 | 5人分 | 5人分 | 5人分 | 5人分 | 5人分 | 5人分 | 5人分 | 5人分 |
庫内容積 |
50L |
50L |
50L |
50L |
50L |
50L |
50L |
50L |
食器点数 |
40点 |
40点 |
40点 |
40点 |
40点 |
40点 |
40点 |
40点 |
標準総使用水量 |
11L |
11L |
11L |
11L |
11L |
11L |
11L |
11L |
乾燥機能 |
〇 |
〇 |
〇 |
〇 |
〇 |
〇 |
〇 |
〇 |
ニオイ抑制 |
〇 |
〇 |
〇 |
|||||
除菌 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | |
タイマー | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 | 〇 |
運転コース | 汚れレベル(1/2/3/4/5) ナノイーX 低温ソフト お手入れ 80℃すすぎ 乾燥のみ |
汚れレベル(1/2/3/4/5) ナノイーX 低温ソフト お手入れ 高温除菌 乾燥のみ |
汚れレベル(1/2/3/4/5) ナノイーX 低温ソフト お手入れ 高温除菌 乾燥のみ |
汚れレベル(1/2/3) スピーディ 低温ソフト お手入れ 80℃すすぎ 乾燥のみ |
汚れレベル(1/2/3) スピーディ 低温ソフト お手入れ 高温除菌 乾燥のみ |
汚れレベル(1/2/3) スピーディ 低温ソフト お手入れ 高温除菌 乾燥のみ |
汚れレベル(1/2/3) スピーディ お手入れ 乾燥のみ |
汚れレベル(1/2/3) スピーディ お手入れ 乾燥のみ |
運転時間目安 | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) | 約84分/約79分(50Hz/60Hz) |
騒音 | 36db | 36db | 36db | 37 db | 37 db | 37 db | 38 db | 38 db |
最大消費電力 | 1165W | 1165W | 1165W | 1165 W | 1165 W | 1165 W | 1165 W | 1165 W |
幅x高さx奥行き | 550x598x344mm | 550x598x344mm | 550x598x344mm | 550x598x344 mm | 550x598x344 mm | 550x598x344 mm | 550x598x344 mm | 550x598x344 mm |
質量 | 20kg | 20kg | 20kg | 19 kg | 19 kg | 19 kg | 19 kg | 19 kg |
選んだ製品
私はNP-TZ200を選択しました。
理由としては、2つあります。
まず1つ目は値段が高かったためです。私の食洗機の検討時期は1月だったのですが、12月~2月ごろが一番食洗機が高い時期になります。新製品は例年秋頃に発売し、家電店では旧製品が在庫一掃の売り出しを行います。この時期に新製品を購入するのは多くのコストがかかるため、新製品は選択肢から除外しました。
2つ目は比較的新しく、グレードが高いモデルが良かったためです。メルカリなど中古で購入することを検討していたため、中古製品の中でも比較的新しく、グレードが高いモデルを選択しました。食洗機をタッチで操作出来るのはカッコいいですね。
私は時期が悪く新品を購入することはできませんでしたが、食洗機の狙い時の7月~10月であれば、新品を比較的お買い得に購入できます。2020年の新製品のリンクをこちらに用意しておきます。
その他悩んだ点
メーカー選択、製品選択で購入する機器が決定しました。ただ、見落としていたのがどこに配置するか問題です。機能に惹かれるあまり、どこに配置するかを意識できていませんでした。
下記が私の食洗機の配置図になります。食洗機の幅x高さx奥行きが550x598x344mmなので、ぎりぎり配置することができました。
このように配置に困る方向けに、パナソニックは公式に専用部材を提供しています。使用例は下記のようになります。
商品リンクは、こちらに用意しております。
まとめ
今回は筆者の食洗機の選び方をお伝えさせていただきました。上記の選び方でファミリータイプの食洗機を購入しましたが、ほぼ全ての食器を食洗機に洗ってもらっているので、購入して本当に良かったと実感しています。
以上、家電好きが選ぶ!!食洗機の選び方!!パナソニック食洗機一覧比較でした。