-
المساهمات
1071 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
2
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو ياسر مسكين
-
أولا لحفظ التغييرات التي يجريها المستخدم على قاعدة البيانات sqlite من جميع الأجهزة، لديك خياران: أ. تخزين قاعدة البيانات على خادم من خلال: إنشاء خادم على الإنترنت (مثل Heroku أو AWS) واستضافة قاعدة البيانات عليه. تعديل البرنامج ليتصل بقاعدة البيانات على الخادم بدلا من الملف المحلي. والتأكد من تأمين اتصال قاعدة البيانات باستخدام HTTPS. ب. استخدام مزامنة الملفات: يمكنك أن تستخدم خدمة مزامنة الملفات مثل Dropbox أو Google Drive لمزامنة ملف قاعدة البيانات بين جميع الأجهزة، لكن تأكد من تحديث ملف قاعدة البيانات على جميع الأجهزة بعد كل تغيير. أما بالنسبة لتحويل البرنامج إلى exe يمكنك استخدام PyInstaller وهي مكتبة من مكتبات Python وهي شائعة تستخدم لتحويل البرامج النصية إلى ملفات exe. أولا تأكد من تثبيت PyInstaller من خلال تنفيذ هذا الأمر على الطرفية: pip install pyinstaller ثم تحويل البرنامج النصي باستخدام الأمر: pyinstaller main.py وسيؤدي ذلك إلى إنشاء ملف exe في مجلد dist. يمكنك استخدام خيار --windowed مع PyInstaller لإخفاء شاشة cmd. pyinstaller --windowed main.py
-
الأسئلة الاختبارية في العادة لا نجيب عنها، لكن يمكنني توضيح طريقة حل السؤال وإرفاق مصادر ستغنيك عن البحث المطوّل. أولا يجب أن تقوم بتحليل المشكلة، والتي تمث عرض بيانات من أربعة جداول مختلفة (الأقسام، المشرفين، المشاريع، الطلاب) في جدول واحد بناء على اختيارين من قائمتين منسدلتين (select)، فنبحث عن البيانات التي يَحتاجها المستخدم، ويرغب في عرضها وهي: عنوان المشروع اسم المشرف اسم القسم اسم الطالب وهذه البيانات تأتي من أربعة جداول مختلفة: الأقسام المشرفون المشاريع الطلاب يمكن ربط هذه البيانات معًا باستخدام id لكل جدول، بحيث يتم عرض البيانات في جدول باستخدام <table> و <tr> و <td>. خطوات الحل يجب أن تتضمن: كتابة استعلامات SQL لِجَلب البيانات من الجداول المُختلفة. كتابة كود PHP لِمعالجة البيانات المُرسلة من قوائم select. كتابة كود PHP لِتنفيذ استعلام SQL لِجَلب بيانات المشاريع والطلاب. كتابة كود PHP لِعرض البيانات في جدول. يمكنك تصفح هذا المصدر بشكل معمق لتفهم طريقة الحل: إن كان سؤالك متعلقا بدرس ما في إحدى المسارات في إحدى الدورات، أرجو أن تضعه أسفل الفيديو في مكان التعليقات، وسنجيبك هناك بإذن الله.
-
مرحبا @AYMEN_1997 فضلا وليس أمرا، في حالة ما زال المشكل قائما عندك أو يوجد تحديث على المشكلة، قم بإرفاقها مع ملفات المشروع الخاصة بك كاملة مضغوطة، كي نساعدك بالشكل المناسب.
-
أولا، رسالة "No SSL Detect" تشير إلى عدم وجود شهادة SSL على دومينك، وكما نعلم فشهادة SSL ضرورية لتشفير بيانات الموقع وحمايته من المتسللين، وبدون الشهادة، قد لا تعمل بعض ميزات المدونة بشكل صحيح، مثل إظهار الصور أو تحميل صفحات المدونة بشكل كامل. قد يواجه بعض الزوار أيضا رسائل تحذيرية من متصفحاتهم عند محاولة الوصول إلى موقعك. والحل يكمن في شرائها سواء من مزود خدمة استضافة الدومين أو من أي مزود آخر، ثم تثبيتها على دومينك من خلال اتباع التعليمات التي يوفرها مزود خدمة الاستضافة أو مزود الشهادة. أما السبب وراء عدم تشغيل المدونة فقد تكون هناك العديد من الأسباب التي تجعل مدونتك لا تعمل بعد تفعيل الدومين، مثل: عدم ربط الدومين بشكل صحيح مع منصة المدونة. وجود مشكلة في إعدادات DNS. وجود مشكلة في ملفات المدونة. لهذا تأكد من ربط الدومين بشكل صحيح مع منصة المدونة، وتأكد من أن إعدادات DNS صحيحة وتُشير إلى عنوان IP الخاص بموقعك، مع التأكد من أن ملفات المدونة موجودة في المكان الصحيح وأنها ليست تالفة. وهذه المقالة تشرح كيفية استخدام ال SSL:
-
لتوسيع قاعدة البيانات، يمكنك استخدام قاعدة بيانات قابلة للتطوير مثل NoSQL (MongoDB) أو SQL (PostgreSQL) مع خادم مخصص. من خلال تقسيم قاعدة البيانات إلى مجموعات أو (sharding) لتوزيع البيانات على خوادم متعددة، مع استخدام التخزين المؤقت (caching) لتخفيف العبء على قاعدة البيانات. لتأمين البيانات، يتم استخدام يجب أن تقوم بتشفيرها لحماية بيانات المستخدمين، كذلك تطبيق ممارسات أمان قوية مثل التحكم في الوصول (access control) ومصادقة المستخدمين (authentication). وينبغي أن تتم مراقبة قاعدة البيانات بشكل دوري لاكتشاف أي نشاط مشبوه. لتحسين كفاءة ال API من المستحسن استخدام تقنيات تحسين الأداء مثل تخزين مؤقت البيانات (caching) كما أسلفت الذكر، واستخدام خوارزميات فعالة، وأدوات مثل Postman لاختبار API وتصحيح الأخطاء. بالنسبة لتوسيع نطاق البنية التحتية، يفضل استخدام خوادم متعددة لتوزيع العبء، مع استخدام خدمات الحوسبة السحابية مثل Amazon Web Services أو Microsoft Azure. كذلك يمكن استخدام أدوات مثل Kubernetes لإدارة البنية التحتية بشكل تلقائي. وهذه مقالة ستفيدك إن شاء الله، تتحدث عن استخدام نظام الإشعارات باستخدام لارافال.
-
كما يمكنك رؤية في الصورة التي أرفقتها، يوفر لك XAMPP نصائح حول حل "خطأ إغلاق MySQL بشكل غير متوقع" مباشرة داخل سجل الأحداث الخاص به. وبشكل عام يكون إصلاح هذا الخطأ عبر ثلاثة خطوات، نبدأ ب: قم بإغلاقه، ثم أعد تشغيل XAMPP باستخدام صلاحيات المسؤول، كما هو مبين في الصورة. في حالة لم تعمل معك يمكنك تغيير منفذ MySQL الخاص ب XAMPP: Netstat هو أداة سطر أوامر يمكنها عرض الاتصالات النشطة على شبكتك، بما في ذلك المنافذ التي يتم استخدامها. بمجرد تشغيل Netstat، ستتمكن من رؤية المنفذ الذي يستخدمه كل أداة، بما في ذلك MySQL، يمكن الوصول إليها فهي موضحة في الصورة: الطريقة الوحيدة لحل هذه المشكلة هي تغيير المنفذ الذي يستخدمه MySQL. بفضل Netstat، يمكنك رؤية أي منفذ يتم استخدامه والمنافذ الأخرى التي تم استخدامها. للقيام بذلك، قم بإيقاف الخدمة، ثم، انقر على زر "Config" الموجود بجوار MySQL في القائمة الرئيسية لـ XAMPP، ومن ثم حدد الخيار my.ini: ملف my.ini يحتوي على إعدادات تكوين MySQL. بعد النقر عليه، سيقوم XAMPP بفتح الملف باستخدام محرر النص الافتراضي الخاص بك. عندما تكون في الملف، ابحث عن السطر الذي يحتوي على الكلمة Port، والذي يحدد رقم المنفذ الذي يستخدمه MySQL. هنا، يمكنك تغيير رقم المنفذ إلى خيار آخر تعرف أن برامج أخرى لا تستخدمه. في معظم الحالات، يتم استخدام 3307، والذي يجب أن يكون متاحا. قم بحفظ التغييرات الخاصة بك وأغلق ملف my.ini. يمكنك بعد ذلك استخدام لوحة التحكم XAMPP لإعادة تشغيل MySQL.
- 5 اجابة
-
- 1
-
أنصحك أولا بتعلم الأساسيات جيدا، ثم الانطلاق في بناء تطبيقات بسيطة في البداية، ثم انتقل إلى مشاريع أكبر تعقيدا والمهم ألا تتوقف عن الممارسة، واستخدم GitHub لنشر تطبيقاتك سيفيدك مع مرور الوقت. يمكنك القراءة عن الكتب والمقالات المتاحة عبر الإنترنت والأكاديمية فيها العديد من الكتب والمقالات التي ستفيدك وأنصحك بها، سأرفق لك بعضها، وستنفعك أيضا لتعلم أفضل الممارسات في كتابة تطبيقات الواجهة الخلفية، واحضر المؤتمرات وورشات العمل للتعلم من الخبراء الآخرين في المجال وهذا عند أي فرصة تأتي أمامك، يمكنك دعم كل هذا من خلال إنشاء سيرة ذاتية وملف LinkedIn قويين يبرزان مهاراتك وخبراتك في Node.js و MongoDB، ثم تواصل مع الشركات التي توظف مطوري الواجهة الخلفية وقدم طلبات للوظائف المتاحة يمكنك العمل على مستقل أيضا ضمن مجال العمل الحر وهذا موقع مستقل.
-
أولا ولعمل ذلك يجب أن تقوم بتحديد منصة الإشعارات المناسبة لمشروعك مثلا يمكنك اختيار Firebase Cloud Messaging (FCM) لأنظمة Android أو Apple Push Notification Service (APNS) لأنظمة iOS. بعدها يجب أن تنشئ حساب على المنصة المختارة من أجل الحصول على الاعتمادات اللازمة لاستخدام خدمة الإشعارات. ثالثاً، قم بتحديد وتنفيذ آلية للحصول على رموز الجهاز (Device Tokens)، وهي المعرّفات التي تستخدم لإرسال الإشعارات إلى الأجهزة المستهدفة، بعدها تقوم بتخزينها في قاعدة بيانات التطبيق لتكون متاحة لإرسال الإشعارات عند الحاجة. ثم يأتي الدور لتطوير الخادم أو الوحدة البرمجية لإرسال الإشعارات، حيث يمكنك استخدام واجهات برمجة التطبيقات (APIs) المقدمة من المنصة التي قمت باختيارها مثلا لإرسال الإشعارات إلى رموز الجهاز المخزنة. وأخيرا، ومن أجل تحسين تجربة المستخدم، يمكنك جعل الإشعارات ذات صلة بالبضائع التي يهتم بها المستخدم، وجعلها قصيرة وسهلة الفهم، مع تحديد وقت مناسب لإرسالها، ومنح المستخدمين خيارا لإلغاء الاشتراك في استقبال الإشعارات إذا رغبوا في ذلك وهذا اختياري طبعا. يمكنك الاطلاع أكثر على هاته المصادر، أعتقد أنها ستفيدك: وهذا رابط سيوجهك إلى مستندات حزمة رسائل Firebase للتعمق أكثر فيها.
-
صحيح أن جميع أنظمة التشغيل تفهم لغة الآلة، لكن تختلف طريقة تفاعلها مع التطبيقات لهذا لا تعمل بعض التطبيقات على جميع الأنظمة ومن بين الأسباب أن لكل نظام تشغيل واجهة برمجة تطبيقات (APIs) خاصة به، وهي مجموعة من التعليمات التي تسمح للتطبيقات بالتفاعل مع النظام. بحيث تختلف واجهات برمجة التطبيقات بين أنظمة التشغيل، مما يعني أن التطبيقات المصممة لنظام تشغيل معين قد لا تعمل على نظام آخر دون إعادة كتابة التعليمات البرمجية. ثاني سبب يتعلق ببنية النظام فتختلف أنظمة التشغيل في بنيتها الأساسية، مثل نوع المعالج ونظام الملفات وإدارة الذاكرة، لهذا قد تتطلب بعض التطبيقات بنية نظام محددة للعمل بشكل صحيح. كما قد تكتب بعض التطبيقات بلغات برمجة غير مدعومة من جميع أنظمة التشغيل، وقد يتطلب بعضها ميزات محددة موجودة في بعض أنظمة التشغيل دون غيرها، مثل معالج رسومي قوي أو ذاكرة وصول عشوائي كبيرة. كذلك نجد مسألة التوافق فقد لا تكون بعض التطبيقات متوافقة مع الإصدارات القديمة من أنظمة التشغيل. كما أنه قد يقرر مطور التطبيق تقييد توفر التطبيق على أنظمة تشغيل محددة لأسباب مختلفة، مثل رغبة التركيز على منصة معينة أو صعوبة تطوير التطبيق لأنظمة متعددة. لكن مع ذلك يمكن حل بعض مشكلات التوافق باستخدام برامج محاكاة أو أدوات ترجمة لغة البرمجة. وهذه بعض الأمثلة: لا تعمل تطبيقات iOS على Android والعكس صحيح. لا تعمل بعض ألعاب الكمبيوتر على أنظمة التشغيل المحمولة. لا تعمل بعض التطبيقات المصممة لأجهزة سطح المكتب على أجهزة Chromebook. يمكنك الاطلاع أكثر على هذه المصادر من هنا:
-
يمكن تحديد الموقع الجغرافي لهاتف معين متصل بالإنترنت بشكل تقريبي في حالة ما إذا علم عنوان ال IP الخاص به. لكن لا يمكن تعقب الهاتف بشكل دقيق أو معرفة موقعه المباشر. يتم ذلك من خلال خدمات تحديد الموقع الجغرافي ويوجد منها العديد، وهي التي تسمح لك بإدخال عنوان IP وسيقومون بعرض موقع تقريبي على خريطة بناء على بيانات مزود خدمة الإنترنت (ISP). قد يستخدم المتسللون أدوات القرصنة للوصول إلى جهازك وتحديد موقعه بذات الطريقة. بالنسبة إن كان عنوان الIP ثابت أم متغير، فالعناوين هي كالتالي: عنوان IP ثابت: يتم تعيينه بشكل دائم لجهازك من قبل مزود خدمة الإنترنت (ISP). عنوان IP ديناميكي: يتم تغييره بشكل دوري من قبل مزود خدمة الإنترنت. يمكنك الاطلاع أكثر من هنا:
- 2 اجابة
-
- 1
-
لا، ليس كذلك، فالدالة ()sum في لغة بايثون يمكن استخدامها أيضا مع أنواع البيانات الأخرى مثل tuples و sets وحتى strings. ففي حالة الاستخدام مع القوائم، تقوم الدالة ()sum بجمع جميع القيم في القائمة. على سبيل المثال: arr = [1, 2, 3, 4, 5] total = sum(arr) print(total) # Output: 15 ومع ذلك، إذا كانت القائمة تحتوي على أنواع بيانات غير قابلة للجمع، فستحدث خطأ. بهذا الشكل: arr = [1, 2, 'a', 4, 5] total = sum(arr) # يؤدي إلى خطأ TypeError بشكل عام، يمكن استخدامها مع أي نوع من البيانات يتم دعمه للعملية الحسابية للجمع، وهذا يتضمن الأرقام وبعض أنواع البيانات الأخرى مثل الـ tuples التي تحتوي على أرقام.
- 4 اجابة
-
- 1
-
متى بالتحديد لا ندري، لكن قد تكون هنالك دروة في المستقبل، إلى حين ذلك توجد العديد من المقالات التي تتحدث عن برمجة الألعاب يمكنك تصفحها وقراءتها والاستفادة من المعلومات التي تحتويها من هنا: صناعة الألعاب ويمكنك أن تصبح مبرمج ألعاب من خلال تعلمك للغتي بايثون أو جافا سكريبت وتوجد مسارات لتعلم هاتين اللغتين في الأكاديمية، يمكنك تصفح هذه المقالة للفائدة:
-
من الجيد ذلك، يمكنك بعد إكمالك لمسار تعلم قواعد البيانات، يمكنك التعرف أكثر على المعارف والمعلومات التي في مقالات الأكاديمية، من هنا: قواعد البيانات. أنت لست بحاجة لحفظ كل ما تعلمته، عوضا عن ذلك يمكنك الخوض في القيام بمشاريع برمجية سواء تلك التي هي موجودة في بقية المسارات التي ستتعلمها، أو مشاريع أخرى، وستجد نفسك تطبق ما تعلمته وتسترجع المفاهيم المختلفة التي مرّت عليك في الفيديوهات السابقة. وحينما تواجه مشكلة ما يمكنك تصفح التوثيقات الرسميةك توثيقات MySQL في حالة ما كنت تتعامل معها، وفي الغالب تجد المقالات تلخص كل شيء، يمكنك العودة لها في حالة ما احتجت لها: وفي حالة ما واجهتك أية مشكلة يمكنك ترك تعليق تحت فيديو الدورة أو المسار مباشرة.
-
المشكلة التي تواجهك هي مشكلة SMTPAuthenticationError وهي تشير إلى أن اسم المستخدم وكلمة المرور التي قدمتها لبريدك الإلكتروني في ملف إعدادات Django الخاص بك غير صحيحة أو غير مصرح لها بإرسال الرسائل البريدية. لهذا تأكد من إدخال عنوان البريد الإلكتروني الصحيح وكلمة المرور لحساب Gmail الذي ترغب في استخدامه لإرسال الرسائل البريدية وسيحلّ المشكل. ويجب كذلك أن تقوم بتمكين الوصول للتطبيقات غير الآمنة في Gmail فقد قامت Google مؤخرا بتعطيل الوصول للتطبيقات غير الآمنة افتراضيا،لهذا الأمر ستحتاج إلى تمكينه لحساب Gmail الخاص بك لتكون قادرا على إرسال الرسائل البريدية من خلال Django. كما يمكنك التحقق عبر هذا الرابط من توثيق دجانغو Django email. صحيح، جوجل كانت قد قامت بإزالة ميزة الوصول إلى التطبيق الأقل أمانا، لكن يوجد حل بديل يمكنك تجربته، أولا: انتقل إلى ر حساب جوجل الخاص بك عبر هذا الرابط. ثم في قسم الأمان، انتقل إلى كلمة المرور التطبيق، مع التأكد من تفعيل التحقق الثنائي. ثم ثم قم بالذهاب إلى App Password هي موجودة في الصفحة الثانية، لكن يمكنك الوصول إليها من خلال البحث عنها في خانة البحث وستظهر لك مباشرة، ثم سيطلب منك اختيار التطبيق والجهاز الذي تريد توليد كلمة المرور التطبيق له، ثم قم بتعيينه على الموقع، وانقر على توليد. سيتم توليد كلمة مرور. ثم قم بنسخ هذه الكلمة المرور واستخدمها في إرسال الرسائل الإلكترونية.
- 3 اجابة
-
- 1
-
هذا الخطأ يحدث عادة عندما يكون هناك مشكلة في الحزمة المستوردة أو المصدرة في مشروع Node.js لهذا تأكد من أن ملف `package.json` مكون بشكل صحيح. يمكنك تجربة مسح ذاكرة التخزين المؤقت لـ npm بتشغيل الأمر التالي: npm cache clean --force حذف `node_modules` و `package-lock.json` لإجبار npm على إعادة تثبيت التبعيات من البداية من خلال هذين الأمرين: rm -rf node_modules rm package-lock.json بعدها يمكنك محاولة إعادة التثبيت بتشغيل: npm install كما أنصحك بتحديث كل من مدير الحزم npm و nodeJs: npm install -g npm@latest npm install -g node أو إذا كنت تستخدم yarn، يمكنك استخدام الأمر التالي: yarn global add npm yarn global add node
-
العفو، بالطبع يمكنك ذلك، في حال كانت لديك المعرفة والخبرة اللازمة لذلك، بما أنك مبرمج بلغة PHP و Mysql يمكنك إنشاؤها وإدارة المشتركين وتخزين المعلومات، ولكن يجب أن تكون لديك وسيلة ما لجلب مفاتيح فك التشفير وإرسالها إلى المشتركين، يمكن ذلك من خلال: تطبيق نظام لجلب مفاتيح فك التشفير من موفر الخدمة الخاص بك، كاستخدام واجهة برمجة تطبيقات (API) التي ستتيح لك الاتصال بموفر الخدمة وجلب المفاتيح بشكل ديناميكي. ثم يمكنك تخزين هذه المفاتيح بمجرد جلبها بشكل آمن ومشفر داخل قاعدة بيانات MySQL. بعدها يمكنك إرسال المفاتيح للمشتركين عندك عبر تطبيق نظام خاص يتيح للمشتركين طلب هذه المفاتيح، هنا يمكنني أن أقترح عليك استخدام نظام الرسائل الإلكترونية المباشرة أو البريد الإلكتروني لإرسال المفاتيح بعد طلبها من قبل المشتركين. لكن كل هذا يجب أن يتم بعد التحقق من اشتراك المستخدمين قبل إرسال المفاتيح لهم، كالتحقق من صلاحية الاشتراك والهوية والدفعات.
- 5 اجابة
-
- 1
-
كل من الكود الأول والثاني يجب أن يعملا بنفس الطريقة، الفرق الوحيد هو أن الكود الثاني يخزن القيمة المشفرة لكلمة المرور في متغير مؤقت قبل تعيينها إلى this.password. في الكود الأول، يتم تعيين القيمة المشفرة مباشرة إلى this.password دون تخزينها في متغير مؤقت. إذا كان الكود الأول لا يعمل، فقد يكون هناك خطأ في مكان آخر في البرنامج كما قلت لك، يمكنك استخدام أدوات التصحيح في Visual Studio Code لتحديد المشكلة، أما بالنسبة للفرق فلا يمكن معرفة ذلك مباشرة دون اطلاع على مشروعك وفحصه. قم بوضع نقطة توقف في الكود الأول. شغل البرنامج في وضع التصحيح. عندما يتوقف البرنامج عند نقطة التوقف، قم بفحص قيمة this.password والقيم الأخرى المتعلقة. استمر في تنفيذ البرنامج خطوة بخطوة لرؤية ما يحدث. إذا لم تتمكن من تحديد المشكل أرفق لي ملفات المشروع كي أطلع عليها.
- 3 اجابة
-
- 1
-
الكود الأول والثاني متشابهان تماما في الوظائف التي يقومان بها، الفرق الوحيد هو في الكود الثاني، حيث يتم تخزين القيمة المشفرة لكلمة المرور في متغير مؤقت (hashedPassword) قبل تعيينها إلى this.password. أما في الكود الأول، فيتم تعيين القيمة المشفرة مباشرة إلى this.password دون تخزينها في متغير مؤقت. هذا الفرق لا يؤثر على النتيجة النهائية أو وظيفة الكود. فكلاهما سيقومان بتشفير كلمة المرور بنفس الطريقة. إذا كان الكود الأول لا يقوم بتشفير كلمة المرور، فقد يكون هناك خطأ في مكان آخر في البرنامج، ربما لو تقوم بإرفاق صور توضح المشكلة كي أجيبك بشكل أفضل.
- 3 اجابة
-
- 1
-
توزيع سيرفرات CCCAM أو الشيرنج يعتمد على نظام التشفير الشائع في عالم البث التلفزيوني عبر الأقمار الصناعية، حيث يتم تشفير القنوات ويتم فك تشفيرها عبر الاشتراك في خدمات مثل الشيرنج، بحيث تعتمد هذه اللوحات على استخدام لغات البرمجة مثل PHP و MySQL لإدارة وتوزيع المفاتيح وإدارة الاشتراكات كما أسلفت الذكر. عمل هذه اللوحات يتباين من خلال أولا تخزين المشتركين والباقات، بحيث يتم تخزين معلومات المشتركين في قاعدة البيانات مثل اسم المستخدم وكلمة المرور وتاريخ انتهاء الاشتراك والباقة التي يشتركون فيها. ثم تتم إدارة المفاتيح والقنوات المشفرة من خلال تخزين معلومات حولها وحول مفاتيح التشفير الخاصة بها في قاعدة البيانات. فعندما يشترك المستخدم في باقة معينة، يتم توليد مفتاح تشفير جديد ويتم توزيعه له ليتمكن من فتح القنوات ضمن تلك الباقة. ثم يتم إرسال المفتاح إلى رسيفر المشترك عبر الإنترنت. هذا كله لا بد أن يتم التحقق من صحة الاتصال بين رسيفر المشترك وسيرفر التوزيع لضمان أن الاتصال آمن ومشفر. وصحيح يتم استضافة سيرفر التوزيع على خوادم افتراضية (VPS) لضمان توافره على مدار الساعة واستقراره، كما أن الاستضافة على VPS توفر قدرة أكبر على التوسع وإدارة الموارد.
- 5 اجابة
-
- 1
-
أنت تقصد عملية تخطي الـ Captcha، يمكن تحقيقها من خلال العديد من الطرق، مثلا باستخدام سكريبت بايثون، لكن بداية أريد التوضيح بأنك ترغب في تخطي نظام أمان تفاعلي يميز بين البشر والبوتات وهذا أمر لا شكّ أنه غير قانوني، ففي العادة تقوم بعرض مهمات سهلة على المستخمين يمكن للبشر حلها بسهولة، بينما يصعب على البوتات القيام بذلك. لكن لغرض تثقيفي تعليمي يمكنني إجابتك، أولا باستخدام سكريبت بايثون أولا نقوم باستخدام مكتبات خاصة ستساعد على هذا الأمر ك: Selenium: للتحكم في متصفح الويب. Tesseract: التعرف على النص من الصور. OpenCV: معالجة الصور. بعدها ننجز خطوات كتابة سكريبت بايثون: استيراد المكتبات المطلوبة. فتح متصفح الويب باستخدام Selenium. نقوم بتحديد موقع عنصر ال Captcha. نقوم بالتقاط صورة لعنصر Captcha. ثم معالجة الصورة باستخدام OpenCV. استخدام Tesseract للتعرف على النص في الصورة. إدخال النص في حقل Captcha. إرسال النموذج. بهذا الشكل: from selenium import webdriver from tesseract import image_to_string import cv2 # فتح متصفح الويب driver = webdriver.Chrome() # تحميل صفحة الويب driver.get("https://example.com") # تحديد موقع عنصر Captcha captcha_element = driver.find_element_by_id("captcha") # التقاط صورة لعنصر Captcha captcha_image = captcha_element.screenshot_as_png # معالجة الصورة image = cv2.imread(captcha_image) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # التعرف على النص في الصورة text = image_to_string(gray) # إدخال النص في حقل Captcha captcha_input = driver.find_element_by_id("captcha_input") captcha_input.send_keys(text) # إرسال النموذج submit_button = driver.find_element_by_id("submit") submit_button.click() # إغلاق المتصفح driver.quit() لكن في حالة ما إذا كنت تواجه مشكلة مع رموز CAPTCHA وترغب في تخطيها لذات السبب، ينبغي عليك الاتصال بمشغل الموقع أو الخدمة للحصول على المساعدة. لأن استخدام أو تطوير أدوات لتجاوز الكابتشا يمكن أن يؤدي إلى إغلاق حسابات المستخدمين وحظر الآي بي الخاص بجهازك وقد يعرضط لمشاكل أمان أخرى.
-
بالطبع، يمكنك استخدام مكتبة تاريخ ووقت جافا المعروفة ب (`java.time`) لتغيير التاريخ فهناك عدة طرق للقيام بذلك، مثلا يمكنك القيام به بهذا الشكل: import java.time.LocalDate; public class ChangeDateExample { public static void main(String[] args) { // الحصول على تاريخ اليوم الحالي LocalDate today = LocalDate.now(); System.out.println("تاريخ اليوم قبل التغيير: " + today); // تغيير تاريخ اليوم LocalDate newDate = today.withYear(2023).withMonth(9).withDayOfMonth(15); System.out.println("تاريخ اليوم بعد التغيير: " + newDate); } } فهنا قمت بتعريف تاريخ اليوم باستخدام `()LocalDate.now`، ثم قمت بتغيير التاريخ باستخدام دوال `()withYear()`، `withMonth`، و `()withDayOfMonth`. يمكنك تصفح هذا المصدر للمزيد من المعلومات:
-
حسنا، بداية فال Print Spooler API هو واجهة برمجة التطبيقات التي يوفرها نظام التشغيل للتفاعل مع الطابعات وعمليات الطباعة، وتسمح هذه الواجهة بإضافة وإدارة الوظائف في طابعة معينة، والتحكم في الاعتبارات المطبوعة، ومراقبة حالة الطباعة، وتحديد الطابعة التي يجب استخدامها، وغير ذلك الكثير. لربط مشروعك به يمكنك استخدام لغة البرمجة التي تفضلها والتي تدعم استخدام هذه الواجهة، وبما أنك أشرت إلى استخدام Node.js فيمكنك البدء باالبحث عن وثائق الـ Print Spooler API المتوفرة لنظام التشغيل الذي تستخدمه (هذه الوثائق تحدد الوظائف والطرق المتاحة للتفاعل مع نظام الطباعة). ثم استخدام مكتبة Node.js للتفاعل مع الـ Print Spooler API مثل `child_process` لتشغيل الأوامر أو `edge` للتفاعل مع مكتبات الـ .NET الخاصة بـ Print Spooler API. يمكنك تنفيذ العمليات المطلوبة مثل إضافة وظائف طباعة، وإزالة وظائف، واستعراض حالة الطابعات، وما إلى ذلك. وبما أن عمليات الطباعة قد تأخذ وقتا، يمكنك متابعة استجابات الـ Print Spooler API واتخاذ الإجراءات المناسبة بناء على النتائج. لكن ستحتاج إلى الانتباه إلى الأمان عند التفاعل مع الـ API، حيث يجب التأكد من صحة وموثوقية البيانات المرسلة واستخدام الإجراءات الصحيحة لتفادي الهجمات أو المشاكل الأمنية المحتملة.
- 3 اجابة
-
- 1
-
جميل، أنصحك بمواصلة مسيرتك في التعلم وإكمال الدورة مع المدرب وإتمام المسارات الخاصة بها مع التطبيق المباشر، ستجد في نهاية الدورة مسارا خاصا بأساسيات هندسة البرمجيات أين يمكنك فهم ميكانيزمات هذا المجال، وستفهم حينها بأنه لا يمكن لديفن أن يستبدل وظيفة مهندسي البرمجيات، وأنه يمكن أن يكون مساعدا لهم. يمكنك تصفح هذه المقالات المفيدة والنقاش حولها: https://io.hsoub.com/tech/156918-أول-مهندس-برمجيات-مولد-بالذكاء-الاصطناعي-هل-سيحل-مكان-مهندسي-البرمجيات-أم-سيسهل-حياتهم
- 7 اجابة
-
- 1
-
الرابط لا يعمل فهو يظهر رسالة خطأ 404 وهنا قد يكون الرابط الذي قدمته خاطئا يمكنك التأكد من مراجعة الرابط بعناية وإصلاح أي أخطاء في الكتابة، ثم يمكنني مساعدتك.
- 2 اجابة
-
- 1
-
الذي جعل من ديفن مطوّرا خبيرا هو تزويده بأدوات البرمجة الخاصة به، فنجد أن لديه سطر أوامر ومحرّرا للشفرة ومتصفحا للويب، أي أنه يقوم بإدارة المهام وكتابة الأكواد وإصلاح المشاكل ويجمع المعلومات من الويب ويستكشف مختلف الموارد. حل المشاكل بشكل ذاتي اليوم بالنسبة للمهندسين يتطلب جهدا واستعانة بأدوات عدة، لكن ديفن في اختبار تم إجراؤه عليه واجه خطأ غير متوقع فلم يتراجع أو يستسلم وبدلا من ذلك أضاف بيانا للتصحيح وأعاد تشغيل الشفرة واستخدم سجلات الأخطاء لتشخيص المشكلة واصلاحها. أما بخصوص استبداله لوظيفة مهندسي البرمجيات فهذا برأيي أمر مستبعد وكلام مستهلك، فديفن ليس مشاركا في القيادة فهو بمثابة عامل برمجي اصطناعي بالكامل، لهذا يمكن لفرق الهندسة والتطوير تفويض المهام إليه، ممّا سيتيح للمهندسين البشر التركيز أكثر على الأعمال الإبداعية والابتكار وترك الأعمال الروتينية ل Devin.
- 7 اجابة
-
- 1