WindowsでのHDD初期化に関するメモ

HDDを処分するにあたってデータ初期化の方法について調べたことをメモ。

cipherコマンド

  • 空き容量にあるファイルを復元不能にする機能が提供されている。
  • 例えばDドライブの空き容量にあるファイルを復元不能にするには、CIPHER /W:D: とする。 (参考 )
  • 参考スクリーンショットを見るに、0埋め→1埋め→乱数埋めと3回の書き込みを行うらしい。
  • 参考 によると、cipherを使っても、1000バイト程度の小さなファイルは復元できてしまうらしい。CCleanerを使うと、"MFT空きスペースの抹消(Wipe MFT Free Space)"のチェックをオンにすることで小さなファイルも復元不能にできるらしい。

CCleaner Free

  • バージョンによってGUIが微妙に変わっている様子。
  • 私のインストールした v6.15.10623 の場合は、
    • オプション → 設定 に「MFT空きスペースの抹消」という設定項目がある。
    • ツール → ドライブワイパー に、上書き回数を指定してドライブを安全削除できるツールが用意されている。

iiyamaのWQHDモニタ XUB2792QSN-B5 を買った

技術的な進捗がないので、最近買ったWQHDモニタの紹介をします。 iiyamaのXUB2792QSN-B5Amazonアフィリエイトリンク)です。

購入動機は、2010年頃に買った三菱のRDT271WLMの電源がとうとう入らなくなったことです。モニタ選定に際して考えたことは以下でした。

  • サイズは27インチ以上
    • 今のサイズより小さくなるのは辛い
  • 解像度は WQHD(2560x1440)
    • フルHDのままだと進歩がないため、高い解像度を試したかった。
  • 曲面ディスプレイは避ける
  • 入力切替ボタンが独立していると良い
    • 頻繁にPCを切り替える必要があるため
  • ゲーミング機能は重視しない
    • 応答速度が重要なタイプのゲームはしないため

27インチのWQHDモニタは廉価なものでは2万円前後からありました。デルの27インチWQHDディスプレイが2万0860円というセールがありましたが、買い逃してしまいました。もしもっと早く気付けていればこれを買っていたと思います。

他の某メーカーのものも画質は良さそうなのですが、よくよくレビューを見てみると、電源アダプタが壊れたという報告やモニタアームが華奢といった報告があり、食指が動きませんでした。

結局、モニタは長く使うものであるのでしっかりしたものを買おうと思い直しました。特に、最初は気にしていなかった入力端子について検討し、PC側に給電も可能なタイプのUSB Type-C端子のついたものから選ぶことにしました。このようなモニタであれば、ノートPCとディスプレイの間のケーブルが一本になりデスクがすっきりするはずです。現時点でそのようなPCを持っていないのですが、将来への投資ということです。

そのような条件を加えた上で安価だったのが冒頭に述べた iiyamaのXUB2792QSN-B5 でした。公式サイトはこちらです。

このモニタは前述した給電機能のあるUSB Type-Cを備えています。また、やや珍しいことにLANの口も備えているので、USB Type-Cのケーブルを通じて有線LAN接続もできるようです(多分)。

また、台座がしっかりしていて簡単には倒れなさそう。角度・高さの調整が容易なところや、90度回転できるのも好印象でした。ただし、代償として重さ6.8kgとかなり重めでしたが。

まだ使って一日ですが、いまのところ満足して使えています。古いノートPC ( Dynabook R734) とHDMIで接続していて、WQHD(2560x1440)で74.924Hz出ているようです。

JPEGのEXIFに記録された撮影日時でファイル作成日時を更新するサンプルPythonスクリプト

Windowsにて表題のことをするPythonスクリプトを以下に示します。 os.utime()だとファイルの更新日時、アクセス日時を更新することはできるのですが、 ファイルの作成日時は変更できないところで少し調査が必要でした。

【Python】ファイルとフォルダのタイムスタンプを変更するコード例【作成日時・更新日時・アクセス日時を変更する】 | シラベルノートを参考に、win32-setctimeというパッケージを利用することで ファイルの作成日時を変更できました。

"""
./origディレクトリにあるJPEGファイルについて、
- EXIFから撮影日時を取得し、
- ファイルの作成日時をその撮影日時に変更して、
- ./changedディレクトリに保存

Windows + Python 3.8で動作確認。

参考:
    - https://note.com/kamakiriphysics/n/n8028b4f46922
    - https://srbrnote.work/archives/4054
"""
import datetime
import os
from pathlib import Path
import shutil
import time

from PIL import Image
from PIL.ExifTags import TAGS
import win32_setctime  # pip install win32-setctimeが必要


