株ツール開発日記

〜楽天証券RSSを使った株ツールの開発日記〜

ブログ移転

新サイトの方が使えるようになってきたため、このブログは、削除することにしました。

移転に伴い、記事を60件程削除しました。
現状、残っている記事は、「新サイト」または「株ツールおきば」に移し終わった時点で削除する予定です。

今後、このブログは更新しないつもりですので、お手数ですがRSSやブックマーク等は、削除して下さい。

新サイト (2010閉鎖)
http://www.motta.dev-asp.net/

株関連のツールについては、以前と同様に「株ツールおきば」に置いています。
■ 株ツールおきば
(2009閉鎖)
http://www7b.biglobe.ne.jp/~motta/

TinyMCEを試す

FCKeditorですが、幾つか問題があったため、新たにTinyMCEというエディターを使うことにしました。

FCKeditorは、アップローダー(サーバーブラウザーQuickUpload)が正常に動作しませんでした。
まず、設定ファイルに問題があり、ASP.NET用に編集しただけでは、正常に動しません。

設定ファイルとC#のソースを調べたところ、サーバーブラウザーは、一応動くようになりました。一度、動かせば分かるバグだったので、そもそもテストされてないように思います。

解決方法等の詳細は、後でインストール方法をまとめるつもりなので、そのときに書きます。

QuickUploadは、ローカル環境で試したときは、正常に使えたのですが、レンタルサーバーだと、アップロード中のプログレスバーダイアログが表示されたまま、無反応になりました。
ダイアログが表示されているだけで、ファイル自体はアップロードされてました。
ソースをあちこち弄って確認したころ、OnUploadCompleted関数が呼ばれてないようだったのですが、結局、原因は分かりませんでした。

この時点で、アップローダー機能をOFFにして、エディターとして使おうかとも思ったのですが、同じ設定をする場所が2ヶ所あったり、全体的に作りがあまり好きになれなかったので、別のエディターを使うことにしました。
 


新たに試したのは、TinyMCEというものですが、これは、デフォルトではアップローダー機能はないようで、別途有償?プラグインはあるみたいでした。

FreeTextBoxFCKeditorは、ASP.NETのDLLでしたが、TinyMCEは、JavaScriptだけで動作しているようです。
ちなみに、livedoorBlogのブログ投稿画面でもTinyMCEが使え、この記事も、TinyMCEで書いています。

本実装前にテスト
TinyMCE 

使い方は、下のリンクを参考にしたのですが、インストール方法と具体的な使い方は、後でまとめます。
RequiredFieldValidatorについては、FCKeditorと同じ問題が起こりましたが、FCKeditorより簡単に解決できます。

[TinyMCE Forum]
フォームでの使い方
http://tinymce.moxiecode.com/punbb/viewtopic.php?id=4680
RequiredFieldValidatorの問題
http://tinymce.moxiecode.com/punbb/viewtopic.php?pid=29377

