مدونة الويب 2.0 » برمجة http://khaledalhourani.com/blog كنز المطور ... وضالة المتعلم Thu, 30 Jun 2011 07:40:23 +0000 en hourly 1 http://wordpress.org/?v= إصلاح علة أمنية في دروبال 7.3 و 7.4 http://khaledalhourani.com/blog/2011/06/30/%d8%a5%d8%b5%d9%84%d8%a7%d8%ad-%d8%b9%d9%84%d8%a9-%d8%a3%d9%85%d9%86%d9%8a%d8%a9-%d9%81%d9%8a-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-3-%d9%88-7-4/ http://khaledalhourani.com/blog/2011/06/30/%d8%a5%d8%b5%d9%84%d8%a7%d8%ad-%d8%b9%d9%84%d8%a9-%d8%a3%d9%85%d9%86%d9%8a%d8%a9-%d9%81%d9%8a-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-3-%d9%88-7-4/#comments Thu, 30 Jun 2011 07:40:23 +0000 خالد http://khaledalhourani.com/blog/?p=1422 رسمياً هذه أول علة بإصدار كامل (7.3) للنواة أكون ضمن الفريق الذي أصلحها، إقرأ ملخص المشكلة وباختصار المشكلة تتلخص في عيب في نظام الصلاحيات حيث يتم تجاهل الصلاحيات المرسلة من أي وحدة للتحكم بمشاهدة المحتوى، مثلاً لو أسندت لمحتوى معين تصنيف “رياضة” ووضعت قيد يسمح فقط للمدير برؤية هذا المحتوى فإنه يعمل ولو ضغطت على رابط هذا المحتوى وأنت غير مسجل الدخول كمدير سيظهر لك رسالة بأنه غير مسموح لك الوصول لهذه الصفحة، ولكن لو استعرضت المحتوى عن طريق تصنيف رياضة (بالضغط على تصنيف رياضة) سيظهر لك ذلك المحتوى حتى لو كنت غير مسجل الدخول كمدير.

]]>
http://khaledalhourani.com/blog/2011/06/30/%d8%a5%d8%b5%d9%84%d8%a7%d8%ad-%d8%b9%d9%84%d8%a9-%d8%a3%d9%85%d9%86%d9%8a%d8%a9-%d9%81%d9%8a-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-3-%d9%88-7-4/feed/ 1
مستقبل الدروبال http://khaledalhourani.com/blog/2011/05/03/%d9%85%d8%b3%d8%aa%d9%82%d8%a8%d9%84-%d8%a7%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/ http://khaledalhourani.com/blog/2011/05/03/%d9%85%d8%b3%d8%aa%d9%82%d8%a8%d9%84-%d8%a7%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/#comments Tue, 03 May 2011 21:24:11 +0000 خالد http://khaledalhourani.com/blog/?p=1325 السلام عليكم،

من أفضل اﻷدوات التي استخدمتها في حياتي وباعتقادي الأفضل هي دروبال، لا أنكر أنه يوجد فيها سيئات فهي ليست المدينة الفاضلة ولكن مقارنة مع باقي البرامج وأدوات تطوير الويب فهي تكتسح الكثير منهم، بالنسبة لي فنقطة تركيز عندي في برنامج اليومي هي الدروبال، لا أحبذ فكرة استعمال برنامج دون الدخول في تفاصيله خصوصاً إذا كنت من مستخدميه الأوفياء، وأيضاً لتعبر عن وفائك أكثر لهذا البرنامج ينبغي أن تعطي بالمقابل كما تأخذ، بلغة المصدر المفتوح أن تشارك في تطوير البرنامج وللمشاركة في دروبال أشكال مختلفة تتدرج من التوثيق، التصميم، إصلاح العلل، إنشاء وحدات، المشاركة بنواة دروبال.

الحمد لله أني وصلت حالياً للمرحلة الأخيرة، استلمت قبل فترة زمام تطوير وحدة Content Access الشهيرة والتي يفوق عدد مستخدميها ال 28 ألف مستخدم، وحتى عند البحث عن عبارة content access في غوغل والتي هي عبارة عامة تخرج لك هذه الوحدة على رأس النتائج وبشكل مؤرشف لكثرة الروابط المشيرة إليها.

أيضاً سأشارك في نواة دروبال 8 في مجالي التوطين (localization) وسماحيات الوصول (Access Control)، وهما تركيزي الأكبر حالياً في مجتمع دروبال.

