نوشته هایی که درمورد ’ کی به کیه؟ ’ هستند

به احتمال حدود ۴۰% ، شما از ۱۰ دی، ۳۱ دسامبر، حداقل یکبار دیگه اینجا سرزدید. این یعنی شاید در مورد “کی به کیه؟” و “دیدیش؟” شنیده باشید. اگر بله پاراگراف بعدی را نخوانید.

بطور خلاصه، ” کی به کیه؟” یک ربات ه که وبلاگستان رو تحلیل میکنه. همین الان که این رو می نویسم “کی به کیه؟” مشغول کاره و هر ۴-۵ ثانیه یک وبلاگ جدید فارسی رو پردازش می کنه. “دیدیش؟” هم پروژه جمع آوری لینکهایی ه که وبلاگ نویسان ایرانی بوکمارک می کنند، در Google Reader و delicious مثلا. برای اطلاع بیشتر در مورد این رو پروژه می تونید به صفحات “کی به کیه؟” و “دیدیش؟” مراجعه کنید. در مورد آخرین نتایج “کی به کیه؟” چند روز پیش توضیح دادم (ببینید: گزارش چهارم “کی به کیه” – ۸۰.۰۰۰ وبلاگ فارسی بررسی شده اند)، اما در مورد “دیدیش؟” مدتهاست چیزی نگفتم (ببینید: “دیدیش؟“).

دیشب تعداد خوراکهایی که “دیدیش؟” دنبال می کنه از مرز ۱۰۰ گذشت. این یعنی با مراجعه به “دیدیش؟” شما به بهترین لینکهای روز به انتخاب ۱۱۴ وبلاگ نویس ایرانی دسترسی دارید.didish.png برای من بشخصه روز با “دیدیش؟” شروع می شه، حتی پیش از اونکه خوراک خوانم رو راه بندازم.

نمودار روبرو توزیع استفاده از سرویس های مختلف برای بوکمارکینگ رو بین خوراکهایی که در “دیدیش؟” دنبال می شن نشون می ده. بوضوح delicious اول و Google Reader دوم ه.

و اما غرض از این همه داستان گفتن.

کم کم دارم برنامه نویسی رو شروع می کنم برای تحلیل لینکهایی که در دیتابیس “دیدیش؟” جمع شده. همین حالا “دیدیش؟” ۲۶۰۰۰ لینک جمع آوری کرده. تا وقتی که برنامه آماده بشه این عدد احتمالا به ۴۰۰۰۰ تا خواهد رسید. اما دنبال چه هستم.

۱- لینک از کدام منابع فارسی بیشتر توسط وبلاگ نویسان مورد بررسی بوکمارک می شه؟

۲- منابع استخراج شده رو به “کی به کیه؟” خواهم داد تا درصورت عدم وجود به دیتابیس اضافه کنه.

۳- آیا طرح خاصی در زمینه بوکمارک ها وجود داره؟ مثلا کلاسترهای بسته؟

و حسن ختام داستان اینکه دیروز ایمیل جالبی گرفتم با یک پیشنهاد بسیار عجیب، جالب، بسیاروقت گیر، و البته بسیار هیجان انگیز. فعلا باید اطلاعات رو جمع آوری و دسته بندی کرد و نتیجه بیرون کشید. دنیا رو چه دیدی.

در آخرین گزارش “کی به کیه؟” گفتم که ۱۳۰٫۰۰۰ وبلاگ فارسی شناسایی شده اند. امروز این تعداد به ۱۷۰٫۰۰۰ تا رسیده که از این تعداد ۷۸٫۰۰۰ وبلاگ بررسی کامل شده اند و ۹۴٫۰۰۰ تا در صف هستند. از این وبلاگ ها بیش از ۵۰٫۰۰۰ آدرس ایمیل استخراج شده. برای اطلاعات بیشتر در مورد اهداف این پروژه به صفحه “کی به کیه؟” مراجعه کنید (انگلیسی).

نکته جالب عدم افزایش طول صف علی رغم افزایش ۵ برابری تعداد وبلاگ های بررسی شده است که ممکنه بدلیل نزدیک شدن به نقطه همگرایی باشه، البته آمار ِ شفاهی در مورد تعداد وبلاگ ها بسیار بیش از اینه. بنابراین هنوز در این زمینه نمی شه با قاطعیت چیزی گفت.

emails۱.png

همچنان یاهو سرویس برتر ایمیل از نظر وبلاگ نویسان ایرانی ه.

scripts.png

و بلاگفا هم همچنان سرویس اول وبلاگ نویسی در ایران.

و خداوند TTable را آفرید

از زمانی که آخرین پست را در مورد “کی به کیه؟” نوشتم (ببینید: همیشه دنبال خوشگلی نباش – یک داستان درمورد فایلهای ini)، بکوب نشسته بودم سر تبدیل ساختارهای اطلاعاتی کد به اشیایی که از بانک اطلاعاتی استفاده کنند. برای آدمی که در زندگی اش هرگز کار جدی بانک اطلاعاتیی نکرده، و این بسیار شرم آوره برای یک دانشجوی برق که بخش عمده زندگی اش به برنامه نویسی می گذره، این یعنی حجم زیادی کلنجار.

بالاخره به کمک کتابی که قبلا معرفی کردم، داستان نتیجه داد و نسخه ۳٫۰ “کی به کیه؟” اطلاعاتش رو در سه فایل بانک اطلاعاتی ذخیره می کنه و من هاج و واج موندم که این همه سرعت از کجا آمده که کد دست ساز من قبلا اینقدر کند بود.

نتیجه اخلاقی: به جای خلاقیت به خرج دادن خیلی اوقات راحت تره آدم از ابزارهای آماده استفاده کنه.

kibeki_ini.pngبرنامه نویسی که می کنی، انتخاب فرمت فایل نکته بسیار مهمی ه. زمانی که هنوز ساختارهای داده ای نهایی نشده اند استفاده از فایل باینری چندان راحت نیست، چون با اضافه کردن هر فیلد جدید باید مراقب باشی که ساختار نامناسب رو از فایل نخونی. به این دلیل، و به دلایل دیگه، مدتهاست از فرمت ini بکرات استفاده می کنم.

فایلهای ini فایلهای متنی ساختارداری هستند که در اونها میشه Section و Key تعریف کرد. به این ترتیب میشه براحتی اطلاعات متنی-عددی رو در یک فایل با ساختار مناسب ذخیره کرد. در سالهایی که برنامه نویسی کردم، و همین حالا هم، اکثر فرمت فایلهایی که تعریف کردم عملا ini بودند.

نکته حاشیه ای اینه که Delphi ساختاری به نام Tinifile داره، اگر اشتباه نکنم، که فایلهای ini رو پشتیبانی می کنه. مشکل اما اینه که این ساختار فقط ۶۴K اطلاعات رو می تونه ذخیره کنه. به همین دلیل سالها پیش ساختاری تعریف کردم به نام Mini که تمام کارهای Tinifile رو انجام می ده بدون اینکه محدودیت حجمی داشته باشه. فایلهای مورد استفاده در “کی به کیه؟” هم همگی Mini هستند. شکل روبرو قسمت ابتدایی یک فایل نوعی  ini رو نشون می ده که توسط این ربات ساخته شده. تا اینجای فایل دو Section وجود داره و کلا پنج Key.

گفتم که شدیدا مشکل دارم با سرعت خوانده و نوشته شدن فایلها (ببینید: من و سگ و الهه دلفی و بانک اطلاعاتی). امشب، یا در واقع دیشب، در حالیکه در سرمای -۲۰ و دقیقا در ساعت ۱۲ نیمه شب پیاده از دانشگاه به خونه می اومدم بنظرم رسید که شاید مشکل همین Mini باشه. نکته اساسی اینه که هربار نوشتن در Mini مستلزم جستجو برای Section و Key مربوطه است. خوندن هم به همین ترتیب کار سنگینی ه.

kibeki_ot.pngایده ام این بود که بیام به جای فایل بسیار “خوشگل”ی که Mini درست می کنه از یک فایل بدون ساختار استفاده کنم. یعنی فایلی که عملا چیزی نیست جز خط به خط نوشته اطلاعات. اینطور بود که ساختاری نوشتم به نام Mot یا Ordered Text. مجموعه کامل اطلاعات “کی به کیه؟” رو اینجا ندارم اما آزمایش با اطلاعات کمتر نشون می ده که شاید نیازی به استفاده از یک بانک اطلاعاتی نباشه. این یعنی احتمالا یکبار دیگه از یادگرفتن بانک اطلاعاتی جستم. شکل روبرو یک فایل  ot رو نشون می ده. این فایل دقیقا نظیر فایل iniی است که در بالا نشان داده شده. بوضوح این فایل بسیار سریع تر خوانده و نوشته می شه.

اینجاست که معلوم می شه خوشگلی خرج داره و گاهی اوقات کمی بی ریختی هم همچین بد نیست. فردا باید تست کنم کد جدید رو. دعا بفرمایید بی زحمت.

یک سوال اخلاقی-فضولانه

آمار چیزی ه که همیشه مسحورم می کنه. زمانی که این آمار به رفتارهای آدم ها مرتبط میشه، این لذت صد چندان ه.

