掲示板機能追加のお知らせ

タグの編集
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/20 19:49:40
こんにちは。

掲示板のプログラムを変更して機能を追加しました。
ひょっとするとエラーなど出るかもしれません。エラーが出た場合は、このスレッドに返答として書き込んでいただくか、メールでの連絡をお願いいたします。

追加した機能
●返答時に「解決」のチェックをできるようになりました。
・「解決」にチェックされたスレッドには解決マークがつきます。
・解決されたスレッドにも引き続き返答を書くことは可能です。
・誰でも「解決」をチェックすることができますが、ほとんどの場合、質問者がお礼のメッセージとともに解決にチェックを入れることを期待しています。
●投稿者の統計情報が見られるようになりました。
・右上の「統計」というリンクから統計ページにジャンプできます。
・この機能は、この掲示板上での活躍をアピールする必要がある場合に使ってください。
たとえば、就職や転職などの際、Visual Basic 中学校の掲示板でこれだけ活躍しましたという内容を具体的な数値とともにアピールできるようになります。
●他、細かい表示などをいくつか修正しています。

なお、実は去年ハードディスクがクラッシュしてしまったときにこの掲示板の開発環境もなくなってしまい、最新のソースコードとデータベースがなくなってしまいました。
なので、少し古いソースコードとデータベースから今回のプログラム変更を行いました。ちょっぴり不安要素です。
投稿者 Abno  (社会人) 投稿日時 2011/2/20 20:13:24
test
投稿者 Abno  (社会人) 投稿日時 2011/2/20 20:14:21
悪意のあるユーザが解決していないのにもかかわらず「解決」としてしまう恐れがあります。
質問者の削除パスワードまたは別途パスワードで解決とできるようにすべきではないでしょうか。
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/20 20:36:15
>質問者の削除パスワードまたは別途パスワードで解決とできるようにすべきではないでしょうか。 
私もまったく同意見です。
ただ、完全でなければリリースすべきでないとも考えていません。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/2/20 21:37:54
> ●投稿者の統計情報が見られるようになりました。
助かります。m(_ _)m

……が、「検索対象期間」の処理に問題があるように思えます。

たとえば「shu」さんの投稿を探してみると
 「2010/09/29~2010/09/29」… 1 件
 「2010/09/30~2010/09/30」… 0 件
という結果になります。

該当するデータとして、
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9806#CommentId15866
が抽出されますが、この投稿は『2010/9/30 08:39:37』のものです。

タイムゾーンの問題なのか、あるいは「スレッドの発生時刻」を見ているのかは
分かりませんが、投稿時刻を基準に検索して欲しいと思います。


また、「2010/01/01~1010/09/30」のような打ち間違いをした場合、
サーバーエラーが発生してしまうようです。おそらくは、
 ・SQL Server の最小日付値である『1753/01/01 未満』が指定された場合
 ・SQL Server の最大日付値である『9999/12/31』が指定された場合
のチェックが漏れているのでは無いでしょうか。


# http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10013#CommentId16974
# の『qqq』さんと
# http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10013#CommentId17098
# の『qqq (解決済み)』さんが別カウントになるのは仕方ないですね…。


> ●返答時に「解決」のチェックをできるようになりました。

要望と質問。

(1)アイコンが解決マークを表している事が分かりにくいので、掲示板トップ等にアイコンの意味を載せられないでしょうか。

(2)解決アイコンは題名列の中に埋めず、たとえば左端列に独立させて表示した方が見やすい気がします。
 (“解決済”という列を新たに用意すれば、上記の(1)の注記文は不要かも…)

(3)間違えて解決チェックしてしまった場合に、削除パスワード等を使って、
 解決チェックだけを解除するようなことは可能ですか?

(4)投稿後に解決チェックを忘れたことに気付いた場合、そのスレッドに解決マークを付けるには、
 追加で投稿する必要がありますか?

(5)どの投稿で解決済みマークを付けられたのかを、他の利用者が知ることはできますか?
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/20 21:51:42
検証ありがとうございます。
いただた内容を見ると対応が必要なものがあると感じましたが、とりあえず疲れているのでゆっくり対応させてください。