لا أريد من هذا الموضوع استعراض بطولاتي وعنتريتي، ولكن ما أريد الوصول إليه هو عبارة دوماً أرددها وهي أننا شعب مستهلك لامنتج، عام لامتخصص، للأسف ليس لدينا المختص بمعنى المختص إلا بما ندر على اﻷقل مقارنة مع دويلة دخيلة في قلب عالمنا العربي تصدر خبراء بشكل يفوقنا بمئات وآلاف المرات، بدايتي في دروبال لم تكن خارقة على الرغم من خبرتي البرمجية، لدي رابط ﻷول وحدة طورتها والمراجعة التي جرت لها من قبل أعضاء مجتمع دروبال (البهدلة :) ) كي أتذكر دائماً من أنا ولا أعتد بنفسي.

ما أريده هو بالفعل أن أرى أناس مختصين بكل مجال، لا بالكلام ولكن بالأفعال وكما قال العم لينوس (Talk is cheap, show me the code).

تستعمل برنامج تحبه؟ شارك في مجتمعه بشكل شبه يومي وستجد نفسك بعد فترة تتدرج في مستوياته لتصل لمستوى الخبير وصدقني عندها ستتهافت عليك عروض العمل ﻷن الخبير تبحث عنه الشركات “بسراج وفتيلة” أي مطلوب بشدة.

]]>
http://khaledalhourani.com/blog/2011/05/03/%d9%85%d8%b3%d8%aa%d9%82%d8%a8%d9%84-%d8%a7%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/feed/ 6
الانتقال للمستوى الأفضل في البرمجة http://khaledalhourani.com/blog/2011/03/14/%d8%a7%d9%84%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%84%d9%84%d9%85%d8%b3%d8%aa%d9%88%d9%89-%d8%a7%d9%84%d8%a3%d9%81%d8%b6%d9%84-%d9%81%d9%8a-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/ http://khaledalhourani.com/blog/2011/03/14/%d8%a7%d9%84%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%84%d9%84%d9%85%d8%b3%d8%aa%d9%88%d9%89-%d8%a7%d9%84%d8%a3%d9%81%d8%b6%d9%84-%d9%81%d9%8a-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/#comments Mon, 14 Mar 2011 14:10:00 +0000 خالد http://khaledalhourani.com/blog/?p=1250 أغلب المبرمجين (معشر المبرمجين) تجد لديهم تفكير مختلف، تفكير عملي، لايحب التكرار ويكره الروتين، لذلك تجد أن أغلبهم غير سعيد بعمله التكراري أو الاجتماعات المملة (تابع ديلبرت للتعرف على بعض من هذه المشاكل).

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

كيف؟ لتحسن مستواك البرمجي والتفكيري عليك بقراءة بعض الكتب من خبراء ومؤسسي لغات البرمجة، أهم هذه الكتب هي:

كتاب Clean Code لروبرت سي مارتن (العم بوب) أحد مؤسسي Agile وخبير البرمجة الغرضية (الكائناتية).

الكتاب يتحدث عن نظافة النص المصدري، وكيف تحسن النص المصدري من السيء إلى المقروء، طرق ونصائح جميلة لتحسين النص المصدري ونظافته.

 

كتاب The Pragmatic Programmer: From Journeyman to Master

كتاب Code Complete لمؤلفه Steve McConnell وهي نتيجة خبرته في العمل لدى مايكروسوفت وشركة بوينغ للطائرات.

سلسلة كتب The Art of Computer Programming حيث ظهرت كخمسة أجزاء وكل جزء يتناول مجالاً أو العديد من المجالات في الخوارزميات البرمجية، من أروع الكتب، قراءته ممتعة وهو من تأليف دونالد كنوث، لقب دونالد هو “أبو تحليل الخوارزميات” ويتمتع بروح مرحة جداً حيث كان (لا أعرف إذا مازال مستمراً) يعطي لكل من يكتشف خطأ مطبعي في مؤلفاته مبلغ 2.56 دولار، وهذا الرقم يمثل 1 دولار بالنظام الستعشري (hexadecimal). يحدث دونالد الأجزاء الخمسة لهذه السلسلة باستمرار لإضافة المستجدات ومراجعة المعلومات، وأيضاً يطمح (إن مد الله بعمره) لنشر الجزء السادس والسابع من هذه السلسلة المتميزة.

