الجمعة، 10 يونيو، 2011

تصحيح أخطاء العرض بنظام التعليقات Disqus

قبل مدة قصيرة بدأت باستعمال منصة التعليقات Disqus في المدونة نظراً للامكانيات التي تتيحها للمعلقين كتسجيل الدخول و التعليق بحساباتهم في تويتر أو فايسبوك مما يعطي للتعليق بحد ذاته مصداقية، لكن ما لاحظته هو أن دعم المنصة للعربية مازال غير مكتمل رغم أنها توفر خيار استعمال اللغة العربية، هذا النقص يبدو جلياً في طريقة عرض مربع التعليق و إليكم الصورة التي توضح ما أتكلم عنه:


أكيد ستكون قد لاحظت الأمر ان كنت تستعمل منصة التعليق هته في مدونتك و ربما أزعجك كما أزعجني في بادئ الأمر، لحسن الحظ فقد أتاحت Disqus امكانية اضافات أكواد CSS لتخصيص المظهر و هو الأمر الذي تستطيع الوصول إليه من خلال لوحة التحكم الخاصة بك من تبويب Settings ثم Appearence في أسفل الصفحة ستجد Custom CSS قم بنسخ الكود التالي:

#dsq-content h3 { clear: both; }
#dsq-account-dropdown { float: left; }
#dsq-sort-by { float: left; }
.dsq-collapse-toggle {
left: 6px;
right: auto;
}

و ألصقه هناك مع الحفظ، الآن لم يتبقى أمامك سوى تصفح مدونتك لترى النتائج :) كما يمكنك رؤيتها في مدونتي .

أتمنى أن أكون قد أفدتكم في تدوينتي هذه و إلى اللقاء في تدوينة جديدة.

دمتم بود ..

السبت، 28 مايو، 2011

ما يجب أن تتجنبه عند معالجة السلاسل النصية على منصة الدوت نت

على عكس بعض اللغات الكلاسيكية (مثل السي و السي++ ..الخ)  فإن السلاسل النصية في منصة الدوت نت ليست مجرد جداول من الرموز (Chars) بل هي في الحقيقة عبارة عن كائنات من الصنف String و هي فئة غنية بالدوال التي ستجعل التعامل معها أكثر سهولة من أي وقت مضى و ستغنيك عن كثير من العمليات عديمة الجدوى التي كنت ستضطر للقيام بها لو كنت تبرمج بلغة أخرى، لكن اذا أزلنا الستار عن هذه الفئة سنجد أنها في الحقيقة تقوم بإدارة جدول من الرموز (التي تستعمل ترميز Unicode 16) تتولى توليده تلقائياً كما تقوم بكل العمليات اللازمة من أجل تعديله متى دعت الحاجة (بما في ذلك تحرير الذاكرة بالنسبة للرموز التي لم تعد لنا بها حاجة)، أي أن متغيراً نصياً من 3 رموز لن يقوم بحجز نفس السعة التي سيحجزها متغير من 10 رموز على عكس السي مثلاً حيث ستكون ملزماً بالاحتفاظ بباقي الخانات رغم أنك لا تستعملها (جميل، أليس كذلك؟)..

أمر رائع آخر أن منصة الدوت نت تعامل الفئة String كأنها نوع Type و بذلك فانه ليس من الضروري أن تقوم بكتابة new عند تعريف متغير جديد، لاحظ أنني قلت متغير و ليس كائن كونه من الممكن اسناد قيمة له مباشرة بالمعامل = كما أنه من الممكن اضافة أحرف إلى آخر النص باستعمال المعامل += و إليك المثال التالي:

الجمعة، 8 أبريل، 2011

5 بيئات عمل لبناء المواقع بواسطة Ruby بعيدا عن Ruby on Rails

ارتبط كثيرا اسم اللغة Ruby ببيئة عمل المواقع Ruby on Rails، والتي وصلت الآن إلى نسختها الثالثة وأخدت شهرة واسعة في عالم الويب و تستعمل في أشهر المواقع العالمية أمثال: Twitter, Github, Gruppon...

لكن يمكن أن تكون عندك صعوبات في تعلم التعامل مع بيئة العمل هذه، أو لا تحبذ العمل مع نموذج التصميم MVC، اذن ما عليك إلا الاختيار بين مجموعة بيئات العمل المتوافرة على الانترنت و التي تخص لغة Ruby، لن أطيل عليكم و لنقم بالتعرف عليها :) .

Sinatra

اخترت البدء بها لأني رأيت مشروعا عربيا أنجز بها و هو مشروع Hsoub Ads، و كما رأيت في أحد تعليقات صاحب المشروع أنهم قاموا بإنجاز فراموورك مبني على Sinatra، لنعد إلى الحديث عن بيئة العمل هذه و التي تعتبر إحدى أسهل بيئات العمل حيث يمكن بناء مشروع متكامل في ملف وحيد أو تقسيم العمل على ملفات متعددة، وهي مفتوحة المصدر و مجانية و استعملت في مشاريع مشهورة مثلاً: BBC, Github, Heroku, Songbird...

دون أن نهمل أن Sinatra كان مصدر استلهام للعديد من بيئات العمل في لغات أخرى.

الخميس، 17 مارس، 2011

أداة ErrorProvider: اجعل برامجك أكثر أناقة

وفرت مايكروسوفت منذ أولى إصدارات إطار العمل .NET أداة ErrorProvider و التي تسمح لك بإعلام المستخدم بالأخطاء في برامجك بطريقة جميلة و تعفيك من استخدام علب الرسائل (MessageBoxes)، خصوصاً في أجزاء البرنامج التي تطلب من المستخدم ادخال معلومات معينة ففي حالة الخطأ ستقوم الأداة باظهار أيقونة صغيرة بجانب الخانة المعنية.

لن أطيل أكثر و سأدعكم تكتشفون هذه الأداة العملية مع مثال بسيط، كل ما سنحتاجه لدرس اليوم هو واجهة مع خانة نص (TextBox) و زر (Button) بالاضافة إلى الأداة ErrorProvider طبعاً، سنقوم ببرمجة تطبيق بسيط يقوم بالتحقق من طول سلسلة نصية.

الواجهة المستعملة:

لنلقي نظرة أقرب على الأداة..