タイ行ってきた(あとで書く)

インターネット環境はないこともなかったが,久々にオフライン生活6日間。
昨日夕方帰国。
0日目:移動
1日目:アユタヤ遺跡観光→仕事
2日目:仕事
3日目:大仕事
4日目:仕事→王宮周辺観光
5日目:移動

有罪

包丁職人だろうが高速道路つくった人だろうが,
ふつーは犯罪が起きたら捜査に協力するわけで。
予め捜査ができないように(できるけど)
細工してたら有罪でいいんじゃないかねえ。
それを幇助と呼ぶかどうかは知らないけど。
そんなことより,某
「P2Pの仕組みを活用したセキュアなコンテンツ配信システム」
は詐欺になりませんか。

昔のゲームのフォント

昔のnamcoのゲームで使われていたフォント。
最初はnamcoのオリジナルかと思っていたが,他のメーカーのゲームでも使われている。
開発用機材のデフォルトのフォントとかそういうものだろうか。
ちょっと気になった。
ピクセル数が少ないので似たようなフォントはたくさんあると思うが,これは今見てもかなり秀逸だと思う。0とOの表現とか。
oldgamesfont.gif

WAMP初挑戦

Windows+Apache+MySQL+PHPで作られているという社内(?)のシステムのUNIX系OSへの移行作業とその後のメンテを押し付けられ命じられたので中を覗いてみる。
PHPは使ったことがないんだがなー。
DBを軽く見てみると

  • テーブル数個のうち半分くらいしか使ってない
  • 何もかもコード化されていなくて,ユーザやグループをはじめとする名称がそのままキーになっている。
  • 一人のユーザに対応するグループが10個分用意されている。正規化されてない。
  • コンテンツを保持するひとつの項目にplain textとhtmlが混在していて判別のための項目はない。
  • たまに情報がDB内ではなく公開ディレクトリに無造作に置かれたテキストファイルに入ってる。
  • フィールド名の綴りがいろいろ間違っている。

PHPの方を見てみると

  • オブジェクト指向ではなく,別ファイルになっている関数群をまとめたものを require する形式。
  • 関数群をまとめたファイルというのが,ディレクトリ毎に同じ名前の別ファイルとして存在していて,同じ関数が定義してあるが中身が少しずつ違う。
  • 同じような手続きがあちこちにある。
  • 組み込み関数の呼び出し方がいろいろ間違っている。
  • ほとんどのデータを登録・修正・削除するインタフェースがない。
  • 入力値に対するチェックがない。
  • 単純に文字列連結でSQL文を作っている。
  • HTMLのエスケープはほとんどやってない。SQLに追加される文字列のエスケープはまったくやってない。
  • 使ってない(作りかけ)のファイルが多数。

など。
さて,どうやって捨てさせるか…。

POSTされる文字列のencoding問題

掲示板などをはじめ,フォームから日本語を入力してsubmitしてサーバ側で処理をさせるような処理を行う場合,大昔のWebブラウザは日本語化が無理矢理だったりした関係で,ブラウザによってPOSTされる文字列のencodingがまちまちだった。このため,多くのブラウザに対応するとなると,受け取る側は自動判定をはじめ小技がいろいろ必要だった。
例えば任意の文字列のEUC-JP/Shift_JISの自動判別を完全に行うことは不可能である。ここでhiddenで適当な文字列を埋め込んで,その文字列を使ってencodingを調べるといった方法もあったが,hiddenと通常の入力フォームでそれぞれ違うencodingで送るブラウザもあったり。User-Agentを見て判定の優先順位を変えるとか涙ぐましい努力をしているものもあったが,新しいブラウザがまた違うパターンだったりしてぶち壊しだったり。
最近のWebブラウザだとだいたいフォームのHTMLのcharsetと同じものを用いるので,下手に自動判定等はしない方がいいようである。
ところで,最近のWebブラウザは英語や日本語以外の多言語を取り扱うことができる。EUC-JPで書かれたHTMLのフォームにEUC-JPにはない(ASCIIにもJISX0208にもない)文字を書くとどうなるか。

メール大増殖

仕事用のメールボックス開けたら未読6600通。
何事かと思ったら,職場のメールサーバがメールを増殖させてるらしい。
出張に出た直後くらいから増殖を初めて,丸3日以上放置。
誰か気づけよ。
というか現在進行形で増殖中…。

それPla

某大学情報系学部・卒業研究発表会想定ツッコミ
「~~という背景で~~を目的とした~~システムを構築しました」
「それPlaggerでできるよ」