-
المساهمات
20357 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
495
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Mustafa Suleiman
-
استخدم ملف .htaccess لإرسال إعادة توجيه 301 إلى صفحة فارغة من أجل إعادة توجيه الزوار إلى صفحة فارغة دون عرض صفحة الخطأ التي تم إنشاؤها بواسطة كود المنع. أضف السطر التالي إلى الملف: RewriteEngine On RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ RewriteRule ^(.*)$ /404.html [L] والكود السابق يفترض أنك ترغب في منع زوار من الولايات المتحدة من دخول موقعك، ورمز البلد للولايات المتحدة في قاعدة بيانات GeoIP هو "US". لذلك، يمكنك استخدام هذا الرمز كـ "كود_الدولة_المستهدفة" في القاعدة. هذا يعني أنه إذا كانت دولة الزائر تابعة للولايات المتحدة (رمز الدولة "US")، سيتم إعادة التوجيه إلى صفحة 404.html بدلاً من عرض الصفحة الرئيسية لموقعك. والكود التالي لمنع أكثر من دولة: RewriteEngine On RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^US$ [OR] RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^GB$ RewriteRule ^(.*)$ /404.html [L] لدينا شرطين (RewriteCond)، أحد الشروط يتحقق إذا كان رمز الدولة هو "US" (ولاية متحدة) والآخر يتحقق إذا كان رمز الدولة هو "GB" (المملكة المتحدة)، وإذا تطابق أي من هذين الشرطين (باستخدام [OR])، سيتم إعادة التوجيه إلى صفحة 404.html.
-
بعد إكمال دورة بايثون، ستكون قد اكتسبت المعرفة والمهارات اللازمة لبدء العمل في مجال البرمجة.، ويمكنك التخصص في أحد المجالات التالية: بعد إكمال دورة بايثون، ستكون قد اكتسبت المعرفة والمهارات اللازمة لبدء العمل في مجال البرمجة. يمكنك التخصص في أحد المجالات التالية: برمجة الويب، وتركز هذا التخصص على تطوير مواقع الويب وتطبيقاتها، وبعد إكمال الدورة، ستكون قادرًا على بناء مواقع ويب أساسية ومتقدمة، وتطبيقات ويب تفاعلية من خلال Django وFlask. الواجهة الخلفية حيث ستكون قادرًا على بناء وصيانة واجهات برمجية API للتفاعل بين مختلف التطبيقات والخدمات عبر الإنترنت، باستخدام إطارات عمل مثل Django أو Flask لبناء منطق الخادم والتفاعل مع قواعد البيانات. مبرمج تطبيقات سطح المكتب (Desktop App Developer) إذا أردت تطوير تطبيقات سطح المكتب لأنظمة مثل Windows أو macOS أو Linux باستخدام إطارات عمل مخصصة مثل PyQt وTkinter وwxPython. مجال الذكاء الاصطناعي، ويهتم ذلك المجال بتطوير أنظمة الذكاء الاصطناعي التي يمكنها تعلم واتخاذ القرارات، وستكون قادرًا على استخدام بايثون لبناء نماذج تعلم آلي وأنظمة ذكاء اصطناعي. مجال علم البيانات وتحليلها في حال كنت مهتمًا بمجال تحليل البيانات وتخزينها وتحويلها، يمكنك تعلم أدوات لمعالجة البيانات مثل Apache Spark وتعلم قواعد البيانات المتقدمة.
-
عليك أن تسأل السؤال من ناحية أخرى، ما الفائدة من تعلم الرياضيات أثناء تعلم البرمجة؟ ففي مجال مثل تطوير الويب أنت لست بحاجة أبدًا إلى أكثر من أساسيات الرياضيات التي تعلمتها أثناء دراستك في المدرسة، والرياضيات في ذلك المجال هي آخر شيء قد تحتاجه في حياتك. هل نفس الأمر ينطبق على الواجهة الخلفية Back-End؟ ليس تمامًا، فالأمر يتوقف على نوع المشروع الذي تعمل عليه، فمثلاً لو كنت تعمل على مشروع آلة حاسبك متخصصة في معادلات معينة فبالطبع تحتاج إلى الرياضيات هنا، لكن هناك مشاريع كثيرة لن تحتاج بها تعلم الرياضيات. ولكن تتطلب بعض مجالات البرمجة تعلم الرياضيات بشكل أكثر تركيزًا، مثلل مجال الذكاء الاصطناعي حيث تستخدم الرياضيات بشكل أساسي في تطوير تطبيقات الذكاء الاصطناعي، مثل تعلم الآلة والمعالجة اللغوية الطبيعية. أيضًا مجال مثل مجال تطوير الألعاب، ةلإنشاء ألعاب بصرية جذابة، يجب على المطورين فهم الجبر الخطي والهندسة المثلثية والهندسة الرياضية، وتلك المفاهيم تساعد في تصميم وتنفيذ الرسومات والتأثيرات البصرية بشكل دقيق. أيضًا بعض الألعاب تتضمن الذكاء الصناعي (AI) للأعداء أو الشخصيات غير اللاعبة، وتستند العديد من تقنيات الذكاء الصناعي إلى الرياضيات مثل الرياضيات التصورية والاحتمالات، وفي تطوير ألعاب ثلاثية الأبعاد (3D)، تكون الرياضيات ضرورية لمعالجة الأبعاد الثلاثة والتلاعب بالأشكال والأجسام الثلاثية الأبعاد. وعلي أي حال بشكل أساسي عليك تعلم الرياضيات في حال أردت دخول مجال تعلم لآلة وعلم وتحليل البيانات. وكقاعدة تعلم الأمر عندما تحتاجه فمجال البرمجة واسع جدًا وعليك تحديد ما تريده لكي لا تضيع مجهودك.
-
ما هو Gulp.js Gulp.js هو أداة (Task Runner) يستخدم في تطوير الويب،لتنفيذ مهام مثل تجميع وضغط ملفات CSS وJavaScript، وتحسين الصور، وتشغيل اختبارات الوحدات الأوتوماتيكية، وإدارة أنشطة تطوير الويب الأخرى، ويمكن لـ Gulp أن يعمل بشكل مستمر أو يُطلق يدويًا بمجرد الحاجة.، ويعتمد على JavaScript ويتيح للمطورين كتابة مهام مخصصة باستخدام سينتكس سهل الفهم. وهناك أيضًا أدوات أخرى تُستخدم كـ Task Runners مثل Grunt وnpm scripts في عالم تطوير الويب والبرمجة، وتُسهل تلك الأدوات تنظيم وتنفيذ المهام الروتينية بشكل فعال وآلي، مما يساعد المطورين ومديري النظم على تحسين كفاءة العمل وتوفير الوقت والجهد. ما هو Pug.js أما Pug.js هو محرك قوالب HTML مفتوح المصدر مبني على JavaScript. يسهل عملية إنشاء HTML قصير وسهل القراءة وقابل للصيانة، ويدعم Pug.js العديد من الميزات المتقدمة، مثل الوسائط المتعددة المتكاملة، وإدارة الوسائط، وتعليقات التسمية التوضيحية. وهو ليس مناسبًا لجميع المشاريع، خاصة المشاريع التي تتطلب دعمًا لتقنيات HTML المتقدمة. مثال بسيط على Pug: // ملف Pug html head title Pug Example body h1 This is a Pug example p This is a simple Pug template that outputs an HTML page with a heading and a paragraph. والكود السابق سينتج كود HTML التالي: <html> <head> <title>Pug Example</title> </head> <body> <h1>This is a Pug example</h1> <p>This is a simple Pug template that outputs an HTML page with a heading and a paragraph.</p> </body> </html> وإليك مثال أكثر تعقيدًا على Pug: // ملف Pug html head title Pug Example link(rel='stylesheet', href='style.css') body .container h1 This is a Pug example p This is a more complex Pug template that outputs an HTML page with a heading, a paragraph, and a container element with a class of "container". ul li Item 1 li Item 2 li Item 3 والنتيجة هي: <html> <head> <title>Pug Example</title> <link rel="stylesheet" href="style.css"> </head> <body> <div class="container"> <h1>This is a Pug example</h1> <p>This is a more complex Pug template that outputs an HTML page with a heading, a paragraph, and a container element with a class of "container".</p> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li> </ul> </div> </body> </html> أهمية Gulp.js و Pug.js في الوقت الحالي لا يزال Gulp.js و Pug.js مهمين في الوقت الحالي، ولكن هناك أدوات حديثة حاليًا وأكثر شيوعًا وتقدمًا والتي منها: Webpack هو الأكثر شيوعًا في الوقت الحالي، ويوفر مجموعة واسعة من الميزات، بما في ذلك تجميع ملفات JavaScript و CSS و HTML وإدارة التبعيات. Parcel سهل الاستخدام يركز على السرعة والسهولة. Vite المحزم الجديد الذي يهدف إلى تسريع عملية تطوير الويب ويستخدم بكثرة الآن وأنا أفضله عن Webpack. ولتفهم الأمر بشكل مفصل أرجو منك قراءة التالي: وGulp.js لم يتم تطويره منذ 2019.
-
في بايثون، هناك نوعان من الدوال: الدوال العادية، والتي يتم تعريفها باستخدام الكلمة الأساسية def. الدوال المجهولة، والتي يتم تعريفها باستخدام الكلمة الأساسية lambda. الفرق الأساسي بين Lambda و def هو أن Lambda هي دالة مجهولة، أي أنها لا تحتوي على اسم. أي في lambda نقوم ببناء الدالة كالتالي: lambda arguments: expression و عدد العبارات هو عبارة واحدة. أمثلة على الدوال المجهولة: # دالة مجهولة تضيف 1 إلى الرقم المدخل lambda x: x + 1 # دالة مجهولة تتحقق مما إذا كان الرقم الزوجي lambda x: x % 2 == 0 # دالة مجهولة تطبع الرقم المدخل lambda x: print(x) بينما في def نقوم ببناء الدالة كالتالي: def function_name(arguments): body بينما هنا عدد العبارات هو أي عدد من العبارات في جسم الدالة. أمثلة على الدوال العادية: # دالة عادية تضيف 1 إلى الرقم المدخل def add_one(x): return x + 1 # دالة عادية تتحقق مما إذا كان الرقم الزوجي def is_even(x): return x % 2 == 0 # دالة عادية تطبع الرقم المدخل def print_number(x): print(x) متى تستخدم Lambda؟ عندما تحتاج إلى دالة بسيطة يتم استخدامها مرة واحدة فقط. عندما تحتاج إلى دالة يتم استخدامها كتعبير في دالة أخرى، مثل map() أو filter(). عندما تحتاج إلى دالة يتم تمريرها كمعامل إلى دالة أخرى. تعابير lambda في بايثون
- 3 اجابة
-
- 1
-
-
سبب المشكلة هو fatal error: stddef.h: No such file or directory والذي يعني أن المُجمِّع لا يستطيع العثور على الملف stddef.h، وذلك الملف هو ملف رأس قياسي لـ C/C++ يحتوي على تعريفات لأنواع أساسية وعلامات، ومن أسباب المشكلة: المُجمِّع غير مثبت بشكل صحيح. المُجمِّع غير مثبت في المسار الذي يستخدمه المُجمِّع. المُجمِّع يستخدم إصدارًا مختلفًا من مكتبة معايير C/C++ عن الإصدار الذي يحتوي على stddef.h. حاول تحديث وترقية MinGW من خلال الأوامر التالية: mingw-get update mingw-get upgrade وإن كنت تستخدم Cygwin، فتأكد من تثبيت الحزمتين gcc-core و gcc-g++. أما إن كنت تستخدم MinGW، فتأكد من تثبيت الحزمة mingw32-base.
-
حاول تحديث pip من خلال الأمر التالي: python -m pip install --upgrade pip بعد ذلك تثبيت المكتبة من خلال الأمر التالي: pip install easyocr وإذا استمرت المشكلة حاول التالي: pip install --pre torch -f https://download.pytorch.org/whl/nightly/cpu/torch_nightly.html أيضًا حاول تحديث بايثون إلى إصدار 3.11 إذا استمرت المشكلة ثم القيام بالأمر السابق مرة أخرى.
- 2 اجابة
-
- 1
-
-
هناك طريقتان لمنع دولة معينة من الدخول إلى موقعك: الطريقة الأولى: استخدام ملف .htaccess افتح ملف .htaccess الموجود في جذر موقعك باستخدام محرر نصوص. أضف السطر التالي إلى الملف: Order Deny,Allow Deny from [قائمة الدول] حيث [قائمة الدول] هي قائمة بعناوين IP لدول معينة، مفصولة بفواصل، وتستطيع الحصول على هذه العناوين من مواقع مثل ip2location أو countryipblocks. ولمنع الوصول من إيران والصين مثلاً عليك إضافة السطر التالي إلى ملف .htaccess: Order Deny,Allow Deny from 1.2.3.4/24 Deny from 5.6.7.8/24 الطريقة الثانية: استخدام خدمة حظر الوصول بإمكانك استخدام خدمة حظر الوصول لمنع دولة معينة من الدخول إلى موقعك حيث هناك العديد من الخدمات المتاحة، مثل Cloudflare و GeoIP2. احصل على حساب في الخدمة التي تختارها. اتبع التعليمات الخاصة بإضافة موقعك إلى الخدمة. حدد الدولة التي تريد منعها من الوصول إلى موقعك. ومشكلة الايبيهات هي أنها قد لا تعمل من مواقع مثل ip2location أو countryipblocks في ملف .htaccess. وذلك لأن هذه المواقع توفر عناوين IP تقريبية فقط، ومن الأفضل الإعتماد على خدمة حظر الوصول التي توفر عناوين IP دقيقة. وعليك تفهم التالي: قبل منع دولة معينة من الدخول إلى موقعك، تأكد من أنك تفهم العواقب المحتملة فسيؤدي يؤدي ذلك إلى فقدان الزيارات من تلك الدولة. تستطيع استخدام خدمة حظر الوصول لمنع الوصول من عناوين IP محددة، بدلاً من دولة معينة.
- 4 اجابة
-
- 1
-
-
أفضل طريقة لإضافة حقول إلى نموذج المستخدم هي القيام بذلك في بداية المشروع قبل أي عملية migration، ولكن إن كنت قد بدأت بالفعل في إنشاء عمليات الهجرة، فهناك بعض الطرق التي يمكنك من خلالها إضافة حقول إلى نموذج المستخدم بعد ذلك. الطريقة الأولى: إنشاء نموذج المستخدم واستبدال نموذج المستخدم الافتراضي من Django عن طريق فتح ملف models.py الخاص بتطبيق Django لديك وقم بإنشاء نموذج المستخدم. ولإنشاء نموذج مستخدم جديد يسمى MyUser مع حقل جديد يسمى profile_picture لصورة الملف الشخصي، عليك إضافة السطر التالي إلى ملف models.py: class MyUser(AbstractUser): profile_picture = models.ImageField(upload_to='profile_pictures', blank=True) بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات. للقيام بذلك، استخدم الأمر التالي: python manage.py makemigrations ثم قم بتشغيل الهجرة باستخدام الأمر التالي: python manage.py migrate الطريقة الثانية: تعديل نموذج المستخدم الافتراضي من Django وإضافة الحقول الجديدة من خلال فتح ملف models.py وابحث عن نموذج المستخدم الافتراضي AbstractUser. ثم أضف الحقول الجديدة إلى نموذج المستخدم. ولإضافة حقل جديد يسمى profile_picture لصورة الملف الشخصي، تستطيع إضافة السطر التالي إلى نموذج المستخدم: profile_picture = models.ImageField(upload_to='profile_pictures', blank=True) بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات. للقيام بذلك، استخدم الأمر التالي: python manage.py makemigrations ثم قم بتشغيل الهجرة باستخدام الأمر التالي: python manage.py migrate الطريقة الثالثة: إنشاء نموذج حقل إضافي وربطه بنموذج المستخدم من خلال التوجه لملف models.py وابحث عن نموذج المستخدم الافتراضي AbstractUser. ثم أضف حقل profile_picture إلى نموذج المستخدم. ولإضافة حقل جديد يسمى profile_picture لصورة الملف الشخصي، نضيف السطر التالي إلى نموذج المستخدم: profile_picture = models.OneToOneField( 'profile.Profile', null=True, blank=True, ) ثم قم بإنشاء نموذج جديد يسمى Profile مع حقل image لصورة الملف الشخصي، ولإنشاء نموذج جديد يسمى Profile مع حقل image لصورة الملف الشخصي، عليك إضافة الكود التالي إلى ملف models.py: class Profile(models.Model): image = models.ImageField(upload_to='profile_pictures', blank=True) class Meta: abstract = True بعد ذلك، يجب عليك إنشاء هجرة جديدة لتحديث قاعدة البيانات ثم قم بتشغيل أمر التهجير.
-
مكتبة OpenCV تحتوي على مجموعة واسعة من الدوال الخاصة بالصور، والتي يمكن استخدامها لأداء مجموعة متنوعة من المهام، مثل: قراءة الصور وعرضها معالجة الصور تحليل الصور التعرف على الصور وإليك شرح تفصيلي لبعض الدوال الخاصة بالصور في مكتبة OpenCV، مع أمثلة: 1- قراءة الصور وعرضها. تستخدم الدوال التالية لقراءة الصور وعرضها: imread(): تستخدم لقراءة صورة من ملف. imshow(): تستخدم لعرض صورة على شاشة. waitKey(): تستخدم للانتظار حتى يضغط المستخدم على أي مفتاح. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # عرض الصورة cv2.imshow("Image", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 2- معالجة الصور تستخدم الدوال التالية لمعالجة الصور: cvtColor(): تستخدم لتحويل صيغة الصورة. resize(): تستخدم لتغيير حجم الصورة. flip(): تستخدم لقلب الصورة. threshold(): تستخدم لتطبيق حد على الصورة. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # تحويل الصورة إلى صيغة رمادية gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # عرض الصورة الرمادية cv2.imshow("Gray image", gray_image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 3- تحليل الصور تستخدم الدوال التالية لتحليل الصور: findContours(): تستخدم للعثور على حدود الأشكال في الصورة. matchTemplate(): تستخدم للبحث عن نمط معين في الصورة. HoughCircles(): تستخدم للعثور على الدوائر في الصورة. import cv2 # قراءة الصورة image = cv2.imread("image.jpg") # العثور على حدود الأشكال contours, hierarchy = cv2.findContours(image, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # عرض حدود الأشكال for contour in contours: cv2.drawContours(image, contour, -1, (0, 255, 0), 2) # عرض الصورة مع حدود الأشكال cv2.imshow("Image with contours", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) 4- التعرف على الصور تستخدم الدوال التالية للتعرف على الصور: haarcascade_frontalface_default(): تستخدم للتعرف على الوجوه. haarcascade_eye_tree_eyeglasses(): تستخدم للتعرف على العيون. svm_frontalface_alt(): تستخدم للتعرف على الوجوه باستخدام التعلم الآلي. import cv2 # تحميل مصفوفة هارس لتعرف الوجوه face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml") # قراءة الصورة image = cv2.imread("image.jpg") # العثور على الوجوه في الصورة faces = face_cascade.detectMultiScale(image, 1.3, 5) # رسم إطارات حول الوجوه for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x + w, y + h), (255, 0, 0), 2) # عرض الصورة مع الوجوه cv2.imshow("Image with faces", image) # الانتظار حتى يضغط المستخدم على أي مفتاح cv2.waitKey(0) المستند الرسمي: https://docs.opencv.org/4.x/db/deb/tutorial_display_image.html
-
حاولي تثبيت مكتبتي libpq-dev و python-dev من خلال الأمر التالي أو إضافتها إلى ملف requirements.txt: sudo apt install python3-dev libpq-dev
- 6 اجابة
-
- 1
-
-
لا أستطيع معرفة السبب على وجه التحديد دون تفقد الحاسوب، لذلك من الأفضل والأسهل للجميع استخدام خدمة سحابية مثل Google drive أو onedrive لمزامنة ومشاركة الملفات وهي الخيار الأفضل في حال توفر إنترنت. أو حاول إعادة تثبيت نسخة الويندوز للحسوب الذي يوجد به مشكلة، ولكن قبل ذلك، حاول مشاركة ملف آخر وتفقد هل المشكلة مستمرة أيضًا؟
- 4 اجابة
-
- 1
-
-
مشكلة انتهاء الصلاحية في نموذج Carts.js لديك هي أنك تستخدم قيمة ثابتة لـ expires، والتي هي 10، مما يعني أن العنصر سينتهي صلاحيته بعد 10 ثوانٍ. عليك استخدام قيمة زمنية لـ expires، مثل: expires: new Date(Date.now() + 1000 * 60 * 60 * 24) // 24 ساعة استخدام قيمة زمنية للمؤشر index، مثل: index: { expireAfterSeconds: 3600 // 1 ساعة } أو استخدام قيمة زمنية للمؤشر index، مثل: index: { expireAfterSeconds: 3600 // 1 ساعة } أما بالنسبة لمشكلة التداخل، فهذا يحدث لأنك تقوم بإنشاء عنصر جديد في كل مرة تقوم فيها بإضافة منتج إلى السلة. وحل هذه المشكلة عن طريق تحديث العنصر الموجود بدلاً من إنشاء عنصر جديد بتغيير الكود في index.js كما يلي: if (cart) { var indexOfProduct = -1; for (var i = 0; i < cart.selectedProduct.length; i++) { if (product_id === cart.selectedProduct[i]._id) { indexOfProduct = i; break; } } if (indexOfProduct >= 0) { // console.log(cart.selectedProduct[indexOfProduct]); cart.selectedProduct[indexOfProduct].quantity++; cart.selectedProduct[indexOfProduct].price += newproductPrice; cart.selectedProduct[indexOfProduct].price = Math.round(cart.selectedProduct[indexOfProduct].price * 100) / 100; cart.totalquantity++; cart.totalPrice += newproductPrice; cart.totalPrice = Math.round(cart.totalPrice * 100) / 100; cart.createAt = Date.now(); Carts.updateOne({ _id: cartId }, { $set: cart }) .catch((err) => { console.log(err) }) .then((result) => { console.log('update:', result); console.log('cart-update: ', cart); }) } else { cart.totalquantity++; cart.totalPrice += newproductPrice; cart.totalPrice = Math.round(cart.totalPrice * 100) / 100; cart.selectedProduct.push(newProduct); cart.createAt = Date.now(); Carts.updateOne({ _id: cartId }, { $set: cart }) .catch((err) => { console.log(err) }) .then((result) => { console.log('add:', result); console.log('cart-add: ', cart); }) } } من أجل تحديث العنصر الموجود في حالة وجوده، أو إنشاء عنصر جديد إذا لم يكن موجودًا.
-
بالطبع لا عليك دراسة اللغات الأساسية للواجهة الأمامية أيضًا، ولكن لا مشكلة في عدم التعمق بهم والتركيز عليهم، طالما أنك تريد التخصص في الواجهة الخلفية فقط بعد إنتهاء الدورة.
- 11 اجابة
-
- 1
-
-
لا مشكلة، لكن بشرط التطوير على المشروع وليس نسخه كما هو وأيضًا تعديل الواجهة وتصميم واجهة خاصة بك، ويجب قراءة شروط استخدام الكود سواء كان ذلك من خلال مستودع المشروع على GitHub أو أيًا كان مصدره.
-
لا مشكلة فالكود متاح للجميع من أجل الأغراض التعليمية فقط، وليس الاستخدام التجاري، أي لا تقوم بنقل المشروع بالكامل واستخدامه بشكل تجاري، بل عليك التعديل عليه والتطوير. وإذا كان الكود بسيط أو جزء من المشروع فلا مشكلة تستطيع استخدامه في مشروعك.
-
أغلبها موجود بالفعل، والبعض منها متقدم نسبيًا لذلك عليك بالبحث عنه على يوتيوب ودراسته لكن بعد إنتهاء الدورة عليك التركيز على ذلك. وفي الدورة لا يوجد مسار محدد للـ Back-End فقط، بل يتم شرح أساسيات Node.js وتنفيذ واجهة برمجية API لتقييم الأفلام للتطبيق على ما node.js وexpress.js. بعد ذلك يتم تنفيذ مشاريع كاملة Full-Stack من خلال React و Express.js، لذلك عليك دراسة الدورة بشكل كامل ثم التخصص في الواجهة الخلفية إذا أردت.
- 11 اجابة
-
- 1
-
-
حاول تعطيل مشاركة الملف ثم تفعيل المشاركة مرة أخرى على الجهاز الأساسي الذي يوجد به ملف، ثم تجربة تصفح الملف مرة أخرى من الحاسوب الذي به المشكلة لكن يجب إعادة تشغيله قبل ذلك. وإذا استمرت المشكلة، فمن الأسهل مشاركة الملف من خلال Google drive مثلاً من خلال خاصية Shared With Me، أو من خلال onedrive وهو أفضل لكونه من مايكروسوفت ومتوافق بشكل كامل مع ملفات الأوفيس.
- 4 اجابة
-
- 1
-
-
حاولي أولاً القيام بالتالي حيث يظهر لديك رسالة خطأ Error: pg_config executable not found: في ملف requirements.txt عليك استبدال مكتبة psycopg2 بالتالي: psycopg2-binary==2.8.5 وفي حال استمرار المشكلة عليك القيام بالتالي حيث أن سبب مشكلة Error: pg_config executable not found عند محاولة نشر مشروع على AWS هو أن ملف الإعدادات لقاعدة البيانات pg_config غير موجود في متغير البيئة $PATH من خلال الأمر التالي: python setup.py build_ext --pg-config /path/to/pg_config وعليك استبدال /path/to/pg_config بالمسار الصحيح لملف pg_config في مشروعك. حاولي إيجاد مسار الملف من خلال الأمر التالي: which pg_config ولحل هذه المشكلة بشكل دائم على Elastic Beanstalk، تستطيعي إنشاء ملف نصي يسمى 10_install_dependencies.sh في مجلد .platform/hooks/prebuild، وسيؤدي الملف إلى إضافة مجلد يحتوي على برنامج pg_config إلى متغير البيئة $PATH قبل إنشاء مكتبة psycopg2. #!/usr/bin/sh export PATH=$PATH:/path/to/pg_config python setup.py build_ext
- 6 اجابة
-
- 1
-
-
الأيقونة واسم الطالب سيكونون بداخل عنصر أب وضعنها له تنسيق ليصبح flexbox ثم بداخله نقوم بكتابة ما نريد وأيضًا وضع الأيقونة كالتالي: <div id="branding" style="flex-grow: 8"> <h1><a href="index.html"><i class="fa fa-user-circle"></i> صفحة <sapn class="highlight">اسم الطالب</sapn></a> </h1> </div> وخاصية flex-grow في CSS تستخدم لتحديد مدى توسع العناصر المرنة (flex items) داخل العنصر الأب (flex container) بالنسبة للمساحة المتاحة، والقيمة التي تم تعيينها لـ flex-grow تحدد النسبة المئوية للمساحة المتاحة التي ستستخدمها العناصر المرنة داخل العنصر الأب. حيث تم تعيين flex-grow: 8 لعنصر <div> الذي لديه id "branding"، مما يعني أن العنصر سيكون مستعدًا لاستخدام مساحة أكبر بنسبة 8 مرات من العناصر الأخرى داخل العنصر الأب إذا كان هناك مساحة إضافية متاحة. وبالنسبة لكيفية استخدام أيقونات Font Awesome فقد تم توضيح ذلك هنا:
-
أتفهم القلق الذي تشعر به وهو أمر طبيعي لأنك ما زلت في بدايات تعلم البرمجة، وبإختصار لا داعي لما تشعر به من تخوف، الفكرة هي أن الذكاء الاصطناعي ما هو إلا مجرد أداة لتنفيذ مهام وأجزاء من المشروع الذي تعمل عليه أو مساعدتك في فهم واستيعاب أمرًا ما أو شرح كيفية تنفيذ أمرًا ما. لكن هل يعتمد عليه في تنفيذ مشروع كامل؟ الإجابة هي لا حتى الآن، والدراسات تشير إلى أنه سيتم أتمتة 70% من عملية تطوير الواجهة الأمامية بحلول 2027، لكن هل ذلك حقيقي؟ لا أحد يعلم حقيقة الأمر، فمن المفترض أن نمتلك بين أيدينا عربات طائرة حيث كان متوقع ذلك فيما سبق! وفي حال تحقق ذلك، ما عليك هو التركيز على الأساسيات وتعميق فهمك واستخدام كافة الأدوات التي تساعدك على الإنتاجية بشكل أفضل وتوفير جهدك وتركيزك للمهام الصعبة والتي تتطلب خبرة ومعرفة لا تمتلكها تلك الأدوات. والتجربة خير دليل، حاول تجربة إنشاء مشروع من خلال تلك الأدوات ولن تستطيع، وبالطبع أنا لا أتحدث عن منصات الـ no code أو Low code. وقد تم التفصيل هنا:
-
المواقع الإلكترونية يمكن أن تتكون من صفحة html واحدة فقط، أو من عدة صفحات، ويعتمد ذلك على طبيعة الموقع وحجمه وأهدافه صفحة html الواحدة صفحة html الواحدة هي أبسط شكل للموقع الإلكتروني، وتتكون الصفحة من ملف واحد يحتوي على كل محتوى الموقع، بما في ذلك النصوص والصور والعناصر التفاعلية. وتستخدم مواقع html الواحدة للمواقع الصغيرة والبسيطة، مثل مواقع الويب الشخصية أو مواقع الشركات الصغيرة. عدة صفحات html .تتكون المواقع الإلكترونية الكبيرة من عدة صفحات html، وتسمح تلك الطريقة بتنظيم المحتوى بشكل أكثر كفاءة وسهولة في التصفح. حيث ترتبط صفحات الموقع الإلكتروني ببعضها البعض باستخدام روابط html، وعندما ينقر المستخدم على رابط، يتم تحميل الصفحة المرتبطة في المتصفح. وهناك عدة أسباب لإنشاء موقع إلكتروني من عدة صفحات، منها: تنظيم المحتوى حسب الموضوع أو الوظيفة، فقد يكون هناك صفحة رئيسية تحتوي على مقدمة عن الموقع، وصفحات أخرى تحتوي على معلومات حول المنتجات أو الخدمات أو الأخبار. استخدام صفحات متعددة لجعل الموقع الإلكتروني أكثر سهولة في التصفح كاستخدام روابط التنقل لمساعدة المستخدمين على الوصول إلى الصفحات التي يبحثون عنها. يمكن إضافة صفحات جديدة إلى الموقع بسهولة عند الحاجة. أما منصة مثل فيسبوك فهي منصة ضخمة يتم توليد صفحاتها ديناميكيًا حيث يتم استخدام التالي في الواجهة الأمامية: HTML: لغة تنسيق النص التي تحدد بنية الصفحات. CSS: لغة تنسيق النص التي تحدد مظهر الصفحات. JavaScript: لغة برمجة تفاعلية تسمح للمستخدمين بالتفاعل مع الصفحات. React: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب تفاعلية. React Native: مكتبة JavaScript تستخدم لإنشاء تطبيقات ويب وتطبيقات الهاتف المحمول. الواجهة الخلفية: PHP: لغة برمجة مفتوحة المصدر تستخدم لتطوير مواقع الويب وتطبيقات الويب. Python: لغة برمجة متعددة الأغراض تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. Java: لغة برمجة قوية تستخدم لتطوير مجموعة متنوعة من التطبيقات، بما في ذلك مواقع الويب وتطبيقات الويب وتطبيقات الأجهزة المحمولة. C++: لغة برمجة قوية تستخدم لتطوير تطبيقات عالية الأداء، مثل خوادم فيسبوك. المكونات الإضافية: Apache Hadoop: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لمعالجة البيانات الضخمة. Apache Hive: نظام إدارة قواعد بيانات مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Apache Spark: منصة معالجة بيانات مفتوحة المصدر تستخدم لمعالجة البيانات الضخمة في الوقت الفعلي. Elasticsearch: نظام بحث مفتوح المصدر يستخدم لتحليل البيانات الضخمة. Amazon Web Services: مجموعة من خدمات الحوسبة السحابية التي تستخدمها فيسبوك لتشغيل صفحاتها وتطبيقاتها.
- 5 اجابة
-
- 1
-
-
بخصوص الكتب الخاصة بلغة PHP فقد تم شرح الأمر هنا وعليك بالبدء من خلال كتاب PHP & MySQL: Server-side Web Development by Jon Duckett في حال كنت ستتعلم من الصفر: وبخصوص الكتب الخاصة بهياكل البيانات والخوارزميات وأيضًا جافاسكريبت وقواعد البيانات وأفضل الممارسات لكتابة كود نظيف وتحسين التفكير المنطقي أثناء التطوير، ستجد ترشيحات ممتازة هنا: وتستطيع الإختيار من بين الكتب السابقة ما شئت لكن إذا أردت الأهم فهم: Grokking Algorithms Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin Head first OOAD Good code, bad code Head First design patterns
- 3 اجابة
-
- 1
-
