PING.BLOGGERS.JP さんに ping を送るようにしてみました。
が、これであってるのかどうか今ひとつ自信がありません。ちゃんとできているようなら改造方法を公開します。(ソースを改造してビルドしなおさないとダメなんですが)
PING.BLOGGERS.JP さんに ping を送るようにしてみました。
が、これであってるのかどうか今ひとつ自信がありません。ちゃんとできているようなら改造方法を公開します。(ソースを改造してビルドしなおさないとダメなんですが)
.Text のインラインコメント表示についてです。
(インラインコメントっていうのは私が勝手にそう呼んでるだけです。ここでやってるように各 Post の下にコメントやトラックバックも表示することをそう呼んでます)
原水商店さんの .Text Blogs 日本語 Skin から頂いたスキンをインラインコメント化したものを置いておきます。
http://www.divakk.co.jp/aoyagi/SkinsJP_IC.zip
インラインコメント化スキンの使用方法
以下に簡単ですがインラインコメント化する方法を書いておきます。
(簡単というよりほとんど覚え書きのような状態ですが)
InlineComments.cs を Skins フォルダにコピー。
(ソースコードによるコードビハインド。ソースコードにしたのは DLL を作り直さなくてもいいようにするため)
各スキンのインラインコメント化
これで一応は動くはず。
あとは見栄えがよくなるように InlineComments.ascx を修正する。
たとえば
「各個別記事の下に TrackBack URL を表示するようにしてみました」
に書いた件なんですが、「.Text にどういう修正を加えたか」を書くのをすっかり忘れてました。
ソースコードの修正は必要ありません。スキンの修正だけです(というか、スキンの修正だけで済むようにしてみました)。各スキンに ViewPost.ascx がありますが、これに修正を加えます。以下、例として Simple スキンを使いますが、他のスキンでも基本的に同じです。
ViewPost.ascx の改造
<%@ Control Language="c#" Inherits="Dottext.Web.UI.Controls.ViewPost" %>
<%@ Import Namespace = "Dottext.Framework" %>
<%@ Import Namespace = "Dottext.Framework.Components" %>
<%@ Import Namespace = "Dottext.Framework.Util" %>
<%@ Import Namespace = "Dottext.Common.Data" %>
<script Runat="server">
private string GetTrackBackUrl() {Entry entry = Cacher.GetEntryFromRequest(Context,CacheTime.Short);
if (entry != null) {return "トラックバックは下記のURLにpingを送信してください。<br/>\nTrackBack URL: " + CurrentBlog.UrlFormats.TrackBackUrl(entry.EntryID);
}
return "";
}
</script>
<div class = "singlepost">
<div class = "posttitle">
<asp:HyperLink CssClass="singleposttitle" Runat="server" ID="TitleUrl" />
</div>
<asp:Literal id="Body" runat="server" />
<div class = "itemdesc">
投稿日時 : <asp:Literal id="PostDescription" runat="server" />
</div>
</div>
<div class="trackbackurl"><% Response.Write(GetTrackBackUrl()); %></div>
<asp:Literal ID = "PingBack" Runat = "server" />
<asp:Literal ID = "TrackBack" Runat = "server" />
太字の部分が追加した行です(追加だけで既存部分の修正は必要ありません)。
あとは、Style.css にお好みの CSS を設定しておくだけです。
Style.css(私が使っている CSS)
.trackbackurl
{border: 1px solid #DDDDDD;
background-color: #DDDDDD;
padding: 4px;
font-size: 14px;
}
IConfigurationSectionHandler を使うと Web.Config に簡単に独自の設定を追加することができます。
using System;using System.Configuration;using System.Xml;using System.Xml.Serialization;namespace WebApplication1{[Serializable]
public class MyConfig : IConfigurationSectionHandler
{public object Create(object parent, object configContext, System.Xml.XmlNode section)
{XmlSerializer ser = new XmlSerializer(this.GetType());
return ser.Deserialize(new XmlNodeReader(section));
}
public MyConfig() {}
public static MyConfig Instance()
{return (MyConfig)ConfigurationSettings.GetConfig("MyConfig");
}
private string _strParam = "*"; // default: "*"
public string StrParam
{ get { return _strParam; } set { _strParam = value; }}
private bool _boolParam = true; // default: true
public bool BoolParam
{ get { return _boolParam; } set { _boolParam = value; }}
private int _intParam = 10; // default: 10
public int IntParam
{ get { return _intParam; } set { _intParam = value; }}
}
}
<configuration>
<configSections>
<section name="MyConfig" type="WebApplication1.MyConfig, WebApplication1"/>
</configSections>
<MyConfig>
<StrParam>abc</StrParam>
<BoolParam>false</BoolParam>
<IntParam>5</IntParam>
</MyConfig>
</configuration>
こういう風にしておくと読み込みの際に MyConfig.Create が呼ばれるので XmlSerializer を使ってデシリアライズしてあげるわけです。
使うときはこんな感じ
Label1.Text = MyConfig.Instance().StrParam;
Label2.Text = MyConfig.Instance().BoolParam.ToString();
Label2.Text = MyConfig.Instance().IntParam.ToString();
おおっ、すでに MSDN Universal Downloads に上がってました。
PDC で配布されたのは 2003/08 くらいのビルドだったと思いますが、どのくらい変わってるんでしょうね。まぁ、ダウンロードしてみればわかるわけですが。って、今ダウンロード中だけどあと 10時間もかかるよ(^^;
http://blogs.msdn.com/jledgard/archive/2004/03/23/94690.aspx
ちょうど今行われている VS Live! San Francisco で VS 2005 Tech Preview が配布される模様。
MSDN Universal Subscriber Downloads な人には近いうちにこの Preview にアクセスする方法についてインフォメーションがある模様(ということはダウンロードできるようになる?)。
早くも "Whidbey" ではなく "VS 2005" として登場するみたいですね。
.Text を使った blog サイトの紹介
USERS GROUP 日記
.Text を Multiple で使っていて複数の方の blog が集約されています。それぞれの方の blog へは左側にある "BLOGGERS" のところからいけます。
以下はトラックバックのテストです(^^
http://blogs.users.gr.jp/haramizu/archive/2004/01/28/966.aspx
一色さんの #BLOG
青柳臣一blogさん、「.TEXT」のトラックバック対応方法を公開
にてご指摘があったので、各個別記事の下に TrackBack URL を表示するようにしてみました。こんな感じでいかがでしょう?
# たぶんバグってないとは思うんですが...
ちなみに #BLOG さんの Movable Type も Auto-Discovery 用のコメントは入っています。なので、.Text からもちゃんとトラックバックできるはずです。
(この書き込みはそのテストも兼ねてたりします :-) )
やっぱり言葉でうまく表現できなかったので、サンプルとしてすぐ下の記事にトラックバックしてみます。
http://www.divakk.co.jp/blog/aoyagi/archive/2004/01/27/442.aspx
こんな風にリンクをはるだけです。
で、Excerpt には
と書いて POST しました。
あらためて説明しなくとも、Google あたりで 「トラックバックとは」 とかのキーワードで検索するとたくさん出てきます。なので、一般論はそちらにお任せしちゃいます。
ここでは、.Text を使っている場合のトラックバックについて書きます。
.Text でトラックバックするには?
実は何もする必要がありません。記事を書くときに単に PermaLink のリンクを含めるだけで OK です。(PermaLink っていうのは、各記事への URL のことです。たとえば、この記事だと http://www.divakk.co.jp/blog/aoyagi/archive/2004/01/27/442.aspx になります)
PermaLink が含まれた記事を POST すると、自動的にトラックバックを送ります(もちろん、相手がトラックバックを受けれる blog じゃないとダメですが。詳細は後述)。
ただ、1つだけ気をつけたほうがいいことがあります。
トラックバックのときに相手先に送る情報は、
があります。ここで、title、url、blog_name は問題ないんですが、excerpt がちょっと問題です。.Text では Excerpt が記入されていない場合は、単にタイトルを送っちゃいます(title と excerpt が同じものになります)。
じゃ、Excerpt はどこで記入するのかというと、POST のページの下のほうにある "Advanced Options" を開くと出てくる Excerpt です。なので、記事中に PermaLink へのリンクがある場合はここにコメントを書きましょう。するとこれが相手先に送られます。
トラックバックするとどうなるのか?
ここでは、トラックバックする相手も .Text だとします。
.Text では、コメントやトラックバックをひっくるめて Feedback と呼んでいます。こちらからある記事にトラックバックすると、相手の記事の Feedback のところに表示されるようになります。見た目はコメントとほとんど区別できません。ただ、Excerpt に書いた内容がコメントとして表示され、自分の記事への URL がリンクされます。(うーん、言葉で書くのが難しい(^^; )
まぁ、結局、トラックバックっていうのは 「自動コメント&自動逆リンク」 なわけです。
ところで、私はトラックバックかどうかを簡単に見分けられたほうがいいかな?と思って "(トラックバック)" と表示されるようにスキンを変更してます。
仕組みは?
ほんとうは、PermaLink の URL とトラックバック用の URL は別物です。ではなぜ PermaLink だけからトラックバックできるんでしょう?
実は各記事にはトラックバックの URL がわかるようにコメントが埋め込んであります。
HTML のソースを見ると
<!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://www.foo.com/archive.html#foo"
dc:identifier="http://www.foo.com/archive.html#foo"
dc:title="Foo Bar"
trackback:ping="http://www.foo.com/tb.cgi/5" />
</rdf:RDF>
-->
なんて感じのが見つかります。これの trackback:ping 属性がトラックバック用の URL です。
このように HTML 中にコメントとしてトラックバックの URL を埋め込んで自動的にトラックバックできるようにすることを Auto-Discovery というようです。
http://www.movabletype.org/docs/mttrackback.html#autodiscovery of trackback ping urls
.Text は記事を POST する処理の中で、
といった処理を行っています。
そんなわけで PermaLink へのリンクを含めるだけで、自動的にトラックバックしてくれるわけです。
というように、.Text 自身が Auto-Discovery を使うことを前提にしているので、どこにもトラックバック用の URL が表示されてないんですよね。これは、どっかに表示するようにしようと思います。
ところで、「おいおい 2~4 って HTTP のやり取りだろ。重いんじゃないの?」 とお思いの方もいるかとは思いますが、.Text ではこの部分はちゃんと ThreadPool を使って別スレッドで行うようになっています。
if(entry.HasDescription) {notify.Description = entry.Description;
}
else { //entry.Description = entry.Title; notify.Description = entry.Title;
}
//string parameters = "title=" + HtmlEncode(title) + "&url=" + HtmlEncode(link) + "&blog_name=" + HtmlEncode(blogname) + "&excerpt=" + HtmlEncode(description);string parameters = "title=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(title))
+ "&url=" + HttpUtility.UrlEncode(link) + "&blog_name=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(blogname)) + "&excerpt=" + HttpUtility.UrlEncode(Encoding.UTF8.GetBytes(description)) + "&charset=utf-8";Milano::Monolog 「Trackbackの文字コード指定方法最終(予定)」
http://rebecca.ac/milano/mt/archives/000396.html
原水さんのところで知ったんですが、BlogX から .Text へデータをインポートするためのツール into .Text っていうのがあります。http://blogs.users.gr.jp/haramizu/archive/2004/01/20/807.aspx
しかし、残念ながら .Text 0.94 用で 0.95 だとデータベースが変わっているためにそのままでは使えませんでした。そこで、0.95 対応に修正してみました。また、ついでにカテゴリも自動的にインポートするようにしてみました。
改造版の into .Text は こちら。
ソースとバイナリが両方入っています。
オリジナルの into .Text
ソース http://postback.be/postback/posts/216.aspx
バイナリ http://postback.be/postback/posts/213.aspx
http://microsoft.sitestream.com/PDC2003/
PDC 2003 の各セッションの内容がストリーミングで公開されています。ストリーミングといっても、画像は PowerPoint のスライドです。音声は PDC で録音されたものです(拍手の音とか笑い声とかもちょっと入ってます)。
ちなみに、http://microsoft.sitestream.com/ は
TechEd 2003 のストリーミングが公開されていたところですね。
MSDN Subscriber Downloads で "Windows Longhorn Client Preview"なるものがダウンロードできるようになっています。
Longhorn SDK もある。
こちらで、PDC 2003 のストリーミングファイルやスライドを収録した DVD が購入できます。
Country に Japan もあるから日本からも買えるみたいです。けど、$499 + 送料はちと高いなぁ。
無料で公開してはくれないんだろうか?
Visual
Studio .NET Framework Bootstrapper プラグイン 日本語版 (アルファ版)
Visual Studio.NET 2003 のセットアッププロジェクトで .NET Framework 再領布モジュール込みの setup.exe を作れるようにするプラグインです。当然、setup.exe
が 24メガバイトくらい大きくなると思いますが、CD-ROM などでアプリケーションを配布する場合とかは便利かも。
John Lam さんの blog より
Diff between v1.1 and v1.2 of Frameworks
John Lam さんが .NET Framework 1.1 と 1.2(Whidbey) の System*.dll の差分を取った結果をダウンロードできるようにしてくださっています。クラス名しかわかりませんが、それでもかなりおもしろいです。
以下、ざっと見ていて気になったところの覚え書き。
System.Web の下。ずいぶんたくさんのクラスが追加されてる。 Personalization なんていうネームスペースとか System.Web.UI.WebControls
の下とか。このあたりは、ASP.NET "Whidbey"だな。
System.Windows.Forms の下にもいろいろおもしろそうなものあり。ActiveDocumentHost、Sound、WebBrowser、その他たくさん。
System.Diagnostics.Stopwatch なんてのもある。
System.IO.Ports.SerialPort は RS-232C だな。
System.Net.Ftp* は FTP か。SMTP と POP3 はないのかな?
うーん、リファレンスマニュアルはないのか?と思ったら Longhorn
SDK に載ってるじゃん。
ASP.NET "Whidbey"
"ASP.NET Whidbey"
なんか、ASP.NET "Whidbey" に関連した記事がいろいろある。
C# 2.0
C# Language
C# "Whidbey" のようなページは見つからない。けど、ここに C#
2.0 Specification がある。もちろん、これが "Whidbey" で実装される C#。
Visual Basic "Whidbey"
Visual Basic "Whidbey"
これは Visual Basice.NET の "Whidbey" 版。
Longhorn
Longhorn Developer Center
これまた、いろいろ。Longhorn SDK なんてリンクまであるし。
SQL Server "Yukon"
SQL Server "Yukon"
これもいろいろ。XML とか CLR とかおもしろそう。
次期プラットフォームの技術情報公開に合わせて、日本国内の開発者の早期準備に向けた施策を開始
MSDN 会員であれば Visual Studio.NET "Whidbey" が入手できるそうです。ただし、先着 3,000名とのこと。
ちなみに、これは、テクニカルプレビューであって、まだベータ版にもなっていないものです。ベータ版は下に書いたように来年春です。
おまけに英語版ですが、まぁ、これは問題ないでしょう。 Visual Studio が英語版なだけで、日本語のソフトを作ること自体は問題ないはずですから。(.NET
Framework は本質的には英語版・日本語版の違いはないはずです。エラーメッセージとか付属のツールが日本語化されているかどうかくらいしかなかったんじゃないかと思います)
Visual
Studio .NET 2003 最新ドキュメントへのアップデート
VS.NET2003、MSDN Library、.NET Framework 1.1 SDK のそれぞれのドキュメントをアップデートできます。
Next
Yukon, Whidbey Betas Due In May, Microsoft Says
ふむふむ、
2004/05 Yukon Beta 2, Whidbey Beta 1
2004/08 Yukon Beta 3, Whidbey Beta 2
か。
結構かかるなぁ。YukonとWhidbeyはほんとに来年中にリリースされるんだろうか?