脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

ID3 tag

ID3 tag

mp3ファイルに曲の情報を付加する規格。
ファイルに埋め込む。

種類

ID3v1 / 1.1

  • 文字コードの規定がなく、昔設定したものが問題になりがち
  • 128バイト固定
  • ファイルの末尾に埋め込む

ID3v2

v1とは互換がなく、v2の中でも互換がない。
ファイルの先頭に埋め込む

  • ID3v2.3

    • もっとも普及している
    • ISO-8859-1, UTF16
  • ID3v2.4

    • UTF8サポート

運用

ID3v1 や APE は削除して、ID3v2.3 だけ付けるのがよさげ。
ID3v1 には文字コードの規定がなく、昔設定したものがよく問題になるため。

Mp3tag なら、

  • オプション>タグ>Mpeg>以下を削除する に ID3v2 以外にチェックを入れておく
  • ファイルを選択して右クリック>タグの削除 で、ID3v2 以外のタグを消すことができる

コマンドラインからシャットダウン/再起動

Windows7リモートデスクトップで繋いでいると、スタートメニューに再起動が出てこない。
コマンドラインからやる方法を調べたのでメモ。

すぐ再起動

Linux でいう shutdown -r now

shutdown /r /t 0

すぐシャットダウン

Linux でいう shutdown -h now

shutdown /s /t 0

リモートで再起動

SysinternalSuite を使うとリモートでもできる。

c:\Apps\SysinternalSuite>psshutdown.exe -u pen \\quro -r -f

UPLOAD_ERR_PARTIALのシミュレーション

UPLOAD_ERR_PARTIAL を発生させる手順のメモ。

ファイルアップロードの途中でTCPセッションが切れた場合などにこれになる。
モバイル端末など、細い回線で発生しやすい。

このエラーを再現させるには、Content-Length に満たない multipart なリクエストを送り、途中で切断すればよい。
これで「ファイルの送信中に回線切れ」のような状況を作れる。
ncでできる。

$ nc <ipaddr> 80
POST /recvFile.php HTTP/1.1
Host: www.example.com
Content-Length: 500000
Content-Type: multipart/form-data; boundary=---------------------------12345

-----------------------------12345
Content-Disposition: form-data; name="img1"; filename="hoge.jpg"
Content-Type: image/jpeg

aaa

### ここで Ctrl+C で nc を止める(切断) すると、UPLOAD_ERR_PARTIAL が発生する

recvFile.php

<?php
$line = var_export($_FILES, true) . "\n";
$logfile = __DIR__ . '/test.log';

error_log($line, 3, $logfile);

A5M2

A5:SQL Mk-2

GUISQLクライアントかつ、DBからER図をリバース生成できるツール。
Windows用の、なかなか歴史のあるツール。

とくに気に入っているのが、ER図に手動で追加したリレーションを消さずに、最新のスキーマ情報をDBから再取込できるところ。

  • ER図とデータベースの同期(DB→ER図)
    • 「データベースに外部キーとして存在しないER頭上のリレーションシップを削除しない」にチェック

良し悪しは置いておいて、ForeignKeyを採用しないプロジェクトはけっこうある。
するとリレーションはリバース生成できないから手動でER図に追加することになるのだけど、多くのツールは再取込するとこれが消えてしまう。
これが理由で MySQL Workbench などに乗り換えられずずっと使っている。

コメントをタブ文字や改行で区切って~のルールをプロジェクトに採用できるかはちょっと微妙だけど、採用できたならDB定義書のHTML/Excel出力までワンクリックでできちゃう。

windows 限定なのが惜しいところ。