-
المساهمات
6701 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
12
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبدالباسط ابراهيم
-
يعتمد حجم الذاكرة العشوائية (RAM) المطلوبة للتعدين واستهلاك الهاش على نوع العملة الرقمية التي ترغب في التعدين لها، وعلى نوع البرنامج والخوارزمية المستخدمة للتعدين. على سبيل المثال، يتطلب تعدين بيتكوين (Bitcoin) استخدام معدات خاصة تسمى ASIC التي تحتاج إلى الكثير من الطاقة الكهربائية ولا تستخدم الكثير من الذاكرة العشوائية (RAM). أما تعدين عملات رقمية أخرى مثل Ethereum فهو يتطلب استخدام العديد من الوحدات المركزية (CPUs) أو وحدات المعالجة الرسومية (GPUs) ، والتي تحتاج إلى كميات كبيرة من الذاكرة العشوائية (RAM). بشكل عام، يمكنك حساب استهلاك الهاش للتعدين عن طريق اختبار الأداء الخاص بجهاز التعدين الخاص بك باستخدام برامج مثل NiceHash أو Minerstat أو Claymore. يمكنك أيضًا استخدام الحاسبة الخاصة بالتعدين لتقدير العائد المتوقع لجهاز التعدين الخاص بك واستهلاك الطاقة الكهربائية. ومن المهم أن تتأكد من أن تحسب تكلفة الطاقة الكهربائية لديك عند حساب الأرباح المتوقعة من التعدين. عموما، يمكن القول بأن كلما زادت سرعة الهاش وزاد حجم الذاكرة العشوائية (RAM) المستخدمة في جهاز التعدين، كلما زاد استهلاك الطاقة الكهربائية والتكلفة الإجمالية للتعدين.
-
الذكاء الاصطناعي وتعلم الآلة هما مجالان واسعان ومتطوران بشكل سريع، ويمكن لأي شخص أن يحترفهما من خلال العديد من المصادر الخارجية للتعلم. هناك العديد من الموارد والأدوات المتاحة عبر الإنترنت التي يمكن استخدامها لتحسين مهارات الذكاء الاصطناعي وتعلم الآلة أولاً من خلال الأكاديمية: يوجد الدورات التي تم ذكرها في التعليقات السابقة ولكن يجب معرفة أنه لا توجد دورات مختصة فقط بالذكاء الاصطناعي وتعلم الآلة وإنما يمكنك الإستفادة من هذه الدورات لتعلم الذكاء الاصطناعي وتعلم الآلة ثانياً دورات أخرى يوجد الكثير من المصادر سواء المجانية أو المدفوعة مثل Coursera: يوفر Coursera مجموعة واسعة من الدورات المجانية (بعد التقدم للدعم المالي)حول الذكاء الاصطناعي وتعلم الآلة، بما في ذلك دورات من جامعات مثل Stanford وPrinceton وUniversity of Toronto. edX: يوفر edX دورات مجانية على الإنترنت من مؤسسات مثل MIT وHarvard وBerkeley وغيرها حول تعلم الآلة والذكاء الاصطناعي. Udacity: يوفر Udacity دورات متخصصة بالذكاء الاصطناعي وتعلم الآلة، بما في ذلك دورات مدفوعة ومجانية. وبدلاً من التكرار يمكنك قراءة الإجابات التالية حيث تم ذكر أفضل الدورات لتعلم الذكاء الاصطناعي وتعلم الآلة
-
كل من useCallback وuseMemo هما هوكس Hook في React، ويستخدمان لتحسين أداء التطبيقات عن طريق تجنب إعادة الحسابات غير الضرورية. useCallback: useCallback يستخدم لتجنب إعادة إنشاء الدوال عند إعادة تقديم المكونات وتمرير الدوال كخاصية إلى المكونات الفرعية. يتم استخدامه لتحسين أداء التطبيق عن طريق تخزين الدوال المعرفة مسبقًا وإعادتها عند الطلب. يتلقى useCallback وسيطًا لكلمة دالة وقائمة من الاعتمادات التي يعتمد عليها الخطاب. عندما يتم تغيير أي من الاعتمادات التي يتم تمريرها إلى useCallback، فسيتم إعادة إنشاء الدالة. وإلا، يتم إرجاع الدالة المخزنة في الذاكرة. مثال: في المثال التالي، يتم استخدام useCallback لتجنب إعادة إنشاء الدالة عندما يتم إعادة إنشاء مكون الابن الذي يتلقى الدالة كخاصية. import React, { useCallback, useState } from 'react'; function ParentComponent() { const [count, setCount] = useState(0); const increment = useCallback(() => { setCount(count + 1); }, [count]); return ( <div> <p>Count: {count}</p> <ChildComponent increment={increment} /> </div> ); } function ChildComponent({ increment }) { return ( <div> <button onClick={increment}>Increment count</button> </div> ); } useMemo: useMemo يستخدم لتجنب إعادة حساب القيم المعقدة بشكل متكرر. يتلقى useMemo وسيطين: القيمة التي يتعين حسابها والقيمة التي يعتمد عليها. يتم إرجاع القيمة المخزنة في الذاكرة إذا لم تتغير القيمة المعتمدة. وإلا، يتم إعادة حساب القيمة. مثال: في المثال التالي، يتم استخدام useMemo لتجنب إعادة حساب القيمة المعقدة بشكل متكرر. import React, { useMemo, useState } from 'react'; function ComplexCalculation({ x, y }) { // Complex calculation that we want to avoid recomputing unnecessarily const result = useMemo(() => { // Some really expensive operation console.log('Calculating...'); return x * y; }, [x, y]); return <p>Result: {result}</p>; } function App() { const [x, setX] = useState(1); const [y, setY] = useState(1); return ( <div> <input type="number" value={x} onChange={(e) => setX(+e.target.value)} /> <input type="number" value={y} onChange={(e) => setY(+e.target.value)} /> <ComplexCalculation x={x} y={y} /> </div> ); } هناك مثال بسيط يوضح استخدام useEffect بدلاً من useCallback في حالة تمرير الدوال كخاصية إلى المكونات الفرعية وتتوقع أن تتغير معلمة الاعتماد عليها بشكل متكرر: import React, { useState, useEffect } from 'react'; function ChildComponent({ handleClick }) { // Child component that renders a button and calls the handleClick function when clicked return ( <div> <button onClick={handleClick}>Click me</button> </div> ); } function ParentComponent() { const [count, setCount] = useState(0); useEffect(() => { // Callback function that is created once and does not depend on any props or state const increment = () => { setCount(count + 1); }; // Pass the increment function as a prop to the child component // The child component will only be re-rendered when the count state changes return <ChildComponent handleClick={increment} />; }, [count]); return ( <div> <p>Count: {count}</p> </div> ); } في هذا المثال، يتم استخدام useEffect لتمرير الدالة كخاصية إلى المكون الابن ChildComponent. يتم إنشاء الدالة في useEffect وتمريرها كخاصية إلى ChildComponent. يتم إعادة تقديم ChildComponent فقط عندما يتغير العداد count، وليس عند كل تحديث لـ ParentComponent. هذا يتيح لنا تجنب إعادة إنشاء الدالة handleClick بشكل متكرر ويحسن من أداء التطبيق.
-
Hooks هي طريقة جديدة في React تسمح لنا بإضافة حالة (state) ودوال الدورة الحياة (lifecycle methods) وغيرها من الميزات داخل Function Components دون الحاجة إلى استخدام Class Components. على سبيل المثال، إذا كان لديك Function Component وتريد إضافة حالة داخله، يمكنك استخدام Hook useState. وإذا كنت تريد استخدام دورة حياة المكونات، فيمكنك استخدام Hook useEffect. وهناك العديد من الـ Hooks المختلفة المتاحة في React، وتساعدنا في إنشاء تطبيقات تفاعلية أسرع وأسهل. ومن الـ Hooks الأكثر استخدامًا في React: useState: يتيح لنا إنشاء حالة داخل Function Component وتغييرها عند الحاجة دون الحاجة إلى استخدام الـ Class Components. useEffect: يسمح لنا باستخدام الدورة الحياة للمكونات مثل componentDidMount و componentDidUpdate و componentWillUnmount داخل Function Components. useContext: يسمح لنا باستخدام Context داخل Function Components بشكل أسهل وأكثر فعالية. ولشرح كل من ال hooks منفرداً سيأخذ العديد من المقالات لذلك بدلاً من التكرار يمكنك الذهاب للتوثيق الرسمي للإطلاع على المزيد من المعلومات بشكل أكثر تفصيلاً موسوعة حسوب موقع react
-
forEach(), map(), filter() و reduce() هي وظائف مدمجة في JavaScript تستخدم للتعامل مع المصفوفات والقوائم. وهنا بعض الفروق بينهم: forEach(): تستخدم forEach() لتكرار كل عنصر في المصفوفة وتنفيذ وظيفة معينة عليه. على سبيل المثال، إذا كان لدينا مصفوفة تحتوي على أرقام، يمكن استخدام forEach() لطباعة كل عنصر في المصفوفة: const numbers = [1, 2, 3, 4, 5]; numbers.forEach(function(number) { console.log(number); }); map(): تستخدم map() لإنشاء مصفوفة جديدة باستخدام قيم المصفوفة الأصلية والتي تم تحديدها عن طريق تطبيق دالة على كل عنصر. على سبيل المثال، إذا كان لدينا مصفوفة تحتوي على أرقام، يمكن استخدام map() لإنشاء مصفوفة جديدة تحتوي على نسخة مضاعفة من كل عنصر: const numbers = [1, 2, 3, 4, 5]; const doubledNumbers = numbers.map(function(number) { return number * 2; }); console.log(doubledNumbers); // Output: [2, 4, 6, 8, 10] filter(): تستخدم filter() لإنشاء مصفوفة جديدة تحتوي على العناصر التي تم تحديدها باستخدام دالة معينة. على سبيل المثال، إذا كان لدينا مصفوفة تحتوي على أرقام، يمكن استخدام filter() لإنشاء مصفوفة جديدة تحتوي على الأرقام الزوجية فقط: const numbers = [1, 2, 3, 4, 5]; const evenNumbers = numbers.filter(function(number) { return number % 2 === 0; }); console.log(evenNumbers); // Output: [2, 4] reduce(): تستخدم reduce() لتجميع القيم في مصفوفة وإرجاع قيمة واحدة. على سبيل المثال، إذا كان لدينا مصفوفة تحتوي على أرقام، يمكن استخدام reduce() لجمع الأرقام في المصفوفة: const numbers = [1, 2, 3, 4, 5]; const sum = numbers.reduce(function(total, number) { return total + number; }, 0); console.log(sum); // Output: 15 أما بالنسبة للفرق بين هذه الدوال وبين الـ for loop والـ while loop، فالفرق يكمن في الطريقة التي يتم بها التعامل مع البيانات. فالـ for loop والـ while loop يستخدمان لتنفيذ عملية معينة على عناصر المصفوفة بشكل متسلسل، بينما الدوال السابقة تستخدم لتطبيق وظيفة على عناصر المصفوفة بشكل متوازي. ويمكن استخدام أي منهم حسب الحاجة وطبيعة المهمة التي تحتاج إلى تنفيذها في مشروعك. سأقدم لك مثالًا على الفرق بين استخدام الـ for loop و map() في جافاسكريبت: لنفترض أن لدينا مصفوفة تحتوي على أرقام، ونحتاج إلى إنشاء مصفوفة جديدة تحتوي على نفس الأرقام ولكن مضاعفة القيم. يمكننا القيام بذلك باستخدام for loop على النحو التالي: let numbers = [1, 2, 3, 4, 5]; let doubledNumbers = []; for (let i = 0; i < numbers.length; i++) { doubledNumbers.push(numbers[i] * 2); } console.log(doubledNumbers); // [2, 4, 6, 8, 10] ويمكن القيام بنفس العملية باستخدام دالة map() على النحو التالي: let numbers = [1, 2, 3, 4, 5]; let doubledNumbers = numbers.map(function(number) { return number * 2; }); console.log(doubledNumbers); // [2, 4, 6, 8, 10] كما ترى، تقوم الدالة map() بإنشاء مصفوفة جديدة تحتوي على النتائج التي تم إنشاؤها، في حين يتم استخدام for loop لتعديل المصفوفة الحالية. وبشكل عام، يمكن استخدام for loop و while loop و map() و filter() و reduce() في حالات مختلفة ويعتمد الاختيار على طبيعة المهمة التي تحتاج إلى القيام بها.
-
إذا كنت تريد العمل كمطور ويب أو تطبيقات الجوال، فمن المهم فهم كيفية كتابة وفهم طرق الاتصال بـ API والتعامل مع JSON و HTTP methods مثل GET و POST. فهم الأساسيات يمكن أن يساعدك في تطوير تطبيقات أفضل وأكثر فعالية وأمانًا ، ولكن إذا كنت ترغب في إنشاء API الخاصة بك أو تخصيص API موجودة (أي أمك مطور backend)، فسيكون من الضروري تعلم الكتابة والفهم العميق للأكواد والوظائف المختلفة المرتبطة بالـ API. على الجانب الآخر ، إذا كنت تستخدم API موجودة وتريد فقط استخدامها ، فمن الممكن الاكتفاء بفهم الأساسيات واستخدام وثائق الـ API التي توفرها الشركة أو الموقع. ومع ذلك ، ستحتاج إلى فهم كيفية استخدام المنصات والأدوات التي تتيح لك الاتصال بالـ API. بالمجمل ، يوصى بفهم الأساسيات والعمل على تحسين مهارات البرمجة الخاصة بك بحيث تتمكن من التعامل مع الـ API بشكل فعال. على الرغم من أن الأمر يمكن أن يبدو صعبًا في البداية، إلا أن التعلم التدريجي والتدريب سيجعل هذه المفاهيم أكثر وضوحًا. يمكنك تطبيق ما تعلمته من خلال إنشاء تطبيقات بسيطة واستخدام مختلف الأدوات والمكتبات المتاحة عبر الإنترنت لتسهيل العملية.
-
لست متأكداً بالضبط بما تقصد. من المحتمل أن عناصر الصفحة تتحرك عند تحريك عجلة الفأرة. ولتجنب ذلك، يمكنك تحديد العناصر التي تريد أن تثبت مكانها عند تصغير الصفحة أو تكبيرها. عليك استخدام CSS لتثبيت عنوان الصفحة أثناء التمرير. يمكنك استخدام خاصية `position: fixed` لتثبيت العنوان في مكان معين على الصفحة، و `z-index` لتحديد الترتيب الظاهري للعنصر المثبت. هذا هو مثال بسيط لكيفية تثبيت العنوان: /* تثبيت العنوان في الأعلى بوضع position: fixed */ .header { position: fixed; top: 0; left: 0; right: 0; background-color: #fff; z-index: 999; } /* إضافة بعض التباعد للعنوان */ .header h1 { margin: 20px; } يمكنك تعديل قيم `top` و `left` و `right` لتحديد موقع العنوان المثبت، وتعديل الألوان والأسلوب حسب التصميم الخاص بك.
- 6 اجابة
-
- 1
-
-
هذه بعض الأمثلة التي توضح الفروق بين `auth()->user()` و `Auth::user()` في Laravel: نطاق الوصول: يمكن استخدام `auth()->user()` في أي مكان في التطبيق، بما في ذلك الملفات العادية والـ controllers والـ views، وما إلى ذلك. هذا يعني أنه لا يتطلب استيراد أي فصيلة (Class) قبل استخدامها، وهو متاح في جميع أنحاء التطبيق. بالمقابل، يمكن استخدام `Auth::user()` فقط في المناطق التي تم استيراد فصيلة الـ Facade Class "Auth". ويمكن استيراد هذه الفصيلة في الملفات العادية والـ controllers والـ views، وما إلى ذلك. على سبيل المثال، يمكن استخدام `Auth::user()` في الـ controller بعد استيراد فصيلة "Auth" بالطريقة التالية: use Illuminate\Support\Facades\Auth; class HomeController extends Controller { public function index() { $user = Auth::user(); // Do something with $user } } الأداء: تشير بعض الدراسات إلى أن استخدام `Auth::user()` يمكن أن يكون أسرع بشكل طفيف من استخدام `auth()->user()`، وذلك بسبب الفرق في طريقة الاستدعاء. ومع ذلك، يمكن أن تختلف هذه النتائج باختلاف حجم التطبيق وطريقة التنفيذ. الاستخدامات المتعددة: يمكن استخدام `auth()->user()` لإجراء مهام مختلفة في Laravel، مثل إنشاء روابط محمية وتحديث بيانات المستخدم، بينما يتم استخدام `Auth::user()` بشكل أساسي لاسترجاع معلومات المستخدم الحالي. وفيما يلي بعض الأمثلة على استخدام كل منهما: `auth()->user()`: // إضافة رابط محمي إلى الـ view: @if (auth()->user()) <a href="/dashboard">Dashboard</a> @endif // تحديث بيانات المستخدم في الـ controller: public function update(Request $request) { $user = auth()->user(); $user->name = $request->input('name'); $user->email = $request->input('email'); $user->save(); return redirect('/dashboard'); } `Auth::user()`: // استرجاع معلومات المستخدم الحالي في الـ controller: use Illuminate\Support\Facades\Auth; public function index() { $user = Auth::user(); return view('home', compact('user')); }
-
لجعل قوالبك قابلة للتعديل، يجب تقديمها في صيغة ملفات مفتوحة المصدر مثل PSD لبرنامج فوتوشوب أو AI لبرنامج إليستريتور. يمكنك تصدير القوالب التي تصممها من Canva بصيغة ملف PDF أو PNG، ولكن هذه الصيغ لا تسمح بالتعديل على النصوص والصور بعد الشراء. كما يمكنك استخدام خدمات الإنترنت المتاحة التي تقدم خدمات تحويل Canva إلى صيغة PSD أو AI، مثل "Lunacy" و "Figma" و "Photopea". يمكنك البحث عن المزيد من الخيارات عبر الإنترنت. عند إنشاء القوالب، يتعين عليك تحرير العناصر والنصوص والصور في الطبقات المختلفة بحيث يمكن للمستخدمين تعديلها بسهولة باستخدام برامج مثل فوتوشوب أو إليستريتور. يمكنك أيضًا إضافة ملفات الخطوط التي تستخدمها في التصميم، وذلك لتضمن توافرها لدى المستخدمين. عند بيع القوالب، يجب توضيح للمشترين أنه يحصلون على ملفات مفتوحة المصدر التي يمكن تعديلها، وذلك لتجنب أي سوء فهم. كما يجب أن تحرص على تحديد الرخصة المناسبة لاستخدام القوالب وتوضيح المدة التي يمكن فيها استخدامها.
- 3 اجابة
-
- 1
-
-
هناك بعض الفروقات الأخرى بالتفصيل بين self-hosted fonts وFonts API، وهي: تخزين الخطوط: عند استخدام self-hosted fonts، يتم تخزين الخطوط على خادم الويب الخاص بك ويتم تحميلها مباشرة منه، بينما يتم تخزين الخطوط المستخدمة في Fonts API على خوادم الخدمة المستخدمة، ويتم تحميلها عند زيارة الصفحة. التخصيص: يمكن تخصيص الخطوط بشكل أفضل عند استخدام self-hosted fonts، حيث يمكن تعديل خواص الخط مباشرة في ملفات CSS، بينما يمكن تخصيص الخطوط في Fonts API بشكل محدود باستخدام أدوات التخصيص المتاحة في الخدمة. الدعم: يدعم العديد من المتصفحات self-hosted fonts، بينما يدعم Fonts API معظم المتصفحات الحديثة. عند اختيار الطريقة المناسبة لاستخدام الخطوط على موقع الويب الخاص بك، يجب أخذ هذه الفروقات في الاعتبار والتحليل بناءً على احتياجاتك ومتطلبات موقع الويب الخاص بك.
-
هناك العديد من الأمثلة التي يمكن استخدامها لتوضيح الفرق بين continue و break ويمكننا استخدام لغة بايثون، وإليك بعض الأمثلة التوضيحية: مثال على continue: فرض أن لديك قائمة تحتوي على بعض الأرقام، وتريد طباعة جميع الأرقام في القائمة ما عدا الأرقام الزوجية. يمكن استخدام continue لتجاوز الأرقام الزوجية والانتقال إلى الرقم التالي في القائمة، كما يلي: numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in numbers: if num % 2 == 0: continue print(num) في هذا المثال، يتم استخدام continue لتجاوز الأرقام الزوجية (2 و 4 و 6 و 8 و 10)، ويتم طباعة الأرقام الفردية (1 و 3 و 5 و 7 و 9). مثال على break: فرض أن لديك قائمة تحتوي على بعض الأرقام، وتريد البحث عن رقم معين في القائمة. يمكن استخدام break لإيقاف التكرار فور العثور على الرقم المطلوب، كما يلي: numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] search_num = 5 for num in numbers: if num == search_num: print("تم العثور على الرقم المطلوب") break في هذا المثال، يتم استخدام break لإيقاف التكرار فور العثور على الرقم المطلوب (5)، ويتم طباعة رسالة "تم العثور على الرقم المطلوب". بشكل عام، تستخدم continue و break في لغة بايثون لتحقيق هياكل التحكم في التكرار، ويمكن استخدامهما بشكل منفصل أو معاً لتحقيق النتائج المطلوبة.
-
تستخدم الأعداد المركبة بشكل واسع في الرياضيات، وخاصة في المجالات مثل الجبر والتحليل الرياضي والهندسة والفيزياء. وإليك بعض الطرق التي يتم استخدام الأعداد المركبة فيها: حل المعادلات: تستخدم الأعداد المركبة لحل المعادلات الجبرية التي لا تملك حلولاً حقيقية، مثل x ^ 2 + 1 = 0. الدوال التحليلية: تستخدم الأعداد المركبة لتعريف الدوال التحليلية ودراسة خواصها، والتي تعد دوال تمثل بأشكال متسلسلات القوى. وتعد الدوال التحليلية مهمة في العديد من مجالات الرياضيات والفيزياء. الهندسة: تستخدم الأعداد المركبة لتمثيل النقاط في الخط المركب، والذي يعد نظام إحداثي ثنائي الأبعاد حيث المحور الأفقي يمثل الجزء الحقيقي للعدد المركب والمحور الرأسي يمثل الجزء الخيالي. ويسمح هذا بدراسة الخصائص الهندسية للأشكال المختلفة في الخط المركب. الإشارات والأنظمة: تستخدم الأعداد المركبة في دراسة الإشارات والأنظمة، والتي تستخدم لنمذجة وتحليل مجموعة واسعة من الظواهر الفيزيائية، مثل الدوائر الكهربائية والاهتزازات الميكانيكية وأنظمة الاتصالات. الفيزياء الكمية: تستخدم الأعداد المركبة في دراسة الفيزياء الكمية، والتي هي فرع من الفيزياء يتعامل مع سلوك المادة والطاقة على المستوى الذري والنووي. وفي الفيزياء الكمية، تستخدم الأعداد المركبة لتمثيل الدوال الموجية، والتي تصف سلوك الجسيمات. تستخدم الأعداد المركبة في البرمجة في عدة مجالات، ومن أهمها: الرسوميات والألعاب: يتم استخدام الأعداد المركبة في برامج الرسوميات والألعاب لتمثيل النقاط والأشكال في الفضاء الثنائي والثلاثي الأبعاد. تحليل الإشارات: يتم استخدام الأعداد المركبة في تحليل الإشارات، مثل معالجة الإشارات الصوتية والإشارات الرقمية، حيث يتم استخدام الدوال المركبة لتمثيل الترددات والموجات. البرمجة العلمية: يستخدم الأعداد المركبة في البرمجة العلمية، حيث يتم استخدامها في تمثيل الأرقام العلمية وحساب العمليات المعقدة، مثل معادلات التفاضل والتكامل والمعادلات الفردية والتحويلات الفورية. تطبيقات الشبكات العصبية: تستخدم الأعداد المركبة في تطبيقات الشبكات العصبية، التي هي نماذج حوسبة تعتمد على الأساليب الحيوية للدماغ البشري، حيث يتم استخدام الدوال المركبة لتمثيل الوزن والتغطية في الشبكات العصبية. بشكل عام، تعد الأعداد المركبة أداة قوية في الرياضيات وتستخدم لحل المشاكل ونمذجة الظواهر في العديد من المجالات المختلفة.
- 4 اجابة
-
- 2
-
-
يمكن تحقيق هذه الوظيفة باستخدام JavaScript و CSS. يجب عليك إنشاء دالة تقوم بتدوير زر القائمة العلوية بمقدار 90 درجة عند الضغط عليه، ومن ثم استخدام CSS لتنفيذ الدوران. فيما يلي كيفية تحقيق هذه الوظيفة ملف index.css .rotate { transform: rotate(90deg); /* دوران الزر بزاوية 90 درجة */ } #toggler { transition: transform 0.3s ease-in-out; /* تحديد وقت الانتقال و التأثير المرئي */ } ملف index.js $("#toggler").click(function (event) { this.classList.toggle("rotate"); // إضافة هذا السطر فقط }); عند النقر مرة أخرى على الزر، يتم إزالة الصفة "rotate" وبالتالي يتم إعادة الزر إلى حالته الأولى.
-
يبدو أن هناك خطأ في تنسيق الكود. يجب أن يكون التعليمات الشرطية بمستوى الإزاحة المناسب كما تم الشرح في لتعليقات السابقة. يمكن حل هذه المشكلة عن طريق ترتيب التعليمات الشرطية بشكل صحيح، كما يلي: my_num= 6 user_num= int(input('inter your number: ')) if user_num > 0: if user_num== my_num: print('you win') elif user_num == my_num + 1 or user_num == my_num - 1: print('Hot') else: print('Cold') else: print('Invalid input') في هذا الكود، تم تنظيم التعليمات الشرطية بشكل صحيح. إذا قام المستخدم بإدخال عدد أكبر من صفر، يتم فحصه ومقارنته مع الرقم المحدد (6)، وإذا كانت الأرقام متطابقة يتم طباعة "you win"، وإذا كان الرقم الذي تم إدخاله يختلف عن الرقم المحدد بمقدار واحد، يتم طباعة "Hot"، وإذا كان الرقم بعيدًا عن الرقم المحدد بأكثر من واحد، يتم طباعة "Cold"، وإذا قام المستخدم بإدخال عدد أقل من صفر، فإنه يتم طباعة "Invalid input".
-
بالنسبة لإجابة السؤالين يمكن تلخيصها في مراجعة المشاريع التي قمت ببنائها وعتبر هذه الطريقة هي الأفضل والأسرع لتذكيرك بالمعلومات والمفاهيم التي قمت بدراستها ولكن يمكن تطويرها من خلال الخطوات التالية بالنسبة للأدوات والحزم يمكنك معرفتها من خلال المشاريع والتدريب عليها عن طريق إعادة بناء مشروع بنفس الحزم والمكتبات وإذا كان هناك بعض الإعدادات التي لا تتذكرها أو تريد الالإطلاع على المزيد من المعلومات يمكنك الذهاب للتوثيق الخاص بها مراجعة المشاريع التي قمت ببنائها يمكن أن تساعدك في تذكر المفاهيم التي تعلمتها سريعاً . يمكن أن تساعدك في تحديد المناطق التي يمكن تحسينها والعمل على تحسين مهاراتك في هذه المناطق (وقتها يفضل الإطلاع على الدروس التي تناقش هذه المفاهيم). لذلك ، يمكنك الاستفادة من كلا الخيارين. يمكنك إعادة مشاهدة الدروس التي تحتاج لمراجعتها (ستعرف ذلك عند مراجعة المشاريع ) إذا كنت بحاجة إلى تحسين فهمك للمفاهيم
-
كلا الخيارين يمكن أن يكونا جيدين لتعلم الـ Backend ولديهما فرص عمل كثيرة في السوق. لغة PHP هي واحدة من أشهر لغات البرمجة المستخدمة في تطوير الويب، وتطاري Laravel يعتبر واحداً من أشهر الإطارات العاملة على PHP. تعتبر PHP و Laravel مفيدة جداً في تطوير تطبيقات الويب والتجارة الإلكترونية، ولديها مجتمع كبير من المطورين والمستخدمين. بالإضافة إلى ذلك، معظم مزودي خدمة الاستضافة على الويب يدعمون PHP، مما يجعل من السهل نشر تطبيقاتك على الإنترنت. أما عن Node.js، فهي لغة برمجة تعتمد على JavaScript، وتستخدم لتطوير الويب وتطبيقات الويب في الوقت الحقيقي وتطبيقات الشبكات. Node.js توفر أداءً عاليًا في التعامل مع الأحداث والمهام غير المتزامنة، وتستخدم في الكثير من التطبيقات التي تعتمد على الوقت الحقيقي والتفاعل المستمر مع المستخدمين. بشكل عام، يعتمد الخيار الأفضل على نوع التطبيقات التي ترغب في تطويرها والميزات التي تحتاجها. إذا كنت ترغب في تطوير تطبيقات الويب الخاصة بالتجارة الإلكترونية أو الويب الثابتة، فقد تكون PHP و Laravel خيارًا جيدًا. وإذا كنت ترغب في تطوير تطبيقات الويب في الوقت الحقيقي أو تطبيقات الشبكات، فقد يكون Node.js خيارًا جيدًا. بشكل عام، كلا الخيارين يمكن أن يمنحك فرصًا جيدة في الحصول على وظيفة كمطورٍ Backend، ويوصى بتعلم أكثر من لغة برمجة وإطار عمل، مما يمكنك من فهم الاختلافات بينهما واختيار الأداة الأنسب لكل تطبيق. لذلك تلخيصاً إذا كان إختيار اللغة بناء على الفرص الموجودة بالسوق فيجب أن تطمئن أن الفرص الكثير لل php يقابلها عدد مطورين أكثر من مطورين node jd لذلك لا تقلق بالنسبة لفرص العمل
-
posts_count هو اسم عمود جديد سيتم إنشاؤه في نتائج الاستعلام لتخزين عدد المنشورات لكل مستخدم. COUNT(*) ستقوم بإرجاع عدد صفوف كل مستخدم، وهذا العدد سيمثل عدد المنشورات لهذا المستخدم. ولكن لا يوجد عمود باسم posts_count في جدول المنشورات الأصلي. هذا العمود سيتم إنشاؤه ضمن نتائج الاستعلام فقط لتخزين ناتج العد COUNT(*). بهذه الطريقة سنحصل على: - عمود user: وهو قيمة ID المستخدم من الجدول الأصلي - عمود posts_count: وهو العدد الإجمالي لمنشورات كل مستخدم، تم حسابه باستخدام COUNT(*) فالعمود posts_count مجرد اسم عمود مؤقت ضمن نتائج الاستعلام لا يوجد ضمن جدول البيانات الأصلي.
- 4 اجابة
-
- 1
-
-
إليك طريقة بسيطة للاستعلام عن أكثر المستخدمين نشراً للمنشورات في جدول المنشورات post الذي يحتوي على عمود user لتخزين قيمة ID المستخدم المرسل للمنشور: SELECT user, COUNT(*) AS posts_count FROM posts GROUP BY user ORDER BY posts_count DESC LIMIT 10; هذا الاستعلام سيقوم بالآتي: تجميع عدد المنشورات حسب قيمة عمود user حساب عدد المنشورات لكل مستخدم باستخدام COUNT(*) ترتيب النتائج تنازلياً حسب عدد المنشورات باستخدام ORDER BY posts_count DESC إرجاع أعلى 10 مستخدمين فقط باستخدام LIMIT 10 بهذه الطريقة سنحصل على قائمة بأكثر 10 مستخدمين نشاطاً في النشر مرتبة تنازلياً حسب عدد منشورات كل مستخدم.
- 4 اجابة
-
- 1
-
-
من المهم ملاحظة أن الراتب يختلف بشكل كبير بين الشركات والمناطق الجغرافية المختلفة. يمكن أن يتراوح راتب مبرمج واجهات أمامية مبتدئ تمامًا في القاهرة من 5,000 إلى 8,000 جنيه مصري شهريًا. ومع ذلك، قد يختلف الراتب اعتمادًا على حجم الشركة ومتطلبات الوظيفة. لا توجد فروق كبيرة في الرواتب بين شركات SaaS والشركات العادية. ولكن عادةً ما تكون الفرص للترقية والحصول على مكافآت مرتفعة أكثر في شركات SaaS نظراً لما تتميز به من نمو سريع. ربما يكون الراتب أقل مما كنت تتوقع ولكن حاول أن تبدأ بهذه الوظيفة وإن كان الراتب ليس كما تريد حيث أنك تعمل على تحسين مهاراتك في البرمجة وتنمية خبرتك في البرمجة. أهم شئ العمل على بناء سجل جيد: يجب عليك العمل على بناء سجل جيد وإظهار قدراتك وخبرتك في البرمجة.
-
مع التدريب مستواك سيصبح أعلى من الأن بالتأكيد ولكن يجب أن يكون هناك بعض الخطوات العملية التي نقوم بتطبيقها للوصول للهدف سواء تطبيق ويب أو تطبيق موبايل ولكن الخطوات واحدة كما يلي تحديد المتطلبات: قبل البدء في أي شيء، يجب تحديد متطلبات التطبيق الخاص بك. ما هي الوظائف الأساسية التي يجب تنفيذها؟ من هي المستخدمين الذين سيستخدمون التطبيق؟ ما هي المنصات التي سيعمل عليها التطبيق؟ وغيرها من الأسئلة المهمة التي يجب الإجابة عليها. رسم خريطة العلاقات: بعد تحديد المتطلبات، يجب رسم خريطة العلاقات بين مكونات التطبيق. مثلاً، إذا كانت تطبيقًا ويب، يمكن رسم خريطة لعلاقات صفحات الويب والوظائف المختلفة التي تقوم بها. تحديد التقنيات المستخدمة: بعد ذلك، يجب تحديد التقنيات التي ستستخدم في تطوير التطبيق. مثلاً، إذا كانت تطبيقًا ويب، يجب تحديد اللغات المستخدمة مثل HTML وCSS وJavaScript، وإطار العمل المستخدم مثل React أو Angular أو Vue. تقسيم المشروع إلى مهام: بعد تحديد التقنيات المستخدمة، يمكن تقسيم المشروع إلى مهام صغيرة ومنظمة. يمكن استخدام طرق مثل تقسيم المشروع إلى مراحل أو استخدام الخرائط الذهنية لتنظيم المهام. البدء بالتطبيق: بعد تحديد المتطلبات والخريطة والتقنيات وتقسيم المشروع إلى مهام، يمكن البدء بتنفيذ المهام بالترتيب المنطقي. يجب البدء بالمهام الأساسية والأكثر أهمية أولاً، ومن ثم الانتقال إلى المهام الأصغر والأقل أهمية.
-
هناك عدة أمور يمكنك عملها لتتعلم كيفية العمل بشكل مستقل وتطوير المواقع والتطبيقات: ابدأ بأمور بسيطة، حاول أن تطور صفحة ويب بسيطة بنفسك تحوي نصوص وصورًا وأرتباطات. ارجع إلى الدروس والفيديوهات التي تعلمتها سابقًا وحاول تطبيق ما تعلمته بشكل عملي. ابحث عن مواقع وتطبيقات وحاول تحليل تركيبتها وطريقة تصميمها لتستوعبها أفضل. حاول حل بعض التمارين والأسئلة والألغاز ذات الصلة لتدرب مهارات البرمجة والتفكير. عندما تواجه مشكلة أو لا تفهم شيئًا، لا تخجل من طرح الأسئلة والبحث عن الحلول. لا تفقد صبرك، فمع الممارسة والتدرب، سوف تتحسن المهارات ببطء ولكن بثبات. يفضل الإطلاع على الإجابات التالية أيضاً
-
لا يجب عليك تذكر كل ما درسته في دورات البرمجة بالتفصيل الدقيق. ومع ذلك، يجب عليك فهم المفاهيم الأساسية والمبادئ العامة للغة البرمجة التي تدرسها، ومعرفة كيفية استخدام الأدوات والمكتبات المختلفة التي تستخدمها لتطوير التطبيقات. عندما تنتقل إلى درس تالي، يمكنك الاعتماد على المفاهيم والمبادئ التي تعلمتها من قبل، ولكن قد تحتاج إلى مراجعة بعض الأمور إذا كنت قد نسيتها. عادةً ما تتضمن دورات البرمجة تمارين ومشاريع عملية تساعدك على تطبيق المفاهيم التي تعلمتها وتعزز فهمك لها، ويمكنك الرجوع إليها في المستقبل إذا كنت بحاجة إلى تحديث ذاكرتك بشأن موضوع معين.
-
بالإضافة للمواقع في التعليق السابق موقع GitHub: يعتبر GitHub منصة مفتوحة المصدر ويحتوي على العديد من المكتبات المفتوحة المصدر للغة C# موقع NuGet: يحتوي على مكتبة كبيرة من الحزم الخاصة بلغة C#، ويمكن تنزيلها واستخدامها في مشاريع C# المختلفة. موقع CodeProject: يحتوي على مكتبة كبيرة من الأكواد والمكتبات للغة C# موقع CodePlex: يحتوي على مكتبات وأدوات للغة C# موقع C# Corner موقع DotNetPerls: يحتوي على مكتبة كبيرة من الأكواد والمقالات والأدوات والمشاريع الصغيرة للغة C# تتوفر في هذه المواقع التوضيحات والشروحات اللازمة لاستخدام المكتبات مع الأمثلة التوضيحية والديكومنيشن للوظائف والأساليب المتوفرة في المكتبات. يجب الانتباه إلى أنه يجب التحقق من مصدر المكتبة وجودتها وملاءمتها للمشروع المراد استخدامها فيه.
-
this في جافاسكريبت تشير إلى الكائن الحالي. وهي مفيدة للعديد من الأغراض: إلحاق خصائص ومنهجيات بالكائن - في تعريف الكلاس. مثال: class Person { name = "John"; constructor() { this.name = "Jane"; } sayName() { console.log(this.name); } } استخدام الكلمة الاستدلالية this داخل أي وظيفة للإشارة إلى كائنها. مثال: function sayHello() { console.log(this.name); } تمكين وظيفة من الوصول إلى خصائص كائنها عند استدعائها على طريقة دعوة. مثال: let person = { name: "John", sayName: function() { console.log(this.name); } } person.sayName(); // John في المناديات - تشير this إلى الكائن الذي يتم استدعاؤه عليه. مثال: let person1 = { name: "John" }; let person2 = { name: "Jane" }; function sayName() { console.log(this.name); } sayName.call(person1); // John sayName.call(person2); // Jane لذلك تمكنك this من العمل بشكل عام ولكن باستخدام خصائص الكائن المحدد فعليًا عند التنفيذ.
- 3 اجابة
-
- 1
-