نظرات مطالب
ردیابی واژه‌های کلیدی در سایت‌های اجتماعی
فید یک واژه کلیدی در کلیه وبلاگ‌های سایت msdn
http://blogs.msdn.com/search/searchrss.aspx?q=KeyWord

فید یک واژه کلیدی در کلیه وبلاگ‌های سایت sqlblog
http://sqlblog.com/search/Searchrss.aspx?q=KeyWord
فایل‌های پروژه‌ها
DNTViewer.V1.4.zip
- امکان مرتب سازی عناوین نمایش داده شده در لیست اصلی با کلیک بر روی سر ستون‌ها فراهم شد. برای مثال امکان مرتب سازی بر اساس تاریخ یا تعداد نظر و همچنین مابقی ستون‌های تعریف شده.
- ستون تاریخ آخرین نظر ارسالی برای یک مطلب و امکان مرتب سازی بر اساس آن اضافه شد.
- لینک‌های خارجی در یک متن با یک آیکن فلش رو به خارج مشخص می‌شوند.
- نمایش مطالب تصادفی
- نمایش لیست موارد مرور شده
مطالب
Postable

ارسال سورس کد برنامه‌ها در بلاگر داستان خودش را دارد که پیشتر در مورد آن بحث شد.
اما این‌کار (تبدیل کاراکترهای غیرمجاز به نمونه‌های مجاز یا به اصطلاح escape آن‌ها) پس از یک مدت تبدیل به دردسر خواهد شد. به همین جهت برنامه‌ی کوچک زیر را برای ساده‌تر کردن این وضع تهیه کرده‌ام، که از آدرس زیر قابل دریافت است:



دریافت برنامه (برای اجرا نیاز به دات نت فریم ورک 2 دارد)

این برنامه‌ی کمکی، انجام چند کار زیر را در بلاگر برای شما ساده‌تر خواهد کرد:
الف) escape خودکار کاراکترهای غیرمجاز xml هنگام ارسال سورس کدهای خود و همچنین قرار دادن آن‌ها داخل تگ‌های div و pre مناسب.

روش برنامه نویسی آن:

public static string EscapeXml(string s)
{
var xml = s;
if (!string.IsNullOrEmpty(xml))
{
// replace literal values with entities
xml = xml.Replace("&", "&");
xml = xml.Replace("<", "&lt;");
xml = xml.Replace(">", "&gt;");
xml = xml.Replace("\"", "&quot;");
xml = xml.Replace("'", "&apos;");
}
return xml;
}
ب) حذف خطوط بین تگ‌های html . این مورد هنگام ارسال یک table استاندارد html در بلاگر لازم است. برای مثال در بلاگر ارسال کد زیر
<table>
<tr>
<td>data
</td>
</tr>
سبب ایجاد فواصل عجیبی در حین نمایش ردیف‌های جدول در سایت خواهد شد، زیرا بلاگر به ازای هر خط جدید یک br را به صورت خودکار نمایش خواهد داد. برای رفع این مشکل از دکمه remove html new lines استفاده کنید. به این صورت اطلاعات فوق به صورت خودکار به شکل زیر تبدیل می‌شوند:

<table> <tr> <td>data</td> </tr>

روش برنامه نویسی آن :

private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);
public static string RemoveSpaces(string html)
{
html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
return REGEX_LINE_BREAKS.Replace(html, string.Empty);

}

ج) حذف کاراکتر 0xA0 . البته این مورد ارتباطی به بلاگر پیدا نمی‌کند ولی اگر با CPP کار کرده باشید، حتما به مورد کپی سورس از اینترنت به داخل ادیتور و عدم کامپایل آن، برخورده‌اید. در سورس کدهای CPP مجاز به استفاده از کاراکتر No-Break Space نیستید (0xA0) و باید حذف شود. حال فرض کنید با بیش از 200 سطر سر و کار دارید. بنابراین نیاز به یک تمیز کننده سریع وجود خواهد داشت. (این مورد در ادیتور برنامه management studio اس کیوال سرور هم صادق است)

txtMod.Text = txtOrig.Text.Replace((char)160, ' ');
ساده است ولی انجام دستی آن مشکل خواهد بود.

نظرات مطالب
تغییر عملکرد و یا ردیابی توابع ویندوز با استفاده از Hookهای دات نتی
برای یک برنامه وب روش‌های ساده‌تری هم برای نمایش یا دستکاری اطلاعات روی صفحه هست. مثلا مانند مطلب تغییر تاریخ وبلاگ‌های بلاگر در همین سایت. یا حتی میشه اینکار رو با افزونه‌های مرورگرها  نیز انجام داد. اتفاقا خیلی هم مرسوم است این روش. این هم یک مثال خاصش در مورد شیرپوینت.
مطالب
جمع آوری آمار لینک‌های خروجی از سایت توسط Google analytics

