كيفية إستخدام إحدى رخص GNU الحرّة في برنامجك (بتاريخ : 16/3/2012)

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

في حال قررت إطلاق إحدى برمجياتك كبرمجيّة حرّة تحت رخصة GNU GPL (أو إحدى الرُخص التابعة لـ GNU) يجب عليك إتباع بعض الخطوات التي سنتناولها في هذه التدوينة.

هناك 4 رُخص تابعة لـ GNU و هي GNU GPL و GNU LGPL و GNU AGPL و GNU FDL، يمكنك أنْ تختار بينهن ما يناسبك، بالطبع يمكنك أنْ تجمع بين أكثر من رخصة في مشروع واحد و هذا ما قمت به شخصياً في MySmartBB، حيث أخترت رخصة GNU GPL للمشروع كاملاً ما عدا المكتبات البرمجية و التي أطلقتها تحت رخصة GNU LGPL، إقرأ جيداً حول الفرق بين الرُخص و أختر ما يناسبك :).

بعد إختيارك للرخصة التي تناسب مشروعك يجب عليك إضافة عنصرين إلى جميع ملفات الشيفرة المصدرية.

العنصر الأول هو جملة حقوق الطبع، مثال على جملة حقوق الطبع : Copyright 1999 Terry Jones.

جملة حقوق الطبع يجب أنْ تحتوي على السنة التي أنتهيت فيها من تجهيز نسخة البرنامج، و في حال تعدد النسخ يجب عليك إضافة سنة كل نسخة، مثال : Copyright 1998, 1999 Terry Jones، أما في حال كان هناك أكثّر من مبرمج ساعد في تطوير الملف فيجب إضافة إسمه ضمن جملة حقوق الطبع.

بالنسبة للبرامج ذات الإصدارات المتعددة خلال سنوات عدّة فمن الأفضل كتابة كل سنة على حدة بدون إستخدام الإختصارات.

دائماً إستخد ... اكمل القراءه

أهم التغييرات على شيفرة MySmartBB منذ ALPHA 4 إلى 6 (بتاريخ : 8/3/2012)

كما أخبرتكم في تدوينة إطلاق الإصدار التطويري السادس من MySmartBB، إن هنالك بعض التغييرات الجذرية في الشيفرة المصدرية منذ الإصدار التطويري الرابع، و سأُكرّس هذه التدوينة لذكر أهم هذه التغييرات :).

الملف records.class.php
أولاً لنتحدث عن الملف records.class.php، و هو أحد أهم الملفات في البرنامج حيث تقع على عاتقه مسؤولية التعامل مع قواعد البيانات و بناء الإستعلامات، و يوفّر واجهة دوال للمبرمج للتعامل مع قواعد البيانات بدون الحاجة إلى كتابة شيفرة SQL الكامله للإستعلامات، في النسخ التطويرية القديمة من الجيل الثاني (و هي ALPHA 1 إلى ALPHA 3) مكان هذا الملف في المجلد engine/libs/records.class.php، أما في الإصدارات التطويرية الحديثة و التي شهدت التغيرات التي نتحدث عنها في هذه التدوينة فستجدونه في includes/systems.

تم تبسيط هذا الملف و الواجهه التي يُقدمها بقدر الإمكان، و بعد التطويرات تقلّصت أسطر الملف من 600 سطر برمجي (تقريباً) إلى 300 سطر برمجي (تقريباً)، هنا أتحدث عن النسخة القديمة من هذا الملف :)، لأن الملف الحالي (في الإصدار ALPHA 6) تم إضافة المزيد من الدوال الجديده إليه و بالتالي وصل إلى 520 سطر برمجي تقريباً.

على كُل حال، التغيير الأساسي في هذا الملف كان تغيير طريقة التعامل معه، فهو عباره عن مكتبه يستخدمها MySmartBB في جميع أجزاءه للتعامل مع قواعد البيانات، و بالتالي تم تغيير طريقة مناداة دوال هذا الملف بغرض التبسيط، و فعلاً بعد تطبيق التعديلات على جميع الملفات البرمجية لـ MySmartBB (و التي كانت تستخدم النسخة القديمة من م ... اكمل القراءه

إنطلاق الإصدار التطويري السادس من MySmartBB 2.0.0 (بتاريخ : 8/3/2012)

إنتهيت للتو من رفع النسخه التطويرية الجديدة إلى موقع Sourceforge :).

كان التركيز الأساسي في هذا الإصدار على نظام الإضافات (Plugin)، الحمدلله يبدو إن لدينا الآن نظام إضافات متكامل يمكننا إستخدامه لكتابة أي نوع من الإضافات :).

سأبدأ فيما بعد إن شاء الله بكتابة توثيق حول نظام الإضافات الجديد، يمكن لمهتمين حالياً أن يدرسوا الإضافة MySmartMicroblog المُرفقة مع النسخة الرسمية لمعرفة طريقة عمل نظام الإضافات، تجدون الإضافة في المجلد plugins/MySmartMicroblog.

