「TGscript」に関する日記(2)

<前 次>

無題

アンパンマンDB3の設定項目はTGscript系のユーザー情報と結び付けて管理することにしているので、ユーザー管理あたりのプログラムを作っていました。

TGWSAdminの新着情報ゆれの問題ですが、新着情報数件を自前で保存しておいて、過去にあったのと同じ情報は新着ではないとみなすようにすれば解決できそうです。

無題

自動ログイン方式について考えています。
うちみたいなサイトで細かいことを気にしても仕方ないような気もしますが、あまり安全でない方式と安全な方式があるなら安全な方式を選びたいわけで。
基本的にうちの参加型コンテンツでは、ログインIDとパスワードによる明示的なログインは用いない方針です。
原則として、勝手にIDを振って勝手に保存して、何もしなくてもパーソナライズされた結果が出るようにしたいのです。
次回アクセス時にIDを特定できるようにするため、クッキーにID読み出しのためのキーを格納しておいて、そのキーはアクセスごとに変わるようにします。
そうすると、保存すべきは毎回変わるキーだけで、ログインIDやパスワードといった情報はクライアント側には保存しなくて済みます。
この場合、ブラウザや接続元が変わるとログイン状態が切れてしまうので、明示的なログインも用意しておけば便利かと思っています。
イメージ的には、今の掲示板と似たような方式です。

無題

アンパンマンDBバージョン3用の文字エンコーディング正当性チェックを作りました。
TGscriptとも将来的に統合する予定なのでTGscript枠で作っています。
従来のアンパンマンDBとは異なり、UTF-8だけでなくShift_JISも受け付けます。
というのも、ezwebで繋ぐとUTF-8に指定していても関係なくShift_JISでデータが飛んでくるので、UTF-8で決めうちしていると全く検索などが使えなくなってしまうのです。
そのため、最初に文字エンコーディング変換を入れてから正当性チェックを行うことにしました。

無題

うちの携帯電話はezwebもPCサイトビューアもDigest認証に対応していなかったようです。
正しくパスワードを入力しても認証に失敗します。
モバイル向けには別の認証方法を検討したほうがよさそうですね。

無題

Digest認証についていろいろと試していたのですが、どうにもうちのサーバーではDigest認証が有効になっていないようです。
.htaccessで粘ってみたのですが、パスを入念に調べてもコマンドの順番を入れ替えてみてもパスワードファイルを作り直してみても500エラーから解放されず。
なので、結局PHPで実装することにしました。
もっとも、この方法だと.htaccessによるディレクトリ単位の制御とは違って、PHPファイルでさえあればどこのファイルにも認証がかけられるし、未認証の状態では401エラーの代わりにユーザー用ページを表示するといった柔軟な制御もできるので、これはこれでよかったのかもしれません。

TGscript

TGscriptのユーザー周りを再構築しています。
ユーザー管理をTGscriptとアンパンマンDBで統合して、ついでにデータベース周りもごっそり書き換えようかと。

無題

絵を使った何かを何かをやりたいんですよねぇ。
例えばアンパンマンDBの各ページにお絵かき掲示板機能をつけてみたりとか、それ以前に普通の掲示板のほうにお絵かき掲示板機能をつけてみたりとか。
凝ったことでなくてもいいから、何かやりたい、と思っています。

無題

というわけでC#版の読み込みプログラムをアップしました。

あと、TGscriptのプロフィールシステムに手を入れています。
アンパンマンDBにもTGscriptのユーザー情報を使えるようにしたいのです。

アンパンマンDBとTGscript

アンパンマンDBのユーザーIDシステムについて考えています。
ただユーザーごとにIDを与えるのは簡単なのです。
しかしユーザーにとってのユーザーIDを使う利益というものが今のところないのです。
実際のところ導入したい理由というのが、ユーザーごとの制限を加えたいということなのです。
なので、サイト全体に通用するIDを用いるTGscriptのユーザーIDと一本化しようかということを考えてみました。
そうすれば掲示板の利便性との兼ね合いでどうにかなるかと…。

無題

掲示板を2ch風のインターフェースにしてほしいといった意味の要望がありましたので、TGBBSをいじってました。
これはオプションで変更可能にすることにして、今日はその設定によりどこで処理を分岐すべきかというのを考えていました。
で、ついでなので、記事管理ページのデザインの崩れを直したり、メモリの使用量をチェックしたりしてました。

無題

てなわけで久しぶりにオプ…いや、大神をやりました。
とりあえずエナジーボン…じゃなくて神器の使い方のおさらいとして、ダークロ…妖怪と戦ったりしていました。
実に2年ぶりだったのでフォ…いやいやいや、筆しらべがなかなかうまく使えなかったりしたんですがまあまあ楽しめました。

今日は、掲示板のちょっとした改良も行いました。
スレッドが長くなってくると下までスクロールして最新の書き込みを見るのが大変になってくるので下まで一気に下がるリンクをつけました。