چندی قبل مطلب کوتاهی را در مورد Google analytics نوشتم. در حین جستجو درباره‌ی jQuery در وب، به نحوه ردیابی لینک‌های خروجی از سایت توسط Google analytics برخوردم که نحوه پیاده سازی آن به صورت زیر است.
بدیهی است قبل از هر کاری باید اسکریپت مربوط به Google analytics را به انتهای صفحه و جایی که تگ body بسته می‌شود اضافه کنید (قابل دریافت درقسمت Add Website Profile . شماره این اسکریپت برای هر پروفایلی که ایجاد می‌کنید متفاوت است).
سپس:
الف) افزودن ارجاعی از کتابخانه jQuery به هدر صفحه که آن‌را در مطلب شمسی کردن تاریخ بلاگر ملاحظه کردید.
ب) افزودن چند سطر زیر به هدر صفحه
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
var $a = $(this);
var href = $a.attr("href");

// see if the link is external
if ( (href.match(/^http/)) && (! href.match(document.domain)) ) {

// if so, register an event
var category = "outgoing";
var event = "click";
var label = href;

pageTracker._trackPageview('/outgoing/' + href);
pageTracker._trackEvent(category, event, href);
}
});
});
</script>

البته اگر قبلا اسکریپت شمسی کردن تاریخ بلاگر را اضافه کرده بودید فقط محتویات تابع document.ready را باید اضافه کنید (جهت مشاهده نمونه اعمال شده، روی صفحه جاری کلیک راست کنید و سورس صفحه را مشاهده نمائید).

توضیحاتی در مورد کد فوق:
این اسکریپت به روال رخ داد گردان onclick هر لینکی که به خارج از سایت ختم می‌شود (مثلا لینک به یک فایل یا یک سایت خارجی (خارج از سایت))، به صورت خودکار تابع trackPageview مربوط به Google analytics را اضافه می‌کند. این کار تاثیری در عملکرد سایت ندارد و کاربر چیزی را متوجه نخواهد شد، اما به این طریق لینک‌های خروجی در آمار Google analytics ظاهر می‌شوند (مطابق تصاویر زیر).





از این پس آمار تمام لینک‌های خروجی از سایت ، متمایز شده با outgoing ، جمع آوری و نمایش داده خواهند شد.

امکانات بیشتری مانند event tracking نیز قرار است به Google analytics اضافه شود که هنوز در مرحله آزمایشی است و بر روی تمامی اکانت‌ها فعال نشده است.

نظرات مطالب
در مورد ادامه ...
سلام
من هم اکانت رو در ایمیلم دریافت کردم.
ایمیلی که استفاده کردم یاهو بود و خوشبختابه به قسمت اسپم نرفته بود :)
تبریک میگم
سایت بسیار زیبایی شده.واقعا خسته نباشید
من هم امیدوارم با همیاری و همکاری دوستان به بزرگترین سایت منبع فارسی زبان در خصوص برنامه نویسی تبدیل بشه.
نظرات اشتراک‌ها
چندین جایگزین برای Google Reader!
سلام
به نظربنده الان بهترین جایگزین feedly هست. از امکانات خوبش میشه به preview اشاره کرد که میتونید بدون اینکه صفحه feedly رو ترک کنید به مطلب در سایت اصلی نظر بدید مثل این کاری که من دارم الان میکنم.
در ضمن برای اضافه کردن rss هایی که با جستجو ،خود feedly نمیتونه پیدا کنه (مثل فید آخرین تغییرات همین سایت) باید به صورت دستی در آدرس بار ، آدرس فیدتون رو در انتهای /http://www.feedly.com/home#subscription/feed  قرار بدید و بعد اینتر.
اگه میشه دوستان حرفه ای‌تر هم ریدر مورد استفادشون رو بیان کنن.
نظرات مطالب
اشتباهات متداول برنامه‌نویس‌های دات نت
سلام
ممنون از نظرتان. آیا شما فید را در گوگل ریدر یا هر خوراک خوان دیگر هم ملاحظه کرده اید؟ حرف شما درست که بصورت استاندارد باید لینک و تایتل جدا باشند اما هدف مشاهده در خوراک خوان است که گمان میکنم با روش موجود برتری های بیشتری هم بر فید مرسوم داشته باشد.