أدوات تطوير الكود (أو IDE) كثيرة جداً هذه الأيام. من البالغة البساطة مثل Notepad++ إلى الأكثر تعقيداً مثل Visual Studio وEclipse. لكنها كلها في النهاية لها مبدأ مشترك: التعامل مع الكود على أنه مجموعة من الملفات. ولكن هذه مجرد طريقة التخزين. بينما عندما تنظر إلى الكود من وجهة نظر برمجية بحتة، ستجد أن الكود في الواقع هو مجموعة من الدوال والكلاسات وما إلى ذلك. ورغم أن العادة جرت على أن يكون كل كلاس في ملف منفصل، تبقى هذه ناحية تنظيمية بحتة تعتمد على المبرمج. وماذا عن الدوال؟ تقسيمها إلى ملفات منفصلة موضوع شائك هو الآخر. من هذا المنطلق قام مبرمج يدعى Chris Granger بطرح فكرة مشروع IDE جديد سماه Light Table، تكون وحدة الكود ليست تخزينية الاتجاه بل برمجية. و هنا فيديو عن المشروع:
مغامرات برمجية
مشروع: تطبيق Ray Tracing باستخدام C# – الحلقة 3 – الظلال والانعكاسات
في الدرس السابق وصلنا إلى الصورة بعاليه. وهي صورة فيها مقدار لا بأس به من الواقعية ولكن هناك حتماً مجال للتحسين. يمكننا أن نرى من التظليل أن مصدر الضوء قادم من الأعلى، مما يعني أنه من المفترض أن يكون هناك ظل أسفل الكرتين في السطح الأخضر. وسنضيف أيضاً أحد أشهر خواص الصور المنتجة بواسطة الـray tracing وهي الانعكاسات (كما يحدث في المرايا). وكما وعدتكم سنضيف مصدر ضوئي جديد هو الـpoint light. لدينا ما يكفي لدرس جديد إذن! جهزوا أدوية الصداع وهلموا معي.
استبدال Java بـC# في كود نظام Android

قبل بضعة أيام أعلنت شركة Xamarin أنها نجحت في استبدال محرك Dalvik (الذي يعمل بـJava) بمحرك Mono (الذي يعمل بـC#) في نظام تشغيل 4.0 Android للأجهزة المحمولة. الخبر من مدونة الشركة.
Xamarin هم الفريق وراء Mono، النسخة المتعددة المنصات من Microsoft .NET. أحد منتجاتهم هي Mono for Android الذي يسمح لك ببرمجة تطبيقات الـAndroid باستخدام الدوت نت (هناك نسخة لأجهزة iOS أيضاً). وقاموا بهذا الاستبدال كتجربة لاكتشاف فروقات الأداء بين Mono و Dalvik. والنتائج مثيرة جداً للاهتمام!
مشروع: تطبيق Ray Tracing باستخدام C# – الحلقة 2 – الإضاءة والتظليل
في الدرس الأخير قمنا ببناء برنامج Ray tracing مبسط جداً. قد تكون نتيجته مخيبة للأمل نوعاً ما، ولكن يمكن اعتباره “هيكل” لبرنامج Ray tracing أكثر تعقيداً. قمت عمداً بإبقاء معمارية البرنامج قابلة للتوسيع بقدر الإمكان حتى نستطيع إضافة أشياء جديدة في المستقبل. وبما أننا في درس جديد حان وقت تطوير برنامجنا المتواضع أكثر. دعنا نراجع النتيجة التي وصلنا إليها في المرة السابقة.
أول شئ قد نلاحظه هو أن الألوان مصمتة. في العالم الواقعي لا يكون اللون موحداً هكذا فوق أي شئ. هناك تدريجات في الألوان، أو ما يسميه الفنانون بالتظليل أو shading. هذا التظليل هو نتيجة لالتقاء الإضائة بأجسام متفاوتة في الشكل. وهذا ما ينقصنا بالفعل. الإضاءة! في برنامجنا السابق لم نضع حسبان للإضاءة وتأثيرها على الأجسام. هذا سيكون درس اليوم. الإضاءة والتظليل.
مشروع: تطبيق Ray Tracing باستخدام C# – الحلقة 1 – الأساسيات البحتة
الرسوم ثلاثية الأبعاد بواسطة الكمبيوتر هو موضوع مشوق وله شجون. لذا اخترته ليكون الموضوع الاستهلالي لتصنيف جديد في المدونة، أنوي من خلاله تقديم مشاريع كاملة “من طق طق لسلام عليكم” كمجموعة دروس تطبيقية. المشروع التالي سيكون تطبيقاً لما يسمى بالـRay Tracing باستخدام لغة C#. لماذا C# بالذات؟ لا يوجد سبب معين. مزاجي كان ميالاً نحو C# عندما بدأت المشروع. ولكن ما سأقدمه هنا يمكن بسهولة تطبيقه في أي لغة. الصورة بالأعلى هي نتيجة لعملية Ray Tracing باستخدام برنامجي.
في هذه الحلقة الأولى سوف أغطي الأساسيات البحتة فقط. وفي كل حلقة بعد ذلك سأضيف المزيد والمزيد من الخصائص ونعدل في البرنامج تباعاً. تحذير بسيط: مثل أي موضوع له علاقة بالرسوم الثلاثية الأبعاد سوف نغوص كثيراً في الرياضيات. ولكن في غالب الوقت لن تتعدى الرياضيات التي سنستخدمها حساب المتجهات والهندسة الإقليدية ومواضيع أساسية مثل هذه.
لماذا أكره Java و C++ و C# (كلغات تعليمية)
يبدو أن مقالات “أنا أكره” ستصبح روتيناً جديداً هنا! ما علينا. أولاً دعوني أوضح ماذا أقصد بلغات تعليمية. ما أقصده هي اللغات التي تستخدم (عادةً في المنشآت الأكاديمية) لتعليم مبادئ البرمجة. 90% من طلاب الجامعة الذين يدخلون أقسام الحاسب لم يبرمجوا سطراً في حياتهم من قبل. ومواد مثل “مبادئ برمجة 101″ و مستنسخاتها هي المقدمة التي تستخدمها المنشأة الدراسية لإعطائهم بصيص ضوء إلى عالم البرمجة.
رغم أنني تركت مقاعد الدراسة منذ أيام كان رجال الكهف يصارعون الديناصورات من أجل حفنة دراهم، إلا أنني أحب من وقت لآخر متابعة ما يجري في الجامعات وتطور التعليم الحاسوبي بها. وهناك توجه مقلق نحو اعتماد لغات Java و C++ و C# كلغات تعليمية. أنا لا أنقص من قدر هذه اللغات الجليلة والمخضرمة، ولكنني أسلط الضوء على ما أراه غير مناسباً لها.
لماذا أنا أكره الـStored Procedures
أنا أعرف أن عنوان المدونة يبدو كنوع من الهرطقة أو التجديف، بالذات لنا نحن مبرمجي تطبيقات الأعمال الذي تم ترسيخ فكرة أن الـstored procedures بأهمية الماء للعطشان في عقولنا من خلال مئات الدروس والدورات والمؤتمرات. قد يراود البعض الشك في أن هذا العنوان هو مجرد أسلوب رخيص لجذب الانتباه، على طريقة الصحافة الصفراء والمنتديات الوردية. ولكنني هنا لأؤكد لكم أنني، كمبرمج تطبيقات له عشرة سنوات في هذا المجال وبكامل قواه العقلية والجسدية والبرمجية، أكره الـstored procedures كره العمى وأتجنب استخدامها. ولب هذه المدونة هي حججي وبراهيني. وأرحب بجميع الانتقادات والتعليقات.
مسألة أويلر رقم 17: خوارزمية التفقيط
Project Euler Problem 17
نص السؤال:
إذا كتبنا الأعداد 1 إلى 5 بالإنجليزية: five، four، three، two، one، فإننا سوف نستخدم 3 + 3 + 5 + 4 + 4 = 19 حرفاً.
إذا كتبنا جميع الأعداد من 1 إلى 1000 ضمنياً، كم حرفاً سنستخدم؟
ملاحظة: لا تحسب الفراغات أو الشرطات. مثلاً 342 (three hundred and forty-two) تحوي 23 حرفاً و 115 (one hundred and fifteen) تحوي 20 حرفاً. استخدام and في كتابة الأعداد سيكون حسب نظام الاستخدام البريطاني.
(اقرأ المزيد …)
كسر بروتوكول “سيري” Siri الخاص بأجهزة iPhone 4S
خدمة “سيري” قد تكون واحدة من أهم الخدمات التي تسوقها Apple على أنها ميزة تنفرد بها أجهزة iPhone 4S. إعلاناتهم التلفزيونية هي سلسلة من لقطات لاستخدامات ظريفة لهذه الخدمة.
زميلي في العمل لديه iPhone 4S ولا أعتقد أن هناك موظفاً واحداً في الشركة لم يجرب Siri. النتائج (طبعاً) لم تكن مبهرة بالدرجة التي تصورها الإعلانات، وخدمة التعرف على الصوت موجودة في أجهزة Android من قبل (بشكل أبسط). ولكن هذا لا يمنع أن Siri منتج جميل ومبهر.
والآن تم اختراق البروتوكل الخاص بـSiri من قبل مجموعة من المبرمجين الفرنسيين. وفي مدونتهم يشرحون بالتفصيل ما قاموا بعمله وما اكتشفوه.
هل الموضوع كبير ويزلزل عرش Apple؟





