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

لوحة المتصدرين

  1. Adam Ebrahim

    Adam Ebrahim

    الأعضاء


    • نقاط

      6

    • المساهمات

      165


  2. سامح أشرف

    سامح أشرف

    الأعضاء


    • نقاط

      6

    • المساهمات

      2934


  3. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      5

    • المساهمات

      1068


  4. أكاديميّة حسوب

    • نقاط

      3

    • المساهمات

      5187


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 06/17/21 في كل الموقع

  1. الإصدار 1.0.0

    8407 تنزيل

    إطار العمل Vue.js هو أحد إطارات جافاسكربت المخصصة لبناء تطبيقات ويب والواجهات الأمامية يتميز بأنه إطار شامل واعد سريع الأداء ذاع الصيت يتميز بالكثير من الخصائص القوية ويستحق تعلمه لبناء واجهات مواقع وتطبيقات ويب متميزة وقوية خصوصًا تطبيقات الويب ذات الصفحة الواحدة SPA، توجهت أنظارنا لإضافة محتوى عربي مميز يشمله في خطة لإضافة مصادر تعليمية عالية الجودة تشرح أشهر أطر لغة جافاسكربت لبناء الواجهات الأمامية للمواقع وتطبيقات الويب. يبدأ الكتاب فصوله الأولى بشرح مفهوم إطار العمل والتعرف على Vue.js وأخذك سريعًا وباختصار لبدء استعماله ببناء أول تطبيق عبره. ستبدأ من الفصل الثاني في Vue.js بالتعرف على إطار العمل Vue.js عن قرب وعن آلية عمله وكيفية استعماله في بناء الوجهات الأمامية ثم تنتقل بعدها إلى التعرف على الموجهات الشرطية والتكرارية واستعمالها في قوالب الواجهة الأمامية، يليها الدخول إلى عالم مكونات Vue.js وتعلم كيفية بناءها. ستبدأ بعدها في الفصل السابع الأمور المتقدمة إذ ستتعلم التعامل مع سطر أوامر Vue.js لبناء المشاريع والتطبيقات بسهولة ويسر ثم ستتعرف بعد ذلك على مفاهيم متقدمة في Vue.js وكيفية بناء تطبيقات ذات صفحة واحدة. ستتعلم في الفصول الأخيرة من الكتاب كيفية ربط تطبيقك بالإنترنت وإضافة قاعدة بيانات له وإطلاق إلى العالم الخارجي متحرين استعمال أشهر منصات النشر وأيسرها تعاملًا. حتى تستفيد أكبر استفادة من الكتاب، يجب أن تملك معرفة أساسية مسبقة بلغة HTML ولغة CSS ومعرفة جيدة بلغة جافاسكربت، إذ يركز الكتاب على إطار العمل Vue.js الذي هو أحد أطر عمل جافاسكربت ولن يتطرق الكتاب إلى شرح لغة جافاسكربت، وقد تجد صعوبة في فهم أجزاء الشيفرات والاستفادة من الكتاب دون تلك المعرفة المسبقة. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات من هذه الصفحة، «مقدمة إلى vuejs»، أو تجدها مسردة بالترتيب التالي: مقدمة إلى Vue.js استخدام Vue.js للتعامل مع DOM الموجهات الشرطية والتكرارية في Vue.js التعرف بالتفصيل على كائن Vue.js مدخل إلى التعامل مع المكونات في Vue.js المزيد حول المكونات في Vue.js إنشاء مشاريع Vue.js باستخدام Vue CLI التعامل مع دخل المستخدم عن طريق نماذج الإدخال في Vue.js المرشحات Filters والـمخاليط Mixins في Vue.js استخدام Vue.js للاتصال بالإنترنت بناء تطبيقات ذات صفحة واحدة باستخدام التوجيه Routing في Vue.js نشر تطبيق Vue.js إلى الإنترنت
    3 نقاط
  2. أريد أن أقوم بتعديل قيمة خاصية في صنف class من خلال نص باسم الخاصية، كالتالي: class Foo: def __init__(self): self.attr1 = True self.attr2 = False foo = Foo() x = "attr1" y = 123 كيف أقوم بتعديل الخاصية المخزنة في المتغير x بقيمة المتغير y؟
    2 نقاط
  3. يمكن عمل ذلك من خلال إنشاء مشروع Laravel جديد عبر composer، وسنلاحظ أن Laravel يدعم بشكل إفتراضي إطار العمل Vue.js، حيث توجد ملفات بصيغة vue في مجلد resources، لذلك يجب أن نقوم بتغير هذه الإعدادات عبر الأمر التالي: بالنسبة إلى Laravel الإصدار 7 وما فوق: composer require laravel/ui php artisan ui react بالنسبة إلى Laravel الإصدار 5 وما فوق: php artisan preset react بعد ذلك نقوم بتثبيت كل الحزم من خلال الأمر التالي: npm i ثم نقوم بالتعديل على ملف index.js الموجود في المجلد resources/js/component ونضيف إليه السطر التالي: require('./components/Index') ثم يمكن عمل مكونات React وإضافتها إلى DOM ونقوم بإنشاء ملف JavaScript نهائي يحتوي على كل أكواد JavaScript حتى الآن عبر الأمر التالي: npm run dev بعد ذلك يجب أن نقوم بتعديل ملفات blade التي ستعمل عبر React ونضيف إليه حاوية DOM التي سيتحكم بها React ليضيف إليها المكونات كالتالي: <div class="root"> </div> <!-- ملف جافاسكريبت النهائي --> <script src="{{ asset('js/app.js') }}"></script> كما يمكن عمل ملفات تسجيل الدخول بإستخدام React من خلال اللأمر التالي: php artisan ui react --auth
    2 نقاط
  4. السلام عليكم ورحمه الله كيف اقوم بعمل إضافة حقول في ال registration form في laravel 7 وهذه الحقول تكون selection أو checkbox تجلب بياناتها من الdb
    1 نقطة
  5. لدي قائمتين بالشكل التالي: lst1 = ['One', 'Two', 'Three', 'Four'] lst2 = ['One', 'Two'] كيف أحصل على العناصر الموجودة في القائمة الأولى وغير الموجودة في القائمة الثانية، لتكون النتيجة في النهاية: result = ['Three', 'Four']
    1 نقطة
  6. لدي ملف log تتم كتابته بواسطة عملية أخرى وأريد أن أتابع التغييرات. في كل مرة يحدث تغيير، أود قراءة البيانات الجديدة لإجراء بعض المعالجة عليها. بدلًا من قراءة الملف كاملًا، حيث أن حجم الملف يزداد مع الوقت وتستغرق عملية قراءة الملف وقت أطول كل مرة. كيف أقوم بمعرفة التغيرات التي تحدث على الملف فقط (يتم إضافة أسطر جديدة إلى الملف كل بضع ثواني)؟
    1 نقطة
  7. أحاول التطبيق على OOP ولكن عند إستخدام المعامل += يحدث أمر غير متوقع، في الكود التالي يوجد صنفين foo و foo2 وعند عمل كائن من كل صنف وإضافة قيمة إلى القائمة bar يتم إضافتها أيضًا إلى الكائن الآخر!! >>> class foo: ... bar = [] ... def __init__(self,x): ... self.bar += [x] ... >>> class foo2: ... bar = [] ... def __init__(self,x): ... self.bar = self.bar + [x] ... >>> f = foo(1) >>> g = foo(2) >>> f.bar [1, 2] >>> g.bar [1, 2] >>> f.bar += [3] >>> f.bar [1, 2, 3] >>> g.bar [1, 2, 3] لماذا أصبح الكائن g يحتوي على نفس القائمة أيضًا؟ هذه المشكلة لا تحدث إن قمت بإستخدام الطريقة العادية كالتالي: >>> f.bar = f.bar + [4] >>> f.bar [1, 2, 3, 4] >>> g.bar [1, 2, 3] >>> ما الفرق بين الطريقة الأولى والثانية؟
    1 نقطة
  8. هذه الخوارزمية تستخدم في التصنيف الثنائي ويعتمد على نظرية بايز ويفضل استخدامه عندما يكون هنالك بيانات الميزات فيها منفصلة يتم استخدامه عبر الموديول sklearn.naive_bayes. استدعاء المكتبات: from sklearn.naive_bayes import CategoricalNB في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل الشكل العام للموديل: CaNB = CategoricalNB(alpha=1.0, fit_prior=True, class_prior=None,min_categories=None) الوسيط الأول alpha هي الهدف من هذا الوسيط هو عند حساب الاحتمالات احد هذه الاحتمالات من الممكن أن يكون صفر وتجنبا لذلك يتم وضع قيمة تسمى قيمة تنعيم أو تجانس لابلاس لكي لا يكون هناك قيم صفرية.. الوسيط الثاني fit_prior تأخذ True فقط لكي تعلم الصفوف الاحتمالات السابقة false عكس ذلك . الوسيط الثالث class_prior قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف. الوسيط الرابع min_categorie يأخذ ثلاث قيم ..قيمه صحيحه تمثل الحد الأدنى لعدد الفئات لكل ميزة. ...مصفوفة من الأعداد الصحيحه تمثل كل قيمة فيها الحد الأدني لعدد الفئات لكل ميزه مقابلة ..عندما تأخذ None يحدد عدد الفئات تلقائيا من بيانات التدريب. طبعاً قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جداً فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test, تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: CaNB = CategoricalNB(alpha=1.0, fit_prior=True, class_prior=None,min_categories=None) CaNB.fit(X_train, y_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب. يوجد دالة أخرى تستخدم لغرض التنبؤ كالاتي. حساب القيم المتوقعة y_pred = CaNB.predict(X_test) نستطيع حساب دقة الموديل أو كفاءته على التدريب والاختبار عن طريق التابع score ويكون وفق الشكل. حساب الكفاءة على الاختبار والتدريب: print('CaNB Train Score is : ' , CaNB.score(X_train, y_train)) print('CaNB Test Score is : ' , CaNB.score(X_test, y_test)) لنأخذ مثال يوضح المصنف. قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف lمتعدد أما 1 أو 2 أو 0 بعد ذلك استخدمنا CategoricalNB ثم قمنا بتجريب الموديل على عينة معطاة. #استدعاء المكتبات import numpy as np from sklearn.naive_bayes import CategoricalNB #تعين داتا دخل مزيفة X = np.random.random((6, 100)) y = np.array([1, 1, 0, 2, 0, 2]) #بناء الموديل CaNB =CategoricalNB () CaNB.fit(X, y) #تصنيف عينة print(CaNB.predict(X[4:5])) #النتيجة [0]
    1 نقطة
  9. هذه الخوارزمية تستخدم في التصنيف الثنائي ويعتمد على نظرية بايز ويفضل استخدامه عندما يكون هنالك بيانات غير متوازنة أي يكون أحد الفئات له أمثلة أكثر من الفئات الأخرى كمثال أن يكون مثلا لدينا 10000 مثال يكون الخرج فيها 1 و100 مثال يكون فيها الخرج 0 و50 مثال يكون الخرج فيها 2 لذلك MultinomialNB لن يكون فعالا مثل ComplementNB في هذا الوضع. يتم استخدامه عبر الموديول sklearn.naive_bayes. استدعاء المكتبات: from sklearn.naive_bayes import ComplementNB في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل الشكل العام للموديل: CNB = ComplementNB(alpha=1.0, fit_prior=True, class_prior=None,norm=True) الوسيط الأول alpha هي الهدف من هذا الوسيط هو عند حساب الاحتمالات أحد هذه الاحتمالات من الممكن أن يكون صفر وتجنباً لذلك يتم وضع قيمة تسمى قيمة تنعيم أو تجانس لابلاس لكي لا يكون هناك قيم صفرية. الوسيط الثاني fit_prior تأخذ True فقط لكي تعلم الصفوف الاحتمالات السابقة false عكس ذلك. الوسيط الثالث class_prior قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف. الوسيط الرابع norm يكون True إذا أردنا بتطبيق التسوية على الأوزان وfalse عكس ذلك. طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جداً فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test, تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: CNB = ComplementNB(alpha=1.0, fit_prior=True, class_prior=None,norm=True) CNB.fit(X_train, y_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب. يوجد دالة أخرى تستخدم لغرض التنبؤ كالاتي حساب القيم المتوقعة: y_pred = CNB.predict(X_test) نستطيع حساب دقة الموديل أو كفاءته على التدريب والاختبار عن طريق التابع score ويكون وفق الشكل حساب الكفاءة على الاختبار والتدريب: print('CNB Train Score is : ' , CNB.score(X_train, y_train)) print('CNB Test Score is : ' , CNB.score(X_test, y_test)) لنأخذ مثال يوضح المصنف. قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف lامتعدد أما 1 أو 2 أو 3 بعد ذلك استخدمنا ComplementNB ثم قمنا بتجريب الموديل على عينة معطاة. # استدعاء المكتبات import numpy as np from sklearn.naive_bayes import ComplementNB # تعين داتا دخل مزيفة X = np.random.random((6, 100)) y = np.array([1, 1, 3, 3, 2, 2]) # بناء الموديل CNB =ComplementNB () CNB.fit(X, y) #تصنيف عينة print(CNB.predict(X[4:5])) # النتيجة [2]
    1 نقطة
  10. هل تدعم بايثون لتعبيرات الشروط المختصرة short if ؟ في لغات مثل JavaScript يمكنني فعل الآتي: condition ? exprIfTrue : exprIfFalse أريد أن أقوم بتطبيق جمل شرطية مختصرة في بايثون كذلك الأمر بالنسبة إلى الحلقات المختصرة
    1 نقطة
  11. عندما نريد تمرير عدة قيم من HTML نضع أقواس مربعة [] مع اسم الخاصية name; المثال خاص ب category.. <div class="form-group"> <label><strong>Category :</strong></label><br> <label><input type="checkbox" name="category[]" value="Laravel"> Laravel</label> <label><input type="checkbox" name="category[]" value="JQuery"> JQuery</label> <label><input type="checkbox" name="category[]" value="Bootstrap"> Bootstrap</label> <label><input type="checkbox" name="category[]" value="Codeigniter"> Codeigniter</label> <label><input type="checkbox" name="category[]" value="JQuery UI"> JQuery UI</label> </div> يمكنك ملاحظة: name="category[]" ضمن ملف التهجير، يمكن تحديد نوع القيمة ك string: <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreatePostsTable extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('category'); $table->longText('description'); $table->timestamps(); }); } } ثم في model نحدد دالة لإسناد القيمة و جلبها.. <?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = ['name','category','description']; public function setCategoryAttribute($value) { $this->attributes['category'] = json_encode($value); } public function getCategoryAttribute($value) { return $this->attributes['category'] = json_decode($value); } } حيث كما تلاحظين، نتبع العرف في التسمية في الدوال ليكون getCategoryAttribute - setCategoryAttribute ونتعامل مع المتغيرات كغرض JSON الذي يتم تخزينه كنص في قاعدة البيانات. باقِ الأجزاء تعمل بالطريقة التقليدية بدون تعديل فقط تم الاعتماد على الدالتين ضمن model لعمل طبقة وسيطة و تقوم باتحويل ل JSON.
    1 نقطة
  12. يمكننا القيام بذلك باستخدام الكلاس OneHotEncoder الموجود في الموديول preprocessing. المثال التالي يوضح لك كل العملية: حيث أن التابع fit_transform نمرر له الداتا وهو يقوم بعملية ال fitting (الترميز هنا) ثم transform (تطبيق الترميز على البيانات-التحويل-). طبعاً يتم تمثيل كل كلمة بشعاع طوله بعدد المفردات الفريدة التي وجدها import numpy as np from sklearn.preprocessing import OneHotEncoder # تعريف بيانات data = np.asarray([['first'], ['second'], ['third'],['second']]) print(data) ''' [['first'] ['second'] ['third'] ['second']] ''' # OneHotEncoder تعريف كائن من الكلاس enc = OneHotEncoder(sparse=False) #One-Hot-Encoding تحويل الداتا إلى ترميز OneHotEncoding = enc.fit_transform(data) print(OneHotEncoding) ''' [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.] [0. 1. 0.]] '''
    1 نقطة
  13. التوابع في مكتبة Sklearn تتعامل مع المصفوفات (numpy arrays) لذا يجب أن تقوم دوماً بتحويل بياناتك إلى numpy arrays قبل أن تدخلها في توابع وكلاسات مكتبة Sklearn. للتحويل نستخدم التابع ()to_numpy كالتالي: X=df['size'].to_numpy() Y=df['class'].to_numpy() # ثم قد يتطلب منك الأمر إعادة تعيين أبعادها X=X.reshape(-1,n)# يحيث أن الوسيط الثاني سوف يمثل عدد الميزات
    1 نقطة
  14. البطاقات مسبقة الدفع غير مقبولة ,للدفع بها لفتح حساب مطور, يمكنك التأكد من المعلومة من الموقع الرسمي طرق الدفع الخاصة بتسجيل حساب المطور هي كتالي: يمكنك الدفع مقابل تسجيل حساب مطور Google الخاص بك بواسطة بطاقات الإتئتمان التي تحمل الشعارات التالية: Mastercard Visa American Express Discover (United States only) Visa Electron (outside of the United States) الحل هو أن تطلب من البنك الخاص بك تزويدك ببطاقة صالحة للدفع و الشراء عبر الأنترنت بشعار visa أو Mastercard تأكد أنها ليست من نوع Prepaid cards
    1 نقطة
  15. هناك عدة قواعد يجب إحترامها عند كتابة أكواد HTML CSS و Sass أولا لنبدء ب HTML, لكتابة كود HTML نظيف يجب عليك : 1- كتابة الكود بجدية : أهم شيء تحتاجه لكتابة كود جيد هو رغبتك في فعل الأشياء بشكل صحيح. تعد كتابة كود HTML نظيفًا أمرًا سهلاً ، ولكن عليك أن تهتم وتولي الكثير من الاهتمام. وعدم التسرع في كتابة الشيفرات 2- إحترام مسافة البداية Indent : الكود ذي المسافة البادئة أسهل في القراءة ، وأسهل في الفهم ، وأسهل في التعديل ، وأسهل في الصيانة. ما عليك سوى إلقاء نظرة على مدى صعوبة فهم العلاقات بين الأب والطفل بين العناصر عندما لا يتم وضع مسافة بادئة للشفرة بشكل صحيح. 3- عدم المبالغة في إستخدام عناصر DIV: Divitis هو اسم مضحك لمشكلة شائعة في HTML. غالبًا ما نفرط في استخدام divs ، ويرجع ذلك أساسًا إلى أننا نريد التفاف واستهداف جميع عناصر التصميم في CSS. ثم ينتهي بنا الأمر بالحصول على قائمة أبدية من divs غير الضرورية تمامًا 4- تجنب التعليقات: HTML ليست لغة برمجة ، والتعليقات ليست ضرورية لأن ترميز HTML لا يحتاج إلى شرح. إذا وجدت نفسك تعلق على HTML كثيرًا ، فيجب عليك مراجعة مرجع عناصر HTML 5- كتابة أسماء الأقسام classes بشكل واضح: استخدم أسماء ذات معنى لمعرفاتك وفئاتك. يجب أن تكون قصيرة ووصفية وتمثل مفهومًا واحدًا فقط. سيجعل HTML الخاص بك أكثر وضوحًا وعملية التصميم أسهل أما بالنسبة ل CSS: 1- تسمية العناصر بذكاء يجب أن يكون اسم المحدد وصفيًا ذاتيًا وقابل للقراءة هناك العديد من اصطلاحات التسمية التي يمكنك استخدامها في مشروعك . 2- "لا تكرر نفسك" يرمز DRY إلى "لا تكرر نفسك". كما يمكننا أن نفهم من اسمها ، تهدف DRY إلى تجنب التكرار قدر الإمكان , يعني إدا كنت تحتاج نفس الكود في مناطق مختلفة في المشروع يمكنك وضعه على شكل قسم وإستعماله متى أردت ذلك 3- تجنب إستعمال important ! تتميز العلامة important! بأعلى درجة خصوصية لجميع محددات CSS. إذا كنت بحاجة إلى تجاوز علامة important! ، فعليك استخدام علامة important! أخرى. وهذا يجعلك تستخدم المزيد والمزيد من العلامات important! . مما يجعل صيانة شفرة CSS الخاصة بك أكثر صعوبة. 4- لا تستخدم الأنماط المضمنة وفقًا لمبدأ فصل الاهتمامات ، يجب فصل CSS و HTML لأسباب مثل سهولة القراءة والصيانة. 5- كن متسقا لا تتعلق كتابة كود HTML النظيف دائمًا باختيار الممارسات الجيدة وتجنب الممارسات السيئة. في كثير من الأحيان يمكنك استخدام طرق مختلفة لكتابة نفس سطر التعليمات البرمجية أما فيما يتعلق ب scss فيجب عليك 1- إنشاء المكونات تحدد بنية الملف واستراتيجية عملية التطوير المستقبلية ، خاصةً إذا كان تطبيقك ينمو وكنت تعمل مع فريق فكتابة المكونات سيسهل عليك المهمة 2- استخدم المتغيرات و mixins المحلية المتغيرات والخلطات عالمية في Sass. إذا قمت بتعريف $primary-color مرة واحدة ، يمكنك استخدام القيمة في أي مكان. هذا ليس بالشيء الجيد دائمًا. على سبيل المثال: لديك قيمة ثابتة (مثل الارتفاع الثابت) ، ولا تستخدمها إلا للمكون والعناصر التابعة له. سيكون الخيار الأول (وليس الخيار الفعال) هو ترميز القيمة عدة مرات ، بالإضافة إلى خيار آخر ، لإنشاء متغير عام. قد يؤدي هذا الأسلوب لاحقًا إلى تضخيم قائمة المتغيرات العامة الخاصة بك برمز محدد للغاية. 3- استخدم maps أو القوائم maps هي متغيرات Sass تشبه الكائنات. نستخدمها لقيم التخطيط العالمية ، ، وقيم التكوين العالمية الأخرى. قد تسأل ، "لماذا maps وليس المتغيرات العادية؟" على الرغم من أن استخدام متغير أسهل بكثير من جلب قيمة من map ، فإن النقطة الأساسية هي سهولة القراءة. maps عبارة عن كائن بمظهر JSON مع إمكانية تداخل القيم. بدلاً من قائمة طويلة من المتغيرات العامة (التي ليس من السهل قراءتها) 4- حلقة الأشياء المتكررة باستخدام for and @each@ ، يمكنك تحقيق رمز نظيف للغاية ويمكن صيانته بسهولة.
    1 نقطة
  16. يجب علينا أولاً ذكر الفروقات المهمة لتحديد ذلك ++C تُدير الذاكرة يدوياً بإستخدام المؤشرات بينما في JS لا ، لذلك ++C أسرع وأفضل في إدارة الموارد ++C يجب عليك تحديد نوع المتغيرات Static type بينما في JS لا تحدد نوع المتغيرات لهذا ليست جيدة في إدارة موارد الذاكرة ++C تعتبر لغة Compiled يجب تحويلها قبل تشغيلها بينما JS تعتبر لغة interpreted بحيث يتم قراءة الكود وتحويله وتشغيله في نفس الوقت وهذا يجعلها أبطئ بكثير من لغة ++C ++C تعتبر multi-threaded بحيث تستطيع إستعمال عدة تعليمات أو threads في نفس الوقت بينما JS تعتبر single-threaded بحيث يتم تشغيل الكود أو التعليمات واحد بعد واحد ولا يتم تشغيل الآخر قبل الإنتهاء من السابق ويمكنك تغيير ذلك بالبرمجة المتزامنة لغة C و ++C تعتبر أم اللغات الحديثة ولغة JS من اللغات الناشئة منها فيمكنك تعلم أساسيات البرمجة من JS فقط ولكن كما ترى هناك العديد من المواضيع المهمة في لغة ++C وايضاً بناءً على المجال الذي تريد الدخول فيه تختار اللغة الذي تبداء بها فإذا أردت برمجة البرامجة الثقيلة وبرمجة الأنظمة فعليك البدء ب ++C ومن بعدها يمكنك تعلم أي لغة حديثة أخرى بكل سرعة وسهولة أما إذا أردت الذهاب الى برمجة الويب فقط فيمكنك الذهاب الى JS مباشرةً
    1 نقطة
  17. إن backslash محجوزة في بايثون وتستخدم لإجراء escape من بعض الإشارات المميزة في السلاسل النصية مثل إضافة سطر جديد (\n) أو مسافة (\t)،... إلخ. وعند كتابة خط مائل واحد، يقوم Python lexical analyser بدلاً من إظهار خطأ بإضافة خط مائل آخر للنص لتجنّب هذا الخطأ في السلسلة النصية. ولكن لايتم إضافتها فعلياً لقيمة المتغيّر وإنما يتم إظهارها بهذا الشكل فقط في البيئة، أما إذا قمت بالطباعة فسيتم معالجتها بشكل مختلف. فإذا أردت إضافة backslash ضمن السلسلة النصية لديك يجب أن تقوم بكتابة خط مائل آخر backslash فتصبح بصورة مزدوجة كالتالي: x = "hello, \\world" وفي الطباعة print("\\") أو print "\\"
    1 نقطة
  18. يمكنك عمل ذلك من خلال استخدام yield كالتالي def read_in_chunks(file_object, chunk_size=1024): while True: data = file_object.read(chunk_size)#يمكننا تحديد الحجم المطلوب قرائته chunk_size باستخدام المعامل if not data: break yield data with open('really_big_file.dat') as f: for piece in read_in_chunks(f): process_data(piece) تقوم yield بإكمال العمل بدلاً من البداية من الصفر فلن تقوم بقراءة الملف من البداية بل تكمل من حيث توقفت
    1 نقطة
  19. يمكنك إستخدام هذا الكود url="https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv" # رابط الملف response = requests.get(url, stream = True) text_file = open("data.txt","wb") # إنشاء الملف المحلي for chunk in response.iter_content(chunk_size=1024): text_file.write(chunk) #كتابة جزء في الملف حتى إكمال الملف text_file.close() # إغلاق الملف
    1 نقطة
  20. لدي طريقة أخرى جميلة للقيام بذلك سأشاركها، تعتمد على عكس القاموس أي نجعل القيم مفاتيح والعكس. نعرف تابع يقبل قاموس d وقيمة val ثم يقوم بعكس هذا القاموس (جعل القيم مفاتيح والمفاتيح قيم) ثم يبحث في القاموس الجديد عن القيمة val بالطريقة الاعتيادية ويردها لنا كالتالي: # نعرف تابع يقوم بالمطلوب def get_keys_from_value(d, val): reverse_dict = dict([(value, key) for key, value in d.items()]) # نجعل المفاتيح قيم والقيم مفاتيح return reverse_dict[val] # تعريف القاموس your_dict={'Adam': 18, 'Ebrahim' : 19} # البحث عن طريق التابع الذي عرفناه print(get_keys_from_value(your_dict, 18)) # Adam
    1 نقطة
  21. الكود الذي تستخدمه غير واضح بالنسبة لي ولكن لفهم لماذا لم يتم التفيذ حسب الترتيب يجب عليك التعرف على الاولوية بالنسبة للمحددات في الcss : الinline style و هو أعلى مراحل الخصوصية <p style="background:blue">Hellow world</p> الID <style> #any{ background:blue; } </style> <p id="any">hello world</p> الclasses <style> .any{ background:blue; } </style> <p class="any">hello world</p> اسماء العناصر نفسها <style> p{ background:blue; } </style> <p>hello world</p> ولفهم الأمر أكثر دعنا نقم بتجربة وضع جميع هذه المحددات بقيم مختلفة ونرى ايها سيتم تنفيذه <style> #any { background: purple; } .any { background: black; } p { background: blue; } </style> <p id="any" class="any" style="background-color: yellow;">hello world</p> حسناً ستكون الخلفية صفراء لأن الinline style له خصوصية أعلى من باقي المحددات . ولكن إن كان هنالك important فإن المحدد الذي يحتوي على الimportant هو الذي سينفذ <style> #any { background: purple!important; } .any { background: black; } p { background: blue; } </style> <p id="any" class="any" style="background-color: yellow;">hello world</p> وبالقياس على الحالة التي تسأل عنها فإن الtow. لن يتم تنفيذه لأن اسم العنصر الذي يسبقه "div" لديه اولوية اعلى منه.
    1 نقطة
  22. هناك أكثر من قاعدة لترتيب الأولويات في CSS وليس فقط ترتيب الأسطر في ملف CSS، فعندما يتم وضع خاصية CSS لعنصر ما أكثر من مرة -كما في السؤال- يتم ترتيب أولوية الخواص حسب أي خاصية هي الأكثر تحديدًا للعنصر، وهذا حسب موقع W3: وهنا مثال للتوضيح: <style> div .box { color: green } .two { color: red } </style> <div> <div class="box">One</div> <div class="box two">Two</div> <div class="box">Three</div> <div class="box">Four</div> </div> المثال السابق سيظهر كل العناصر باللون الأخضر (حتى العنصر two) وذلك لأن div .box تقوم بتحديد العنصر بشكل أكثر تفصيلًا (بعبارة أخرى العنصر محدد أكثر). أما إن أردت أن يتم تطبيق الخاصية الثانية (two.) فيمكن ذلك بأكثر من طريقة منها إستخدام id بدلًا من class بالشكل التالي: <style> div .box { color: green } #two { color: red } </style> <div> <div class="box">One</div> <div class="box" id="two">Two</div> <div class="box">Three</div> <div class="box">Four</div> </div> المثال السابق سوف يظهر العنصر two بلون أحمر وباقي العناصر يتظل خضراء كما هي: أو يمكنك جعل العنصر محدد أكثر من بإستخدام div.two بدلًا من .two فقط، أو يمكنك إستخدام جملة !important في مثل هذه الحالات. يمكنك أن تطبق نفس الأمثلة السابقة في مشروعك وستظهر لديك نفس النتيجة. بالتوفيق، تحياتي.
    1 نقطة
  23. يجب أن يحتوي مشروعك على ملفين لكي يعمل هذا الأمر وهما: resources/sass/_variables.scss resources/js/bootstrap.js الملف الأول موجود مسبقًا في مشروعك، لذلك عليك إنشاء الملف الثاني فارغًا، وبمجرد إضافة هذا الملف سيعمل كل شيء معك بشكل سليم بالنسبة للأمر php artisan ui bootstrap لكنك ستواجهة مشكلة أخرى عند تشغيل الأمر npm run dev وذلك لأن لا يوجد ملف resources/js/app.js لذلك عليك إضافته بنفس طريقة إضافة الملف resources/js/bootstrap.js (مجرد ملف فارغ سيفي بالغرض). بالتوفيق.
    1 نقطة
  24. للأسف تطلع لي أخطاء , أتمنى حلها لي لأني طولت فيها , ممكن تطلعون على الملف المضغوط للتأكد project.zip
    1 نقطة
  25. يقوم لارافيل بفصل ملفات CSS و JavaScript في جزمة منفصلة laravel/ui، لكي يتم تثبيتها عند الحاجة لها فقط، ويمكن تثبيت هذه الحزمة عن طريق الأمر التالي كما وضح الأستاذ @بلال زيادة composer require laravel/ui:^2.4 بعد تثبيت الحزمة يجب أن يتم إستخراج ملفات CSS و JavaScript منها إلى مجلد المشروع نفسه وذلك عن طريق الأمر // في حالة إستخدام Bootstrap php artisan ui bootstrap // في حالة عمل تطبيق ب Vue.js php artisan ui vue // في حالة عمل تطبيق React.js php artisan ui react // لتوليد ملفات login / registration يتم إضافة --auth للأمر php artisan ui bootstrap --auth php artisan ui vue --auth php artisan ui react --auth بعد تنفيذ الأمر السابق يجب تثبيت كل الحزم الموجودة في ملف package.json عن طريق الأمر npm i بمجرد إنتهاء الأمر السابق يمكن تحويل ملفات SCSS إلى CSS وتجميعها في ملف واحد وهو public/css/app.css، ونفس الشيء بالنسبة لملفات js عن طريق تنفيذ الأمر: npm run dev لاحظ أن ملف public/css/app.css ,وملف public/js/app.js لن يكونا مضغوطين وستظهر أي أخطاء js في الـ console لتسهل عملية التطوير، لكن بعد الإنتهاء من المشروع يجب ضغط هذه الملفات وإخفاء كل رسائل الخطأ عن طريق تنفيذ الأمر: npm run prod بالتوفيق.
    1 نقطة
  26. يوجد الكثير من الأماكن التي يتجمع فيها المبدعين والمصممين المتميزين، ومنها المواقع المتخصصة في ذلك مثل behance و dribbble و deviantart وغيرها الكثير. وفي كل موقع من هذه المواقع يوجد العديد من التصنيفات (موسن جرافيك - web design - UI/UX - fan arts - إلخ). بالإضافة إلى المواقع السابقة يوجد أيضًا مجموعات الفيسبوك المتخصصة والتي يكون بها تفاعل كبير (حسب المجموعة وعدد الأعضاء المتفاعلين). ولكي تزيدي من مستوى إحترافك يجب أن تقارني كل عمل من أعمالك لأعمال المحترفين من وجهة نظرك وتبحثين عن مناطق القوة والضعف وتحاولي تحسينها أكثر فأكثر حتى تكوني راضية عن المستوى الذي وصلتي له. كما أن متابعة أحداث المجال الذي تتخصصين فيه سيكون له أثر إجابي كبير على طريقة تعلمك والمصادر التي تتعليم منها. بالتوفيق.
    1 نقطة
×
×
  • أضف...