يناير 31، 2010

سلسلة بايثون للمبتدئين - 06

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

لقد تطرق الصديق أحمد يوسف للدوال و البرمجة الكائنية التوجه في كتاب بايثون و على منتدى programming-fr34ks.net مستخدما أسلوبا سهلا و واضحا، و لذلك لا أرى أية فائدة في كتابة تدوينات جديدة للمبتدئين و أفضل أن أخصص ذلك الوقت لمواضيع و أمثلة برمجية أكثر إفادة.

ستجودن الموضوع الذي تطرق إلى الدوال هنا.

و البرمجة الكائنية المنحى في:
هل من رأي آخر؟


الإصدارات المرتقبة 31/01/2010

الإصدارات المرتقبة في الأيام و الأسابيع القليلة المقبلة هي:
  • بيئة التطوير Eclipse 3.5.2 (إصدار تصحيحي)
  • الحزمة المكتبية OpenOffice.org 3.2 (إصدار جديد). توصلت به في تحديثات اليوم و هذا يعني أنه سيتم الإعلان عنه قريبا. يحمل هذا الإصدار المزيد من التوافقية مع الحزمة المكتبية Office 2003/2007 بالإضافة إلى تحسينات في الأداء و مزيا جديدة هنا و هناك.
  • البيئة المكتبية كيدي 4.4 KDE (إصدار جديد). المزيد و المزيد من الخصائص و اللمسات الجمالية الجديدة :)
  • نواة لينوكس 2.6.33 Linux (إصدار جديد)
من جهة أخرى هنالك أشياء أخرى لم يتسنى لي بعد تجربتها مثل:
  • نظام فري بيئسدي FreeBSD 8.0، بالإضافة إلى كل من Slackware 13، Gentoo 10.1 و Sabayon 5.1. كل التوزيعات (ما عدى FreeBSD فهو نظام) يمكن إعدادها لإستقبال التحديثات المستمرة، بالإضافة إلى أطماع شريرة أخرى :)
  • المكتبة البرمجية Qt4.6 و PyQt4.7 خصوصا لتجربة QML.
قضيت الفترة الأخيرة و ما زلت في تجربة البرمجة المكتبية متعددة المنصات مستخدما كلًا من لغة روبي Ruby و بايثون و المكتبات الرسومية مثل SWT, Swing, WX, ... بالإضافة إلى برمجة و تطوير المواقع بـإطار العمل Ruby on Rails, Django و CodeIgniter.

النتيجة؟
روبي و بايثون أكثر لغتين تشابها، كلاهما جذاب، ممتع و عملي. روبي أكثر مرونة و يسمح بحركات النينجة :) لكن عليك أن تعي ما تفعله خصوصا عند اللعب بالكائنات المدمجة. بايثون لا يقل مرونة لكنه يفضل "التحفظ" في بعض المسائل ليضمن عمل البرنامج كما تتوقع. لهذا السبب بايثون أنسب للمشاريع الجماعية.
بالنسبة لي لن أغوص في روبي و روبي أون ريلز مجددا إلا بعد الإصدار الثالث لهذا الأخير.

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

بالنسبة لإطار العمل RoR (إختصار لـ Ruby on Rails) رغم تجربتي البسيطة و المتواضعة له فإنه روعة في تطوير المواقع، لكن ما لاحظته هو غياب الإستضافة المجانية باستثناء AmbitiousLemon.
بالنسبة لـ Django لا أعرف ما أقول، علي تعلم المزيد.
CodeIgniter إطار عمل خفيف الوزن، سهل التعلم بدون لف و دوران، الأنسب لمن يريد الغوص في إطارات العمل بلغة PHP.

إدا ما سأركز عليه هو:
بايثون Python،
باي كيوت PyQt،
دجانجو Django,
المزيد من PHP، و محاربة أمية JavaScript.
و عند الملل سألقي نظرة على Haskell, Erlang, Groovy و Appcelerator Titanium و Android Apps.

يناير 14، 2010

كيف تقوم بتثبيت توزيعة دبيان دائمة التحديث Debian Testing

إدا كنت من الذين يعرفون ما هو دبيان debian و تريد فقط معرفة طريقة تثبيت الإصدار الدائم التحديث فيمكن أن تتخطى المقدمة التعريفية "المملة" التالية:

في أيامنا هذه لابد لأي شخص مهتم بالتقنية و المعلوميات أن يكون على الأقل قد سمع عن نظام يدعى لينوكس أو يونكس أو شيء كهذا، (أعرف أنه تعميم مبالغ فيه :) ) و عندما نبحث قليلا على جوجل سنجد أن هذا لينوكس يدعى أحيانا بـ أوبنتو ubuntu. إن كنت من هؤلاء فسأحاول أن أوضح لك الأمور قليلا:
  • لينوكس هو نواة نظام تشغيل مفتوح المصدر يشتغل تقريبا على جميع أنواع أجهزة الحاسوب. لينوكس بالإضافة إلى أدوات جنو GNU يمثلون أساس كل توزيعة (distribution) مهما إختلفت تسمية هذه الأخيرة.
تذكر جيدا : رغم تعدد التوزيعات فهي تعتمد على نفس الشيء و هو نواة لينوكس التي يمكن الحصول عليها من موقع kernel.org للإطلاع على الشفرة المصدرية بهدف الدراسة، الفضول أو المساعدة على التطويرها.
  • أوبنتو هي أشهر توزيعة جنو/لينوكس في أيامنا هذه، متوفرة بالمجان يمكن تحميلها من على موقع ubuntu.com أو إن تعذر عليك ذلك يمكن أن تطلب القرص المدمج لتثبيت أوبنتو ليصلك إلى باب المنزل مجانا. و قد سبق لي و أن دونت حول طريقة تثبيت أوبنتوا. توزيعة أبنتو تنحدر من دبيان و تقوم بعملية تزامن (synchronization) كل ستة أشهر مع المستودعات الغير المستقرة لهده الأخيرة. (سأتحدث عن المستودعات الغير المستقرة بعد قليل)
صدق أو لا تصدق: بإستخدام طريقة كوكومو لتقدير قيمة توزيعة ديبان لينوكس و البرمجيات المتاحة عليها من حيث عدد الأسطر البرمجية و قيمتها المادية، كانت النتيجة 13 مليار دولار. نعم هذه هي الكلفة لإنشاء توزيعة مثل دبيان. كل هذا نحصل عليه بالمجان و تقريبا بدون جهد منا.

أكمل بقية الموضوع

يناير 07، 2010

سلسلة بايثون للمبتدئين - 05

في البداية آسف إن تأخرت عن تكملة هذه السلسلة التعليمية الخاصة ببايثون للمبتدئين. اليوم سنتعلم إستخدام الحلقات (loops) و الجملة الشرطية (If)، لن يأخذ ذلك منا الكثير من الوقت و سيكون ممتعا.

المقدمة:

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

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

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

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

=> تذكر جيدا أن الحلقات تجعل من الروتين و المهام الروتينية أمرا سهلا و غايتا في البساطة و السلاسة.

أكمل بقية الموضوع

يناير 05، 2010

نظرة على QtJambi من خلال Scala، JRuby و Jython

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

في الفترة الاخيرة إستخدمت منصة ويندوز Windows و منصة Mac OS X بشكل مطول للقيام ببعض الأعمال البرمجية، و تلك كانت المناسبة للنظر إليهما من جديد من منظور مبرمج. لن أدعي أن هتين المنصتين لا يصلحن لشيء و أنهما من شركتين احتكاريتين ووو (كما يتصور بعض المتعصبون)، بل بالعكس الأدوات المتاحة على هتين المنصتين جذابة و متميزة و يكفي أن أغلب البرامج المسوقة موجهة لهتين المنصتين، لكن ثم لكن :) لم أنجذب إليهما و لم أشعر بنفس الغنى البرمجي الذي تتيحه منصة جنو/لينوكس و في النهاية زاد إحساسي بالسعادة لأنني اخترت الإنتقال إلى منصة جنو/لينوكس يوما. نعم يمكنني القول بان منصة جنو/لينوكس هي أفضل منصة برمجية لكن لا ينطبق نفس الأمر بالنسبة للإستخدام المكتبي اليومي، ليس لأنها تعاني من خصاص ما بل لأنها ستدفعك و أحيانا ستفرض عليك تعلم أشياء جديدة أنت (من منظورك كمستخدم) في غنى عنها و هدا ما لا يقبله البعض ممن يحملون شعار "لا تجعلني أفكر!" أو "don't make me think!"

قبل أن انتقل إلى نقطة أخرى لذي ملاحظتين: الاولى ويندوز7 أفضل بكثير من Vista و أفضل من XP. و الثانية محرر Eclipse أفضل من TextMate و يعوضه في كل شيء بالنسبة لمستخدمي Mac OS X. و الملاحظة الثالثة :) خط monaco يناسب البرمجة للوضوح معالم حروفه.

لإكمال القراءة