هذا غيض من فيض، لايجب أن يتوقف الإنسان عن التعلم في أي مرحلة كانت، حتى لو وصل لمرحلة الخبير أو الاستشاري، العلم لاحدود له. إذا أعجبتكم هذه التشكيلة فيوجد أيضاً تشكيلة ثانية تتناول المواضيع الفلسفية للبرمجة وكيفية تحسين المستوى البرمجي، بالمناسبة الفلسفة من أحب العلوم إلي، ﻷنها وببساطة تتضمن دراسة السلوك البشري والتفكير النقدي وبدون هذه الأشياء لايمكن للإنسان أبداً أن يتطور بمجاله المهني أو الشخصي. أخبروني في التعليقات إن أردتم كي أنشر التشكيلة الثانية ﻷنها ستأخذ مني بعض الوقت لتجميع الكتب التي قرأتها واستحضار عناوينها من ذاكرتي :) ).

]]>
http://khaledalhourani.com/blog/2011/03/14/%d8%a7%d9%84%d8%a7%d9%86%d8%aa%d9%82%d8%a7%d9%84-%d9%84%d9%84%d9%85%d8%b3%d8%aa%d9%88%d9%89-%d8%a7%d9%84%d8%a3%d9%81%d8%b6%d9%84-%d9%81%d9%8a-%d8%a7%d9%84%d8%a8%d8%b1%d9%85%d8%ac%d8%a9/feed/ 10
هل استخدم دروبال 7 أم 6؟ http://khaledalhourani.com/blog/2011/01/29/%d9%87%d9%84-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-%d8%a3%d9%85-6%d8%9f/ http://khaledalhourani.com/blog/2011/01/29/%d9%87%d9%84-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-%d8%a3%d9%85-6%d8%9f/#comments Sat, 29 Jan 2011 11:34:42 +0000 خالد http://khaledalhourani.com/blog/?p=1216 سؤال يطرحه الكثيرون علي في الآونة الأخيرة، السؤال لايمكن الإجابة عنه بجواب قطعي، أقول لهم أنها تعتمد على العديد من الأمور:

  • ماهو الوقت المرصود لمشروعك؟
  • لماذا تريد استخدام النسخة السابعة ولماذا تريد استخدام السادسة؟
  • ماهي نوعية مشروعك؟
  • ما الإضافات التي ستستخدمها في مشروعك؟
  • هل لديك المبرمج المحنك بدروبال أم مبرمج دروبال عادي؟

لماذا تلك الأسئلة؟ ببساطة الدروبال 7 جديدة وجاءت بالكثير من الأفكار الجديدة، البعض منها لم يتح له الاستقرار في نواة الدروبال، فتم نقله لوحدات ليتم تطويرهم لتلك الأغراض، هذه الوحدات معظمها جديد بشكل كلي ولم يجهز بعد للاستخدام النهائي، أيضاً بعض الواحدات الشهيرة لازالت ألفا أو بيتا للإصدار السابع، بالمقابل بعض الواحدات فقط موجودة لعيون الإصدار السابع، لذلك ماهي الإضافات التي ستستخدمها هو من أهم الأسئلة. هل لديك المبرمج القادر على حل المشاكل بسرعة بدل السلبية والطلب من مجتمع الدروبال أن يحلها ﻷجله؟ لماذا تريد النسخة السابعة؟ هل فقط ﻷنها “جديدة”؟

إذن لاحظت أن السؤال ليس بالبساطة التي يبدو عليه، وجوابه ليس نعم أو لا، هناك مبالغ ستدفع ووقت سيبذل في حال كان القرار خاطئاً، لذلك فكر جيداً واستثمر جيداً في التخطيط لمشروعك قبل الاختيار بسرعة غير مدروسة.

]]>
http://khaledalhourani.com/blog/2011/01/29/%d9%87%d9%84-%d8%a7%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84-7-%d8%a3%d9%85-6%d8%9f/feed/ 11
الفهرس ونكهته الجديدة http://khaledalhourani.com/blog/2011/01/29/%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%88%d9%86%d9%83%d9%87%d8%aa%d9%87-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9/ http://khaledalhourani.com/blog/2011/01/29/%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%88%d9%86%d9%83%d9%87%d8%aa%d9%87-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9/#comments Sat, 29 Jan 2011 10:55:05 +0000 خالد http://khaledalhourani.com/blog/?p=1215 فكرة الفهرس هو أن يقدم تجربة جديدة بعالم القراءة سواء عربياً أو عالمياً، على الرغم من توجه الفهرس للكتب العربية إلا أن الخدمات التي سيقدمها فريدة وجديدة، هذه الخبرات ليست جديدة بالمعنى الحرفي ولكنها استقاء من خدمات وتطبيقات شهيرة ككتب غوغل، iBooks، وكندل. تواصلت في البداية مع اﻷخ عبد الله عبيد لتنيسق جهودنا وتبادل الخبرات والنصائح خصوصاً أن مجموعة عزم والتي قدمت مشاريع تقنية رائدة نذكر منها الفتوى كأشهر مثال.

