لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
عرض المحتوى الحاصل على سمعة أكبر منذ 12/15/25 في كل الموقع
-
هل استعمال bootstrap و غيره من الاطر يؤثر على المستوى بحيث لا يستطيع المبرمج كتابة كود بدون اطار عمل ؟3 نقاط
-
هل هناك خطط مستقبلية لإضافة دورة لتطوير الواجهة الخلفية Backend بلغة Asp.net core مع Blezor3 نقاط
-
تطبيق ويب ( فلاسك - دجانغو ) يتم فيه انشاء مستخدم وتسجيل دخول وتحقق وكل شيئ يعمل مع انشاء اي نمازج وتعديلها وحذفها.... الا اذا كان الطلب اذا تحقق ينتج عنه إرسال ايميل فهناك مشكله تواجهني ان الطلب يتأخر حتى يتم إيقافه وارجاع 502 ... نريد ان نعرف تفاصيل أكثر، الاستضافه المستخدمه هي free render host وقاعده بيانات sqlite.3 نقاط
-
انا مشترك في دورة تطوير تطبيقات بلغة javascript و تطوير واجهة المستخدم انا درست html and css و جافا سكربت من دورة تطوير تطبيقات بلغة javascript ودرست bootstrap 5.3v وانا الان انشئ مشاريع بهم هل يمكنني تعلم react.js من دورة تطوير تطبيقات بلغة javascript واضيفها في المشاريع وهل react من دورة تطوير تطبيقات بلغة javascript كافية للفرونت اند وشكرا2 نقاط
-
السلام عليكم , ما هي اساسيات الرياضيات التي يجب ان اكون ملم بها قبل الدخول في تعلم الذكاء الاصطناعي هل يمكن اعطاء قائمة من الدروس او ماشابه ذلك .2 نقاط
-
2 نقاط
-
السلام عليكم لطالما شعرت أني أنتمي للميكاترونكس ومؤخرا اكتشفت ان هذا التخصص غير متوفر, وبصراحة أنا لا أرغب أن أستسلم بعد وبحثت عن اكثر تخصصين متوفرات ومشابهات للميكاترونكس من رأيكم أن أدرس بكالوريوس ذكاء اصطناعي ثم ماجستير هندسة كهرباء قسم تحكم آلي ,أم العكس هندسة كهربائية ثم ماجستير ذكاء اصطناعي؟2 نقاط
-
الحمدلله وبفضل الله تعالى سويت مشروع ضخم Social Media Developers Hub بس بدي مساعدة كيف يمكنني ان اجعل تطبيق مشهور ومستخدم من قبل ناس لان هدفي من هاد مشروع هو جمع مطورين الويب في مجتمع واحد يمكن من خلالهم تقييم مشاريع بعضهم وتواصل Chat RealTime ارجوا ان تساعدوني بهي خطوة رابط : https://www-codehive.netlify.app2 نقاط
-
2 نقاط
-
2 نقاط
-
السلام عليكم كيف ارفع موقع مبني بReact على هده الاستضافة dzsecurity.com ؟2 نقاط
-
أسعد الله أوقاتكم من شهرين تقريبا لم أعد أدخل إلى الموقع فأرى الآن تغيير في مسار كان اسمه تطوير موقع يشبه يوتيوب كنت في منتصفه تقريبا الآن آراه من مسارات الأرشيف وأرى بداله أطر css فماذا علي أن أدرس الآن هل أتابع مثل الجديد أم أكمل موقع يوتيوبي؟ وشكرا لكم2 نقاط
-
السلام عليكم ورحمه الله وبركاته انا ملاحظ في كورس ال AI ان في مسار تحليل البيانات وفي بعده مسار التعامل مع البيانات وفي برضو ال cv وبعدها ال ml فهل دا طبيعي ولا انا مش لازم التزم بالترتيب ؟ شكرا جزيلا ...2 نقاط
-
السلام عليكم انا طالب ادرس هندسة الشبكات في الكلية, لقد اشتركت في دورة "تطوير التطبيقات بإستخدام بايثون" قبل سنة ولازلت في المسار الثالث من الدورة. في الحقيقة اشعر انني تأخرت كثيرا في اكمال الدورة بسبب طبيعة الدراسة الصعبة في الكلية حيث انه عندما يبدأ الفصل الدراسي اقوم بالتوقف عن الدورة ثم اعادة اكمالها بعد الكلية. في الحقيقة انا حاليا في مسار أساسيات Django و اريد اكمال المسار الرابع و التقديم على الشهادة و التركيز عليه وتخصصه و تطوير مهاراتي فيه للدخول لسوق العمل وكذلك اريد تعلم اطار tailwind , هل هذا كافي مبدئيا ام ان الطريقة الصحيحة هي بإكمال الدورة بالكامل ثم التعمق في تخصص معين ؟2 نقاط
-
مرحبا عندي استفسار اني اعمل على مشروع اختبارات ولدي الاسئلة التي اريد ان ادخلها الى قاعدة البيانات على شكل صور ما هي الطريقة المثلى لتحويل هذه الملفات الى json بحيث تستخلص الاسئلة والاجوبة بدلا من اعادة كتابتها يدويا لان هذا سياخذ مني وقتا طويلا2 نقاط
-
السلام عليكم قمت بتثبيت لوحة تحكم adminlte عن طريق terminal لكن اتجاه من يسار لليمين كيف اغير اتجاه الي يمين2 نقاط
-
2 نقاط
-
السلام عليكم اريد مراجعة للportfolio الخاص بي الرابط : https://aimenzeffanine-abulaith.github.io/portfolio/ بارك الله فيكم2 نقاط
-
السلام عليكم ورحمة الله وبركاته.. ما الغرض أو الفائدة من إحصائيات الحساب، مثل: النقاط والسمعة والمساهمات وعدد المتابعين؟ هل فقط من أجل معرفة الآخرين بمدى تميزك وجديتك في الأكاديمية؟ أم أن هناك فوائد أخرى؟؟ وما هي المخالفات التي قد تجعل الحساب يتعرض لنقاط تحذير؟ وهل يمكن أن تؤدي إلى إيقاف الحساب بشكل مؤقت أو دائم حتى لو كان مشتركًا في دورات الأكاديمية؟؟ وشكرا ....2 نقاط
-
السلام عليكم ورحمة الله وبركاته... دمتم بخير أحد أقاربي طالب في المرحلة الثانوية ويريد أن يشترك في إحدى دورات أكاديمية حسوب، كيف يستفيد من مميزات الدروات التي تقدمها الأكاديمية مثل: العمل على مواقع العمل الحر التابعة لها (مستقل) لاسترجاع الاستثمار خلال 6 أشهر، وهو لم يتم الثامنة عشر بعد؟؟ فهل يستطيع أن يحصل على جميع المميزات والعمل على مواقع العمل الحر في حالة الاشتراك في إحدى الدورات؟ وهل يمكن الاشتراك في دورة الذكاء الاصطناعي مباشرة دون الحاجة للاشتراك في دورة علوم الحاسوب؟؟ حيث لا يمتلك أي معرفة مسبقة بالبرمجة. ما هي المتطلبات التي عليه تجيهزها كي يكون مستعدًا قبل بدء التعلم؟ وهل تقوم أكاديمية حسوب بعمل تخفيضات للدورات في بداية رأس السنة؟؟ وشكرا لكم .....2 نقاط
-
مرحبا عندي سوئل انا بدرس دورة تطوير وجهات المستخدم وقربت خلص ان شاء الله تعلمت استخدام html cssجيد وجافه سكربت عندي فهم فية لو بدي اعمل شي بسيط بلموقع واطارات عمل مثل bootstras وتيلوند بس ريكت ونود جي اس مابعرفهم وAplكمان ماعرفتا لانو الدورة ماعلمت بشكل اساسي لما اقدم على الامتحان هل هذا لح يئسر للحصول على الشهادة مع العلم انو صرت اعمل اي موقع ممكن ينطلب فايريت لو حدا يوضع هل لازم اتعلمهم او اخذ فكرا كافي .وشكرن2 نقاط
-
دفعت رسوم دورتين ..أسأل: هل لها مدة محددة ...أما الأمر مفتوح لأشهر وسنوات. لم أجرب ...هل لي أن أستفيد من الدورتين بحسابين مختلفين أم لا بد من حساب واحد ...هل التعريف بي من خلال الايميل ودمتم2 نقاط
-
بدأت قصة آدم منذ كان في الثانية عشرة من عمره، حين شاهد مقطع لطفل يبرمج روبوت صغير ويتحكم فيه بالأكواد. أثارت تلك اللحظة بداخله تساؤلًا لم يفارقه: منذ ذلك اليوم، تحول اهتمامه من ألعاب الفيديو إلى اكتشاف أسرار التقنية، ولم يتوقف عن طرح الأسئلة: كيف تُبنى المواقع؟ كيف تصل الرسائل عبر الإنترنت؟ وكانت البداية مع لغة Python حيث أنجز تطبيقات بسيطة مثل برنامج لحساب العمر، قبل أن يكتشف أن شغفه الحقيقي هو تطوير الويب، خاصة بعدما رأى صديقه ينشئ موقع باستخدام HTML و CSS. عندها أدرك أن هذا هو المسار الأقرب لطموحه. كان يقضي وقتًا طويلًا في ألعاب الفيديو، ثم قرر أن يجعلها مكافأة له بعد إحراز تقدم في التعلم. فبدأ بتعلم أساسيات Python من مصادر متنوعة على الإنترنت، وطبقها في مشاريع بسيطة كآلة لحساب العمر. مع مرور الوقت أدرك أن طريقه ليس واضح، وكان يواجه تشتت في مصادر التعلم، فيعيد الشرح أكثر من مرة دون أن يعرف هل يسير بالاتجاه الصحيح. اتخاذ القرار: لماذا التحق بأكاديمية حسوب؟ بعد تجربة بسيطة في تطوير صفحات ويب، أدرك أن هذا المجال الأقرب لاهتمامه. شعر بالحاجة إلى توجيه منظم، يخرجه من دوامة التعلم العشوائي. فوجد في أكاديمية حسوب ما يبحث عنه، برنامج تدريبي يغطي الجوانب النظرية والعملية، مع دعم مباشر من مدربين محترفين. يقول آدم عن تجربته: التحديات والنمو: كيف كانت التجربة؟ لم تكن رحلته خالية من التحديات، فقد واجه تحديات في تنظيم الوقت بسبب ضغط الدراسة وظروف أسرية، وصلت أحيانًا إلى انقطاع دام سبعة أشهر. ومع ذلك لم يتخلى عن هدفه. "كنت أخصص وقت العصر للبرمجة، لكن أحيانًا تمر أيام طويلة دون أن أتعلم شيئًا. كنت أواجه صعوبات خاصة في JavaScript، لكنني تخطيتها بالممارسة وسؤال المدربين الذين كانوا يردون خلال دقائق." أحد التحديات غير التقنية التي واجهها أيضًا كان صغر سنه، حيث لم يكن يملك بطاقة هوية تسمح له بخوض الاختبار النهائي، فاستخرجها بدعم من والده، وتمكن من اجتياز الاختبار والحصول على الشهادة. مشروع التخرج: الذروة العملية كجزء من التدريب العملي، طور مشروع تخرجه بعنوان معرض الصور، وهو تطبيق ويب يستخدم React.js للواجهة الأمامية، و Node.js مع MongoDB في الجانب الخلفي. التطبيق يحاكي منصات مشاركة الصور الاحترافية، مع واجهة سهلة وتجربة مستخدم متكاملة. "تعلمت من خلال المشروع كيفية تنسيق الكود واختبار التطبيق قبل الإطلاق. كما وثقت كل مرحلة على GitHub، واعتبرته بداية معرض أعمالي البرمجي." بعد البرنامج: الإنجاز والتطلعات إلى جانب مشروع معرض الصور، يعمل على تطوير مشروعه الشخصي Oraniom، وهو متجر رقمي يخطط من خلاله لبيع المنتجات البرمجية مثل أكواد الألعاب والرخص الرقمية، ويطمح لاطلاق منصة تواصل اجتماعي بمزايا تركز على الخصوصية وتجربة المستخدم. لا ينوي آدم التوقف هنا، ففي الوقت نفسه يواصل تطوير مهاراته ويكمل مسار TypeScript، ويخطط للالتحاق بدورات متقدمة في الذكاء الاصطناعي باستخدام Python. يقول: الرسالة الختامية بهذه الرسالة اختتم آدم قصته موجهًا دعوة لزملائه من الشباب المهتمين بالبرمجة لبدء رحلتهم اليوم لا غدًا.2 نقاط
-
السلام عليكم في بعض الناس يقولوا اعتمد على الاسئلة الي تيجي من الذكاء الاصطناعي وبعضهم يقولوا لا لا تعتمد وانا حقيقه استفدت من بعض الاسئلة الي ارسلتها الذكاء الاصطناعي ورسخت عندي بعض المفاهيم وبعضها لسه بس عندي فضول لماذا لا يعتمد على الذكاء الاصطناعي في مايتعلق بالبرمجه انا بعتمد عليه بين حين واخر ارجو التوضيح وشكرا1 نقطة
-
الإصدار 1.0.0
4771 تنزيل
تدخل الإدارة مختلف مناحي الحياة، فهي استغلال الموارد والأشخاص لتنفيذ عمليات معينة بغية تحقيق أهداف محددة، ورغم بساطة التعريف إلا أنها في الواقع أكبر وأعمق بكثير، إذ تتطلب الإدارة عمليات التخطيط والتحليل وتوافر مهارات التواصل على الأقل لتحقيق الأهداف. عمل مؤلفو هذا الكتاب على تجهيز جدول المحتويات لمعالجة موضوعين رئيسين وهما: ما هي المتغيرات التي تؤثر على كيف ومتى وأين ولماذا يؤدي المديرون وظائفهم؟ ما هي النظريات والتقنيات التي يستخدمها المديرون الناجحون في مجموعة متنوعة من المستويات التنظيمية لتحقيق الأهداف وتجاوزها بفعالية وكفاءة طوال حياتهم المهنية؟ هذا الكتاب مترجم عن الكتاب Principle of Management لمجموعة من المؤلفين وهو أحد منشورات OpenStax بإشراف جامعة Rice، ويغطي العديد من مجالات الإدارة مثل إدارة الموارد البشرية والإدارة الاستراتيجية، وكذلك المجالات السلوكية مثل التحفيز. ونظرًا لأن الإدارة تخصص واسع وكبير ولا يمكن لأي شخص أن يكون خبيرًا في جميع مجالات الإدارة لذلك عمل مجموعة كبيرة ومتنوعة من مختصي الإدارة بمجالاتها المختلفة على تأليف فصول هذا الكتاب، كلٌّ بحسب اختصاصه. بذلنا جهدنا في أكاديمية حسوب في التصرف في الترجمة وتحسينها وإضافة أي إحصائيات أو بيانات أو قوانين مقابلة لبعض الفقرات تخص عالمنا العربي ولكن لم نشمل كل شيء، لذا ضع في بالك أن الكتاب يركز كثيرًا على الولايات المتحدة وقوانينها وشركاتها حيث كُتبت النسخة الأصلية وحيث المؤلفون. يبدأ كل فصل من الكتاب بفقرة استكشاف الوظائف الإدارية التي تتناول مديرًا أو شركة ما من ناحية إجراءاتها المتخذة لشرح موضوع الفصل العام. كما يمكن للقراء أو الطلاب اختبار أنفسهم أو مدى فهمهم عن طريق الإجابة على الأسئلة المتوزعة بعد كل فقرة وفي نهاية الفصل. يتضمن الكتاب المئات من الأمثلة الواقعية حتى لا تكون مواد الكتاب جافة وصعبة الفهم ولإضافة المزيد من الديناميكية والشمولية في فهم المواضيع المطرحة في فقرات مسائل التفكير النقدي والأسئلة المتعلقة بها. كما نشرح أسس الممارسات الأخلاقية التي يجب أن تتسم بها مسيرة عمل الشركات والمؤسسات أثناء سعيها لتحقيق النجاح. وتتناول فقرات إدارة التغيير الاستراتيجية التي اتبعتها الشركات لتجاوز المحن والاضطرابات التي عصفت بها، والتي سببتها مجموعة من الظروف والقوى الاقتصادية والاجتماعية والنفسية والتكنولوجية. الكتاب مهم للمهتمين بدراسة علوم الإدارة ومبادئها ويقدم فكرة شاملة حول الإدارة، إذ يشرح طبيعة مهنة الإدارة ووظيفتها، كما يبحر في الأحداث التاريخية المتعلقة بها، ويتطرق بالتفصيل لهيكلية وعمل المنظمات والشركات والمؤسسات، وكل ما يتعلق بالتخطيط الاستراتيجي والمفاهيم التنظيمية والأخلاقية والثقافية. عمومًا الفئة المستهدفة من هذا الكتاب هي: المديرون الحاليون بمخلف مستويات مناصبهم ومواقعهم ومجالات عمل الشركات أو المؤسسات التي يعملون فيها. الطلاب الجامعيين وطلاب المعاهد الرسمية والخاصة الذين يدرسون مجال الإدارة وإدارة الأعمال. الموظفون الطموحون الذين يتطلعون إلى الترقي لمنصب إداري في المؤسسات أو الشركات التي يعملون فيها. رواد الأعمال الذين هم بصدد بدء مشاريهم وفي مرحلة التكوين والإنشاء والتوظيف. يمكنك قراءة الكتاب على شكل فصول منشورة على موقع أكاديمية حسوب مباشرةً إن كنت تحب القراءة على المتصفح مباشرة، وتجد روابط الفصول تاليًا: الفصل 1: طبيعة عمل المديرين والأدوار التي يؤدونها طبيعة عمل المديرين والأدوار التي يؤدونها الخصائص الرئيسية لوظيفة المدير الفصل 2: اتخاذ القرارات الإدارية اتخاذ القرارات الإدارية طرق معالجة الدماغ للمعلومات لاتخاذ القرارات: النظام التأملي والنظام الانفعالي معيقات عملية اتخاذ القرارات الفعَّالة تحسين جودة عملية اتخاذ القرارات عملية اتخاذ القرارات الجماعية الفصل 3: تاريخ الإدارة تاريخ الإدارة الثورة الصناعية في عالم الإدارة الإدارة البيروقراطية والتنظيمية حركة العلاقات الإنسانية الفصل 4: بيئات العمل الخارجية والداخلية وثقافة المؤسسة بيئات العمل الخارجية والداخلية وثقافة المؤسسة أنواع الهياكل التنظيمية التنظيم الداخلي للمؤسسة وبيئات العمل الخارجية ثقافة المؤسسة الفصل 5: الأخلاق والمسؤولية الاجتماعية للمؤسسات والاستدامة الأخلاق والمسؤولية الاجتماعية للمؤسسات والاستدامة المبادئ الأخلاقية واتخاذ القرارات المسؤولة القيادة والأخلاق على مستوى المؤسسات الأخلاق وثقافة المؤسسة والامتثال الأخلاق حول العالم الفصل 6: الإدارة العالمية مفهوم الإدارة الدولية وأهميتها الثقافة ونظرية هوفستد للأبعاد الثقافية نظرية GLOBE وتأثيرها في فهم القيادة الصور النمطية الثقافية والمجموعات الإجتماعية إنجاز مهام الشركة في بيئة متعددة الثقافات أهمية الأسواق العالمية للشركة الفصل 7: ريادة الأعمال مفهوم ريادة الأعمال: كيف تصبح رائد أعمال ناجح خصائص رواد الأعمال الناجحين كيف تبدأ مشروعك الخاص وتدخل عالم ريادة الأعمال المشاريع الصغيرة وأثرها وإدارتها دعم المشاريع الصغيرة وريادة الأعمال الاجتماعية الفصل 8: التحليل الاستراتيجي: فهم البيئة التنافسية للشركات التحليل الاستراتيجي: فهم البيئة التنافسية للشركات البيئة الخارجية العامة للشركة: تحليل PESTEL البيئة الخارجية المباشرة للشركة: القوى التنافسية الخمسة لبورتر البيئة الداخلية للشركة المنافسة والاستراتيجية والميزة التنافسية بين الشركات الفصل 9: الإدارة الاستراتيجية وتحقيق الميزة التنافسية والحفاظ عليها الإدارة الاستراتيجية وتحقيق الميزة التنافسية والحفاظ عليها دور التحليل الاستراتيجي في صياغة الاستراتيجية عملية التخطيط لتنفيذ الاستراتيجيات قياس أداء الخطط الاستراتيجية وتقييمها الفصل 10: الهياكل التنظيمية والتغيير التنظيمي الهياكل التنظيمية والتغيير التنظيمي التغيير التنظيمي في المؤسسات إدارة التغيير في المؤسسات نماذج التغيير الشائعة في المؤسسات الفصل 11: إدارة الموارد البشرية مدخل إلى إدارة الموارد البشرية مفهوم امتثال الموارد البشرية إدارة الأداء في عملية إدارة الموارد البشرية العوامل المؤثرة على أداء الموظفين ودافعيتهم سياسة التوظيف: إعداد المؤسسة للمستقبل تنمية المواهب وتخطيط التعاقب الوظيفي الفصل 12: التنوع في المنظمات التنوع في المنظمات التعامل مع الاختلاف: التنوع وأثره على الشركات تحديات التنوع والاختلاف في المنظمات فوائد التنوع في العمل وكيفية إدارته الفصل 13: القيادة مفهوم القيادة: الفرق بين القائد والمدير شرح عملية القيادة أنواع القادة وأساليب القيادة نظرية السمات في القيادة النظريات الموقفية في القيادة بدائل القيادة ومثبطاتها القيادة التبادلية والتحويلية والكاريزمية الفصل 14: دفع العمل ورفع الأداء دفع العمل ورفع الأداء هرمية ماسلو للاحتياجات النظريات المنهجية للدافعية نظرية التوقع وتأثيرها على الدافعية في العمل الفصل 15: فهم فرق العمل وإدارتها فهم فرق العمل وإدارتها ما يجب أخذه في الحسبان عند إدارة الفرق تنوع فريق العمل وتحدياته الفصل 16: التواصل التواصل الإداري في البيئة المؤسساتية أشكال التواصل في المؤسسات العوامل المؤثرة على التواصل في المؤسسات ودور المديرين فيها قنوات التواصل الإداري الأساسية: التحدث والاستماع والقراءة والكتابة الفصل 17: التخطيط والرقابة في المؤسسات التخطيط والرقابة في المؤسسات كيف تجري عملية التخطيط في المؤسسات أنواع الخطط المستخدمة في المؤسسات التخطيط وصياغة الأهداف في المؤسسات تأثير التخطيط والرقابة على الموظفين الإدارة بالأهداف: أسلوب للتخطيط والرقابة الفصل 18: إدارة التكنولوجيا والابتكار إدارة التكنولوجيا والابتكار في المؤسسات تطوير التكنولوجيا والابتكار في المؤسسات المهارات اللازمة لإدارة التكنولوجيا والابتكار في المؤسسات1 نقطة -
شريت استضافة و الموقع الذي شريت منه يقدم استضافة و دومين. اريد ان اجرب اذا موقعي امن, هل يصلح ان اجرب ادوات التهكير على موقعي لاجل اكتشف الثغارت الامنية؟ ام هذا يعتمد على مزود الاستضافة اذا املك هذه الصلاحيات؟؟1 نقطة
-
كيف اسمح للAPI فقط للحصول على المعلومات او ارسال المعلومات, و منع المستخدم من الدخول بالمتصفح فقط يستطيع ارسال او استقبال البيانات من API الخاص بالموقع؟1 نقطة
-
السلام عليكم ده الكود # Remember to inherit from the correct class class EarlyStoppingCallback(tf.keras.callbacks.Callback): # Define the correct function signature for on_epoch_end method def on_epoch_end(self,epoch,logs=None): # Check if the accuracy is greater or equal to 0.98 if logs['accuracy'] >= 0.98: # Stop training once the above condition is met self.model.stop_training = True print("\nReached 98% accuracy so cancelling training!")1 نقطة
-
"مرحباً فريق أكاديمة حسوب، أنا بدرس حالياً دورة تطوير التطبيقات باستخدام لغة Python. أنا أبغى أضغط على نفسي وأخلص الأربع مسارات الأولى بسرعة قياسية عشان أقدم على الشهادة والعمل. أنا عندي خلفية كويسة جداً: عندي شهادة علوم حاسوب وخبرة سابقة في أسياسيات بايثون بس من فترة طويلة جدا. السؤال هو: أنا ناوي أدرس وأطبق بشكل مكثف بمعدل 40 ساعة في الأسبوع. كم أسبوع بالضبط تتوقعون أحتاج عشان أخلص الأربع مسارات الأساسية (أسيات بايثون الى تطوير متجر إلكتروني بإطار عمل جانغو) وأكون جاهز للشهادة، أنا أسأل عن مدة محددة عشان أطبق قانون (Parkinson's Law) وألتزم بوقت معين وما أطول أكثر من اللازم. شكراً جزيلاً!"1 نقطة
-
ماهو الفرق بين Class و ER Diagrams وهل عند تمثيل Class diagram لتطبيق تم برمجته في أندرويد ستوديو نكتفي بإضافة java class أو نضيف أيضا Activty وهل بإمكاننا استخدام ER لتمثيل Database مخزنة في Firebase؟ أيضا ماهي قواعد تحويل الكود إلى SQD أو هل هناك مراجع توضحه1 نقطة
-
السلام عليكم ورحمة الله وبركاته صباح الخير شكرا جزيلا كثيرا لكم... فتح wsl هل توجد واجهة رسومية للتعامل معه ام انه مثل cmd ؟1 نقطة
-
السلام عليكم ورحمة الله وبركاته مساء الخير بعد مانزلت حزمة Flutter أين افك ضغطها؟ وماهي الخطوات التالية لاستخدامها؟ وهل أحتاج لتزيل أندرويد استديو ؟ علما بأني مبتدي ؟ وأريد كتاب لتعلم فلاتر من الصفر الي الاحتراف1 نقطة
-
السلام عليكم ورحمة الله قمت ببناء تطبيق طبيبي من مسار JS باستخدام TRAE AI اريد مراجعتكم بارك الله فيكم الرابط : طبيبي1 نقطة
-
السلام عليكم ورحمة الله وبركاته صباح الخير عند كتابة الأمر wsl --install يظهر الشكل [ % 0.0 ] ولايتحرك التحميل؟1 نقطة
-
السلام عليكم ورحمة الله وبركاته صباح الخير قمت بتنزيل Flutter على الجهاز ولأن مواصفاته لاتسمح بتحميل أندرويد استديو كيف انشي المحاكي من خلال الهاتف ؟ وهل هناك طرق أخرى لتشغيله من غير برامج ؟ اي توجد ميزة مضمنة في الجهاز لذلك؟ ودمتم سالمين..1 نقطة
-
لدي مشروع Pinterest-Clone و واجهتني مشكلة لم استطع حلها والتي عند اضافة تعليق لصورة معينة التعليقات تذهب لجميع مستخدمين وليس لكل مستخدم له تعليق خاص وب تالي صورة avatar و fullname كلها واحد تحديداً في ملف images/[id]/page.tsx ارجو مساعدة اريد لكل شخص تعليق خاص له و صور و اسم لكل مستخدم pinterest-clone.zip1 نقطة
-
وعليكم السلام ورحمة الله، المشكلة أن Render المجاني يقطع الطلبات بعد 30 ثانية، وإرسال الإيميل عبر SMTP يستغرق وقتا طويلا مما يسبب خطأ 502. الحل هو استخدام خدمات إرسال البريد عبر HTTP API مثل SendGrid أو Mailgun بدلا من SMTP لأنها أسرع وأكثر موثوقية، أو استخدام Celery مع Redis لإرسال الإيميلات بشكل غير متزامن (asynchronous) في الخلفية بحيث يرد تطبيقك فورا على المستخدم ويتم إرسال الإيميل لاحقا دون انتظار.1 نقطة
-
السيرفر الذي يستضيف تطبيقك يقوم بدور العميل الذي يتحدث مع خادم البريد SMTP Server مثل Gmail أو Outlook أو خدمات مثل SendGrid، كالتالي: المستخدم يضغط تسجيل والمتصفح يرسل طلب لسيرفر Render. تطبيقك يخزن البيانات في SQLite. تطبيقك يحاول فتح اتصال مع خادم الإيميل SMTP عبر الإنترنت. ينتظر الرد من خادم الإيميل، هل تم الإرسال؟ بعد نجاح الإرسال، يعود التطبيق ليرسل رسالة تم التسجيل للمستخدم. أثناء ذلك من الممكن حدوث أخطاء مختلفة، منها حساب Render المجاني يقطع الطلب بعد 30 ثانية تقريبًا، وفي حال الاتصال بـ SMTP يستغرق 30 ثانية ستحدث مشكلة، ولو الكود لديك متزامن Synchronous أي الكود يعمل سطرًا تلو الآخر وينتظر اكتمال الإرسال قبل الرد فسيحدث بطيء. كذلك الإشتراك المجاني يوفر موارد، والسيرفر يدخل في وضع السبات أي النوم بعد 15 دقيقة من عدم الاستخدام، لذا أول طلب بطيء. الأفضل هو استخدام HTTP API، عبر خدمات مثل SendGrid, Mailgun, Brevo والتي توفر مكتبات تسمح لك بإرسال الإيميل عبر بروتوكول HTTP الذي يعمل على Port 80/443. وبدلاً من إعدادات SMTP في settings.py في جانغو أو config في Flask، قم بتثبيت مكتبتهم واستخدم الـ API Key. وبها اشتراكات مجانية لكن الاستخدام محدود.1 نقطة
-
السلام عليكم ورحمة الله وبركاته مساء الخير ظهر الهاتف بعد كتابة Flutter devices كيف اشغله على vc code ؟1 نقطة
-
مرحبا بناءً على المعطيات التي ذكرتها (خلفية علوم حاسوب، معرفة سابقة بأساسيات بايثون، وتفرغ بمعدل 40 ساعة أسبوعيًا)، فإن المدة المتوقعة لإنهاء الأربعة مسارات الأساسية بشكل جاد والاستعداد لاجتياز الشهادة تكون كالتالي: المدة المتوقعة من 6 إلى 8 أسابيع كحد أقصى. التقسيم المنطقي: أساسيات بايثون: 1 – 1.5 أسبوع (بما أنك تملك خلفية سابقة، سيكون الهدف المراجعة والترسيخ مع التطبيق) البرمجة كائنية التوجه + التعامل مع الملفات: 1 أسبوع تطوير تطبيقات الويب باستخدام Django: 2 – 3 أسابيع مشروع المتجر الإلكتروني + الربط والتطبيق العملي: 2 أسابيع هذا التقسيم يفترض: دراسة يومية منتظمة تطبيق عملي مع كل درس عدم الاكتفاء بالمشاهدة فقط تنفيذ المشروع النهائي بنفسك دون نسخ جاهز هل هذا الجدول واقعي؟ نعم، واقعي جدًا في حال: التزمت بـ 6–8 ساعات يوميًا فعلية ركزت على المسارات المطلوبة فقط لم تتشتت بدورات أو مصادر خارجية تعاملت مع المشروع النهائي كاختبار حقيقي بخصوص الاستعداد للشهادة إذا أنهيت المسارات الأربعة خلال هذه المدة مع: فهم حقيقي للكود تنفيذ المشروع بنفسك مراجعة المفاهيم الأساسية (Django – ORM – Templates – Auth) فستكون جاهزًا للتقدم للشهادة مباشرة دون الحاجة لفترة إضافية طويلة. ملاحظة مهمة تطبيق قانون Parkinson’s Law فكرة ممتازة، لكن احرص أن يكون الضغط: على الالتزام والتنفيذ لا على تجاوز الفهم أو القفز على التطبيق الخلاصة مع خلفيتك الحالية و40 ساعة أسبوعيًا: 6 أسابيع: إنجاز قوي وسريع 8 أسابيع: إنجاز مريح ومتين جدًا وأي مدة أطول من ذلك في حالتك غالبًا تكون إطالة غير ضرورية.1 نقطة
-
مرحبا أحمد . ما ستقوم به ممتاز أحسنت بالتوفيق لك إن شاء الله . ولكن 40 ساعة بالإسبوع هي مدة كبيرة هل أنت متأكد من أنك ستستطيع توفير كل هذا الوقت؟ أنصحك بعدم ضغط نفسك كثيرا حتى تعطي لعقلك الوقت الكافي للإستيعاب وأيضا حتى تستطيع تنفيذ المشاريع والتطبيقات بنفسك . إليك رابط تفاصيل محتوى الدورة التالي : https://academy.hsoub.com/learn/python-application-development/ ستجد أن المسار الأول يحوي 11 ساعة من الدروس و المسار الثاني يحوي 15 ساعة والمسار الثالث يحوي 7 ساعات والمسار الرابع يحوي 5 ساعات . إذا الأربع مسارات مجموعهم 38 ساعة من الدروس . ويجب عليك معرفة أنه لإنهاء ساعة واحدة من الدورة فهي تختلف من شخص إلى أخر في نطاق 3 إلى 5 ساعات . وذلك لأن الطلاب يقومون بإيقاف الدرس مثلا لكتابة كود والتطبيق أو لإستيعاب جزء ما أو البحث عن معلومة معينة أو إعادة جزء معين . إذا بهذا المعدل يمكننا حساب متوسط 38 * 4 ساعات أى أن الأربع مسارات ستأخذ منك من 114 ساعة إلى 152 ساعة مذاكرة وتطبيق وهي تختلف بناء على مدى قدرة إستيعابك وأيضا تطبيقك للدروس . وإذا قمت بدراسة الدورة بمعدل 40 ساعة في الإسبوع فسوف تقوم بإنهاء أول أربع مسارات في 3 إلى 4 أسابيع . ولكن أنصحك بعدم تخطي أى درس أو عدم التطبيق مع المدرب فالأهم من الشهادة وإنجاز الدورة هو تحقيق أقصى إستفاده منها والتطبيق في مشاريع حقيقية . بالتوفيق لك إن شاء الله.1 نقطة
-
الإصدار 1.0.0
73059 تنزيل
لا يخفى على أي متعلم لمجال علوم الحاسوب كثرة الاهتمام بمجال الذكاء الاصطناعي وتعلم الآلة، وكذلك الأمر بالنسبة لمستخدم التقنية العادي الذي بات يرى تطورًا كبيرًا في الآلات والتقنيات التي تحيط به بدءًا من المساعد الصوتي الآلي في جواله وحتى سيارته وبقية الأشياء الذكية المحيطة به. تتوالى الاختراعات والاكتشافات يومًا بعد يوم وتتنافس كبرى الشركات حول من يحرز أكبر تقدم ليخطف الأضواء من غيره. ونظرًا لهذا الاهتمام، ولضعف المحتوى العربي وسطحيته في هذا المجال أيضًا، قررنا توفير مصدر عربي دسم لشرح مجال الذكاء الاصطناعي وتعلم الآلة نظريًا وعمليًا لذا وضعنا فهرس المحتوى آنذاك وبدأنا العمل. هذا الكتاب هو الجزء الأول النظري التأسيسي من أصل جزآن عن الذكاء الاصطناعي وتعلم الآلة، ويبدأ بعرض أهمية الذكاء الاصطناعي وتعلم الآلة عبر الإشارة إلى المشاريع والإنجازات التي قدَّمها هذا المجال إلى البشرية حتى يومنا هذا وكيف أثرت على كل مجالات حياتنا اليومية. ينتقل بعدها إلى لمحة تاريخية عن المجال وكيفية ولادته ومراحل حياته حتى يومنا الحالي. ستجد بعدئذٍ المعلومات الدسمة في الفصل الثالث الذي يشرح المصطلحات المتعلقة بمجال تعلم الآلة ويشرح أساليب تعليم الإنسان للآلة والأسس التي بنيت عليها عمليات تعليم الآلة (منها شرح طرائق تعلم الآلة التقليدية ثم التجميع والتعلم المعزز وحتى الشبكات العصبية والتعلم العميق). يعرض الفصل الأخير تحديات عملية تعليم الآلة وما علاقة البيانات فيها، ثم أخيرًا عرض خارطة طريق لأهم المفاهيم التي يجب أن تتقنها في حال أردت التوسع في المجال وإتقانه. بعد الانتهاء من الجزء الأول في هذا الكتاب وتأسيس المفاهيم والمصطلحات التي يقوم عليها مجال الذكاء الاصطناعي وتعلم الآلة، يمكنك الانتقال إلى الجزء الثاني وهو كتاب عشرة مشاريع عملية عن الذكاء الاصطناعي لبدء تطبيق مشاريع عملية تطبيقية مبنية على بيانات واقعية وتنفيذ أفكار مشاريع من الحياة العملية باستخدام الذكاء الاصطناعي. ساهم بالعمل على هذا الكتاب، محمد لحلح تأليفًا، وجميل بيلوني تحريرًا وإشرافًا، وأخرجه فنيًا فرج الشامي. أرجو أن نكون قد وُفقنَا في هذا العمل لسد ثغرةً كبيرةً في المحتوى العربي -كما خططنا لذلك- الذي يفتقر أشد الافتقار إلى محتوى جيد ورصين في مجال الذكاء الاصطناعي وتعلم الآلة. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «الذكاء الاصطناعي: أهم الإنجازات والاختراعات وكيف أثرت في حياتنا اليومية»، أو من مباشرةً من الآتي: الفصل الأول: الذكاء الاصطناعي: أهم الإنجازات والاختراعات وكيف أثرت في حياتنا اليومية الفصل الثاني: الذكاء الاصطناعي: مراحل البدء والتطور والأسس التي نشأ عليها الفصل الثالث: المفاهيم الأساسية لتعلم الآلة الفصل الرابع: تعلم الآلة: التحديات الرئيسية وكيفية التوسع في المجال1 نقطة -
1 نقطة
-
الإصدار 1.0.0
1007 تنزيل
ريادة الأعمال هي عنصر أساسي لاستمرار دورة الحياة الاقتصادية، وخلق أسواق جديدة مفيدة للناس باستمرار، فهي تقدم حلولًا لمشاكل يحتاج الناس لحلٍ لها، كما تقدم بدائل جيدة بأفكار جديدة وتطرحها في السوق بطريقة إبداعية؛ وفي أحيان كثيرة هي تفتح أسواقًا جديدةً أساسًا، أو تستفيد من فرصة ما وتطرح فكرة جديدة، أو مطورة عبر إدخال إضافة لما كان موجودًا سابقًا، مما يسمح بالتواجد في السوق والريادة فيه. تُعَد ريادة الأعمال مجالًا كاملًا قد يتعلمه الطلاب في الجامعة إن كان تخصصهم ضمن مجال الأعمال والاقتصاد، لكنه قد يكون مهملًا أحيانًا لطلاب التخصصات الأخرى رغم أهميته الشديدة في تحقيق إضافة في السوق، أو إطلاق أو تطوير مشروع ما لأشخاص من تخصصات دراسية أخرى. لهذا أعددنا هذا الكتاب الذي سيفيد طلاب المجال لتسهيل حصولهم على مصادر تعليمية عالية المستوى، والحفاظ على أعلى المعايير الأكاديمية اللازمة؛ إلى جانب تقديم الشرح والمفاهيم اللازمة للوافدين من مجالات أخرى. هذا الكتاب "ريادة الأعمال"، هو النسخة العربية لكتاب Entrepreneurship، المؤلف من طرف مجموعة مؤلفين، وهو أحد منشورات OpenStax بإشراف جامعة Rice، وقد ترجمته وحررته أكاديمية حسوب. يتوافق هذا الكتاب مع نطاق وتسلسل دروس ريادة الأعمال التمهيدية، ويحوي شرحًا للنظريات الأساسية، والمفاهيم التطبيقية، بطريقة محفزة ومعاصرة وسهلة الفهم، من أجل ربط المفاهيم بالحياة اليومية، والمشاكل العصرية وتحديات الواقع التي يواجهها رواد أعمال باستمرار لكونهم من عصر جديد وبمعطيات جديدة ومتجددة؛ ويُعَد مناسبًا لعدة فئات، انطلاقًا من طلاب الجامعات، مرورًا على المدرسين لمساعدتهم على تدريس مادة ريادة الأعمال بطريقة أكاديمية محفزة للطلاب؛ وهو موجه أيضًا إلى مالكي الأعمال الصغيرة، والراغبين في توسيع أعمالهم، والمؤسِّسين، وأي ممتهنين لمهنة أخرى في مجال ريادة الأعمال، لمحاولة إيصالهم إلى الريادة والنجاح في مشاريعهم وأعمالهم وأفكارهم. يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، صفحة التصنيف «ريادة الأعمال 101»، أو مباشرة مما يلي: الفصل 1: منظور ريادة الأعمال ريادة الأعمال اليوم: ما معنى رائد أعمال؟ الرؤية والأهداف الريادية لرائد الأعمال العقلية الريادية لرائد الأعمال الفصل 2: رحلة ومسار ريادة الأعمال نظرة عامة حول رحلة ريادة الأعمال عملية التحول نحو ريادة الأعمال المسارات الريادية لرائد الأعمال أطر العمل التي توجه مساراتك الريادية الفصل 3: المسؤوليات الأخلاقية والاجتماعية نظرة على المسائل القانونية والأخلاقية في ريادة الأعمال مفهوم المسؤولية المجتمعية للشركات وريادة الأعمال الاجتماعية تطوير ثقافة محيط عمل مسؤولة وذات امتياز أخلاقي الفصل 4: الإبداع والابتكار والاختراع أدوات الإبداع والابتكار التي يستعملها رواد الأعمال في حل المشكلات ما الفرق بين الإبداع والابتكار والاختراع في سير عمل رائد الأعمال؟ تطوير ثقافة محيط عمل مسؤولة وذات امتياز أخلاقي الفصل 5: تحديد الفرص الريادية الفرصة الريادية: كيف يحول رائد الأعمال الفكرة إلى فرصة كيف يبحث رواد الأعمال عن الفرص الريادية المحتملة؟ التحليل التنافسي: كيف يرى رائد الأعمال السوق المنافسة لمنتجه الجديد؟ الفصل 6: حل المشكلات والتعرف على الاحتياجات رائد الأعمال وحل المشاكل: كيفية العثور على الحلول الريادية كيف يتجاوز رائد الأعمال المشاكل الريادية بطرائق إبداعية؟ استخدام التفكير التصميمي لتخطي مشاكل رائد الأعمال استخدام العمليات الرشيقة في حل المشاكل الريادية لرائد الأعمال الفصل 7: سرد قصتك الريادية وطرح الفكرة كيف يعرض رائد الأعمال رؤيته ومهمته وأهدافه الريادية كيف يشارك رائد الأعمال قصته الريادية كيف يبني رواد الأعمال العروض التقديمية الريادية لأهداف وجماهير مختلفة كيف يحمي رواد الأعمال فكرتهم عند مشاركتها ويصقلوا عرضهم التقديمي من التعقيبات كيف يعرض رواد الأعمال فكرتهم الريادية في المسابقات والمنافسات؟ الفصل 8: التسويق الريادي والمبيعات التسويق والمزيج التسويقي لتوضيح رؤيتك ومهمتك وأهدافك البحث في السوق والتعرف على فرصة السوق والسوق المستهدف أدوات وتقنيات التسويق التي يتبعها رواد الأعمال مفهوم الإيسام الريادي وتطوير العلامة التجارية في العملية التسويقية استراتيجية رواد الأعمال في التسويق ووضع خطة تسويقية المبيعات وخدمة العملاء وعلاقتهما بريادة الأعمال الفصل 9: التمويل الريادي والمحاسبة نظرة عامة حول التمويل الريادي واستراتيجيات المحاسبة استراتيجيات تمويل خاصة يلجأ إليها رواد الأعمال لتمويل الأعمال الريادية مبادئ المحاسبة وتطوير البيانات والتوقعات المالية للشركات الناشئة ورواد الأعمال الشركة الناشئة اللينة وبدء النشاط التجاري غير المثالي الفصل 10: البدء في النمو والنجاح كيف يمكن للفشل المبكر القيادة إلى النجاح لاحقا ملكية الأعمال والخطة الأولية لإدارة الأعمال النمو في عالم الأعمال وآلامه وأبرز الإشارات والتحذيرات تجنب مقاربة جرة العسل في العمل كيفية تصميم نموذج الأعمال لتمويل المشروع الفصل 11: نموذج وخطة الأعمال كيفية إجراء تحليل لجدوى المشروع كيفية إنجاز خطة عمل كاملة بناء الشبكات في ريادة الأعمال وكيفية الاتصال بها تشكيل فريق الأحلام الريادي الفصل 12: بناء الشبكات والمؤسسات تصميم الخطة التشغيلية للشركة الناشئة إدارة العمليات في الخطة التشغيلية للأعمال الفصل 13: خيارات هياكل الأعمال نظرة عامة حول الاعتبارات القانونية والضريبية في الهياكل التجارية الشركات في قوانين الولايات المتحدة الأمريكية الشراكات وشركات المحاصة ومحدودية المسؤولية في الولايات المتحدة الأمريكية هيكل الملكية في الملكية الفردية اعتبارات إضافية لاختيار كيان الشركة: اكتساب رأس المال ومقر النشاط التجاري والتقنية إدارة المخاطر وتخفيفها في الشركات الفصل 14: أساسيات تخطيط الموارد أنواع موارد المشروع واحتياجاته استخدام إطار العمل بيست PEST لتقييم احتياجات الموارد إدارة الموارد خلال دورة حياة المشروع الفصل 15: الخطوة الموالية في الرحلة الريادية كيفية إطلاق مشروعك الخاص مواجهة تحديات المشروع باتخاذ قرارات صعبة طلب المساعدة أو الدعم لمواجهة مشكلات المشروع الخطوات الموالية للخروج من المشروع وتوثيق الرحلة الريادية1 نقطة -
الإصدار 1.0.0
24326 تنزيل
يوفر كتاب (علوم الحاسوب من الألف إلى الياء) معلومات شاملة حول علوم الحاسوب، ويشرح المواضيع الأساسية لفهم آلية عمل عتاد الحاسوب ونظام تشغيله بأسلوب تصاعدي يبدأ من شرح التفاصيل ذات المستوى المنخفض، ثم ينتقل تدريجيًا إلى مفاهيم أكثر تقدمًا كي يساعدك على فهمها بسهولة أكبر. هذا الكتاب هو ترجمة لكتاب Computer Science from the Bottom Up لكاتبه إيان ويناند Ian Wienand ويوضح كافة المفاهيم التي يحتاج القارئ لمعرفتها حول عتاد وبرمجيات الحاسوب ونظام تشغيله وطريقة عمله بالتفصيل من المستوى المبتدئ للمتقدم، وهذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». لا تحتاج إلى أن تكون مبرمجًا خبيرًا لفهم المواضيع الواردة في هذا الكتاب، لكنك تحتاج لامتلاك معرفة أساسية بأجهزة الحاسوب ومكوناته ومفهوم نظام التشغيل Operating System ومعرفة بأساسيات البرمجة. يبدأ الكتاب بشرح المفاهيم الأساسية التي تبنى عليها أجهزة الحاسوب مثل طريقة تمثيل البيانات باستخدام النظام الثنائي والست عشري ويشرح أهم العمليات البوليانية التي تنفذ عليها، ثم يتعمق في الفصول اللاجقة في موضوعات ومفاهيم متقدمة كشرح الذاكرة الوهمية virtual memory وآلية عملها وطريقة عمل أنظمة التشغيل وتنظيمها وطريقة إدارتها لعتاد الحاسوب وبرامجه.كما يشرح الكتاب العديد من المواضيع التي تهم المبرمجين ويوضح طريقة عمل سلسلة الأدوات Toolchain التي تتعامل مع البرامج الحاسوبية، وأهم الاختلافات بين اللغات المُصرَّفة compiled واللغات المُفسَّرة interpreted إلى جانب توضيح مجموعة واسعة من المفاهيم الأخرى المتعلقة بعلوم الحاسوب والمفيدة للمبتدئين والمحترفين على حد سواء. يوفر الفصل الأول عن نظرة متقدمة على نظام التشغيل يونكس ولغة C ويشرح بالأمثلة العملية طريقة استخدام صدفة يونكس، ثم ينتقل الفصل الثاني لشرح طريقة تمثيل البيانات في الحاسوب من خلال نظام العد الثنائي ويوضح مفاهيم البتات والبايتات والتكافؤ وأنظمة البت المختلفة والعمليات البوليانية مثل NOT و AND و OR و XOR. كما يتناول النظام الست عشري ويشرح طريقة التحويل بين الأنظمة العددية واستخدامها في الشيفرات البرمجية، كما يناقش طريقة تمثيل الأعداد مثل الأعداد العشرية والسالبة بهذه الأنظمة. أما الفصل الفصل الثالث فيتناول معمارية الحاسوب الداخلية، ويوضح وظيفة وحدة المعالجة المركزية CPU والعمليات الأساسية التي تقوم بها وأنواع معماريات وحدة المعالجة المركزية وآلية عمل ذاكرة الحاسوب وتسلسل الذواكر الهرمي والذاكرة المخبئية وطريقة عنونتها وغيرها من المفاهيم المنوعة المرتبطة بالأجهزة الطرفية وأنظمة المعالجات. وينتقل الفصل الرابع لشرح آلية عمل نظام التشغيل ودوره في الحاسوب وتنظيمه الذي يشمل نواة نظام التشغيل ومجالات المستخدم والوحدات والافتراضية واستدعاءات النظام وطريقة إدارة الصلاحيات في نظام التشغيل باستخدام الأمثلة حيث يوضح على سبيل المثال كيف يستطيع نظام التشغيل منع برنامج ما من الوصول إلى بيانات برنامج آخر. ويتوسع الفصل الخامس في شرح مفهوم العمليات ودورها في تمكين نظام التشغيل من تشغيل عدة برامج في نفس الوقت ويوضح عناصر العملية وتسلسل العمليات الهرمي وكيفية ارتباط العمليات ببعضها البعض، ويناقش بعد ذلك استدعاءات النظام fork و exec المستخدمة لإنشاء عمليات جديدة وتنفيذ ملفات جديدة كما يوضح مفهوم الجدولة Scheduling التي تمكن نظام التشغيل من تحديد ما هي العملية التي ستنفذ في وقت معين. يتناول الفصل السادس طريقة عمل الذاكرة الوهمية ويناقش بعض المفاهيم الأخرى المتعلقة بالذاكرة الوهمية مثل فضاءات العناوين والحماية والتبديل ومشاركة الذاكرة والذاكرة المخبيئة للقرص الصلب ودعم العتاد للذاكرة الوهمية. ويتطرق الفصل السابع لشرح مفهوم سلسلة الأدوات Toolchain، وهي مجموعة من البرامج التي تعمل معًا لتحويل شيفرة المصدر إلى برنامج قابل للتنفيذ ويعرفك على نوعين رئيسيين من البرامج في سلسلة الأدوات هما البرامج المُصَرَّفة compiled programs والبرامج المُفَسَّرة interpreted programs ويشرح آلية تحويل شيفرة مصدرية بلغة C إلى برنامج تنفيذي. يتوسع الفصل الثامن في شرح طريقة تمثيل الملفات القابلة للتنفيذ والصيغ المختلفة لهذه الملفات وأبرزها ملفات ELF ويعرفك على مفهوم واجهات ABI وأنواعها، كما يناقش مفهوم المكتبات وأنواعها ويوضح الفرق بين المكتبات الساكنة والمكتبات المشتركة، وأخيرًا يشرح الفصل التاسع مفهوم الربط الديناميكي ويوضح بعض المفاهيم المتقدمة المتعلقة بالربط الديناميكي مثل الانتقالات وجدول الإزاحة العام وجدول البحث عن الإجراءات ودورها في تسهيل مشاركة الشيفرة وكتابة برامج أكثر فعالية وكفاءة. عند انتهائك من فصول هذا الكتاب ستكون قادرًا على فهم كيفية عمل الحاسوب من المستوى المبتدئ إلى المستوى المتقدم وتفهم بتفصيل أكبر كيفية عمل نظام التشغيل و إدارة الذاكرة وطريقة إنشاء البرامج، وكيفية بدء العمليات وستكون قادرًا على فهم معمارية الحاسوب والتعامل معه بكفاءة أكبر. يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «أساسيات علوم الحاسوب»، أو مباشرة مما يلي: الفصل الأول: نظرة متقدمة على يونكس ولغة سي مفهوم التجريد abstraction في أنظمة التشغيل وأهميته للمبرمجين مفهوم واصفات الملفات File Descriptors وارتباطها بعملية التجريد في أنظمة التشغيل الفصل الثاني: تمثيل الأعداد والنظام الثنائي تعرف على نظام العد الثنائي Binary أساس الحوسبة تمثيل الأنواع والأعداد في الأنظمة الحاسوبية الفصل الثالث: معمارية الحاسوب تعرف على وحدة المعالجة المركزية وعملياتها في معمارية الحاسوب نظرة عميقة على تسلسل الذواكر الهرمي والذاكرة المخبئية في معمارية الحاسوب الأجهزة الطرفية Peripherals ونواقلها Buses في معمارية الحاسوب أنظمة المعالجات في معمارية الحاسوب الفصل الرابع: نظام التشغيل دور نظام التشغيل وتنظيمه في معمارية الحاسوب استدعاءات النظام والصلاحيات في نظام التشغيل الفصل الخامس: العمليات في نظام تشغيل الحاسوب العمليات وعناصرها في نظام تشغيل الحاسوب تسلسل العمليات الهرمي واستدعاءات النظام Fork و Exec في نظام تشغيل الحاسوب أهم المفاهيم التي تنظم العمليات وتعالجها في معمارية الحاسوب الحديثة الفصل السادس: الذاكرة الوهمية Virtual Memory الذاكرة الوهمية والذاكرة الحقيقية في معمارية الحاسوب دعم عتاد الحاسوب للذاكرة الوهمية Virtual Memory الفصل السابع: سلسلة الأدوات Toolchain كيف تنشئ ملفا قابلا للتنفيذ Executable File من شيفرة برمجية مصدرية الفصل الثامن: ما وراء العملية تطبيق عملي لبناء برنامج تنفيذي من شيفرة مصدرية بلغة C الملفات القابلة للتنفيذ في نظام التشغيل وتمثيلها باستخدام الصيغة ELF مفاهيم متقدمة متعلقة بصيغة ملفات ELF القابلة للتنفيذ الفصل التاسع: مفهوم الربط الديناميكي مفهوم الربط الديناميكي Dynamic Linking في معمارية الحاسوب المكتبات وكيفية استدعاء دوالها ديناميكيا في معمارية الحاسوب طريقة عمل الرابط الديناميكي مع المكتبات في معمارية الحاسوب1 نقطة -
نستكمل في هذا الفيديو الحديث عن الشبكات، وذلك بالتطرق إلى أحد أهم الأجهزة في النظام الشبكي بالكامل وهو المبدل Switch. وكما هو معروف، تضم الشبكات بعض الأجهزة كعناصر أساسية من عناصرها، ولعل من أهم وأشهر هذه الأجهزة هو المبدل نظرًا لما يقوم به من وظائف متعددة لا غنى عنها في أي شبكة. ولكن ما هو المبدل؟ وماهي وظيفته؟ وماهي أنواعه؟ سنتعرف على كل ذلك بالتفصيل في الفيديو الآتي: إذا أردت التعرف أكثر على مجال الشبكات، فننصحك بالانضمام إلى دورة علوم الحاسوب، ولا تنسَ الاستعانة خلال رحلة تعلمك وعملك بتوثيقات موسوعة حسوب المجانية. وإذا أردت متابعة المعلومات البرمجية العلمية مكتوبة فيمكنك الاطلاع على قسم البرمجة في أكاديمية حسوب، كما يمكنك متابعة جديد الفيديوهات التقنية المتاحة على يوتيوب أكاديمية حسوب مجانًا.1 نقطة
-
سننفذ في هذا المقال خوارزميةً بسيطةً لتعلم الآلة بلغة بايثون Python باستخدام مكتبة Scikit-learn، وهذه المكتبة ما هي إلا أداةٌ لتطبيق تعلّم الآلة بلغة البايثون، كما سنستخدم المُصنّف Naive Bayes (NB) مع قاعدة بياناتٍ حقيقية لمعلومات ورم سرطان الثدي، والذي سيتنبأ إذا ما كان الورم خبيثًا أم حميدًا. وفي نهاية هذا المقال ستعرف خطوات وكيفية إنشاء نموذج تنبؤي خاص بك لتَعَلّم الآلة بلغة بايثون. المتطلبات الرئيسية قبل البدء بهذا المقال لا بد من تجهيز البيئة المناسبة، وسنستخدم محرر الشيفرات البرمجية Jupyter Notebooks، وهو مفيد جدًا لتجربة وتشغيل الأمثلة الخاصة بتَعَلّم الآلة بطريقةٍ تفاعليةٍ، حيث تستطيع من خلاله تشغيل كتلًا صغيرةً من الشيفرات البرمجية ورؤية النتائج بسرعة، مما سيسهل علينا اختبار الشيفرات البرمجية وتصحيحها. يُمكنك فتح متصفح الويب والذهاب لموقع المحرر الرسمي jupyter على الوِيب لبدء العمل بسرعة، ومن ثمّ انقر فوق "جرّب المحرر التقليدي Try Classic Notebook"، وستنتقل بعدها لملفٍ جديدٍ بداخل محرر Jupyter Notebooks التفاعلي، وبذلك تجهّز نفسك لكتابة الشيفرة البرمجية بلغة البايثون. إذا رغبت بمزيدٍ من المعلومات حول محرر الشيفرات البرمجية Jupyter Notebooks وكيفيّة إعداد بيئته الخاصة لكتابة شيفرة بايثون، فيمكنك الاطلاع على: كيفية تهيئة تطبيق المفكرة jupyter notebook للعمل مع لغة البرمجة python. 1. إعداد المشروع ستحتاج أولًا لتثبيت بعض التبعيات، وذلك لإنشاء مساحة عملٍ للاحتفاظ بملفاتنا قبل أن نتمكن من تطوير برنامج التعرف على الصور، وسنستخدم بيئة بايثون 3.8 الافتراضية لإدارة التبعيات الخاصة بمشروعنا. سَنُنشئ مجلدًا جديدًا خاصًا بمشروعنا وسندخل إليه هكذا: mkdir cancer-demo cd cancer-demo سننفذّ الأمر التالي لإعداد البيئة الافتراضية: python -m venv cancer-demo سننفذّ الأمر التالي لتشغيل البيئة الافتراضية في Linux: source cancer-demo/bin/activate أما في Windows: "cancer-demo/Scripts/activate.bat" سنستخدم إصداراتٍ محددةٍ من هذه المكتبات، من خلال إنشاء ملف requirements.txt في مجلد المشروع، وسيُحدِّد هذا الملف المتطلبات والإصدارات التي سنحتاج إليها. سنفتح الملف requirements.txt في محرر النصوص، وسنُضيف الأسطر البرمجية التالية، وذلك لتحديد المكتبات التي نريدها وإصداراتها: jupyter==1.0.0 scikit-learn==1.0 سنحفظ التغييرات التي طرأت على الملف وسنخرج من محرر النصوص، ثم سنُثَبت هذه المكتبات بالأمر التالي: (cancer-demo) $ pip install -r requirements.txt بعد تثبيتنا لهذه التبعيات، سنُصبح جاهزين لبدء العمل على مشروعنا. شغّل محرر الشيفرات البرمجية Jupyter Notebook بمجرد اكتمال عملية التثبيت. هكذا: (cancer-demo) $ jupyter notebook أنشئ ملفًا جديدًا في داخل المحرر بالضغط على الزر new واختيار python 3 (ipykernal) وسمه باسم ML Tutorial مثلًا، حيث ستكون في الخلية الأولى للملف عملية استيراد الوِحدة (أو المكتبة) البرمجية scikit-learn (لمزيد من المعلومات حول طريقة استيراد وحدة برمجية في لغة بايثون يمكنك الاطلاع على كيفية استيراد الوحدات في بايثون 3 سبق وأن ناقشنا فيه هذه الفكرة بالتفصيل): import sklearn يجب أن يبدو الملف الخاص بك شبيهًا بالملف التالي: والآن بعد استيرادنا للمكتبة بنجاح، سنبدأ العمل مع مجموعة البيانات لبناء نموذج تعلّم الآلة الخاص بنا. 2. استيراد مجموعة بيانات Scikit-Learn’s مجموعة البيانات التي سنتعامل معها في هذا المقال هي قاعدة بيانات الخاصة بتشخيص مرض سرطان الثدي في ولاية ويسكونسن الأمريكية. تتضمن هذه المجموعة من البيانات معلوماتٍ مختلفةٍ حول أورام سرطان الثدي، بالإضافة إلى تصنيفات الأورام سواءً كانت خبيثةً أم حميدةً. كما تحتوي على 569 حالة (أو للدقة بيانات 569 ورمًا)، كما تتضمن معلومات عن 30 ميزة لكلّ ورم، مثل: نصف قطر الورم ونسيجه ونعومته ومساحته. سنبني نموذجًا لتعلّم الآلة من مجموعة البيانات السابقة باستخدام معلومات الورم فقط للتنبؤ فيما إذا كان الورم خبيثًا أم حميدًا. يُثَبت مع مكتبة Scikit-learn مجموعات بياناتٍ مختلفةٍ افتراضيًا، ويُمكننا استيرادها لتُصبح متاحةً للاستخدام في بيئتنا مباشرةً، لنفعل ذلك: from sklearn.datasets import load_breast_cancer # Load dataset data = load_breast_cancer() سيُمثَل المتغير data ككائنٍ في البايثون، والذي سيعمل مثل عمل القاموس الذي هو نوعٌ مُضمَّنٌ في بايثون، بحيث يربط مفاتيحًا بقيمٍ على هيئة أزواجٍ، وستُؤخذ بالحسبان مفاتيح القاموس، وهي أسماء الحقول المُصنّفة target_names، والقيم الفعلية لها target، وأسماء الميّزات feature_names، والقيم الفعلية لهذه الميزات data. تُعَد الميّزات جزءًا مهمًا من أي مصنّف، إذ تُمثّل هذه الميزات خصائص مهمةً تصف طبيعة البيانات، كما ستساعدنا في عملية التنبؤ بحالة الورم (ورم الخبيث malignant tumor أو ورم حميد benign tumor)، ومن الميّزات المُفيدة المحتملة في مجموعة بياناتنا هذه، هي حجم الورم ونصف قطره ونسيجه. أنشئ في الملف نفسه بعد ذلك متغيرات جديدةً لكلّ مجموعةٍ مهمةٍ من هذه المعلومات وأسند لها البيانات: # تنظيم بياناتنا label_names = data['target_names'] labels = data['target'] feature_names = data['feature_names'] features = data['data'] والآن أصبحت لدينا قوائم لكلّ مجموعةٍ من المعلومات، ولفَهم مجموعة البيانات الخاصة بنا فهمًا صحيحًا ودقيقًا، سنُلقي نظرةً عليها من خلال طباعة حقول الصنف مثل طباعة أول عينةٍ من البيانات، وأسماء ميّزاتها، وقيمها هكذا: # الاطلاع على بياناتنا print(label_names) print(labels[0]) print(feature_names[0]) print(features[0]) إن نفذّت هذه الشيفرة بطريقةٍ صحيحةٍ فسترى النتائج التالية: نُلاحظ من الصورة أن أسماء الأصناف الخاصة بنا ستكون خبيث malignant وحميد benign (أي أن الورم سيكون إما خبيثًا أو حميدًا)، والمرتبطة بقيم ثنائية وهي إما 0 أو 1، إذ يُمثّل الرقم 0 أورامًا خبيثة ويُمثّل الرقم 1 أورامًا حميدة، لذا فإن أول مثالٍ للبيانات الموجودة لدينا هو ورمٌ خبيثٌ نصف قطره 1.79900000e+01. والآن بعد تأكدنا من تحميل بياناتنا تحميلًا صحيحًا في بيئة التنفيذ، سنبدأ العمل مع بياناتنا لبناء مصنّف باستخدام طُرق تعلّم الآلة. دورة الذكاء الاصطناعي احترف برمجة الذكاء الاصطناعي AI وتحليل البيانات وتعلم كافة المعلومات التي تحتاجها لبناء نماذج ذكاء اصطناعي متخصصة. اشترك الآن 3. تنظيم البيانات في مجموعات ينبغي عليك دائمًا اختبار النموذج على البيانات غير المرئية، وذلك لتقييم مدى جودة أداء المُصنّف، لهذا قسّم البيانات الخاصة بك إلى جزئين قبل بناء النموذج، بحيث تكون هناك مجموعةٌ للتدريب ومجموعةٌ للاختبار. تستطيع استخدام المجموعة المخصصة للتدريب من أجل تدريب وتقييم النموذج أثناء مرحلة التطوير. حيث ستمنحك منهجية تنبؤات هذا النموذج المُدرّب على المجموعة المخصصة للاختبار غير المرئية، فكرةً دقيقةً عن أداء النموذج وقوته. لحسن الحظ، لدى المكتبة Scikit-learn دالة تُدعى train_test_split()، والتي ستقسمُ بياناتك لهذه المجموعات. ولكن يجب أن تستورد هذه الدالة أولًا ومن ثَمّ تستخدمها لتقسيم البيانات: from sklearn.model_selection import train_test_split # تقسيم بياناتنا train, test, train_labels, test_labels = train_test_split(features, labels, test_size=0.33, random_state=42) ستُقسّمُ هذه الدّالة البيانات بطريقةٍ عشوائيةٍ باستخدام الوسيط test_size. في مثالنا لدينا الآن مجموعةً مخصصةً للاختبار test تُمثّل 33٪ من مجموعة البيانات الأصلية، وسيُشكّل الجزء المتبقي من البيانات المجموعة المخصصة للتدريب train. كما لدينا حقولٌ مخصصةٌ لكلٍ من المتغيرات، سواء أكانت مُخصّصةً للاختبار أو للتدريب، أي train_labels وtest_labels. لنُدرّب الآن نموذجنا الأول. 4. بناء النموذج وتقييمه هناك العديد من النماذج المُخَصصة لتعلّم الآلة، ولكلّ نموذجٍ منها نقاط قوةٍ وضعفٍ. في هذا المقال، سنُركّز على خوارزمية بسيطةٍ تؤدي عادةً أداءً جيدًا في مهام التصنيف الثنائية، وهي خوارزمية بايز Naive Bayes (NB). أولًا، سنستورد الوِحدة البرمجية GaussianNB ثم نُهَيّئ النموذج باستخدام الدالة GaussianNB()، بعدها سنُدرّب النموذج من خلال مُلاءمته مع البيانات باستخدام الدالة gnb.fit(): from sklearn.naive_bayes import GaussianNB # تهيئة المصنّف خاصتنا gnb = GaussianNB() # تدريب المصنّف model = gnb.fit(train, train_labels) بعد أن نُدّرب النموذج سنستخدمه للتنبؤ على المجموعة المخصصة للاختبار، وسننفذ ذلك من خلال الدّالة predict()، والتي ستُعيد مجموعةً من التنبؤات لكلّ نسخة بياناتٍ في المجموعة المخصصة للاختبار، ثم نطبع تنبؤاتنا لِفَهم ما حدده هذا النموذج. استخدِم الدالة predict() مع مجموعة البيانات المخصصة للاختبار test واطبع النتائج: # بناء التوقعات preds = gnb.predict(test) print(preds) عند تنفيذك للشيفرة البرمجية تنفيذًا صحيحًا سترى النتائج التالية: فكما ترى، أعادت الدالة predict() مصفوفةً ثُنائية القيم إما 0 أو 1، حيث تُمثل القيم المتوقعة لصنف الورم (خبيث أم حميد). والآن بعد أن حصلنا على توقعاتنا، لِنُقيِّم مدى جودة أداء هذا المُصنّف. 5. تقييم دقة النموذج نُقّيم دقة القيم المتوقَّعة لنموذجنا باستخدام مصفوفة التصنيفات الناتجة للأصناف الحقيقية التي لدينا، وذلك من خلال موازنة المصفوفتين test_labels وpreds باستخدام الدالة accuracy_score() التابعة للمكتبة Scikit-learn، وذلك لتحديد دِقة المُصنّف. from sklearn.metrics import accuracy_score # تقييم الدقة print(accuracy_score(test_labels, preds)) سترى النتائج التالية: كما ترى في النتيجة، فإن المُصنّف NB دقيقٌ بنسبة 94.15٪. وهذا يعني أن المُصنِّف قادرٌ على التنبؤ الصحيح فيما إذا كان الورم خبيثًا أو حميدًا بنسبة 94.15٪ من الحالات الكُليّة. كما تُشير هذه النتائج إلى أن مجموعة الميّزات المُكونة من 30 ميزة هي مؤشراتٍ جيدةٍ لصنف الورم. بهذا تكون قد نجحت في إنشاء مصنِّفك الأول الذي يعتمد في عمله على طرق تعلّم الآلة، والآن لنعد تنظيم الشيفرة البرمجية بوضع جميع عمليات الاستيراد في أعلى الملف، إذ يجب أن تبدو النسخة النهائية من الشيفرة البرمجية خاصتك شبيةً بهذه الشيفرة: from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.naive_bayes import GaussianNB from sklearn.metrics import accuracy_score # تحميل البيانات data = load_breast_cancer() # تنظيم البيانات label_names = data['target_names'] labels = data['target'] feature_names = data['feature_names'] features = data['data'] # الاطلاع على البيانات print(label_names) print('Class label = ', labels[0]) print(feature_names) print(features[0]) # تقسيم البيانات train, test, train_labels, test_labels = train_test_split(features, labels, test_size=0.33, random_state=42) # تهيئة المصنّف gnb = GaussianNB() # تدريب المصنّف model = gnb.fit(train, train_labels) # بناء التوقعات preds = gnb.predict(test) print(preds) # تقييم الدقة print(accuracy_score(test_labels, preds)) والآن بإمكانك إكمال العمل على الشيفرة البرمجية، وتحسين عمل المُصنّف وتوسيعه، وكذا تجربة هذا المصنّف مع مجموعاتٍ فرعيةٍ مختلفةٍ من الميزات، أو حتى تجربة خوارزمياتٍ مختلفةٍ تمامًا. تستطيع الاطلاع على الموقع الرسمي لمكتبة Scikit-Learn لمزيدٍ من الأفكار حول تطبيق تعلّم الآلة مع البيانات لبناء شيءٍ مفيدٍ. الخلاصة لقد تعلمنا في هذا المقال كيفية إنشاء مُصنّف بالاعتماد على تعلّم الآلة بلغة بايثون باستخدام المكتبة Scikit-learn، والآن بإمكانك تحميل البيانات في بيئةٍ برمجيةٍ وتنظيمها وتدريبها، وكذا التنبؤ بأشياء بناءً عليها، وتقييم دِقّة المُصنّفات الناتجة. نتمنى أن تُساعدك هذه الخطوات في تسهيل طريقة العمل مع بياناتك الخاصة بلغة بايثون. ترجمة -وبتصرف- للفصل How To Build a Machine Learning Classifier in Python with Scikit-learn من كتاب Python Machine Learning Projects لكاتبه Michelle Morales. اقرأ أيضًا النسخة الكاملة لكتاب مدخل إلى الذكاء الاصطناعي وتعلم الآلة المرجع الشامل إلى تعلم لغة بايثون المفاهيم الأساسية لتعلم الآلة بناء شبكة عصبية للتعرف على الأرقام المكتوبة بخط اليد باستخدام مكتبة TensorFlow1 نقطة
-
في هذا المثال لم يُعرّف Active Record الارتباطات ثنائية الاتجاه تلقائيا لأنها احتوت على: class_name و foreign_key و بالتالي في هذه الحالة لن يُحمل Active Record نُسخة واحدة من الكائن Author أي أن: a = Author.first b = a.books.first a.first_name == b.writer.first_name # => true a.first_name = 'David' a.first_name == b.writer.first_name # => false a و b.writer هنا ليسا نفس الكائن. حيث أن Active Record قام بتحميل نُسختين في البداية كانت قيمة الخاصية first_name مُتساوية في كلتا النُسختين، أما بعد تغيير القيمة للكائن a أصبح هناك إختلاف لذلك المُقارنة أعطت false. وقد ذكر المقال أنه حتى نُساعد Active Record على التعرف على الارتباط ثنائي الاتجاه ليقوم بتحميل نُسخة واحدة من الكائن نستخدم الخيار inverse_of و بالتالي في المثال الأخير: class Author < ApplicationRecord has_many :books, inverse_of: 'writer' end class Book < ApplicationRecord belongs_to :writer, class_name: 'Author', foreign_key: 'author_id' end a = Author.first b = a.books.first a.first_name == b.writer.first_name # => true a.first_name = 'David' a.first_name == b.writer.first_name # => true هنا أعطت المُقارنة true حتى بعد تغيير القيمة first_name لـِ a لأن Active Record تعرفت على الإرتباط ثنائي الإتجاه و أن a و b.writer هما نفس الكائن.1 نقطة
-
بعد أن تعرفنا في الدرس الأول على طريقة تثبيت Django وإنشاء مشروعنا الأول فيه، سنشرع في هذا الدرس في إنشاء تطبيقنا الأول والذي سيكون عبارة عن موقع بسيط للاقتراعات يتكون من قسمين: القسم الأول: واجهة يمكن للمستخدم أن يطلع من خلالها على الأسئلة المطروحة واختيار الإجابة التي يرغب فيها. أما القسم الثاني: لوحة تحكم يمكن من خلالها إضافة الأسئلة وتعديلها وحذفها وإضافة الأجوبة وغير ذلك من الأمور. المشاريع Projects والتطبيقات Applications قبل أن ندخل في تفاصيل إنشاء تطبيق الاقتراعات، لا بأس في الحديث بشكل موجز عن مفهومي "المشروع" Project و"التّطبيق" Application في Django. يمثّل المشروع تطبيق الويب الذي يتم إنشاؤه بواسطة Django، ويتم تعريفه من خلال ملف الإعدادات Settings، فكما رأينا في الدرس السابق فبعد تنفيذ الأمر: django-admin startproject mysite تم إنشاء حزمة بايثون تحتوي على ملفات settings.py و urls.py و wsgi.py، وعادة ما تتوسع هذه الحزمة بإضافة المزيد من الملفات مثل ملفات CSS والقوالب وما إلى ذلك من الأمور التي لا تكون مرتبطة بتطبيق معيّن. وعادة ما يكون مجلّد المشروع هذا (المجلد الذي يحتوي على الملف manage.py) حاويًا للتطبيقات التي يتم إنشاؤها بشكل مستقل، وهذه التطبيقات ما هي إلا حزم بايثون تعمل على تقديم بعض الخصائص وتؤدي بعض المهام، ويمكن استخدام هذه التطبيقات في مشاريع متعددة، وهذا ما يسمى بمبدأ قابلية إعادة الاستخدام re-usability. إنشاء تطبيق الاقتراعات ملاحظة: ابتدءًا من هذا الدرس فإن عبارة "مجلد المشروع" تعني المجلد الذي يحتوي على ملف manage.py. توجّه في سطر الأوامر إلى مجلد المشروع ثم اكتب الأمر التالي: python manage.py startapp polls يمكن الحصول على نفس النتيجة من خلال الأمر التالي: django-admin startapp polls بعد تنفيذ الأمر ستجد أنّ إطار العمل قد أنشأ مجلدًا جديدًا يحمل الاسم polls، ويتضمن عددًا من الملفات نستعرضها بشكل مختصر: init__.py__: هذا الملف مشابه للملف الموجود في مجلد المشروع، وهو ملف فارغ يعني وجوده أن هذا المجلد هو حزمة من حزم بايثون. admin.py: يمكن من خلال هذا الملف إدارة وتخصيص لوحة التحكم والتي تأتي جاهزة مع التطبيق. apps.py: يمكن من خلال هذا الملف إعداد التطبيق configuration لاستخدامه في مشاريع أخرى. models.py: سيتضمن هذا الملف النماذج التي يتعامل التطبيق معها، والتي تكون مسؤولة عن إنشاء جداول قواعد البيانات. tests.py: يمكن من خلال هذا الملف إجراء الاختبارات Tests على التطبيق. views.py: تضاف في هذا الملف العروض المسؤولة عن تحديد البيانات والمعلومات التي سيتم عرضها على المتصفح، وهي كذلك صلة الوصل بين المسارات والقوالب. مجلد migrations: سيستقبل هذا المجلد الملفات الناشئة عن عملية تهجير قاعدة البيانات. إعدادات المشروع يحتوي مجلد المشروع على ملف الإعدادات settings.py، وهو عبارة عن ملف بايثون يحتوي جميع الإعدادات الخاصة بالمشروع، وسنستعرض بعض محتويات هذا الملف بشكل موجز. BASE_DIR: متغير نصّي يقدّم مسار المجلد الأساسي للمشروع، ويمكن الاستفادة من هذا المتغير في تحديد مسارات المجلدات التي تحتوي على القوالب أو الملفات الساكنة وغيرها، وسنتعرف على طريقة استخدامه عند الحديث عن القوالب. SECRET_KEY: عبارة عن سلسلة نصية من حروف ورموز عشوائية يمكن الاستفادة منها في حماية التطبيق. DEBUG: متغير من نوع bool، ويمكن من خلاله التحكم في وضع التنقيح Debugging، حيث تظهر معلومات مفيدة عند حدوث الأخطاء، ولكن ينصح بتغيير قيمته إلى False عند نقل المشروع إلى بيئة الإنتاج. INSTALLED_APPS: عبارة عن قائمة تتضمن التطبيقات التي سيضمها المشروع الحالي، ويمكنك أن تلاحظ وجود عدد من التطبيقات المثبتة بشكل مسبق، مثل إدارة لوحة التحكم admin، والاستيثاق auth، والجلسات sessions وغيرها. TEMPLATES: عبارة عن قائمة تتضمن إعدادات القوالب المستخدمة في المشروع، وما يهمنا فيها هو العنصر DIRS والذي يتم من خلاله تعيين المسارات التي تحتوي على ملفات القالب. DATABASES: قائمة أخرى مسؤولة عن تحديد المعلومات اللازمة للتعامل مع قواعد البيانات، وسنتطرق إليها عند الحديث عن النماذج Models والاتصال بقواعد البيانات. LANGUAGE_CODE: يمكن من خلال هذا المتغير تحديد لغة واجهة لوحة التحكم، والإعداد الافتراضي هنا هو اللغة الإنكليزية، ولكن Django يدعم العديد من اللغات ومن ضمنها العربية، وإن كنت ترغب في استخدام اللغة العربية في عرض عناصر لوحة التحكم، فيمكنك تغيير قيمة هذا المتغير بالشكل التالي: LANGUAGE_CODE = 'ar' TIME_ZONE: يمكن من خلال هذا المتغيير تعيين المنطقة الزمنية التي سيستخدمها Django في دوال الوقت والتاريخ. ويمكن استبدال هذه القيمة حسب الرغبة. STATIC_URL: في هذا المتغير يتم تحديد مسار المجلد الذي يحتوي على الملفات الساكنة وهي ملفات CSS و Javascript والخطوط والصور وغيرها. كتابة العرض الأول العرض View عبارة عن دالة مكتوبة بلغة Python (أو صنف كما سنرى في الدروس اللاحقة) يمكن تلخيص عملها ببساطة في أنها تأخذ الطلبات Requests التي يرسلها العميل وتقوم بإرجاع الإجابة response والتي يمكن أن تكون على هيئة شيفرة بصيغة HTML، أو إعادة توجيه لصفحة أخرى، أو صفحة خطأ 404، أو ملف XML، أو صورة أو أي شي آخر. لنبدأ الآن بكتابة العرض الأول في مشروعنا، وللقيام بذلك افتح ملف polls/view.s.py في محرر النصوص المفضّل لديك، ثم امسح محتوياته واكتب الشيفرة التالية: from django.http import HttpResponse def index(request): html = "مرحبًا بك في تطبيق الاقتراعات، هذه هي الصفحة الرئيسية." return HttpResponse(html) في السطر الأول من هذه الشيفرة قمنا باستيراد الصنف HttpResponse من وحدة django.http، وهو المسؤول عن التعامل مع الاستجابة التي ترد على الطلب الذي أرسلناه إلى الخادوم من خلال الدالة index، وذلك عن طريق تمرير المعامل request عند تعريف الدالة. ستقوم هذه الدالة بإعادة العنصر HttpResponse والذي يحتوي على الإجابة، وهي في مثالنا هذا عبارة عن سلسلة نصية بسيطة. ملاحظة: في حال عدم ظهور الأحرف العربية بشكل صحيح، أضف السطر التالي إلى بداية ملف views.py: # -*- coding:utf8 -*- لنتمكن من مشاهدة النتيجة على المتصفح، يجب أن نربط هذا العرض بمسار معين؛ وللقيام بذلك توجه إلى الملف mysite/urls.py وعدّل محتوياته لتصبح بالشكل التالي: from django.conf.urls import url from django.contrib import admin from polls import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^polls/', views.index), ] يتضمن هذا الملف جميع المسارات التي سنستخدمها في المشروع، وهو بمثابة جدول لمحتويات الموقع. في البداية قمنا باستيراد محتويات ملف views.py الموجود في مجلد polls من خلال الشيفرة التالية: from polls import views من خلال هذه الشيفرة يمكنك أن تلاحظ أن Django يتعامل مع المجلد polls باعتباره حزمة من حزم بايثون، وذلك لاحتواءه على ملف init__.py__ كما ذكرنا سابقًا. بهذا الطريقة يمكننا الوصول إلى دالة index التي أنشأناها قبل قليل في ملف views.py الموجود في مجلد polls (أو حزمة polls لنكون أكثر دقة) وذلك تمهيدًا لربطها بالمسار الذي نرغب فيه. أضفنا كذلك الشيفرة التالية إلى قائمة urlpatterns: url(r'/polls', views.index), وهي عبارة عن دالة وظيفتها ربط المسار الذي نحدده في المعامل الأول بالعرض الذي نحدده في المعامل الثاني. لاحظ أن المسار عبارة عن سلسلة نصية مسبوقة بحرف r صغير وذلك لإخبار بايثون بأن يتعامل مع هذه السلسلة النصية على أنّها سلسلة خام raw، بمعنى أنه سيتم تجاوز جميع العلامات الخاصة المستخدمة في هذه السلسلة، وهذا ضروري جدًّا، لأن Django يستخدم التعبيرات النظامية Regular Expressions في تحديد المسارات وتمرير المتغيرات، وهذه التعبيرات تستخدم الكثير من الرموز التي يجب تجاوزها لتعمل الشيفرة بالشكل الصحيح. سنتعرف على المسارات وآلية عملها وكيفية استخدام التعبيرات النظامية، في الدروس اللاحقة. يمكنك الآن التوجه إلى مجلد المشروع وتشغيل الخادوم الخاص بـ Django عن طريق سطر الأوامر من خلال الأمر التالي: python manage.py runserver انتقل في المتصفح إلى العنوان التالي: http://127.0.0.1:8000/polls لتشاهد عبارة الترحيب في واجهة الموقع. يمكننا استخدام شيفرة HTML ضمن السلسلة النصية التي ترجعها دالة العرض، وللقيام بذلك افتح ملف polls/view.py وعدّله ليصبح بالشكل التالي: from django.http import HttpResponse def index(request): html = """ <html dir="rtl"> <head> <title>تطبيق الاقتراعات</title> </head> <body> <h1>تطبيق الاقتراعات</h1> <p>مرحبًا بك في تطبيق الاقتراعات، هذه هي الصفحة الرئيسية.</p> </body> </html> """ return HttpResponse(html) من المؤكد أن التطبيقات التي نراها على صفحات الإنترنت لا تتمتع بهذه البساطة الشديدة، وهذا يعني أن استخدام شيفرة HTML ضمن دالة العرض أمر غير عملي على الإطلاق، وهنا تظهر الحاجة إلى فصل هذه الشيفرات عن العروض وهذه هي وظيفة القوالب Templates والتي سنتعرف إليها في الدروس اللاحقة. خاتمة تعرفنا في هذا الدرس على مفهومي المشروع والتطبيق في Django، وقمنا بكتابة العرض الأول وتعرفنا بشكل مختصر على المسارات Urls. سنتعرف في الدرس القادم على كيفية التعامل مع قواعد البيانات من خلال النماذج Models، وكذلك سنتعرف على كيفية تهجير قواعد البيانات، وكذلك الاستعلام عن البيانات برمجيًا، وذلك لتهيئة قاعدة البيانات التي سنستخدمها في تطبيق الاقتراعات.1 نقطة