アップロード掲示板

メテオンもどき、白文字に黒縁をつけることで背景画像を邪魔しないように文字を読みやすくできたのでアップしました。
これで、なければ困る機能は大方そろったと思うので、今まであまりやってこなかったことのほうに力を入れるようにして、メテオンもどきのほうはそろそろゆっくりの更新ペースに落としておこうかと思っています。
とりあえずBGM切り替えと同時に生存した場合に両方鳴りだしてしまうバグを解消してから…ね。
演出面やちょっと不便なところなどの更新はもう後回しにしようかと思っています。

今日はVistaに変えてから不安定だったAN HTTPDを調整して何とか勝手にエラー落ちしないようにしました。
問題はPHPのモジュールにあったらしく、モジュールとしての実行からCGIとしての実行に切り替えるとエラーが起こらなくなりました。
ということで、前々からやりたかった、TGBBSへのファイルアップロード機能の追加をやってみました。
メテオンもどきが宣伝効果となってダウンロードゲームのほうもやってくれる人が増えたようで、自作ステージのアップロードなどにも早く対応したくなったのですよ。

TGBBS削除機能

Lua、Bomber丸World上で動かすのに成功しました!
コネコベーダーの動きをコルーチンで制御しています。
実際のプログラムをWiki上にアップしているので是非ご覧ください!

あと、今日はTGBBSの削除機能を実装しました。
ただ、実際に消しているわけではなく削除済みフラグを立てているだけなので後から復活することもできます。

新卒採用の楽しそうな人

就職の面接に行ってきました。
面接官が面接をすごく楽しんでいるようで、こちらとしても楽しく喋ることができました。
受かってるといいな。

それはそうと、今日はTGBBSの記事のオプションのページを作っています。
またあらたにフォームの種類にラジオボタンが必要になったので少し時間がかかっていますが、オプションでは投稿者が記事の削除や編集を出来るほか、閲覧者も情報の閲覧や他の何らかの操作をできるようにする予定です。

2社目の日程決まったぞ

TGBBSをいろんなところで改良しました。
・タイトルや名前などに文字数制限を設けた。
・番号じゃないIDを作れてしまう問題を修正。
・フォームのプロパティをもっと柔軟に設定できるようにした。
・画像の代替テキストが正しくなかったのを修正。
・記事の編集オプションへのリンクをつけた(中身は未実装)。
・パーミッションを改善。
・専用アイコンをパスワードで制限するようにした。
・それに伴い一覧の表示を色分けした。

HTMLとして不適当なTGBBS

TGscriptをHTML-lintに通してみたら悲惨な点数になっていました。
nl2brがXHTML対象なのか<br>とすべき部分が<BR />になったり、単純にHTMLで規定されていないブラウザ独自のタグを使っていたり、それが記事の数だけ出てくるのでどんどんマイナスになってゆくのです。
でまあ、スタイルシートを使ったりnl2brのHTML版を作ったりして対処しました。
あと、減点は少ないけど鬱陶しい警告の回避もしてたり。

久々に学習帳更新しましたよー。
学校の輪講で調べた結晶についてです。

削除について思うこと

TGBBSの削除機能について考えてます。
元々TGBBSには削除機能をつけるつもりはなく、非表示にすることで削除の代わりにしようと考えていたのですが、迷惑書き込みは問答無用で存在しなかったことにしたいし、間違って投稿してしまった場合などはいったんきれいに消してから書き直したいものだし、こちらとしても消したい物をわざわざ残すのもどうかと思ったので、非表示になった記事は管理人の判断で完全に抹消できるようにしたいと考えたりしています。
しかし今のログデータのフォーマットでは実はそんなことをするとスレッド番号がおかしくなるんですよね…。

パスワード!

まだ使い道はありませんがTGscriptのパスワード記録を実装しました。
今後は、掲示板の書き込みの削除・編集、プロフィールデータの復活、専用アイコンの使用制限などでの利用を考えています。

あと今日はナマライザのファイル情報表示ウィンドウにファイル名を渡して表示するところを作りました。
中身はまだ全然ですけど。

NGワード

TGBBSにNGワード機能を搭載しました。
ただし、巷でよくあるようなNGワードとは違い、一律で禁止して投稿を受け付けなかったり勝手に文面を編集することはせずに、書き直しまたはNGワード回避オプションを使うことを勧めるようにしています。
書き直しだけでなく回避オプションも用意しているのは、予期せぬところでNGワードに引っかかったりする場合や、あえてNGワードを使ったほうがよいと判断した場合を考慮してのことです。
そもそもNGワードはうちのサイト内容と関係のない広告だけの書き込み、特に自動書き込みプログラムによる書き込みを弾くためのもので、一般のユーザーにはほとんど不自由させたくなかったのです。
あと、ついでにこの手のCGI・PHPには大抵つけている管理者用便利オプションも今日つけました。

<前 次>