طبعاً الموقع أو المكتبة إن صح التعبير لن يظهر بصورة خارقة دفعة واحدة، كل تلك اﻷمور تأخذ وقت، وقت طويل وجهد، جهد التنفيذ وجهد دراسة جدوى الفكرة ومدى تقبل المستخدمين لها بدل فرضها فرضاً كما يحدث في الكثير من التطبيقات التي تجد بها آلاف الوظائف التي لن تستخدمها بحياتك، اﻷوفيس كأشهر مثال. المكتبة ستظهر خطوة خطوة، ونعد بأن كل خطوة ستكون للأمام بإذن الله.

سأتحدث اليوم عن النكهة الجديدة في الواجهة، وكيفية إمتاع القارىء وعدم تكليفه عناء ضغطات ماوس بدون داعٍ، تسمى أحياناً قابلية الاستخدام، طورت ﻷجل ذلك إضافتين للدروبال وقريباً ستصبح الإضافتين مستقلتين عن الدروبال ليظهرا بهيئة مكتبة جافا سكربت و PHP. الإضافة الأولى تعمل على تقطيع الصفحات الطويلة وإلغاء scroll من الصفحة عن طريق تقسيم الصفحة بشكل ديناميكي وذكي يتحسس لإعدادات الشاشة لديك ولحجم المساحة المرئية من الصفحة في متصفحك، لتقوم بتقسيم الصفحات بشكل آلي وبعدها يمكنك تقليب الصفحات بالضغط على زري الانتقال للأمام والخلف، أو عن طريق مفاتيح لوحة المفاتيح أو عن طريق دولاب الفأرة.

الميزة الثانية هي صندوق الأدوات، حيث يحتوي على أدوات للتحكم بشكل الخط، حجمه، تباعد الأسطر، ولون الصفحة، برمجياً يمكن بكل سهولة إضافة أي عنصر له وإعطاءه قاعدة css ليقوم بتغيير النص إليها مع حفظ التغييرات في session للمستخدم الغير مسجل وجدول المستخدم في حال كان مسجلاً بالموقع.

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

]]>
http://khaledalhourani.com/blog/2011/01/29/%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%88%d9%86%d9%83%d9%87%d8%aa%d9%87-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af%d8%a9/feed/ 3
أداء الفهرس – قاعدة البيانات http://khaledalhourani.com/blog/2011/01/21/%d8%a3%d8%af%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%82%d8%a7%d8%b9%d8%af%d8%a9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa/ http://khaledalhourani.com/blog/2011/01/21/%d8%a3%d8%af%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%82%d8%a7%d8%b9%d8%af%d8%a9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa/#comments Fri, 21 Jan 2011 03:51:38 +0000 خالد http://khaledalhourani.com/blog/?p=1205 السلام عليكم،

تنبيه: الرجاء عدم ترك تعليقات  مثل “مَن أفضل” ومقارنات لامكان لها هنا.

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

اقترح الصديق خالد حبش علي أن أقوم بتجربة MongoDB ولمن لا يعرفها فهي عبارة عن قاعدة بيانات تنتمي لحركة تسمى NoSQL حيث يقول القائمون عليها بأن SQL لغة أكل عليها الدهر وشرب، وعندما بُرمجت كان أداء الأجهزة وسعتها محدود للغاية، بالإضافة إلى تعقيدها وتعقيد تعليماتها (أوافقهم بعض الشيء) لذلك الآن حان وقت استخدام نظام أحدث فأسسوا قاعدة بيانات جديدة اسموها MongoDB وهي عبارة عن قاعدة بيانات مفتوحة المصدر، عالية الأداء، لاتحتاج لتعريف بنية قاعدة بيانات (schema) ووفروا لها دعم (drivers) في أغلب اللغات المشهورة.

لهذه التجربة استخدمت Apache AB على مشروع الفهرس المبني على دروبال 7، والتجربة تمت على قاعدة بيانات MySQL (بدون كاش ثم مع كاش) (الكاش المضمن في دروبال) ومن ثم على قاعدة بيانات MongoDB للجدول الذي يحمل النصوص وهو أكبر جدول (بدون كاش ثم مع كاش).

