در پست قبل حدود بیست روز پیش فیدرول را معرفی کردم آن زمان قرار بود فیدرول یک سیستم برای منظم سازی خوراکها براساس زمان آپدیت و جزئیات مختصر دیگری باشد اما مشورت با چند نفر از دوستان و ایدههای جالب دیگر کارکرد پروژه را عوض کرد.
فیدرول قرار است یک آنالیزگر خوراک برای وبلاگهای فارسی باشد. فعلا پروژه تکمیل نشده و در حال توسعه است. برخی از قابلیتها بعلت پهنای باند و فضای محدود هاست رایگان تا تهیه یک هاست مناسب به حالت تعلیق درآمدهاند و در آینده نزدیک قابلیتهای جدید دیگری افزوده خواهد شد. فیدرول را میتوانید فعلا اینجا ببینید.
-
قابلیتهای فعلی:
+ امکان افزودن خوراک وبلاگ بهنهایت سادگی و آگاهی از وضعیت آن
+ بروزرسانی خوراکها هر 5 دقیقه یکبار
+ منظم سازی بر اساس زمان بروزرسانی، حروف الفبا، تعداد مشترکین فیدبرنر
+ نمایش عنوان 10 مطلب اخیر وبلاگهای ثبت شده
+ جستجوی پیشرفته در ناموبلاگها، زمان بروزرسانی و تعداد مشترکین فیدبرنر
+ خروجی RSS با قابلیت سفارشیسازی
تمام قابلیتهای فوق توسط آژاکس (تماماً کتابخانه JQuery) و زبان قدرتمند PHP و بانک اطلاعاتی MySQl پیادهسازی شده و سعی شده نهایت کاربر پسند بودن در آن لحاظ شود. برخلاف خواستهام ناگزیر شدم CakePHP را در این پروژه کنار بگذارم و کلاسها را از نو بنویسم.
خوراک چندی از وبلاگهای دوستان اضافه شده است میتوانید خوراک وبلاگتان را اضافه کنید اگه در سیستم موجود باشد هم مطلع خواهید شد. اما چگونه خوراک اضافه کنید. بدین منظور فیلد مناسبی در بالای صفحه تعبیه شده که به سهولت میتوانید خوراکها را اضافه کنید لازم است توضیحی در مورد محتوای خوراکها بدهم. قرار است روی خوراکها کار آماری شود و علاوه برآن لیست سازی انجام شود پس لازم است به این نکات توجه کنید:
چگونه خوراک اضافه کنید؟
قبل از هر چیز میبایست خوراکتان معتبر باشد. منظور از اعتبار رعایت معیارهایی است که توسط کنسرسیوم جهانی وب تعریف شده است. اگر وبلاگتان دو خوراک یا بیشتر دارد فقط مجاز هستید یکی را اضافه کنید (خوراکی که مشتمل بر محتوای اصلی وبلاگتان است) خوراکها فقط میبایست مخصوص وبلاگ باشند نه وبسایتهایی نظیر مجلهها یا دانلود سنترها و…
بهتر است از فیدبرنر استفاده کنید و اگر وبلاگتان این خوراک را دارد آن را اضافه کنید. چرا که تعداد مشترکین فیدبرنر یکی از معیارهای منظمسازی است. اگر هم فیدبرنر دارید و از روی ناآگاهی Awareness API غیرفعال است و مایلید دیگران به تعداد مشترکین خوراکتان دسترسی داشته باشند بهتر است Awareness API را فعال کنید در غیراینصورت سیستم تعداد مشترکان را صفر لحاظ میکند.
از آنجایی که پس از خرید فیدبرنر توسط گوگل برخی از خوراکها در حال انتقال از سیستم قدیمی به سیستم جدید هستند همه خوراکهای فیدبرنر (سازگار با API قدیمی و جدید، شامل دامنههای feedburner.com و feedproxy.google.com) پشتیبانی میشوند.
انتخاب شمار مشترکان فیدبرنر بصورت خام (فیدبرنر آمار روز قبل را ارائه میدهد) معیار چندان مناسبی برای منظمسازی نیست در آینده از تغییرات در یک بازه زمانی بصورت درصد افزایش یا کاهش هم استفاده خواهد شد. ضمنا منظور از تعداد مشترکان آیتم circulation فیدبرنر است نه تعداد هیت!
پیامهای موجود در نتیجه افزودن خوراک، گویا هستند اما فعال بودن و غیر فعال بود و درانتظار تایید بودن به چه منظور است. کارکرد سیستم گونهایی است که خوراکها باید تایید شود. پیام معتبر نیست یعنی یا خوراک شرایط اعتبار را ندارد یا سیستم نمیتواند خوراک را بخواند. پیام در انتظار تایید یعنی خوراک ثبت شده اما هنوز تایید نشده است. پیام فعال یعنی خوراک در سیستم پردازش میشود. فعلا خوراک غیر فعال نداریم اما اگر محتویات خوراکها در سیستم اختلال ایجاد کند غیرفعال خواهد شد.
چگونه خوراکها را مرتب کنید؟
با یک کلیک! در حالت پیشفرض خوراکها بر اساس زمان بروزرسانی(صعودی به نزولی از پایین به بالا) منظم هستند با بردن نشانگر ماوس روی عنوان ستونها و کلیک بر روی آنها میتوانید بر اساس همان ستون خوراکها را بصورت نزولی و صعودی درآورید و با دکمههای زیرین آنها را پیمایش کنید. همچنین با کشیدن ستونها میتوانید آنها را بزرگ و کوچک کنید. دقیقا همانند کار با سلولها در اکسل.
چگونه در خوراکها جستجو کنید؟
برای شروع جستجو بر روی نماد جستجو در پایین سمت چپ کلیک کنید. نماد کناری عمل بروزرسانی را انجام میدهد. پنجره معلق جستجو قابل جابجا شدن است آن را میتوانید به گوشهایی خارج از جدول بکشید و براساس فیلدها و عملگرهای کاملا هوشمند، جستجوی پیشرفتهایی در تمام خوراکها انجام دهید.
محتویات خوراکها را چگونه مشاهده کنید؟
محتویات کامل خوراکها فعلا مقدور نیست (فضا و پهنای باند کافی برای این کار نداریم) منحصرا لیست 10 مطلب اخیر هر خوراک با کلیک بر روی علامت مربع دراولین ستون کنار هر خوراک قابل مشاهده است.
چگونه از خروجی RSS استفاده کنید؟
فعلا خروجی RSS (خوراک فیدرول) بصورت صعودی به نزولی از آخرین آپدیتها مرتب میشود تعداد آیتمها را میتوانید مشخص کنید برای مثال خروجی 20 وبلاگی که اخیراً بروزرسانی شدهاند به صورت زیر است:
http://feedroll.izfree.com/rss.php?nu=20 nu = Item Count
بزودی خروجی براساس تعداد مشترکین فیدبرنر و سایر معیارها با قابلیت offset برای دسترسی به آیتمهای داخلی اضافه میشود. قابلیتهای دیگری نیز به زودی افزوده خواهند شد. از هر نظر یا پیشنهاد شما برای بهبود عملکرد فیدرول مشتاقانه استقبال میشود. ضمنا یادتان نرود خوراک وبلاگتان را اضافه کنید.
مانی
کار بسیار بسیار جالبی از نظر فنی به نظرم اومد. فقط با همه توضیحاتتون متوجه نشدم هدف نهایی این پروژه چه چیزی خواهد بود. در صورتیکه هدف آمارگیری از وب فارسی باشه به نظرم باید بخشی از زمان پروژه رو به نوشتن یک روبات جستجوگر اختصاص داد.
January 21, 2009 at 2:33 am
مرتضی الوانی
ممنون. نه آمارگیری به اون طریق نه. اون کار رو دقیقا آقای آرش کمانگیر انجام داده. فیدرول میخواد به نوعی محبوبترینها رو برحسب زمان درخواست سورت کنه
January 21, 2009 at 2:53 am
کمانگیر
آفرین. آفرین. آفرین. آفرین. آفرین. ایول.
January 21, 2009 at 5:19 am
خسروبیگی
سلام
خسته نباشید و دستتون درد نکنه
اول فکر کردم چیزی شبیه پرشین بلاگرز است. گرچه اشتراکاتی هم بین این دو کار هست.
منتظرم با افزایش امکانات فنی قابلیتهای بیشتر را ببینم. بسیار خوشحال شدم. در ضمن جهت اطلاع دوستان آدرس پرشین بلاگرز اینست:
http://persianbloggers.blogspot.com
January 21, 2009 at 12:33 pm
خسروبیگی
راستی یادم باشد که در وبلاگ خودم به این مطلب شما بپردازم!
(آخه حافظه من ضعیفه برای همین اینجا نوشتم که یادم نره!)
January 21, 2009 at 12:35 pm
دکتر ریتالین
سلام. عالیه. دستتون درد نکنه.
January 21, 2009 at 11:06 pm
صادق
خسته نباشید. فک کنم غذای خوشمزه ای از آب در بیاد.
January 22, 2009 at 1:39 pm
فرید
سلام
مدتهاست که من به یک موتور جستجوی rss بیس فکر میکنم
از پروژه شما خوشم اومد و شاید جالب باشه که اون ایده منم توش بزارید !
ایدشم خیلی سادس به جای استفاده از روباتها و دستو پنجه نرم کردن برای در اوردن مطالب یک سایت و دسته بندی اونا از خروجی rss سایتها استفاده کنیم و اونها رو درون دیتابیسمون بریزیم و به کاربران این امکانرو بدیم که از این دیتابیس جستجو کنن!
و بعد به سایت مورد نظر برن!
گر چه پس از مدتی دیتابیس خسلس بزرگو سمگین میشه ولی میشه روش کار کردو نتیجه گرفت!
نظرتون چیه؟
January 22, 2009 at 5:06 pm
مرتضی الوانی
@فرید
سلام. ممنون از شما دیگر دوستان. ایدهی جالبیه من خودمم قبل پروژه فکر میکردم از طریق یه سرچ انجین داخلی فیدها رو بگردیم و به سیستم وارد کنیم اما وقتی تصورشو کردم که یه پهنای باند عظیم میخوایم و یه فضای مناسب برای کش کردن تا عملکرد رو بهینه کنیم ناگزیر شدم فکرمو رها کنم.
این ایدهها و خیلی ایدههای دیگر همه اجرایی هستن اما نیازمند ساپورته. تا نتونیم هاست مطمنو برای این کار پیدا کنیم کدنویسی که پیاده سازی نشه بی فایده است.
January 22, 2009 at 10:03 pm
کورش اسلام زاده
سلام
دست شما درد نکند. عالی. فکر میکنم به زودی خیلی بیشتر از فید رول بشنویم. اطلاعات کامل و خوبی رو میده. اینترفیس الوان وبی هست و خلاصه کار مفید و تمیزیه. هر کمکی هم از دست من بر میاد در خدمتم. موفق باشید
January 22, 2009 at 11:01 pm
فیدرول/پرشین بلاگرز؟ » با اینترنت
[…] دهی (مثلا در وبلاگ خودت)! ایشان در دوم بهمن ۸۷ در پست “معرفی فیدرول نسخه ۱.۲.۰” در مورد کار توضیح دادند که جای تشکر دارد. کار، کار […]
January 24, 2009 at 11:31 am
عمو اروند
در بلاگ نیوز http://4.blognews.name لینک شد
January 24, 2009 at 12:58 pm
پدرام
عالی بود مرتضی جان.
ممنون مثل این که بلاگ ما هم توش بود.
فقط یه چیزی.من فکر کنم محدود به وبلاگ های IT بشه خیلی خوبه…البته نشه هم فرق نمی کنه…
در کل واقعا عالیه…
ما یه همچین چیزی هم برای وبلاگنویسان بوشهری راه انداختیم : FeedBlog.IR
در کل دستت درد نکنه که زحمت همچین چیزی رو کشیدی.از نظر من خیلی خوب شده.
January 27, 2009 at 5:06 pm
شیدا
این همان دیدیش کمانگیر میشه یا قراره یکی دیگه باشه ؟
January 30, 2009 at 4:26 am
مرتضی الوانی
نه کارکرد دیدیش با فیدرول خیلی متفاوته
January 30, 2009 at 1:07 pm
Mohammad
سلام .
تبریک میگم واقع کار خوبی شده …
من چندتا سوال داشتم ازتون
من الان تو برنامه نویسی php تقریبا میشه گفت مشکلی ندارم و می تونم چیزایی رو که می خوام بنویسم
اما مشکلی که من دارم اینه که نمی تونم این مسئله رو درک کنم که چه مواقعی نیاز به نوشتن کلاس های php هست ؟
البته اینا رو می دونم که برای برنامه نویسی شی گرا باید از کلاس ها استفاده کرد اما مگه کلاس ها مجموعه ای از فانکشن ها نیستند ؟
مگه نمیشه یک پروژه بزرگ رو با فانکشن ها نوشت ؟
البته شاید این سوالات من احمقانه باشه ولی خب چون تجربه ای نداشتم و اینکه نمی تونم این مسئله رو درک کنم اینا رو میگم !
یعنی اینطوری بگم که من وقتی شروع به نوشتن برنامه یک وبسایت می کنم نمی دونم کجاها باید از کلاس ها استفاده بشه و چرا باید از کلاس ها استفاده بشه
با کلاس های زیادی کار کردم مثلا با کلاس های تغییر اندازه عکس یا کلاس اتصال به WHM یا کلاس jpgraph …
اما نمی دونم تو کاری که خودم دارم انجام میدم چه قسمتی از کدها رو تو یه کلاس بنویسم
ممنون میشم تو این مورد منو راهنمایی کنید
چون این مسئله منو خیلی اذیت می کنه !
بازم ممنون
February 19, 2009 at 7:32 pm
مرتضی الوانی
سلام Mohammad و ممنون
سئوال جالبی پرسیدید. درسته کلاسها مجموعهای از توابع و متغیرها هستند و البته که میشه یه پروژه بزرگ رو صرفا با توابع نوشت و فرض کرد اصلا پیاچپی شیگرا نیست. اما نوشتن یه پروژه بزرگ و عدم استفاده از کلاس مثل اینه که با امکانات موجود بجای یه کامپیوتر نوتبوک، کامپیوتری شبیه کامپیوترهای دهه 60 میلادی بسازیم (البته با کمی مبالغه).
اگر هدف از شیگرایی در برنامهنویسی مشخص بشه متوجه خواهید شد که کجا و چرا باید از کلاس استفاده کنید. شاید تعریف شما از شیگرایی در پیاچپی نوشتن یه کلاس، ایجاد و استفاده باشه درحالیکه کاربرد کلاسها در پروژههای بزرگ با کپسولهسازی (Encapsulation)، وراثت، پولیمورفیسم (Polymorphism)، نیابت (Delegation) و …معنی متفاوت و تازهای با آنچه در ذهن دارید پیدا میکنه.
یکی از دلایلی که برنامهنویسان یه پروژه بزرگ رو ملزم به استفاده از شیگرایی میکنه قابلیت نگهداریه. البته به این معنی نیست که برنامههای تابعی قابل نگهداری نیستن بلکه نیازمند تفکر بیشتر و سازماندهی در قسمت معماری هستن تا این اطمینان حاصل بشه هرچیزی در موقعیت مناسب قرار گرفته.
فکر میکنم کار با کلاس رو خیلی جزئی آموختید در حالیکه یکی از نکات کلیدی برنامه نویسیه. وقتی ذهن برنامه نویس با منطق شیگرایی شناخت پیدا کنه متوجه میشه که اینجا اگر یه کلاس بنویسه بهتره مثلا چون میتونه در جای دیگری از وراثت استفاده کنه برای یه کار خاص دیگه (در حقیقت میتونید یک ماژول رو بر مبنای یک ماژول دیگه بنویسید که تمام خواص اون رو داشته باشه ولی کاری اضافه تر از اون هم انجام بده یا میتونید در یک ماژول یک متغیر از ماژول دیگه تعریف کنید) و این خودش یعنی بهینهسازی کد و صرفهجویی در زمان، برای توسعه پروژه!
خلاصه بگم وقتی یه برنامه رو با تابع بنویسیم برنامه مرکزیت کد داره. به این معنی که تابع رو با تابع فراخونی میکنه. داده به عنوان ورودی فرستاده میشه، تابع تبدیلات رو انجام میده و سپس خروجی رو برمیگردونه درحالیکه شیگرایی رهیافت مخالفی داره. چرا که مرکزیت داده داره.
فکر میکنم کار بیشتر با کلاسها بخصوص در قسمت وراثت و پولیمورفیسم دیدگاه شفافتری در شناخت شیگرایی در پیاچپی به شما بده. موفق باشید.
February 19, 2009 at 11:40 pm
Mohammad
سلام و ممنون که پاسخ منو دادید .
من تو این مدت خیلی تو اینترنت گشتم و مقاله های زیادی خوندم …
و وراثت رو فکر کنم یه چیزایی ازش فهمیده باشم
برای تست من اومدم یک پروژه رو با کلاس ها نوشتم و این کارهایی رو کردم :
من اومدم تمام کدهای html رو که باید استفاده بشه در قالب یک کلاس ایجاد کردم !
مثلا برای ایجاد یک فیلد ورودی فرم ها اومدم تو یه کلاس یک تابع ساختم به نام create_inputbox و یا مثلا برای ایجاد تصویر یک تابع ساختم به نام create_img و چندین تابع دیگه که محتویاتشون کدهای html بود و چند مقدار که از تابع ها گرفته می شد .
بعد یه کلاس دیگه ساختم و کلاس جدید رو فرزند کلاسی که کدهای html درش قرار داشت کردم و با توابع مثلا ساخت عناصر فرم یک فرم رو ایجاد کردم
اگر درک من از وراثت با کاری که در بالا گفتم درست بوده کم کم بریم سراغ پولیمورفیسم :)
ممنون میشم راهنمایی کنید و از اینکه وقت می گذارید متشکرم
February 20, 2009 at 1:36 am
khak313
چند تا هاست با پهنای نسبتا مناسب (رایگان) دارم امیدوارم به دردتون بخوره:
Freeftp.eu
xpilot.co.uk
مخصوصا دومی که 10 گیگ فضا و بینهایت پهنا می ده
انصافا هم قدرتمند تر نسبت به بقیه هست (بعضی اسکریپت ها که پدر هاست رو در میارن رو روش امتحان کردم)
ان شاء الله موفق باشین
February 20, 2009 at 11:36 am
مرتضی الوانی
ساخت یک کلاس به این شکل اولین استارت برای آموختن مفاهیم شیگراییه. اگر سایر مقدمات اصولی شیگرایی در ایجاد و استفاده از کلاس مثلا اپراتور فراخوانی (منظورم ClassName::functionName) و … فراگرفتید میتونید پولیمورفیسم رو شروع کنید.
شاید در ابتدا استفاده از ویژگیهای پیشرفته شیگرایی برای یه پروژه کوچک کمی خندهدار باشه ولی برای تمرین مناسبه. به مرور پروژههای بزرگتری برای خودتون تعریف کنید یا همون رو بسط بدید. در عمل خواهید دید که کاربرد این مفاهیم پرنگتر میشن.
February 20, 2009 at 8:10 pm