تجربة استخدام نظام تدوين شخصي

27-02-2014 Blogging
إعلان

عند إطلاقي لمدونتي الشخصية كنت مصرا على إستخدام نظام تدوين خاص بي أقوم من خلاله بنشر المقالات نظرا لأن الموضوع بسيط ولن يأخذ من وقتي شيئ, يمكنني القول أنه أول نظام أقوم بإنشاءة لأقوم بإستخدامة شخصيا, فهو أولا واخرا مجرد جدول في قاعدة البيانات أقوم بإضافة وتعديل البيانات من خلاله لا أكثر ولا أقل لذلك لن أكون مضطرا لفعل الكثير من الأمور التي عادة ما أفعلها مع التطبيقات التي أقدمها للأشخاص !, وهذا ما كنت أعتقدة.

بالفعل قمت بإنشاء نظام Pager والذي كان مجرد ما تم وصفه سابقا, جدول في قاعدة البيانات أقوم بإضافة وتعديل البيانات داخلة, لا يحتوي على محرر نصوص أو حتى نظام مستخدمين, يوجد فقط مستخدم واحد في النظام وهو أنا, لا داعي لذكر أنه لا يوجد نظام قوالب فالسابق ذكره يعطي فكرة عن بدائية النظام, بعد الإنتهاء من المشروع قمت بالإهتمام قليلا بشكل الروابط ليظهر عنوان الموضوع في الرابط بدلا من رقم الصف في قاعدة البيانات URL Rewrite Mode المدعومة بشكل تلقائي داخل ASP.NET MVC لذلك لم يكن هناك أي جهد يذكر في هذه الميزة, كذلك قمت بإنشاء محرك بحث بسيط للمدونة معتمدا على جملة Contains من خلال LINQ.

قمت بنشر النظام والبدء بالتدوين وكانت هذه التدوينة أول التدوينات التي أقوم بكتابتها على المدونة متفائلا بالنظام الجديد غير مبالي بأنظمة إدارة المحتوى الأخرى ولكن فترة اللامبالة تلك لم تدم طويلا, بعد فترة لاحظت عدم وجود تغذية للمدونة "Feeds" وكأي مدونة يجب أن يكون هناك رابط خاص يستطيع الأشخاص الإشتراك به ليصلهم كل جديد, لم أنتبه لهذا الجزء لأني شخصيا لا أستخدمها ولكن بالتأكيد هناك من يستخدمها لذلك يجب توفيرها لهم, وقمت بذلك !

الوقت بالنسبة لي أصبح ضيقا في الفترة التالية ولم أستطع أن أجد أي وقت لأتابع تطوير البرنامج مع ملاحظتي لوجود أشياء أخرى يجب إضافتها مثل Drafts, الأقسام لم أرغب بإستخدامها منذ بداية الأمر ولكن القرار لم يكن سليما فحتى التغذية "Feeds" يجب أن تكون مرتبطه بأقسام معينة, ثم إن نظام المستخدمين غير مهم حقا ؟ لم أجد أني بحاجة لنظام قوالب ولكن نظام المستخدمين شيئ مهم في أي نظام ويجب أن يكون متوفرا, العديد من الأشياء التي قررت أن أقوم بتعديلها وتطويرها وتحسين أدائها لا أجد الوقت حاليا لأقوم بمتابعتها ! لم يكن الأمر بسيطا كما أعتقدت, وأعترف أني أعطيت النظام أقل من حجمة بكثير, فأي نظام تدوين يجب أن يكون متقنا مراعيا لكافة ما يحتاجه الكاتب, ليس لأني الشخص الوحيد الذي سأقوم بإستخدامة يعني أن لا أضع فيه إلا المكونات الأساسية ! فأنا كذلك بحاجتها ويجب أن تكون متوافرة.

إنتهى المطاف بي إلى الإقلاع عن استخدامه وبدلا منه قمت باستخدام ASP.NET BlogEngine, نظام تدوين في منتهى القوة والروعة, تعديل القالب ليتوافق مع النظام الجديد لا يشكل أي عقبة أمام مبرمج ASP.NET لأن النظام أساسا مكتوب بها, أعترف أن Wordpress أقوى منه من ناحية محرر النصوص الموجود, سهولة الإستخدام, السرعة أيضا, إلا أني أفضل إستخدامه لأنه مكتوب بواسطة ASP.NET.

