لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/13/24 في كل الموقع
-
لقد وجدت منصات كثيرة تعمل على زيادة المتابعين وأظن أنها تعتمد على طريقتين الأولى هي أنك تقوم بجمع نقاط عن طريق متابعة حسابات أخرى ثم تقوم باستخدام نقاطك ووضعها وعلى كل شخص يتابعك يأخذ هو نقاط وتخصم منك والثانية هي متابعات وهمية عن طريق عمل حسابات وهمية ثم القيام بمتابعة الحساب المستهدف من هذه الحسابات أو عن طريق ما يسمى بـ BotNet كيف تعرف المواقع ذات الطريقة الأولى أنك قمت بمتابعة الحساب المطلوب وهي لا تعرف حساب فيسبوك الخاص بك وما هي متطلبات القيام بذلك إن أردت فعلها والمواقع ذات الطريقة كيف يمكنني فعل مثلها أيضا1 نقطة
-
السلام عليكم ورحمة الله وبركاته انا في حاجة ماسة الى مساعدتكم وبالتفاصيل يرجى ذكرها ، انا صممت موقع وتطبيقات مع شركة وتم تسليمي فقط الداش بورد بيانات التحكم . الشركة بطبيعتها تريد ان اعتمد اعتماد كلي عليهم وانا لا افقه في هذه الامور ، كيف اخذ جميع البيانات والتفاصيل الخاصة بالمشروع من والى ، مثل السورس كود وكل التفاصيل البرمجية والاشتراكات والسيرفرات ونظام الحماية من الى .... وماهي افضل طريقة للتعامل معهم على اساس ذلك ، وشكرا1 نقطة
-
1 نقطة
-
اريد صناعة عدة اصناف ترث من الصنف User حيث اضيف لكل صنف اشياء تخصه بحث استعملها لانشاء مستخدمين مثلا الصنف vendor فيه خاصية type = models.charField(max_length = 20 , default ='vendor') و عدة خواص اخرى , في نفس الوقت عند تسجيل بائع جديد , اريد استخدام هذا الصنف للتسجيل بدلا من User و ايضا صنف customer له عدة خواص مختلفة عن ما يرث منه مثلا type = models.charField(max_length = 20 , default ='customer') , يرث ايضا من user , و يستعمل لانشاء مستخدمين بدلا من User حاولت فعل هذا لكنني تلقيت اخطاء كثيرة class Vendor(AbstractUser): type = models.CharField( max_length=50,default = "vendor") def __init__(self, username="test1",password='pass_test',is_staff=False,*args: Any, **kwargs: Any) -> None: super().__init__(username,password,*args, **kwargs)1 نقطة
-
نجحت الطريقة معي الى حد ما هذا هو الكود USER_TYPE_CHOICES = ( ('vendor', 'Vendor'), ('customer', 'Customer'), ) # Create your models here. class MyUser(AbstractUser): # خيارات نوع المستخدم pass # فئة فرعية لبائع class Vendor(MyUser): # خاصية خاصة بالبائع vendor_specific_property = models.CharField(max_length=100) store_deposit_account = models.CharField(max_length = 100 ,default='0000 0000 0000 0000') user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES , default='vendor') class meta: verbose_name ='vendor' # فئة فرعية للعميل class Customer(MyUser): # خاصية خاصة بالعميل customer_specific_property = models.CharField(max_length=100) lives_in=models.CharField(max_length=50 ,default ='Algeria') user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES , default='customer') class meta: verbose_name ='vendor' admin.site.register(MyUser) admin.site.register(Customer) admin.site.register(Vendor) لكنها تظهر هكذا في صفحة الadmin رغم انني حاولت تحديد الverbose_name فكيف حل هذه المشكلة؟ ايضا ,هل هناك طريقة للحد من عدد الحقول في صفحة الadmin و اظهار حقول معينة عند الانشاء؟ ف.. هذا اكثر من المرغوب فيه ايضا @Mustafa Suleiman هل هناك طريقة لفعل هذا من الterminal ؟ vendor = Vendor.objects.create_user(username=username, password=password, type="vendor")1 نقطة
-
نعرفك في مقال اليوم ما هي لغة الآلة أو لغة الأصفار والوحدات والتي تقع في أدنى مستويات لغات البرمجة، وتستخدم للتخاطب والتفاعل المباشر مع أجهزة الحواسيب، ونكتشف معًا ما هي مميزات لغة الآلة، وما الفرق بين لغة الآلة ولغة التجميع، ونستعرض أمثلة على لغة الآلة واستخداماتها، وطريقة تنفيذ تعليماتها من قبل الحواسيب المختلفة. مستويات لغات البرمجة قبل أن نتعرف ما هي لغة الآلة لنوضح ما هي لغة البرمجة؟ وما هي المستويات التي مرت بها لغات البرمجة خلال تطورها قبل أن تتطور وتنبثق منها العديد من الأنواع والتسميات. إن لغة البرمجة هي الأسلوب الذي يعتمده البشر للتخاطب مع الحواسيب وغيرها من الأجهزة القابلة للبرمجة وطلب تنفيذ الأوامر منها، وهي تكتب أو تصاغ على شكل سلسلة من الأوامر المتتالية، وتحفظ على هيئة برامج حاسوبية أو تطبيقات ثم تمرر حاسوب لتنفيذها والحصول على النتائج المطلوبة. وقد مرت لغات البرمجة خلال تطويرها بعدة مراحل أو مستويات ومن أبرزها: لغات منخفضة المستوى Low-Level Languages لغة الآلة Machine Language لغة التجميع Assembly Language لغات متوسطة المستوى Mid-Level Languages لغات عالية المستوى High-Level Languages لنتعرف على مميزات وسمات كل لغة من هذه اللغات. لغات منخفضة المستوى Low-Level Languages كانت لغات الجيل الأول للحواسيب لغات منخفضة المستوى مكونة من مجموعة من التعليمات التي تدخل إلى الحاسوب في شكل قابل للتنفيذ مباشرة بواسطة معالج الحاسوب حيث كانت التعليمات البرمجية مكونة من أرقام مكتوبة بالنظام الثنائي binary system وهو نظام أساسه العدد 2، أو النظام الست عشري hexadecimal وهو نظام أساسه العدد 16وكان من الممكن تنفيذ هذه البرامج مباشرة. على سبيل المثال تسلسل الأرقام التالي ليس سوى مثال على جزء من كود برمجي مكتوب بلغة الآلة لبرنامج حاسوبي يجمع عددين: 11101100, 11011010, 10100001, 11011101, 01011111, 10111110, 11101110, 00101101, 11010111, 11101100, 11011011, 11101110, 11101110, 11011101, 00001010, 10101011, 11101110, 11101110, 11001110, 10111010, 10101010, 10101101, 11101010, 11101111, 00011010, 11010010, 11101110, 00011010, 10101011, 11101110, 11101110, 10101110, 11101010, 11101011, 11101010, 00001000, 00001010, 11101110, 11001010 إن تعليمات البرنامج السابق مكتوبة بالنظام الثنائي Binary System، وفي حال استخدامنا النظام الست عشري hexadecimal لكتابة التعليمات سيكون البرنامج على النحو التالي: 0xEC, 0xDA, 0xA1, 0xDD, 0x5F, 0xBE, 0xEE, 0x2D, 0xD7, 0xEC, 0xDB, 0xEE, 0xEE, 0xDD, 0x0A, 0xAB, 0xEE, 0xEE, 0xCE, 0xBA, 0xAA, 0xAD, 0xEA, 0xEF, 0x1A, 0xD2, 0xEE, 0x1A, 0xAB, 0xEE, 0xEE, 0xAE, 0xEA, 0xEB, 0xEA, 0x08, 0x0A, 0xEE, 0xCA وكما تلاحظ فقد كانت كتابة وقراءة لغة الآلة صعبة ومعقدة للغاية، لهذا السبب ظهرت لغات الجيل الثاني أو ما يعرف بلغات التجميع assembly languages وهي عبارة عن لغات ذات مستوى منخفض أيضًا لكن كودها البرمجي أسهل في الفهم نوعًا ما، فقد ابتكر علماء الحاسوب لغة التجميع لتكون بمثابة لغة وسيطة أسهل في الفهم والقراءة، وهي تتضمن مجموعة محدودة من التعليمات الخاصة بالتعامل المباشر مع العتاد الصلب والتجهيزات الإلكترونية القابلة للبرمجة، وهي تختلف بحسب ببنية كل معالج فكل جيل من المعالجات له لغة التجميع الخاصة به. على سبيل المثال، يوضح الكود التالي برنامجًا مكتوبًا بلغة التجميع لجمع عددين وهو مخصص للعمل على معالج Intel x86 ويجمع العددين 5 و 7 assembly section .data num1 dd 5 num2 dd 7 result dd 0 section .text global _start _start: mov eax, [num1] add eax, [num2] mov [result], eax ; Exit the program mov eax, 1 ; System call number for exit xor ebx, ebx ; Exit status 0 int 0x80 ; Make system call إذا قرأت الكود السابق فستنتج أن أول قسم منه Section .data يعرَف العددين num1 و num2 وهي المدخلات المطلوب جمعهما، كما يعرف متغير result لحفظ نتيجة الجمع، أما القسم _start فهو يشير لبداية البرنامج. وبعدها تبدأ التعليمات الفعلية حيث تنقل التعليمة mov eax, [num1] القيمة المخزنة في num1 إلى المُسجَّل eax وتنقل التعليمة add eax, [num2] القيمة المخزنة في عنوان num2 إلى هذا المُسجَّل، وبعدها تُنقَل قيمة المُسجَّل إلى المتغير result الذي يخزن نتيجة الجمع النهائية، وتستخدم التعليمات الثلاثة الأخيرة للخروج من البرنامج وإنهاء تنفيذه. كما تلاحظ هذه اللغة مفهومة أكثر من لغة الآلة المليئة بالأصفار والوحدات لكنها لا تزال صعبة ومربكة، وتحتاج من المبرمج لأن يهتم بتفصيل دقيقة مثل تحديد المسجلات التي سيتم استخدامها ونقل البيانات إليها أو منها أثناء تنفيذ البرنامج، كما أنها لا تصلح لتطوير البرامج والخوارزميات المتقدمة وستنتج قدرًا كبيرًا من الكود لتنفيذ كل عمليلة. لغات متوسطة المستوى Mid-Level Languages بعد لغة التجميع، طورت لغات برمجة أخرى مثل بيزك BASIC وفورتران FORTRAN وباسكال Pascal وسي C و C++ سميت بلغات البرمجة متوسطة المستوى، وهي لغات تقع في مكان وسطي بين لغات البرمجة منخفضة المستوى ولغات البرمجة ذات عالية المستوى مثل بايثون Python أو جافا Java، وهي تتيح للمبرمجين التحكم في التفاصيل الدقيقة للعتاد، وتوفر في نفس الوقت مستوى أعلى من المرونة في التعامل. على سبيل المثال لجمع عددين بلغة البرمجة C سيكون الكود بالشكل التالي: #include <stdio.h> int main() { // تعريف المتغيرات int num1 = 5; int num2 = 7; int result; // جمع الأرقام result = num1 + num2; // طباعة النتيجة printf("النتيجة هي: %d\n", result); return 0; } لغات عالية المستوى High-Level Languages أخيرًا ظهرت لغات الجيل الثالث أو لغات البرمجة عالية المستوى مثل بايثون Python وروبي Ruby وجافا سكريبت JavaScript لتبسيط البرمجة على المطورين والمبرمجين، فهذه اللغات تعد من أسهل لغات البرمجة وتكتب تعليماتها بمفردات قريبة من مفردات اللغة الانجليزية المحكية، وهي سهلة القراءة والفهم من قبل البشر، ولا تضطرنا للتعامل مع التفاصيل الدقيقة المتعلقة بالعتاد. لكن هذه اللغات تحتاج إلى ترجمتها أو تفسيرها ليفهمها معالج الحاسوب ثم يتمكن من تنفيذها بالشكل الصحيح. وهذه اللغات ليست مرتبطة بنوع جهاز معين حيث يمكن تحويل أوامرها إلى تعليمات مختلفة بلغة الآلة حسب كل جهاز كي يتمكن من تفسيرها وتنفيذها. على سبيل المثال يحقق الكود التالي بلغة بايثون نفس وظيفة الكود السابق لجمع عددين، ويمكنك أن تلاحظ بساطة وسهولة اللغة ومدى قربها من كلامنا المحكي مقارنة بالأكواد السابقة: # تعريف المتغيرات num1 = 5 num2 = 7 # جمع الأرقام result = num1 + num2 # طباعة النتيجة print("النتيجة هي:", result) ما هي لغة الآلة وكيف تعمل لغة الآلة أو لغة الأصفار والواحدات هي لغة برمجة تتكون من أوامر وتعليمات مكتوبة بطريقة يستطيع الحاسوب فهمها ومعالجتها، فالحاسوب يفهم في الواقع فقط الأصفار والواحدات حيث أن الرقم 1 يعني وجود تيار أو جهد كهربائي، والرقم 0 يعني عدم وجود تيار أو جهد كهربائي. وفي بدايات ظهور الحواسيب كانت هذه الأرقام تحول إلى أوامر، ومن ثم تنفذ مباشرة بواسطة وحدة المعالجة المركزية CPU. ويكون كل أمر عبارة عن رمز رقمي أو سلسلة من الرموز الرقمية الممثلة بالنظام الثنائي أو الست عشري كما شرحنا سابقًا، وتجدر الإشارة الأن هذه الرموز الرقمية خاصة بكل جهاز حيث تطور لكل بنية معالجات لغة آلة خاصة به. وقد كانت الطريقة الوحيدة لإدخال هذه التعليمات إلى الحواسيب في بدايات ظهورها هي من خلال البطاقات المثقبة فإجهزة الحواسيب الأولى لم تكن أجهزة قادرة بعد على تخزين البيانات في ملفات لذا إذا أردت كتابة برنامج بلغة الآلة وإدخاله للحاسوب فإن الطريقة الوحيدة هي استخدام هذه البطاقات المثقبة. تحتوي كل بطاقة على ثقوب تُعبر عن تعليمات محددة للكمبيوتر حول المهام التي نريد تنفيذها، فإذا كان الثقب موجودًا سيمثل القيمة 1، وإذا لم يكن هناك ثقب يمثل القيمة 0، وكان لهذه البطاقات أشكال عديدة لكن أشهرها كان البطاقة المكونة من 80 عمودًا التي طورتها شركة IBM في عام 1928 كما هو موضح في الصورة التالية. مصدر الصورة تخيل أنك ستحتاج إلى بطاقة واحدة مشابهة من أجل كتابة كل سطر من التعليمات البرمجية! لذا كانت كتابة برنامج كامل باستخدام هذه البطاقات أمرًا في غاية الصعوبة ويتطلب مجموعة هائلة من البطاقات، وكانت هذه البطاقات تمرر إلى الحاسوب بشكل تسلسلي إلى جهاز مخصص يسمى قارئ البطاقات ليقوم بقراءة تعليماتها عمودًا عمودًا ويحول تسلسل الثقوب إلى معلومات رقمية، ثم يحملها في ذاكرة الحاسوب، وبعد اكتمال قراءة وتحميل كل البطاقات في الذاكرة ينفذ تعليماتها البرمجية ثم يخرج النتائج على شكل بطاقات مثقبة أيضًا. ولك أن تتخيل كم كان المبرمجون الأوائل يبذلون جهدًا في عملية البرمجة والتواصل مع الحاسوب، وقد استمر العمل بهذه الآلية ظهرت الأقراص المغناطيسية والأجهزة الطرفية peripherals لتخزين وإدخال البيانات وظهرت أجهزة الحواسيب الشخصية التي ألغت استخدام البطاقات المثقوبة ووجعلتها جزءًا من تاريخ لغات البرمجة. مميزات لغة الآلة بالرغم من أن لغة الآلة صعبة ومعقدة على البشر، إلا أنها تتمتع بمجموعة من المميزات والخصائص من أهما: تستخدام لغة الآلة الأرقام الثنائية 0 1 التي يفهمهما الحاسوب وينفذها مباشرة دون الحاجة إلى مترجم لتفسيرها. تسمح لغة الآلة للمبرمجين بالتحكم في عتاد الحاسوب مثل المعالج والذاكرة بشكل مباشر. تتميز لغة الآلة بالسرعة والكفاءة مقارنة مع اللغات عالية المستوى. تصلح لغات المستوى المنخفض لتطوير برامج النظام الأساسية للحواسيب. عيوب لغة الآلة من أبرز العيوب التي تعاني منها لغة الآلة ما يلي: من الصعب كتابة البرامج والخوارزميات المعقدة وتنفيذها باستخدام لغة الآلة. تتطلب كتابة الكثير من أسطر التعليمات البرمجية لبرنامج بسيط يتطلب تعديل البرامج الكثير من الوقت والجهد من الصعب تحديد وتصحيح الأخطاء البرمجية للبرامج المكتوبة بلغة الآلة تكون لغة الآلة خاصة بالأجهزة أي أنها تعتمد على نوع أو عائلة معالج الجهاز الذي ستعمل عليه لذا تختلف من جهاز لآخر الخلاصة تعرفنا في مقال اليوم على لغة الآلة التي تقع في أدنى مستويات لغات البرمجة والتي يفهمها الحاسوب بشكل مباشر وينفذها بواسطة وحدة المعالجة المركزية CPU، وتعرفنا على طريقة التعامل معها وأبرز مميزاتها وعيوبها. واليوم لم تعد لغة الآلة أو لغات المستوى المنخفض تستخدم من قبل المبرمجين إلا في مجالات وتطبيقات محدودة للغاية تحتاج للتعامل مع عتاد الحاسوب مباشرة، فقد أصبحت لغات البرمجة عالية المستوى أسهل بكثير ولكن تذكر أن جميع لغات البرمجة تحول في نهاية المطاف إلى برامج بلغة الآلة كي تنفذ من قبل الحاسوب. اقرأ أيضًا مستويات لغات البرمجة دليلك إلى أنواع لغات البرمجة قواعد البرمجة ببساطة للمبتدئين تعلم أساسيات البرمجة1 نقطة
-
في البداية عليك تعريف صنف User الأساسي، حيث نستخدم AbstractUser من Django كقاعدة لصنف User، ويوفر AbstractUser جميع الخصائص والوظائف الأساسية للمستخدمين في Django، أي يمكننا إضافة أي خصائص إضافية نحتاجها إلى صنف User. class User(AbstractUser): phone_number = models.CharField(max_length=20) address = models.CharField(max_length=255) ثم تعريف صنف Vendor، ونرث من صنف User باستخدام class Vendor(User)، ونضيف خاصية type مميزة لصنف Vendor لتحديد نوع المستخدم، ونستطيع إضافة أي خصائص إضافية محددة لصنف Vendor نحتاجها. class Vendor(User): type = models.CharField(max_length=50, default="vendor") company_name = models.CharField(max_length=255) business_license_number = models.CharField(max_length=20) ثم تعريف صنف Customer، ونرث من صنف User باستخدام class Customer(User):، ونضيف خاصية type مميزة لصنف Customer لتحديد نوع المستخدم، أيضًا إضافة أي خصائص إضافية محددة لصنف Customer نحتاجها. class Customer(User): type = models.CharField(max_length=50, default="customer") shipping_address = models.CharField(max_length=255) billing_address = models.CharField(max_length=255) الآن نستخدم Vendor.objects.create_user لإنشاء بائع جديد ونمرر اسم المستخدم وكلمة المرور وخصائص أخرى إلى الطريقة create_user. from django.contrib.auth import authenticate username = "test_vendor" password = "password1234" vendor = Vendor.objects.create_user(username=username, password=password, type="vendor") # ... (إتمام عملية تسجيل البائع) أو نستخدم Customer.objects.create_user لإنشاء عميل جديد، ونمرر اسم المستخدم وكلمة المرور وخصائص أخرى إلى الطريقة create_user. from django.contrib.auth import authenticate username = "test_customer" password = "password5678" customer = Customer.objects.create_user(username=username, password=password, type="customer") # ... (إتمام عملية تسجيل العميل) وعليك استخدام الطريقة create_user الخاصة بكل صنف، واستيراد جميع النماذج (models) المُستخدمة في الكود.1 نقطة
-
يمكنك استخدام التوريث لإنشاء فئات فرعية من الصنف User بهذا الشكل: from django.contrib.auth.models import AbstractUser from django.db import models class User(AbstractUser): # خيارات نوع المستخدم USER_TYPE_CHOICES = ( ('vendor', 'Vendor'), ('customer', 'Customer'), ) # حقل نوع المستخدم user_type = models.CharField(max_length=20, choices=USER_TYPE_CHOICES) # فئة فرعية لبائع class Vendor(User): # خاصية خاصة بالبائع vendor_specific_property = models.CharField(max_length=100) # فئة فرعية للعميل class Customer(User): # خاصية خاصة بالعميل customer_specific_property = models.CharField(max_length=100) حيث بداية تقوم بتعريف فئة User التي تمثل المستخدم الأساسي وتحتوي على خيارات نوع المستخدم وحقل لتحديد نوع المستخدم. ثم ننشئ فئات فرعية (Vendor وCustomer) ترث من الفئة الأساسية User ونضيف الخصائص الخاصة لكل فئة. هذا الحل يسمح لنا بإنشاء مستخدمين من نوعين مختلفين (بائع وعميل) وتخصيص الخصائص الخاصة بهم بسهولة.1 نقطة
-
في العموم لغة PHP آمنة بطبيعتها، لكن أمنها يعتمد على كيفية استخدامها، من النقاط الإيجابية التي أذكرها أنها لغة مفتوحة المصدر مما يسمح للمجتمع الذي يعمل بها بمراجعة الكود وإصلاح الثغرات الأمنية بسرعة. لغة PHP لها ميزات أمان مدمجة مثل تصفية الإدخال والتحقق من صحة البيانات، وهذا ما يساعد في الظاهر على منع هجمات حقن البيانات. لديها كذلك مكتبة hashlib لتشفير البيانات، ومكتبة password_hash لتخزين كلمات المرور بشكل آمن. لكن النقطة السلبية تكمن في كونها لغة قديمة فقد تم إنشاؤها في عام 1994، مما يعني أن بعض ميزاتها قد تكون غير آمنة لهذا يجب على المبرمج استخدام ميزات الأمان بشكل صحيح لضمان أمان تطبيقاته، لأنه كلما زاد عمر اللغة كلما كانت أكثر عرضة للاختراق وكانت لقمة سائغة للمخترقين. لهذا أنصح دوما باستخدام أحدث إصدار من PHP لكن بشكل عام، لغة PHP آمنة إذا تم استخدامها بشكل صحيح، لكن ينبغي أن ندرك بأنه لا توجد لغة برمجة آمنة بنسبة 100٪: حتى مع اتباع جميع ممارسات البرمجة الآمنة، فدوما يبقى هناك خطر من تعرض التطبيق للاختراق. كما يمكنك الاستفادة من النقاش حول هذا السؤال:1 نقطة
-
لا يوجد ما يسمى لغة آمنة أو نظام آمن، لكن يوجد لغة قوية ويصعب اختراقها وأنظمة كذلك. والأمر يعتمد بشكل كبير على المُبرمج نفسه وعلى إتباعه الممارسات الجيدة أثناء تطويره للمشروع وإهتمامه بالجانب الأمني وأن يكون على دارية بالأمور التي تُعرض الكود للإختراق. كمثال: لكن بالرغم من كون لغة PHP آمنة إلا أن كونها لغة شائعة الاستخدام ومفتوحة المصدر يشجع على استغلالها قبل المخترقين الذين يستغلون أي ثغرات أمنية تؤثر على تطبيقات PHP لتنفيذ الهجمات على المواقع، لذا من المهم إبقاء مواقعك محدثة إلى آخر الإصدارات من PHP. أي هي تعد من اللغات ضعيفة التنميط weakly-typed بمعنى أنك قادر على تخزين رقم في متغير ما ثم تخزين نص في نفس المتغير وهذا الأمر يجعل اللغة أكثر مرونة لكنه قد يسبب أخطاء غير متوقعة في التطبيقات، وأضافت الإصدارات الحديثة بدءًا من PHP 7 إمكانية تحديد أنواع المتغيرات والقيم الممررة إلى الدوال والمعادة منها، يمكن للمطورين الاستفادة من هذه الميزات لتحسين تطبيقاتهم الجديدة. وهناك العديد من لغات البرمجة الأخرى الأكثر أمانًا من PHP، مثل Java و C#، لذا تجد أنه يتم استخدام Java في مواقع البنوك مثلاً.1 نقطة
-
الألعاب التي تعتمد على سيرفر (ألعاب الآون لاين) لا يمكن اختراقها لكونها تعتمد على البيانات التي يتم جلبها من السيرفر، لذا يجب اختراق السيرفر أولاً وذلك يعني اختراق شركة الاستضافة. لذا تجد أن أغلب الألعاب يتم تهكيرها وتصبح أوف لاين في حال كانت اللعبة لا تحتاج إلى أن تبقى متصلة بالسيرفر. لكن بعض الألعاب أصبحت تستخدم always online DRM أي عليك أن تبقى متصل دائمًا بالإنترنت لكي تستخدم المنتج وهو اللعبة، لذا الأمر يصبح أصعب لإختراق ذلك لكن يتم الإختراق بالطبع بعد فترة. والأمر يتم بطرق مختلفة، مثل استخدام سريال أصلي للعبة وقطع إتصالها بالإنترنت لكي لا تقوم بالتحقق منه في السيرفر ومعرفة أنه مستخدم من قبل. أو يتم تفقد الذاكرة العشوائية واستخدام لغة assembly لتفقد الجزء الخاصة بالحماية ثم تغيير ذلك سواء بكتابة كود لتجاهل ذلك الجزء أو التلاعب به أي reverse-engineer. أو تعديل ملف اللعبة نفسه exe بجانب إمكانية تعديل ملف dll.1 نقطة
-
الكورس فيه معلومات نظرية كثيرة وانا اجد صعوبة في عدم نسيان هذه المعلومات فهل من طريقة لمذاكرة الكورس؟1 نقطة
-
الرجاء تحديد الكورس الذي تذاكره ليتم مساعدتك بشكل افضل اما الان ساعطيك بعض النصائح والمعلومات بشكل عام هذه المعلومات نظرية الان ولكنك ستستخدمها عمليا في وقت لاحق لذلك لا داعي للقلق لانها ستمر عليك مرات عديدة في اماكن اخرى وستحفظها من التكرار ولكن دعني اعطيك بعض الخطوات التي يجب عليك اتباعها لتحفظ هذه المعلومات التكرار : كما ذكرت لك قبل قليل انه بالتكرار ستحفظها لذلك قم بتسجيل الملاحظات الاساسية من كل فيديو وقم بمراجعتها باستمرار اكتب ملخصات وملاحظات: بعد الانتهاء من الفيديو قم بكتابة جميع الملاحظات والمعلومات التي تتذكرها ثم اعد الفيديو بعد قليل وتاكد من صحتها ولا بأس ان اخطأت لانك ستتذكر خطئك شرح المفاهيم: هذه الطريقة استخدمها شخصيا وتنفعني كثيرا اعتبر نفسك استاذ وقم بدراسة الدرس بعناية كأنك تريد اعطاءه وشرح لاحد ثم قم باعادة اعطاء الدرس لمجموعة طلاب من خيالك بهذه الطريقة لن تنساه ابدا ولكن هذه المعلومات والطرق طبقها على المصطلحات والقوانين الواجب عليك حفظها لاستعمالها لاحقا ولا تتطبقها على المعلومات العامة البسيطة التي لا داعي ل حفظها فقط اكتفي بمعرفتها ك ثقافة ولا مشكلة ان نسيتها وبالتوفيق لك1 نقطة
-
إذا أردت النصيحة، فنعم عليك تعلم الأساسيات، لكن ذلك في حال أنك ستقوم بتطوير تطبيقات ويب من خلال Flask أو Django، وفي حال أنك ستتعامل مع كود بايثون فقط وليس مواقع الويب إذن لا حاجة إلى ذلك. وفي الدورة سيتم شرح بناء مواقع من خلال Flask وDjango، لذا إن أردت دراسة تلك المسارات عليك دراسة المسار الأول من دورة تطوير واجهات المستخدم بجانب المسار الأول من دورة تطوير التطبيقات من خلال جافاسكريبت، والمسارات الأولى من جميع الدورات متاحة لك بشكل مجاني.1 نقطة
-
هذه اللغات تعبر عن الواجهات الامامية لجميع لغات البرمجة , اما بالنسبة ل لغة البايثون فهي لغة برمجة خلفية backend وعند البدأ بتعلمها لا ينبغي عليك احتراف هذه اللغات ولكنه ينبغي عليك ان تكون على معرفة بسيطة واساسية باساسيات هذا اللغات للتتمكن من فهم كيف يسير العمل في الواجهة الامامية والتواصل مع مبرمجين الفرونت اند اذا قمت بالعمل مع شركة او فريق عمل ام ان كنت تسعى للعمل ك full stack developer ف نعم يجب عليك احتراف هذه اللغات بالاضافة لاحترافك لغة البايثون لانه عندها ستعمل وحدك على منصات العمل الحر وستكون بحاجة للخبرة بكلا المجاليين لينتج معك تطبيق مثالي بالتوفيق لك1 نقطة