از زمانی که پروژه بالابین رو شروع کردم (ببینید: صفحه پروژه بالابین) و اولین نسخه رو منتشر کردم (ببینید: بالابین: فیدخوان برای بالاترین) این امکان رو داشتم که محل استفاده از این نرم افزار رو دنبال کنم. جالبه که بالابین مشتری دائمی در مکزیک داره و مشتریان دیگری در ژاپن، آفریقای جنوبی و ایالت های تنسی و آلاباما.

balabin_usage.jpg

balabin۲bigg.png

این امکان البته پرسش های اخلاقیی رو هم به همراه میاره. مثلا اینکه چقدر حق دارم این اطلاعات رو بدست بیارم و اینکه چقدر حق دارم اطلاعات بدست آورده را در اختیار دیگران بگذارم.

همین اتفاق در پروژه “کی به کیه؟” افتاده (ببینید: صفحه پروژه کی به کیه؟). چندتایی پیشنهاد دریافت کردم برای اطلاعات حاصل از این پروژه. کامنتی هم نوشته شد پای یک پست انگلیسی در مورد این پروژه که نویسنده اش نگران بود که این اطلاعات می تونه مورد مصرف “نیمه پنهان یاب ها” قرار بگیره. شما چی فکر می کنید؟ خط قرمز کجاست؟ آیا حق دارم اطلاعات “کی به کیه؟” رو در اختیار کسی بگذارم؟ آیا حق دارم بفروشم کد این پروژه رو؟

پس نوشت: اطلاعاتی که من از رفتار کاربران بالابین بدست می آورم منحصره به چیزی که این کانتر بهم می ده. این یعنی اگر کاربر بالابین هستید آدرس IP یتان برای من فرستاده نمی شه. من هیچ اطلاعات دیگری درباره کار شما با این نرم افزار هم بدست نمی آرم. تنها اطلاع، ذات استفاده شما از این نرم افزار و شهر محل زندگی شماست. اگر فکر می کنید این نقض حریم شخصی شماست امر بفرمایید حذف کنم این کانتر رو.

پس تر نوشت: این اطلاعات عملا از ردپایی که همین الان در این وبلاگ گذاشتید هم کمتر است.

پس تر تر نوشت: پاسخ به نگرانی ها در مورد حریم شخصی کاربران بالابین

من و سگ و الهه دلفی و بانک اطلاعاتی

delphi.gifمادرم همیشه می گفت درس مثل سگ می مونه، از یادگرفتن چیزی درنرو، برو بکوب وسطش. حالا این هم شده داستان من و برنامه نویسی بانک اطلاعاتی. در تمام سالهایی که از برنامه نویسی Delphi زندگی کردم (ببینید: خبر خوب برای برنامه نویسان دلفی کار) همیشه از بانک اطلاعتی در رفتم. حتی یکبار یک پروژه بانک اطلاعاتیی به تورم خورد که نشستم با یک گونی  Object نوشتمش.

سر داستان “کی به کیه؟” اما کفگیرم عمیقا به ته دیگ خورده. همین الان ۱۳۰٫۰۰۰ سایت توسط ربات پیدا شده و خوندن و ذخیره کردن این حجم اطلاعات ده دقیقه طول می کشه. نکته اینه حجم گراف به توان دوی این عدد ربط داره و این یعنی وحشتناک.

اینه که افتادم به فکر پیاده کردن سیستم روی یک هسته بانک اطلاعاتی. قدم اول البته یاد گرفتن این داستانهاست. گشتم یک فایل قدیمی پیدا کردم که داستان رو توضیح می ده. این پایین می گذارمش برای آیندگان. اندرباب کپی رایت هم گویا نداره.

آقا این “کی به کیه؟” داره عجیب باحال می شه (اگر خبر ندارید، “کی به کیه؟” پروژه کشف گراف ارتباط در وبلاگستان فارسی و استخراج اطلاعات از اونه. اینجا می تونید کمی بیشتر ببینید: در وبلاگستان ایران چه خبر است؟ گزارش اول – نگاهی به آدرس های ایمیل ۱۴۱۶ وبلاگ نویس ایرانی).

تعداد منابع به عدد رویایی ۱۳۰٫۰۰۰ رسیده که از این تعداد ۱۶٫۰۰۰ تا وبلاگ بررسی کامل شده اند و ۹۵٫۰۰۰ تا در صف بررسی هستند. دو روز گذشته کامپیوترم تمام وقت مشغول کار بوده و تونسته ۱۳٫۲۷۲ آدرس ایمیل از وبلاگ نویسان ایرانی پیدا کنه. جالب اینه که همچنان تحلیل های قبلی (ببینید: در وبلاگستان ایران چه خبر است؟ گزارش دوم – نگاهی به سرویس مورد علاقه ۱۷۳۶ وبلاگ نویس ایرانی) درست هستند.

emails.png

