اذهب إلى المحتوى

Mustafa Suleiman

الأعضاء
  • المساهمات

    11946
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    336

كل منشورات العضو Mustafa Suleiman

  1. هناك طرق مختلفة، ومنها أن يكون العنصر الأب (الذي يحتوي على الرابط) يستخدم text-align: center كالتالي: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body, html { height: 100%; margin: 0; display: flex; justify-content: center; align-items: center; } .container { text-align: center; } </style> </head> <body> <div class="container"> <a href="#">هذا رابط</a> </div> </body> </html> وفي حال تريد توسيط الرابط بشكل عمودي وأفقي معًا استخدم Flexbox كالتالي: <!DOCTYPE html> <html lang="ar"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body, html { height: 100%; margin: 0; display: flex; justify-content: center; align-items: center; } </style> </head> <body> <a href="#">هذا رابط</a> </body> </html> وستجد أمثلة أخرى هنا:
  2. قم بتجربة أحد برامج إصلاح وحدات التخزين مثل EaseUS Free Partition Manager وتجربة عمل فورمات للفلاشة إن لم ينجح الأمر فالفلاشة معطوبة.
  3. عليك أولاً تعديل قالب الصفحة الرئيسية ووضع الرابط كالتالي: <nav> <ul> <li><a href="{% url 'blog:blog_home' %}">صفحة المدونة</a></li> </ul> </nav> {% url 'blog:blog_home' %} للحصول على عنوان URL لصفحة المدونة، بالطبع تأكد من أن اسم URL يناسب اسم النمط (name) المستخدم في ملف urls.py. ثم تحتاج إلى وجود مسار URL مخصص للمدونة في ملف urls.py في تطبيق المدونة: urlpatterns = [ path('', views.blog_home, name='blog_home'), ] ثم وجود وظيفة العرض view الخاصة بصفحة المدونة في ملف views.py في تطبيق المدونة. def blog_home(request): return render(request, 'blog/blog_home.html') ولا تنسَ إنشاء قالب HTML لصفحة المدونة (blog_home.html) في مجلد القوالب الخاص بالمدونة (templates/blog).
  4. حاول تغيير منفذ USB ، فأحيانًا المنافذ الأمامية تكون معطوبة جرب الخلفية، أو مدخل usb آخر. إن لم تعمل فحاول إصلاحها من خلال أحد البرامج بعمل فورمات لها.
  5. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل
  6. مسار أساسيات بايثون لا غنى عن تعلمه بالكامل من البداية إلى النهاية، فذلك ما يترتب عليه باقي محتوى الدورة، وللعلم الأساسيات أهم من جانغو وأي تقنية أخرى، لذا الإهتمام بها والتطبيق عليها بشكل مُكثف هو ما يجعل منك مبرمج جيد ومُلم بالأساسيات المبني عليها أي تقنية أخرى قائمة على لغة بايثون. لذا الخيار يعود إليك، إما المتابعة أو الإنتقال للمسار الذي تريده، وللعلم تنفيذ التطبيقات العملية ورؤية تقدمك وتحسن المستوى سيشجعك على الاستمرار، تستطيع السؤال عن تطبيقات عملية حول مفهوم معين لتوظيف ما تعلمته.
  7. في حال تم إضافة ملفات بعد عملية الحذف، فستكون نسبة استرجاع الملفات المحذوفة ضعيفة، حيث يتم استبدال البيانات المحذوفة بالبيانات الجديدة عند النقل. من البرامج المجانية الجيدة هو Recuva. والثاني هو برنامج DMDE وهو ليس مجاني تمامًا حيث يسمح لك باسترجاع 4000 ملف لكل عملية بحث أي تستطيع تكرار العملية، وذلك البرنامج هو أفضل من Recuva لكنه ليس مجاني. تحذير: عند استرجاع الملفات عليك حفظها في مكان آخر غير المكان الذي تم حذفها منه حتى لا يتم الكتابة على الملفات المحذوفة وفقدانها للأبد، فعند نقل ملفات على الهارديسك يتم استبدال الملفات المحذوفة بالملفات الجديدة.
  8. أولاً نعتذر لك عن أية صعوبة واجهتها في الشرح، تستطيع الاستفسار عن أي شيء وسيتم مساعدتك. بخصوص سؤالك بالطبع لا، فكيف سيتم الشرح لم يصل تعلم الآلة لتلك الدرجة، الفكرة هي أنه في بعض المسارات ستحتاج إلى تعديل مستوى سرعة التشغيل مثل 1.5x لتصل للمستوى المناسب لك في الاستماع، حيث يتم مراعاة أن البعض لا يناسبه الشرح السريع، لذا الجميع يستطيع إختيار السرعة المناسبة في الشرح من خلال تقليل وزيادة سرعة تشغيل الفيديو. وبخصوص نفس الشرح في أكثر الدورة، فنعم يتم تضمين بعض المسارات من الدورات الأخرى لإثراء محتوى دورة معينة أي إعادة استخدام، فما الفائدة من شرح أساسيات بايثون مرتين؟ وبعض المدربين يقومون بشرح أكثر من مسار نعم بسبب تخصصهم في ذلك.
  9. حاليًا لا يوجد دورة خاصة بالأمن السيبراني بالأكاديمية، وكبداية ستحتاج إلى دراسة علوم الحاسوب، ويوجد بالأكاديمية دورة خاصة بذلك ستتعلم بها ما يلي: أساسيات الحاسوب وعلومه والتفكير المنطقي وما هي الخوارزميات وكيف تفيد في البرمجة تطبيقات عملية على أساسيات التفكير المنطقي باستخدام بيئة سكراتش Scratch التفاعلية أساسيات لغة البرمجة JavaScript وتطبيق المفاهيم التي تم شرحها باستخدامها، والتوسع في شرح التطبيقات العملية للغات البرمجة أساسيات أنظمة التشغيل المختلفة وكيفية تثبيت البرمجيات اللازمة للبرمجة عليها أساسيات سطر الأوامر في نظام لينكس، وشرح الأسس التي بني عليها النظام مع تطبيقها عمليًا أنظمة قواعد البيانات المختلفة، مع شرح تفصيلي للغة SQL للتعامل معها مبادئ أساسية في أنظمة قواعد البيانات NoSQL المفاهيم الأساسية التي تبنى فيها صفحات الويب مفاهيم أساسية في الشبكات والخوادم، وكيف يتم استقبال الطلبيات إلى الخادم والرد عليها مبادئ الحماية والأمان في الويب أما بخصوص المصادر والمهارات التي تحتاجها كخريطة طريق لدخول مجال الأمن السيبراني ستجد تفصيل هنا: أما عن نظام لينكس ستجد دروس ومقالات هنا: مقالات لينكس
  10. تلك العملية تتم من جهة قاعدة البيانات، فالأمر عبارة عن تخزين بيانات ثم مقارنتها والتحقق منها والسماح أو المنع بعد ذلك حسب النتيجة. فأولاً، تحتاج إلى إنشاء جداول قاعدة البيانات لتخزين المستخدمين والسيريالات. CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL ); CREATE TABLE serials ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, serial_key VARCHAR(50) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, used TINYINT(1) DEFAULT 0 ); ثم عند شراء المستخدم للسكربت، يتم توليد السيريال وتخزينه في قاعدة البيانات. function generateSerial($userId) { $randomPart = bin2hex(random_bytes(15)); $datePart = date('Ymd'); $serial = $userId . '-' . $randomPart . '-' . $datePart; return $serial; } function storeSerial($userId, $serial) { $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt = $pdo->prepare("INSERT INTO serials (user_id, serial_key) VALUES (:user_id, :serial_key)"); $stmt->execute(['user_id' => $userId, 'serial_key' => $serial]); } // افتراض أن المستخدم قد اشترى السكربت وتم تمرير معرف المستخدم $userId = 1; $serial = generateSerial($userId); storeSerial($userId, $serial); وفي صفحة التحقق من السيريال، تقوم بالبحث عن المستخدم ثم التحقق من السريال ثم تحديث حالة السيريال على أنه أصبح مستخدم ثم متابعة التثبيت، وإن لم يحدث ذلك يعني أنّ التحقق فشل ولا يتم المتابعة. function verifySerial($username, $serial) { $pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt = $pdo->prepare("SELECT id FROM users WHERE username = :username"); $stmt->execute(['username' => $username]); $user = $stmt->fetch(PDO::FETCH_ASSOC); if ($user) { $userId = $user['id']; $stmt = $pdo->prepare("SELECT * FROM serials WHERE user_id = :user_id AND serial_key = :serial_key AND used = 0"); $stmt->execute(['user_id' => $userId, 'serial_key' => $serial]); $serialData = $stmt->fetch(PDO::FETCH_ASSOC); if ($serialData) { $stmt = $pdo->prepare("UPDATE serials SET used = 1 WHERE id = :id"); $stmt->execute(['id' => $serialData['id']]); return true; } } return false; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username']; $serial = $_POST['serial']; if (verifySerial($username, $serial)) { } else { unlink('install.php'); echo "بيانات خاطئة أو السيريال مستخدم سابقاً."; } } وبخصوص التحقق من أن كود الحماية لم يُزال، يمكنك استخدام تقنيات مثل Obfuscation (إخفاء الكود) أو تضمين كود التحقق في أماكن متعددة في السكربت. function checkIntegrity() { if (!file_exists('install.php')) { header('Location: رابط موقعك'); exit(); } } checkIntegrity(); حيث تقوم بتضمين الدالة السابقة في جميع الملفات المهمة للتأكد من أن ملف install.php لم يُحذف.
  11. بالطبع أنت ستعتمد على محرك البحث لتحصل على زيارات، إذن عليك أولاً ضبط الـ SEO لموقعك، من خلال تحسين جودة الموقع وتصمميه وسرعة تحميله أي تحسين تجربة المستخدم فهي العامل الأهم حاليًا. ومن ضمن تلك الأمور هو شراء دومين ولا يشترط .com تستطيع شراء دومين بأي لاحقة مختلفة وبسعر زهيد. وإذا لا تريد شراء دومين فحاول التقدم لمنصة Adsterra فهي تقبل ذلك. بعد ذلك ستحتاج إلى كتابة مقالات في موقعك لتسويقه من خلال المحتوى ويظهر على كلمات محددة في جوجل. أيضًا إنشاء روابط باك لينكس backlinks لتحسين ظهور الموقع في جوجل ومدى موثوقيته. وستحتاج 10 آلاف زائر كحد أدنى لتتمكن من التقدم لأحد مقدمي الإعلانات، مثل ezoic. لديك أيضًا Mediavine لكن يتطلب 25,000 زائر شهريًا على الأقل. ألقي نظرة على popads أيضًا.
  12. لم يتم ذكر ما نوع المشروع والبيانات الخاصة به؟ عامًة لا مشكلة في استخدام أكثر من قاعدة بيانات مع Django، تفقد التالي: https://docs.djangoproject.com/en/5.0/topics/db/multi-db/ وهو يقصد الجداول الداخلية التالية: django_content_type (content types for models) django_migrations (migration history) django_session (session data) auth_permission (permissions) auth_group (groups) بسبب ذلك، عليك تخصيص قاعدة بيانات مركزية تحتوي على الجداول التي يستخدمها Django داخليًا. ثم استخدم موجهات قواعد البيانات Database Routers لتحديد الجداول التي يجب أن تكون في قاعدة البيانات المركزية والجداول التي يمكن أن تكون في قواعد البيانات الأخرى.
  13. لم تذكر ما الداعي لفعل ذلك، حيث أنّ IIS يعمل على نظام ويندوز فقط لكونه من تطوير مايكروسوفت. عامًة، لا مشكلة في استخدام IIS بدلاً من XAMPP لتشغيل تطبيقات PHP، فكل من IIS و XAMPP خادمان ويب يمكنهما تشغيل تطبيقات PHP. لكن XAMPP هو حزمة خادم ويب مجانية ومفتوحة المصدر تحتوي على Apache و MySQL و PHP و Perl و متاحة لأنظمة Windows و macOS و Linux. والعمل على IIS ليس بالسهل وستحتاج إلى خبرة ودراية به على عكس XAMPP. وربما تحتاج إلى إجراء بعض التعديلات على كود PHP لديك في حال كنت تستخدم ميزات أو امتدادات خاصة بالخادم والتي قد لا تكون متوفرة على كلا الخادمين، بمعنى لو تستخدم وحدات أو دوال خاصة بـ Apache، فستحتاج إلى تعديل كودك لاستخدام بدائل متوافقة مع IIS. أيضًا ملفات .htaccess في Apache، ستحتاج إلى تحويلها إلى قواعد URL Rewrite في IIS.
  14. الحل صحيح، تستطيع تحسينه بتجنب طباعة فاصلة زائدة في النهاية، الفكرة هي التأكد من أن الفاصلة تُطبع فقط بين الأرقام وليس بعد آخر رقم في السلسلة. for (int i = 1; i <= 100; i++) { if (i % 5 != 0) { if (i > 1 && (i - 1) % 5 != 0) { Console.Write(","); } Console.Write(i); } } استخدمت شرطًا إضافيًا داخل الحلقة للتحقق في حال كان الرقم الحالي ليس الأول في السلسلة (i > 1) وأن الرقم السابق لم يكن مضاعفًا للـ 5 ((i - 1) % 5 != 0). بالتالي طباعة الفاصلة فقط بين الأرقام التي ليست مضاعفات للـ 5، وتجنب الفاصلة الزائدة في النهاية. وللعلم يوجد حل آخر باستخدام قائمة لتخزين النتائج، فبدلاً من التحقق داخل الحلقة، باستطاعتك استخدام قائمة لتخزين الأرقام ومن ثم طباعة الأرقام مرة واحدة بفاصلة بين كل رقم: using System; using System.Collections.Generic; class Program { static void Main() { List<int> numbers = new List<int>(); for (int i = 1; i <= 100; i++) { if (i % 5 != 0) { numbers.Add(i); } } Console.WriteLine(string.Join(",", numbers)); } }
  15. السؤال غير واضح، ما المقصود؟ هل تقصد إلغاء خاصية منع نسخ النص من موقع معين؟ هناك إضافات للمتصفح تسمح لك بذلك. عامًة لو تقصد إزالة حماية النسخ (مثل تعطيل النقر بزر الماوس الأيمن ومنع سحب الصور) وتريد فعل ذلك بنفسك، فستحتاج إلى كود JavaScript لتعطيل بعض وظائف المتصفح التي تقوم بحماية المحتوى، ولكن يرجى ملاحظة أن تلك الممارسات غير قانونية أو غير أخلاقية إن كنت تحاول تجاوز حقوق الطبع والنشر أو الحماية التي وضعها مالك الموقع.
  16. في الأكاديمية لا يتوفر ذلك،. وعامًة MQL5 (MetaQuotes Language 5) عبارة عن لغة برمجة مخصصة لتطوير الأدوات والبرامج المستخدمة في منصة التداول MetaTrader 5 (MT5) كما ذكرت. والتي تُستخدم بشكل واسع في أسواق المال لتداول العملات الأجنبية (فوركس)، الأسهم، العقود الآجلة، وعقود الفروقات (CFDs). ستجد على اليوتيوب شرح للنسخة Mql4 بالعربية، لكن MQL5 ستجد شرح بالإنجليزية.
  17. جيد جدًا، نقوم أيضًا استخدام TryParse بدلاً من Parse لتجنب حدوث استثناءات في حالة إدخال قيم غير صحيحة. using System; class Program { static void Main() { Console.WriteLine("Please enter a positive integer:"); if (!int.TryParse(Console.ReadLine(), out int n) || n <= 0) { Console.WriteLine("Invalid input. Please enter a positive integer greater than 0."); return; } CalculateAndPrintFactorial(n); } static void CalculateAndPrintFactorial(int n) { int sum = 1; for (int i = 1; i <= n; i++) { sum *= i; Console.WriteLine(sum); } } } إن أدخل المستخدم قيمة أقل من أو تساوي 0، يتم عرض رسالة "n must be > 0" ويتم إنهاء التطبيق باستخدام return. و int.TryParse يحاول تحويل الإدخال إلى عدد صحيح، وفي حال فشل التحويل، يعود false ويتجنب حدوث استثناء. إن كانت القيمة المدخلة أكبر من 0، يتم تنفيذ الحلقة التكرارية لحساب وعرض القيم المتتابعة للمتغير sum.
  18. ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس لمساعدتك بشكل أفضل. مع إرفاق مجلد المشروع بعد ضغطه لتفقده.
  19. تقصد الصورة في معرض الأعمال أم الصورة الشخصية؟ عامًة الصورة الشخصية تستطيع تعديلها من خلال الرابط التالي: https://accounts.hsoub.com/settings?service=11
  20. مايكروسوفت إكسل أحد البرامج التي لا غنى عنها لأي شخص يتعامل مع الحاسوب، فمهما كانت اهتمامتك ستحتاج إليه في وقت من الأوقات. لكن في حالك أنت كونك مهندس برمجيات، فلن تحقق استفادة منه إلا إن كنت تتعامل مع البيانات في مشروع معين مثلاً. لكن للاستخدام الشخصي فهو جيد جدًا كما ذكرت، تستطيع تنظيم أمور حياتك من خلال ملف معين وتخصيصه حسب الأمور التي تريد متابعتها وتنظيمها، وحتى في عملك ستحتاج أحيانًا إلى التعامل مع ملفات Excel. تفقد الموقع التالي وستجد الكثير من القوالب المفيدة: https://www.vertex42.com
  21. هناك وجهات نظر مختلفة، لكن في رأي الاستيعاب والحفظ مهمان في بداية التعلم، فالاستيعاب وحده لا يكفي، والتطبيق العملي يقوم بتثبيت ذلك الاستيعاب والحفظ بنسبة أكبر، وبعد ذلك لو نسيت بعض الأمور لا مشكلة وليس جميعها بالطبع، ومع التكرار ستترسخ لديك الأمور التي أنت بحاجة بشكل متكرر في المشاريع. وباقي الأمور تستطيع البحث عنها واسترجاعها لكونك قد استوعبتها من قبل وتستطيع استخدامها بدون مشكلة، والجميع كذلك. النقطة المحورية هي التطبيق العملي بمفردك، فلا يكفي التطبيق وراء الشرح فقط، وذلك أمر يتكاسل عنه الغالبية رغم أن الفائدة تكمن به. ستجد هنا تفصيل أرجو قراءته:
  22. صحيح، من أشهر الخوارزميات المستخدمة في التجميع Clustering نظرًا لبساطتها وسرعتها في التنفيذ، ولا يعني هذا بالضرورة أنها الأفضل في جميع الحالات، فهناك العديد من الخوارزميات الأخرى التي تكون أكثر فعالية حسب طبيعة البيانات والمشكلة التي تحاول حلها. مثلاً DBSCAN (Density-Based Spatial Clustering of Applications with Noise) تعتمد الخوارزمية على الكثافة ولا تتطلب تحديد عدد المجموعات مسبقًا، كما أنها قادرة على التعامل مع الضوضاء والعثور على المجموعات ذات الأشكال غير المنتظمة. ولديك أيضًا Hierarchical Clustering التجميع الهرمي، مفيد في الحالات التي ترغب فيها ببناء شجرة تراتبية من المجموعات، وتوجد أشكال مختلفة من التجميع الهرمي مثل التجميع المتراكم Agglomerative والتجميع التقسيمي Divisive. بجانب Gaussian Mixture Models (GMM) وتلك الخوارزمية تعتمد على النماذج الإحصائية وتستخدم لتقدير التوزيعات المختلفة في البيانات، وهي أكثر مرونة من K-Means في التعامل مع مجموعات البيانات التي تمتلك أشكالًا وتوزيعات مختلفة. بالإضافة إلى Spectral Clustering التي تستخدم لتحليل القيم الذاتية لمصفوفة التشابه لإنشاء مجموعات، وفعالة في اكتشاف المجموعات المعقدة في البيانات. أخيرًا خوارزمية Mean Shift التي تعتمد على تقدير الكثافة لتحديد مراكز المجموعات، ولا تتطلب تحديد عدد المجموعات مقدما.
  23. لن يتم السؤال في كل الأمور النظرية، مع التركيز بشكل أكبر على الجانب العملي والأمور النظرية الهامة بالنسبة للجانب العملي. أيضًا السؤال حول التطبيقات العملية التي قمت بها ومدى استيعابك، بعد ذلك سيتم تحديد مشروع عملي لك لتنفيذه كمشروع تخرج.
  24. هل تم إخبارك بسبب للرفض؟ أيضًا هل المحتوى أصلي وبجودة جيدة؟ يمكنك طرح المدونة هنا لتفقدها.
  25. أتفهم الظروف في دولة اليمن، لكن مجال البرمجة له طابع خاص، وهو أن الشهادة ليس لها وزن بشكل كبير، نعم هي دلالة على أنه الشخص اجتاز محتوى تعليمي معين ولديه مهارات معينة، لكن ليس بالضرورة أن ذلك صحيح. لذا يتم الإهتمام بالمهارات الفعلية وليس الشهادة، أي ما أنت قادر على تقديمه وتنفيذه في الواقع العملي وإثباته من خلال معرض أعمالك. في الأكاديمية لا يوجد ماجستير فقط شهادة إعتماد على إتمام الدورة وليس حضورها أي يتم منحها لن اجتاز الدورة بالفعل واستوعبها وأتم التطبيقات العملية.
×
×
  • أضف...