[ 開発ツール ]
Visual Web Developer 2008 Express Edition
SQL Server 2008 Express Edition
[ 外部コンポーネント ]
TinyMCE
FCKeditor
FreeTextBox
[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

 

FCKeditorに変更

簡易ブログの記事編集用にFreeTextBoxを使ったのですが、XHTMLの出力ができないようなので、FCKeditorに変えてみました。

FCKeditorに変更

FCKeditorの方が機能が多いせいか、コントロールがすべて描画されるまでに若干時間が掛かってました。
といっても、2秒くらいで、描画後は、支障なく使えてます。

ただ、実装時には下記のような問題あり。

最初、検証コントロールにRequiredFieldValidatorを使ったのですがクライアント側の検証が正しく行えないようで、クライアント側で検証を行う場合には、CustomValidatorを使って、自前で検証する必要がありました。

以下は、公式サイトでの解説で、クライアント検証をしない方法です。

[Troubleshooting - FCKeditor Docs]
http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Troubleshooting#AspRequiredField

実際には、EnableClientScriptプロパティを"false"するだけです。

以下は、CustomValidator+JavaScriptで自前で検証する方法です。

[ASP.NET Forums]
http://forums.asp.net/t/1021255.aspx
http://forums.asp.net/t/957282.aspx

自分は、1つ目のリンクのFCKeditorAPI.GetInstance()を使う方法で実装しました。

それと、サーバ側での検証は、ServerValidateイベントで行うようにしました。
CustomValidatorValidateEmptyTextプロパティがあるのですが、"true"にしてもサーバ側で検証されてませんでした。

公式サイトの解説のRequiredFieldValidatorを使う方法もありましたが、コントロールを2つ使いたくなかったので、ServerValidateイベントにしました。

[ 開発ツール ]
Visual Web Developer 2008 Express Edition
SQL Server 2008 Express Edition
[ 外部コンポーネント ]
FCKeditor
FreeTextBox
[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

簡易ブログ - Personal Logger β

ASP.NETの勉強ついでに、簡易ブログを作ってみました。

[Personal Logger β]
http://www.motta.dev-asp.net/

トップページ

ブログというよりは、私的な備忘録に近いです。
内容は、プログラム関連がメインで、調査時のメモや役に立ったサイト等を、その都度、投稿するつもりです。
自分の作業履歴等が残っていると、後々助かることが多いので、試しに作ってみました。

3日前から使い始めたのですが、まだ記事を表示する機能しかないです。
機能は、追々追加していこうと思ってますが、予想以上に使えなかったり、面倒だったら、即削除します

現状、ブラウザーごとの挙動の違いが分からなかったりして、レイアウトがらみで苦戦してます。



ここから下は、管理用のページで非公開なのですが、折角作ったので記念にSSを。

[記事編集]
記事編集
本文編集用の水色のコンポーネントは、FreeTextBoxというASP.NET用のフリーのHTMLエディターです。

[記事一覧]
記事一覧

[カテゴリー一覧]
カテゴリー編集


[ 開発ツール ]
Visual Web Developer 2008 Express Edition
SQL Server 2008 Express Edition
[ 外部コンポーネント ]
FreeTextBox
[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

ブラウザー8種

ブラウザーは、IEとFirefoxしか、まともに使ったことがなかったんですが、他のブラウザーでもランキングが表示できるのか気になったので、試しに入れてみました。

ブラウザー8種

左からIE7、Firefox3.03、Sleipnir2.83、SRWare Iron0.3.155、Opera9.62、Safari3.1.2、Lunascape4.8.1、IE6(Win2k)の8種類です。

SRWare Ironは、Chromiumの派生ブラウザーです。本当は、Google Chromeを入れたかったのですが、クライアントを識別するための固有IDが振られたり、他にも信用できない部分があるため、派生版にしてます。

あとLunascapeについては、かなりの頻度で異常終了してしまうため、試しにVer5のα版を入れてみたのですが、Ver5でも同じたったため、SSをとった後でアンインストールしました。

表示の方は、インストール後のデフォルト設定&ランキングの表示処理でたいしたこともやってないせいか、全ブラウザーで正常に表示されてました。

ブラウザーの感想は、それぞれ不満があったりするのですが、まだプラグイン等を入れてないため、もう少し使ってみてから、まとめようと思います。

アクセスランキング

ASP.NETの開発環境は、VWD+SQL Server 2008のExpress Editionなのですが、VWD簡易WEBサーバを使ってデバッグできるので、大分楽ですね。

レンタルサーバでは、.NET2.0までしか使えないのですが、今のところ.NET2.0の機能も使いこなせてないので十分そうです。
しばらく、ブログ等で使えそうな小物を作って、勉強しようと思います。

そんなわけで、前回のアクセスログをベースにして、アクセスランキングを作ってみました。
今まで使っていたACR WEBに似せて作ったので、広告とフッター部分がなくなった程度で、他は変わってないと思います。

アクセスランキング

一覧に表示するサイトは、手動で登録するようにしました。
怪しいげなサイトや社内サイト等で外部からアクセスできない場合もあるので、元サイトの確認後に登録します。

それと、30日間アクセスがない場合に、一覧から削除されるようなってます。30日以内の場合は、前回のカウントを引き継いで更新されます。
複雑な仕様のものは、まだ作れそうにないので、とりあえず、これで我慢しときます(・ω・)

[ 開発ツール ]
Visual Web Developer 2008 Express Edition
SQL Server 2008 Express Edition
[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

アクセスログ

自前のアクセスカウンターが問題なさそうなので、今まで使っていたNinja Counterは外した。

それと、アクセスログを取るようにしてみた。
アクセスログ
直近の200件だけ保存。

カウンターと同様に<img>タグだけで実装するつもりだったが、<img>タグだとリンク元(Referrer)がタグを張っているサイトのURLになってしまうため、JavaScriptを使って本来のリンク元(ページを呼び出したサイト)を取るようにした。

[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

アクセスカウンター 2

前回は、動的に画像を作成しただけでしたが、カウント機能を追加してみました。
下の”All: 46242〜”の部分で、「All: 全合計 T: 今日分 Y: 昨日分」を表示しています。
1週間分の表示は、面倒なのでやめました( -д-)

アクセスカウンター

上の例では、ページビュー数なのですが、Cookieを使って、ユニークアクセス数もカウントできるようになってます。
ただ、ブラウザーの設定でCookieが無効にされていることもあるため、正確には分かりません。

今のところ、JavaScriptIFrame等は使っていないため、FirefoxNoScript等でスクリプトの実行やIFrameを禁止している場合でも、表示されます。

[ 参考サイト ]
ashxファイルを利用したアクセスカウンタの実装 (CodeZine)
[ 参考書籍 ]
Microsoft Visual Studio 2005によるWebアプリケーション構築技法 (Amazon.co.jp)

アクセスカウンター 1

このブログでは、アクセスカウンターにNinja Counterを使っているのですが、今週から下のように広告が表示されるようになり(以前はなかった)、若干鬱陶しいです。

Ninja Counter1Ninja Counter2



運営側もボランティアでやっている訳ではないでしょうし、広告表示されるのは、いいのですが、せめて1つにするか、もう少しコンパクトにして欲しいです。
3分の2以上が広告になってしまうのは、ちょっと嫌だなぁと。

まあ、文句を言っても仕方ないので、他のサービスに乗り換えようと思って、幾つか試したのですが、管理サイトが使いづらかったりして、良さそうなのがなかったので、自前で作ることにしました。続きを読む

Winsock(I/O完了ポート) VC++2008のデバッグモード

前回の続きで、Winsock(I/O完了ポート)の雛形を作っていたのですが、VC++2008のデバッグモードでステップ実行するとOSが固まってしまうため、しかたなくPCを再起動(電源OFF)していたのですが、何度も繰り返していたら、セキュリティソフト(KIS)の設定が壊れたらしく、OSがまともに起動しなくなり、結局、OSを再インストールしました。

VCの原因は、分からなかったのですが、I/O待ちの状態(GetQueuedCompletionStatus()呼び出し)のスレッドにブレークポイントを設定し、別スレッドから、PostQueuedCompletionStatus()を呼ぶと、VCが固まってしまい、OSも操作を受け付けなくなりました。

最初は、プログラムのバグかと思って、調べていたのですが、ブレークポイントを設定しないと正常に動作するため、デバッガ側の問題のように思います。

現時点では、I/O完了ポート関連の実装が終わっただけで、具体的なプロトコル等は考えてないですが、この辺は、作るものによって変わってくるので、実際に使うときに考えようかと思います。
ブログ移転
このブログは、移転しました。今後の更新はありません。
月別アーカイブ
最新コメント