در بین ۱۳٫۲۷۲ آدرس ایمیل پیدا شده، یاهو مقام اول را داره و جی میل بعدیه. در گزارش قبلی که فقط شامل ۱٫۵۶۵ آدرس ایمیل بود ترتیب همین بود اما درصدها ۲-۳ درصدی متفاوت بودند.

script.png

حدود سه چهارم ۱۶٫۰۷۰ وبلاگ پیدا شده روی بلاگفا هستند و سرور بعدی پرشین بلاگ ه. در گزارش قبلی که شامل ۱٫۷۳۶ وبلاگ بود ترتیب همین بود و باز هم درصد ها کمی متفاوت بودند.

باز هم می گذارم کامپیوترم چندروزی روشن بمونه.

امروز صبح اولین گزارش پروژه “کی به کیه؟” رو پست کردم (ببینید: در وبلاگستان ایران چه خبر است؟ گزارش اول – نگاهی به آدرس های ایمیل ۱۴۱۶ وبلاگ نویس ایرانی). این پروژه از یک ربات نرم افزاری برای جمع آوری اطلاعات از وبلاگستان استفاده می کنه. بزودی یک صفحه اختصاصی برای این پروژه ایجاد می کنم و اونجا بیشتر توضیح می دم که داستان کلا چیه.

از صبح تاحالا تعداد منابع به ۲۸۷۴۲ افزایش پیدا کرده، چون چند ساعتی کامپیوتر رو روشن گذاشتم که ربات کارش رو بکنه. اینجا دو نمایش می بینید. اولی نشون می ده ۱۵۶۵ آدرس ایمیلی که توسط “کی به کیه؟” جمع آوری شده در کدام سرویس ها قرار دارند. بوضوح ما وبلاگ نویسان ایرانی به یاهو و جیمیل بسیار علاقه داریم.

kibeki_emails.png

نمایش زیر سرویس مورد استفاده وبلاگها را نشان می ده. دقت کنید که ربات هنوز تحلیل متنی انجام نمی ده و به همین دلیل هنوز امکان تشخیص اتوماتیک وبلاگهای فارسی روی بلاگ اسپات و وردپرس را نداره. برای این امکان ایده هایی دارم که هنوز اجرا نشده اند. به هر حال بلاگفا بوضوح سرویس اول وبلاگ نویسی برای ۱۷۳۶ وبلاگ مورد بررسی ه.

kibeki_script.png

اگر ایده ای برای اضافه کردن به این تحلیل دارید مرحمت می کنید کامنت بگذارید یا ایمیل بزنید. اگر اهل استفاده از این تحلیل ها در یک تحقیق دانشگاهی هستید من شدیدا خوشحال می شم این کار رو منتشر کنیم.

kibeki۲.pngهمونطور که قبلا گفتم، روی پروژه ای کار می کنم به نام “کی به کیه؟“. هدف این پروژه جمع آوری اطلاعات درمورد وبلاگستان ایران از طریق رباتی است که در Delphi کد نویسی کردم.

تا این لحظه ربات ۲۶۸۸۱ وب سایت رو پیدا کرده که از این تعداد ۱۹۲۰۷ تا بعنوان وبلاگ شناسایی شده اند. از این تعداد ۱۵۵۵ عدد مورد بررسی کامل قرار گرفته اند. در برخورد با هر وبلاگ، ربات صفحه رو برای لینک به وبلاگ های دیگه اسکن می کنه. گذشته از این، اطلاعات دیگری نظیر آدرس ایمیل از صفحه استخراج می شن.

در این گزارش نگاهی می کنیم به سرویس های ایمیلی که وبلاگ نویسان ایرانی استفاده می کنند. ربات تا به حال ۱۴۱۶ آدرس ایمیل پیدا کرده که در زیر بصورت یک Pie Chartنشون داده شده اند. نمودار زیر نشون می ده که حدود سه چهارم ما از یاهو استفاده می کنیم. نکته دیگه اینه که ۲% آدرس های ایمیلی که در وبلاگهامون اعلام کردیم اشتباه هستند. بخشی از این آدرس ها البته برای مقابله با اسپمرها کد شده اند، مثل someone at gmail dot com.

emailss.png

زنده ام – “کی به کیه؟”

kibeki.png

سلام. با استانداردهای این وبلاگ، مدت “زیادی” ه که ساکتم. علت، گذشته از آمادگی برای یک سفر طولانی به اروپا (و آفریقا)، کار روی پروژه ایه به اسم “کی به کیه؟“. دارم کار آماری می کنم روی وبلاگستان. امیدوارم بزودی بتونم راجع به جمعیت وبلاگستان بنویسم و گراف ارتباطیش. اگر از کار مشابهی اطلاع دارید بی زحمت خبر بدید.

در ضمن، نسخه جدید بالابین رو هم بزودی می گذارم اینجا.