揮発性のメモ2

http://d.hatena.ne.jp/iww/

json_encode()で、private変数は出力されない

変換される値がオブジェクトの場合、 デフォルトでは public としてアクセス可能なプロパティのみが含まれます。

PHP: json_encode - Manual
#!/usr/bin/php -q
<?php

class Hoge {
    public  $a = 1;
    private $b = 2;
}

$o = new Hoge();
echo json_encode($o, JSON_PRETTY_PRINT);
$ ./jsontest.php
{
    "a": 1
}

PHP5.6でZipArchiveを使うと日本語ファイル名が化ける問題

Windowsで作ったZIPファイルはファイル名がSJISであり、これをLinuxPHPでファイル名をUTF-8にして解凍したい。 という話
blog.narazaki.info


PHPでZipArchiveを使うと、statIndex() が勝手に憶測で文字コード変換をするために文字コードが破壊されてしまうバグがあるという話。
PHP7なら第2引数に ZipArchive::FL_ENC_RAW を指定することで勝手な変換を抑止できるが、これは PHP 7.0.8 以降で利用可能 であり、当然 PHP5.6 には定義が無い。


で、万策尽きたかと思ってたけど、どうも5.6でも機能はあるらしい。


そこで 定数 ZipArchive::FL_ENC_RAW の代わりに 64 を指定したら なんと期待通りに動作してしまった。 やったぜ

<?
function unzip($zipfile, $dir)
{
    $zip = new ZipArchive;

    $index = 0;
    while($entry = $zip->statIndex($index, 64)) { // ZipArchive::FL_ENC_RAW = 64
        $sjisname = $entry['name'];
        $utf8name = mb_convert_encoding($sjisname, "UTF-8", "CP932");
        $zip->renameIndex($index, $utf8name);
        $zip->extractTo($dir, $utf8name);
        $index++;
    }

    $zip->close();
    return;
}

エレコム EX‐G

マウスがうんともすんとも言わなくなったので、新しいマウスを購入した。

要求仕様は次の2点

  • マルチペアリングが簡単に切り替えられること
  • 電池式であること

エレコムの M-XGM15BBSWF/EC にした


良い点
  • まあまあ安い
  • 楽天で売ってる
  • エレコムの顔がついてる(開封するまで気づかなかった)
  • ペア切り替えがわかりやすい物理スイッチ
悪い点
  • 戻るボタン を間違って押しまくる
  • ホイールクリック判定が少し軽すぎる


もともと戻る機能は使わず 戻るボタンには「Ctrl」キーの割り当てる派なので、次のソフトで設定を変更した。
www.elecom.co.jp

PS5用SSD


PS5用のSSDの要求仕様は次の通り

インターフェース PCI-Express Gen4x4対応M.2 NVMe SSD(Key M)
ストレージ 250GB~4TB
対応サイズ 2230 / 2242 / 2260 / 2280 / 22110
放熱機構を含むサイズ 幅:最大25mm
長さ 30 / 40 / 60 / 80 / 110mm
高さ 最大11.25mm(基盤から上8.0mmまで / 基盤から下2.45mmまで)
シーケンシャル読み込み速度 5,500MB/秒以上を推奨
ソケットタイプ Socket 3(Key M)

PS5にM.2 SSDを取り付ける方法 (日本)


これを満たす2TBのSSDをリストアップ

ADATA ALEG-960M-2TCS

読込み 7,400 MB/s 、書込み 6,800 MB/s
ヒートシンク付き 5年保証
ヒートシンクがシンプルでかっこいい

CFD CSSD-M2M2TPG4NZL

ヒートシンクなし 5年保証
読込み 7200 MB/s 、書込み 6850 MB/s
ちょっと高い

Transcend TS2TMTE250H

ヒートシンク付き 5年保証
ヒートシンクの見た目が冷えそう

SPD S700-2TD

ヒートシンクなし 5年保証
ここはホームページがしょぼくていつも心配になる



というわけで、ヒートシンクがついてるトランセンドSSDを買うことにする

レッツノート CF-R4 の無線LANを有効にする

CF-R4J にインストールした Debian10 で ipw2200 を使えるようにする話

wiki.debian.org

/etc/apt/sources.list を編集し、全部に contrib non-free を追加する

deb http://deb.debian.org/debian/ buster main contrib non-free
deb-src http://deb.debian.org/debian/ buster main contrib non-free

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free
apt install firmware-ipw2x00

再起動したら無線LAN使えるようになってた。 やったぜ