雑多なブログ

音楽や語学、プログラム関連の話題について書いています

androidとmac間のファイルのやりとり

androidからMac

  1. Macandroid両方のBluetoothを有効にしておく
  2. ペアリングする
  3. Android側で送信したいデータを選ぶ
  4. 共有オプションBluetoothを選び、Macに接続する

大容量のファイルだとBluetoothでは厳しいかもしれないけど、ちょっとした画像ファイルくらいなら気軽に送れるので良いかも。

スイスポのクラッチペダルストッパー交換について

結論を先に言うと、思いつきでやってはいけないカスタムです。

Youtubeで、スイスポ(ZC33S)に標準で付いているクラッチペダルストッパーを少し厚みのある、スズキ純正の「09321-06033」に交換するちょっとした改造について多数の動画で紹介されていました。これによりクラッチを踏み込む量が減って楽になる、だとかクラッチの操作フィーリングが改善して運転しやすくなるという話でした・・・

しかし、ベタ踏みしなくてもクラッチは切れるので、そのポイントまで踏めば良いので踏み込む量が多くて辛いというのは、ちょっとずれているような気がします。というわけで、10年ぶりのMTで操作感が掴めていない時期に自分も好奇心で試してしまいましたが、リスクが大きく、意味もあまりないカスタムなのですぐに元に戻しました。

まずは、シートとステアリングの位置を徹底的にこだわるのが先で、ペダルの調整はその次かなと。また、クラッチペダルの調整をするにしても、クラッチを踏み始めてから完全に切れるまでの踏み込む量を調整すべきで、遊びの量を調整してもクラッチが切れるまでの踏み込む量は減りません。遊びを減らすと、クラッチの踏み込みが浅くなりやすくなるだけなのでメリットはないように感じます。

半クラクラッチが完全に切れるまでの量を調整したい場合は、クラッチペダル自体を調整可能な社外品に変えて調整すべきところでしょう。

Youtuberの意見はほどほどに・・・

swiftを触ってみた。

swiftを使ってちょっとしたプログラムを書いてみたので、単一ファイルのビルド方法についてメモ。ソースから直接実行することもできるので、小さいコードの確認はビルドせずに実行すれば良さそう。

実行環境

  • macOS 12.7.4 (Monterey)
  • Xcode14.2 (14C18)
  • Apple Swift 5.7.2

ビルドと実行

即時実行

swift filename.swift

実行ファイル作成

# 実行ファイル作成
swiftc filename.swift
# 実行
./filename

PHPのサポート期間2024年編

2024年8月1日時点でのPHPの各バージョンのサポート期間について確認しました。

なお、PHP公式のサポート期間が終了している場合でもOSディストリビューション毎にバックポートは適用されている事がありますので、そちらも併せて確認されることをお勧めします。

バージョン サポート期限
PHP8.1 2025/12/31
PHP8.2 2026/12/31
PHP8.3 2027/12/31

古いバージョンのPHPサポート終了日

バージョン サポート期限 最新バージョン
PHP7.0 2019/01/10 7.0.33
PHP7.1 2019/12/01 7.1.33
PHP7.2 2020/11/30 7.2.34
PHP7.3 2021/12/06 7.3.33
PHP7.4 2022/11/28 7.4.33
PHP8.0 2023/11/26 8.0.30

公式の情報はこちらから
PHP: Supported Versions

しまむらの子ども服のコラボ商品がSNSで炎上

衣料品チェーンのしまむらグループが展開する、子ども関連の専門店「バースデイ」が販売開始した商品で騒動が起きているようです。

男性(パパさん)差別的なメッセージが服に書かれていてそれが大炎上したようです。

SNSに投稿された写真を見たところ、「パパは全然面倒見てくれない」、「パパはいつも寝てる」、「ママがいい」など、家事育児に非協力的な男性を揶揄するようなメッセージのように感じました。実際には家事育児に積極的に参加して頑張る男性もいることでしょう・・・

もちろん、同じシリーズすべての商品でネガティブなメッセージばかりが使われているわけではなくて面白くてくすっとするメッセージのものもあるとは思いますが、ネガティブなものが悪目立ちしてしまいましたね。

PHPでファイル一覧を取得する方法

PHPでファイル一覧は下記の方法で取得できます。 改めて調べてみると色々な方法がありますね。

  • opendir, readdir
  • scandir
  • DirectoryIterator
  • glob

opendir, readdir

opendirディレクトリハンドルを取得し、readdirディレクトリ内のディレクトリとファイルを取得します。取得するファイルの順番は、ファイルシステムに格納されている順序に依存します。

なお、... がリストに含まれるため、これらを除外する必要があります。

$dh = opendir('.');

if ($dh) {
    while (($file = readdir($dh)) !== false) {
        // `.` や `..` を除外します
        if (in_array($file, ['.', '..'])) continue;

        // ファイル以外は除外します
        if (!is_file($file)) continue;

        $files[] = $file;
    }
    closedir($dh);
}

print_r($files);

scandir

対象パスのファイルとディレクトリのリストを取得します。 リストに ... が含まれるため、これらを除外する必要があります。

$result = scandir('.');
print_r($result);

デフォルトでは、リストはアルファベット順に昇順で並べられます。 異なる並び順にしたい場合は、第二引数に以下のオプションを指定します。

SCANDIR_SORT_DESCENDING ... アルファベットの降順
SCANDIR_SORT_NONE ... ソートせずに出力する

glob

指定したパターンにマッチするファイルやディレクトリのパスを返します。 以下の例では、カレントディレクトリ内の.txtもしくは.pdfに該当するファイルを取得しています。

print_r(glob('*.{txt,pdf}', GLOB_BRACE));

一定のルールで命名されたファイルやフォルダのリストを取得する場合に便利な関数です。なお、マッチしたパスのリストを一度にまとめて取得するため、ファイルやフォルダの数が多い場合は、 DirectoryIterator を使うと良いでしょう。

DirectoryIterator

対象パス内のファイルとフォルダのリストをイテレーターを使って取得します。一件ずつ展開するためメモリの消費が抑えられます。

$itr = new DirectoryIterator('.');
$files = [];

foreach ($itr as $fileinfo) {
    if (!$fileinfo->isFile()) continue;
    $files[] = $fileinfo->getFilename();
} 
print_r($files);