ما يمكنني قولة في النهاية أنه وحتى أبسط البرامج يجب علينا أن نعطيها إهتماما عند بنائها بغض النظر عمن سيستخدمها وحتى لو كنت أنت, لذلك فضلت كتابة بعض الملاحظات يمكنك الإستعانة بها عند بنائك لأي تطبيق.

  • قم ببناء تصميم يؤهلك لإستخدام كافة مكونات التطبيق بكل سهولة ويسر
  • قم ببناء محتويات النظام بشكل متين كما لو أن شخصا محترفا سيقوم بإستخدام نظامك بعد بنائه
  • إذا كنت ترغب بإستدعاء ملف معين قم بإستخدام Browse File Dialog ولا تكتفي فقط بوضع رابط مطلق للملف على إعتبار أنك لن تستخدم سوى هذا الملف
  • لا تهمل أبدا وجود محرر نصوص بسيط ومريح للمستخدم وأبتعد عن MultiLine Textbox
  • لا تعتمد على إعادة تشغيل نظامك لحل الأخطاء التي تحدث وقت التنفيذ
  • قم بالتحقق من القيم المدخلة عند تقديم أي نموذج
  • قم بتوثيق مشروعك بإستخدام التعليقات "comments" ومن خلال Git
  • قم بتقديم شرح بسيط عن كل حقل ولماذا يستخدم في أي نموذج واحرص على تقديم رسائل واضحة للأخطاء التي يرتكبها المستخدم

هناك العديد من النصائح الأخرى في مجال البرمجة يمكنك الإستعانة بها, ولكن هذه المجموعة تتعلق بالبرامج التي تقوم بإستخدامها أنت بشكل شخصي لا تلك التي تقوم ببنائها للأشخاص.

قمت بإرفاق مجلد Controller ومجلد Model للتطبيق بنسخته الأولى للفائدة, يمكنك تحميله من هنا

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

حصلت على رقم لتتبع الشحنة التي تحمل ما قمت بشراؤه عبر الإنترنت

19-12-2013 Blogging
إعلان

قمت بشراء مجموعة من الأدوات الإلكترونية المتعلقة ببعض المشاريع من خلال متجر microcontrollershop, مؤخرا تم تزويدي برقم لتتبع الشحنة على عكس متجر SparkFun الذي زودني برقم الحقيبة التي تحمل ما قمت بشراؤه, وهذا ما اراه من خلال موقع usps.

لم تسنح لي الفرصة بمقارنة الإسعار العالمية بالمحلية لعدم توافر القطع المطلوبة داخل الأردن, اما بالنسبة للجمارك فلا أعلم إلى الان كيف سيتم إحتسابها.

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

هل Captcha ما زالت صالحة للتأكد من هوية المستخدم ؟

30-10-2013 Blogging
إعلان

الفيديو في الأعلى يظهر برامج الذكاء الإصطناعي التي طورت بشكل كبير لتستطيع تمييز الأحرف والأرقام المستخدمة في Captcha, ليست دقيقة 100% ولنكن واقعيين نحن البشر نخطئ في كثير من الأحيان في تمييز أحرف Captcha لصعوبة قرائتها ولكنها لم تكن كذلك على أنظمة الذكاء الإصطناعي وستتطور إلى أبعد من ذلك مع مرور الوقت.

في مقال سابق كنت قد تحدثت عن السبام وكيف يعمل وما هي أهدافه وذكرت Captcha على أنها من أكثر الطرق فاعلية للتخلص منه ولكن لا أعتقد أنها ما زالت فعالة حتى الان, الفيديو في الأعلى قام بعرض مجموعة من Cpatcha للعديد من الخدمات أبرزها Yahoo و Paypal وكيف تم التعرف على محتواها, لذلك أعتقد أنه من باب أولى إتباع توجه اخر في التمييز بين البشر والروبوتس, فمهما كان أسلوب التشفير معقد وصعب سيأتي اليوم الذي نجد فيه برامج تقوم بالتعرف عليه كالإنسان تماما !

International Student Identity Card - ISIC  هي منظمة عالمية تعطي بطاقة لكل طالب جامعي تثبت هويته على الإنترنت على أنه طالب جامعي ويستفيد من كافة العروض الموجهة إلى طلاب الجامعات في العالم على الإنترنت من خلال بطاقة الإثبات تلك, فهل سيكون في يوم من الأيام منظمة تحت إسم International Human Identity Card تمنح كل شخص بطاقة هوية على الإنترنت يستطيع من خلالها إثبات إنسانيته لنتخلص من الروبوتس ومشتقاته !

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