def main():
    # 元のJPG画像を格納するディレクトリ
    src_dir = Path('orig')
    # 作成日時を変更したJPG画像を格納するディレクトリ
    dst_dir = Path('changed')

    dst_dir.mkdir(exist_ok=True, parents=True)

    for src_img_path in src_dir.glob('*.jpg'):
        src_img = Image.open(src_img_path)
        exif = src_img._getexif()

        # # 取得可能な情報を確認(デバッグ用)
        # for k, v in exif.items():
        #     print(k, TAGS.get(k), v)

        # 写真の撮影日時(DateTimeOriginal)を取得 (e.g. "2023:06:23 09:45:24")
        date = exif[36867]

        # src_imgをdst_dirにコピー
        dst_img_path = dst_dir / src_img_path.name
        shutil.copy2(src_img_path, dst_img_path)

        # 作成日時、更新日時、アクセス日時を決める
        YYYYmmdd, HHMMSS = date.split(' ')
        YYYY, mm, dd = [int(x) for x in YYYYmmdd.split(':')]
        HH, MM, SS = [int(x) for x in HHMMSS.split(':')]
        ctime = mtime = atime \
            = datetime.datetime(YYYY, mm, dd, HH, MM, SS).timestamp()

        # 作成日時、更新日時、アクセス日時を変更
        win32_setctime.setctime(dst_img_path, ctime)
        os.utime(dst_img_path, (atime, mtime))

    print("finished")


if __name__ == '__main__':
    main()

Google Code Jamのアーカイブサイトまとめ

Google主催の競技プログラミングコンテストであるGoogle Code Jamがついに2023年にcloseしてしまいます。

https://codingcompetitions.withgoogle.com/codejam/faq によると、2023-06-01でサインインが不可になり、2023-07-01にはサイト自体がシャットダウンするそうです。サイトがcloseされたあともGoogle Code Jamのことを振り返られるように、Google Code Jamのアーカイブサイトに関する情報をまとめます。

ジャッジ機能のあるサイトは残念ながら見つけられませんでした。

新電力の燃料費調整額を理解していなくて大損した話

新電力の電気代が高騰する原因の一つである「燃料費調整額」のことをよく理解しておらず大損してしまいました。なぜ自分が勘違いしていたのかを後学のために以下に記します。

まず、東京電力は、「自由化前の料金プラン」と「新しい料金プラン」の2種類のプランを出しています。

「自由化前の料金プラン」に当てはまるのは、例えば「従量電灯B」です。昔から東京電力を使っていて、電力自由化に際して何もしていない人はおそらくこのプランです。

「新しい料金プラン」に当てはまるのは、例えば「スタンダードS」です。新規で東京電力に申し込む場合、「自由化前の料金プラン」は見えにくい場所にあるので、気づかないうちに「新しい料金プラン」にしてしまっている人もいるかもしれません。

次に、我が家がかつて加入していたプランの話です。我が家はIHコンロを利用していることもあって、瞬間的な最大電力量が読みづらく、アンペア数を60Aにしても基本料金が変わらないプランを探しました。かつてはその条件を満たす「あしたでんき」という新電力に加入していたのですが、2022年6月末に供給終了してしまったため、似たプランである、中国電力シンプルコース〔東京電力エリア〕 にスイッチしました。

この際気にしていたのが「燃料費調整額」の存在です。一部の新電力会社では「燃料費調整額」が青天井で電気代がひと月10万円を超えた、などの話を耳にしていました。シンプルコースの説明書きには「燃料費調整額は東京電力のそれと同等」と書いてあったと記憶しています(正確な文言は不明)。そのため、東京電力を選んだ場合と比べて電気代が高くなることはないのだと思い込んでいました。

しかしこれが罠でした。詳しくは新電力、やばいって本当?燃料費高騰でも安心な電力会社はどこ?を見ていただきたいのですが、 電気料金プランには「規制部門」と「自由化部門」の2種類があるそうです。そして、「規制部門」には燃料費調整額の上限があり、「自由化部門」には上限がないそうです。私はそもそも東京電力に「規制部門」と「自由化部門」の2つが存在することを知らなかったのが敗因でした。

例えば、2023年1月の例で説明します。2023年1月の燃料費調整単価は1kWhあたり12.99円でした。

前述の「自由化前の料金プラン」は規制部門に相当します。規制部門では燃料費調整額の上限があるため、1kWhあたり5.13円のみの燃料費調整額が電気料金に加算されました。

一方、「新しい料金プラン」は自由化部門に相当します。自由化部門では燃料費調整額の上限がないため、1kWhあたり12.99円の燃料費調整額が電気料金に加算されました。

私が入っていた中国電力のシンプルコースも「自由化部門」に相当するため、1kWhあたり12.99円の燃料費調整額が電気料金に加算されていたことになります。

今にして思えば、中国電力の「燃料費調整額は東京電力のそれと同等」という文言は、「燃料費調整額は東京電力の「新しい料金プラン」におけるそれと同等」と理解しなければいけなかったことがわかります。私は「燃料費調整額は東京電力の「自由化前の料金プラン」におけるそれと同等」と理解してしまっていたので、結果として8ヶ月の間大損してしまいました。

以上の事実を理解したあと、東京電力の「従量電灯B」にスイッチしました。東京電力の「従量電灯B」はWebで申し込みできず、電話が必要という不親切差であったことを付け加えておきます。

