الأربعاء، 18 يناير 2012

من محاسن ubuntu

كنتُ قد تعودتُ في الفترة السابقة علي انتقاد توزيعات القنو/لينوكس بشدة، لذلك فاليوم أريد أن أتحدث عن إحداها مادحاً لها، حيث أريد أن أوضح المحاسن التي رأيتها في توزيعة أوبونتو لينوكس بعد فترةٍ بسيطةٍ من استعمالي لها.

فمن هذه المحاسن أن نظام أوبونتو قنو/لينوكس:
  1. مستقرٌ كخير ما يكون الاستقرار، و هذا كما تعلمون مهمٌ جداً بالنسبة لي خاصةً بعد التجربة المريرة لي مع آخر إصدارات واجهة الـKDE.
  2. يستجيب (دون الحاجة لأي ضبطٍ سابقٍ) لضغطات الأزرار ذات المهام الخاصة في لوحة المفاتيح. مثل زر (إبدأ)، و الآلة الحاسبة، و البريد الإليكتروني، و المنزل home، و غيرها. و هذا يجعله كالويندوز في سهولته في التعاملات السريعة مع ما تكثر الحاجة للتعامل معه.
  3. بسيطٌ و سهل، ربما يكون أبسط مما ينبغي و لكن هذا لا ينفي أن هذه ميزةٌ هامة؛ إذ أن البساطة في حد ذاتها غير سيئة بل علي العكس هي جيدة، و لكن المبالغة فيها هو السيئ دوماً.
  4. لم أحتج إلي أي برنامجٍ إلا و استطعت تنزيله من مستودع التوزيعة، و هذه ميزةٌ ضعيفةٌ جداً؛ لأنني قد أحتاج اليوم أو غداً إلي برنامجٍ ما فلا أجده في مستودعات التوزيعة، و حينها سأعاني الأمرين حتي أستطيع تنصيب البرنامج (إن استطعت فعل ذلك من الأصل).
  5. بالطبع من أكثر الأشياء التي أعجبتني في شكل واجهة أوبونتو هو الشريط العلوي الدائم؛ و هذا مما أُحب في نظام الماك أيضاً و كنت قد حولتُ شكل الـKDE إلي ما يشبهه حينما كنت أستخدم نظام kubuntu ^_^

    في النهاية: لا تعتادوا علي هذا التدليل و المدح؛ فربما يحدث بيني و بين أوبونتو ما أكره فأقلب له ظهر المجن :)

الاثنين، 16 يناير 2012

مايكروسوفت تحتفل بمرور 20 عاماً علي ولادة اللينوكس ^_^

مايكروسوفت تهنئ مؤسسة اللينوكس The Linux Foundation بمناسبة مرور 20 عاماً علي ولادة نواة اللينوكس !
خبرٌ غريبٌ جداً، أليس كذلك ؟!
الغريب كذلك أن فريق تطوير برنامج internet explorer في مايكروسوفت يُرسل كل فترةٍ بكعكةٍ لفريق تطوير برنامج firefox عند خروج إصداراته الجديدة !
بالنسبة لي حينما تصدر مثل هذه الأفعال عن مؤسسة مايكروسوفت كاملةً يكون من الواضح أنهم يتحايلون، و ليست هذه الأمور إلا أموراً دعائية؛ فمايكروسوفت تعلم أن سمعتها تسوء يوماً بعد يوم و لذلك تحاول تجميل صورتها أمام الرأي العام بشتي الطرق، و خاصةً إذا شاهدنا كيف يحاول ريتشارد ماثيو ستولمان و مؤسسة البرمجيات الحرة شن حربٍ شرسةٍ عليها و تشبيهها بالأخطبوط شديد الفتك. 
لكن حينما تصدر عن فريقٍ برمجيٍ في مايكروسوفت فالأغلب أن يكون هذا ناتجاً عن روحٍ وديةٍ فعليةٍ بين الفريقين، و حبٍ للمنافسة و إذكاء روح التحدي.
أظن أنه من الجيد أن يكون هناك النوعان من أنماط الحياة البرمجية؛ فالكاسب في النهاية هو المستخدم النهائي الذي سيمتلك قاعدة اختياراتٍ أوسع، و يمكنه ساعتها الحصول علي معظم ما يريد (إن لم يكن كله).