"أهلا بالعالم" ولا وجود لبرامج إدارة المحتوى بعد الان

28-08-2013 Blogging
إعلان

"أهلا بالعالم" هو عنوان التدوينة الإفتراضية التي تضاف تلقائيا بعد إكتمال تثبيت برنامج Wordpress , رحبت بي هذه العبارة مئات المرات على عكسي , فما إن أجدها حتى أقابلها بالحذف أو التعديل لأشعر بعدها أني قطعت شوطا طويلا في التطوير.

image02

قمت بإستخدام برنامج Wordpress في موقعي الشخصي لمدة عام كامل , وأيضا في بناء مواقع أخرى لبعض العملاء , كان رائعا جدا , لا أعتقد أن هناك نظام اخر يتقن البساطه كما هي موجوده في نظام Wordpress , توافقه التام مع محركات البحث أمر رائع ووجود الاف القوالب المجانية Themes والإضافات الجاهزة Plugins يوفر وقتا كبيرا في تطوير أي موقع ولكن .. !

في الحقيقة أردت خوض تجربة تدوين جديدة باستخدام تطبيق من برمجتي الخاصة , فإستخدام تطبيقاتك بشكل شخصي يمنحك فرصة أكبر لتجربة أدائها وتحسينها , إن العمل على نظام تدوين خاص بك قمت بتجهيزه ليتناسب مع إحتياجاتك تحديدا هو أمر ممتع جدا , كل أمر يقوم بتنفيذه أنت على معرفه كامله كيف تم تنفيذه وكيف يمكن تطويره , لن تفاجئك عباره new update available مجددا لأنك أنت من سيقرر وجودها.

لذلك وضعت لنفسي مجموعة من المبررات تحفزني على بناء نظام التدوين الخاص بي مثل : وجود العديد من الخيارات التي لا أقوم بإستغلالها في Wordpress ولن أستغلها نظرا لطبيعة موقعي "مدونه" أكتب فيها لا أكثر ولا أحتاج إلى أي شيئ سوى محرر نصوص أقوم بنسخ التدوينة بعد تنسيقها إليه , لا أحتاج إلى نظام التسجيل وإدارة المستخدمين لأنها بطبيعة الحال مدونة شخصية والشخص الوحيد المخول بالكتابه هو فقط أنا ! , التعليقات المزعجة Spam أصبح أمر لا مفر منه , هناك إضافات تجنبك هذا النوع من المشاكل لكني فضلت حينها أن أستخدم Facebok Comments Plugin , كما أن ترتيب المواضيع ضمن أقسام لا يعجبني في نظام التدوين , أحب أن أفعل دور الكلمات الدلالية Tags لا أن يدرج تحت تصنيف معين , واجهتني في الفترة الأخيرة أيضا مشاكل مع Theme كنت أستخدمه في المدونه وبسبب عدم توافقه مع تحديثات المدونه تعطلت معظم الروابط في لوحة التحكم وكان لا بد من تغييره مؤقتا عندما أرغب في إضافة موضوع جديد وبعد الإنتهاء أعود مره أخرى لأستعيد السابق , كما أن التحديثات المستمره أمر يزعجني.

لأعيش هذه التجربة قمت بإنشاء نظام تدوين بسيط خاص بي أستعمله في موقعي هنا لإدارة التدوينات التي أقوم بكتابتها وقمت بتسميته (Pager) لأنه وببساطه ... بسيط! , مجرد صفحات تعرض لك مواضيع أقوم بكتابتها وتتيح لك المجال للتجول بين الصفحات بشكل سلس (الأقدم , الأحدث) , هناك أرشيف لكافة المواضيع تعرض كل موضوع والتاريخ الذي أضيف به مع محرك بحث بسيط يعتمد بشكل كلي على محرك البحث جوجل , في الفترة الحالية تجاهلت العديد من الإضافات التي تعتبر إضافات أساسية في أي نظام تدوين.