以下は、もっと早くに気づいておきたかった関連ツイートです。

Androidのタッチディスプレイが壊れて詰んだ話

先日、Android機 (Pixel 4a (5G)) を胸辺りの高さから床に落としました。タッチしても反応しなかったので、OSが固まったのかなと思い強制再起動したが変わらず。じきに、落とした衝撃でタッチパネル機能ごと死んだのだと悟りました。

タッチパネルが効かないので、当然ですが画面の操作が効きません。これに関しては、スマホに同梱されていた変換アダプタをUSB-C端子に刺すことでマウスとキーボードが使えるようになり解決しました。

しかし困ったのは画面の侵食です。最初は画面の端だけが黒ずんでいたのですが、時間が経つにつれてその黒い領域がどんどん広がり、画面が見えなくなっていきました。

https://www.amazon.co.jp/dp/B07X7VQ9HN?&linkCode=ll1&tag=minus9d-22&linkId=ebcd152fb501c43c9dc14ce0c6b04631&language=ja_JP&ref_=as_li_ss_tl のようなアダプタを入手できれば、画面をディスプレイに転送しつつマウス・キーボードで操作もできそうです。 しかし、どうやらGoogleのPixelシリーズはDisplayPort Alternate Mode機能というのに非対応(参考)で、この線もダメでした。

Androidミラーリング設定をする手もあったかもしれませんが、どうもChromeCastを持っていないとだめらしく(参考)、他の手段を調べている間に画面のほぼすべてが見えなくなってしまい、詰みました。

ソフトバンク経由で修理を依頼するとデータが初期化されてしまうというので、Pixelの公式修理サービスを展開するiCrackedに本体を持ち込んで修理することにしました。修理は60分以内でしていただけるので見学しました。電源を付けたまま本体を分解しディスプレイコネクタを抜いたのには少々驚きましたが、新品のディスプレイに交換後、サービスモードに入って各項目のチェックをしていただいたので安心感はありました。修理代金は21,780円でした。高く付きましたがデータは無事だったのは不幸中の幸いでした。

SoftBankからOCNモバイルONEにMNPしたときのメモ

1年強利用したSoftBankの回線をOCNモバイルONEにMNPしたときのメモです。

SoftBankでのプラン

SoftBankではスマホデビュープランというプランを利用していました。これは条件を満たすことでしか加入できないプランで、私は他社のガラケーからMNPすることで加入しました。

このプランは最初の12ヶ月は毎月990円(税込)で5分以内の国内通話無料・データ容量5GBで、私の使い方だとかなりの好条件でした。しかし12ヶ月を過ぎたあとは毎月2,178円・データ容量3GBと魅力が落ちます。さらに、データ使用量を使い切ったときの速度128kbpsが殺人的な遅さで、MNPを決意しました。

MNP先の検討

私の使い方だと毎月3~6GB程度のデータ通信量に収まる事が多いので、その場合に安くなるところを探しました。

まず3大大手キャリアはどこも使用料の設定が高すぎ、検討から外れました。

ahamoはデータ20GBからのスタート。20GBは使いそうもないので除外。

LINEMO、ワイモバイル、楽天モバイルのプランはいずれも3GBの次は20GBです。毎月3~6GB程度のデータ使用量だと割高感があるのでやはり除外。

さらに検討の結果、大手MVNOであるOCNモバイルONEとIIJmioから選ぶことにしました。この2つは似ている点が多いですが差異もあります。

  • 共通
    • 電話は11円/30秒(他社は22円/30秒のことが多い)
    • 余ったデータ量を来月に繰り越せる
    • 節約モードがある
  • OCNモバイルONEの利点
    • 昼も高速 (参考)
    • 音楽配信サービスでのデータ利用がカウントされない
  • IIJmioの利点
    • 超過後の速度が高速(OCNモバイルONEは200kbps, IIJmioは300kbps)
    • 少し安い(OCNモバイルONEは990円で3GB, IIJmioは990円で4GB ※2023/4/1から5GB

今回は、昼も高速で、また安く端末を手に入れることのできるOCNモバイルONEにすることにしました。 IIJmioは過去にデータ専用で使ったことがあって、確かに昼は少し遅かったですがそれ以外は特に問題はなく、 IIJmioでも良かったとは思います。

OCNモバイルONEへのMNP

OCNモバイルONEへMNPするときに少しはまったのでメモしておきます。

OCNモバイルONEへの契約を進めると、「OCN会員登録証のご案内」というPDFが表示されるので、これを必ず保存する必要があります。

SIMカードが送られてきたあと、OCNマイページへのログインをする必要があります。ログインには、前記PDFの「OCNメール」の項にあるメールアドレスとパスワードを使います。私は誤って「OCN会員登録証/ご契約内容のご案内」の項にある認証IDと認証パスワードを使ってログインしようとしてはまってしまいました。認証IDはまるでメールアドレスのような見た目をしているので、完全に勘違いしていました。検索しても原因究明できず結局サポートに電話してしまいました。同じはまり方をする人の助けになれば幸いです。