أترككم مع الفيديو لتستمتعوا به (أعتذر عن الموسيقي المُصاحِبة):

الأربعاء، 11 يناير 2012

نقد الدامجات unions في لغتي الـC و الـ++C

نبذةٌ بسيطة:
الـunions فى الـC و الـ++C هى مكوناتٌ الفكرة الرئيسة من ورائها هي إتاحة الفرصة لاستخدام نفس الحيز من الذاكرة بأكثر من متغيرٍ لها أكثر من نوعٍ مختلف، يعنى أن الدامج عبارةٌ عن حاويةٍ تُشبه الصنف class من حيث أنه يتم داخله تعريف متغيراتٍ مُكونةٍ له، و لكنه يختلف عنه فى أن الصنف يعتبر كل متغيرٍ مُعَرَّفٍ منفصلاً عن المتغيرات الأخرى من حيث حيز الذاكرة المحجوز له و لها، بينما فى الدامج يتم إعطاء كل تلك المتغيرات مساحةً مشتركةً فى الذاكرة تبدأ من نفس النقطة و تنتهى حسب مساحة ذلك المتغير (و التى تتأثر بنوعه).
يعنى لو أننا كتبنا ما يلى:
فإن معنى هذا أننا نُعَرِّفُ متغيراً يسمى var1 من النوع DATATYPE يمكننا التعامل معه على أساس أنه من النوعchar أو النوع int أو النوع long أو النوع float أو النوع double، فى حين أن القيمة التى نتعامل بها كل مرةٍ هى نفس القيمة و لكن مع اختلاف المساحة التى نتعامل بها منها.
و لمزيدٍ من التوضيح يمكنكم مراجعة هذا الرابط في موسوعة الويكيبيديا:
http://en.wikipedia.org/wiki/Union_%28computer_science%29

لا ينبغي أن يُسمح بها في اللغات الجديدة للأسباب التالية:
إن الأسباب التى يسوقها الشارحون للبرمجة بلغتى الـC و الـ++C فى كتبهم لوجود الدامجات و مدى فائدتها لا تُسمن و لا تُغْنِى من جوعٍ أمام التحقيق و التدقيق لتغير الزمن و اختلاف الظروف؛ فما وجدت منها غير التالي:
  1. أن الدامجات تُوفر فى استخدام الذاكرة حينما أريد التعامل مع قيمةٍ ما بأكثر من أسلوب؛ فبدلاً من إشهار متغيراتٍ مختلفة الأنواع بشكلٍ منفصلٍ و أقوم كل مرةٍ (حينما أحتاج إلى التعامل مع القيمة على أنها من نوعٍ معينٍ) بوضعها فى المتغير الذى ينتمى إلى ذلك النوع، و من ثم أقوم بإجراء العمليات على ذلك المتغير، بدلاً من كل هذا فإننى أقوم مباشرةً بوضع تعريفٍ لدامجٍ يدمج بين تلك الأنواع فى مكانٍ واحدٍ؛ لأتمكن من التعامل مع القيمة المُخَزَّنة فى داخله بأى شكلٍ أريده.
    و هذا السبب ضعيفٌ جداً فى هذه الأيام؛ فهذا القول كان صحيحاً حينما كانت الأجهزة التى تتم البرمجة لها لا تحتوى من الذاكرة إلا على 64 كيلو بايت: يستغل نظام التشغيل مقداراً صغيراً منها و تستغل البرامج العادية الباقى، و هذه هى مواصفات أجهزة الـPDP11 التى كانت أوائل برامج الـC مكتوبةً لها ! و لكننا الآن نعيش فى زمنٍ مختلفٍ ليس من الممكن فيه أن تُوهمنى أنك حينما تكتب برنامجاً كالسابق سوف تُوفر لى الكثير من الذاكرة المهدرة ! بل العكس أنك ستحصل على برنامجٍ غريبٍ سئ التكوين مقابل الحصول على بضعة بايتاتٍ لا تساوى أى شئٍ بالمقارنة مع أقل الإمكانيات فى سعات ذواكر الحاسوب الموجودة اليوم !
    إذاً فهذه الفائدة التى كانت موجودةً للدامجات قد انتهت إلى غير رجعة، و كان من المحتم على مصممى لغات البرمجة التنبه إلى هذا و إبعاد ذلك المكون الزائد عن اللغات الجديدة، لا ضمه إليها كما حدث مع الـ++Cالتى سارعت إلى ضمه إليها و كأنه كنزٌ ثمين ! و ذلك على الرغم من أنها قد صُمِّمَت بعد فترةٍ كبيرةٍ من ظهور الـC و حينما لم يكن القلق على إهدار ذاكرة الحاسوب كما كان أيام الأجهزة العتيقة فى الأزمان الغابرة لتصنيع الحواسيب !
  1. الدامجات أكثر كفاءةً من استدعاء الإجراءات التى تُحَوِّل بين أنواع المتغيرات. أى أنه بدلاً من استدعاء إجراءات التحويل بين أنواع المتغيرات فى كل مرةٍ نحتاج فيها إلى تحويل قيمةٍ ما من نوعٍ إلى نوعٍ آخر فإننا نستخدم المتغيرات الموجودة فى الدامج مباشرة، و نستخدم منها ذلك الذى له النوع الذى نرغب فى التعامل مع القيمة على أساسه.
    و هذا قولٌ آخرٌ ضَعُفَ بتغير الزمن، حيث أن مثل هذه التوفيرات الغريبة لا تُقدم تلك النتائج الخارقة التى تُغرى ببذل الجهد و التضحية للحصول عليها؛ فما الذى سيضر البرنامج إذا ما استدعى إجراء تحويلٍ عشر مراتٍ أو أكثر ؟! و ما التأخير الذى سيحدث عندئذٍ و كيف سيؤثر ذلك التأخير على زمن تنفيذ البرنامج بصورةٍ  و لو طفيفة ؟!