نتائج التجربة جاءت لمصلحة MongoDB بشكل كبير، حيث تلاحظون الخط الأزرق والزهري هما للمونغو (اﻷزرق بدون كاش والزهري مع كاش)، أما عن المحورين فالمحور اﻷفقي هو عدد الطلبات (requests) وكان عدد بسيط حتى لا أتعب جهازي المسكين، 50 طلب بشكل ثنائي (أي كل طلبين سوياً) والمحور العمودي هو الزمن بالميللي ثانية. للحيادية بالتجربة سنأخذ فقط النتائج بدون الكاش، حيث الكاش المضمن في دروبال سيخزن في قاعدة بيانات MySQL لذلك من غير المنطقي المقارنة بينهم، ستلاحظون أن المونغو كانت طوال التجربة بحدود الواحد ثانية أما MySQL فبحدود 3 ثانية.

الفرق شاسع وكبير، وهنا تتألق المونغو بأدائها، طبعاً لا داعي للتذكير بأن لكل مشروع أدواته الأنسب له، لاتنسوا أن الفيسبوك تستخدم MySQL بشكل كبير.

من ناحية حجم البيانات تشابهت قاعدتي البيانات بشكل كبير حيث كان الحجم شبه متساوي.

يبدو أني سأستخدم المونغو بالإضافة لل MySQL في المرحلة الحالية، ومستقبلاً يمكن اللجوء لحلول أكثر احترافية وتعقيداً مثل memcached و varnish.

سأقوم بنشر عدة تدوينات خلال مرحلة التطوير للفهرس وفي المرحلة المقبلة سأنشر تدوينات عن واجهة المستخدم وقابلية الاستخدام (usability)  (زمنياً خلال التطوير هي تسبق مرحلة قاعدة البيانات هذه)  ولاحقاً البحث (اللغة العربية و solr).

]]>
http://khaledalhourani.com/blog/2011/01/21/%d8%a3%d8%af%d8%a7%d8%a1-%d8%a7%d9%84%d9%81%d9%87%d8%b1%d8%b3-%d9%82%d8%a7%d8%b9%d8%af%d8%a9-%d8%a7%d9%84%d8%a8%d9%8a%d8%a7%d9%86%d8%a7%d8%aa/feed/ 17
صور مسربة من المشروع الجديد http://khaledalhourani.com/blog/2011/01/08/%d8%b5%d9%88%d8%b1-%d9%85%d8%b3%d8%b1%d8%a8%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af/ http://khaledalhourani.com/blog/2011/01/08/%d8%b5%d9%88%d8%b1-%d9%85%d8%b3%d8%b1%d8%a8%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af/#comments Sat, 08 Jan 2011 20:44:12 +0000 خالد http://khaledalhourani.com/blog/?p=1183 صورة مسربة من مشروعي الجديد أثناء مراحل العمل بأوقات مختلفة:

الخطوط اﻷولية للتصميم - إضافة الخط العثماني

التجربة اﻷولية ألفا 1

إضافة تأثيرات إضافية - المفضل لدي هو خلفية الورقة القديمة هذه

التجربة اﻷولية الثانية ألفا 2

المشروع سيكون تجربة جديدة في عالم القراءة والكتب العربية بشكل خاص، سيحبه كل قارىء ويعشقه كل مدمن قراءة :) إنطلاقة البيتا قريباً بإذن الله.

]]>
http://khaledalhourani.com/blog/2011/01/08/%d8%b5%d9%88%d8%b1-%d9%85%d8%b3%d8%b1%d8%a8%d8%a9-%d9%85%d9%86-%d8%a7%d9%84%d9%85%d8%b4%d8%b1%d9%88%d8%b9-%d8%a7%d9%84%d8%ac%d8%af%d9%8a%d8%af/feed/ 3
متابعة لتوليفة تقانات الويب http://khaledalhourani.com/blog/2010/12/17/%d9%85%d8%aa%d8%a7%d8%a8%d8%b9%d8%a9-%d9%84%d8%aa%d9%88%d9%84%d9%8a%d9%81%d8%a9-%d8%aa%d9%82%d8%a7%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d9%88%d9%8a%d8%a8/ http://khaledalhourani.com/blog/2010/12/17/%d9%85%d8%aa%d8%a7%d8%a8%d8%b9%d8%a9-%d9%84%d8%aa%d9%88%d9%84%d9%8a%d9%81%d8%a9-%d8%aa%d9%82%d8%a7%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d9%88%d9%8a%d8%a8/#comments Thu, 16 Dec 2010 23:01:44 +0000 خالد http://khaledalhourani.com/blog/?p=1156 السلام عليكم،