ملاحظة : تطبيق Pager ما زال في المرحلة التجريبية ولم أصدره بشكل رسمي.

 أشياء لم أستخدمها :

  • التعليقات : حاليا لا أفكر في إضافة صندوق للتعليقات في المدونه نظرا لأنها ما زالت جديدة , كما أن إتاحة التعليقات للجميع يعرض البرنامج للعديد من المخاطر مثل Spam وبعض المشاكل الأخرى , إستخدام Captcha او Math Comment Spam هو أمر مزعج بالنسبة لي وللزائر , أفكر في إنشاء نظام تعليقات خاص يتجاوز مجموعة من المشاكل ولا يتطلب معلومات إضافية وذلك يحتاج إلى بعض الوقت , في إصدارات لاحقة من البرنامج سأقوم بإضافة هذه الميزه.
  • مواضيع ذات صلة : أعتبرها من الإضافات المهمه في أي برنامج تدوين , فهي تمكن الزائر من مشاهدة تدوينات أخرى لها علاقة بالتدوينة الحالية , هناك بعض الإشكاليات حول هذه الإضافة بخصوص سرعة الموقع إذ تستغرق بعض الوقت الإضافي للتنفيذ وخصوصا أن نظام Pager يعتمد على عرض كامل الموضوع ضمن الصفحة الرئيسية مما يعني أن المواضيع ذات الصلة ستظهر أيضا في الصفحة الرئيسية وهذا يتطلب عدد إضافي من الإستعلامات "Queries" -إستعلام لكل موضوع- , في الوقت الحالي لن يكون هناك عدد كبير من التدوينات , ولكن سأحرص على وضع الإضافة في الإصدارات الأخرى مع مراعات سرعة التطبيق.
  • الصفحات : في نظام Wordpress كنت أستخدم صفحتين , الأولى تتحدث عني والثانيه تعرض خدمات أقدمها , قمت بإلغاء الصفحة التي تتحدث عني واستبدلتها بصندوق بسيط يظهر أسفل كل تدوينه مع صورة شخصية ومجموعة روابط للشبكات الإجتماعية المشترك بها ورابط لموقع شخصي وفيه صفحة للخدمات التي أقدمها.
  • نظام التسجيل : بما أني الشخص الوحيد الذي يكتب في المدونه فلا حاجة لوجود نظام التسجيل , مستخدم واحد يفي بالغرض , أما بالنسبة للتعليقات فستكون متاحة للجميع بدون الحاجة لتسجيل دخول.
  • رفع الملفات : إذا كان Dropbox يمكنني من مشاركة ملفاتي مع الجميع , Flickr يسمح لي برفع الصور , Youtube يسمح لي برفع الفيديو وجميعها مجانا , فلم الحاجة لأقوم بعمل ملف إضافي وبرمجة Form لرفع الملفات , كما أن الخدمات المقدمه من هؤلاء تضمن للجميع بقاء الملفات مرفوعة طول الوقت , ولا أحتاج إلى مساحة إضافية من خطة الإستضافة الخاصة بي "تكلفة أقل" , هناك مجموعة من الاراء بخصوص رفع الملفات تجدها في سؤال طرحته بموقع Arabia I/O.
  • النشرة البريدية : ربما من الأجدر أن تحتوي كل مدونة شخصية لا تنشر مقالات بشكل يومي قائمة بريدية تستطيع من خلالها تنبيه المتابعين بوجود موضوع جديد.

في النهاية ما زالت قناعاتي أن ما يهم فعلا هو المحتوى لا برنامج إدارة المحتوى , فالعديد من الأشخاص قاموا بإستخدام Wordpress ولكن مدوناتهم للأسف فشلت ولم تكمل عامها الأول لا لضعف برنامج إدارة المحتوى بل لأنها لم تكن تهتم بالمحتوى أما البرامج فتقدم لك تسهيلات لإدارة وتنسيق المحتوى الخاص بك لا المحتوى نفسه.

عن محمد جمال

مهندس حاسوب ومطور برمجيات, أعمل Freelancer في تطوير تطبيقات الويب من خلال ASP.NET منذ عام 2007 قمت بإنشاء عدة مشاريع في مجالات مختلفة (المتحكمات الدقيقة, الأنظمة المضمنة, الروبوت, برامج سطح المكتب, أنظمة قواعد البيانات) ومن هواياتي الخط العربي

subscribe

إعلان
إعلان

تنويه : الأراء في هذا الموقع شخصية ولا تبت لأحد بصلة تحت أي حال من الأحوال