1. من سوق الخضرة إلى سوق البرمجة

    هذه التدوينة كتبتها على موقعي قبل 15 سنة، و لم اعد كتابتها هنا حتى الآن، لأني كنت اشك بصحة نظرتي و كنت اتمنى ان أكون مخطئا.


     

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

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

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

    لم تعد في هذه المهنة (البرمجة) أية أخلاقيات تتصف بها، حتى أصبحتُ إذا سُئلت عن مهنتي أرد بأنني محاسب، و الحمد لله بانني لا أكذب فأنا بالفعل خريج كلية التجارة، ولكن عندما يعرف السائل أنني أعمل بالبرمجة أرد بأنني استعملها في المحاسبة كما استعمل السيارة بالذهاب الى العمل (ليس لدي سيارة).


  2. شرارات لإنتاج لغة برمجة

    logo-sharkنعم شرارة، شيء ما يشتعل فجأة داخل دماغك، يضيء بسرعة و يختفي مع أول تشتيت لانتباهك، كما بدأت بلفتة بسيطة تنتهي بابسط شاردة تمر بها، هذه اللمعة هي هذه الشرارة و هي قد تكون بداية حريق كبير.

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

    القرش

    مع تقدمي في مجال البرمجة انتقلت إلى لغة التجميع (لغة الآلة) و منها استطعت قراءة البيوس Bios للجهاز و قراءة طريقة عمل لغة البرمجة Basic على نفس الجهاز، مع قراءتي لها كانت تخطر على بالي أفكار أكثر (ماذا لو كان) و (ماذا لو عملنا كذا) و هكذا وجدت نفسي بدأت بكتابة لغة برمجة جديدة تختلف عن البيسك و إن كانت أول الأمر متخلفة جدا عنها.

    كانت لي أهداف فيها لتسهيل بعض الاعمال علي، مثلا اريد فيها عدم ترقيم الاسطر الاجباري كما هو معروف في البيسك في ذلك الوقت، و هذه الفكرة ليست من عندي اقتبستها من لغة التجميع لا اكثر، قمت بتسمية هذه اللغة بـ “القرش”، لا تستغرب من الاسم، نحن نتكلم عن مبرمج عمره 17 سنة.

    كانت مجرد بداية و انتهت فورا عندما تعرفت على الاجهزة الأحدث و اكتشفت كماً هائلا من لغات البرمجة الموجودة مسبقاً لم أعرفها من قبل و لكن “القرش” كان سببا في اختياري لغة البرمجة التي تناسبني، عندما كان الخيار بين الـ Pascal و الـ C استقر رأي على لغة Pascal، و هكذا صار “القرش” الشرارة الاولى للرغبة في صنع لغة برمجة  وفي  اختيار لغة برمجة.

    التعريب

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

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

    فكرة تعدد اللغات البشرية و التحويل بينها ضمن لغة برمجية واحدة عبر ترجمتها Compile اولا ثم عمل Decompile، ادى إلى وجوب الاحتفاظ بالملاحظات ايضا، و لكن لن نستطيع ترجمة الملاحظات إذ ستبقى باللغة الاصلية التي كُتبت بها.

    هذا الاسلوب يتطلب الاستغناء عن اكبر قدر ممكن من الكتابة البشرية، مثل procedure و function و void و var أو حتى if، عندها بدأت بوضع القواعد عبر المزج بين لغة Pascal و C و لغات برمجية أخرى التي غالباً مشتقة من صيغ اللغة C.

    البحث

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

    تلك اللغة البرمجية التي في دماغي في بداية الامر أطلقت عليها اسم nop_code، ثم قررت إعطاءها اسما عربيا، هو ترجمتي لكلمة script لأني إذا كنت من سيصنعها فستكون مكتوبة بلغة باسكال و ستكون حتما لغة script كما هو الحال في php و اللغات المشابهة، اخترت اسم “سرد” أو “sard” كترجمة لكلمة script و في نفس الوقت بعيدة عن اللفظ الثقيل للقاريء الاجنبي.

    التحدي

    عند تعلمي لبرمجة اندرويد كان لابد لي من استعمال لغة جافا، صادفني مشاكل بفهم ال scope فيها وهو مختلف عن اسلوب اللغات Pascal و ال C.

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

    طبعا لم اجادل كثيرا إذ تعلمت مع الزمن “ما حك جلدك مثل ظفرك” اي انني لا استطيع اثبات اي شي إلا بيدي وأن اقبل التحدي.

    الآلة الحاسبة

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

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

    كتابتي للآلة الحاسبة بسط لي كتابة لغة البرمجة و ربما خدعني و أعطاني أملاً زائفا، و لكنه كان جميلا جدا، هذا الامل كان حافزا لكتابة هذه اللغة.

    الماضي

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

    أخيرا

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

    نشرت المصدر على github  تحت رخصة MIT لم اسمها لغة برمجة بعد حتى تكتمل، استثنيت المعلومات  التقنية في التدوينة لتسهيل القراءة، يمكن طرح المعلومات التقنية في التعليقات.

    More…


  3. أخلاقيات البرامج التعاونية (المفتوحة المصدر)

    open-source-logoالبرامج التعاونية حسب اصطلاحي الخاص هي البرامج المفتوحة المصدر المجانية، مجانية الاستخدام و التوزيع، و مجانية الاستخدامها لأغراض مجانية أو تجارية، على عكس البرامج الحرة التي لا تشترط المجانية هنا.

    و بما أني من جماعة البرامجة التعاونية فاني اطرح بعض أخلاقها هنا.

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

  4. التفرد، أنا و لا احد غيري

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

    مع التطور نقل المبرمجين برامجهم لاستخدام برمجيات مساعدة اهمها قاعدة البيانات، و لكن بحكم العادة بدأوا أولاً بدمج البرمجية مادامو قادرين على ذلك.

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

    النتيجة اني قمت برفض البرنامج الميسطر نهائيا و رفض العمل عليه.

    ضمن برامجي لا امس قاعدة البيانات على الاطلاق و اكتفي بأن اطلب من الزبون تنزيل محرك القاعدة وهو هنا FirebirdSQL أو PosgreSQL و اسأله عن كلمة المرور التي وضعها له، اعمل هذا منذ أول يوم استعملت فيه قاعدة بيانات خارجية، و الهدف ان لا اكون انا المسيطر على الجهاز كما فعل البرنامج السابق، هذا نوع من الأدب مع المستخدم و احترام خصوصيته.

    مع التطور اجبر الجميع ان يتنازل عن حب السيطرة هذا و بدأت استطيع استعمال البرامج بتكافؤ، إلا اذا كان هنالك مشكلة في تعارض الاصدارات لا اكثر.

    عندما انتلقت إلى برمجة الويب، صدمت بنفس الموضوع.
    كنت ابني FrameWork مكتبة تؤمن لي اتصال بقواعد بيانات وعمل عناصر تحكم ويب على PHP و لكن بسبب ضغط العمل و ضعفي في ناحية ال JS(هذا كمثال اي ان المشروع يحتاج لأكثر من مبرمج و لا استطيع عمله لوحدي) اضطررت أن اوقف المشروع.
    قررت الانتقال لاستعمال FrameWork جاهز فوجدت عدة اطارات قوية على الانترنيت لكن صدمت بنفس الصدمة، أن الاطار يقوم بافتراض انه الاطار الوحيد الذي يعمل على المضيف Host، قمت باسقاط جميع الاطارات حتى عدت لنقطة الصفر.

    و الامثلة تتوالى، مثلا NodeJS الذي تعرفت عليه البارحة وهو محرك او بيئة تشغيل جافا سكريبت على المخدم، لكنه يفترض انه هو مخدم الويب على السيرفر و لا يعمل مثل ما تعمل لغات الويب الأخرى PHP, Python أو مثل اللغات C++, Pascal كاضافة لمخدم الويب مثلا Apache.

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

    خلال هذه السنوات، ألاحظ أن التاريخ يعيد نفسه و على الاجيال الجديدة من المبرمجين أن يخطئوا نفس الاخطاء القديمة، يبدو ان عالم البرمجة قد توقف عند نقطة معينة ليبدأ الدخول في نفس الحلقة من جديد.


  5. اول تطبيق اندرويد لي آلة حاسبة للمحاسبين

    acccalcأول تطبيق اعمله على اندرويد وهو أول تطبيق جافا بالنسبة لي، شيء كنت بحاجة إليه عندما كنت اعمل كمحاسب، آلة حاسبة عادية بتوزيع ازرار مناسب، لاحظوا زر الجمع كم هو كبير، و تسجيل العمليات في الاعلى، ضرورية لمن يخطيء كثيرا في الجمع 😀

    استغرق معي اسبوع لتصميم الشاشة و 4 ايام لنقل الخوارزمية من الباسكال إلى الجافا مع الكثير من المساعدة من غوغل stackoverflow.com  و قناة IRC ##java

    التصميم على Eclipse Juno و كتابة المصدر ايضا.

    التطبيق رفعته على aptoide.com و المصدر على github.com


  6. تجربتي مع miniEdit

    miniEditمنذ سنوات عديدة كنا نستخدم البرامج المتوفرة في السوق على CD و كانت هذه هي المصدر الوحيد لنا و كانت تأتي مكسورة (مكركة) جاهزة، مجرد ادخال رقم في البرنامج لكي يعمل بكفائة.
    كنا نعلم أن هذا لا يجوز لا أخلاقيا و لا شرعيا، لكن ما باليد حيلة سوى هذا الطريق، إلى بدأت الانترنت بالدخول إلى سوريا أو إلى الدول العربية و من خبرتي لاحظت أنها نفس الفترة التي اصبحت الانترنيت عامة أيضا في الدول الخارجية.
    بدأتُ على الفور باستعمال الأدوات و المكونات البرمجية المجانية، و لم تكن بعد قد انتشرت الرخص العمومية (المشاعية كما يحلو للبعض بتسميتها) كنا نجد البرامج المكونات مفتوحة المصدر بدون اي رخصة و من اهمها كان InnoSetup
    من اول المواقع التي كنا نقصدها DelphiPages و torry بعدها بسنوات بدأت هذه الأدوات باستخدام رخص عمومية.
    مع ذلك كنا إذا احتجنا إلى برنامج كنا ندخل على الانترنت و في مواقع خاصة بالقرصنة نأتي بالكراك المناسب للبرنامج الذي قمنا بتنزيله من الموقع الرسمي، كان ذلك يصيبني بالغثيان، ليس لأحساسي بأني اسرق متعمدا، بل لأن هذه المواقع قبيحة و اباحية.

    و لكن كما هي العادة انا بحاجة لمحرر نصوص فيه Debug للـ PHP لم استطع الوصول إلى واحد مجاني في ذلك الوقت أو لم يكن متوافقا مع النسخ التي لدي، أو كان متخلفا عما نريده، و لابد من كسر احد البرامج المتوفرة في السوق، نزلت البرنامج و قمت بالبحث في مواقع القرصنة.
    كنت اخفي الصور من خيار في المستعرض IE و رقم التسجيل أو البرنامج كان يظهر بسهولة، و لكن هذه المرة كانت المواقع اذكى منا، اصبح رقم التسجيل عبارة عن صورة لا تستطيع اظهارها بسهولة إلا بعد تمكين خيار اظهار الصور، عندها اتخذت القرار الحاسم بعدم كسر أي برنامج مهما كلف ذلك.

    و بسبب حاجتي لمحرر نصوص مع تفلية Debug بدأت مشروع LightPHPEdit قمت بوضعه على السورس فورغ، المحرر على صغره كلفني شغل النسخة الأولية منه شهر و نصف عمل متواصل، كلمة عمل متواصل في ذلك الوقت كان يعني أكثر من  5 ساعات في اليوم.
    كان علي ان أضع Syntax الخاص بال PHP الذي يدمج صيغ HTML معه عند فتح <? و اغلاقها، و طبعا لم تكن متوفرة في المكونات الجاهزه، قمت بانشاء واحد يرتبط مع SynEdit و يأخذ تنسيقات متعددة تبعا للنوع المحدد مثلا <?xml  طبعا لم ابرمج الـ xml بعد و لكن وضعت القواعد لها بحيث استطيع اضافة اي نوع جديد، كان يخطر على بالي مثلا <?pascal 😀
    ايضا كان علي ان اضع برتوكول التخاطب مع xdebug و هو اضافة لل php و عليه التخاطب معه عبر TCP، المسألة ليست سهلة فهو MultiThread لأن التفلية يجب أن تكون في الخلفية عند التوقف عند breakpoints.
    بالاضافة لوضع محرك رئيسي للمحرر بحيث يترابط الجميع على طبقات و تكون معزولة عن الواجهة، انا اعمل دائما بهذه الطريقة، احب ان اجعل الواجهة لا تحوي الكثير من الكود.

    انتهيت منه بلغة الدلفي، و اصدرت منه نسخة على السورس فورغ، و لكن هنالك غصة في القلب أنه بالدلفي وهي ايضا غير مجانية (مكسورة) و كان الخيار ان انتقل إلى Lazarus لهذا السبب.
    كانت لازاروس متخلفة كثيرا في ذلك الوقت و ليس من السهل نقل برنامج بالرغم من بساطته (لأن الواجهة لا تحوي الكثير من الكود) إيضا ان لازاروس لا يعتمد على Windows API و بها الكثير من العلل في ذلك الوقت.
    كان ال SynEdit المستخدم في الازاورس هو نسخة قديمة جدا من النسخة التي في الدلفي اي سأخسر الكثير من المزايا و قد خسرتها بالفعل، ايضا هنالك تعليمات لا تعمل إلا في الويندوز بالرغم اني استطيع استعمالها إلا انني أرغب في تشغيله على اللينوكس ايضا.
    مثلا فتح مجلد الملف كان غير موجود بنفس الصيغة في اللينوكس، لذلك قمت بعزلها على شكل Addon خاص بالويندوز، أيضا كان اهتمامي ان ارتبط مع الباسكال تحضيرا لانشاء تفليه للباسكال عليه، هذه لم تتم بعد و لكن يمكن ربطها بسهولة لأن المحرر مستقل تماما عن نوع التفلية الموجود، اي تم عزل الـ PHP ليصبح مجرد Addon أو كما سميته Perspective

    كلفني نقل المحرر للازاورس تقريبا اسبوعين عمل متواصل، و اسابيع اعمال متفرقة يمكن معرفة ذلك من خلال التاريخ في المستودعات، المشكلة في عدم نشره هو وجودة عله تخرب النص في المحرر، هذه العلة بقيت لسنيتن و ربما ظروفنا النفسية هي ما جعلت هذه العلة باقية، إلى ان انتهزت فرصة راحة نفسية مؤقتة قررت فيها اكتشاف هذه العلة و اصلاحها، الحمد لله.

    الآن مع العلل البسيطة اعتقد ان المحرر جاهز للنشر وهو موجود على الـ github باسم miniEdit، مع اني استعمله منذ أول يوم ولادة له كملف تنفيذي، لانني استطع التجاوز عن العلل التي فيه دون أن اعيب على من صنعه 😛

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


  7. لازارس اصدار 1.0

    فريق لازارس يعلم بانه تم اصدار النسخة رقم 1.0 من لازارس:

    Lazarus 1.0

    يمكن تنزيل النسخة من  SourceForge :

    http://sourceforge.net/projects/lazarus/files/

    هذه النسخة تعتمد على fpc 2.6.0 .

    التعديلات:

    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes

    للأشخاص الذين يعانون مع SourceForge يمكن تنزيلها من:

    ftp://freepascal.dfmk.hu/pub/lazarus/releases/
    http://michael-ep3.physik.uni-halle.de/Lazarus/releases/
    http://mirrors.iwi.me/lazarus/


  8. لعبة أمير فارس، على GITHUB

    كانت لعبة Prince of Persia أول لعبة لعبتها على PC بعد ان لعبت الكثير من الألعاب على ZX Spectrum  و  Amiga 500 و كانت للمقارنة بين دقة الشاشة و الألوان في البداية.

    قام مصمم اللعبة Jordan Mechner بنشر المصدر على الـ GitHub بعد أن أضاع المصدر لاكثر من 10 سنوات.

    مصدر الخبر تيدوز

    قام مطور أول جزء من أمير فارس جوردن ماكنر بطرح الشفرة المصدرية للعبة بشكل مفتوح على موقع Github حيث صدرت هذه اللعبة لأول مرة على جهاز أبل 2 في العام 1989 وكانت وقتها من أفضل وأنجح الألعاب وقد تم إعادة طرحها مرة أخرى لأنظمة دوس.

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

    بالفعل هذا GitHub اصبح ملاذ البرامج المفتوحة المصدر، بالنسبة لي هو ينافس SourceForge.

    يمكن تنزيل “أمير فارس 2” منن هنا، و يمكن استعمال DOSBox لتشغيلها

    أمر الـ DosBox لتشغيل اللعبة:

    DOSBox.exe .PRINCE.EXE -exit -fullscreen -noconsole


  9. خطة لـ FreePascal لدعم خرج للجافا بايت كود

    هنالك خبر في القوائم البريدية عن إنشاء فرع branch جديد من أجل جعل الـ FreePascal بتوليد ملفات بيئة Java جافا، أو تقنيا سوف يتم Compile للمصدر لينتج ملفات Byte Code تعمل في بيئة JVM، اي اكتب باسكال و الناتج بعد الترجمة Compile جافا بايت كود.

    http://wiki.freepascal.org/FPC_JVM

    لا اعرف الفائدة الفعلية سوى انك تستطيع عمل بعض البرامج التي يمكن أن تعمل على الجوالات التي تدعم الجافا، و حسب ما قرأت أن البايت كود للأندريود مختلف عن الجافا الأصلي، لكن أصلا الفري باسكال تولد خرج للمعالجات ARM التي يعمل عليها الاندريود، وهنالك من يعمل حاليا على Wedgetset جديد خاص بالاندريود في Lazarus .


  10. فتوى البوكيمون و البرامج الحرة

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


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

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

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

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

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

    مراجع

    الشيخ يصدر فتوى بتحريم البوكيمون