というわけで

メールも送信できるようになりましたとさ。

仕事中になにやってんだろうね。ホントに。

セキュリティモデルが1.xとちょっと異なってしまったせいで、「EnableEventValidation」に、しばらく嵌った。

今はとりあえず動いているけど「EnableEventValidation」が一体全体何を制御しているのか、実はよくわかってない。

ちゃんと調べたいのだけれど、MSDNのヘルプはちんぷんかんぷんで、いよいよよくわからない。なんだかなあ、なのであった。

Amazon Web Servicesに関する覚書

「stupidGeek」のASP.NET 2.0ベース化を着々と進めているわけですが、AmazonのWeb Serviceがうまくなくて、いろいろ悩む。

なにしろ、マイグレート後のファイルの位置関係、とくに「App_Code」以下に格納されるファイル群がナゾ杉。旧Webrefrernce関連のファイルが放り込まれたり放り込まれなかったり、別プロジェクトのソースコードが放り込まれたり放り込まれなかったり。

さらに「Migrated」ディレクトリ内にもソースコードが放り込まれていて、これはどうも削除してもよさそうなんだけど、それなら「.bak」とか拡張子名を変えろよとか憤ったり。いや怒ることはない。

まあ、基本的にどのような目的を持ったファイルが「App_Code」以下に格納されるのかがわかってないゆえの混乱ではあるのだけれどね。単純にソリューションエクスプローラを眺めているだけだと、同じファイルがあっちゃこっちゃに転がっていて、どれを使用しているのか、サパーリわからん、ということになる。

というわけで、個人的な“Web 2.0”は、果てしなく遠いような気がしたりしなかったり。

とりあえず、下のblogと大本のドキュメントをよく読むといいかも。

それよりもなによりも、日本版のAmazon Web Services Blogである「Amazonアソシエイト・プログラムブログ」はひどすぎる。バナーの紹介ばっかりで開発向け情報は皆無になってしまった。デザインもひどいし、どうしたものかなあ。アルファギーク;-)は英語を嫁ということか。

2.0ベースへの道のりは遠い件

VirtualPCを使ってstupidGeekを.NET Framework 1.1ベースから2.0ベースにあげようとしたら、ものすごい勢いでエラーが表示され、泣きそうになる。

あまつさえ、1.1ベースまで挙動不審となり、しばし萎える。

ソリューション内に生成されるプロジェクトの位置と用途に関する知識が低すぎるためだと思われるのだが、なにを見ればいいのか(どこから手をつければいいのか)がわからないという。

なんか、ふつうにBlogXRuntimeをビルドして、出来上がったdllをbinフォルダに放り込んでおけばいいような気がしなくもないんだけど、Visual Studio .NET 2003のソリューション同様、VS2005内にプロジェクトファイルを2つ作って、それぞれいじくり回したい、と思う。

アップグレード自体は普通に通ったので、そのままいけるかと思ったんだけどなあ。

まあ、とりあえず、1.1ベースは復旧したので問題ないといえば問題はない。

「“動いているものはいじらない”のが鉄則でしょう」という声が、西のほうから聞こえてきそうな夕刻である。

当サイトに関してちょっとわかったこと

VPCでASP.NET 2.0環境を構築しておいて、1.1ベースのstupidGeekをそのままコピー&ペースト。各ディレクトリのパーミッションをinetmgrで設定する。この状態で改めてホストOSからアクセスすると、普通に表示されて、書き込みその他も問題なく動作した。

そのうえで、www.nardis.orgのアプリケーションエラーを見ると、やはりどうもセキュリティ関係をホスト側でいじってるくさい。おかげでVS2005/VS2003.NETからのアクセスもできなくなってるっぽい。FTPは有効なので、Explorerからファイルを放り込むことは可能だし、おそらくVS2005からFTPを使ったアプリケーションのアップロードも可能だと思われる。

なので、あとはサイト管理者に各ディレクトリに対するパーミッションの設定一覧を送るなどして、適切に運用してもらえれば、現行のサイトはそのまま表示されるに違いない。

とはいえ、もうなんか、飽きてきたしなあ。どうしたものか。

デリケートなアプリケーション

ローカルでリビルドをかけて、ふつうに動くようにしたわけだけれど、なんだか知らんが「キャッシュ用のデータを読み取れねえ」とかほざきだし、大変悩む。

単に読み取り/書き取りフラグの問題であればすぐに対処できるくらいには研鑽を積んでいるのだが「XMLのルートがない」などと、公務員みたいなことを言うのだ。目グレップしたけれど、ふつうにあるじゃねえか。なんでこれが読めないんだ、バカヤロー。などと心の中で喚く。

サンプルデータを再度投入し、なんとか事なきを得るが、なぜそうなったのかが、よくわからん。それはすごい不安なのであった。

それどころじゃない件

7月9日付の「カラオケ屋で泣いた件」をExplorerからコンテンツディレクトリに放り込み、新規エントリ「雑誌『invitation』が送られてきた件」をWebから書き込んでポストしたら、エラーが表示された。

ここから悪夢の始まりである。

もともと、ファイルのアップロードとダウンロードは、それ用に「Webshell」とかいう機能があったのだけれど、Visual Studio .NET 2003やExplorerから放り込めるから、たまに大きなアーカイブ(ヤヴァイものではない)の上げ下ろし時のみに使用していたのだが、これが数日前から使用できなくなっていた。

で、「使えないよー」とメールしたところ、すぐに(といっても8時間後)「ごめんねー」というメールが来て、Webshellが開通。とりあえず、動作を確認し、今度はVisual Studio .NET 2003でアクセスしたところ、拒否られるようになった。まあ、すぐにこのサイトを拡張しなければならない案件があるわけもなく、「あれれ?」と言うにとどまっていたのだが、先に書いたようにエントリのポスト時にエラーが発生して書き込めない状況からは脱出しなければなるまい。急遽、書いたばかりのコンテンツをエディタにコピー&ペーストして救出し、Explorer経由でアップだけでもしておこうとしたら、今度は認証エラーで接続できない。

「えーと、Weblogアプリケーションが、ディレクトリにファイルを書き込めなくなりましたー。あと、VS.NET 2003はもちろん、Explorerからもディレクトリにアクセスできないよー」とメールを打ってしばらくしたら、http://www.nardis.org/ へのアクセスに認証ダイアログが出るようになってしまった。

んな、アホな……。

なんか、すごい勘違いをホスティング業者(hosting 4 all)はしてるようで、すごい勢いで萎える。てか、Windowsサーバー利用者が少ないことは重々承知しているのだけれど、だからといって、ここまでユーザーの要望に対応できない管理者しか置けない現実が悲しい。まあ、おれの要望メール(もちろん英文)が酷すぎるという指摘もごもっともなわけだが。