أستأذنت اﻷستاذ المخضرم كفاح عيسى بكتابة هذه المتابعة لمقالته أفضل توليفة لتقانات تطوير تطبيقات الويب لعام 2010، حيث رغبت بالتوسع في بعض الأمور التي ذكرت فيها وأيضاً التعليق على البعض الآخر.

بداية أوافق تماماً فكرة الابتعاد عن الجافا، بالأحرى الابتعاد عن كافة التعقيدات والاتجاه للأبسط. ميزة الجافا الرئيسية هي الشركات الكبيرة التي تدفع بعجلة تطويرها حالياً، في السابق كانت تمثل الثورة التقنية على السي، أما اليوم مع تخمة لغات البرمجة ووجود عشرات البدائل أصبح من الواجب إعادة الحسابات وتجريب بعض اللغات التي سطع نجمها، خبرتي البرمجية بدأت مع البيزك، الباسكال ثم السي والسي++ والديلفي، بعدها الجافا والبي إتش بي والبايثون. مع هذه المجموعة من اللغات خلصت إلى الآتي:

- لغة البيزك انتهت صلاحيتها بكل بساطة، تعلمتها في الثانوية وفقط.

- لغة الباسكال (بشكل خاص التيربو باسكال) لغة تعليمية رائعة لهذا الغرض، لايوجد فيها تعقيدات البرمجة الغرضية التوجه (الشيئية)، الديلفي هي امتداد للباسكال لدعم البرمجة الغرضية والواجهات الرسومية وكان من المؤلم مشاهدتها وهي تموت ببطىء (بالمناسبة موتها جاء نتيجة سلسلة أزمات مالية حلت بشركة بورلاند وليس بسبب عيب في اللغة)، من اﻹنصاف أن نذكر أن الجافا والسي شارب استمدت العديد من الأفكار منها. بصراحة لغة لايسعني الكلام عنها بأسطر يكفي أن مبتكر التيربو باسكال (أنديرز) وأحد رؤوساء شركة بورلاند التي كانت تقف وراء الديلفي وهو الآن (Lead Architect) للغة السي شارب في مايكروسوفت، المبرمج الآخر حائز على جائزة Turing Award وهي من أكبر الجوائز في عالم البرمجة والكمبيوتر.

- السي لغة رائعة، صعبة عند التعمق بها ولم أجد الفرصة ﻷتابع بها، السي++ تضيف طبقة لابأس بها من التعقيد، أيضاً لاننسى مشكلات مترجم اللغة، فهناك المترجم الخاص بمايكروسوفت ومترجم GCC والاختلافات بينهم لينتهي الأمر باقتراح معايير قياسية لها.

- الجافا لغة ذات إمكانيات ضخمة، أظن أنها ضخامتها وتعقيدها جعل من الصعب مقارنتها مع مرونة باقي اللغات، الشيء الرئيسي الذي يبقيها واقفة على قدميها هو الدعم الكبير لها من IBM وبعض الشركات الآخرى.

- البي إتش بي لغة هوجمت كثيراً ثم أثبتت للجميع أنها لاتقل أهمية عن باقي اللغات الشهيرة، ميزتها الرئيسية التي جعلتني أكمل بها معظم عملي اليومي هي مرونتها العجيبة وقواعدها السلسة البسيطة التي تبدو لمبرمج من لغة متقدمة آخرى على أنها بدائية وهزيلة ولكن بالعكس قوتها تنبع من بساطتها، بالطبع لها سيئاتها وأظن أكبرها دعمها المشتت للترميز العالمي الموحد UTF وأسماء التوابع فيها!! ولكن بالمقابل حسناتها تطغى بشكل كبير على سيئاتها.

- البايثون لغة مازالت صعبة الهضم علي حسب تعبير اﻷخ كفاح، لحد الآن لا أستسيغ فكرة المسافات بتحديد المجالات البرمجية! ربما سأمنحها فرصة ثانية في المستقبل القريب.

لايمكنني الحكم على روبي كوني استخدمتها ﻷسابيع معدودة فقط قبل التركيز بشكل كامل على البي إتش بي، لكنها لغة “شبابية”، حيث تجد معظم الأفكار الجديدة والغريبة تبرمج بها ربما لكونها حديثة وسلسة وتجتذب محبي الماك :)

