مدونة مؤيد

غيّر العالم ... أو العب بعيداً

قراءة كود الملفات التطبيقية لبرامج الدوت نيت

تفاجأت عندما وجدت أن عدداً كبيراً من المبرمجين العرب لا يعرفون أن برامج الدوت نيت يمكن عمل فك تجميع أو فك ترجمة Decompile لها. على عكس بعض لغات البرمجة الأخرى لا تتم ترجمة أكواد الدوت نيت إلى لغة الآلة Assembly بل تتم ترجمتها إلى لغة وسيطة تدعى MSIL و هي تتطلب إطار عمل دوت نيت .NET Framework لكي تعمل، المفيد في الأمر أنه يمكن تحويل اللغة الوسيطة إلى لغة برمجة من لغات برمجة الدوت نيت (مثل فيجوال بيسيك، سي شارب) بسهولة بواسطة أحد البرامج المتوافرة لذلك. شخصياً أنصح بالبرنامج المجاني Reflector for .NET و الذي يمكن بواسطته قراءة كود الملفات التنفيذية EXEs بالإضافة إلى مكتبات DLLs، و يمكن كذلك رؤية البنية الداخلية لإطار عمل دوت نيت و رؤية كيف تعمل Function ما على سبيل المثال، يمكن أيضاً أخذ بعض الـResources الموجودة داخل البرنامج (كالصور مثلاً). البعض يعتبر أن هذه مشكلة تهدد برامجه و لا أعتبرها كذلك لأن هناك بعض البرامج التي تسمى obfuscators و تقوم بتشفير كود البرنامج و "لخبطته" بحيث يصبح من الصعب جداً فهم أي قسم صغير من البرنامج. طبعاً هذه الطريقة تعمل مع الـWindows Applications فقط و لا علاقة لها بالـWeb Applications حتى لا يُساء فهمي.

تعليم الأطفال البرمجة

قرأت اليوم في موقع Tech2Click مقالة بعنوان بيئات برمجية مخصصة لتعليم الأطفال البرمجة و هي تحوي معلومات عن أربع بيئات تطوير تفاعلية IDEs موجهة للأطفال. شخصياً أعجبتني بشكل خاص بيئة KPL الشهيرة، بيئة تعلم الطفل البرمجة و تسهل انتقاله إلى عالم البرمجة الحقيقي و هي تعلمه البرمجة الإجرائية و البرمجة الكائنية OOP. المقالة لم تذكر لغة البرمجة العربية جيم الموجهة لطلاب المدارس كما يقولون، لا أريد التعليق عليها و لا مقارنتها بـKPL و لكني سأكتفي بذكرها.

لم الجميع في عجلة من أمرهم؟

قرأت أمس في أحد المنتديات مناقشة عن مقالة بعنوان Teach Yourself Programming in Ten Years و لكني لم أستطع إكمال قراءتها (المقالة و ليس المناقشة) لأسباب تتعلق بالنعاس و التعب و ما إلى ذلك. اليوم قمت بزيارة الصفحة الرسمية للمقالة في موقع المؤلف Peter Norvig لأكمل المقالة و لأجد أن المقالة مترجمة إلى 14 لغة من بينها العربية، أعدت قراءة المقالة بالعربية لأجد أن أسلوب المترجم لا يقل سلاسة عن أسلوب الكاتب. المؤلف يقول أن البرمجة ليست أسهل من باقي العلوم فلماذا نرى أسلوب "تعلم كذا في كذا يوماً" موجودة بنسبة كبيرة للبرمجة؟! و يذكر المؤلف أيضاً (و هو بالمناسبة مدير البحث العلمي في شركة Google) عدد مفيد من النصائح لنجاحك كمبرمج. أترككم الآن مع المقالة الممتعة.

موسوعة الرباط

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