-
المساهمات
5232 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
52
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Adnane Kadri
-
جافاسكربت واحدة من اللغات التي يواجه المترددون عليها بعض المشاكل في فهمها أو استيعاب بعض منطقها، ولكنها في الأخير ستجد أنها من أسهل اللغات. فيما يلي بعض النصائح التي ستساعدك في تخطي مثل هاته العقبة، خصوصا وأنك مشترك في دورة تطوير واجهات الاستخدام: لا تستعجل التعلم وخذ كامل وقتك في فهم و استيعاب كل جزئية يتم التعرض لها. تفاعل مع المدربين وافتح نقاشات حول أي نقطة يلبس فهمها عليك. ابحث عن مشاريع بسيطة وجرب تنفيذها. قم بالتعرض لجزئيات جافاسكربت على حدة، مثال: قم بتطبيق الوقت والتاريخ في جافاسكربت عن طريق بناء ساعة مثلا، وقم بتطبيق العمليات الحسابية والدوال الرياضية عن طريق بناء آلة حاسبة. وما إلى ذلك. تقبل الأمر وانظر الى الأمر على أنه شيء طبيعي وليس شيئا يخصك.
-
هنالك الكثير من الخيارات التي تتباين ميزاتها، ولكن عموما، ستحتاج اختيار واحدة من التالي: Laravel Nova: تعتبر واحدة من أشهر حزم لوحات التحكم في لارافيل. توفر Nova واجهة جميلة وقوية لإدارة قاعدة البيانات والصلاحيات والمحتوى في تطبيقك. يمكنك استخدام Nova لإنشاء لوحة تحكم مخصصة وفقًا لاحتياجات مشروعك. Backpack for Laravel: توفر لوحة تحكم جاهزة ومخصصة لإدارة المحتوى والبيانات والصلاحيات في لارافيل. يمكنك تخصيص لوحة التحكم وفقًا لاحتياجاتك باستخدام الوظائف المدمجة والإضافات المتاحة. Laravel Voyager: هذه الحزمة تقدم لوحة تحكم جاهزة وسهلة الاستخدام تسمح لك بإدارة المحتوى والصفحات والبيانات بسهولة دون الحاجة إلى البرمجة. تأتي مع مجموعة من الميزات والإضافات التي تجعلها خيارًا مناسبًا لإنشاء لوحة تحكم سريعة وفعالة. AdminLTE Integration: ليس حزمة لوحة تحكم تحديدا، ولكنه يعد نمطًا لتكامل لارافيل مع قالب AdminLTE الشهير لإنشاء لوحة تحكم مخصصة بناءً على تصميم AdminLTE المميز. InfyOm Laravel Generator: على الرغم من أنه ليس لوحة تحكم جاهزة، إلا أنها حزمة توفر أدوات لتوليد تطبيق Laravel بسرعة وفقًا لنمط جاهز مع صفحات لوحات تحكم. CoreUI for Laravel: هذه الحزمة تتكامل مع قالب CoreUI الشهير وتقدم لوحة تحكم جاهزة تسمح لك بإدارة المحتوى والبيانات بسهولة.
-
جرب نسخ الصورة إلى الحافظة، ارفعها الى الخادم الخاصك بك ثم قم بتوجيه المستخدم الى الرابط: 'whatsapp://send?text='+encodeURIComponent(imageURL) سيفي هذا بالغرض.
- 3 اجابة
-
- 1
-
-
مرحبا شمس، ان كان السؤال متعلق بإحدى الدورات ينصح بالتعليق أسفل الدرس في قسم تعليقات الطلبة أسفل الفيديو. عموما، قابلية التكرار هي الترجمة العربية لمصطلح Iterable، وتعني نفس الشيء. ويفرق في اللغة الانجليزية بين معنى التكرار Repetition و التكرار Iteration رغم أن كلاهما يشير إلى نفس المصطلح في العربية، فالأولى، في سياقات عامة خارج البرمجة، "repetition" تعني أيضًا التكرار، ولكنها قد تكون مرتبطة بالأنشطة والأحداث المختلفة. يمكن أن يكون التكرار في هذا السياق مرتبطًا بأنشطة يومية مثل قراءة الكتب، ممارسة الرياضة، تكرار المناسبات الاجتماعية وما إلى ذلك. يمكن أن يكون التكرار هنا أكثر عفوية وتنوعًا من استخدامه في البرمجة. أما الثانية، وفي عالم البرمجة والحوسبة، "iteration" تشير إلى عملية تكرار سلسلة من الخطوات أو الأوامر لعدد محدد من المرات. في البرمجة، يستخدم المطورون تكرار الحلقات (loops) لتنفيذ الكود بشكل متكرر حتى تتحقق شرط معين. عند استخدام الحلقات، يتم تكرار جزء معين من الكود مرارًا وتكرارًا حتى يتم تحقيق الشرط المطلوب. إذ أن هذه هي الفكرة الأصلية من الحلقات، تكرار شيفرة معينة كذا مرة. والتسلسل هو ذات الأمر، اذ نعتمد في تكرار كتلة برمجية معينة على المرور على عدد n من العناصر بشكل تسلسلي.
-
لا يوجد تعارض في هذا الأمر مع NodeJS. فهو الآخر يمكن به التعامل مع مثل هاته الجزئيات بقدر عال من الاحترافية. نذكر بعض المكتبات مثلا: Multer: Multer هي مكتبة Node.js لمعالجة طلبات تحميل الملفات. يمكنك استخدامها مع Express.js لتلقي ملفات الصور والفيديوهات من طلبات المستخدم وحفظها على الخادم. AWS S3 أو Google Cloud Storage: إذا كنت ترغب في تخزين الصور والفيديوهات على خدمات تخزين سحابية مثل Amazon S3 أو Google Cloud Storage، يمكنك استخدام مكتبات مثل aws-sdk أو @google-cloud/storage للتفاعل مع هذه الخدمات. FFmpeg: إذا كنت تحتاج إلى معالجة الفيديوهات مثل تحويل صيغ الفيديو أو قصها أو إجراء عمليات أخرى، يمكنك استخدام FFmpeg، وهو أداة سطر الأوامر المتاحة للتعامل مع الوسائط المتعددة. Jimp: إذا كنت ترغب في معالجة الصور مثل تغيير الحجم أو تطبيق الفلترات، يمكنك استخدام مكتبة Jimp التي تدعم العديد من عمليات تحرير الصور.
- 3 اجابة
-
- 1
-
-
ستحتاج تاليا اجتياز امتحان الحصول على الشهادة التي ستخولك لاختبار أولى مشاريعك والتسجيل في مواقع العمل الحر للإنطلاق في ذلك. امتحان الحصول على الشهادة يقتضي استيفاء الشروط التالية: إتمام أربعة مسارات تعليمية على الأقل التطبيق العملي مع المدرب، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة رفع المشاريع على حسابك على GitHub يمكنك الاطلاع على تفاصيل ومراحل اجتياز الامتحان من هنا. سيقوم الممتحنون بتوجيهك نحو الخطوات التالية.
-
ما قمت به في دورة تطوير واجهة الاستخدام هو أقصى ما سيقوم به مطور الواجهة الأمامية، إذ أن التعامل مع مثل هاته الجزئية يتم غالبا على مستوى الواجهة الخلفية. ولذلك فإننا نكتفي في دورة تطوير واجهة الاستخدام بتوصيف مثل هاته الصفحات كعناصر ثابتة أو كمكونات جامدة غير مفعلة. في حين أن دورات أخرى من الأكاديمية نقوم فيها بتطوير كل هاته الوظيفية والتعامل معها على مستوى الواجهة الخلفية. نفس الشيء بالنسبة لصفحات تسجيل الدخول وغيرها، فهذا هو عمل مطور النظم الخلفية أساسا. هو ما يعطي الحياة لهاته الصفحات.
-
الموقع عموما جيد، ولكن فيما يلي بعض الملاحظات: للوهلة الأولى يخيل للزائر أن اسم المطور مرفقا باسمه الوظيفي يعبر عن preloader وأن محتوى ما يتم تجهيزه لإظهاره، ولا يظهر إلا بصعوبة أن المحتوى يجب الإنزلاق إليه. أضف موجها أو سهما يشير إلى الأسفل مثلا. اختر لشريط التصفح لونا آخرا، لأنه يتداخل عند السكرول مع المحتوى ويظهر الشعار بشكل غير جيد. الخط في قسم السيرة الذاتية يحتاج تكبيرا. في قسم المهارات ضع أيقونات للمهارات التي لا يحدد لها ذلك، PHP أو XML مثلا. في قسم what i do هنالك الكثير من النصوص، تأكد من اقتضابها واختصارها أو ضف شروحات مصورة، صورا أو غرافيكات مثلا. ضف المزيد من الروابط الخاصة بك وتأكد من توفير زر أو رابط للتواصل معك. -صحيح أنه توجد في صورة الهاتف ولكنها لا تظهر أنها أزرار حقيقية، اذ يخيل أنها صورة للهاتف وفقط-. أخرجها عن الهاتف قليلا، بحيث تكون بشكل متداخل يظهر احترافية التصميم. ضف شريط تصفح في قائمة التصفح ليسهل استعراض المحتوى. ضف زرا للعودة إلى الأعلى عند التصفح لأسفل المحتوى.
- 3 اجابة
-
- 1
-
-
مبدئيا لا تظهر أي مشكلة في الشيفرة، ولكن هنالك بعض الملاحظات: لما يتم تصريح المتغير time_cklick دون أن يتم استعماله. نفس الشيء بالنسبة للمتغير string_id. لا يوجد داع من التحقق من عنوان الصفحة قبل تنفيذ الاسكربت، يمكنك التغاضي عن هذا وحقن شيفرة الاسكربت في الصفحة المنشودة وفقط. لا داع من استعمال String في: String('button[class="crash-btn crash-btn--transparent crash-btn__text"]') فالعنصر الممرر هو سلسلة نصية حصرا ولا داع من تحديد ذلك. تأكد من تضمين جيكويري مادمت تستخدم سياقها: if ($('button[class="crash-btn crash-betbtn crash-betbtn--stop"]').is('[disabled=disabled]') == false) قد تكون هنالك بعض الملاحظات الجانبية الأخرى، ولكن لن يمكن تصويب الشيفرة إلا بعد الاطلاع على كيفية استعمالها أو الهدف المرجو منها، أيضا لن يمكن تشخيص أخطاءها دون التعرف على هاته الأخطاء.
-
يمكنك أيضا الاعتماد على مواقع الاختبارات والتحديثات لتحديد المجال، اللغة ودرجة الصعوبة لفلترة اختبارات ذات مستوى سهل، صعب ومتوسط في الدوال في جافاسكربت. نذكر مثلا: freecodecamp codecademy exercism leetcode codewars hackerrank
- 6 اجابة
-
- 1
-
-
عند استخدام محتوى مرخص مثل الخطوط والأيقونات والصور التي تحمل تراخيص معينة، يجب عليك دائمًا وضع attribution أو الإشارة إلى مصدر المحتوى وترخيصه حسب ما هو محدد في الترخيص الخاص بهذا المحتوى. هذا يعني أنه عليك ذكر المصدر والترخيص المناسب عند استخدام هذه الموارد في مشروعك. قد يكون هذا شرطا ضروريا في بعض الأحيان. تأتي ملفات المكتبات عادة مرفقة بملف الترخيص LICENSE.md، يشرح هذا الملف نوع رخصة الاستخدام وحدود استعمال الملف او المكتبة او البرمجية، يمكنك التغاضي عن حذفه وسيكون هذا كافيا. فيما يخص استخدام jQuery، فإن استخدام الرابط من Google hosted libraries يعتبر طريقة سهلة وشائعة لاستخدام jQuery في مشروعك، ولكن يفترض أنك تلتزم بشروط استخدام Google hosted libraries. في هذه الحالة، عادةً لا تكون هناك حاجة إلى وضع attribution، لأن Google تتعامل مع الرخص والإشارات إلى مصدر البيانات بالنيابة عنك.
-
الشيفرات المرفقة من قبل المدربين تفي بالغرض، تأكد فقط من استعمالها على نحو صحيح فقط. مرفق مثال عن جدول: <table> <thead> <tr> <th>Name</th> <th>Job</th> <th>Salary</th> </tr> </thead> <tbody> <tr> <td>Olivia Saturday</td> <td>Senior Data Engineer</td> <td>$320,000</td> </tr> <tr> <td>David Smith</td> <td>Strategic Finance Manager</td> <td>$180,000</td> </tr> <tr> <td>Margaret Mills</td> <td>Lead Software Engineer</td> <td>$250,000</td> </tr> <tr> <td>Paul Brown</td> <td>Digital Content Writer</td> <td>$145,000</td> </tr> <tr> <td>Stephanie Tavartkiladze</td> <td>Digital Project Manager</td> <td>$250,000</td> </tr> <tr> <td>Olivia Saturday</td> <td>Senior Data Engineer</td> <td>$320,000</td> </tr> <tr> <td>David Smith</td> <td>Strategic Finance Manager</td> <td>$180,000</td> </tr> <tr> <td>Margaret Mills</td> <td>Lead Software Engineer</td> <td>$250,000</td> </tr> <tr> <td>Paul Brown</td> <td>Digital Content Writer</td> <td>$145,000</td> </tr> <tr> <td>Stephanie Tavartkiladze</td> <td>Digital Project Manager</td> <td>$250,000</td> </tr> <tr> <td>Olivia Saturday</td> <td>Senior Data Engineer</td> <td>$320,000</td> </tr> <tr> <td>David Smith</td> <td>Strategic Finance Manager</td> <td>$180,000</td> </tr> <tr> <td>Margaret Mills</td> <td>Lead Software Engineer</td> <td>$250,000</td> </tr> <tr> <td>Paul Brown</td> <td>Digital Content Writer</td> <td>$145,000</td> </tr> <tr> <td>Stephanie Tavartkiladze</td> <td>Digital Project Manager</td> <td>$250,000</td> </tr> <tr> <td>Olivia Saturday</td> <td>Senior Data Engineer</td> <td>$320,000</td> </tr> <tr> <td>David Smith</td> <td>Strategic Finance Manager</td> <td>$180,000</td> </tr> <tr> <td>Margaret Mills</td> <td>Lead Software Engineer</td> <td>$250,000</td> </tr> <tr> <td>Paul Brown</td> <td>Digital Content Writer</td> <td>$145,000</td> </tr> <tr> <td>Stephanie Tavartkiladze</td> <td>Digital Project Manager</td> <td>$250,000</td> </tr> </tbody> </table> التنسيقات المطبقة على هذا الجدول تكون: table { width: 100%; max-width: 960px; margin: 0 auto; border-collapse: separate; border-spacing: 0; } tbody tr:nth-child(odd) { background-color: #ECE9E9; } th, td { /* cell */ padding: 0.75rem; font-size: 0.9375rem; } th { /* header cell */ font-weight: 700; text-align: left; color: #272838; border-bottom: 2px solid #EB9486; position: sticky; top: 0; background-color: #F9F8F8; } td { /* body cell */ color: #7E7F9A; } /* demo stuff */ body { padding: 6rem 2rem; background-color: #F9F8F8; } سيعطي هذا نفس المقاربة التي تقصدها.
-
الخطأ الذي يظهر هو في الغالب ناتج عن طباعة معلومات debug أو trace في صفحة الاستجابة. هذا النوع من الطباعة يظهر عادةً عندما يتم تفعيل إعدادات الإشعار أو التصحيح (debugging) في تكوين PHP أو إطار العمل الذي تستخدمه. لحل المشكلة وإخفاء هذه المعلومات غير المرغوب فيها عن الزوار، يجب أن تتأكد من أن إعدادات التصحيح والإشعارات في PHP معطلة عند نشر التطبيق على الخادم الحقيقي. يمكنك القيام بذلك باتباع الخطوات التالية: افتح ملف تكوين PHP (عادةً يكون اسمه php.ini). تأكد من أن إعدادات التصحيح والإشعارات معطلة. للقيام بذلك، ابحث عن الخطوط التالية وتأكد أنها معلقة أو معطلة: display_errors = Off error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT بعد إجراء التغييرات، أعد تشغيل خادم Apache لكي تتمكن من التأكد من أن الإعدادات الجديدة تعمل كما هو متوقع وأن المعلومات غير مرئية على صفحة الاستجابة. في حالة التعذر، يرجى ارفاق الشيفرة المسؤولة عن المشكلة.
-
الأمر بسيط، فكر بالأمر من ناحية مدلوله اللغوي وستجده بسيطا. Set: يُعد Set هو عبارة عن هيكل بيانات يسمح بتخزين مجموعة من القيم المميزة (فريدة) بدون تكرار. يمكن للعناصر في Set أن تكون من أي نوع من أنواع البيانات مثل الأرقام والسلاسل والأشياء الأخرى. يتيح لنا طرقًا لإضافة عناصر جديدة وإزالة العناصر الحالية والبحث عن عناصر معينة. مثال: // إنشاء مجموعة Set const mySet = new Set(); // إضافة عناصر إلى المجموعة mySet.add(10); mySet.add('Hello'); mySet.add({ name: 'John', age: 25 }); // الحصول على عدد العناصر في المجموعة console.log(mySet.size); // الناتج: 3 // التحقق مما إذا كانت المجموعة تحتوي على عنصر معين console.log(mySet.has('Hello')); // الناتج: true // إزالة عنصر من المجموعة mySet.delete(10); // تحويل Set إلى مصفوفة const myArray = [...mySet]; console.log(myArray); // الناتج: ['Hello', { name: 'John', age: 25 }] WeakSet: هو نوع خاص من Set المرجع فيه ضعيف Weak، يعني هذا أن أن العناصر في WeakSet قابلة للتدمير إذا لم يتم الاحتفاظ بها بشكل آخر ككائن في البرنامج / التطبيق. كما أن العناصر في WeakSet من نوع الكائنات فقط. مثال: // إنشاء مجموعة WeakSet const myWeakSet = new WeakSet(); // إنشاء كائنين لاستخدامهما كمفاتيح في WeakSet const key1 = { id: 1 }; const key2 = { id: 2 }; // إضافة الكائنات إلى المجموعة myWeakSet.add(key1); myWeakSet.add(key2); // الكائنات في myWeakSet تكون مرتبطة فقط بمجموعة الضعيف وليس لديها تأثير على جمع القمامة // التحقق مما إذا كان الكائن موجودًا في المجموعة console.log(myWeakSet.has(key1)); // الناتج: true // إزالة الكائن من المجموعة (لا يمكن القيام بهذا بشكل مباشر) // يمكنك إعادة تعيين المتغير الذي يحمل الكائن (مفتاح) ليصبح `null` لتمكين جمع القمامة key1 = null; // تحويل WeakSet إلى مصفوفة غير ممكن بسبب طبيعة WeakSet وعدم وجود إشارة ثابتة للكائنات الداخلة فيه وهذا بخصوص الأطقم أو Sets. الخرائط Maps تمتلك نفس المضمون غير أن القيم فيها تخزن كزوج قيمة - مفتاح، اذ يمكن استخدام أي نوع من البيانات كمفتاح أو قيمة. قد يكون من الأفضل الاستزادة بالاطلاع على المقالة التالية:
- 2 اجابة
-
- 1
-
-
قد يكون التركيز المفرط في الوقت هو ما يشتتك ويجعلك تحس بشعور أنك نسيت، رغم هذا، إلا أن الشعور بنسيان معلومات أو الشعور بأنك تخزن كميات كبيرة من المعلومات وتنساها، هذا شيء طبيعي جداً. فالمعرفة والمعلومات التي نتعلمها يمكن أن تكون ضخمة وتزداد بمرور الوقت. لكن لا تقلق، هذا أمر شائع بالنسبة للجميع. يمكنك دائمًا الرجوع إلى المصادر التي تعلمت منها أو استخدام الأدوات والمراجع للتذكر والتحقق من المعلومات. الأهم الآن، هو أن تستمر في التعلم والتطبيق وألا تتوقف عن التدريب. الاستمرارية والتكرار تلعب دورًا مهمًا في تحسين الاستيعاب وتذكر المعلومات. أيضًا، حاول ممارسة ما تعلمته في مشاريع عملية، فالتطبيق العملي يساعد في تثبيت المعرفة. ولا تتوقع أن تكون مثاليًا أو أن تتذكر كل شيء في كل وقت بطبيعة الحال. الأهم هو الاستمرارية والتحسن مع مرور الوقت. فكل المطورين يعودون لمحركات البحث ولتوثيقات اللغات والأطر والأدوات التي يستعملونها ولا يوجد من يستذكر كل شيء كل الوقت. أيضا لا يمكن بدقة تحديد الوقت الممكن استغراقه في الدورة ككل، فالأمر ذاتي جدا، ويعتمد على قدرتك الاستيعابية ومدى تفرغك للتحصيل العلمي.
-
يبدوا أنك تحاولين استعمال مدير حزم عن طريق مستخدم لا يمتلك صلاحية التثبيت، ولهذا يتطلب منك ادخال كلمة المرور أولا. عموما، جرب إجراء الخطوات التالية: تأكد أنك تقوم بتنفيذ الأمر باستخدام حساب المستخدم الذي لديه صلاحية الوصول إلى الإنترنت وتثبيت البرامج. قد يكون هذا المستخدم هو "root" أو مستخدم آخر لديه صلاحية sudo. جرب تحميل بايثون 3 بتنفيذ الأمريرن: sudo apt update sudo apt install python3 قد تحتاج إلى إدخال كلمة مرور المستخدم الخاصة بحساب الـ "sudo" (إذا كان لديك) عند طلبها. قد يكون لديك مؤقتًا بعض الوقت لإدخال كلمة المرور قبل أن تفشل العملية. ولهذا أدخلها وتجنب هذا السيناريو.
-
جرب المحايلة باستخدام عدد n من استعلامات OR LIKE بشكل ديناميكي. بحيث تقوم أولا بتجزئة الجملة المراد فلترة النتائج بحسبها: $keywords = explode(' ', $originalKeyword); ثم جهز استعلام Eloquent الخاص بك: $results = YourModel::where('name', 'LIKE', $keywords[0]); ثم من أجل كل كلمة من الكلمات المفتاحية قم بتجهيز استعلام OR LIKE: foreach($keywords as $keyword){ $results = $result->orWhere('name', 'LIKE', $keyword) } ثم نفذ الاستعلام في الأخير: $result = $result->get(); فيكون الكود كاملا: $keywords = explode(' ', $originalKeyword); $results = YourModel::where('name', 'LIKE', $keywords[0]); foreach($keywords as $index => $keyword){ if($index > 0){ $results = $result->orWhere('name', 'LIKE', $keyword); } } $result = $result->get();
-
بطبيعة الحال، فإن تعدين العملات الرقمية يتطلب موارد محددة، وأحد هذه الموارد هو الذاكرة العشوائية (RAM). الكمية المطلوبة من ذاكرة الوصول العشوائي تختلف اعتمادًا على عدة عوامل، مثل نوع العملة الرقمية التي تتم تعدينها ونوع خوارزمية التعدين المستخدمة وما إلى ذلك. كمية استهلاك الهاش للتعدين تختلف أيضًا بناءً على العملة الرقمية وخوارزمية التعدين. ولذلك يوجد الهاش، فهو وحدة قياس قوة التعدين ويُعبر عنه بالهاش في الثانية (hashes per second). يتوقف معدل الهاش على القوة التي يمتلكها جهاز التعدين (المعالجات ووحدات المعالجة الرسومية وغيرها من المكونات الأخرى). لحساب متوسط استهلاك الذاكرة والهاش للتعدين، يمكنك متابعة الخطوات التالية: ابحث عن معلومات التعدين الخاصة بالعملة الرقمية التي ترغب في تعدينها، بما في ذلك خوارزمية التعدين المستخدمة. تحقق من مواصفات التعدين الموصى بها من قبل الشركة المطورة للعملة الرقمية أو من مجتمع التعدين. يمكن أن تتضمن هذه المواصفات حجم ذاكرة الوصول العشوائي (RAM) المطلوبة وقوة التعدين المقدرة بالهاش في الثانية. قم بتقييم جهاز الكمبيوتر الذي تعتزم استخدامه للتعدين وتحديد ما إذا كانت مواصفاته تفي بمتطلبات التعدين. قد تحتاج إلى زيادة ذاكرة الوصول العشوائي (RAM) أو استبدال بعض المكونات إذا لزم الأمر. استخدم أدوات الاختبار والقياس لقياس أداء جهاز التعدين الخاص بك وكمية الهاش التي ينتجها في الثانية. هذا سيساعدك على تقييم الأداء الفعلي لجهاز التعدين واستهلاكه للطاقة وموارد الذاكرة.
-
ولما الاستعجال؟ التركيز في الوقت المستغرق لا داعي منه في الغالب، وسوف لن يزيد الطالب إلا تشتيتا ويبعده عن الاستثمار الحق في محتوى الدورة، بدل ذلك يجب التركيز على التعلم باستمرار وعلى استيعاب المفاهيم التي يتم التعرض لها وممارستها على وجه أكمل. كما أن الوصول إلى الدورات هو وصول مدى الحياة. ولذلك فإنه لا يوجد أي مدعى من الاستعجال والتركيز في المدة المستغرقة. أما ان شئت الدقة أكثر فيمكنك القيام بعملية حسابية بسيطة وتقدير ذلك بالنسبة لك، مثال: دورة تطوير واجهات الاستخدام التي تأتي بإجمالي 72 ساعة فيديو، ضف إليها المدة المستغرقة في التطبيق أو الاستيعاب أو المناقشة أو ما الى ذلك، ولنقدر ذلك بـ 5 أضعاف اجمالي المدة فتكون 360 ساعة. فيكون الوقت الإجمالي للإنتهاء من الدورة هو: أربع ساعات يوميا لمدة 3 أشهر. (4 * 3 * 30) ساعتان يوميا لمدة 6 أشهر. (2 * 30 * 6) ساعة يوميا لمدة 12 شهر. (1 * 30 * 12) وهذا كمتوسط فقط، يمكنك مقاربة ذلك بحسبك وظروفك وطاقتك الاستيعابية.
-
قد يوجد ولكن لا ينصح به، لا يمكن رفع ذاكرة الوصول العشوائي (RAM) في الكمبيوتر المحمول بإضافة ذاكرة خارجية دون الحاجة لفك اللابتوب. اذ أن ذاكرة الوصول العشوائي هي عبارة عن رقائق مثبتة داخل اللابتوب متصلة باللوحة الأم، ولا يمكن إضافتها أو تبديلها بسهولة كما هو الحال مع بعض الأجزاء الأخرى في الكمبيوتر المكتبي. رغم هذا إلا أنك قد تجد بعض الحلول، من مثل استخدام وحدة ذاكرة USB كذاكرة افتراضية (Virtual Memory) لزيادة قدرة الذاكرة المؤقتة للجهاز. يتطلب ذلك إعداد وحدة الفلاشة للعمل كذاكرة افتراضية وتعيينها كوحدة تخزين تكميلية للرام في إعدادات النظام. يُرجى ملاحظة أنه على الرغم من أن هذا الحل يمكن أن يساعد في تحسين الأداء في بعض الحالات، إلا أنه غالبًا ما يكون أقل فعالية من زيادة الرامات الفعلية. يمكنك كحل أفضل استخدم وحدة ذاكرة خارجية (External Memory Module)، بعض الشركات توفر وحدات ذاكرة خارجية قابلة للتوصيل بمنافذ USB أو Thunderbolt في اللابتوب. يُعتبر هذا الخيار أفضل من استخدام وحدة USB كذاكرة افتراضية، حيث يتم توصيل الوحدة الخارجية مباشرة بنظام الذاكرة لتعزيز الأداء.
-
استعن بمواقع التغذية البصرية لتحسين حسك الفني من جهة وللإقتباس من جهة أخرى، نذكر على سبيل المثال: موقع nicepage الصور المنشورة تحت تصنيف web design في مواقع مثل dribble موقع webdesign-inspiration محرك قوقل للصور استعمل هاته المصادر وأخرى في أخذ فكرة وتصور أولي عن ما تحاول تصميمه، ومع الوقت ستجد نفسك على دراية بمبادئ التصميم وعلى حس فني عال يمكنك من إنشاء تصاميم ذات جودة وذات تجربة استخدام جيدة.
- 5 اجابة
-
- 1
-
-
سوف لن يكون عليك إلا إنشاء استعلام الحذف وتنفيذه وفقط، مرفق مثال عملي عن شيفرة PHP لحذف موظف من جدول الموظفين: <?php // بيانات الاتصال بقاعدة البيانات $servername = "localhost"; $username = "اسم_المستخدم"; $password = "كلمة_المرور"; $dbname = "اسم_قاعدة_البيانات"; // إنشاء اتصال بقاعدة البيانات $conn = new mysqli($servername, $username, $password, $dbname); // التحقق من نجاح الاتصال if ($conn->connect_error) { die("فشل الاتصال بقاعدة البيانات: " . $conn->connect_error); } // رقم الموظف الذي ترغب في حذفه $employeeId = 123; // قم بتغيير هذا برقم الموظف الفعلي الذي ترغب في حذفه // استعلام SQL لحذف الموظف من جدول الموظفين $sqlDeleteEmployee = "DELETE FROM employees WHERE id = $employeeId"; // تنفيذ الاستعلام if ($conn->query($sqlDeleteEmployee) === TRUE) { echo "تم حذف الموظف بنجاح."; } else { echo "فشل في حذف الموظف: " . $conn->error; } // الآن يمكنك كتابة استعلام آخر لحذف البيانات المتعلقة بالموظف من جدول آخر هنا وتنفيذه بنفس الطريقة. // إغلاق الاتصال بقاعدة البيانات $conn->close(); ?>
-
فكرة نمط التوزيعة Repository pattern في أساسها هي فقط في فصل طبقة البيانات Data layer عن منطق العمل bussiness logic وباقي التطبيق، ويتم ذلك بوساطة واجهات تقوم بتجريد طلب البيانات وما الى ذلك، فبدل أن نكتب: public function index() { $tasks = Task::all(); return view('tasks.index', ['tasks' => $tasks]); } نكتب: class TaskController extends Controller { private TaskRepository $taskRepository; public function __construct(TaskRepositoryInterface $taskRepository) { $this->taskRepository = $taskRepository; } public function index() { $tasks = $this->taskRepository->getAllTasks(); return view('tasks.index', ['tasks' => $tasks]); } بحيث يكون كلاس التوزيعة المعنية كـ: <?php namespace App\Repositories; use App\Interfaces\TaskRepositoryInterface; use App\Models\Task; class TaskRepository implements TaskRepositoryInterface { public function getAllTasks() { return Task::all(); } انتبه الى انها تقوم بتطبيق واجهة TaskRepositoryInterface، هي الأخرى ستحتاج تصريح التوابع المعنية: ?php namespace App\Interfaces; interface TaskRepositoryInterface { public function getAllTasks(); } وهذه هي فكرة النمط باختصار. يمكنك تضمينه والتعامل معه بشكل عادي جدا. أما بخصوص التطرق لها في دورة PHP فلا أظن أن ذلك متوفر، اذ يعنى مسار أنماط التصميم من دورة علوم الحاسب بكل هاته الجزئيات. ان كنت تقصده على وجه الخصوص فقد لا يكون من الضروري الملح، ولكن سيكون استزادة علم واطلاع. أما ان كنت تقصد أنماط التصميم ككل، فنعم، دراستها والاطلاع عليها سيقوم بإعطاءك دفعة لإنشاء برمجيات ذات جودة أعلى.
- 3 اجابة
-
- 1
-
-
لحل هذه المشكلة، يمكنك تغيير ألوان واجهة الـ console في بيئة التطوير الخاصة بك. فيما يلي بعض الخطوات العامة لتغيير ألوان الـ console في بيئة التطوير Visual Studio Code، وهي أحد أشهر بيئات تطوير البرمجيات: افتح برنامج Visual Studio Code (VSCode) وانتقل إلى الإعدادات (Settings). يمكنك الوصول إلى الإعدادات من خلال الضغط على أيقونة العتاد (Gear icon) في الزاوية السفلية اليمنى، ثم اختيار "Settings" (الإعدادات). في صفحة الإعدادات، ابحث عن "Terminal" في شريط البحث. ابحث عن خيار "Integrated > Tabs: Background" وقم بتغيير لون الخلفية لونًا يسهل قراءة النص عليه. ابحث عن خيار "Integrated > Tabs: Foreground" وقم بتغيير لون النص لونًا يتناسب مع لون الخلفية المحدد. احفظ التغييرات التي قمت بها، وأعد تشغيل vs code. في حالة التعذر يرجى ارفاق صورة عن المشكلة.