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

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

  1. Ali Haidar Ahmad

    Ali Haidar Ahmad

    الأعضاء


    • نقاط

      6

    • المساهمات

      1068


  2. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      5

    • المساهمات

      6975


  3. عبدالله عبدالرحمن11

    • نقاط

      5

    • المساهمات

      526


  4. علي الكاسر

    علي الكاسر

    الأعضاء


    • نقاط

      3

    • المساهمات

      192


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

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

  1. شفت كثير مواقع تقدر تشغل مقاطع من اليوتيوب على صفحاتها فكيف يفعلون ذلك
    2 نقاط
  2. اريد انشيء موقع جديد ، وبها لغة غير العربي و الانجليزي ، هل اريد ان اتوظف مترجم لهاي اللغة او بس انشيء الموقع على هاي اللغة كافي ؟؟
    1 نقطة
  3. السلام عليكم انا استخدم تقنية اجاكس لجلب المعلومات من السيرفر، ولكن لابد لي من استخدام php بين اكوادhtml فكيف استغني عن امواد php داخل اكواد html خاصة فيما يتعلق بأظهار وأخفاء بعض العناصر حسب رتبة الاعضاء. هل استخدم الكوكيز تبع جافا سكربت وهل هي امنه، وفي هذه الحاله هل استغني عن الجلسه في php او استخدمهم معا، السؤال كيف المبرمجين يتعاملوا مع هذا الامر ارجو الاجابه وشكرا
    1 نقطة
  4. انا استطيع فتح الخريطة ووضع الماركر عليها ولكنى الان اريد ان احرك الماركر واضعه فى المكان الذى قمت بالضغط عليه فى الخريطة .. كيف افعل ذلك ؟؟ هذا هو الكود import React from 'react'; import {StyleSheet, View, Text, Image, Button} from 'react-native'; import MapView, {Callout, Marker} from 'react-native-maps'; const BasicMapViewEX = () => { const region = { latitude: 37.78825, longitude: -122.4324, latitudeDelta: 0.015, longitudeDelta: 0.0121, }; const [Location, setLocation] = React.useState(region); const [MarkerLocation, setMarkerLocation] = React.useState(region); function handleRegionChange(region) { setLocation(region); setMarkerLocation(region); } return ( <View> <MapView onRegionChangeComplete={handleRegionChange} initialRegion={region} style={styles.map} region={Location}> <Marker coordinate={MarkerLocation} image={require('./map_marker.png')} style={styles.image} // title="my location" // description="here am i" > <Callout tooltip> <View> <View style={styles.bubble}> <Text style={styles.name}>"my location"</Text> <Text style={styles}>Desc</Text> <Image style={styles.image} height={120} width={80} source={require('./map_marker.png')} /> </View> <View style={styles.arrowBorder} /> <View style={styles.arrow} /> </View> </Callout> </Marker> </MapView> </View> ); }; const styles = StyleSheet.create({ map: { height: '100%', }, bubble: { flexDirection: 'column', alignSelf: 'flex-start', backgroundColor: '#fff', borderRadius: 6, borderColor: '#ccc', borderWidth: 0.5, padding: 15, width: 150, }, arrow: { backgroundColor: 'transparent', borderColor: 'transparent', borderTopColor: '#fff', borderWidth: 16, alignSelf: 'center', marginTop: -32, }, arrowBorder: { backgroundColor: 'transparent', borderColor: 'transparent', borderTopColor: '#007a87', borderWidth: 16, alignSelf: 'center', marginTop: -0.5, }, name: { fontSize: 16, marginBottom: 5, }, image: { width: 120, height: 80, backgroundColor: 'red', }, }); export default BasicMapViewEX;
    1 نقطة
  5. كنصيحة يفضل استخدامه عندما يكون هنالك بيانات منفصلة أي الميزات features تكون مستقلة لا يتعلق حدوث الميزة الأولى بالاخرى مثل عمر الشخص و درجته في مادة الرياضيات على سبيل المثال. يتم استخدامه عبر الموديول: sklearn.naive_bayes استدعاء المكتبات: from sklearn.naive_bayes import MultinomialNB في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل. الشكل العام للموديل: MNB = MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None) الوسيط الأول alpha هي الهدف من هذا الوسيط هو عند حساب الاحتمالات احد هذه الاحتمالات من الممكن أن يكون صفر وتجنبا لذلك يتم وضع قيمة تسمى قيمة تنعيم أو تجانس لابلاس لكي لا يكون هناك قيم صفرية. الوسيط الثاني fit_prior تأخذ True فقط لكي تعلم الصفوف الاحتمالات السابقه false عكس ذلك. الوسيط الثالث class_prior قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test, تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: MNB = MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None) MNB.fit(X_train, y_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب. حساب القيم المتوقعة: y_pred = MNB.predict(X_test) حساب الكفاءه على الاختبار والتدريب: print('MNB Train Score is : ' , MNB.score(X_train, y_train)) print('MNB Test Score is : ' , MNB.score(X_test, y_test)) لنأخذ مثال يوضح المصنف. قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف ثنائي أما 1 أو 0. ثم قمنا بتجريب الموديل على عينة معطاة. #استدعاء المكتبات import numpy as np from sklearn.naive_bayes import MultinomialNB #تعين داتا دخل مزيفة X = np.random.random((6, 100)) y = np.array([1, 0, 1, 0, 1, 0]) #بناء الموديل MNB =MultinomialNB () MNB.fit(X, Y) #تصنيف عينة print(MNB.predict(X[3:4])) #النتيجة #[1]
    1 نقطة
  6. لتشغيل فيديو يوتيوب، نقوم بعملية تضمين لشيفرة برمجية من رابط الفيديو الهدف تدعى الطريقة Embed videos. افتح فيديو اليوتيوب الذي تريده اضغط على مشاركة اضغط على تضمين أو Embed انسخ شيفرة HTML والصقها في موقعك مثال للشيفرة المنسوخة: <iframe width="560" height="315" src="https://www.youtube.com/embed/U3axpYKzyos" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen> </iframe>
    1 نقطة
  7. بداية كنصيحة للحصول على نتائج أفضل: يفضل استخدام هذه الخوارزمية عندما تكون الداتا متوزعة توزعاً طبيعياً، وهذه الخوارزمية تعتمد على نظرية بايز في الاحتمالات. يتم استخدامه عبر الموديول sklearn.naive_bayes.GaussianNB استدعاء المكتبات: from sklearn.naive_bayes import GaussianNB في البداية قمنا باستدعاء المكتبة التي يوجد فيها هذا الموديل الشكل العام للموديل: GNB = GaussianNB(priors=None, var_smoothing=1e-09) الوسيط الأول priors قيم الاحتمالات للصفوف أي تساوي عدد الصفوف يمكن تمريرها كمصفوفة تحوي الاحتمال لكل صف الوسيط الثاني var_smoothing عندما يعمل GaussianNB كمرشح تمرير منخفض فأنه يقوم بأخذ القيم القريبه من وسط المنحني الغاوصي لذلك هذا الوسيط يؤدي إى توسيع المنحني وبتالي نستطيع أخذ القيم البعيده طبعا قمت بشرح الشكل العام للموديل ولكن عن طريقة استخدامه سهل جدا فقط بعد أن تقوم بتقسيم الداتا إلى X_train, X_test, تسطيع كتابة الأتي لعملية التدريب. الشكل العام للموديل: GNB = GaussianNB(priors=None, var_smoothing=1e-09) GNB.fit(X_train, y_train) حيث الدالة fit يوجد ضمنها جميع العمليات الداخلية لعملية التدريب . حساب القيم المتوقعة: y_pred = GNB.predict(X_test) نستطيع حساب دقة الموديل أو كفاءته على التدريب والاختبار عن طريق التابع score ويكون وفق الشكل: print('GNB Train Score is : ' , GNB.score(X_train, y_train)) print('GNB Test Score is : ' , GNB.score(X_test, y_test)) لنأخذ مثال يوضح المصنف.قمنا باستدعاء المكتبات وبناء عينة مزيفة وكان التصنيف ثنائي أما 1 أو 0 بعد ذلك استخدمنا GaussianNB ثم قمنا بتجريب الموديل على عينة معطاة: #استدعاء المكتبات import numpy as np from sklearn.naive_bayes import GaussianNB #تعين داتا دخل مزيفة X = np.array([[1, 1], [2, 1], [3, -2], [-1, -1], [4, 1], [-5, 2]]) Y = np.array([0, 1, 0, 1, 0, 1]) #يناء الموديل GNB = GaussianNB() GNB.fit(X, Y) #تصنيف عينة print(GNB.predict([[-0.8, -1]])) #النتيجة #[1]
    1 نقطة
  8. الفرق بين focus و set-current-module?
    1 نقطة
  9. set-current-module تستخدم للانتقال إلى فرع آخر من البرنامج. تعليمة focus تقوم بنقل التنفيذ إلى فرع آخر أيضاً من البرنامج ويمكن أن تكتب ضمن action لقاعدة أو ضمن ال main. الفرق بين تعليمة focus و set current module أن focus تبدأ بتنفيذ القواعد الموجودة في WM أما set current module تقوم فقط بإضافة القواعد ولا تبدأ بالتنفيذ، وهذا هو الفرق الأساسي. افتراضياً focus و set-current-module يكونان على MAIN.
    1 نقطة
  10. انشاء two methods a. الاولى new-person() وتعمل هذه الدالة على قراءة جميع attributes person في حال per_name='' اما ان كان per_name !='' لا يتم ادخال الاسم ويتم ادخال باقي البيانات في الحالتين b. الثانية show() وتعمل هذه الدالة على طباعة جميع attributes person على الشاشة
    1 نقطة
  11. المشكلة في ترتيبك للمخرجات التي يردها التابع train_test_split. الخطأ يظهر عندما تحاول القيام ب fitting على البيانات. ec1 = ec1.fit(X_train, y_train) ولحل المشكلة يجب التقيد بترتيب مخرجات التابع train_test_split وهي كالتالي: X_train, y_train, X_test, y_test الكود بعد الإصلاح: #استيراد المكتبات import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.ensemble import RandomForestClassifier, VotingClassifier from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split #تحميل البيانات data = load_breast_cancer().data labels = load_breast_cancer().target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True) c1 = LogisticRegression(multi_class='multinomial', random_state=1) c2 = RandomForestClassifier(n_estimators=50, random_state=1) c3 = GaussianNB() ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard') ec1 = ec1.fit(X_train, y_train) print(ec1.score(X_test,y_test))#0.9385964912280702
    1 نقطة
  12. مرحبا ثائر، يمكنك اتباع الشرح الموجود في هذا الرابط: كيف أتواصل مع المدرّبين المهم طرح سؤال واضح مع إرفاق ما يدل على المشكلة بشكل واضح
    1 نقطة
  13. هي طريقة أكثر ترتيباً وسهولة إذا كنت دقيقاً في التعامل معها لإنجاز مشاريعك. فمثلاً في الكود التالي قمت ببناء نموذج بسيط واستخدمت فيه ال Pipeline. وهي أداة نمرر لها خطوات الخوارزمية ثم تقوم هي بتنفيذها. يمكنك استخدامها عبر الموديول: pipeline.Pipeline إليك المثال التالي: from sklearn.linear_model import LogisticRegression from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.pipeline import Pipeline from sklearn.metrics import confusion_matrix,accuracy_score, classification_report from sklearn.model_selection import train_test_split from sklearn.datasets import load_boston from sklearn.ensemble import RandomForestRegressor from sklearn.preprocessing import PolynomialFeatures from sklearn.preprocessing import StandardScaler # تحميل الداتا BostonData = load_boston() data = BostonData.data labels = BostonData.target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, shuffle =True, random_state=2021) # الخطوات المراد تنفيذها نعرفها بالشكل التالي ضمن قاموس steps = [ ('step1', StandardScaler()), ('step2', PolynomialFeatures(degree=2)), ('model', RandomForestRegressor()) ] # pipeline نقوم بإنشاء pipe = Pipeline(steps) pipe.fit(X_test,y_test) # مرحلة التقييم prediction = pipe.predict(X_test) pipe.score(X_test,y_test) # 0.9637792975442071 أو بالشكل التالي باستخدام الكلاس make_pipeline من نفس الموديول pipeline كالتالي: from sklearn.linear_model import LogisticRegression from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.pipeline import make_pipeline from sklearn.metrics import confusion_matrix,accuracy_score, classification_report from sklearn.model_selection import train_test_split import pandas as pd # نقوم بتحميل الداتا Data = pd.read_csv('D:/train.csv') Data['Tweet'] =Data['Tweet'].astype(str) Data['Class'].replace({"abusive":0,"hate":0,"normal":1},inplace=True) data = Data['Tweet'] label = Data["Class"] # تقسيم الداتا X_train, X_test, Y_train, Y_test = train_test_split(data, label, test_size = 0.2, random_state = 2021) # pipeline نقوم بإنشاء pipe = make_pipeline(TfidfVectorizer(),LogisticRegression()) # نضع داخله الخطوات التي نريدها بشكل متتالي pipe.fit(X_train,Y_train) # مرحلة التقييم prediction = pipe.predict(X_test) print(f"Accuracy score is {accuracy_score(prediction, Y_test):.2f}") print(classification_report(prediction, Y_test))
    1 نقطة
  14. شهادة SSL تستخدم للخادم الخاص بك فقط وفي حالتك خادم Ubuntu لكي يكون الاتصال بين الخادم الخاص بك والعميل إتصال HTTPS أي يكون الاتصال مشفر والبيانات التي يتم تبدالها بين الخادم والعميل تكون مشفرة ولايمكن لأي مخترق فك تشفير البيانات ، لذلك الشهادة هي للخادم فقط اما اسم النطاق فلا تحتاج لذلك لان عمله الوحيد هو تحويل المستخدمين من العنوان السهل القراءة والحفظ وتحويله الى عنوان الخادم الرقمي الصعب القراءة والحفظ على سبيل المثال عندما تقوم بكتابة facebook.com سيتم تحويلك مباشرة الى عنوان الخادم الرئيسي 157.240.195.35 فكما ترى اسم النطاق يقوم بالتحويل فقط
    1 نقطة
  15. إذن يجب عليك الذهاب للدرس الخاص بهذا السؤال ودراسته من جديد
    1 نقطة
  16. يجب عليك طرح السؤال في الدرس الذي واجتهك المشكلة فيه لكي يتم حل مشكلتك
    1 نقطة
  17. يمكنك أيضاً، @Meezo ML، حفظ النموذج بعد تدريبه على البيانات بإستخدام عملية pickling والتي تحول اي Object في بايثون إلى مجموعة من الBytes المهيكلة، لاحقاً يتم تحويل هذه البيانات المخزنة في شكل Bytes إلى نموذج مرة أخرى. عملية حفظ النموذج model تتم كالتالي: filename = 'model.sav' pickle.dump(model, open(filename, 'wb')) حيث ان model في البرنامج السابق يرمز للنموذج المدرب، و الدالة dump هي المسؤولة عن تحويل النموذج الى شكل بيانات قابلة للتخزين و هي تأخذ 3 قيم، الأولى النموذج المراد حفظه (أو اي Object اخر في بايثون)، ثم إسم الملف الذي تريد التخزين فيه (بالإضافة للمسار إن كنت تريد حفظه في مجلد غير المجلد الذي تطبق فيه البرنامج)، متبوعاً بطريقة الكتابة في الملف وهي في هذه الحالة wb وهي إختصار ل write binary والتي تعني فتح الملف و الكتابة فيه بBytes. لا تنسى أن تقوم بعملية تحميل مكتبة pickle في البداية كالتالي: import pickle و الان لنقوم بعملية تحميل النموذج مرة أخرى يمكننا ذلك بإستخدام دالة load المتوفرة في مكتبة pickle أيضاً كالتالي: loaded_model = pickle.load(open(filename, 'rb')) لقد قمنا بإستخدام طريقة rb لقراءة الملف المحفوظ و هي إختصار ل read bytes. بذلك يكون النموذج تم تحميله في ال Object المسمى ب loaded_model، يمكننا إستخدام loaded_model في اي عمليات تقييم أخرى قد نحتاجها.
    1 نقطة
  18. المشكلة هي أنك تقوم بإستخدام Webview وقد تم إزالته من React Native وأصبحت حزمة منفصلة ويجب عليك تثبيت هذه الحزمة المنفصلة كالآتي npm i react-native-webview ومن ثم إستدعاء الحزمة كالآتي import { WebView } from 'react-native-webview'; وإستخدامها كالآتي class MyWebComponent extends Component { render() { return <WebView source={{ uri: 'https://reactnative.dev/' }} />; } }
    1 نقطة
  19. هناك عدة طرق لكسب المال باستخدام مدونتك الخاصة. يوجد العديد من نماذج الأعمال التجارية المختلفة عبر الإنترنت والاستراتيجيات الشائعة لتوليد الدخل من خلال مدونتك أشهرها: - الإعلانات : يمكن أن يوفر لك الإعلان في موقعك مصدر دخل جيد من المحتوى الخاص بك على الإنترنت. المعلنون على استعداد للدفع لضمان ظهور إعلاناتهم لجمهورك. بنفس الطريقة التي يمكن أن تكون بها الصحيفة ذات الشهرة الكبيرة الكبيرة أكثر تكلفة للمعلنين ، فكلما زادت شعبية موقعك ومحتواك ، زادت الإيرادات التي يمكنك تحقيقها. - التسويق بالعمولة : ويوجد أيضا مايسما بالتسويق بالعمولة, يتضمن التسويق بالعمولة إرفاق المحتوى الخاص بك برابط لمنتج أو خدمة يبعها موقع آخر. عندما ينقر شخص ما على الرابط المتاح في صفحتك ، ويذهب إلى موقع الشركة التابعة ، ويشتري المنتج الذي أوصيت به ، فإنك تحصل على عمولة على البيع. - عروض المنتجات المادية أو الرقمية : لتحقيق الدخل من مدونتهم ، يقوم العديد من المدونين بتأسيس وجودهم على منصة التجارة الإلكترونية ، وإنشاء متجر على الإنترنت ، والبدء في بيع المنتجات ، سواء كانت مادية أو رقمية. على سبيل المثال ، في مدونة سفر ، يمكنك بيع قمصان عليها شعارك أو أدلة سفر رقمية إلى وجهات متعديدة. - الاشتراكات : إذا كان لدى مدونتك مجتمع يتوق لمعرفة المزيد حول الموضوع الذي تناقشه ، فإن نظام الاشتراك المدفوع هو طريقة أخرى لتوليد دخل طويل الأجل من المحتوى المفيد الخاص بك. - التدريب : إذا كانت مدونتك تقدم خدمات تدريبية ، فيمكنك كسب المال من خلال تقديم دورات عبر الإنترنت أو برامج تدريب مدفوعة الأجر.
    1 نقطة
  20. لمعرفة عدد العناصر ضمن المدس يكننا استدعاء التابع size للمكدس الذي تم تعريفه: // تعيف مكدس stack<int> mystack; // إضافة عناضر باستخدام push mystack.push(1); mystack.push(8); mystack.push(6); // أضفنا العناصر 1, 8, 6 cout << mystack.size(); // 3 ضمن المكدس، لايمكننا الوصول إلا للعنصر الذي في القمة (أعلى المكدس) باستخدام التابع top. لكي نقوم بحساب تكرار العناصر أو طباعة جميع العناصر، يتوجب علينا تفريغ المكدس لكي نستطيع المرور على جميع العناصر. ____ تكرار العناصر، يتوجب بناء بنية معطيات تمكننا من عد العناصر، مثل مصفوفة أو Map: يمكن حساب التكرار للعناصر قبل إضافتها للمكدس، ويمكن كتابة دالة لإنقاض التكرارات بنفس الطريقة. #include<bits/stdc++.h> using namespace std; // حساب التكرارات map<int, int> freqMap; // أكثر تكرار int maxfreq = 0; // حساب التكرارات void push(int x) { // تكرار of x int freq = freqMap[x] + 1; freqMap[x]= freq; // تعديل التكرار if (freq > maxfreq) maxfreq = freq; } int main() { // إضافة العناصر للمكدس push(4); push(6); push(7); push(6); push(8); } لعرض عناصر المكدس بطريقة معكوسة حاول كتابة الشيفرة التالية: نقوم بتعريف مكدس مؤقت نفرغ المكدس الأول باستخدام التابع pop ونضيف العناصر للمكدس الثاني المؤقت أصبح المكدس الثاني يحوي العناصر نفسها لكن بترتيب مقلوب نفرغ المكدس الثاني باستخدام pop ونطبع العنصر و نضيفه للمكدس الأول الآن المكدس الأول يحوي نفس العناصر بنفس الترتيب الأصلي، المكدس المؤقت فارغ بدون تخريب البيانات.
    1 نقطة
  21. يمكنك ذلك عبر الموديول: externals.joblib للحفظ نستخدم التابع التالي: dump(model_name, 'path') لإعادةالتحميل: load('path') مثال: #استيراد المكتبات import numpy as np from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.ensemble import RandomForestClassifier, VotingClassifier from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split #تحميل البيانات data = load_breast_cancer().data labels = load_breast_cancer().target # تقسيم البيانات X_train, X_test, y_train, y_test = train_test_split(data, labels, test_size=0.2, random_state=2021, shuffle =True) c1 = LogisticRegression(multi_class='multinomial', random_state=1) c2 = RandomForestClassifier(n_estimators=50, random_state=1) c3 = GaussianNB() ec1 = VotingClassifier(estimators=[ ('lr', c1), ('rf', c2), ('gnb', c3)], voting='hard') ec1 = ec1.fit(X_train, y_train) print(ec1.score(X_test,y_test))#0.9385964912280702 # نستدعي الكلاس import sklearn.externals.joblib as savemodel savemodel.dump(ec1 , 'model.sav') # نستخدم التابع التالي لعملية الحفظ # لإعادة تحميله loading = savemodel.load('model.sav')
    1 نقطة
  22. المُشكلة لديك في وجود فراغ في قيمة الخاصية method للإستمارة: <form action="/cities" method="POST "enctype = "multipart/form-data"> يجب حذف الفراغ: <form action="/cities" method="POST" enctype="multipart/form-data"> كما أن المسار resource: Route::resource('/cities',citiesController::class); يتضمن مُسبقاً المسار التالي: Route::post("/cities",[citiesController::class,"store"]); فلا داع لتكراره. كما و أنصحك عدم عمل كل شيء مرة واحدة و إنما التدرج في عمل الخصائص فمثلاً البدأ بخاصية المدن و بعد الإنتهاء منها الإنتقال لخاصية أخرى و هكذا. و ليس وضع كافة المسارات في ملف web.php بهذا الشكل ستختلط عليك الأمور أما إن عملت بالقطعة مثلاً الآن المدن: إنشاء النموذج و ملف التهجير و بعد ذلك المسارات الخاصة بالمدن ثم المتحكم و إنشاء عمليات ال crud كلها و بعد ذلك الإنتقال لخاصية أخرى.
    1 نقطة
  23. هذه الدالة pygame.key.get_pressed تعيد مصفوفة بوليانية بالمفاتيح التي تم الضغط عليها، للتأكد من أن الحرف w أو s قد تم الضغط عليه يمكن استخام الشرط بهذه الطريقة: if pygame.key.get_pressed()[K_w]: print('w is pressed') if pygame.key.get_pressed()[K_s]: print('s is pressed')
    1 نقطة
  24. هناك خطوتين يجب عليك القيام بهما لإنشاء مشروع على github pages : أولاً يجب أن يكون لديك ملف بإسم index.html ويجب أن يكون في الجذر root يعني في المجلد الرئيسي وليس داخل مجلدات داخل المشروع في المستودع repository ثانياً يجب عليك الذهاب الى إعدادات المستودع repository والذهاب الى الإعدادات الخاصة ب github pages وهذه الاعدادات موجودة في أسفل القائمة الذي في الجزء الأيسر من الصفحة ومن ثم تحديد الفرع الذي يوجد في الصفحة وغالباً مايكون في الفرع master وايضاً اختر المجلد root الآن يجب عليك الانتظار قليلاً لتحميل الصفحة وايضاً تذكر عند كتابة المسارات في مشروعك يجب عليك كتابتها كالمثال الآتي <img src="./images/cat.jpg"> وليس هكذا <img src="images/cat.jpg">
    1 نقطة
  25. يمكنك استخدام العنصر Directionality وتثبيت اتجاه العرض من خلال الخاصية: textDirection: TextDirection.LTR اذا كان المطلوب من اليسار لليمين او: textDirection: TextDirection.RTL اذا كان المطلوب من اليمين لليسار طبعا وتضع في خاصية ال child العناصر المراد تثبيت جهة العرض
    1 نقطة
  26. حاول تثبيت اتجاه العرض من خلال الخاصية : TextDirection.LTR في Directionality. child: Directionality( textDirection: TextDirection.LTR, تأكد من تضمين المكتبة: package:flutter/material.dart وليس المكتبة الجزئية: (ربما يتم تضمينها تلقائيا من المحرر وهذا يسبب مشكلة) textDirection وطبقها على العنصر الأب في الشاشة لديك MaterialApp( builder: (context, child) { return Directionality( textDirection: TextDirection.rtl, child: child, ); }, );
    1 نقطة
  27. في حال كانت المشكلة بمسار الملف index.html وترغب بتعديل جذر المشروع ليصبح بداخل المجلّد dist أو أي مجلّد آخر، يمكنك تغيير المسار إلى dist من خلال الخطوات التالية: أولاً التأكد من عدم وجود dist ضمن الملف .gitignore. ثانياً: تنفيذ الأمر التالي: git add dist && git commit -m "dist subtree commit" ثالثاً: دلالة github pages إلى المجلّد dist: git subtree push --prefix dist origin gh-pages
    1 نقطة
  28. قد يستغرق تحويل المستودع إلى صفحة فعلية GitHub Pages بعض الوقت خصوصًا في أول مرة، يمكنك الإنتظار 10 - 15 دقائق وإعادة تحديث الصفحة من خلال الضغط على ctrl + R أعتقد أنك قمت بعمل شيء خاطيء لأن المشروع يعمل من خلال هذا الرابط ، أرجو منك أن تتأكد من خطوات إعداد GitHub Pages مرة أخرى. يمكنك الإطلاع على هذا الفيديو لإعداد GitHub Pages بطريقة صحيحة
    1 نقطة
  29. يستخدم ملايين الأشخاص محرِّكات البحث search engines يوميًا، وهي عبارة عن برامج تعمل على فهرسة الإنترنت index the Web، وتسمح للمستخدمين بالبحث في أنحاء الشبكة العنكبوتيّة؛ أمّا "التسويق بالبحث search marketing فهو نوع من التسويق يستند إلى محركات البحث. تحسين محركات البحث تُعَدّ مواقع جوجل Google، وياهو Yahoo، وبينغ Bing، من أبرز الأمثلة على محركات البحث العالميّة، ومع ذلك ما زالت جوجل اللاعب الأبرز في هذا المجال، فقد كشفت دراسة صادرة عن شركة كوم سكور comScore في يوليو 2009، أنّ جوجل تسيطر على أكثر من 67% من سوق محرّكات البحث في العالم. عندما نتحدث عن "البحث" فإننا نشير إلى نوعين مختلفين من النتائج، وهما نتائج البحث الطبيعيّة، ونتائج البحث المدفوعة. الشكل 5.1: توزيع سوق محرّكات البحث نتائج البحث الطبيعية تتميّز هذه النتائج بارتباطها الوثيق بموضوع البحث، وعدم وجود تمويل لها، ولعلّ السر في نجاح جوجل يرجع مباشرةً إلى خوارزميات البحث الممتازة التي تعرض نتائج وثيقة الصلة بموضوع البحث. نتائج البحث المدفوعة هي عبارة عن إعلانات مدفوعة تظهر في أعلى صفحة نتائج البحث، وفي هذا النوع من الإعلانات يدفع المعلِنون مقابل كلّ مرّة ينقر فيها مستخدِم على الإعلان، ولهذا يُطلَق عليها أيضًا إعلانات الدفع لكلّ نقرة PPC. ورغم جذب محركات البحث لمستخدميها من خلال نتائج البحث الطبيعيّة، إلّا أنها تُحقِّق معظم عائداتها من خلال هذه الإعلانات المدفوعة. أهمية البحث بالنسبة إلى المسوقين لقد باتت محرِّكات البحث جزءًا لا يتجزّأ من تجربة المستخدمين على شبكة الإنترنت، وهو ما يُكسِبها أهميّةً كبيرةً بالنسبة إلى المسوِّقين. وتكمن أهميّة البحث في الأسباب التالية: استناد البحث إلى هدف محدد تشهد بيئة الإنترنت منافسةً شديدة. ومع وجود مليارات الصفحات – حرفيًا – على الشبكة العنكبوتيّة، فكيف يمكن لأيّ شخص العثور على الصفحة التي يبحث عنها؟ يعثر مستخدمو الإنترنت على احتياجاتهم من خلال البحث، وبالتالي يمكن القول إنّ البحث في شبكة الإنترنت يعبّر عن وجود نية شراء محتَمَلة لدى المستخدِم. الإقبال الهائل على البحث تُجري محركات البحث مئات الملايين من عمليات البحث يوميًا، ووفقًا لأرقام نشرتها شركة كوم سكور، فقد بلغ تِعداد عمليات البحث في الولايات المتحدة خلال شهر أكتوبر 2019 أكثر من 14 مليار عمليّة، أي حوالي 466 مليون عمليّة بحث يوميًا. البحث يمنحك الظهور إذا كنت تريد الحصول على كمٍّ كبير من الزيارات لموقعك الإلكتروني، فيجب أن يتصدّر محرِّكات البحث حتى يكون مرئيًا للمستخدمين، وتُظهر الإحصائيات أنّ المستخدمين لا ينظرون في الغالب إلى ما بعد النتائج الثلاثين الأولى، وأنّ النتائج الستة الأولى تحظى بنصيب الأسد من النقرات. توعية الجمهور بالعلامة التجارية ينظر مستخدمو الإنترنت إلى نتائج محركات البحث على أنها دليل على المصداقية والموثوقية، لذلك يمكن القول أنّ الظهور في نتائج البحث قد يساعد على ترويج العلامة التجارية وزيادة وعي الجمهور بها، وقد أظهرت الدراسات أنّ الظهور في النتائج الأولى في محرِّكات البحث يزيد من قدرة المستخدِمين على تذكُّر العلامة التجاريّة بثلاثة أضعاف. ثقة الناس بنتائج البحث الطبيعية أظهرت الدراسات أنّ مستخدمي الإنترنت يثقون بنتائج البحث الطبيعية ويجدونها أكثر ارتباطًا بموضوع البحث من النتائج المدفوعة. جذب الزبائن المحتملين في كل مرحلة من دورة الشراء يستخدم الزبائن المحتمَلون كلمات مختلفة للبحث في كلّ مرحلة من دورة الشراء، لذلك يجب أن تمنحهم ما يبحثون عنه في كلّ مرحلة، وإذا فعلت ذلك، فسوف تراهم يعودون إليك عندما يكونون مستعدِّين للشراء. علاوةً على ذلك، سوف يصبح الزبائن أسرع استعدادًا للشراء، لأنّ المعلومات هي أفضل طريقة لتقصير دورة الشراء. استخدام العديد لمحركات البحث مثل صفحة رئيسية يُفضِّل كثير من متصفّحي الإنترنت استخدام محركات البحث مثل صفحة رئيسيّة في متصفّحاتهم، كما يمبل العديد منهم إلى إدخال عنوان الموقع الإلكتروني الذي يرغبون بزيارته في محرِّك البحث، بدلًا من شريط العنوان، رغم معرفتهم لعنوان الموقع، ولكنهم يفضِّلون الدخول إليه من خلال البحث. العلاقة الثلاثيّة: محركات البحث وأصحاب الموقع والمستخدمون ترتبط محركات البحث، ومستخدمو الإنترنت، وأصحاب المواقع بعلاقة تكافليّة، فكلّ طرف يحتاج الطرفين الآخرين للحصول على ما يرغب به. إقبال المستخدمين على محركات البحث يستخدم متصفِّحو الإنترنت محرِّكات البحث للوصول إلى المواقع، ويفضِّلون محركات البحث التي تُقدِّم نتائج مفيدة ومرتبطة بموضوع البحث. تحقيق محركات البحث للأرباح من خلال بيع الإعلانات كلما ازداد عدد مستخدمي محركات البحث، ازدادت أيضًا قدرة تلك المحركات على بيع الإعلانات، ولذلك تحرص محرِّكات البحث على ترتيب نتائجها وفقًا لأهميتها ومدى ارتباطها بالموضوع، وذلك للحفاظ على المستخدمين وجذب مستخدِمين جُدد. استخدام محركات البحث لجذب الزيارات يسعى أصحاب المواقع الإلكترونيّة إلى استغلال محركات البحث من أجل جذب الزيارات إلى مواقعهم، ولكنهم بحاجة قبل ذلك إلى جعل مواقعهم مفيدة، وذات صلة في نظر كلٍّ من محركات البحث والمستخدمين. ويمكن القول أنّ أهم معيار تحرص محركات البحث على تحقيقه، هو جودة نتائج البحث التي تعرضها للمستخدِمين. كيف تعمل محركات البحث؟ تُنفِّذ محركات البحث أربع مهام رئيسيّة: الزحف على المواقع الإلكترونيّة (باستخدام عناكب الإنترنت). فهرسة ملفّات الإنترنت والصفحات التي تعثر عليها. معالجة طلبات المستخدمين. عرض نتائج مرتّبة من الفهرس إلى المستخدِم. يتكون محرّك البحث من عدد من الأجزاء التي تعمل معًا: عناكب الإنترنت، وهي عبارة عن روبوتات آليّة تنتقل من صفحة إلى أخرى، ومن رابط إلى آخر، وتُفهرِس جميع ما تعثر عليه. الفهرس الذي تُنشِؤه العناكب، وهو عبارة عن مكتبة تضمّ عشرات المليارات من صفحات الإنترنت، كما تضمّ قاعدة بيانات بالكلمات المفتاحيّة keywords، وذلك حتى يعرف محرّك البحث أين يذهب عندما يُدخِل المستخدِم استفسارًا معيّنًا. محرّك البحث هو الجزء الذي يتولى عمليّة البحث الفعليّة، فعندما يُدخِل المستخدِم كلمةً أو جملة في شريط البحث، فسيتفقّد المحرِك الفهرس للعثور على أفضل الصفحات، ارتباطًا بموضوع البحث، ومن ثم يقدِّمها مرتّبةً بحسب الأهميّة ومدى الارتباط بالموضوع. صفحة نتائج البحث، وهي عبارة عن الترتيب الذي تظهر فيه نتائج البحث، وتضمّ وصفًا ورابطًا لكلّ نتيجة. التسويق في محركات البحث ينقسم التسويق في محركات البحث Search engine marketing بحسب طبيعة النتائج – طبيعيّة أو مدفوعة – إلى قسمين، وهما تحسين محركات البحث SEO وإعلانات الدفع لكل نقرة PPC. الشكل 5.2: التسويق في محركات البحث SEM = تحسين محركات البحث SEO + إعلانات الدفع لكلّ نقرة PPC يهدف تحسين محرّكات البحث (السيو) إلى تحسين ترتيب الموقع الإلكتروني ضمن نتائج البحث الطبيعيّة، أمّا إعلانات الدفع لكلّ نقرة، فتتضمن الدخول في عطاء لوضع الإعلان ضمن قسم نتائج البحث المدفوعة في صفحة نتائج البحث. وبالمحصّلة، يستند كلّ من تحسين محركات البحث، وإعلانات الدفع لكلّ نقرة إلى فكرة أساسيّة واحدة، وهي الكلمات المفتاحيّة. السر في الكلمات المفتاحية الكلمات المفتاحيّة هي تلك الكلمات أو العبارات التي يُدخِلها المستخدِم في شريط البحث للوصول إلى الموقع الذي يرغب بزيارته، ويعتمد كلٌّ من تحسين الظهور في محركات البحث، وإعلانات الدفع لكلّ نقرة، على اختيار الكلمات المفتاحيّة الأقرب ارتباطًا بموقع الشركة، والتي يكثُر استخدامها بواسطة الزبائن المحتمَلين، ولكن الفارق أنّ تحسين الظهور في محرِّكات البحث يهدف إلى تحسين ظهور الموقع ضمن النتائج الطبيعيّة لكلمات مفتاحيّة محدَّدة، أمّا في إعلانات الدفع في كلّ نقرة، فيقدِّم المعلن عطاءً على الكلمات المفتاحيّة التي يرغب باستخدامها، ويدفع مقابل ظهور موقعه ضمن النتائج المدفوعة الخاصّة بتلك الكلمات. يناقش المقالان القادمان كلًا من تحسين الظهور في محرِّكات البحث، وإعلانات الدفع لكلّ نقرة بالتفصيل ترجمة وبتصرف للفصل Search Engine Marketing، من كتاب eMarketing: The Essential Guide to Online Marketing
    1 نقطة
×
×
  • أضف...