مدونة مؤيد

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

تطوير لعبة لـXBOX360 بساعتين و نصف

يقول همام البهنسي في In|Structurez أن بإمكانك تطوير لعبة لإكس بوكس 360 بأقل من ساعتين و ربع باستخدام الأدوات المجانية Microsoft XNA و Softimage|XSI MOd tool و بمتابعة بعض مقاطع الفيديو لـDan Waters، قم بزيارة الموضوع المثير للمزيد من العلومات.

تعلم الـRegular Expressions في ثلاثين دقيقة

و بالطبع لن تتقن هذا المجال في ثلاثين دقيقة فقط، و لكن ذلك سيعطيك فكرة تكفي لفهم معظم التعابير التي تواجهها و البدء بكتابة تعابيرك الخاصة، و بالإضافة إلى ذلك، سيعطيك المقال الذي نتحدث عنه معلومات أساسية عن برنامج الـRegular Expressions الرائع و الذي يسمى Expresso و هو برنامج مجاني و لكنه يحتاج إلى تسجيل مجاني أيضاً، سيعمل البرنامج لستين يوماً فقط إن لم تقم بتسجيله. بعد أن تقوم بتحميل البرنامج، يمكنك قراءة درس الثلاثين دقيقة هذا من ملفات المساعدة التي تأتي مع البرنامج، كما يمكنك قراءة نسخة أونلاين منها من موقع CodeProject. يتوفر على نفس الموقع مقالة أخرى تعريفية بالبرنامج. يحوي البرنامج أيضاً على مكتبة من عشرات التعابير الجاهزة للقيام بمختلف المهام الشائعة (التأكد من عنوان IP، التأكد من عنوان بريد إلكتروني، ...). هذا الدرس رائع! و البرنامج أروع، أنصح به لكل المهتمين بالـRegex و خاصةً مع الدوت نيت (لأن هذا مجال البرنامج الأساسي).

لمبرمجي ASP.NET الذين يريدون برمجة تطبيقات Silverlight

الكثير من مبرمجي ASP.NET و أثناء تعلمهم لـSilverlight يبدؤون بمقارنة كل سمة من سمات Silverlight بنظيرتها في ASP.NET، كيف نتعامل مع كذا، كيف نقرأ قيمة كذا، ... إلخ. هناك ناحية أساسية قرأت عنها و أردت التنبيه لها لأن الكثيرين لا ينتبهون لها رغم أهميتها، و هي سرّية الكود الذي تكتبه لتطبقات سيلفرلايت. ما المشكلة؟ لشرح المشكلة سنتذكر الطريقة التي يتم تنفيذ تطبيقات ASP.NET بها، بشكل بسيط و مختصر، يقوم السيرفر بتنفيذ كود البرنامج و إظهار النتائج على شكل HTML يتم إرسالها إلى العميل ليقوم متصفحه بعرضها بالطريقة المطلوبة، أي أن "جميع" العمل يتم تنفيذه على السيرفر. و أما بالنسبة لسيلفرلايت، الحال باختصار هو أن الكود و بعد أن تتم ترجمته إلى لغة MSIL يتم تخزينه على السيرفر على شكل ملفات DLL، و عندما يطلب العميل صفحة أحد تطبيقات سيلفرلايت، يتم إرسال الكود و ملفات XAML إليه لتقوم إضافة سيلفرلايت بتشغيلها على جهاز العميل نفسه. ماذا يعني هذا؟ يعني أن أي تطبيق سيلفرلايت يمكن أن يخضع للهندسة العكسية و فك ترجمته Decompiling، مثله مثل أي تطبيق دوت نيت عادي، و هذا يعني بدوره أن "عليك" ألا تضع أي كودات لها أهمية (خورازميات خاصة بك، طرق التشفير، ...) ضمن كود تطبيقات سيلفرلايت التي تكتبها. ما الحل؟ الحل ببساطة أن تقوم بإنشاء Web Service تحوي الكود الذي تريد الإحتفاظ به لنفسك، و من ثم استدعاؤها عن طريق تطبيق سيلفرلايت. هذه الطريقة آمنة تماماً لأن العميل لن يطلع على الكود و لن يتم تنفيذ أي جزء منه على جهازه، سيكتفي بإرسال المعطيات إلى السيرفر حيث ستتم معالجتها هناك و من ثم إرسال النتيجة مرة أخرى إليه. ما مساوئ هذه الطريقة؟ السيئة الأولى هي بطء تنفيذ عمليات البرنامج بالنسبة للعميل، فبدلاً من تنفيذ العملية على جهازه مباشرةً، سيضطر لإرسال معلومات إلى السيرفر لنفذ هناك و من ثم تعاد النتائج له، و هذا سيستغرق وقتاً أطول طبعاً. السيئة الثانية هي الحمل الذي سنكلفه للسيرفر و الذي سيكون دوره مقتصراً على إيصال الملفات في حالة تطبيقات سيلفرلايت التي لا تستخدم Web Services. إذن عليك أن تقوم بموازنة هاتين السيئتين لطريقة الـWeb Service مع سيئة قلة أمان الكود في تطبيقات Silverlight لتختار و بحكمة أين سيتم تنفيذ كل جزء من أجزاء برنامجك، حظاً موفقاً.

هل Build تعني Compile؟ و مواضيع أخرى

يطرح هذا السؤال العديد من مبرمجي دوت نيت، فلا نجد في Visual Stduio قائمة تسمى Compile، و نجد فيه قائمة تسمى Build تقوم في معظم الأحيان بمجرد عملية Compile، لذلك يبني البعض استنتاجاتهم أن Build تعني Compile. و في الحقيقة أن هذا الاستنتاج خاطئ، فعملية Build تختلف تماماً عن عملية Compile، هذا الاختلاف هو أن الـCompile ما هي إلا جزء من أجزاء الـBuild، الأجزاء الأخرى قد تتضمن إنشاء Installer، نشر البرنامج إلى مكان ما، القيام باختبارات مختلفة عن المشروع، إخبار الفريق بالعملية، و غيرها... و هاهي بعض الروابط التي وجدتها مفيدة : أفضل إضافات تطوير المواقع لـInternet Explorer : لقد تعودنا أن نرى الكثير من الإضافات لمتصفح Firefox، و لكن قلما نرى إضافات لـIE. أكثر من 50 مصدر لطلاب علوم الكمبيوتر : و هي تتضمن كل ما يحتاجون (أدوات، مراجع، نصائح، عمل، ..) في مختلف المجالات (حماية، ذكاء صناعي، برمجة، ...). 40 سبب لموت البرمجيات : و كل سبب هو عبارة عن رابط لمقال آخر مفصل. أفضل مئة لائحة بالـCheet Sheets : و كل لائحة بدورها تتضمن عدة Cheet Sheets في مختلف مجالات البرمجة، صفحة مفيدة جداً. درس في MySQL : درس طويل و مفيد و مفصل لمن يريد أن يتعرف على هذا النظام الشهير. أفضل 10 مواقع لمصممي الويب المستقلين (Freelancers).

مطوري برامج قواعد البيانات، مرجع رائع لكم!

ما أتحدث عنه هو موقع بسيط يدعى ConnectionStrings، يوفر -كما يوحي اسمه- العشرات من قيم الاتصال (Connection Strings) للعديد من أنظمة تخزين قواعد البيانات و صيغ ملفات المعلومات (مثلاً ملفات نصية، ملفات Excel). يمتاز الموقع بأنه يحوي أكثر من قيمة اتصال واحدة لكل مصدر للبيانات، فمثلاً ستجد أكثر من 30 قيمة للاتصال بـSQL Server 2005، كل واحدة حسب طريقة الاتصال و إعداداته، كما ستجد كود للاتصال بكل من #C و Visual Basic.NET، و هو يوفر شرحاً لا بأس به عن كل قيمة أيضاً. أنصحك بزيارته و الاحتفاظ به في الـBookmarks لحين تحتاج إليه!

Javascript Intellisense مع Silverlight 1.0

يبدو الإلمام بكل الخصائص و الإجراءات التي تلزم لبرمجة تطبيقات Silverlight 1.0 مسألة ليست بهذه السهولة، و خاصة لمن يتلمس طريقه في هذا العالم الجديد. بشكل افتراضي، لا يوفر Visual Studio 2008 أي مساعدة مهمة للمبرمج فيما يتعلق بـIntellisense جاد، لذلك، ما سنتوقع الحصول عليه عند برمجة مشروع باستخدام الإصدار الأول من Silverlight هو Intellisense لا تزيد قوته عما يلي : و أما مع استخدام الإضافة الرائعة Silverlight 1.0 Javascript Intellisense فسيبدو الأمر بهذه السهولة : الإضافة السابقة هي مشروع مجاني و مفتوح المصدر، مستضاف على موقع CodePlex، و هو يوفر سهولة كبيرة جداً لبرمجة مشاريع Silverlight باستخدام Javascript، من ميزات الإضافة الكبيرة أنك تستطيع بعد استخدام المشروع التخلص من مكوناته (أي عدم تضمينها في النسخة النهائية من المشروع) قبل توزيع التطبيق للاستخدام العام، و هذا يتم عن طريق أداة مرفقة مع النسخة الكاملة من الإضافة (بحجم 2,8 ميغابايت) تقوم بتخليص كود جافاسكريبت الذي كتبته من أي تبعيات لها. قم بـتحميل الإضافة (أنصح بشدة بالنسخة الكاملة) و من ثم قم بتحميل مقطع الفيديو التعليمي و الذي سيعطيك معلومات عن استخدام هذه الإضافة و استخدام Silverlight 1.0 بشكل عام. لاحظ أن هناك نسخة أحدث يمكنك الوصول إليها من القائمة على يمين الصفحة السابقة لذلك احرص على تحميلها.

عودة إلى المدونة، و أخبار جيدة!

هاقد انتهت امتحاناتي و أنهيت بعض مسؤوليات العمل و حظيت بعطلة تتجاوز الأسبوعين، تبدو هذه فرصة رائعة لأعود إلى مدونتي و لأكمل الكتابة فيها. و أما الأخبار الجيدة فهي رائعة فعلاً، فقد أعلن Scott Guthrie في مدونته الشخصية عن طرح الـSource Code للعديد من مكتبات إطار عمل دوت نيت، مما سيسمح للمبرمجين بالاطلاع على آلية عمله و عمل Debug لتلك المكتبات، و هي: -.NET Base Class Libraries (System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, ...) -ASP.NET (System.Web, System.Web.Extensions) -Windows Forms (System.Windows.Forms) -Windows Presentation Foundation (System.Windows) -ADO.NET and XML (System.Data and System.Xml) على نية من مايكروسوفت بطرح الـSource Code لمكتبات أخرى (مثل Workflow, WCF, LINQ, ...) و رغم ذلك ماتزال هناك محدوديتان، أولهما أن عليك أن تكون متصلاً بالإنترنت لتحميل المعلومات الضرورية من سيرفرات MSDN أثناء قيامك بالـDebug، و ثانيهما أن نسخة الكود هي للقراءة-فقط، فلا يمكنك تعديل الكود. رغم ذلك، ماتزال تلك تجربة رائعة برؤية طريقة عمل دوت نيت، حتى أنك سترى تعليقات المبرمجين على الكود، رائع جداً! لمعرفة كيفية الاستفادة من هذه الميزة الجديدة، قم بزيارة هذه المقالة، و بالمناسبة، إن واجهتك أية مشكلة في التعامل مع هذه الميزة يمكنك طرحها في القسم المختص في منتديات MSDN.

قم بتجربة IIS7 مجاناً

بغض النظر عن التقنية التي تستعملها، يمكنك -أيها المبرمج- أن تقوم باستخدام سيرفر IIS بإصداره السابع التجريبي مجاناً دون أن تضطر لتحميل Windows Vista أو Windows Server Codename Longhorn و إعداده و ضبطه على جهازك أو سيرفرك عن طريق ثماني شركات استضافة تقدم لك استضافة مجانية له. و حتى لو كنت مبرمج PHP فسيكون لك نصيب في الإصدار الجديد عن طريق مكون FastCGI و الذي يسمح بتشغيل مواقعك بمرونة كبيرة حتى على سيرفرات ويندوز :) يمكن الوصول إلى قائمة بالشركات التي توفر استضافة مجانية لـIIS 7 Beta عن طريق موقع IIS الرسمي على الصفحة Free IIS 7 Beta Hosting. تذكر دائماً أنه حتى إن كنت صاحب شركة استضافة أو مدير سيرفر فسيمكنك كذلك الاستفادة من خدمة GoLive لإتاحة استخدام هذا السيرفر لزبائنك، قبل أن تحتدم المنافسة!، على حد علمي لا يوجد شركات استضافة عربية توفر هذا حتى تاريخ كتابتي لهذه التدوينة.

مثال عملي - كسر حماية أحد برامج الدوت نيت

في مرة سابقة كتبت قليلاً عن قراءة كود الملفات التطبيقية لبرامج الدوت نيت، و الآن أقدم لكم مقالة كيف اكسر حماية برنامج مكتوب بالـ NET. و هي مقالة كتبها السيد تمام في مدونته. تستخدم هذه المقالة نفس البرنامج الذي تحدثت عنه لكسر حماية أحد البرامج الافتراضية، فهي تعلمك كسر حماية البرامج بطريقة عملية.

مهارات الكمبيوتر العشرة التي في طريقها إلى الزوال

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