-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
الكلمة المفتاحية SELECT تعني اختار (أو حدد) ثم نكتب بعدها أسماء الحقول التي نريد جلب بياناتهم SELECT col1, col2, ... FROM table; وعلينا تحديد أسماء الحقول حسب الجدول الذي نجلب منه البيانات فلا نضع أسماء حقول غير موجودة.. مثلا لدينا جدول فيه رقم الزيون واسمه وعنوانه و رقمه، ونريد عرض اسم الزبون و عنوانه فقط، لذلك نحدد هذين الحقلين في الاستعلام: SELECT CustomerName,Address FROM Customers; أما لجلب جميع الحقول نضع نجمة * بدل أسماء الحقول SELECT * FROM Customers; يمكن ل SELECT فلترة النتائج مثلا نريد عرض المدن المختلفة التي ينتمي منها الزبائن فنستعمل DISTINCT لجلب القيم المختلفة: SELECT DISTINCT Country FROM Customers; أو جلب عدد محدد من الحقول: SELECT TOP 3 * FROM students WHERE Country='Germany'; وفي حال عمل دمج، يلزم تحديد الاسم المستعار لكل خاصية نريد عرضها:
- 2 اجابة
-
- 1
-
نستخدم الربط الذاتي self join عندما نريد الربط بين عناصر من نفس الجدول ويكون لها علاقة بينهم، مثل عمل استعلام يظهر أسماء الموظفين مع أسماء مردائهم، كما ترى جميع الموظفين والمدراء موجودين في نفس الجدول (جدول الموظفين) لذلك نعمل استعلام يدمج الجدول بنفسه ويتم الربط بناءً على أن رقم المدير لموظف ما هو نفسه رقم معرف أحد الموظفين.. الشكل العام: SELECT column_name(s) FROM table1 T1, table1 T2 WHERE condition; لاحظ أن اسم الجدول يظهر مرتين في عبارة الدمج join نأخذ اسمين مستعارين لنفس الجدول ونطبق الشرط عليهم يمكن استخدام INNER JOIN أو LEFT JOIN select e1.Name As Employee Name, e2.Name As Boss from employees e1 inner join employees e2 on e1.Boss_id = e2.Id جلبنا اسم الموظف واسم المدير من علاقة الربط، حيث أن معرف رقم المدير للموظف من أول نسخة من الجدول تقابل معرف موظف من النسخة الثانية للجدول مثلا استعلام آخر لمعرفة الموظفين من نفس المدينة: select e1.Name As Employee1, e2.Name As Employee2, e1.city As City Name from employees e1 inner join employees e2 on e1.city = e2.city ORDER BY e1.City; // مفيدة للترتيب
- 2 اجابة
-
- 2
-
program specifications: توصيف البرنامج هو مانتوقع من البرنامج أن يقوم به، أي نرسل له بعض البيانات و تكون النتيجة صحيحة ومتوقعة، problem solving: حل المشكلة البرمجية يكون باتباع خطوات، مثل تحديد المشكلة (بيانات غير مرتبة) ثم التفكير بحل (خوارزمية ترتيب) ثم محاولة تطبيق هذا الحل (تجريب عدة خوارزميات واختيار الأنسب) ويكمن في جميع خطوات حل المشاكل implementation: هي مرحلة كتابة الشيفرة البرمجية التي تترجم الحل المنطقي أو خطوات الخوارزمية التي تحل المشكلة testing: مرحلة اختبار التطبيق، أي التأكد هل البرنامج النهائي يقوم بعمله بشكل صحيح؟ أي هل يلبي البرنامج توصيف البرنامج نفسه؟ هل البرنامج يرتب البيانات بطريقة صحيح؟ debugging: عند إيجاد خلل في البرنامج، نعود للشيفرة البرمجية ونحاول معرفة أين الخطأ وهمل تعديلات ثم التجريب وهكذا.
-
Bitnami هي مكتبة من أدوات التثبيت أو حزم البرامج لتطبيقات الويب ومجموعات البرامج والأجهزة الافتراضية تعمل على تحزيم ثم نشر تطبيقات مفتوحة المصدر أي application packaging and publishing. تُستخدم حزم Bitnami لتثبيت البرامج على Linux و Windows و Mac OS X و Solaris توفر حزم تثبيت للعديد من المنصات مثلWordPress و Drupal و Joomla! و Redmine و AbanteCart و PrestaShop و Magento و MediaWiki وغيرها، تدعم تثبيتهم في مختلف البيئات من الحاسوب المحلي لنظم الحوسبة السحابية. حسب التوثيق الخاص بهم، جميع البرمجيات التي تنشرها تكون محدثة باستمرار ومدعمة بملفات الإعدادات والتكوين configuration والتي تكون مختبرة على جميع البيئات. يمكن نشر deploy التطبيقات على مختلف النظم Google Cloud, AWS, or Azure.. التنصيب: توفر Bitnami برنامج التنصيب / التثبيت installer متوافق مع جميع البيئات، وله واجهة wizard يمكن من خلالها اختيار التطبيقات التي تريد تثبيتها، تتضمن أيضاً هذه الخطوات إضافة إعداداتك الخاصة وبعد انتهاء التثبيت تكون البرمجية جاهزة للعمل.
- 1 جواب
-
- 1
-
يمكنك مشاهدة مسار أساسيات جافاسكربت من دورة تطوير التطبيقات باستخدام JavaScript، نحن نعلم أن جافاسكربت أصعب من HTML-CSS وهي لغة برمجية أما اللغتين الباقيتين لغتي توصيف ولا يوجد فيهم منطق أو تفكير.. وهذه الميزة لتوفرها أكاديمية حسوب تتيح للطلاب المسجلين في أي دورة من الوصول للمسار الأول من باقي المسارات. ضمن مسار أساسيات جافاسكربت ستتعلم الأساسيات ما في اللغة من المتغيرات والشروط والحلقات والأغراض ... وستفيدك بالطبع.
- 4 اجابة
-
- 2
-
لتثبيت البرمجيات على لينوكس نستخدم الأداة apt، أولا نتأكد من تحديثها: sudo apt-get update ثم نحدث المكتبات والبرمجيات الحالية system cache sudo apt update ثم نثبت مخدم أباتشي apache2 sudo apt install apache2 الآن نعدل سماحية جدار الحماية لنسمح للمخدم بتبادل البيانات والوصول للشبكة: sudo ufw app list يظهر التالي ونختار: Output Available applications: Apache Apache Full Apache Secure OpenSSH sudo ufw app info "Apache Full" حيث أنه بعمل على المنفذين ports 80 and 443. الآن ليصبح لنا الموقع متاح، على الرابط مثلا: http://your_server_ip ونضع عنوان IP من ناتج التعليمة التالية: ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' وإن احتجت curl utility نثبتها: sudo apt install curl ثم تثبيت قاعدة البيانات: sudo apt install mysql-server sudo mysql_secure_installation وتشغيلها sudo mysql ثم نثبت PHP مع الحزم اللازمة لاتصالها مع قاعدة البيانات: sudo apt install php libapache2-mod-php php-mysql ثم نعيد تشغيل المخدم sudo systemctl restart apache2 يمكن أيضا تثبيت phpmyadmin sudo apt-get install phpmyadmin في حال احتجت لاستخدام SSL / HTTPS: sudo apt-get install apache2 apache2-doc apache2-npm-prefork apache2-utils libexpat1 ssl-cert
- 2 اجابة
-
- 1
-
يكتب الطلاب رسائل مثل، شكرا لك، أو حلت المشكلة.. فنحن لانقبل مثل هذه التعليقات لكي لا يتشتت الطلاب الآخرون. نركز على تعليقات الأسئلة فقط وحلول المدربين للمشاكل، ليستفيد باقي الطلاب من الملاحظات أو الشروحات الإضافية للدروس. أما عند طرح الطالب سؤال عن محتوى الدرس، يتم الموافقة عليه بأسرع وقت وتقديم إجابة له. يمكنك وضع إعجاب للإجابة. واستخدم الاقتباس إن أردت تحديد جزء من رسالة للاستفسار عنه، واكتب أي استفسار عن الدرس واطلب توضيح والمدربين سيتابعون معك. بالتوفيق
-
نستخدم JOIN عندما نريد الربط بين جدولين اعتماداً على قيمة أحد الحقول والتي غالبا تكون مفتاح رئيسي في أحد الجدولين ومفتاح ثانوي في الجدول الآخر (مع العلم يمكن الربط بين الجدول ونفسه) نستخدمها عندما يكون لدينا معلومات لكائن ما في الجدول موجودة في جدولين أو أكثر، حيث نضطر لعمل ربط بين جدولين مثلا. جدول الموظفين يحوي معلومات الموظف مع رقم القسم فقط، وجدول الأقسام يحوي على رقم القسم و اسم القسم وموقعه، لذلك هنا علينا الربط بين الجدولين لنعرف اسم القسم وموقعه لكل موظف. ويتم الربط بناءاً على رقم القسم. SELECT * FROM Employees INNER JOIN Departement ON Employees.deptID = Departement.ID; أما Subquery نستخدمها لعمل استعلام جزئي يعيد لنا بعض النتائج، والتي نعتمد عليها في الاستعلام الأساسي حيث يكون من الصعب عمل فلترة من خلال استعلام واحد (أو مثلا نحتاج لعمل فلترة في جدول آخر ثم فلترة أخرى في جدولنا). مثلا نجلب معلومات المنتجات (من جدول المنتجات) التي تم بيعها أكثر من 10 مرات (عدد مرات البيع من جدول الفواتير/الطلبيات) SELECT p.Name FROM Products p WHERE ProductID = ANY (SELECT ProductID FROM Orders WHERE Quantity > 10); أحيانا يمكن عمل نفس الاستعلام عن طريق JOIN أو Subquery ويفضل استخدام JOIN لأنه أسرع في معظم الوقت لأن عملية الربط بين الجداول تكون مفهرسة وتعتمد على المفتاح الرئيسي و الثانوي .. أي عملية تطابق السجلات تكون سريعة مع ملاحظة أن الاستعلام الفرعي يتم تنفيذه أولا ولمرة واحدة (أو أكثر حسب نوع الاستعلام فإن كان هنالك عنصر يتم اختباره من الاستعلام الأب سيتكرر استدعاء الاستعلام الفرعي). والدمج ينتج جدول يحوي جميع الحقول في كلا الجدولين المدموجين حسب حقل الربط.
- 1 جواب
-
- 2
-
تفيد الفهرسة في تسريع الوصول للبيانات في الجدول عند البحث (خاصة عند كتابة الشروط) وكما نعلم عندما تكون لدينا بيانات مرتبة، تصبح عملية البحث أسرع حيث أن أغلب خوارزميات البحث تعتمد على بيانات مرتبة. مثلاً خوارزمية البحث الثنائي. الفهرس في قاعدة البيانات هو ملف (أو أكثر) يحوي على قيم عمود ما من الجدول ولكن بطريقة مرتبة، وكل قيمة تحوي ارتباط لموقعها الفعلي في الجدول (مثل مؤشر أو رابط) فعندما نريد تطبيق شرط ما على عمود في الجدول، نبحث ضمن الفهرس (لسرعة البحث) ثم يرشدنا الفهرس لمكان البيانات الفعلية (سطر جدول قاعدة البيانات الفعلي) وهنا نسترجع بيانات كامل السجل. مثلا من الجيد استخدام حقل اللإيميل وعمل فهرسة عليه. SELECT * FROM Employee WHERE email = 'wael@hsoub.com' يمكننا إنشاء فهرس أو أكثر للجدول - حسب الحقول التي نختبرها بالشرط بشكل متكرر - لأن حجم الفهارس يصبح كبير ويمكن ألا يكون له فائدة في تسريع الأداء.. لذلك نختاره بدقة # إنشاء فهرس أو أكثر لجدول ما CREATE INDEX [ name ] ON tbl ( col [, ...]); # إنشاء فهرس لتسريع البحث حسب اسم المقالة CREATE INDEX index_title ON posts (title); القيود على إنشاء الفهارس أن تكون قيمة الهود رقمية أو نصية varchar (لا يقبل text) حتى تكون الفهرسة نافعة وسريعة. للفهرس معامل مهم هو fillfactor (معامل الملئ) وهذا يحدد نسبة حشو ملفات الفهرسة، لأننا نعلم أن البيانات تزيد باستمرار ولضمان ترتيبهم ضمن الفهرس في ملفات، علينا إبقاء مساحة فارغة فيهم لضمان وضع البيانات الجديدة في ترتريب سليم بدون الإضطرار لوضعهم في ملفات أخرى وعمل روابط تنقل بين صفحات الفهارس ومثلا نسبة الحجز للملف نضعهم 75%.. حذف فهرس DROP INDEX [ IF EXISTS ] name [ CASCADE | RESTRICT ] تعديل فهرس ALTER INDEX [ IF EXISTS ] name RENAME TO new_name ALTER INDEX distributors SET (fillfactor = 75); قاعدة مهمّة أخرى عند استخدام الفهارس هي أنه ينبغي الانتباه إلى ربط الجداول (عبر التعليمة join مثلا)؛ إذ يجب أن تُنشَأ فهارس للحقول المستخدمة في الربط، كما يجب أن تشترك هذه الحقول في نوع البيانات. تشبه فهرسة الكتب، الهدف منها تسريع البحث.
- 2 اجابة
-
- 1
-
يوجد عدة عوامل في تحديد الاستضافة الأفضل لموقعك، وهذا يعتمد على عدة عوامل مثل عدد الزوار (هذا يتطلب تحديداً قوة معالجة وذاكرة RAM)،ثم الحاجة لتخزين ملفات وصور بحجم تخزين كبير (هذا يتطلب مساحة تخزين كبيرة) أيضاً الأسعار (لا تحجز استضافة غالية أو خدمات لا تحتاجهم)، توافر خدمات النسخ الاحتياطي و البريد الالكتروني. الأرخص والأضعف: الاستضافة المشتركة Shared Hosting يتشارك عدة زبائن نفس المخدم ما يؤدي لتوزيع قوة المخدم عليهم (زبائن كل المواقع) وهذا غير مناسب لعدد زبائن كبير لأنه يسبب توقف المخدم. يفيد في حالة موقع صغير وعدد زبائن قليل. الأقوى والأغلى: الخادم المخصص Dedicated Server هنا عليك شراء الخادم وتثبيت نظام التشغيل ربما توظيف مختص لمتابعته، هنا تستفيد من كل موارد الخادم لكن كل المسؤوليات و الدعم الفني و التطوير و زيادة مساحة التخزين عليك أن تديرها بنفسك. الحل المتوسط هو الخوادم الافتراضية VPS وهو الأكثر مرونة وقوة توفره شركات الخدمات السحابية (يمكن اعتباره خدمة سحابية خاصة) تعطيك كامل التحكم في الإعدادات، وهو مناسب للنمو المعتدل. (قدرة المعالجة محدودة) أما في الخادم السحابي حيث يتم دعم موقعك على عدد كبير من الخوادم (ينفع في حال تعطل أحدهم) وتصبح الخدمة أسرع لأن العميل يتصل على أقرب مخدم له، يمكنك تعديل قوة المعالجة وحجم التخزين من لوحة التحكم وهو الأاسهل من حيث الترقية والتوسع والاتاحية (قوة المعالجة كبيرة بكامل قوة المنظومة)
- 1 جواب
-
- 1
-
حاول استخدام أحد الأدوات المتوفر على الانترنت online مثل PSDETCH. Photopea إن قمت بتصدير ملف التصميم من AdobeXD على شكل SVG فيمكنك فتحه في Figma وهو برنامج تصميم مجاني لكنه لايدعم ملفاتXD
- 1 جواب
-
- 1
-
يقدم التوثيق الرسمي خطوات للتثبيت على كل أنظمة التشغيل المدعومة مع ملاحظات حسب إصدار كل نسخة لهم و من مونغو. مثلاً في نظام أوبنتو يتم التثبيت من خلال أداة Advanced Packaging Tool (APT) مدير الحزم البرمجية للنظام. الخطوات العريضة: تحميل المفتاح العام من خلال wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add - ثم تثبيت الحزمة gnupg sudo apt-get install gnupg ثم إعادة الأمر رقم 1 الخاص بامفتاح ثم إنشاء ملف القوائم sources.list.d/mongodb-org-5.0.list # يختلف حسب الإدار للنظام تأكد من التوثيق echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list ثم أمر التثبيت sudo apt-get install -y mongodb-org ثم تشغيل الخدمة mongodb sudo systemctl start mongod توثيق التثبيت: mongodb/manual/installation
- 2 اجابة
-
- 1
-
مع تطور مفاهيم قواعد البيانات أوجد الخبراء أنظمة هيكلية تعطي أداء أفضل من أنظمة أخرى. من أنواع هيكلة قواعد البيانات و العلاقات بين الجداول هو النظام النجمي، حيث يعتمد على وجود جدول وسيط يربط بين الجداول الفرعية الأخرى في قاعدة البيانات، هذا يسرع الوصول لبيانات نحتاجها في جدول آخر حيث يقلل عدد عمليات الربط الضرورية. الجدول الرئيسي يدعى جدول الحقيقة Fact table (يحوي غالباً على إحصائيات) والجداول الفرعية الوصفية Dimension تحوي بيانات عادية مثلاً نصية.. البيانات الواقعية رقمية ( عدد مبيعات المنتج) ، بينما بيانات الأبعاد وصفية (مثل سعر المنتج ولونه ووزنه ...). هيكلية نجمية: لاحظ وجود جدول رئيسي يحوي على المفاتيح الأجنبية (الثانوية) لباقي الجداول، أي سنحتاج لعملية ربط واحدة للوصول لأي جدول آخر وقراءة بياناته. أما في حال اتباع الهيكلية الخطية، سنحتاج لعدد عمليات دمج وبحث أكبر بكثير. هيكلية خطية: مثال: استطعنا ربط جميع الجداول الفرعية مع جدول الحقيقة بعملية واحدة، بدل سلسلة عمليات ربط SELECT P.Brand, S.Country AS Countries, SUM(F.Units_Sold) FROM Fact_Sales F INNER JOIN Dim_Date D ON (F.Date_Id = D.Id) INNER JOIN Dim_Store S ON (F.Store_Id = S.Id) INNER JOIN Dim_Product P ON (F.Product_Id = P.Id) WHERE D.Year = 1997 AND P.Product_Category = 'tv' GROUP BY P.Brand, S.Country
- 1 جواب
-
- 1
-
بالنسبة للصور، عادة نضبط أحد الأبعاد ونترك البعد الآخر تلقائي لكي لا يتغير تناسب الصورة / نسبة الطول إلى العرض / <img src="https://ik.imagekit.io/ikmedia/backlit.jpg" أي رابط .. style='width: 100%; height: auto;' /> style='width: 250px; height: auto;' /> أو لانعطيه قيمة. بشكل عام لكي تجعل الصور متجاوبة مع حجم الصفحة، يمكننا استخدام واحدة قياس rem وهذه تعتمد على حجم الخط. حيث نعطي html حجم خط ما، ثم العنصر يأخد x rem حيت يتم حساب القيمة كنسبة وتكون متوافقة مع مختلف أحجام الشاشات <img src="https://ik.imagekit.io/ikmedia/backlit.jpg" /> <style> html { font-size: 10px; } img { width: 10rem; } </style> تابع جزء واحدات القياس:
- 2 اجابة
-
- 1
-
لإضافة بيانات لجدول ما، يمكن استخدام عبارة INSERT INTO ونمرر لها القيم VALUES على شكل استعلام SELECT: INSERT INTO TopStudents SELECT * FROM Students WHERE marks > 90; مثلا لدينا جدول TopStudents يحوي الطلاب المتفوقين في مادة ما، نريد ملأه بقيم الطلاب الذين حصلو على علامة أكبر من 90. عبارة SELECT سوف تعيد حميع القيم الموافقة للشرط (بيانات الطلاب) وتمررهم لعبارة INSERT ليتم إضافتهم. والشكل العام للعبارة: INSERT INTO tableB SELECT * FROM tableA WHERE condition; يمكن أن يكون الاستعلام SELECT معقداً أكثر ولكن انتبه لتوافق الحقول بين ناتج الاستعلام و بنية الجدول لتحديد الحقول التي تريد إضافتها مرر أسماء الأعمدة: INSERT INTO tableB (col1, col2, col3, ...) SELECT col1, col2, col3, ... FROM tableA WHERE condition; والتعديل من SubQuery: نستخدم الكلمة المفتاحية UPDATE SET ..هنا استخدمنا شرط لمعالجة ناتج الاستعلام UPDATE customers SET vip = IF (SELECT sum(Amount) FROM payment WHERE customers.CustomerID = payment.CustomerID) > 5000 THEN True ELSE False; لاحظ أن الحقل VIP سيتم تحديد قيمته إن كان مجموع مشتريات الزبون أكبر من 5000
- 1 جواب
-
- 1
-
إن سؤالك أيضا بحاجة لتوضيح، أقصد أنه سؤال عام، لذلك أقترح عليك مايلي: insert تعمل على إضافة بيانات للجدول (بيانات جديدة غير موجودة من قبل) تضيف سطر أو أكثر update تعمل على تعديل حقل أو أكثر من سطر أو أكثر من جدول (غالباً حسب شرط معين) يمكنك الاستفادة من توثيق SQL لموسوعة حسوب: إدخال السجلات للجدول INSERT تعديل السجلات في جدول update أرجو دراسة هذين المقالين ثم التجريب
-
أولا التأكد من تنصيب بيئة NodeJS على المخدم بواسطة CPanel يمكنك مراجعة خطوات التنصيب بالإجابة التالية: الآن نحتاج لتنصيب حزمة pm2 فهي process manager ل JavaScript runtime Node.js: npm install -g pm2 ثم في nginx نعطي سماحية للمنفذ الذي يعمل عليه تطبيق NextJS في nginx.conf/server/location أضف السطر proxy_pass http://localhost:6060 ثم نعمل على رفع الملفات الخاصة بالمشروع pages, public, src , package.json إلى مسار ما علة المخدم: /var/www/your-Next-folder ثم نعدل صلاحيات المجلد: ونقوم بتنصيب الحزم sudo chown -R $USER:$USER /var/www/your-Next-folder ثم نقوم بتنصيب الحزم > cd to your-Next-folder > run: npm -i ثم ضمن package.json نعدل أمر تشغيل التطبيق حسب المنفذ المستخدم next start -p your-port next start -p 6060 ثم بناء وتشغيل المشروع: npm run build pm2 start "npm run start" --name Next-project ملاحظة: إن اعترضتك مشكلة في بناء npm build تكون بسبب قلة الذاكرة الافتراضية، لذلك ينصح بعمل البناء محليا على حاسوبك، في حال رفع ملفات ساكنة هنا قد نحتاج لبرنامج يخدم المشروع، تأكد من معمارية المشروع كالتالي: public_html Next_project .next src server.js package.json ... حيث أن شيفرة server.js ستكون بالشكل: const { createServer } = require("http"); const { parse } = require("url"); const next = require("next"); const dev = process.env.NODE_ENV !== "production"; const port = !dev ? process.env.PORT : 3000; // Create the Express-Next App const app = next({ dev }); const handle = app.getRequestHandler(); app .prepare() .then(() => { createServer((req, res) => { const parsedUrl = parse(req.url, true); const { pathname, query } = parsedUrl; handle(req, res, parsedUrl); console.log("pathname", pathname); }).listen(port, (err) => { if (err) throw err; console.log(`> Ready on http://localhost:${port}`); }); }) .catch((ex) => { console.error(ex.stack); process.exit(1); }); الآن التشغيل ك node server.js. npm install cross-env "scripts": { "start": "cross-env NODE_ENV=production node server.js" } كما يمكن تنفيذ أمر next export الذي ينتج ملفات ساكنة يمكن رفعها على المخدم قد تحتاج لملف .htaccess لتوجه الطلبيات نحو مخدمك، سيكون بهذه الطريقة: RewriteEngine On RewriteRule ^$ http://127.0.0.1:3000/ [P,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L] مع تغيير المنفذ للمستخدم لديك في مثالنا 6060. أفضل استضافة هي vercel لسهولة النشر عليها كما يمكن لأداء أفضل استخدام vps
- 1 جواب
-
- 2
-
يمكننا من خلال لغات البرمجة كتابة شيفرات رياضة تعبر عن القوانين الفيزيائية في العالم الحقيقي وعمل محاكاة حاسوبية لها, أي أن ارتباط الفيزياء بالبرمجة موجود وفي مجالات متعددة، مثل الروبوتات، التحكم الآلي والحواسيب، هندسة الميكانيك وغيرهم كما أن الارتباط موجود في مجال تطوير الألعاب، حيث يتم برمجة محركات ألعاب للقيام بتحريك الأجسام و الرسوميات والتحكم بسرعة واتجاه حركتها وكأنها حقيقية، مثل ألعاب الحروب وحركة الطلقة مثلا هي محاكاة فيزيائية، ألعاب السيارات التي فيها تحريك للسيارات بتسارع فيزيائي، الاصطدامات، وغيرهم. لن تفيدك الفيزئياء كمطور مواقع، لأن المجالين بعيدين عن بعض. تفيدك الفيزياء بحل مشاكل برمجية ضمن مجال متعلق بالحركة و التحريك أي في توجيه المطور لكيفية كتابة معادلات فيزيائية وبهذا الخصوص. إقرأ هذه المساهمة: