• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

abshammeri

أعضاء الشرف
  • عدد المشاركات

    6,663
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة abshammeri

  1. هذا القسم أتى ليحل مشكلة ضياع المقالات العلمية التي لا تنتمي إلى أقسام تقنية أخرى . حيث هناك العشرات من المقالات الموجودة ضمن قسم الأخبار أو قسم المجتمع . وهو حل أفضل من إنشاء أقسام كاملة من أجل تلك المقالات .ساعدنا في لم شمل تلك المقالات السائبة ضمن هذا القسم ( المقالات الموجودة في قسم الأخبار أو المجتمع ) . نحن نبحث عن مقال وليس نقاش أو أسئلة .. مقال فقط . يمكن أن تضع رابطاً لأي مقال علمي أو تقني موجود في قسم الأخبار أو قسم المجتمع ، لننقله إلى هنا . وسيتم عمل فهرس مناسب أو طريقة عرض مناسبة ، في وقت لاحق إن شاء الله .عندما نلاحظ كثرة المقالات في مجال معين ، فهذا مؤشّر جيد سيساعد على افتتاح قسم جديد لذلك المجال .
  2. السلام عليكم . هذه أحد سلسلة من المواضيع المطروحة التي تهدف لتحليل ألعاب ثنائية الأبعاد من ناحية ( خوارزمية بحتة) . اللعبة المقترحة هي : Binary Land . اللعبة من اقتراح الأخ HARD . الروابط وفرها الاخ سلوان على هذا الرابط ( المشاركة رقم 11 ). العب اللعبة قليلا ... قم بالبكاء قليلا على تلك الاطلال :huh: ثم لنبدأ بالتحليل : * كيف يبحث العدو عن البطاريق الوديعة . * اسلوب تحرك البطاريق متناسق .. كيف يتم ذلك :) . * نظام اكتشاف التصادم المستخدم .. ماهو . بانتظار المحللين ...
  3. السلام عليكم . - هذه قائمة بجميع الألعاب التي وردت للمنتدى ( سواء في هذا القسم او الاقسام الاخرى) هذه الروابط كتبها عدد من الاعضاء ... قمت باعادة كتابة الموضوع وبحذف الردود .. فقط للتنظيم وسرعة الوصول .. نشكر كل من ساهم باضافة رابط للعبة ما هنا .. - نذكر الاخوة بأن يضيفوا أي لعبة قاموا ببرمجتها في هذا الموضوع ( كرابط فقط) لتصل لاكبر شريحة ممكنة من المتابعين , قم باضافة رد في هذا الموضوع لرابط اللعبة وسيتم اضافته للفهرس ومن ثم حذف الرد .. للتنظيم فقط . - نذكر الاخوة بأهمية خلو اللعبة من أي موسيقى ..والاكتفاء بالمؤثرات الصوتية المباحة .. الامر واسع جدا . فالهدف تعليمي بالاول و الاخير . ملاحظة : "" الألعاب ليست مرتبة حسب أفضليتها "" : جديد *المكعب السحري المبرمج: TheGhostFish اللغة:++C و DirectX 9.0 الرابط: http://ghostawy.110mb.com/Magic_Cube.zip محدث * الثعبان. المبرمج: SAyedF1. اللغة : dx & vb الرابط: من هنا * العنكبوت. المبرمج: SAyedF1. اللغة : dx & vb الرابط: من هنا النسخة القديمة : http://www.arabteam2000-forum.com/index.ph...st&id=21739 السورس كود : http://www.arabteam2000-forum.com/index.ph...st&id=21876 * القلعة المبرمج: SAyedF1. اللغة : VB.NET & محرك irrlict هنا *virtual ball 1-المبرمج : حريف برمجة. 2-اللغة: vb - dx 3- الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=130149 * لعبة ترتبب الارقام و لعبة bantumi 1- المبرمج:hicham716. 2-اللغة : vb 3- الرابط: http://www.arabteam2000-forum.com/index.php?showtopic=124543 * 1-المبرمج : الغانمي. 2-اللغة: VB.net 2005 3- الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=120852 * 1-المبرمج:MoaM 2-اللغة: 3-الرابط: http://www.arabteam2000-forum.com/index.ph...st&id=21673 * 1- المبرمج : الشمري . 2- اللغة: لغة السي بلس + OpenGL . 3- الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=80108 *المهمة السرية - secret mission ( لعبة ثلاثية الابعاد) المبرمج : عروة , اللغة : الدلفي . الرابط : تحميل الملف التنفيذي: http://www.orwah.net/secret_mission/Secret_mission.rar تحميل DLLs تحتاجها اللعبة http://www.orwah.net/secret_mission/Dlls.rar انظر أيضا : http://www.arabteam2000-forum.com/index.ph...=secret_mission http://www.arabteam2000-forum.com/index.ph...=secret_mission * المبرمج : الغانمي . اللغة: الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=88094 *Tetris المبرمج: أبو مازن ( حسام الملحم) اللغة: الجافا. الرابط: http://www.arabteam2000-forum.com/index.ph...mp;#entry432024 * المبرمج:M.A.K. اللغة : VB6 & Win32 API الرابط : http://www.arabteam2000-forum.com/index.ph...p;hl=mashadowma * المبرمج: FH + waeldalol . اللغة:الدلفي و dx . الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=109755 *Plane Fighter المبرمج:Final Heaven اللغة: الجافا. الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=110142 * المبرمجة:nardien28 اللغة:الجافا. الرابط: http://www.arabteam2000-forum.com/index.ph...mp;#entry564839 * السلم والثعبان المبرمجة:myname اللغة: VB.NET الرابط: http://www.arabteam2000-forum.com/index.php?showtopic=114110 * 1- المبرمج : thekingofc 2- اللغة: WIN API و ++c 3- الرابط : http://www.arabteam2000-forum.com/index.php?showtopic=78959 * 1-المبرمج :MoaM 2-اللغة: 3-الرابط : http://www.arabteam2000-forum.com/index.ph...st&id=21410
  4. السلام عليكم ، مقدمة : اشتريت قبل يومين " لوحة مفاتيح " Microsoft الأصلية ، الغالية الثمن ( سبعين ريال ) ، وهي متميزة وتثير لديك شهوة الكتابة عن أشياء لا تعرف عنها الكثير ، وهذا المقال من هذه الأشياء. المرحلة الأولى - الحياة بسيطة : قام الحاسوب على مفهوم Turing Machine ، وهو تصوّر جائنا من زميل المهنة Turing لجهاز الكمبيوتر .. خلاصته أن البيانات تنتقل من القرص الصلب Hard-desk إلى الذاكرة ، ومن يقوم بمعالجة تلك البيانات شيء اسمه معالج واختصاره هو CPU .. مرّت ثلاثين سنة على هذه الفكرة والتي أصبحت هي المعتمدة في كل جهاز حاسوب تقريباً في مطلع ثمانينات القرن الماضي . بعد ولادتي بسنتين .. وقع حدثُ هام ( بالإضافة لحدث ظهوري على وجه البسيطة) ، حيث ظهرت مكتبة ( أصبحت قياسية ) ، تحمل اسم OpenGL وذلك في عام 1990 تقريباً . المكتبة الرسومية استفادت لاحقاً من " كونها قياسية " ، وصار كل صانع من صنّاع البطاقات الرسومية Graphics Card ، يعمل implementation خاص به ، يستفيد من قدرات Hardware لتسريع عملية الرسوم . المبرمج في ذلك الوقت وجد أمامه مجموعة من " الدوال " APIs ، التي يستدعيها ليقوم بتغيير حالة متغيرات معينة ، فتقوم " بطاقة الرسوميات " بالاستجابة لهذه التغييرات.. مثال : void display() { // Tell the Graphics Card to clear the color buffer. clearTheBuffer() // Load Data Into the main memory loadData() // Do Some Math Calculations Matrix result = modelMatrix * viewMatrix * projectionMatrix // Tell the Graphics Card to change the alpha state to " Enabled " enableAlphaTesting(1,LessThan) // Draw drawMesh(data); disableAlphaTesting() } - لاحظ أن أغلب البيانات ، سنجدها في الذاكرة الرئيسية Main Memory ، حسب نصيحة زميل المهنة Turing . - لاحظ أن عملية ضرب المصفوفات تحتاج إلى CPU ، وهو المسؤول عنها . - لاحظ أنك تطلب من البطاقة الرسومية تفعيل " الشفافية " ومن ثم رسم المجسم ومن ثم ايقاف الشفافية حتى لا تتأثر بقية الأجسام . البرامج الرسومية و الألعاب تصيب المعالج بإجهاد كبير ، وعملية نقل البيانات من المعالج إلى الذاكرة الرئيسية إلى البطاقة الرسومية ، تستهلك وقت وجهد ، بل أن النموذج السابق يحمل اسم Fixed-pipeline ، ويعني أن OpenGL كمكتبة رسومية قائمة على أمور ثابتة ومبرمجة مسبقاً ، بحيث تطلب من البطاقة الرسومية تغيير حالة ما .. فيظهر هذا على الشاشة .. فلا تستطيع مثلاً أن تتحكم بالمعادلة المسؤولة عن الشفافية .. فكل ما عليك أن تقوله هو : فعّل أو لا تفعّل .. Enable Or Disable . المرحلة الثانية - : GPU بعد 12 سنة من ولادتي ، وتحديداً عندما انتهيت من الصف السادس الابتدائي ، ظهرت أفكار جديدة لعلاج مشاكل البرامج الرسومية و الألعاب ، وتتمحور حول مبدأ أساسي : لماذا لا نضع معالج خاص + ذاكرة خاصة للبرامج الرسومية المبنية على OpenGL و أشباهها ؟ لماذا لا نسمح للمبرمج بكتابة معادلاته التي يريد تطبيقها على كل بكسل وعلى كل رأس Vertex ؟ بدأت الأفكار تطبخ وتطبخ حتى وصلت للنضوج مع دخولي للمرحلة الثانوية . فظهر أمامنا مفهوم GPU ( عفواً .. ليس مفهوم ، إنما Hardware وهو عبارة عن معالج مركزي خاص للمكتبات الرسومية مثل CG و OpenGL و Direct3D ) . GPU : اختصار لمصطلح Graphics Processing Unit و الذي حصل باختصار ، أن عمليات المعالجة انتقلت من CPU إلى GPU ( طبعاً لا يعني هذا الاستغناء عن CPU ) ، فمثلاً علمية ضرب المصفوفات ، وعملية معالجة كل بكسل ، وعمليات أخرى تجري على وحدة GPU ومابين ذاكرة ومعالج البطاقة الرسومية .. فوصلنا لسرعة وقدرة عالية مع نتائج مبهرة .. وذلك لأنك أمام معالج رسومي عملاق و قوي . المرحلة الثالثة - GPGPU : الحسد طبيعة البشر ، والمبرمجين بشر ، فظهر طفيليون على مجال " الألعاب و الرسوميات " ، من أصحاب المحركات الفيزيائية أو برامج المحاكاة العلمية أو من أي مجال آخر عدا برمجة الألعاب و الرسوميات . الطفيليون " المبرمجون " فكروا في الاستفادة من وحد المعالجة الرسومية GPU لتسريع محرّك فيزيائي ( تسريع أنظمة الجزئيات الفيزيائية ، لمحاكاة فيضان المياه مثلاً .. ) ، أو لتسريع خوارزمية مستخدمة في محاكي للأبحاث العلمية . مستفيدين من سرعة العمليات التي تقوم بها GPU .. فبدلاً من أن نركن GPU دون استخدام .. فلماذا لا نستفيد منه في جوانب تطبيقية شتى . مع العلم أنه قد ظهر عائلة جديدة من المعالجات المختصة بالفيزياء باسم PPU . من هنا ظهر مفهوم GPGPU : وهو اختصاراً لـ General Purpose Graphics Processing Unit .. يعني " الغايات العامّة من وحدة المعالجة الرسومية " .. فظهرت مقالات وتطبيقات تستفيد فعلاً من إمكانية GPU ، لم ننتظر طويلاً حتى ظهرت CUDA و OpenCL و مكتبة ثالثة لا أريد أن أعمل لها دعاية دون مقابل :/ . نسيت أن أخبركم أن مفهوم GPGPU بد أ يتبلور عندما وطأت قدماي أرض الجامعة . المرحلة الرابعة - OpenCL و CUDA : ظهرت الحاجة لمكتبة قياسية تستفيد من العدد الضخم من الأنوية cores وبالتالي تطبيق مبدأ البرمجة المتوازية ، بل والاستفادة من قدرات GPU الحسابية السريعة و الدقيقة ، حتى لو لم يكن التطبيق رسومي . لم أنتهي من المرحلة الجامعية إلا و مصنعوا البطاقات الرسومية قد طوّروا من قدرات GPU ، ليخدم قطاعات أخرى ، ولعل خطوة شركة انفيديا في هذا المجال هي الأبرز من حيث تطوير CUDA وهي معمارية ظهرت على يد شركة انفيديا وتعمل على بطاقات انفيديا الرسومية ، و يمكن من خلالها تطوير تطبيقات لا علاقة لها بالرسوميات ( ويمكن استخدامها طبعاً مع التطبيقات الرسومية ) ، وطبعاً يمكن الاستفادة من هذه المعمارية من خلال لغة C ولغات أخرى . ومن ثم ظهرت مكتبة OpenCL من مختبرات Apple والتي أصبحت الآن تحت عهدة Khronos ( نفس الجهة التي تشرف على مواصفات OpenGL ) ، وبالتالي أصبحت مكتبة قياسية يشارك في وضع قياساتها ومن ثم عمل implementation لها ، عدة شركات ضخمة AMD, IBM, Intel, و Nvidia بالاضافة لـ Apple طبعاً . تتميز OpenCL بقدرتها على العمل على أي قطعة hardware ,التي تسمى Device ، فهي قد تعمل على CPU وتستفيد من ,multi-core CPU .. وقد تعمل على GPU (لو كنت تملك واحداً ) . علماً أن عدد " أنوية " المعالج المركزي CPU قد تصل لثمانية أنوية أو أقل من هذا ( مثل Intel i7 ) .. أما في حالة GPU فأنت أمام عشرات الأنوية التي تتسابق لخدمتك ( قد تصل لمئات ) . OpenCL و CUDA لهما نفس الهدف تقريباً .. ولكن التوجه الآن هو بدعم OpenCL بشكل كامل ، باعتبارها قياسية وستعمل على أكثر من بطاقة رسومية وعلى أكثر من نظام تشغيل ، بل وحتى على أكثر من لغة برمجية .بالتالي أصبحنا بغنى عن التطفل على مبرمجي الرسوميات واستخدام أدواتهم مثل لغة GLSL أو HLSL لاستغلال قوّة GPU في أمور غير رسومية ، بل هناك ما يسمّى بـ kernel في OpenCL وهي لغة خاصة صممّت لهذا الغرض ( مبنية على مواصفات لغة سي ) . مالذي يمكنك أن تفعله باستخدام OpenCL ؟ OpenCL : هدفها الأساسي هو تسريع تنفيذ الخوارزميات ( معظمها ولكن ليس كلها ) ، فخذ مثلاً : - لو حاولت إيجاد القيمة المطلقة abs لمجموعة أعداد موجودة في مصفوفة ، يمكنك الاستفادة من Parallel programming التي تدعمها OpenCL ( البرمجة المتوازية أو المعالجة المتوازية Parallel Processing ) ، لتنفيذ هذه الفكرة ، وبالتالي تنفيذ هذه الخوارزمية على عشرات الأنوية ( Multi-core ) ، بدلاً من معالج واحد .. وبدلاً من البحث عن لغة برمجية مستقلة تدعم مفهوم البرمجة المتوازية .. - يمكن أيضاً أن تتكامل OpenCL مع OpenGL أو Direct3D .. حيث البيانات يمكن تبادلها فيما بينهما ، أي أنه يمكن أن تخبر OpenCL بتغيير قيم مصفوفة بيانات ما .. وستتأثر OpenGL بشكل مباشر دون تدخل منك ، بمجرد أن تطلب من OpenCL ذلك عند إنشاء Context . وهناك مسائل كثيرة ( تخيّل كثير من الخوارزميات فقط ) ، ولإزالة اللبس الذي قد يحصل .. أقول : OpenCL ليست مكتبة رسومية .. فقد تشاهد مثلاً تطبيق رسومي خلاّب تم تسريعه باستخدام OpenCL .. مثل عملية Raytracingالمعروفة ببطئها الشديد في السنوات الماضية ( تنتظر ساعات لترى النتيجة ) ، لذلك عملية الرسم هي من مسؤولية OpenGL ونحوها .. ولكن عملية تسريع الرسوميات ( وتطبيق مفهوم البرمجة المتوازية مثلاً ) يمكن تنفيذه باستخدام OpenCL أو CUDA .. روابط قد تفيدنا : مقطع فيديو متميز لشرح مبدأ عمل OpenCL والهدف منها http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/Introduction/Introduction.html http://cmsoft.com.br/index.php?option=com_content&view=category&layout=blog&id=99&Itemid=150 الخلاصة : " لوحة مفاتيح " Microsoft رائعة جداً ، وكما ترى .. استطعت إنهاء المقالة والتحدث عن أشياء لها ثقلها دون أن أتوقف .. السر يكمن في لوحة مفاتيح Microsoft ، ولكن التحذير بشأن الصحة الذي يظهر خلف الكيبورد .. يجبرني على أن أتوقف هنا . المقال : مكتوب بشكل سريع و دون مراجعة علمية ، وهو يفترض أن القارئ " يحب قراءة الجرائد " ، لذلك لا تعتمد عليه كثيراً في بعض النقاط العلمية الدقيقة .
  5. لديك حساب في gmail ؟ احتمال وارد أن يتعرض للسرقة . خاصة لو كنت تستخدم حساباتك في جهاز عام ( أو حتى جهاز خاص و لكن غير آمن ، قد يحتوي على تطبيقات ضارة تتنصت على لوحة المفاتيح ، key-logger ) . هناك ثلاثة خطوات ستساعدك بإذن الله على حماية بريدك الإلكتروني : استخدام مفهوم two step verification عن طريق رسالة sms: عندما تفعّل هذه الخاصية ، فإنه سيتم التأكد من هويتك مرتين ، المرة الأولى باستخدام اسم المستخدم و كلمة المرور كالمعتاد ، المرة الثانية سيطلب منك Google ادخال رقم معيّن سيصلك على هاتفك النقّال. بما أن السارق يستحيل أن يسرق هاتفك النقال و بريدك في نفس الوقت ، لذلك لن يستطيع أن يستفيد من اسم المستخدم و كلمة المرور لوحدهما . . استخدام مفهوم two step verification عن طريق هاتفك النقال الذكي ( Android - iphone الخ .. ) : تماماً كالخطوة السابقة ، و لكن لو فقدت رقمك ( أضعت شريحة الاتصال ) ، فهناك حل بديل و هو تحميل تطبيق Google Authenticator موجود في سوق iPhone و Android ، بمجرد تشغيل التطبيق سيظهر لك رقماً تدخله عند تسجيل الدخول في حسابك على google ( طبعاً بالإضافة إلى اسم المستخدم و كلمة المرور ) . . استخدام مفهوم two step verification عن طريق طباعة أرقام في ورقة ، تحتفظ بها في محفظتك ، وتضع نسخة منها في خزينة في بيتك ، في مكان آمن : لو فرضنا أنك أضعت هاتفك النقال ، أضعت شريحة الاتصال ، أضعت هاتفك الذكي ، أضعت كل شيء ، فالحل لازال ممكن من خلال أرقام ستحصل عليها من حسابك في Google ، تطبع هذه الورقة و تحتفظ بها لوقت قد تحتاجها. هذه الأرقام تستخدم مرة واحدة فقط ، بالإضافة إلى اسم المستخدم و كلمة المرور . طبعاً كل الخطوات السابقة هي خطوة واحدة فقط و تحمل نفس الفكرة two step verification . ولكن الخطوة الثانية second step تختلف من sms إلى تطبيق على الهاتف الذكي ، إلى ورقة في محفظتك تحمل بضعة أرقام سرية . بعض التطبيقات لا تدعم هذه الخاصية بعض التطبيقات مثل Chrome Sync أو حسابك في Android لا يدعم هذه الخاصية ، أي two step verification ، أي أنه يطلب منك فقط اسم المستخدم و كلمة المرور ، لذلك ستعطيك Google كلمة مرور خاصة و معقدة لكل تطبيق يطلب كلمة المرور ، تدخلها لمرة واحدة في التطبيق و تنساها ، هذه الطريقة تسمّى Application-specific passwords . تخشى من الإزعاج ؟ لاشك أن اسم المستخدم و كلمة المرور لوحدهما مزعجتين ، فما بالك بإضافة طبقة حماية أخرى و رقم آخر تدخله ؟ لذلك هناك شيء اسمه " ثقة " ، عندما تقول لـ Google أنا أثق بهذا الجهاز ، و هو جهازي الخاص في المنزل و لن يستخدمه أحد ، فـ Google لن تزعجك لمدة شهر كامل ، و بعد مضي كل شهر ستطلب منك إدخال رقم إضافي يصلك عبر الثلاث وسائل السابقة ( sms ، تطبيق على هاتفك الذكي ، رقم من الورقة السرية التي تحتفظ بها ) . للمبرمجين تستطيع الاستفادة من هذه الأفكار في تقديم حماية لعملائك ، فكرة two step verification ، وقد تجدها باسم MFA ( لا أعرف مالفرق ) ، فكرة جيدة و ليست صعبة التطبيق و لكنها حساسة نوعاً ما ، أي خطأ سيمنع عملائك من الدخول إلى حساباتهم. صفحة حسابك في Google من خلال حسابك في Google تستطيع إدارة كل هذه الأمور بسهولة. المزيد
  6. برنامجك الأول : Opengl + Glut

    السلام عليكم . الهدف : * انشاء تطبيقك الأول باستخدام OpenGL و GLUT مع CodeBlocks , أو Visual Cpp . * الشرح سيكون تحت نظام الويندوز . المتطلبات : * فهم للسي بلس .. + عمل تطبيقات سابقة باستخدام Visual Cpp أو CodeBlocks ( انظر الى قسم السي اذا كنت لا تعرف ) . * معلومات عامة حول OpenGL و المكتبة GLUT ( سيتم اضافة موضوع حول ذلك مستقبلا ان شاء الله . ) الملفات المطلوبة : * اذا كنت تريد العمل مع CodeBlocks ( والذي يأتي معه في الغالب المترجم MinGW .. فقم بتحميل البرنامج من هذا الموقع : http://www.codeblocks.org/downloads/binaries وصلة مباشرة : http://downloads.sourceforge.net/codeblock...mingw-setup.exe ملاحظة : قم بتحميل الملف الذي يأيتي معه المترجم MinGW .. أي الملف الذي حجمه كبير ( 18 ميقا تقريبا ) . * اذا كنت تريد العمل مع Visual Cpp 2005 أو Visual Cpp 2008 أو حتى 2003 >> فيجب أن تملك نسخة منه ( راجع موقع microsoft ).. (علما بأنه تم التجريب على professional و ليس express .. ) * يجب تحميل هذه الملفات : http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip التثبيت : 1- OpenGL تأتي تلقائيا مع أي مترجم . 2- لتثبيت المكتبة GLUT .. يجب اخبار المترجم بموقعها .. ويوجد عدة طرق .. منها : ---- اذا كنت تعمل على CodeBlocks : * انسخ الملف glut32.dll الى مجرد النظام C:Windows/system32 . * انسخ الملف glut.h الى مجلد المكتبات .. ستجده هنا : C:\Program Files\CodeBlocks\MinGW\include\GL طبعا حسب المكان الذي ثبت فيه المترجم ... ممكن يكون على القرص D ,, * انسخ الملف glut32.lib الى هذا المكان : C:\Program Files\CodeBlocks\MinGW\lib ---- اذا كنت تعمل على Visual Cpp 2008 : * انسخ الملف glut32.dll الى مجرد النظام C:Windows/system32 . * انسخ الملف glut.h الى مجلد المكتبات .. ستجده هنا : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl طبعا حسب المكان الذي ثبت فيه المترجم ... ممكن يكون على القرص D ,, * انسخ الملف glut32.lib الى هذا المكان : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib ---- اذا كنت تعمل على Visual Cpp 2005 : * انسخ الملف glut32.dll الى مجرد النظام C:Windows/system32 . * انسخ الملف glut.h الى مجلد المكتبات .. ستجده هنا : C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl طبعا حسب المكان الذي ثبت فيه المترجم ... ممكن يكون على القرص D ,, * انسخ الملف glut32.lib الى هذا المكان : C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib برنامجك الأول : ---اذا كنت تعمل على Visual Cpp 2008 أو 2005 أو حتى 2003 : * طبق الخطوات التالية .. بعد تشغيل البرنامج : ---اذا كنت تعمل على CodeBlocks : * طبق الخطوات التالية : بالنسبة لهذه النافذة .. قم باضافة مكتبة بالضغط على add .. ثم اضف المكتبات التالية : opengl32 glu32 winmm gdi32 ُم اضف المكتبة glut32.lib .. والتي ستجدها في المكان الذي وضعتها فيه قبل قليل .. ( انظر التثبيت ) .. انظر الى الصورة .. لتجد مثال على ذلك . وأخيرا : ملاحظة : هذا هو الكود المستخدم في المثال .. اذا كنت متعاجز أن تكتبه :) : انسخ الكود #include <windows.h>#include <GL/gl.h>#include <GL/glut.h>void display(void) { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); glRectf(-0.5,-0.5,0.5,0.5); glutSwapBuffers();} void idle(void) { glutPostRedisplay();}int main(int argc,char **argv) { glutInit(&argc,argv); glutInitWindowSize(512,512); glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE); glutCreateWindow("OpenGL GLUT "); glutDisplayFunc(display); glutIdleFunc(idle); glutMainLoop();  return 0;}    
  7. السلام عليكم : فهرس لأهم المقالات والمناقشات في قسم برمجة الألعاب والرسوميات ، في حال سقوط أي موضوع سهواً من القائمة ، الرجاء تبليغ مشرفي القسم بذلك ، مع العلم أنه تم ازالة الكثير من المقالات ، إما بسبب تعطل بعض الروابط ، أو بسبب سوء تنظيم المقال ، أو بسبب ضعف المحتوى العلمي . للفائدة: الحكم الشرعي لبرمجة وتصميم الألعاب .       مبادئ و مفاهيم وخوارزميات برمجة الالعاب والرسوميات : مقالات عامة : كيف تصنع الألعاب؟ دروس فيديو(انجليزية) لبرمجة لعبة بلغة سي++ للمبتدئين Direct3D vs OpenGL ، أيهما تختار ؟ س و ج في برمجة الالعاب مسائل منخفضة المستوى لا بد من الالمام بها حجر الأساس: الـ game loop تحريك الأجسام في اللعبة نظرية و تطبيق بسيط لآلية التي يستخدمها الكومبيوتر للرسم على الشاشة معمارية اللعبـة الاسس في برمجة الالعاب . ترجمة كورس 3D Game Programming With DirectX Module 1 خوارزميات رسم الأشكال :   معالجة الصور :     [*]المكتبات الرسومية ومحركات الألعاب:     irrlicht دروس تطبيقية: IrrlichtCP و لغات الدوت نت مقدمة لاستعمال Irrlicht Framework ، مع لغات الدوت نت . Ogre أول الخطوات مع Mogre ( لغات الدوت نت ) . XNA سلسلة دروس تعلم ال XNA , سلسلة دروس ثنائية البعد ، 22 درس . سلسلة دروس تعلم ال XNA سلسلة دروس ثلاثية البعد [السلسلة الأولى] ، 13 درس سلسلة دروس تعلم ال XNA سلسلة دروس ثلاثية البعد [السلسلة الثانية] ، 14 درس   SDL مثال عمل animation في SDL   OpenGL انظر إلى قسم OpenGL في هذا المنتدى. DirectX انظر إلى قسم DirectX في المنتدى.   [*] الرياضيات والذكاء الإصطناعي ::         درس عن الـ vectors (المتجهات) المصفوفات و برمجة الألعاب مبادئ : دروس الرياضيات والذكاء الاصطناعي(الدرس الأول - الاتجاهات) دروس الرياضيات والذكاء الاصطناعي(الدرس الثاني - المسارات المستقيمه     [*] الفيزياء واكتشاف التصادم: مثال فيزيائي تعليمي .. باستخدام VB .. من مجلة F1 . محاكاة حركة فيزيائية لسيارة + تصادم جلسة تعارف مع مكتبة Tokamak الفيزيائية مقدمة إلى المحرك PhysX[*]الصوتيات : OpenAL و Win32 APIs[*]الشبكات: مدخل إلى برمجة شبكات الألعاب [*]تطبيقات من أعضاء القسم : أداة : صانع المسارات و أكواد أخرى مفيدة , برنامج توليد الخطوط بلاحقة BMP أداة " صانع الخط العربي "          
  8. السلام عليكم , هذه مجموعة من الامثلة والتطبيقات (سيتم شرحها بعد أيام في هذا الموضوع ) لعمل ساعة في OpenGL , حيث أنه يوجد عشرات الاسئلة التي تسأل عن هذا الموضوع بالرغم من أنه ليس بتلك الصعوبة , ولا يحتاج لمهارة لحله , المثال الأول : عمل ساعة الكترونية : المرفقات . GL_Clock.zip المثال الثاني : عمل ساعة عقربية ( يعني فيها عقارب : ) ) المرفقات . GL_Clock2.zip يحوي الكود على شرح لبعض الاسطر , وسأتكلم عن باقي النقاط التي قد تحتاج الى شرح مع طرح مزيد من الامثلة في وقت لاحق ان شاء الله لانه لا يوجد لدي الوقت الكافي الان - يجب ان تراجع أساسيات OpenGL , و السلام عليكــم
  9. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته. هذا الموضوع عبارة هن دليل للمبتدئين في هذه اللغة وهو أشبه ما يكون بـ FAQ ( أكثر الاسئلة شيوعا ). الاسئلة التي سنطرحها .. ستكون عبارة عن أول خطوة يخطوها أي شخص يريد البدء بعمل شيء ما في لغة السي/السي بلس . سنشرح أولى الخطوات لعمل برنامج بلغة السي بلس , وأولى الخطوات لعمل برنامج يحوي واجهة , وأولى الخطوات نحو برمجة الشبكات وأولى الخطوات نحو برمجة الملتيميديا ,, الخ .. قد لانلتزم بدقة المعلومات اذا كان ذلك يؤدي الى تعقيدها .., وملاحظة أخيرة : لقد تكلمت في هذا الموضوع عن Visual Cpp 2005 , وكل ماقلته عن هذا المترجم ينطبق على Visual Cpp 2008 . 1- ما هو الفرق بين لغة السي والسي بلس ؟ لغة السي ظهرت قبل لغة السي بلس . بالتالي لغة السي بلس هي إمتداد للغة السي . فكل الامور الموجودة في السي ستجدها في السي بلس لكن العكس غير صحيح . 2- ما هو الفرق بين Cpp و Borland Cpp . Cpp و Visual Cpp CPP و CPP.NET CPP و ؟؟؟؟؟؟ . ؟ لغة السي بلس هي لغة واحدة .. ولكن الشيء اللي يحول الكود الذي تكتبه إلى تطبيق هو الذي يختلف ..يوجد العديد من المترجمات .. منها مترجمات مايكروسوفت و بورلاند ..وغيرها . كلها في النهاية تمكنك من تحويل كود السي إلى تطبيق . أما لغة Cpp.net وتسمى الان بالCLI ,, فهي مختلفة ... ولايلزمك تعلمها .. فهي خاصة ببيئة الدوت نت .. 3 - هل أتعلم السي أو أتعلم السي بلس وهل اذا تعلمت واحدة منهما اكون قد تعلمت الاخرى ؟ نصيحة : لاتقل : أريد ان اتعلم السي .. ثم اتعلم السي بلس . ومن هذا الكلام . فالان أغلب الكتب والدروس هي تدمج السي بالسي بلس او لنقل تركز على السي بلس . لانك اذا تعلمت فقط السي تكون قد قطعت 75% من المشوار . اما اذا تعلمت السي بلس فانك تكون قد قطعت 100% من المشوار . ( من هنا وصاعدا وفي هذا الموضوع اذا رأيتني اكتب " لغة السي" فاني اعني السي والسي بلس لا افرق بينهما ) 4- ماهي حدود لغة السي ( او السي بلس بلس ) ؟ ليس أمامك حدود فكل شيء تستطيع عمله باستخدام هذه اللغة . ( هذا بشكل عام ولا علينا من الامور الدقيقة ) . فمثلا برامج التصميم كالفوتوشوب والثري دي ماكس . من انتاج هذه اللغة , 90% من برامج اللينكس هي من انتاج لغة السي . لاتنسى أيضا برمجة الالعاب .. اللغة الرئيسية لبرمجة الالعاب هي لغة السي بلس 5- أنا تعلمت لغة برمجة اخرى في السابق ( مثل لغة الفيجوال بيسك او لغة الدلفي او الجافا ) .. هل من الممكن أن يفيدني هذا بشيء عندما أتعلم لغة السي ؟ نعم .. اتقانك للغة اخرى يسهل اتقانك للغة السي .. فلغات البرمجة تشترك في كثير من الامور .. فهي تتكون من متغيرات ومصفوفات ودوال وتراكيب وكائنات .. لكن يجب عليك أن تكون مستعدا للتأقلم مع لغة السي .. فستجد بعض الاختلافات والفروق .. وتحتاج وقت لاتقانها . 6- ماهي المدة التي أحتاجها لاتقان لغة السي ؟ هذا يعتمد على طريقتك في التعلم . فاذا كنت يوميا تتعلم هذه اللغة .. فبامكانك تعلمها في مدة لاتزيد عن خمسة أشهر . 7- أريد تعلم هذه اللغة واشتريت ونزلت وقرأت كتب ... وانا متحمس جدا .. لكن أين أكتب الكود ؟ ؟ ألا يوجد برنامج للغة السي يقوم بتحويل الكود الى برنامج ؟ شكر : للاخ AmR EiSa لتعديله على هذا الجواب: حسنا, أنت تحتاج لشرح بعض المصطلحات : البرنامج الذي تكتب فيه ( كود لغة السي ) تستطيع أن تكتبه بأي محرر نصوص .. وليكن المفكرة .. ولكن توجد برامج توصف بأنها بيئة تطوير IDE .. والذي يقوم بتحويل الكود الى ملف معين يسمى (COMPILER) الكومبايلر او المترجم او المصرف ... طبعا لن اتكلم عن linker والامور الاخرى .. هذه ستعرفها انت اذا بدأت في تعلم اللغة . ببساطة .. وباختصار .. نسمي البرامج اللي تكتب فيها الكود وتحولها الى تطبيق بالمترجم . أما اذا أردت مزيد من التفصيل .. فنقول : يوجد عدة مترجمات .. مثلا مترجمات مايكروسوف و أيضا البورلاند .. وايضا GCC وغيرها . ثم يوجد ما يسمى بالرابط linker .. المترجم والرابط يقومان في النهاية بإنشاء الملف التطبيقي . وتترجم الكود عن طريق موجه الاوامر .. ولكن يوجد برامج تحتوي على واجهة . تختصر لنا الطريق وتعتمد على تلك المترجمات .. وتوصف هذه البرامج بأنها IDE ( بيئة تطوير لغة السي ) . مسألة أخرى وهي أنواع ملفات السي بلس : ملفات السي كثيرة وتختلف من مترجم الى آخر .. ولكن أهمها : ملف إمتداده .cpp - c ملف إمتداده .h او hpp . ( ويسمى الملف الرأسي ( header file ) ويوجد ملف ثالث هو الذي يقوم بتجميع مشروعك .. يعني لنفرض عندك 15 ملف cpp و 15 ملف h من الصعب أن تفتحها كلها يدويا بالتالي يوجد ملف ثالث يختلف من مترجم لاخر يقوم بتجميع مشروعك من هذه الملفات : ملف امتداده : .dsw او dsp وهو من ملفات مترجم الفيجوال سي 6 . dev وهو من ملفات المترجم dev-cpp . وغيرها .... نعود مرة أخرى للمترجمات .. الاسئلة والأجوبة التالية ستوضح لك أي مترجم تختار وكيف تعمل عليه . 8- ما أفضل المترجمات ؟ يجب أن تعرف أنه يوجد فرق بين المترجم والمحررات المرئية IDE .. بعض المترجمات تأتي بمترجم + واجهة للعمل عليه مثل مترجمات مايكروسوفت , وهنا مترجمات تأتي بدون واجهة ... ونستعمل برامج أخرى لتسهيل العمل على هذا النوع من المترجمات .. وتسمى تلك البرامج بالIDE . أما المترجمات فهي : 1- Visual Cpp : وهو عدة اصدارات .. 6 ثم 2003 ثم 2005 ,والان 2008 وكلها من انتاج مايكروسوفت .. يوجد اصدار مجاني لكن لا انصح به لان ينقصه عدد من المكتبات الاضافية , لذلك حاول الحصول على النسخة الكاملة .. المترجم هو أفضل المترجمات حاليا للويندوز. 2- ِC++ builder : ( شكر للاخ B.M.AbdelAziZ على الاضافة) http://www.codegear.com/products/cppbuilder غير مجاني .. ولست متأكد بعد من وجود نسخة مجانية . من يملك معلومات أكبر عنه فليزودني بها أو يعدل على هذا الموضوع 3- Dev-cpp : هو عبارة عن محرر IDE يستخدم المترجم MinGW .. هو كاف لمن يريد تعلم لغة السي بلس وبرمجة تطبيقات الويندوز .. وهو مجاني . 4- CodeBlocks: أيضا هو عبارة عن IDE يعني محرر .. وستخدم مترجمات أخرى .. منها MinGW .. أيضا مجاني ويعمل على الويندوز و لينكس . http://www.codeblocks.org/ 9- أريد تطبيق أول برنامج لي في لغة السي بلس .. باستخدام Visual Cpp 6 .. هل من الممكن المساعدة ؟ اقرأ هذا الدرس . المترجم : visual c++ 6 10- أريد تطبيق أول برنامج لي في لغة السي بلس .. باستخدام Visual Cpp 2005 .. أو Visual Cpp 2008 , هل من الممكن المساعدة ؟ اقرأ هذا الدرس 11- أريد تطبيق أول برنامج لي في لغة السي بلس .. باستخدام Dev-Cpp .. هل من الممكن المساعدة ؟ اقرأ هذا الدرس 12- طفشت من الشاشة السوداء .. هل يمكنني أن أطور برامج مرئية فيها أزرار ورسومات ؟ نعم .. لكن تذكر أن لغة السي بلس تعمل على أكثر من نظام .. لذلك .. في كل نظام يوجد طريقة خاصة لانشاء برامج مرئية .. نذكر منها : 1- Win32 API : هي عبارة عن مجموعة من الدوال والتراكيب التي منها تم بناء نظام الويندوز .. موجودة في ملفات DLLs مثل GDI .. ( التعريف ليس دقيق) . أي شيء تراه في الويندوز أمامك هو نتيجة لدالة من هذه الدوال .. الجافا والسي شارب والاسمبلي .... كلها ومن اجل انشاء برنامج مرئي .. تستخدم الWin32 API بشكل مباشر أو غير مباشر .. ميزة الWin32 API هي أنها الأساس والقاعدة .. لو فهمتها فهمت أصول البرمجة لويندوز , كما يمكن تطوير برامج من خلالها باستخدام Dev-Cpp أو Visual Cpp , ويكفيك تعلم لغة السي فقط لتتعلمها . وعيوبها .. أنها طويلة + خاصة لنظام الويندوز . 2- MFC : مكتبة تقوم بتغليف الWin32 API بطريقة كائنية OOP .. ميزتها أنها أسهل من Win32 API فقط لمن هو وصل لدرجة الاحتراف في السي بلس بلس ..وفهم الOOP, وعيوبها أنها خاصة بالويندوز وخاصة بمترجمات مايكروسوفت Visual Cpp . 3- QT : تعمل على أكثر من نظام .. وعيوبها انها مجانية فقط للمشاريع الغير تجارية + لاتعمل على Visual Cpp انما على المترجمات المجانية الاخرى . ( أنا هنا أتكلم عن النسخة المجانية من qt ) . 4- .. عشرات المكتبات الاخرى ... لايتسع المقام لذكرها . 13- أريد تطبيق أول برنامج لي باستخدام Win32 API .. باستخدام Visual Cpp 6 .. هل من الممكن المساعدة ؟ قريبا ان شاء الله . 14- أريد تطبيق أول برنامج لي باستخدام Win32 API .. باستخدام Visual Cpp 2005/2008.. هل من الممكن المساعدة ؟ اقرأ هذا الدرس ( الجزء الأول منه يشرح ماتريد) 15- أريد تطبيق أول برنامج لي باستخدام Win32 API .. باستخدام Dev-Cpp .. هل من الممكن المساعدة ؟ اقرأ هذا الدرس ( الجزء الثاني منه يشرح ماتريد) 16- أريد تطبيق أول برنامج لي باستخدام MFC .. باستخدام Visual Cpp 6 .. هل من الممكن المساعدة ؟ قريبا ان شاء الله . 17- أريد تطبيق أول برنامج لي باستخدام MFC .. باستخدام Visual Cpp 2005/2008. هل من الممكن المساعدة ؟ اقرأ هذا الدرس 18- أريد تطبيق أول برنامج لي باستخدام QT.. باستخدام Dev-Cpp .. هل من الممكن المساعدة ؟ برنامجك الأول مع Qt .. باستخدام Codeblock أو Dev-Cpp 19- كانت برامجي تعمل وبشكل رائع في الفيجوال سي 6 , لكن وما أن تحولت الى Visual Cpp 2005 وقمت باعادة ترجمة تلك البرامج .. حتى ظهرت لدي أخطاء لاتعد ولاتحصى ... مالسبب في ذلك ومالحل ؟ قريبا ان شاء الله . 20- يوجد في الفيجوال بيسك شيء اسمه ocx .. وفي الجافا تقدر تضيف مكتبات .. وفي السي شارب تقدر تضيف مراجع .. فهل يوجد في السي بلس طريقة لاضافة مكتبات خارجية ؟ نعم يوجد , في السي بلس يمكنك اضافة مكتبات خارجية قام مبرمجو العالم بتطويرها .. فمثلا لقراءة صورة من نوع bmp فأنت بحاجة لكتابة 200 سطر على الأقل , كما هو الحال في أي لغة برمجية .. ولكن لماذا تتعب نفسك ,, حيث توجد عشرات المكتبات التي تقوم بذلك عنك . المكتبات في السي بلس بشكل عام اما تكون مفتوحة المصدر .. أو مغلقة المصدر ,, في كلا الحالتين تستطيع الاستفادة منها .. - اذا كانت المكتبة مفتوحة المصدر .. مثل مكتبة tinyxml ..فتستطيع الاستفادة منها ووبساطة بأن تنسخ الملفات cpp و h الى مجلد مشروعك وثم تستدعي الملفات المطلوبة include .. - اذا كانت المكتبة مغلقة المصدر , binary , فأنك ستجد أنه تتكون من ثلاثة أجزاء رئيسية في الغالب : 1- ملفات رأسية header files . 2- ملفات المكتبات وامتداداها في Visual Cpp هو .lib أما امتدادها في الMinGW (في Dev-cpp ) هو .a 3- ملفات dll ( غالبا) حيث هذا يعني ان الربط سيكون ديناميكي ,, وليس ستاتيكي . كل IDE ( محرر) له طريقة في ربط المكتبات ... وكل مكتبة في الغالب ستشرح لك طريقة الربط .. في النهاية طريقة الربط واحدة في 90% من المكتبات . 21- هل يوجد مثال عملي على كيفية ربط مكتبة .. في الفيجوال سي 6 ؟ قريبا ان شاء الله . 22 - هل يوجد مثال عملي على كيفية ربط مكتبة .. في الفيجوال سي 2005 ؟ قريبا ان شاء الله . 23- هل يوجد مثال عملي على كيفية ربط مكتبة .. في Dev-Cpp ؟ قريبا ان شاء الله . 24- ماهي ال STL ؟ هي تقوم بما تقوم به ال Data Structures , ويقابلها في الجافا Collection . مكتبة تكون موجودة مع أي مترجم محترم ,, :D .. مواضيع ذات صلة : ++C المتقدمة: مكتبة STL الطريق إلى إحتراف التعامل مع STL 25- ماهي ال ATL ؟ نرجو المساعدة في اجابة هذا السؤال . 26- هل توجد مكتبات لتحميل وتحويل عدة أنواع من الصور ؟ قريبا ان شاء الله . 27- هل توجد مكتبات للتعامل مع الملفات المضغوطة ؟ قريبا ان شاء الله... 28- هل توجد مكتبات للتعامل مع ملفات الxml . قريبا ان شاء الله... 29- هل توجد مكتبات للتعامل مع الشبكات وبرمجياتها ؟ قريبا ان شاء الله... 30- هل توجد مكتبات للتعامل مع برمجة الجرافكس وعالم الجرافكس ؟ قريبا ان شاء الله... 31- هل توجد مكتبات لانشاء تطبيقات فيزيائية ؟ قريبا ان شاء الله... 32- هل توجد مكتبات لانشاء قواعد بيانات و/أو ادارتها ؟ نرجو المساعدة في اجابة هذا السؤال .. 33- أين ممكن أن أجد شرح لجميع مكتبات السي والسي بلس القياسية ؟ http://www.cplusplus.com/reference/ http://www.cppreference.com/ http://msdn2.microsoft.com/en-us/library/3bstk3k5.aspx 34- ماهي المراحل التي يمر بها البرنامج بلغة ++C قبل تنفيذه؟ بواسطة : time1 يمر البرنامج بلغة سي ++ بست مراحل قبل تنفيذه وهي : المرحلة الاولى : كتابة البرنامج Edit . المرحلة الثانية: مرحلة ماقبل الترجمة او المعالجة Preprocess المرحلة الثالثة : الترجمة Compile المرحلة الرابعه: الربط Link المرحلة الخامسة. التحميل Load المرحلة السادسة . التنفيذ Execute كتابة البرنامج ,وفيها تتم كتابة البرنامج بواسطة محرر النصوص الخاص بالمترجم والذي سيقوم بالتدقيقات والبحث عن الاخطاء اللغوية , اما الاخطاء المنطقيه فهي تتم من خلال تجريب البرنامج والبحث عن المخرجات والتمعن فيما اذا كانت تماثل المخرجات العقلية ام لا . بعدها تتم عملية ماقبل الترجمة الفعلية او المعالجة وعندها يتم التعامل مع مجموعة من التوجيهات والاجراءات الواجب تنفيذها على نص البرنامج قبل عملية الترجمة , اي ( معالجة البرنامج قبل عملية الترجمة ) وتشبه هذه العملية المعالجة الاولية لمحرر النصوص وتعمل هذه العملية على الاضافات اللازمة والتعديلات اللازمة على البرنامج المصدري . بعدها تتم عملية الترجمة : اي تحويل البرنامج المكتوب بلغة السي ++ إلى لغة الالة . اي تحويل الكود من لغة سي ++ إلى لغة الالة , ولكن هذا الكود غير قابل للتنفيذ حتى الان . مرحلة الربط . وهي ربط النصوص مع بعضها بالطرق المنطقيه , اي : ان برامج سي ++ تحتوي على استدعاء دوال تم تعريفها في اماكن مختلفه مثل : المكتبات المعيارية , او المكتبات الخاصة بمجموعة من المبرمجين لتسهيل العمل عليهم مستقبلا ً . يحتوي الملف المراد ترجمته على نقص في عملية الترجمة فيقوم الرابط بعملية الربط بين النقص الحاصل في الملف المراد ترجمته واماكن تواجد النصوص الناقصه , وهذا يعني الربط بين استدعاء الدالة ومكان تعريفها . ينشأ لنا بعد ذلك ملف تنفيذي يمثل الصورة الاساسية للبرنامج , بعدها تأتي عملية التحميل . التحميل : ونقصد بهذا المفهوم تحميل البرنامج إلى الذاكرة لتنفيذه ويقوم بهذه العملية المحمل الذي ينقل الملف التنفيذي إلى الذاكرة , وبعدها يبدا الحاسب بتنفيذ البرنامج بشكل متسلسل حيب التعليمات , اي تعليمة تلو الاخرى حسب اشراف وحدة المعالجة CPU ======== تم بحمد الله . في المرفقات ... مرفق قديم يشرح طريقة بناء اول برنامج لك في بعض المترجمات .. لن تحتاج اليه .. ولكن سأتركه لوجود شرح لاحد المترجمات التي لم اذكرها هنا في هذا الموضوع. cpp_ide___com.zip
  10.  و عليكم السلام ،  الرزق بكل مكان ، لكن هنا تقريبا التركيز على :  Oracle Database DeveloperJava/Middleware DeveloperDot Net/Sharepoint DeveloperUnix/Linux System Adminوهذه الأيام موضة Mobile Development مطلوبة خصوصا iOS,Android and Windows 8 ،الخ ..  عموما أي تخصص تتقنه وتتميز فيه ستجد لك مكان بحول الله ، لكن لا تشطح كثير ، كأن تركز على  " برمجة ألعاب " ، إلا إذا بزنس شخصي .
  11. بارك الله فيك ، نعم الطريقة تعمل ، شكرا لك :-)
  12. السلام عليكم ، لدي في العمل جهاز Ubuntu 11 ، يتصل بالانترنت عن طريق proxy ، و أغلب البورتات مقفلة باستثناء 80 و 443 ، أريد تصفح المواقع الداخلية للعمل + عمل ssh من المنزل ( يعني تصفح ملفات جهازي و البرمجة من المنزل ) ، لا أريد أن أطلب منهم حساب VPN ، أريد عمل هذا بنفسي . الجهاز في العمل خلف جدار ناري + NAT ، يعني ليس له IP عام ، استخدمت reverse tunnel ، حيث لدي سيرفر شخصي ، وسبب اعتمادي على سيرفر شخصي هو أن له IP ثابت ، بهذه الطريقة : من جهاز العمل : ssh -R 20000:localhost:22 [email protected] -p 443 الآن بعد أن دخلت على سيرفري ، أعمل reverse و أكتب : ssh [email protected] -p 20000 الآن أنا قادر على التجول في الجهاز من منزلي . المشكلة ، التي لم أستطع حلها ، أريد تصفح المواقع ؟ المقصد أريد أن أفتح موقع ERP ، من بيتي ، يتصل على سيرفري الشخصي ، الذي بدوره يتصل على جهاز العمل لأن فيه reverse tunnel ثم يجلب الموقع ، أستطيع أعمل tunnel نم بيتي للسيرفر ، لكن ما عرف أعمل tunnel للطلبات الخارجة من السيرفر إلى العمل ، ==== إذا لم تفهم السؤال ، فهو ببساطة ، كيف استخدم socks5 في ubuntu بحيث أعمل tunnel لجميع البيانات الخارجة من سيرفري إلى جهاز العمل ، وهل openVPN أفضل في هذه الحالة ؟ و شكرا ً . -
  13. نهاية XNA!

    بالنسبة للقرصنة ، Microsoft هي السبب للأسف ، هي التي خلقت هذا الجو المقرصن ، لأنها تغاضت عن القرصنة لنشر نظام Windows ، فلم تنظم سوق التطبيقات والألعاب على PC و لم تضف له متجر ، و لم تفعل أي شيء لتحسينه طوال ٣٠ سنة، بينما Apple عندما طرحت سوق التطبيقات ، نجحت في تنظيم سوق الألعاب و التطبيقات خلال سنة واحدة. أسقط هذا على XBox ، حيث الألعاب المقرصنة عليه منتشرة بكثرة مقارنة بـ PS3 ، لنفس السبب، على الأقل عندنا في الخليج ، جميع ألعاب XBox منسوخة بإستثناء التي تلعب Online ، بينما Sony تقاتل لتحمي جميع الألعاب من النسخ الغير مشروع ، أشعر أنها سياسة من MS ، أتمنى أن أكون مخطئ .
  14. نهاية XNA!

    تفسير منطقي ، لكن قل أن Microsoft ستركز على البنية الأساسية DirectX ، لأن HTML5 لوحدها لا تقدم حلول ،فإذا كان فريق العمل في الشركة يؤمن في أن المستقبل مع HTML5/JS ، فلماذا لا يدعم OpenGL ES حتى يجذب مطوري الألعاب ؟ هل يمكن استخدام DirectX مع HTML5/JS ؟ و حتى لو قدمت MS البديل لـ OpenGL ES ، كيف ستقنع Google و Apple و Opera و Mozilla؟     مع الوقت قد تنحصر شعبية DirectX ، لأن المستقبل هو لألعاب الويب و الموبايل كما يبدو ، 
  15. نهاية XNA!

    لهذا يقولون استثمر في شركة مساهمة ولا تستثمر في شركة عائلية تخضع لقرار فرد . تعلم شيء مبني على مواصفات سواء قياسية أو Industry Standard، مثل Java و OpenGL و غيرها 
  16. هلا محمد : ) ، بارك الله فيك ، نعم تعمل .. جميع المواقع الداخلية أصبحت تعمل بإستثناء بعض المواقع الداخلية التي تطلب Authentication لا تعمل ، لأن Dialog لا يظهر : أنت تعرف أن بعض المواقع تطلب auth عبر Dialog يطلب اسم المستخدم و كلمة المرور ، مثل الشكل التالي : لا يظهر هذا Dialog من خلال المتصفح في المنزل، لكن من خلال سطر الأوامر استطعت فعل هذا : http://stackoverflow.com/questions/12355003/how-to-use-curl-with-a-website-that-shows-dialog-asking-for-authentication عموما النقطة الأخيرة ليست مهمة بالنسبة لي ،
  17. النقاط التي ذكرتها صحيحة ، لكن الخطأ في العنوان ، أنت تقارن لغة C مع Java ، كل لغة لها أهداف مختلفة و حتى نمط برمجي مختلف كما ذكر @A.S Hack ، لو قارنت Cpp مع Java لكانت المقارنة ممكنة ( مع بعض التحفظ ) . عموماً مقال منظم و مفيد بالمجمل ، مع أني أتمنى أن يخرج المبرمج من حصر نفسه في لغات معينة ، الآن أصبحنا نستخدم ٤ لغات برمجية في تطبيق واحد ، الأمر واسع ولا يحتاج لمزيد تفكير ، شكراً .
  18. السلام عليكم ، أؤمن بفائدة Middleware العظيمة للمؤسسات المتوسطة و الكبيرة ، لكن عندما أحاول أقنع بها فريق عمل متعاون معهم ، لديهم core system واحد فقط ، و 4 قنوات channels تتواصل مع core system ، أفشل ، فلو قلت مثلاً ممكن نضيف queuing system لهذا middleware ، قالوا ، نضيفه في core system / backend system ، ولا نحتاج لـ layer جديدة ! و لو قلت أنه أداة ربط بين مختلف الأنظمة لتتخاطب بلغة واحدة ، قالوا نضيف هذا لـ core system ( يستخدمون xmlrpc في core system ) ، وهكذا ... لا أعرف أقنع من أمامي ، فهل يمكن تلخيص فوائد Middleware بنقاط ؟
  19. اعتدنا أن نرى مجموعة من APIs من Google أو Facebook أو Twitter ، قد تكون web service مثلاً ، لكن Twitter قدمت لنا إطار عمل " إن صحت التسمية " ، يحمل الإسم Bootstrap، وهو مخصص لتصميم واجهة المستخدم بإستخدام CSS و HTML . إطار العمل " مفيد لأبعد حد ، متأكد أنك ستحبه من أول قضمة نظرة " . الفكرة بإختصار ، لديك مجموعة من قواعد CSS ، وما عليك إلا استدعائها في صفحتك ، دون أن تفكر كثيراً بمسألة التوافقية و خلافه ، وتغطي المجالات التالية : Grid System : تستطيع تقسيم الصفحة إلى مجموعة من المربعات ليصبح لديك تقسيم شبكي للصفحة .Layout : الثابت و الديناميكي .Typography : تنسيق الخطوط و العناوين و الفقرات ونحوه .Tables : تصفيف البيانات على شكل جدول ،Forms : :-) ، بدون تعليق .الأزرار ..شريط الأدوات ، ترقيم الصفحات ..رسائل التحذير و الأخطاء .....الجميل أنه يمكنك استخدامها مع Less أو بدون ، Less مثلها مثل Sass ، لغة CSS http://twitter.github.com/bootstrap/
  20. لم أكن أعرف عن UFS ، شكراً على المعلومة ، لكن في Linux هناك ext3 و ext4 و قد حلوا المشاكل التي تقول عنها ، لو تم اغلاق النظام بشكل غير صحيح ، يمكن اصلاح كل شيء في ثواني على فرض أن هناك مشاكل . هذا ما أعرفه و هذا أيضاً عن تجربة. بالنسبة لـ Unix بشكل عام ، يبدو UFS مستقر، والدليل Playstation 3 و Playstation 2 يعتمدان على UFS ، و قد جربت فصل التيار عن البلايستيشن بشكل عشوائي ولم يحدث شيء ، كل ما سيحدث أن crash recovery سيشتغل وبعد 10 ثواني سيعود كل شيء على طبيعته. بدلاً من نقل جمل لا معنى لها من بعض الكتب ، لماذا لا تجرب بنفسك ، أحضر نظام Unix حديث ، و افصل عنه المقبس و انظر ماذا سيحدث ؟ أكره رمي الاتهامات و تصديقها بمجرد قراءتها في كتاب دون التحقق منها.
  21. أتمنى من الأخ العزيز عماد @blaz_boy أن يبتعد عن هذا النوع من المشاريع و يستثمر قدراته في إنتاج شيء آخر . أنت مبرمج و لست مترجم . المبرمج يبدع و لا يترجم .
  22. كنت أكره نظام Mac لكرهي لكل متفلسف يظن نفسه وصل القمر بحصوله على ماك ، أما وقد أصبح ماك في متناول الكثيرين فقد حصلت على واحد و لله الحمد . الليلة التي عرفت فيها ماك بكيت ، بكيت على سنين كنت فيها تائهاً ، ،لكن عزائي أني كنت غير قادر أصلا على شراءه :-) . 101 سبب تجعلك تعشق نظام Mac حتى الجنون 1 ) User Experience : باختصار ، واجهة المستخدم هي أكثر ما سيأسرك ، لا تفهمني خطأ . لا أقصد تأثيرات تافهة ليس لها قيمة. بل وضوح الازار و وجودها في أماكن ستتوقعها ، و إضافه تأثيرات على النافذة في حال كان هناك داعي. الأيقونات ، الشريط العلوي ، أسطح المكتب المتعددة ... أمور كثيرة ستأسرك . بصراحة ، Windows , Ubuntu Unity , Gnome 3 لم تصل لصلابة و ابداع ماك في هذا المجال. حتى لو انتقلنا بعيدا ، تثبيت البرامج ، اعدادات النظام ، ادارة كل شيء أصبح piece of cake 2 ) TrackPad : أمضيت سنين عمري و أنا أستخدم سبابتي مع الفأرة و اكتشفت لاحقاً أن أصابعي الأخرى لها تأثير السحر مع TrackPad , انتاجي تضاعف 4 أضعاف بفضل دخول الابهام و الخنصر و البنصر و الوسطى في العمل اليومي . جرب تستخدمه ، ستكره الفأره ، أقسم بالله ستكرهها . 3 ) بسيط للمبتدئين ، أعماق سحيقة للمحترفين : أنت أمام نظام مبني على Unix ، يحترم معايير POSIX ، يجمع بين روعة الأنظمة المفتوحة ، و جودة User Exp ، استخدامك لـ Mac لا يعني أن تبدأ من جديد ، بل كل ما كنت تعمله مع GNU Linux مثلاً ، يمكنك فعله مع Mac OS . 4 ) أشياء لم تكن تعلم عنها : هل تعلم أن أباتشي سيرفر ، مضمن في ماك ؟ هل تعلم أن PHP مضمنة أيضاً ؟ هل تعلم أنه يمكن تفعيلهما بضغطة زر ؟ هل تعلم أن مشاركة ملفاتك مع الآخرين ممكنها و بطرق واضحة بدون فلسفة و بطريقة قياسية ؟ نظام Mac OS أبدع في استغلال التطبيقات مفتوحة المصدر و تسخيرها لصالحه ، و لصالح المستخدم . لا يتفلسف كثيراً ، يقدم لك الأمور بطريقة مبسطة وسلسلة . 5 ) أخرى : , Mission Control , Launch Pad ,icloud ، تحديث النظام التلقائي البسيط ، شراء النظام من سوق البرامج ، سوق البرامج ، XCode ، الخ .. هذه 101 سبب تجعلني أعشق ماك . نعم , لم أكذب ، 101 سبب و لكن بالـ Binary .
  23. نسخة سطح المكتب ليس متصفح ، إنما إمتداد( إضافة) داخل المتصفحات ! يبدو هذا منطقياً لو تخيلنا المتصفح نظام التشغيل! عموماً أنا سأغيب عن المنتدى ليومين أعمل متصفح و أرجع ، ياهو ليست أفضل منّا :-) ..
  24. السلام عليكم ، كنت أريدها مقالة قصيرة علمية رصينة ، ولكن لظروف قاهرة [كسل رهيب ] جعلت المقالة ترفع شعار " للاطلاع فقط " ، ولم أتمكن من تمحيصها جيداً ، حيث انشغلت البارحة بمتابعة Ice Age للمرة الرابعة عشر، ولكن لنبدأ بالعصر الحجري للكمبيوتر ، حيث كانت الأفكار في ذلك الوقت تحاول أن تتخيّل الكمبيوتر وتحاول توجد الأدوات التي من خلالها نصنع البرنامج ولم أسبر أغوار تلك الفترة جيداً لذلك سأنتقل للعصر الجليدي - أواخر السبعينات - حيث CIA كانت تريد من شركة Ampex ، التي كان يعمل فيها " Ellison" ، تطوير قاعدة بيانات أسماها فيما بعد بـOracle والتي ظهرت كقاعدة بيانات علائقية - مبنية على فكرة الجداول - ومن الجيد أن اذكر أني قرأت في مكان ما أن أوّل نسختين من Oracle تم تطويرها باستخدام Assembly قبل أن ينتقلوا للغة السي ، وهذا يفتح باب لسؤال مهم : أيهم أقوى ، السي أم الاسمبلي ؟ تباً ..هل دار بخلدك هذا السؤال الآن ؟! على مدار تطوّر Oracle وتقدمها ، بدايةً من اعتمادها على معمارية Client/Server ثم 3-tier ، واخراج لغة مثل PLSQL وما إلى ذلك .. إلا أن الفكرة كانت واحدة وهي الاعتماد على " الجداول " كمبدأ أساسي في تخزين البيانات وتنفيذ الاستعلامات باستخدام لغة SQL . خلال هذه الفترة ، لم تكن Oracle تعيش بسلام ، فكونها ماموثة العصر الجليدي ، لم يمنع الغير من المنافسة فكانت IBM بمنتجها DB2 تزاحم Oracle ، ودخول Microsoft على الخط بشراءها لأحد المنتجات الذي تحوّل إلى SQL Server ، أشعل المنافسة . وفي العصر الجليدي لابد من ظهور بعض الطفيليات .. حتى في جو قارص ، فكانت SQLight هي تلك ، فصارت هي ( سنجاب ) العصر الجليدي الذي يلاحق (حبّة الفسدق) ليحصل على شيء من الوجبة . SQLight يسير على نفس النمط .. جداول مع sql ، ولكن بتطويرات تتمثل بـميزة الحجم الصغير ، قدرة على العمل في بيئة لاتحوي على " سيرفر " .. فكل ماتحتاجه هو " بضعة بايتات " من جهازك لتستخدم SQLlight في برنامجك ، وهذا ما جعل Mozilla تختار SQLight بل وتدعمها وتستخدمها في أعز ما تملك - Firefox - ، فهي الخيار المفضل للبرامج التي تعمل على Client فقط ، وما بين السنجاب SQLight و الماموثة Oracle لابد ان يظهر ( الكسلان ) وهو الـ Access ليشير بذيله : أنا موجود . MySQL و postgreSQL و " عد و اغلط " ، كلها قواعد بيانات تسير على نفس النمط .. جداول مع sql ، ولكن بحذف عيب وإضافة ميزة. وتستطيع أن تضم محبوبة Sun - عليها الرحمة - ، المسمّاة بـ Apache Derby ، ضمن " الجوقة " .. قد يكون الاختلاف هنا ، أنك أمام قاعدة بيانات مكتوبة بلغة أخرى ، لغة الشمس .. لغة Java ، كانت Sun تحب Apache Derby كثيراً :-( . مع ظهور الانترنت وانتشاره ، ظهرت XML ( هل هناك ربط بينهما ؟ لا أعرف ) ، XML أثارت ضجة وحركت المياه الراكدة في أواخر القرن الماضي ، جعلت بيل جيتس يقرر أن كل شيء تنتجه Microsoft ، يُبنى على XML كوسيلة لتخزين وتبادل البيانات . صدق وهو الصدوق عند محبيه الكذوب عند البطاريق ، فكانت أوامره قد وصلت لفريق Microsoft Office لينفذوا ذلك ، فكل شيء يخزن على هيئة XML ، وفتح هذا مجالاً واسعاً لتبادل مستندات MS Office عبر الويب ، وعبر التطبيقات المختلفة . وكان هذا حال كثير من التطبيقات التي انتقلت إلى XML لتخزين بيانتها بدلاً من أسلوب العصر الحجري الأزلي ، Binary Files . قد تكون ضخامة المساحة على القرص الصلب هي من دفعت بـ XML للازدهار .. ولكن من يقف وراء XML ما اكتفى بهذا ، بل أنتج XSLT و XPath ، ليجعل من XML أداة جاهزة وطيّعة لتحل كبديل لقواعد البيانات العلائقية Relational database .. والأمور لم تتوقف عند هذا ، بل ظهرت XQuery لتكون بمثابة SQL لـ XML . موضة " المواصفات القياسية " التي أخرجتها W3 ، لم تمنع Google من أن تنتفض وتنتج أسلوبها الخاص في تخزين بياناتها " الضخمة جداً جداً " ، فكان BigTable المبني على GFS ، هذا المنتج لازال قابعاً في شركة Google حسب ما قرأت. المنتج لايسير على نفس نهج وطريقة " قواعد البيانات السابقة ، فموضة Client/Server البائدة وموضة 3-tier الحالية ، يبدو أنها لا تكفي .. لا أعلم عن تفاصيل هذا المنتج ، ولكن تستطيع تشبيهه بمنتج Facebook ذو الاسم الحسن و الوجه الحسن Cassandra الذي أتاحوه لـ Apache لتكمل المهمة .. كاسندرا ، ترفع شعار " رنان " ، وهو NoSQL ، صدّقني ستسمع هذا كثيراً في كوابيسك ... NoSQL ... NoSQL ... ، الميزة التي يتكلمون عنها ، أنك أمام قاعدة بيانات يمكن أن تطوّرها بمجرد إضافة مزيد من Hardware دون الحاجة لتدخل سوفتويري .. ثورة Google و Facebook ثم لحاق Digg بهم ونظرها للمستقبل بعيون كاسندرا لا بعيون MySQL ، بل وحتى ثورة Amazon على الأساليب التقليدية في تخزين البيانات ، جاء بسبب أنك أمام أعداد مهولة منتشرة بأصقاع الأرض ، تريد الحصول على مواردك resources ، وبالتالي بدا أن Oracle لوحدها ، ليست هي ذاك الحل المثالي ، فالعملاء تغيروا ، فأنت لست أمام " بنك " أو " فندق " ، أنت أمام Google و Facebook ، وأضف عليهما Twitter . وبمناسبة ذكر Amazon ، كلنا يعرف أن Amazon خدمتناسنين طويلة "بكتبها " .. لكن أضف لمعلوماتك أن Amazon تنوي قطع أرزاق بعض قرّاءنا الأعزاء ، بفكرة واقعية جداً : لماذا أقوم بتوظيف DBA وأخسر راتب شهري 30 ألف ريال ، بينما يمكنني قطع رزق ذاك الموظف بـطريقة Simple ؟ استطاعوا بالفعل أن يوجدوا طريقة لقطع رزق DBAs من خلال SimpleDB، والأرزاق بيد الله - نسيت أن اخبرك ان SimpleDB أيضاً ترفع شعار NoSQL . وبمناسبة NoSQL ، من الجيد أن تعرف من يرفع هذا الشعار لتأمن شره أو تنضم للقافلة وتكون ممن ينادي لا " إس كيو ال " . يكفي ان تتخيّل أن JSON دخلت على الخط ، فهناك قاعدة بيانات تقوم على فكرة JSON أيضاً .. الفكرة يبدو أنها ثورية ، بالرغم من بساطتها ( key and value ) ، فحين تستخدم Javascript قاعدة بياناتها الخاصة بأسلوبها الذي تفهمه ، يجعل الأمور تختلف وقواعد اللعبة تختلف ، بل ويخالجك شعور ، أنك وصلت لعصر متقدّم جداً ، خذ DovetailDB بطريقك ! المنتجات كثيرة ، فقاعدة بيانات MongoDB الساحرة ، CoucheDB، HyperTable و أخيراً لا ننسى الشاب Redis لنضمّه للقافلة تشجيعاً له ، كلها دليل على أن الأمور تغيّرت ، وأن Oracle كماموثة للعصر الجليدي قد تنقرض يوماً ما .. فالكل يستطيع أن ينتج والكل يستطيع أن يصنع قاعدة بياناته بيده لا بيد عمرو ، أما موضة " الجداول " و " الكويريات " الكلاسيكية ، انتهت . أن تكتب" كويري وقح " ، كهذا : SELECT emp.ename, dept.dname, sg.grade FROM emp JOIN dept ON emp.deptno = dept.deptno JOIN salgrade sg ON ((emp.sal BETWEEN sg.losal AND sg.hisal) AND (emp.sal NOT IN ( SELECT losal FROM salgrade)) AND (emp.sal NOT IN ( SELECT hisal FROM salgrade ))) ليس كما تكتب " استعلام ألطف " كهذا : db.users.find({last_name: 'Smith'}, {'ssn': 1}); الاستعلامين مختلفين .. صحيح ، لكن القصد هو اختلاف المبدأ الذي يقوم عليه الاثنان . هذه الثورة ، بدأت في أواخر التسعينات من القرن الماضي ، وازدادت هيجاناً مع بداية الألفية و انتشار تطبيقات Web 2.0 و الحوسبة السحابية و لغات البرمجة الكائنية و ظهور لغات برمجة متوازية مثل Erlang يمكنها أن تكون الاختيار الأفضل لبناء DBMS بدلاً من لغة السي أو الاسمبلي ( هل حسمت أمرك بعد وعرفت من الأقوى ؟ .. لا ؟ تباً ) ، فهنا أصبحت قواعد البيانات موجهة لبيئة معينة ، مثل تطبيقات الويب التي يزورها يومياً البلايين ، وليس للتطبيقات الكلاسيكية ، الموجهة للفنادق و المطاعم الفخمة ، والتي لو جمعت روّادها لن يتعدوا عدد أطراف " دودة أم 44 " . أغلب RDBMS مثل Oracle فهمت قواعد اللعبة ، وصارت تحاول أن تغطي جميع الاتجاهات الممكنة بما فيها Document-oriented Database ، ولكن وصمة Relational و لعنة SQL لا زالت تلاحقها . وليت SQL Server يرفع شعار NoSQL أو حتى YesStanardSQL بدلاً من SQL ممسوخ ، وبما أن Document-Oriented Databse ذُكرت ، من الجيد ان نقول أن هذا يشمل أي قاعدة بيانات مبنية على XML أو JSON . مع كل هذه الثورة ، وكل هذه الأعداد الهائلة من DBMSs التي وردت في هذا المقال ، يحق لنا أن نتساءل ... ألم يمت " الكسلان " بعد ؟ المراجع : Google .
  25. ماهي اللغات المدعومة لتطوير تطبيقات تعتمد على winRT ؟ هل تعتمد على تقنيات الويب مثل HTML5 ؟ أيضاً ماهو حدود winRT ؟ هل يمكن تطوير أي تطبيق مهما كان حجمه و نوعه - مثلاً لعبة ثلاثية البعد ، تطبيق لمعالجة الصور مثل منتجات Adobe - ؟ شكراً .