>タイムゾーンの問題なのか、あるいは「スレッドの発生時刻」を見ているのかは
>分かりませんが、投稿時刻を基準に検索して欲しいと思います。
タイムゾーンの問題だと思います。私の意図も投稿時刻を基準にするものでした。
Azureだから9時間ずれるということを忘れていました。

>…のチェックが漏れているのでは無いでしょうか。
おっしゃる通りと思います。

># の『qqq』さんと
># の『qqq (解決済み)』さんが別カウントになるのは仕方ないですね…。
仕方ないと思っています。

>(1)アイコンが解決マークを表している事が分かりにくいので、掲示板トップ等にアイコンの意味を載せられないでしょうか。
アイコンのツールヒントで「解決済み」と出るようになっています。
アイコン自体も解決を表現するイメージにぴったりと思いますが別途意味を載せたほうがいいほど分かりにくいと感じますか?

>(2)解決アイコンは題名列の中に埋めず、たとえば左端列に独立させて表示した方が見やすい気がします。
これは検討したのですが、表全体の幅を犠牲にしたくなかったので既存の列に埋め込みました。
気になっているところではあります。埋め込みにしても先頭に埋め込むというのも考えましたが、これだと題名がでこぼこしてしまうので、後ろにしました。
見やすさで言えば、左端の独立した列がいいのは私も同感です。もうしばらく悩んでみます。

>(3)間違えて解決チェックしてしまった場合に、削除パスワード等を使って、
>解決チェックだけを解除するようなことは可能ですか?
解決チェックだけの解除は不可能です。
ただし、返答時に解決のチェックをはずすことはいつでもできます。

>(4)投稿後に解決チェックを忘れたことに気付いた場合、そのスレッドに解決マークを付けるには、
> 追加で投稿する必要がありますか?
その通りです。
解決にチェックをしたり、チェックを解除するには常に追加の投稿を必要とします。

>(5)どの投稿で解決済みマークを付けられたのかを、他の利用者が知ることはできますか?
できません。
知ることができたほうがいいとは思いますが、それほど不便でもないですよね?
投稿者 (削除されました)  () 投稿日時 2011/2/20 21:54:12
(削除されました)
投稿者 パールマン  (社会人) 投稿日時 2011/2/20 22:44:10
こんばんは、パールマンです。

お忙しいところ、機能向上の対応ありがとうございます。
私もできる範囲で、お手伝いできることがありましたらやりたいと思います。
一覧を見ていましたら、緑色のチェックマークが見えましたので、「ひょっとして・・・」と思いましたが、
さすがるきおさんですね。パソコンの前で思わず「やったぁ!」と・・・ :‐)

幸いこちらの掲示板では今のところ心無い投稿をする輩はいないように見えますが、やはりある程度の
防御は必要と考えます。


投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/2/20 23:10:49
素早いご回答ありがとうございます & お疲れ様でした。

統計機能が非常に助かります。(多分、半年後にお世話になるはず…)


《解決マークの説明》
> 別途意味を載せたほうがいいほど分かりにくいと感じますか?
私個人の感想を述べさせていただくなら、
今回の改修後に初めてここを訪れたとき、それが解決済みを表すアイコンだとは予想できませんでした。

最初に私が連想したのは、「直近n時間以内の投稿」の意味でした。

これは直近数件の発言がマーキングされていたからですが、よく見ると、
『掲示板機能追加のお知らせ』にマークがない事からそうではないのだと気づき、
だとすると、サンプルを含む投稿(CODE タグを含む投稿)にチェックが付くような仕組みが
導入されたのかな……と予想しながら、追加機能のお知らせをクリックした次第です。

(その前に掲示板上部の注記に目を通しましたが、そこにも記載がありませんでしたし)