الأربعاء، 4 يناير 2012

مرحباً k-nity ^_^

السادة القراء: مرحباً بكم مرةً أخري في حلقةٍ جديدةٍ من مسلسل "وائل و القنو/لينوكس". 

في الحلقات الماضية عرفتم أنني و نظام القنو/لينوكس نرتبط بعلاقةٍ معقدةٍ من الحب و الكره جديرة بالأساطير و الملاحم !؛ فأنا أرفض استعمال الويندوز بسبب ثمنه الباهظ و تكلفة برامجه و كذلك بسبب ضعفه الشديد تجاه الفيروسات، و كذلك أنا أتململ من استعمال القنو/لينوكس بسبب نقاطٍ كثيرةٍ وضعتها في الموضوع قبل السابق (لن أضعها هنا حتي لا أثير مللكم ^_^).
المهم أنني في آخر مرةٍ تحدثت فيها عن تلك العلاقة أخبرتكم أنني أواجه صعوباتٍ جديدةٍ مع واجهة الـKDE التي عدت إليها مرةً أخري، و كانت تلك المصاعب تتمثل في خللٍ في عمل برنامج مركز البرمجيات kpackagekit، و هو البرنامج الخاص بالتعامل مع البرامج المُنَصَّبة علي الجهاز و تلك التي يمكن تنصيبها install، من حيث التنصيب و الحذف و التحديث. لكن الغريب أنه بدأ يتصرف بطريقةٍ غريبةٍ جداً نتيجةً لعدم استطاعته فتح ملفٍ فيه معلومات حزم البرمجيات المختلفة علي الجهاز ! و بعد عدة محاولاتٍ لي معه أدركت أن الأمل في معالجة الخلل في النظام الحالي صعبٌ جداً، و إن كان متاحاً فسيستغرق وقتاً و جهداً كبيرين في البحث عنه ثم في تطبيقه.
و لما لم يكن عندي وقتٌ أو بالٌ رائقٌ لهذه السخافات فقد قررت أن أستعمل توزيعة ubuntu !
أعرف أن نفراً كبيراً منكم يشد شعر رأسه في غيظٍ لأنني انتقدت ubuntu بشدة في الموضوع قبل السابق، و لكن الواقع فرض عليَّ هذا الاختيار؛ فبعد المحاولات الفاشلة لمعالجة الخلل في ملف بيانات الباقات (أو هذا ما أحسبه) قررت تغيير التوزيعة نهائياً و العمل علي توزيعةٍ مستقرة، بحيث أنه متي أصبح لدي بعض الفراغ فسأقوم باتخاذ القرار الحاسم في هذه المسألة من بين الاختيارات المتاحة (و هي: العودة للويندوز، استخدام توزيعة قنو/لينوكس بها واجهة الـKDE و التضحية بالاستقرار كما كنت قد قررت قديماً، استخدام توزيعةٍ بواجهةٍ أخري غير الـKDE مع التضحية بفارق القوة و الجمال كما أفعل الآن).
و لذلك قمت بتنصيب توزيعة ubuntu (لأنها أحدث توزيعةٍ لدي).