裏返してみれば、Windowsサーバー管理者になれば、食うに困らない程度の収入が見込めるのではないか。BSDやLinuxのように3桁の数字でディレクトリ管理を行なうシンプルさに比べて、頭の痛くなるようなGUIによるバッドノウハウの塊だとしても。

ワイハーあたりにそういう会社って、ないすかね?(ぉぃぉぃ。

久しぶりにCSSをいじった件

箇条書きスタイルのリスト表示は本文よりやや小さめにしているのだけれど、行頭に連番を振る「<ou>」タグと中黒を表示する「<ul>」タグが入れ子になっている場合、階層が深くなるにつれて等比級数的に文字が小さくなってしまう。

上記ふたつのタグにそれぞれ「font-size」を「%」で指定しているから当然なわけなんだけど、かといって「<li>」タグにのみ「font-size」を「%」で指定しても同じこと。

「どうすりゃいいんだろう」と思いつつ放置していたわけですが、先ほど解決いたしました。

なんのことはない、「<ou>」タグと「<ul>」タグのプロパティは「padding」と「margin」だけにし、「<li>」タグで「font-size」を「x-small」と指定すれば、とりあえずOKですね。

結局、「font-size」の指定方法によって継承元が変わってくる、ということがわかってなかったわけです。ははは。

いやあ、CSSは奥が深いわ。

さらにArchiveサイドバーをいじった件

これまで、キャッシュ情報を書き込んだファイルを見に行って、そこから年/月情報を取得していたのだけれど、どうもキャッシュのタイミングによって単なるReverse()ではうまくいかないことが判明。

面倒くさくなったのでファイル名(「yyyy-MM-dd.*.xml」となっている)から年/月情報を取得し、アーカイブ情報へと転用することにした。

たぶん、

public class myReverserClass : IComparer {
  int IComparer.Compare(Object x, Object y) {
    return((new CaseInsensitiveComparer()).Compare(y, x));
  }
}

なんてことをやるほうがいいと思うし(実際、ページによっては似たような処理を実装してる)、現状の実装方法ではスレッド関係の不具合が発生する可能性が高いのだけれど、まあ、今のようなアクセス数なら問題ないので、いいや(←ひどい)。

もともと“キャッシュ情報を読みに行く”という方策は、他に想定していた拡張と絡んでいたので、ちょっと残念といえば残念なんだけどね。まあ、また別の方策を考えよう。

CSSをいぢる

ちょいとこの、CSSなんてぇものをいぢってみたり。

重複してたりネストしてたり、どこからどこに継承してるのかよくわからなかったりしてるのを整理して、かなり軽くなったんじゃないか、なんて思いながら比べてみたら、実はそうでもなかったという。

とりあえず、フォント周りと各パーツ(コンテツンホルダーも含めて)を整理整頓し(結構デフォルトのCSSがデタラメなんだわ)、プロパティを設置しやすくする。

ただ、そのおかげでメールサイドバーがおかしな表示になってしまった。このサイドバーはもう一度イチから作り直そうかなあ。

アンテナに捕捉されるタイミングについて

はてな系アンテナだと、更新してから数分以内に順位が上がることがないような気がする。サンプル数が少ないのでなんともいえないのだけれど。

他の独立系アンテナ(って、どこよ)だと、あまりタイムラグを感じさせないのは、なぜなんだろうな。

考えられるのは、

  • アンテナの巡回頻度
  • 収集するタイムスタンプの種類
  • タイムスタンプのフォーマットの差
  • 時差

といったところか。

やっぱりあれですか、UTCで統一したほうがいいですか。BlogXのエントリポストタイムはサーバーのローカルタイム(設置場所)にしやがりますので、修正するとなると、UTCフォーマットにしなければならず、それは実は(おれごときのスキルでは)ちょっと面倒くさい。ソースをなめてフォーマットを統一して廻ればいいだけなんだけどね。

ただ、そこをいじりだすとカレンダーの微調整にはじまって、ポストタイムをクライアントローカルの時間にしたいとかなんだとか、いろいろ各方面に影響が波及しだすので、老人ホームに収監されるまでやらないと思います。

てか、そんな歳になっても、PC触ってるのって、ちょっとキモい。付き添いの美人看護婦さんにドン引きされそう。

カレンダーをいじる

某所で「月曜日始まりのカレンダー」というエントリを読み「それはまあ、たしかにそうかも」というわけで、とりあえず、自前のカレンダーを月曜日始まりにしてみる。

といっても、カレンダーコントロールのプロパティに、

FirstDayOfWeek="Monday"

を加えるだけだ。

それだけだと、週末に「S」がふたつも並ぶので、

DayNameFormat="FirstTwoLetters"

も加えておく。まあ、いいんじゃないですかねえ。

修正と追加

サイドバーに入れていた「miniAQUA」が広告表示するようになってから、ヘンなポップアップが送られてくるときがあるので、本体からは削除してしばらく様子を見ることに。

その代わりといってはナニだけれど、産経新聞の速報版を表示させてみた。

とりあえず、各記事から本体(といっても速報一覧だけど)に飛べるので、ご利用いただければさいわいに存じます。

当初、HTMLパーサーを作らなきゃいかんのではないか、とかブルーになっていたのだけれど、よくよく見てみたら、なんのことはない「iframe」を使って、生成されたHTMLを表示しているだけだったので、カンタンでございました。

ただまあ、著作権的にどうなんだろうな、という気がしなくもない。苦情がきたらさっさと外しますんで、ヨロシタホネガイ。

さらに現実逃避をはかってみる

頭がウニになってきたので、懸案のARCHIVESサイドバーを手直し。いろんな“力技”を削除し、ダイコンオロシとポン酢ですっきりしたソースに仕上げてみました。

「System.Array」と「System.Collections.ArrayList」の違いがよくわかってない、ということがよくわかりました。

今頃そんなこと言ってんじゃねーよ。おれ。

現実逃避

さいどばーに“ばーちゃるあくありうむ”をつけてみた。つけてみたけどあまりいやされない。どっちかというと、かなしいきぶんになるのはなぜだろう。

つか、なぜひらがな。

  • mini AQUA=http://aqua.kyucon.com/miniaqua.html

SideBarの修正

過去記事一か月分を表示するSideBarを修正。ホントは新しいものから古いものへと順に表示したかったのだけれど、現状では古いものから新しいものへと降りてゆく形になっているのが、ちょっと残念。

これはまあ、いずれまた修正しようかと。sortをどのタイミングで使うのがベストなのかがまだ見えてないので、いつになるかわかりませんけど。

あと、一か月分のコンテンツを表示するためのページも修正しました。こっちは判定をひとつ増やすだけなので比較的簡単。

まあ、しばらくはこれでいいや。

とりあえずはイクナイ

なんでこんなIISとプログラム(それもC#)に時間をかけているかというと、このblogxの不具合を直したいため。“とりあえず”の処理で作ったArchivesがさすがにダメさを露呈していて、我ながら笑ってしまうようなことになっているから。2005年10月分を表示するはずが2003年の10月分まで表示されちゃうという、なんだそら仕様なんですね。ま、これはArchivesを表示するページのロジックが失敗しているわけですが。2003年10月分がArchivesとして表示されないのが、どうにも恥ずかしい次第。

ほかにも直したいところとか、付け加えたいネタは多々あるんだけどね。

時間をとってじっくり直したいんだけど、時間をとったら時間をとったで遊んでしまうのだろうな。やれやれ。

お天気概況Webサービスに関する件

エラーが頻発していた“お天気概況サイドバー”ですが、いろいろ調べてみたところ、「SkyCondition」タグが「Tokyo」に限って送られてこない(「Osaka」だと送られてくる)ことがわかりました。

それは一体全体どういうことやねん。

というわけで、ちょこっとエラー処理。データ不足の場合は「N/A」が表示されるようになっております。

当たり前の話だけれど、作った本人はなにが表示されていてなにが「N/A」なのかわかるのだけれど、知らんヒトがみたらなにがなにやらわからんだろうなあ。「温度」とか「湿度」とかも表示させようかと思ったけど、それはそれでカッコ悪いので、とりあえずこのまま放置することにした。

あと、このWebサービス(GlobalWeather)では、ほかに「国名からメジャーな都市名をすべて返す」というサービスも配信しているのだけれど、返ってくる名前のほとんどが空港名ってのは、どうなんだろうか。てゆうか「Tokyo Heliport」って。

今日のお天気概況サイドバーの調子を悪くした件について

にきびと同じで、いじりすぎるのはイクない! ということがよくわかりました。

トラックバックについて

トラックバックPingの送信実験を(いまさらながら)やっているわけですが、はてなのおれの過去エントリに向けてPingを撃つと、ちゃんと、

<?xml version="1.0" encoding="utf-8" ?>
- <response>
   <error>1</error> 
   <message>http://d.hatena.ne.jp/N0MURA/ was not found in your page.</message>
  </response>

というエラーが返ってきて、とてもエライと思った。

ほかの(つってもたいしてないんだけど)サイトに作った過去エントリに向けて撃つと<error>0</error>で返ってきて、すっかりTB-SPAMになるのとは大違いだ。

天気なんか表示させてみたりして

原稿待ちの間に冗談で「.asmx」を検索したら、結構いろいろ出てきた。その中でも「WebserviceX.NET」というサイトが、ごくカンタンに遊べそうなサービスを提供してくれていたので、その中から世界各地の各都市のお天気概況を配信してくれている「Global Weather」というサービスを使ってみることに。

これ、本当は選択した国名から都市名をリストアップし、その都市を選ぶと、温度/湿度はもちろん露点温度だの視界だの風力/風向きだの気圧だの、誰が使うんやね、というデータまで表示してくれるようになっている。

まあ、サイドバーに表示したいだけなので、とりあえず、都市名と時間(UTC)、天候と気温と湿度を表示してみる。でもさあ、都市名で「Tokyo」とか出してるけど、データの収集地は「Tokyo International Airport, Japan (RJTT) 35-33N 139-47E 8M」なんてのが返ってくるんだぜ。成田はTokyoじゃねえっつうの。あと、時間も「Jun 21, 2005 - 12:30 AM EDT / 2005.06.21 0430 UTC」まで出てきたりして、うるせぇっつうの。

というわけで「System.Text.RegularExpressions」なんて使ってみたり。……、あんまり意味のないサイドバーだったかなあ。

[追記]

いや、実はsiteconfigに国名と都市名を放り込んで、その値で表示を変えようとしているのだけれど、どうも引っ張ってくるタイミングの問題なのか、必ずエラーになってしまうので、今は「Japan」「Tokyo」とか、ハードコーディングしていたりするのです。どうにもお恥ずかしいしだいで。

現実逃避のネタ

そうだ。トラックバックの送受信というネタがあったじゃないか! いやそんなに力まれてもねえ。

現実逃避とプログラミング

あまりにもいろんなところで火を噴いているので現実逃避をはかり、久しぶりにBlogXのソースと戯れる。

とりあえず、RecentEntryを表示させたかったので、各種テストを経てうまい具合に動いたので、表示させてみた。

どこから手をつけてよいのかよくわからなかったので、とりあえずWebを探し回ったところ、ごくカンタンなXSLTを使ったRSS取得ルーチンを発見したので、dotNETマガジン2005年4月号の特集に載っていたソースコードと対比しつついろいろ試行錯誤を重ねてみたり。

単純にXSLTを使えば、すぐに取得できることはわかったのだけれど、できれば(他のサイドバー同様)完全にコードビハインドで作成したかったので、いろいろごちゃごちゃソースを書いてみた。

XmlNodeとXmlNamespaceManagerで、ノードアイテム(と呼んでいいのか?)を管理(という言い方もナニだなあ)すればいいわけだけど、foreachでまわす際に、SelectSingleNodeメソッドしか頭になかったため、どのオブジェクトをまわせばいいのか悩む。なんのことはない、SelectNodesメソッドを使えばいいのですね(しかも「SelectNode」とスペルミスしていて、すっかりはまったというのは内緒だ)。ははは。

あー。しかしこれで現実逃避ネタがひとつ減ってしまった。どうしましょう……。

しくじってしまっている件について

なんかごちゃごちゃいじっていたら、またしてもRSSが配信されないような按配になってしまったぐすん。

「最近書いたコンテンツのタイトル一覧」というか「リーセントエントリー」というかなんかそんなようなものを.ascxで作ってみたのだけれど、ローカルでは動いていたのに本体にアップしたらパーサーエラーだのなんだのが出てそれはもう大騒ぎさ。

その一環でRSSが配信されなくなったのかなあ。うーむ。まだ、更新できるから救われているという説もあったりして複雑な心境。

てゆうか仕事しなきゃ仕事しなきゃ仕事しなきゃ。

せっかく作ったのにデバグができなくなっていた件について

なんてことだー。ざんねーんっ!

てゆうか、やはりこれはホスティング業者にメールを出して何とかしないとイカンということだろうか。面倒くさいなあ。日本語通じないしなあ。こっちは英語が不自由ときている。んー。困った困った。

XSLTについて

なんだおい、これでいけちゃうのか。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="*">
  <font face="Trebuchet MS">
    <xsl:for-each select="channel/item">
      <font size="2">
        <xsl:element name="a">
          <xsl:attribute name="href">
            <xsl:value-of select="link"/>
          </xsl:attribute>
          <xsl:value-of select="title" />
        </xsl:element>
      </font>
      <br />
    </xsl:for-each>
  </font>
</xsl:template>
</xsl:stylesheet>

バナーが汚い件について

貼ろうと思っていたバナーが溜まってきたので整理ついでに表示させてみた。うーむ。どうも汚いなあ。やはり、作られたサイズで表示するのが人として正しいあり方だということを再認識。

しかもリンク先がアサマシエイトって。言語道断ですからー。

サファリではうまく表示されていない件について

すまぬ。ひと段落したら(なにが?)調整するので気長にお待ちくだされ。

サーバーが移動した件について

どうもサーバーが(物理的に)移動したようで、GMT-5になっておりました。

こないだ落ちたのはそのせいか。

ちょっと一箇所のつもりで広げ

いつの間にやら細かくチューニングしてしまう。なにをってあなた、サイドバーですよ。

よく見たらamazonのサイドバーの<div>タグがうまくデータを挟んでなくて、それを直したら今度は影響がバナーサイドバーに出て、そっちを直す際にルーチンを見直しつつ<UL>タグを使用しない方向で調整。

というわけで、今はいろいろクリアに。

つか、やっぱりコードビハインドで入れ子状態のCSSタグを放り込むのって結構面倒くさい。頭が整理されてないとなんだかすぐにわからなくなる。要はどういう構造でデータを表示させているかをきちんと把握していればいいんだけど、なかなかうまくいかんもんですなあ。困ったもんだ。

これでデザイナーが作る見た目に合わせるのは、大変だよなあ。本物の開発者はどうやってるんだろうか。

待てば海路の

えーと、要はVS2005で作り直せば、現在stupidGeekで頭を痛めている問題を回避できるということでしょうか。

……。あー。どうもそうみたいだなあ。

つか、それ以前にいろいろ直したいところもあったりするので、まあ、ボーっと待ってないで手を動かしましょう、ということでよろしいか。

とりあえず

バージョンを古いものに戻してみたりして。応急処置だけはしたんだけど、しばらくは相変わらずRSSが配信されないと思う。

てゆうか、むかし昔、まだ河端さんがBlogXしてたころに「ストレージ周りから作り直したいっ!」と叫んでいた理由がよくわかったりなんかして。

まあ、あたくしはまだしばらくこいつと格闘しようと思っておりますが。

RSSがまともに配信されていない件について

時間表示を含めた時差対策が完全に裏目に出ていて、そのせいでRSSを配信するコードが下呂を吐いているという。

まあ、そこまではわかったのだけれど、抜本的な解決策が見つからないので当面放置プレイを続行します。

「RSSおもしれーっ」と言っているわりに、こういう状態のまま放置するのはたいへん心苦しいのですが、まあ、紺屋の白袴ともうしましょうか、そういう類のものだと思っていただき、ご寛恕いただければ幸甚です。

これに懲りず今後ともよろしくお願い申し上げます。

笑い事じゃない

どうもこのblog(って、stupidGeekだけど)RSSを配信してないことに気づく。いつから配信してないのか、なんでダメなのかよくわからん。とりあえずサーバーエラーが出てるという。

原因を特定して直さなければならないんだけど、そんなに憂鬱じゃないのはなぜ?

てか、気づくの遅すぎなんだYO!

相変わらず現実逃避している件について

気になっていた細かいところを修正。過去記事表示用の引数(文字列)とか、表示後の順番とか。

カテゴリから飛んだときも表示の順番を変えたほうがいいのかな。過去記事の参照は明確に時系列で読むこと(誰が?)を前提としているから古い記事が最初にあってもおかしくはないんだけど、カテゴリで見る場合ってどうなんだろうか。“該当カテゴリに関する変遷”という視点に立てば、古いものが最初に来るのが正しいような気もするけど、カテゴリの場合は新しいものが最初に来たほうが健全な感じがする。これはきっと「通常のコンテンツから任意のカテゴリだけを抜き出して読みたい」という意識のせいじゃないかと。

  • 通常のコンテンツ=現時点から過去へ
  • 通常のコンテンツから抽出したカテゴリ=現時点から過去へ
  • 過去記事=過去から現在へ

とすると、日付指定で表示させた場合も、エントリを過去から現在へと並び替えたほうがいいな。……、というわけで直して。

えーと、あとはポストしたコンテンツのタイトル一覧と、検索機能をつけたほうがいいかもだなあ。

現実逃避している件について

とりあえずFireFoxでもサイドバーで表示しているカテゴリ一覧だのバナーだのがガタガタにならないようにCSSを修正。ついでにメールボックスのラベルとテキストボックスの行頭をそろえてみたり。

多少、モジラ系のWebブラウザにも優しくなったんではないかと。「優しい」ってコトバが適切かどうか意見の分かれるところではありますが。Operaとかは知らないよー。来てないから別にいいし。

SideBar

アマゾンの検索結果を表示するサイドバーの調子が悪いので、外しておく。

んー。やっぱりきちんとエラー処理しないとダメですか(おい

というわけで

懸案の日付を日本時間になるように修正いたしました。

つか、これまたヒドイ修正方法。もうちっとこう、クールなハックができないものかね。

見え方で悩む

FireFox 0.7(って古いな)で見ると、カテゴリリストもアーカイブリストもバナーリストもズレるんだよね。<ul><li>タグの解釈が異なるためだと思うんだけど、よくわからない。

そのせいかどうか、IE6だときちんと表示されるAmazonサイドバーも、FireFox 0.7だとガタガタになる。IE5.0でもガタガタ。

テーブルタグとかは使わずにCSSだけで制御したいんだけど、どうすればいいんだっけな。

Amazon Side Bar

というわけで、ここで公開されていた「Amazon E-Commerce Serviceユーザーコントロール」をASP.NETっぽくコードビハインドで書き直して、横に貼ってみたりしてみました。

アソシエイトIDとサブスクリプションID、キーワードとサーチインデックスはsite.configに書き込むようにして、色味とかはCSSで修正できるようにしてます。してますけど、これだけを単体で配布できるようには、まだなってませんから。つか、site.configで制御するようにしたので、Siteconfig.csもいじらざるを得ず、配布できそうにないです。残念!

あと、1回のリクエストで取ってこれる10タイトルをそのまんま表示してますけど、ここは表示タイトル数を設定したいところ。それと、レビューも文字数を制限しつつ表示させたいですな。文字数が「0」のときはレビューは非表示とすると、いい感じかも。

なんてことを考えつつ、しかし明日も会社で通常業務があるので今日はもう寝ちゃいますけどね。いやもう、わからんことだらけだということがよくわかりました。なんつーかね、そこまでしてコードビハインドにする必要があるのかとかね。これならASPでも十分じゃないかとか。

でもまあ楽しかったからいいか。今度はYahoo!だ。なんつって。

Googleさまからのリンク

default.aspxに、

<meta name="robots" content="noindex,follow"></meta>

としたものの、指し示す先は相変わらずTopページ。過去のトップページがキャッシュに残ってるから、まあ、いいっちゃーいいんだけど。なんかおれ、勘違いしてる?

これ、PermaLink.aspを指してもらうにはどうすればいいんだっけ。

はてな カラー

ちょっと色味を替えてみたりして。

「はてな カラー」と個人的に呼んでいるカラーを使ったCSSで、飽きたらまた戻すつもり。

てか、そんなだったら はてな から離脱しなければいいのに、という声も聞こえてきそうですが。

ちょこっと改造

カレンダーから選択した日のみを表示する際にも、カレンダーを表示するように改造。

おそらくカテゴリだのなんだの、サイドバーを全部表示させたほうがそれっぽくていいかもしれないけど、そういうUIを作るのであれば、Hompageクラスを弄って、表示させたいコンテンツそのものをPlaceHolderに放り込むようにしたほうが、トラフィックを減らす上でもいいだろうなあ。でもそこまでやるのが面倒なので、このあたりで妥協しておく。

前の日とか次の日とかのLinkも表示させたほうがいいのか知らん。もっとも「そのほうがいい!」と言われたからといって、即座には対応しかねるわけだが。

アーカイブ

おぉ。ちゃんと2月分のアーカイブ表示がなされている。すばらしい。こうなると愛情ひとしお。

TrackBackを受け付けるよりも前に、最近のエントリタイトル表示サイドバーを先に作ろう。そうしよう。

サイドバーいろいろ

バナー表示サイドバーのアップとカレンダーで日付を選択したら該当日のコンテンツのみ表示するように調整。

バナー表示サイドバーはもう少しいじりたいなあ。altとかも表示できるようにしたいしねえ。

該当日のコンテンツのみの表示は、アーカイブ表示とほぼ同じなので、非常にカンタン。blogxは各パーツをascxできちんと切り分けて作られているから、拡張するのはかなりラクだな。もっともTrackBackを受け付けるような口を設ける方向の拡張はなかなか作れないけどねえ。まあ、これはおれがヘタレなせいだけどね。

TrackBack Ping

ソースコードを読んでいたら、EntryEditの画面で[Save]ボタンをクリックした際に、http://rpc.weblogs.com/weblogUpdates/にPingを送るソースを見つけた(BlogXUtils.cs)。これを援用して、たとえばEntryEditにPingの送り先用の入力ボックスを作り、ここにURLが入力されていた場合は、該当URLにPingを送信する、なんてことが可能になる。

ただ、個人的にはこちらからPingを送りたいわけではなくて、むしろTrackBackを受信したいだけなんだけどね。

かなり優秀

アーカイブとかカテゴリを表示させた場合、コンテンツの量が多くなるにつれて表示が重くなるかと思ったけれど、心配するほどでもなかった。これはおそらくキャッシュが効いているせい。IISとAPS.NETの組み合わせは、もしかすると想像以上に強力かもしれない。

いやー、いろいろ勉強になりますわ。

ダーティ&クイックハック

とんでもなく汚いコードでアーカイブのリンクを自動生成するようにしてみたり。

いやこれは便宜上なので、絶対必ず手を入れて直すこと。われながらあまりにも酷すぎる。

あと、System.TimeSpanと、DateTime.AddHours(DateTime.AddMonths、DateTime.AddMinutesとかも)調べること。Calendar.AddHogeHogeも調べとくといいことがあるかもしれない。てゆうか、CalendarのほうはGlobalizationもあわせて調べないとダメかも。

やっぱり日付

これが気持ち悪い。直したいなあ。でもどこを弄ればいいんだろう。

サイドバー拡充計画

というわけで、アーカイブモジュールを配置してみました。

内実はかなり恥ずかしいコーディング(一部力技)なので、そのあたりをきちんとクリアしてからアップしたかったんだけど、まあ、いいや(かなり投げやり)。

これはおいおい直してゆくとして。このモジュールがクリアになったらカレンダーコントロールの月名の部分をHtmlコントロールに差し替えて、そっちからも飛んでゆけるようにする予定。もちろん未定。

TrackBackレシーバーの実装まではまだまだ遠い道のりなのであることを実感した冬の夜なのであった。

TrackBack/Pingback

ちゃんと探せば出てくるもんだ。

一言メール

とりあえず、一言メールをサイドバーにアップしてみました。

もっとも文字コードのことをすっかり失念していたので、いまこのメール送信システムを使ってメールを送られても、すっかり文字化けした状態で届くので、読めません。

というわけで、まだ使わんといてくださいませ。まあ、使われても速攻でゴミ箱に放り込まれますけど。

[追記]
というわけで、文字化けを解消いたしました。これでとりあえず、日本語のメールがわたしに届きます。もっとも、個人的にはもうちょっと手を入れたいところなんですけど、まあ、いいか。起こりうる事象は把握していて、そのいずれもが起きてから対処しても間に合うものなので、しばらくはこれで運用することにします。まさかここからSPAMを打ってくる奴はいないと思うんだけどね。どうなんでしょうか。

ちなみに、SMTPサーバーやメールの受信アドレスはSiteConfigで設定できるようになっているので、リコンパイルは不要です。すばらしい(自画自賛)。

カテゴリ

カテゴリを間違えるケースが増えてきてますなあ。河端さんのバージョンみたいにエディット画面でカテゴリを選択できるようにしたほうがいいかもしんない。

まあそれはおいおいやるとして。とりあえずはサイドバーの充実を目指さなければ。ローカルではいろいろやってるんだけどねえ。まだ実装で納得できないのでひとつもアップロードしてないんだよなあ。

ちょっと気分がよくなった

マイクロソフトの某氏から久しぶりに電話があり、話しているうちにちょっと気分がよくなった。

というわけで、blogxのハック。今回はコメント欄に代わるものとして、メールシステムをサイドバーにくっつけてみることにした。

基本的にはascxでインターフェイスを作り、ascx.csにロジック(というほどのものではない)を書けばいいわけで、案の定、30分ほどで完成。メールの送信にはSMTPが欠かせないわけだけど、この実験はローカルで試しているので当然社内のメールサーバーの手を借りることにする。具体的には、

SmtpMail.SmtpServer = "xxx.yyy.zzz.nnn";

とするだけ。To:だのFrom:だのSubject:だのをSmtpMail.Sendメソッドで上記SmtpServerに放り込んでやればOK。実験は成功で(当たり前だ)これでコメント記入欄がなくても大丈夫ということになった。

問題はここ(nardis)のメールサーバー。残念ながらPOP before SMTPなので単純に送信することができなかったりするのであった。もしかしたらWebの管理ガイドに回避方法が記載されてるかもしれないので、あとで確認してみよう。うまくいきそうだったらインターフェイスをきれいにして、こちらにアップする予定。さて、うまくいきますか。

てゆうか、おれって単純極まりないな。

パーマネントリンク

現在、

  • タイムスタンプにパーマネントリンクを設定
  • トラックバック先としてTrackBackを表示

しているけれど、これを

  • タイムスタンプはラベル化
  • TrackBack表示を削除
  • トラックバックのリンク元としてPermaLinkを表示

に変更(ローカルで)。今晩じゅうにこちらもアップデートの予定。

[追記]
なんてことを言いつつ、ちゃっちゃと修正してしまいました。

キャッシュの生存期間

カテゴリとエントリの各キャッシュは、新規に書き込みがなされるごとに更新されているようだ。なるほど。

ということは、過去記事を放り込んどけば勝手にキャッシュして表示可能になるということだ。はてな からの移行がカンタンにできそうな雰囲気になってきて、ちょっとうれしい。それにあわせてwww.ddj.jpに置いている画像を全部コッチに移動して、ddjのほうはバンド用アーカイブサイトにしちゃいたい。つうか、ddjはアーカイブやり取り用のサイトにしちゃいたいところ。

あぁ、それと付随して気がついたけど、だから吉松さんはInfoPathで放り込んでいるのかもしれない。……いや、そんなことはないなあ。彼なら海外のサイトでもなんらかの処置を施して日本時間にあわせられるように実装するだろうなあ。InfoPathを使用するのは、やっぱり単に入力用インターフェイスとしてカスタマイズしやすいからではないか。

あと、編集/再編集機能の問題だろうな。BlogXは再編集機能がないのがホントつらい。

google Adsを導入してみる

googleのアドセンスをフッターに表示させてみたけど、どうでしょうか。

ソース(Javaスクリプト)を記述する場所はサイトコンフィグフォルダ内のフッターを制御しているhtmlファイル。

唯一不安なのはこれでgoogleに捕捉されてしまうのではないかということ。googleキャッシュに残っちゃうとバレバレになるからなあ。

BlogXのキャッシュについて

エントリとカテゴリに対してキャッシュを保持することで、表示をスピードアップしてるわけだけど、これの生存期間ってどれくらいなんだろうか。

いまそれぞれのキャッシュファイルを見たらカテゴリキャッシュ、エントリキャッシュともに「79」という数字が「ChangeNumber」タグに囲まれて記録されてるけど、これってなんだろう。

前に見たときは、この数字は70だったから、エントリの数じゃないかと思うんだけどね。

いずれにしてもちょっと謎。

トラックバックの実装方法を探す

あと、http://r286.com/arc/205 を読む限り、

書き込み登録の送信内容ですが、通常のTrackBackのようなものです。つまり、クライアントからサーバーへはHTTP POST、返値はXML。

サーバー側の受け口はtb.cgiの148行目。通常のHTTPのPOSTの形式で内容は、

__mode=regist&id=iBlogの書き込みのID&title=書き込みのタイトル&excerpt=書き込みのdescription

返値を作っているのはtb.cgiの167行目以降。まさに単なるXMLです。

~でデータが1であれば、エラーとして~をiTrackBackが表示します。

とのこと。tb.cgiはトラックバックを実装しているiTrackBackの該当プログラム箇所。

もっとも「書き込み登録の内容は、通常のトラックバックのようなものです」ってのが、ひっかかるなあ。これ、どういう意味なんだろう。やっぱりちゃんとトラックバックを実装しているCGIを解析しないとダメかなあ。

トラックバックに関する資料

トラックバックに関する資料。これを熟読玩味すればなんとかなるんじゃないかと夢想。ただし英文ですから。残念!

[追記]

さらに検索していたら、上記の記事が日本語に翻訳されてるところを発見。

  • トラックバック技術仕様書=http://lowlife.jp/yasusii/stories/8.html

トラックバックについて

トラックバックってのは、要は他のサイトからリファラとしてXMLデータが送られてくる、という解釈でいいのだろうか。pingとしてXMLタグ付きデータが送信されてくるので、それを受信し、XMLタグに沿ってデータを解釈するという実装で問題ないのだろうか。

Windowsアプリケーションにトラックバックの送信システムを実装した、RSSリーダーを作るとそのあたりがわかるのかな。その場合は自前サイトにコンテンツをアップする際にトラックバック送信を送る、というシステムにしないとだめなんだっけ。トラックバックは送るけど実態となるべきコンテンツはどこにもない、ってのはスパムTBになるわけだもんな。それはそれで面白いけど。

このあたりのことをRSSと一緒に記事化すると、おれがうれしい。

Webコントロールについて

BlogXのWebコントロールはPreRenderイベントを使用しているため、コンポーネントのイニシャライズ時にイベントハンドラを付与しておかないと描画されない。

具体的には、

private void InitializeComponent()
{
    this.Load += new System.EventHandler(this.Page_Load);
    this.PreRender += new System.EventHandler(this.MyWebCtrl);
}

こんな感じ。

この処理を忘れていたせいで、なんで表示されないんだろうとしばらく悩んでしまった。ダメダメだなあ。

トラックバックについて

トラックバック先(というかエントリの個別ID)を表示させてはいるけれど、トラックバックの受け口がないので、ほぼ完全に意味がないんだよなあ。これ実装するにはどうしたらいいんだろうか。

誰かに教えを請わないといかんなあ。

つか、それを記事にしちゃうか。

あれれ?

GMT表示って、これでいいんだっけ? なんか違う気がするなあ。

なんかヘン

なんか表示される時間そのものがデタラメになりつつあって悲しい。

しつこく日付

とりあえず、日付をGMTに戻してみる。

SiteConfigで制御しているから数値だけを-3時間すればOK。これ、便利。

もっともよく考えてみたら(よく考えてみるまでもなく)当たり前の機能として実装されてないとまずいんじゃないかと。まあ、毛唐が作ったblogだからしょうがねえか。

日付

これを書いているのは2005年1月5日の午前10:40なんだけど、この表示だと4日の夜10:40ぽくなっちゃうなあ。元に戻したほうがいいかもしんまい。

blogx改造工事中(ただしローカルで)

カレンダーの日にちをクリックすると、該当日のエントリ(コンテンツ?)のみが表示されるように改変しようとしているわけですけど、どうもforeachで遮二無二7日間分のエントリを表示するようになっていて、なんかどうもこのあたりは妥協した臭い。

変数startdateによって当日の日にちはもちろん、selectedDateの値も使いまわしているので、このあたりを改造しようとすると、

  1. 入れ子の制御構文を使う(スパゲティの元)
  2. 変数をもうひとつ導入する(カレンダーコントロールのイベントハンドラを分岐して使用するため、他のページまで改造しないとならない)

のいずれかを採用すればいいような気がするのだけど、どちらにしても大規模な改造工事になりそうで、かなりダメっぽい。

なんかうまい手はないものだろうか。

バナー表示コンポーネント

とりあえず。完成。

ローカルでは動いているのだけれど、もう少しブラッシュアップしてからこちらにアップする予定。

基本的にはSite.ConfigでIMG SRCのURLを指定すると、それが表示されるようになるだけのものなので、そんなに自慢できるものじゃない。まあ、MidnightProgrammerというかstupidGeekならでは、というところでしょうか。

手を入れすぎた

カレンダーコントロールをイヂクリ回していたら、なんか失敗したらしく、エラーが表示されてしまった。困った困った。

いまは直ってますけどね。

カレンダーコントロール

CSSで「navSelectedDayStyle」の文字色/背景色を変更しようとしているのだけれど、色要素が全然反映されないのはなぜだ。フォントサイズだのテキストデコレーションなどはちゃんと反映されるのに。うーむ。

日付と時間問題

まだちょっと問題があるなあ。

やっぱり“表示”ではなく、エントリファイルに書き込む時刻そのものを直さないとダメだなあ。というか、サーバーのローカル時間そのものを何とかしないと、「よく見ると、ちょっとヘンだよね」状態になる。つかなってる。

ヤだなあ。なんかこう気持ち悪いもんなあ。うまい手はないものかなあ。

日付の修正

天の声に導かれ、カレンダーコントロールの日付も、site.configに入力した値によって時差を解消するようにソースを書き直す。

もっとも、このようにするのが正しいのかどうか、正直よくわからない。

本来、サーバーが設置されている時間を尊重すべきなのか、あるいは世界標準時に直すだけに留めるほうがいいのか、入力者の時間帯に修正するほうがいいのか。

ネットワークは世界に開かれたものなのだから、すべてのネットワーク端末にぶら下がっている人々が世界標準時に合わせているほうが、ノウミソ的に正しいような気がするんだけど。そうすると-9時間の世界に生きている極東付近の端末では、リアルな日付が合わずに不全感がすごく残る。気持ちとノウミソがぶつかり合った結果、とりあえず、表示だけは極東時間(これを書いてるユーザーの端末時間)にあわせることにした。

まあ、site.configを書き直せばどこの時間帯にも合わせることができるようになったので、それはそれで(とりあえず)いいんだけど。

日付

ユーザーコントロールよりもすでにあるカレンダーコントロールの調整が先だろ、という天の声が響く罠。

つか、天の声ってなによ。

ユーザーコントロール

バナーを表示するコントロールを作成。ローカルで実験したところ、問題なく動作した。のだけれど、こっちへの反映は先送りにする。

つうのも、バナーのサイズを一定にするソースを実装してないから。たぶんどっかのプロパティを設定すればOKだと思うんだけど、今日はバナーを表示させるコントロールの作成だけで終了。あと、あの方法だとJavaScriptを使用したバナー(たとえばgoogleアドセンス)などは放り込めない。フッターにそれを持ってくることはできると思うんだけどね。それにどっちかっつーとArchiveコントロールを作成するほうがプライオリティは高い。

というわけで、ごくカンタンなユーザーコンポーネントの作成とページへの反映のさせ方は理解した(ような気がする)。

時差修正

というわけで、仕事が山積状態であるにもかかわらず、BlogXのソースコードと戯れているわけですが。

とりあえず、site.configを使用して日本時間を表示するようにしてみました。

ローカルの実験環境で成功しているので、本番サーバーにアップしたら表示が壊れるなんてことはないでしょう。ホントに応急処置なので、カレンダーと連動していないのが玉に瑕。つかダメダメ。

site.configの値を見て、カレンダーのカレントデイを一日前に進めるとか後ろにするとかしないとダメです。時刻は日本時間なのに、日付の表示は米国中西部という笑える状態になってます。はっはっは。

生きてるだけのことはある

下のエントリーで取り上げた3サイトをまわって、ちゃんと読んでみたら驚いた。超驚いた。

まず、「荒野の喫茶店」さんのところは、半年分ログが吹っ飛んじゃったらしいので、最古のエントリーが2004年7月25日。で、このエントリをよく読むと「ボクのBlogXは携帯電話から画像付き書き込みが出来るようにボク自身が改造したものだ」なんて書いてある。ひえー。だからBlogX2なのか。

もう、こうなったら逝き着くところまで逝っちゃって欲しい。まったりと生温かく濁った目で応援させていただく。

で、次が「プルビオ×BlogX」。こちらは一番古いエントリーが2004年9月5日。該当エントリーを読むと、

「MonoでBlogXを動かしてみました」って、あーた。そんな物好きな奴はいなっての。でもちゃんと動いているから笑える。つかもう笑うしかない。

慶応大学藤沢キャンパスの学生のようなので、ちょっとコンタクトとってみようかな。それにしてもあまりにもあまりだなあ。うーむ。

生存者発見

ふと思いついて「"Powered by BlogX"」でググってみる。

「ウェブ全体から検索」したところ約11,000件がヒットした。で「日本語のページ」に限定したら、今度は約1,310件となって、さらに現在も更新している(いわゆる“生きている”)ページを追いかけたら2件もあった。超びっくり。

ちなみに生きているのは以下の3blog。

  • Spinell's WebLogX=http://spinel3.myftp.org/weblogx/
  • ぷるぴお×BlogX=http://asuka.tom.sfc.keio.ac.jp/WeblogX/
  • 荒野の喫茶店 - Cafe of the Wilderness=http://www.niseko.or.jp/BlogX2/

このうち最初の1件は、なんだかよくわからんけど偶然行き着いたサイトで、stupidGeek同様、まだグーグル様に捕捉されていないBlogXみたい。

こうしてみると、BlogXしてた人たちは、みんな.Textに乗り換えたんだなあ。でもあれはひとりでやる分には規模がでかすぎるからなあ。気軽にWindowsでblogするんだったら、BlogXでいいんじゃないかという気がする。ソースも弄れるしねえ。.Textのソースを弄るとなると、結構、コトだろうし。

でもときどき、.Textの仲間に入れてもらって楽したいと思うときもあるんだけどね。

トラックバック用URL

トラックバック用URLをエントリの下に追加表示するように変更。もっとも、トラックバックされてもこちらには表示されないので、ほとんど意味がないような気もする。

こんな感じのコードを、EntryView.ascxの195行目から以下のコードを追加すると吉。これでいいんだか悪いんだかよくわからんけど。

entryFooter.Controls.Add(new LiteralControl("<br />"));
	
HtmlGenericControl trackBack = new HtmlGenericControl("span");
trackBack.Attributes["class"] = "tb";
	
Label TB = new Label();
TB.Text = "[ TrackBack ]  " +
  BlogXUtils.RelativeToRoot("PermaLink.aspx/" + entry.EntryId);
trackBack.Controls.Add(TB);

entryFooter.Controls.Add(trackBack);

あと、書き込みの時差を解消する方法を見つけたんだけど、この方法だと、とりあえず表示はなんとかなってもカレンダーが連動しないので、ちょっとかっこ悪すぎるので保留中。可能ならsite.configに定数を書き込んで、それによって時差を解消したい。

実現したい機能

欲しい機能を羅列する。

  • カレンダーの日付選択による、該当日コンテンツのみの表示
  • カレンダーの前(次)月選択による、該当月コンテンツのみの表示(当月選択も含む)
  • アーカイブ機能
  • 最近の見出し一覧
  • Google/Amazonなどのアサマシエイト機能の取り込み
  • 過去コンテンツの編集機能
  • サイドバーへバナーの貼り込み
  • その他いろいろ

てなところかなあ。

blogXの設計思想は「HTMLタグを一切書かずにコードだけですべての画面制御を行なう」ことだとおれは見ていて、ということは、たとえばサイドバーにバナーを貼る場合も、コンポーネントを作成し、そのコンポーネントがバナーのURLなりimg srcなりを動的に解釈して配置し表示するようにしなければならない。

なんとなく、頭の中ではできそうな気がするんだけど、それってすげー面倒くさい。つか、日付さえ変更できずに戸惑っているのだから、できないほうに軍配が上がる。

あーもう、誰かやってくれないか知らん。

いまさらですが

時差のことです。

このblogが設置されているのはどうもアメリカ中西部のサーバーのようです。で、記述している人間は日本にいるので、書き込みの表示には時差が生じます。

ホントはその辺を直してから設置したかったんだけど、いまだにどこをいじれば直るのかよくわからないという。情けない。

で、とりあえず、表示されている時間に15時間足していただくと、日本時間になりますので、各自脳内計算機を駆使していただきたく。

まあ、そんなわけで。ひとつよろしく。

[追記]

12月10日にソースをいじりました。表示されている時間は、現在は日本時間になってます。

インターフェイスの問題

某所にはtDiaryのBlogもあるんだけど、あれは入力用インターフェイスが酷すぎる。WeblogXもどうかと思う点は多々あるんだけど、tDiaryほどではない。もちろん、おれがサイトの管理者であれば、使いたいモジュールはどんどん追加して使いやすいものにしちゃうんだけど、さすがにそういうわけにはいかない。

まあ、モジュールはたとえば小見出しレベルの「recent_lebel」(だったっけ?)がないとか、見た目関連が多いけれど、それでもulタグやolタグ、preタグやbqタグを入力する場合は、pタグを手入力しなければならないなんてのは、ちょっとどうかしてると思う。

イレギュラーな入力方法が発生するのはしょうがないんだけど、それが他のレギュラー入力方法を犠牲にしなければ実現できないというのは、やっぱりまずいのではないか。

はてなにおいては、そのあたりが徹底的に考慮されていて、だから非常に使いやすいシステム(あるいはストレスのないシステム)になっている。これで運営方法(手法)に関してもストレスがないような按配ならもっといいんだけど、それはまあ、ないものねだりか。

なにより、アップロードしたコンテンツが削除できない、というのはtDiaryの一番マズイところだ。tDiaryとWeblogXは、基本的に、自身がサーバーを構築するなりホスティング業者からサーバーを借り受けて走らせるシステムだと考えたほうがいいかもしれない。

そんなに金のかかる面倒なことをするくらいなら、そら心具だの生扉だののサービスを受けて、ブーブー不平をならしてた方がシアワセかもしれない。それで、入力システムだのデザイン構成でストレスを感じるなら、さっさと足を洗うのがヒトとして正しい選択のような気がする。

もちろん、そのシステムに馴れてしまえば、それはそれでいいんだろうけど、そんなにまでしてゴミコンテンツをアップロードしたいですかそうですか。

うーん(悩)

ダメもとでpreタグではさんだところ、とりあえず悪くない按配の表示になった。

こないだは何が原因だったんだろうか? ナゾだなあ。

なんというか

うまくない。

ここんとこ、ヒマさえあればblogXのソースコードとにらめっこして日付(というか時間)を直す方法を探しているのだけれど、さすがヘタレだけあって、さっぱりわからない。

コンテンツを書き込む際に、サーバーの日時を取得してファイルを作っていて、そのルーチンは当たりが付いているから、あとはそれを加工すればいいはずなのに、(ローカルで実験しているblogX)ではうまくない。てことは、当たりが付いているはずのルーチンが全然見当違いのものだという可能性が高いわけで、そうなると、もはやお手上げ。

うーむ。どうしたものか。

アップロードした件

はてな日記の利用と同時期に.NETベースのweblogであるWeblogXを知り合いのサイトにデプロイし、カスタマイズしながら実験的に運用していた。

で、ようやくカスタマイズも一段落し(そんなたいそうなものではございません)、本稼動のために用意した海外のホストサーバーに再デプロイする(このためだけにドメインを取得した、というのは内緒の話)。

というわけで、以下に一部始終をまとめておきます。

ASP.NETを有効にする
Windowsサーバー自体は.NET Frameworkがインストールされているところを選択した(当然)けれど、ASP.NETは有効になっていなかった。これはWebから各種の設定が可能なコントロールパネル(Webアプリケーション)を使用。
アップロード
NoFTPを使用して、ディレクトリごとアップ。
試運転
Errorが返ってくる。ホスティング会社のサイト説明英文を読んでいると「Microsoft FrontPageの拡張機能をサイトに設定した場合、ファイル転送には、FTPソフトウェアではなく、FrontPage publishing featureを使ってください。普通のFTPを使用すると、拡張機能を壊してFrontPageのウェブの機能を使用できなくしてしまい、拡張機能をインストールするためにサイトを消去しなければならなくなります」などと書いてあって、かなり青くなる。ただ、Errorの内容を見る限りプログラムに問題があるわけではなく(当たり前だ。間借りサイトでもローカルでもちゃんと動作しているのだから)、どうもIISMgr(inetmgr.exe)でアップしたディレクトリがWebアプリケーションとして登録されていないっぽい。かといってそんな権限があたくしにあるはずもなく。
Webアプリケーションの登録
英文でサポートにメール。エラー出力とともに「どうもおたくのIISは、うちのWebアプリケーションを認識してないようなんだけどね」。
対処
「登録したよん」というメールが返ってきた。
本稼動
元気に稼動しております。

よかったよかった。

カスタマイズの目標

一日中WeblogXのカスタマイズ。

なんかもう、ホントにヘタレであることを実感。悔しいなあ。

この程度のアプリケーションはさっさとカスタマイズできなきゃダメだと思うのであった。

目標は、

  • カレント月のエントリーを表示する
  • 月ごとのアーカイブインデックス
  • タイトル一覧の表示

だー!

……。もっと勉強しようっと。

カスタマイズ

少々時間ができたので、WeblogXのカスタマイズを再度開始。

Visual Studio .NET 2003でWebデザインをするのって、結構、大変。かといってMacromediaのDreamweaver MXでもやっぱり大変。

要はあたくしがcssだのHTML 4.0をよくわかってないからだ。

考えてみればHTML 3.2くらいで知識が止まっているのよね。“うなぎの寝床”状態の掲示板をperlで作って喜んでいたのが1997年で、そこからこっち、なーんにも勉強してないんだから。そらダメだ

というわけで、ロジックを組む前にぐったりしてしまう。