للمتابعين القُدامى، الإصدار التطويري الثالث (ALPHA 3) كان آخر إصدار تم طرحه في الموقع الرسمي قبل توقفه، بعدها تم إطلاق ALPHA 4 و ALPHA 5 على موقع المشروع في Sourceforge، هناك بعض التغييرات الجذريه في هذين الإصدارين لذا سأكتب عنهما تدوينة منفصلة أوضّح بها هذه التغييرات الجذريه (أتحدث عن الجانب البرمجي هنا). :)

يمكنكم تحميل النسخة الجديدة على موقع مشروع MySmartBB.

[ما هي OpenStep؟] [الجزء 2/2] شركة NeXT و علاقتها بشركة Apple (بتاريخ : 4/3/2012)

الجزء الأول : [ما هي OpenStep؟] [الجزء 1/2] حديث عن واجهة برمجة التطبيقات Cocoa

حان الوقت لنعود إلى الماضي :)

سنتحدث في هذه التدوينة عن شركة NeXT و التي ظهرت في منتصف الثمانينات و أشترتها فيما بعد شركة Apple في عام 1996، و سيتبيّن لنا فيما بعد إن شركة NeXT هي مَن أنشئت OpenStep الذي سنتحدث عنه و الذي يُعتبر أساس تقنية Cocoa التي تحدثنا عنها في التدوينة السابقة.

بداية القصة
نَعلم إنّ ستيف جوبز كان أحد مؤسسي شركة Apple في السبعينيات.

في أثناء عمله في شركة آبل في عام 1984 إلتقى ستيف جوبز العالم باول بيرغ (Paul Berg) الحائز على جائزة نوبل في الكيمياء في غداء أُقيم في ستانفورد، كان باول بيرغ يتحدّث عن موضوع تعليم الـ rDNA للطلبة، حيث كان تعليم الطلبة لهذا الموضوع يتم عن طريق الكتب الجامعية بدلاً من إستخدام المختبرات، و كان السبب في ذلك هو إرتفاع تكاليف و تعقيد عملية المحاكاة على حواسيب ذلك الوقت.

لذا أقترح باول بيرغ على ستيف جوبز أنّ تُنتج شركة آبل حواسيب يُطلق عليها إسم 3M ليتم إستخدامها في التعليم، الفكرة من وراء حواسيب 3M هي أن تحتوي على 1 ميجا بايت من الذاكره (RAM) و 1 ميجا بيكسل للعرض و 1 ميجا فلوب من الأداء (لاحظوا إننا نتكلم عن العام 1984 هنا :))، يمكننا القول إن البداية كانت من هنا.

خروج ستيف جوبز من آبل
كان ستيف جوبز مسؤولاً عن أحد أقسام آبل يُطلق عليه إسم SuperMicro، و كانت وظيفة هذا القسم هو تطوير ماكنتوش و آبل ليزا، أ ... اكمل القراءه

[ما هي OpenStep؟] [الجزء 1/2] حديث عن واجهة برمجة التطبيقات Cocoa (بتاريخ : 3/3/2012)

لنبدأ حديثنا عن تقنية الوقت الحاضر، ثم ننتقل إلى جذورها التاريخية وصولاً إلى موضوعنا الأساسي و هو OpenStep :)

السؤال الأول الذي سنجاوب عليه "ما هي Cocoa؟".

تُعتبر Cocoa واجهة برمجة التطبيقات (API) الرسمية لنظام التشغيل Mac OS X، بمعنى أن الذي يريد كتابة برامج لنظام التشغيل Mac OS X سيعتمد على واجهة Cocoa لفعل ذلك، هذه الواجهة مُوجهة بشكل أساسي للغة البرمجة Objective-C و لكنها تعمل مع مجموعة من اللغات الأُخرى التي تم ربط واجهة Cocoa بها.

لتقريب الأمور إلى الأذهان يمكننا القول (تجاوزاً) إن Cocoa عبارة عن مكتبات برمجية (في الحقيقة هي أُطر عمل (Frameworks) و ليست مكتبات (Libraries)) تُقدّم عدد من الفئات (Classes) لبرمجة التطبيقات، و بما إننا ذكرنا الفئات فهذا يعني إن Cocoa تستخدم البرمجة الموجهة للكائنات (Object-Orinted Programming) و هذا ما سيكون واضحاً لمن مرّ و لو مرور الكرام على لغة البرمجة Objective-C.

لا تُستخدم Cocoa لبناء برامج نظام التشغيل Mac OS X فحسب، بل تُستخدم كذلك لبناء البرامج لمُنتجات شركة أبل الأخرى مثل iPhone، و بالقول الدقيق المقصود بذلك نظام التشغيل iOS و الذي تعتمد عليه المنتجات الأخرى مثل iPhone و iPad و iPod.

وفقاً لوثائق أبل للمطورين فإن الطريقة الوحيدة لبرمجة التطبيقات لنظام iOS هي إستخدام واجهة Cocoa، أما نظام Mac OS X ففيه بدائل لواجهة Cocoa مثل واجهة Carbon التي تستخدم البرمجة الإجرائية (Procedural programming) بعكس Cocoa و التي تستخدم البرمجة الموجهة للكائنات كما أسلفنا.

تُقدّم شركة أبل بيئة تطوير متكاملة (Integrated Development Environment) يُطلق عليها إسم Xcode للم ... اكمل القراءه