و لكني قمت بإحداث كثيرٍ من التغييرات و الإضافات لها، حيث قمت بتنصيب برامج عدة كنت قد تعودت عليها من استخدامي لتوزيعة kubuntu، و هي برامج:
  • متصفح الملفات dolphin
  • مشغل الصوتيات و المرئيات Smplayer (قبل أن أعتاد علي استخدام banshee الموجود في ubuntu)
  • قارئ ملفات الـpdf الخفيف okular
  • مستعرض الصور Gwenview
و قد أسميت هذا المزيج من واجهة الـunity و برامج من الـkde بالـk-nity  ^_^، و هو الإسم الذي يوضح أن الـunity هي الغالبة و لم آخذ من الـKDE إلا أشياء قليلة جداً.

و الانطباعات الأولي لديَّ عن التوزيعة بعد فترةٍ بسيطةٍ من استعمالها هي كما يلي:
  • التوزيعة مستقرةٌ بالفعل، و هذا ما يدعوني للتمسك بها حالياً بشدة؛ فكما قلت سابقاً لا وقت لدي لانهيارات الـKDE و مشاكلها التي يبدو أنها بلا نهاية.
  • البرامج المرفقة بالتوزيعة ضعيفةٌ جداً بالمقارنة مع البرامج المرفقة بالتوزيعات التي تستخدم واجهة الـKDE، و أوضح الأمثلة علي الفرق: المقارنة بين متصفحي الملفات dolphin و nautilus الخاصين بالـKDE و الـunity علي الترتيب.
    و حتي لا يُجنُِّ المرء بسبب هذا فلا مهرب من تنصيب البرمجيات "الحقيقية" و استبدالها بالأخري شديدة الضعف كما فعلتُ تماماً.
  • إمكانات الواجهة من الناحية الجمالية لا تُقارن حتي بتلك الخاصة بالويندوز !؛ و الغريب أنك تجد من ينافح عن جمال هذه الواجهة و يعتبرها أجمل من الـKDE ذاتها ! و هذا يذكرك بالحكمة القائلة (لولا اختلاف الأذواق لبارت السلع)، أو بالحكمة المصرية العامية (كل فُولة و لها كَيَّال) ^_^

المضحك أنني بعد تنصيب الـdolphin حدثت معي بعض المشاكل مثل مشكلة أيقونات الـnautilus التي تختفي أحياناً:

أظن أن هذه المشكلة تحدث بسبب وجود متصفحي ملفات علي ذات الجهاز و كل واحدٍ منهما ينتمي لواجهةٍ مختلفة (و بالتالي مكتباتٍ مختلفة)، و قد جعلني هذا أُدرك أن الـKDE لها لعنةٌ معينةٌ لا يمكنها أن تترك من يتعامل حتي مع برنامجٍ واحدٍ من برامجها ^_^

ماذا سيحدث بعد هذا؟ و كيف ستسير الأمور بيني و بين القنو/لينوكس فيما بعد؟
حقيقةً لا أعلم؛ فأنا الآن أقوم بمحاولة التركيز علي النجاح في واحدةٍ من أهم محطات حياتي، فلو حدث ما أريده في هذه المرحلة سأتحول حرفياً إلي مليونير (حقاً و صدقاً)، و ساعتها سأقوم علي الفور بشراء أقوي جهاز ماكنتوش macintosh شخصي و أكتفي بنظام الماك الأسد mac OS lion لأنهي هذه المأساة و أعيش في هناء.

و حتي ذلك الحين: دعواتكم لي بالتوفيق ^_^