FC2ブログ

    広告消し

    近況報告
    ・沖縄から千葉に引っ越し
    引っ越し代、22万円・・・お高かったです。

    ・去年夏頃からFF14を初めて、5.0で仮引退
    特別理由は無いですが、気がついたら生活ルーチンから外れていました。
    これに伴って、FF14関係のプログラミングも自動的にストップしました。
    せっかくメモリ解析して、あれこれしていたのに少しもったいない気もします。

    ・最近3DCADのRhinocerosをC#でごにょごにょ
    Rhinocommon
    https://developer.rhino3d.com/guides/rhinocommon/
    このライブラリを使っているのですが、リファレンスが英語しか無いことや、ワールド座標軸とユーザ座標軸を言ったり着たりでごちゃごちゃ、触って動かして書き換えて動かしての繰り返しで、効率は悪いと思います。

    ・ゲーム時間が大幅に減った
    一日中ゲームをしたり、徹夜で遊んだりということはしなくなりました、できなくなりました?
    歳をとったなと感じます。

    だいたいそんなかんじ
    スポンサーサイト



    メーリングリストサービスfreemlのメールをクローリングで保存する

    メーリングリストサービスfreemlが2019年12月でサービスを終了する。

    https://www.freeml.com/ep.umzx/grid/Guide/node/GuideFront/g/FreemlEnd/
    【重要なお知らせ】freeml byGMOのサービス終了につきまして


    一応メールのバックアップを取っておこうと思ったのだが、上記サイトに「・管理者の方にメール一覧のダウンロード機能を提供」と書かれていて、まさかーと思いつつ、freemlのサイトでいろいろ探したのだが、やはり、通常参加者には機能が提供されておらず、一覧をダウンロードできない様子。

    一般参加者にもメールのバックアップを取る権利はあるのでは無いかと思う、というより、手動であれば全件閲覧可能なデータに対して、その一括ダウンロード機能を管理者にしか与えない意味がわからない。

    仕方がないので、Pythonでクローリングした。
    最後のメールの番号は自動取得も可能だが、自分用なので動けばいいや仕様。

    とりあえず、ぐるぐるして、3500件くらいのメール全件取得できたので、満足した。

    ご利用の際は自己責任でお願いします。
    そろそろPEP8読みたい。

    MBOX形式を勉強しようかと思ったのだが、From情報のドメイン側が消されているので、そこまでこだわらなくて良いかなと思った。

    コメント欄のエラー表示を消した

    とりあえずエラー表示をコメントアウトして、消しだただけ。

    もう数年出っぱなしだったので、あまり意味は無いけれど。。。

    WindowsにおいてHDD/SSDをBIOSで認識するがOSで認識しない場合の解決法

    環境


    【CPU】 Core i7 4790K BOX
    【CPUクーラー】 虎徹 MarkII SCKTT-2000
    【メモリ】 32GB
    【マザーボード】 H97 Pro4(BIOS ver. 2.10)
    【ビデオカード】 GTX 1070
    【SSD】 x2
    【HDD】 x5(SATA3_0からSATA3_4のSATAポートから接続+PCIEボードでSATAポートを2つ拡張し接続)
    【電源】 750W
    【OS】 Windows 10 Home

    症状


    上記環境に6TBのHDDをSATA3_5ポートから新規増設したところ、BIOSではHDDの型番まで認識した。
    OSを起動後、コンピュータの管理からドライブレターを割り当てようとしたところ、該当HDDが表示されなかった。
    デイバイスマネージャを確認したところ、やはり該当HDDを認識していなかった。

    解決方法


    以下の「IDE ATA/ATAPI コントローラ」のドライバを更新する。
    ・Intel(R) X Series Chipset Family SATA AHCI Controller
    ・標準 SATA AHCI コントローラ
    ただし、今回は上記ドライバを「ドライバの更新」から更新を試みるも、「最新のドライバ」であるとされ、改善が見られなかった。

    そのため別途、「インテル® チップセット・デバイス・ソフトウェア(INF 更新ユーティリティ)」をインストールした。
    使用した実行ファイルは以下から入手可能である。
    https://downloadcenter.intel.com/ja/download/28768/-INF-?product=98458
    対応しているチップセットはページ下記の「このダウンロードは以下の製品での動作が確認されています。」から確認可能である。

    解決までに試したこと(忘備録)


    SATAポート、ケーブルの初期不良->BIOSで認識できているため該当しない


    一応ポートやケーブルも変更済み
    SATA3_4に接続していたドライブをHDD_A、SATA3_5に新規で接続するドライブをHDD_Nとした場合、
    SATA3_5に接続されているHDD_Nが認識されなかったため、
    SATA3_4にHDD_Nを、SATA3_5にHDD_Aを接続したところ、HDD_Nが認識され、HDD_Aが認識されない状態となった。

    HDDの初期不良->BIOSで認識しているため該当しない


    また、上記環境で、OS起動後にSATA-USB変換ケーブルを用いてHDDを接続した場合は8個目のドライブとして認識される。
    フォーマットや読み書きも通常通り可能だった。

    HDD増設により電源不足が発生している->必要電力量と搭載電源から、該当しない


    そもそも、HDDを1個増設して不足する電力状態にあるならば、普段ゲームをしているときに動作が不安定になっているはずだが、そういったことは無い。


    以上から、ハード的な問題ではないだろうと判断した。


    デバイスマネージャで認識されていないため、ドライバの問題を疑った(というより、他に疑うものが思い浮かばなかった)


    Googleで「windows10 デバイスマネージャー hdd 認識」で検索し、2件目の「BIOSではHDDを認識するのに、Windows10では認識しない時の対処法【これで解決】」( https://www.mashilog.com/entry/bios-hdd-windows-ninnsiki )にたどり着き、ドライバの更新をするも、「最新のドライバ」であると表示されるのみで改善されず。

    「Intel(R) 9 Series Chipset Family SATA AHCI Controller+α」で検索し、「Windows 2000 向け Intel 9 Series 対応 AHCI ドライバ定義更新」( http://blog.livedoor.jp/blackwingcat/archives/1896175.html )にたどり着き、「INF ファイル」の上書きも有効らしい場合があることを知り、解決法のドライバダウンロードページに辿り着いた。

    状況が限定的すぎて全然情報がなかった。
    試していないのだが、PCI-EでSATAポートを拡張していないSATA3_0->SATA3_5までだけ使用していた場合には、この症状は起こっていなかったのかもしれない。
    8個目のドライブで症状が出るのか、それとも、M/Bの最後のSATA3ポートで症状が出るのかどちらだったのだろう。
    情報の少なさからいって、前者なのではないかという気がする(ただし、なぜ7個まで大丈夫で、8個目からだめなのか不明なので、後者なのかもしれない)。
    症状を改善してしまったので、もはや検証不可能である点、少々残念である。

    Logicool Gaming Softwareでスクリプトを書こう

    Logicool Gaming Software(以下LGS)さん実はLuaスクリプトを書けます。 

    その前に、LGSのマクロのお話を少し。

    LGSには一定の操作を簡単に自動化できるマクロ機能が実装されています。

    マクロを使うと、「コピー(Ctrl+C)」をワンクリックでできたり、するわけですね。

    ただ「コピー」するだけならショートカット押せばいいじゃないかと思われますので、パッと思いついた使いみちを書くと。
    例えば、「AとDを交互に連打したい」場合があったとすると、通常ならキーボードで「ADADADAD・・・」と打たなければならないわけですが、マクロを使うと「AD」を「1秒ごとに繰り返す」ということができるわけですね。
    (DbDで使っている人がいるかも知れない)
    この操作を、LGSのマクロ機能で書くと画像のようになります。

    s-CB_0006.jpg

    ちょっと説明
    ○キーストローク
    ・下矢印がキーを押し込む操作
    ・上矢印がキーを離す操作
    ・X秒の遅延はX秒何も操作しない時間

    ○繰り返しオプション
    ・ボタンを押している間、1秒ごとにキーストロークを繰り返す

    ●LGSマクロの長所・短所
    ○長所
    ・お手軽
    「記録を開始」ボタンを押したあとに、再現したいキー入力を押すだけでマクロが作れる

    ○短所
    ・可読性が悪い
    上矢印のキーがどこで押されていて、どこで離されているのか分かりづらい。
    ・編集性が悪い
    「AD」と入力していたけれど、「ACD」としたいと思ったときには、「AD」の操作の間を選択して「ここより前/後から記録」としてキー入力を足すわけですが、複雑なマクロをトライアル・アンド・エラーしようと思うと可読性の悪さと相まって、もはや新規にマクロを作り直すことになります。
    ・繰り返しに弱い
    「ABCDEF」「Q」「ABCDEF」「Z」と入力したい場合、素直に「ABCDEF」「Q」「ABCDEF」「Z」とマクロを組むしかない。
    何当たり前のことを言っているんだと思われるかもしれませんが、プログラミングをしたことのある人なら「ABCDEF」の入力は「関数にしてやればいい」とか「for」で回せばいいとか思うことでしょう。

    ●マクロとスクリプトの比較
    イマイチ長所と短所が伝わりづらいと思いますので、「ABCDEF」「Q」「ABCDEF」「Z」をマクロとスクリプトで組んだ場合の違いをお伝えします。

    ○マクロ
    左から右にキー入力のマクロが進んでいきます、記録した直後に見ても、もはや何をしているのかよくわからない状態になっています。
    (マクロ画像はまだ続きますが、ここまでにしておきます。)
    s-CB_0007.jpg s-CB_0008.jpg


    ○スクリプト
    キーの入力(押し込みと離す操作)を1行で書けるので、マクロと比べると非常にスッキリしているかと思います。
    s-CB_0011.jpg 

    PressAndReleaseKey()は「キーを押して離す」操作をしています。
    例えば、PressAndReleaseKey("a")ならAキーを押して、離すということですね。
    PressAndReleaseKey("a", "b")だと、Aキーを押して離したあとに、Bキーを押して離すといった具合になります。

    ○「ABCDEF」「Q」「ABCDEF」「Z」から「ABCDEF」「Q13」「ABC2DEF」「Z3」に変えたい
    マクロの場合は、「Qの後から記録」で「13」をいれて・・・とできないこともないですが、非常に分かりづらいです。

    一応編集したマクロをペタリ。
    s-CB_0013.jpg 

    「Qを離して」から「1を押す」までに遅延が入っていませんね・・・とか、「Q13」としたつもりが「ABCDEF13」になっていたということが容易に起こりうる可読性の悪さです。

    スクリプトをペタリ
    s-CB_0014.jpg 

    非常にわかりやすいですね。
    また、テキストなので、編集が非常に簡単です。
    マクロで、「ああでもないこうでもない」「間違えた・・・」「なんじゃこりゃー」となるところを、スクリプトなら数行でしかも読みやすく、編集しやすくかけるわけです。

    これはもうスクリプトを使うしかない!

    ということで、スクリプトを書きたい方は、先人が書いている解説を参考に学んでみましょー!
    (丸投げ)

    参考:

    自分用に作った関数たち
    昨日スクリプト機能に気がついて書いたのでまだまだ編集中