أعود للبي إتش بي، فقد أخبرني الأخ خالد الشمعة بأنه هناك توجه كبير لتغيير التوجه القديم في النسخة الجديدة 6 والبدأ ربما بتوجهات جديدة، أيضاً لم أجد للنسخة 5.3 فائدة كبيرة من ناحية دعم البرمجية الغرضية حيث أني أصبحت من المعادين لاستخدامها في كل مكان وزمان وتابع مهما صغر أو كبر! البرمجة الغرضية تضيف طبقة تعقيد كبيرة، لاتستخدمها إلا لحالات خاصة جداً، هذا رأي شخصي نتيجة تجربة طويلة مع البرمجة الغرضية، أيضاً لينوس تورفلاد مبرمج نواة اللينوكس لديه نفس القناعة، على العكس منه يوجد تيار معارض، ويوجد تيار وسط. شخصياً أميل لعدم استخدام البرمجة الغرضية إلا في حالات الضرورة القصوى، أي أميل قليلاً إلى رأي لينوس.

في تتمة حديث الأخ كفاح عن إطار الويب الذي استخدمه، وددت فعلاً أن أجرب إطار الويب يي على الرغم من طرافة اسمه بالنطق خصوصاً باللهجة الشامية حيث يوجد نفس الكلمة بالعامية! وحدثني عنه كثيراً خلال لقاءنا بمسابقة يللا ستارت آب ويك إند. على الطرف الآخر حديثه عن الدروبال أثار مشاعري، نعم لدروبال بعض المساوىء ولكن نصها المصدري من أفضل وأرقى النصوص المصدرية التي قرأتها يوماً، وبالفعل أنصح من يريد أن يتقن لغة البي إتش بي أن يشاهد نصها المصدري، نظام hooks فيها مميز، سلاسة تطويعها لعمل أي شيء كبيرة ولكن تحتاج لبعض الصبر.

بالنسبة لتتمة حديثه عن قواعد البيانات، فأفضل تجربة ماريا فهي نتاج مبرمجي MySQL الأصليين وبالتأكيد لديهم خبرة لاتقدر بثمن. سبب آخر يدعوني لاستخدامها وهو دعم الدروبال 7 لها.

أما نظام التشغيل لدي فهو kubuntu، سهل بسيط ولطيف، لكن عندما تقع في مشكلة تحتاج ربما ليومين لإصلاحها ولكن عند إصلاحها لاتعود أبداً. الطريف في الأمر أن العكس يحدث في الويندوز، يبدأ معك بعد تثبيته بشكل لطيف ثم تتزايد الأخطاء تباعاً لتضطر بعد فترة أن تعيد تثبيته من جديد!

وبيئة التطوير لدي هي المحرر الافتراضي في كوبنتو kate وأحياناً vim، ربما سأجرب Emacs يوماً ما ولم أعد أكترث للمحررات البرمجية المتقدمة IDE مثل النت بينز والإيكلبس.

خلاصة حديثي هو أن توجهي الحالي نحو البساطة قدر المستطاع ﻷن التعقيد يبطيء العمل بدل أن يسرعه بسبب عشرات الميزات التي تحتاج لتفقدها والإضافات والبنى البرمجية المعقدة إلخ إلخ. أيضاً المبرمج لايجب أن يتقيد ببيئة ما أو لغة ما بل يجرب حتى يجد ضالته (ستشعر فوراً بهذا الشعور!).

شكراً كفاح على تحفيزك لي في مقالتك لكتابة هذه التدوينة!

]]>
http://khaledalhourani.com/blog/2010/12/17/%d9%85%d8%aa%d8%a7%d8%a8%d8%b9%d8%a9-%d9%84%d8%aa%d9%88%d9%84%d9%8a%d9%81%d8%a9-%d8%aa%d9%82%d8%a7%d9%86%d8%a7%d8%aa-%d8%a7%d9%84%d9%88%d9%8a%d8%a8/feed/ 11
وحدة Scrollable Content لدروبال http://khaledalhourani.com/blog/2009/12/26/%d9%88%d8%ad%d8%af%d8%a9-scrollable-content-%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/ http://khaledalhourani.com/blog/2009/12/26/%d9%88%d8%ad%d8%af%d8%a9-scrollable-content-%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/#comments Sat, 26 Dec 2009 18:31:49 +0000 خالد http://dev.holooli.com/?p=1033 السلام عليكم،
مازالت الدروبال تحقق نجاحاً إثر نجاح، ومن أكبر أسرار نجاح هذا النظام هو المجتمع الكبير والمتعاون لدروبال. هذا المجتمع يغريك بالعمل والتعاون معهم، فوق هذا المجتمع الكبير جداً من الأعضاء (يقترب عدد أعضاء drupal.org من نصف مليون) يوجد طبقة إدارية متعاونة ومتابعة ﻷبعد الحدود، حيث تجدهم يومياً على تواصل ومعرفة دائمة بما يجري في مجتمع الدروبال وأظن أن هذا هو سبب نجاحها.
انتهيت منذ فترة قريبة من برمجة وحدة للدروبال سميتها Scrollable Content حيث تعمل هذه الوحدة على عرض المواضيع بطريقة جميلة (سلايدر slider) بالاعتماد على مكتبة jQuery Tools، بدون الكثير من التفاصيل إليكم صورة لتتضح الصورة :)