> アイコンのツールヒントで「解決済み」と出るようになっています。
私がツールチップに気づいたのは、追加機能のお知らせを読んだ後でした。(^^;


> アイコン自体も解決を表現するイメージにぴったりと思いますが
私の意見が少数派である可能性は十分にあります。とはいえ、に対して抱くイメージは
人それぞれだと思います。もちろん、統計をとらないと分からないことなのですけれども。

たとえば、MSDN フォーラムを良く参照する人ならば、あちらの「回答があった質問」の
マークに似ているので、解決済みというよりは、有効回答の有無を連想するかも知れません。
(私は MSDN フォーラムを殆ど見ないため、それを連想する事はなかったのですけれども)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/2/20 23:23:53
投稿時にサーバーエラーが出てしまうので、文章をいろいろ修正しながら投稿しています。
半角の「<」が原因っぽいのですが、CODE タグ内で普通に使われる文字ですよね…何でしょう。

----------
《解決アイコンの位置》
> これだと題名がでこぼこしてしまうので、後ろにしました。
現状通り既存列に埋め込むのであれば、<img> ではなく、幅固定な <span> を用いて
<span class="unresolved"> とか <span class="resolved"> などを用意しし、
 ☐未解決タイトル
 ☑解決済みタイトル
あるいは
  未解決タイトル
 ☑解決済みタイトル
のように表示するのは如何でしょう。


《解決チェックの修正》
> ただし、返答時に解決のチェックをはずすことはいつでもできます。
参考までにお聞きしておきたいのですが、このチェックが外される状況とは、
どのような場合での利用を想定されていますか?

(a) その解決策には問題があるよ、と他者がフォローを連ねる場合。

(b) 今回のケースではそれで解決できるけど、ちなみにこんな方法もあるよ、と
 他者が追加の蛇足情報を加える場合。

(c) 後日、投稿者本人が別の問題に気づいて追加質問する場合。

(d) 解決策が明確になっていないスレッド(自己解決系によくある)に対して、
 同様の悩みをもった別のユーザーが、そのスレッドに便乗投稿して解決策を問う場合。

この手のシステム(スレッドロック無し & 他者による解決済み解除可能)だと、
(a) や (b) のパターンで、外すべきか残すべきか悩んでしまうのです。。。


個人的には、チェック解除となるのは a と c のパターンなのですが、
このあたりの考えは、運営者によって違いがあるみたいなので。

# 他のコミュニティの実装を見てみると
# dobon.net は、ひとつでも解決済み投稿があれば解決済みスレッド、
# bbs.wankuma.com は、最後の投稿のチェック有無で解決済みスレッドかどうかが
# 決定されたような…うろ覚え。


> 知ることができたほうがいいとは思いますが、それほど不便でもないですよね? 
不便はありません。脱線話でスレッドが長大化してしまったようなケースや
上記(c)のようなパターンでは、投稿単位でのチェックが欲しいとも思いますが、
無理に実装していただくほどの物では無いと思います。
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/20 23:50:16
寝ようと思って最後にもう一度掲示板を確認したらエラー報告が…。

いや、報告ありがとうございます。重要なことを見逃していました。このタイミングでよかったです。
今回、プロジェクトで.NET Framework 4を使用するように変更しました。
その場合、ValidateRequest="False"が利かなくなるのでした。
ですので、ValidateRequestにひっかかるような投稿はすべてエラーにされます。

この動作をとりあえずASP.NET2.0と同じにするために、web.configに
httpRuntime requestValidationMode="2.0"
を追加する必要があります。

で、この修正を追加したバージョンを今アップロード中です。
まもなく反映されます。

>現状通り既存列に埋め込むのであれば、<img> ではなく、幅固定な <span> を用いて
これだと、常に幅を消費するという意味で、既存の列追加とほとんど同じになってしまいます。
…が、表示の仕方はもうちょっと考えます。
今のところ、左端に列を追加するか、おっしゃるような既存の列の左に等幅な領域を確保するかがやはり見やすくてよいかという気持ちに傾いています。

>> ただし、返答時に解決のチェックをはずすことはいつでもできます。
>参考までにお聞きしておきたいのですが、このチェックが外される状況とは、
>どのような場合での利用を想定されていますか?
(a)~(d)のどれでもなく、ほかの投稿者が間違ってチェックしてしまったときに、質問者が「違います。まだ解決してないのでアドバイスをください。」という意思表示をする際の利用を想定しています。

つまり、本当はいかなる場合も質問者以外の人がチェックをつけたり、はずしたりしないことを想定しているのです。せめて説明の日本語にそう書いておこうかなぁ…。

>このあたりの考えは、運営者によって違いがあるみたいなので。
確かにそのようですね。

エラーの件があってのたで前後してしまいました。
>幸いこちらの掲示板では今のところ心無い投稿をする輩はいないように見えますが、やはりある程度の
>防御は必要と考えます。
私もそう思うのですが、心無い人が操作しても大きな被害があるわけではないですし、様子を見ながら防御のためのプログラム修正のタイミングを計りたいと思います。
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/20 23:52:20
書き忘れました。
裏サイトを用意してあります。
http://1390e5e117ad4fbd8bdb56aa13080d0a.cloudapp.net/

裏サイトでは更新前のプログラムが動いています。
DBは表と共通です。今回の改修ではDBの変更はありません。

なので、問題があって書き込めない場合などは裏サイトをご使用ください。

大きな問題がなければ裏サイトは明日の夜には消します。
投稿者 流れ者  (社会人) 投稿日時 2011/2/28 17:14:33
すれ違いを承知で書き込みます。

2011/02/28 16:34 に
・大橋 理紗 
・吉竹 秀幸 
の名前でスパムが書き込まれてます。

余計なことかもしれませんが、
報告します。
投稿者 パールマン  (社会人) 投稿日時 2011/2/28 18:33:21
書き込まれたスパムは、どうやら他の掲示板やブログにも大量に書き込まれているものと同一のようです。
対策としては、ID/パスワードをhtaccessで仕込むしかなさそうです。
こちらの常連の皆さんは了解していただけると思いますが、初心者の方もお越しになりますので、どうしたものですかね。

るきおさんは兎に角いそがしいので、さしあたり「副管理者」を数名指名していただき、‘対策システム’の構築が出来上がるまでの間は、その方がスパム書き込みの削除を行うとかしないと、本物の書き込みが一瞬で埋もれることになりかねないと思います。

多分私もるきおさんに劣らないほど忙しいと思うのですが、ご指名となりましたら協力します。
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/2/28 20:56:20
スパムについて、現時点では私が逐次削除すれば足りているレベルと考えています。
ですので、掲示板の使用感を変えるインパクトのある改造をするつもりはありません。

スパムを発信する側に情報を与えたくないのであまりこの掲示板のセキュリティ情報は出してきませんでしたが、実は裏ではいろいろやっています。
加えて、すべてのスパムは表示上消していてもその通信ログとともに保存されています。そのログを何に使っているかは書きたくないので伏せますが、秩序を保つ材料として提供されていると考えてください。

スパムなどセキュリティについては、以上のように○○している、○○していない、○○する予定など一切書きたくなく、またこの掲示板の本来の趣旨からもはずれてしまうため、今回のような報告・提案も含めて書き込んでいただきたくありません。

せっかく、善意で報告・提案いただいているところ嫌な言い方になってしまい申し訳ありません。善意はとてもありがたく受け取っております。

>こちらの常連の皆さんは了解していただけると思いますが、初心者の方もお越しになりますので、どうしたものですかね。
そうなんです!初心者の方に敷居を低くしたいのです。

>「副管理者」を数名指名して
これは前々から考えないでもないのですが、上述のように現在そこまでのレベルではないと考えていることと、管理者間の意思統一が難しいと考えているので実施していません。

どうか、この回答に対してさらに質問を重ねるような返答はしないようにお願いします。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2011/4/18 01:13:45
> ●投稿者の統計情報が見られるようになりました。
> ・右上の「統計」というリンクから統計ページにジャンプできます。

「統計」機能ですが、HTML タグのエスケープ処理が漏れているようです。

たとえば、 http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9144 は
 『WebBrowserの<Title>の取得について』
というタイトルのスレッドですが、統計の検索結果画面にこれが現れた場合、
<a …>WebBrowserの<Title>の取得について</a>

と出力されてしまい、検索結果が正しく表示されない事になってしまいます。

一方、通常の掲示板画面の方については、同様の投稿があったとしても、
<a …>WebBrowserの&lt;Title&gt;の取得について</a>

のように出力されるため、問題無く表示されます。
投稿者 るきお(管理者)  (社会人) 投稿日時 2011/4/20 22:40:26
こんにちは。ご指摘ありがとうございます。

よろしくないバグでした。
プログラムを更新しましたので再度試してみてください。

失礼いたしました。