وأيضاً في موقع العرض: http://drupal.holooli.com

من أهم ميزات Scrollable Content:
1- السرعة في حركة التقليب (Sliding)
2- يمكنك استعمال دولاب الفأرة (scroll) لتحريك الصور (أي المقالات)
3- يمكنك تحديد نوع\أنواع محتوى و\أو تصنيف\تصنيفات لعرضها في قطعة (block) هذه الوحدة
4- يمكنك (ويفضل) استخدام وحدة ImageCache لعرض الصور بشكل أفضل.
5- يوجد حالياً نوعين للحركة أفقية وعمودية ويمكن تغييرهم وتكييفهم من خلال CSS كما تريد.

الوحدات في دروبال تخضع لمراقبة دقيقة قبل نشرها وبعد نشرها أيضاً، بعكس الووردبريس حيث تكون العملية آلية ولايمكنك التبليغ عن الأخطاء في نفس الموقع (بدأ ووردبريس الآن بإضافة قطعة صغيرة Compatibility في صفحة الإضافة للتبليغ عن الأخطاء).

وحدة Scrollable Content لاتحتاج لخبرة كبيرة بالدروبال لاستعمالها وبعد فترة قريبة سأضيف توثيق كامل لكيفية استخدامها ومقطعاً تعليمياً أيضاً.

أرجو ممن جرب هذه الوحدة أن يخبرني عن الإيجاببيات والسلبيات فيها.

ملاحظة: بالنسبة لترجمة الدروبال فالموضوع معقد بعض الشيء خصوصاً عند التنسيق مع باقي المترجمين، سأبلغكم فور الانتهاء من تعريبها بشكل كامل.

]]>
http://khaledalhourani.com/blog/2009/12/26/%d9%88%d8%ad%d8%af%d8%a9-scrollable-content-%d9%84%d8%af%d8%b1%d9%88%d8%a8%d8%a7%d9%84/feed/ 22
دول العالم باللغة العربية http://khaledalhourani.com/blog/2009/08/26/%d8%af%d9%88%d9%84-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85-%d8%a8%d8%a7%d9%84%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%b9%d8%b1%d8%a8%d9%8a%d8%a9/ http://khaledalhourani.com/blog/2009/08/26/%d8%af%d9%88%d9%84-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85-%d8%a8%d8%a7%d9%84%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%b9%d8%b1%d8%a8%d9%8a%d8%a9/#comments Wed, 26 Aug 2009 14:53:24 +0000 خالد http://dev.holooli.com/?p=995 السلام عليكم،
احتجت قبل فترة إلى قائمة بدول العالم باللغة العربية، للأسف لم أجد ذلك بالعربية ووجدت الكثير بلغات مختلفة. قمت بعد ذلك بتجميع الدول من هنا وهناك حتى أصبح لدي ملف بأغلب دول العالم.
عالمنا

في هذه الدول لايوجد شيء اسمه إسرائيل بل يوجد فلسطين، أيضاً يوجد بعض الدول والتي لم أسمع بها في حياتي كلها لذلك لاتستغربوا من بعض الأسماء!

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

تحديث: شكراً لكل من ساهم، النسخة الموجودة حالياً أفضل من السابقة وطابقتها بشكل شبه كلي مع الويكيبيديا.

إذا وجدتم خطأ أو دولة غير مذكورة أو دولة لايجب أن تذكر (مثلاً هي مدينة وليست دولة) فأخبروني حتى أعدله.

]]>
http://khaledalhourani.com/blog/2009/08/26/%d8%af%d9%88%d9%84-%d8%a7%d9%84%d8%b9%d8%a7%d9%84%d9%85-%d8%a8%d8%a7%d9%84%d9%84%d8%ba%d8%a9-%d8%a7%d9%84%d8%b9%d8%b1%d8%a8%d9%8a%d8%a9/feed/ 22