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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. يمكن قراءة قيم حقول inputs بطريقة ديناميكية باستعمال handler وحيد يكون بالشكل التالي: this.setState({ [evt.target.name]: evt.target.value }) كما نلاحظ هذه من نوع ES6 Computed property names أي سوف يتم تعويض اسم الخاصية المتغيرة مع قيمتها مهما اختلفت.
  2. في الدالة mouseClicked لا يتم التعرف غلى المتغير mouse الذي تم تعريفه في الأعلى لعدم وضع كلمة global قبله في بداية الدالة مثل ما تم التعامل مع الألوان، فأعتقد أنه ليس له قيمة بدائية أي ليست 0 و هل تتغير قيمته مع النقر؟ يمكن طباعة قيمته للتأكد من خلال print مثلا. كما يجب تغيير قيمته مع كل نقرة ضمن الشرط if بزيادة 1 له أي ل mouse
  3. هل يمكنك مشاركة الشيفرة لنتمكن من تحديد المشكلة بدقة؟ - حاول وضع فاصل زمني بين التلامسات المتتالية أو أبعد اللاعب عن القطعة مسافة ما بعد التلامس أو يمكن تجريب فكرة أخرى حسب الشيفرة لديك
  4. لا نستطيع تفسير التعابير ضمن شيفرة JSX حسب التوثيق الرسمي إنما نستطيع تعريف مكون ديناميكي و من ثم استخدامه كمثال بسيط: const Heading = "h" + 1; . . return <Heading>...</Heading>; كمثال كامل: لاحظ تمرير المتغير level حيث يتم تعريف ال HTML TAG قبل بنائه. function TypographyHeading({text, level}) { // Select heading <h1> - <h5>: const Heading = "h" + level; return ( <div> <Heading> {text} </Heading> </div> ); }
  5. يمكنك تصفح هذا السؤال ربما تستفيد. أعتقد أن virtual box أخف من VMware حاول تجريبه مع نفس النسخة ل mac و أخبرنا بالنتيجة
  6. نعم صحيح. تقوم هي بتتبع المواقع المسجل ضمنها فقط
  7. هي تتطلب اشتراك، على الأقل حساب أمازون مطلوب. تقوم بعمل إحصائيات و تحليل للمواقع المسجلة فيها. لا تدعم موقعك في ترتيب SEO
  8. نعم يمكنك استخدامها وهي مفيدة. Alexa هو تصنيف عالمي للمواقع و تعتبر أداة لفحص SEO. وتقوم بتصنيف المواقع ولكنها ليست ضرورية.
  9. يمكنك تجريب الشيفرة التالية: يحوي على مثال يعمل بشكل سليم يمكنك أخذ الأجزاء التي تريدها و تطبيقها في مشروعك /** * Sample React Native App * https://github.com/facebook/react-native * * @format * @flow */ import React, { Component } from 'react'; import { StyleSheet, TextInput, View, Text, KeyboardAvoidingView, Keyboard, TouchableOpacity, ScrollView, Platform } from 'react-native'; export default class App extends Component { constructor(props) { super(props); } submit() { Keyboard.dismiss(); } render() { return ( <KeyboardAvoidingView enabled behavior={ Platform.OS === 'ios'? 'padding': null} style= {styles.FlexGrowOne}> <ScrollView bounces= {false} style= {styles.FlexOne}> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid= "#413E4F" placeholder= "Enter First Name" placeholderTextColor= "#413E4F" ref={ref => { this._nameinput = ref; }} returnKeyType= "next" onSubmitEditing={() =>this._lname.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter Last Name" placeholderTextColor="#413E4F" ref={ref => { this._lname = ref; }} returnKeyType="next" onSubmitEditing= {() =>this._emailinput.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder ="Enter Email Address" placeholderTextColor="#413E4F" keyboardType="email-address" ref={ref => { this._emailinput = ref; }} returnKeyType="next" onSubmitEditing= {() =>this._phonenumber.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder ="Enter Phone Number" placeholderTextColor="#413E4F" keyboardType="numeric" ref={ref => { this._phonenumber = ref; }} returnKeyType="next" onSubmitEditing= {() =>this._addressinput1.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter Address Line-1" placeholderTextColor="#413E4F" autoCapitalize="sentences" ref={ref => {this._addressinput1 = ref;}} returnKeyType="next" onSubmitEditing= {() =>this._addressinput2.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter Address Line-2" placeholderTextColor="#413E4F" autoCapitalize="sentences" ref={ref => {this._addressinput2 = ref;}} returnKeyType="next" onSubmitEditing= {() =>this._zipcode.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter Zipcode" placeholderTextColor="#413E4F" autoCapitalize="sentences" ref={ref => {this._zipcode = ref;}} returnKeyType="next" onSubmitEditing= {() =>this._state.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter State" placeholderTextColor="#413E4F" autoCapitalize="sentences" ref={ref => {this._state = ref;}} returnKeyType="next" onSubmitEditing= {() =>this._country.focus()}/> </View> <View style={styles.TextInputWrapper}> <TextInput underlineColorAndroid="#413E4F" placeholder="Enter Country" placeholderTextColor="#413E4F" autoCapitalize="sentences" ref={ref => {this._country = ref;}} returnKeyType="done" /> </View> </ScrollView> <View style= {[styles.Shadow, styles.ButtonBackgroundColor]}> <TouchableOpacity style={[styles.ButtonWrapper, styles.Shadow]} activeOpacity={0.5} onPress={()=> this.submit()}> <Text style= {styles.SubmitText}>SUBMIT</Text> </TouchableOpacity> </View> </KeyboardAvoidingView> ); } } const styles = StyleSheet.create({ FlexGrowOne: { flexGrow : 1 }, FlexOne: { flex : 1 }, TextInputWrapper: { flex: 1, height: 40, margin: 20 }, ButtonWrapper: { backgroundColor: '#51D8C7', borderWidth: 0, color: '#FFFFFF', borderColor: '#000', height: 40, alignItems: 'center', borderRadius: 5, marginLeft: 35, marginRight: 35, marginTop: 30, marginBottom: 30 }, ButtonBackgroundColor: { backgroundColor: '#e6fff9' }, Shadow: { shadowColor: "#000", shadowOffset: { width: 0, height: 5, }, shadowOpacity: 0.34, shadowRadius: 6.27, elevation: 10, }, SubmitText: { color: '#FFFFFF', paddingVertical: 10, fontSize: 16 } });
  10. حسنا هل بدأت بكتابة الشيفرة لنساعدك فيها؟ طباعة الهرم لا تحتاج لأكثر من حلقتين
  11. نلاحظ أن الاستعلام يعمل وفق شرط بتحديد من هو المرسل و من هو المستقبل. recipient_id = ? AND sender_id = ? لجلب الرسائل بالاتجاهين يمكننا وضع شرط or و تعديل الاستعلام. يمكن أن نضع or ثم نفس الشرط و نبدل بين قيم id لهما. $Sid = $_SESSION['id'] $Gid = $_GET['to'] WHERE recipient_id = ? AND sender_id =? OR recipient_id = ? AND sender_id =? Sid , Gid , Gid , Sid
  12. يمكن معرفة صلاحية ال Token من خلال الشيفرة التالية: var tokenexpiration: Date = new Date(); tokenexpiration.setSeconds(new Date().getSeconds() + parseInt(this.serverResponse.expires_in)) console.log(tokenexpiration); حيث استخدما الدالة : this.serverResponse.expires_in لمعرفة تاريخ الصلاحية ويكون بالثواني. يمكن تخزين هذه القيمة في التخزين local storage لقرائتها لاحقا: localStorage.setItem('expirationdate',tokenexpiration) يكفي اختبار الشرط أن الوقت الحالي أكبر من تاريخ الصلاحية لمعرفة انتهاء صلاحيتها ضمن التابع المخصص في Middleware. مثال: const checkTokenExpirationMiddleware = store => next => action => { const token = JSON.parse(localStorage.getItem("user")) && JSON.parse(localStorage.getItem("user"))["token"]; if (jwtDecode(token).exp < Date.now() / 1000) { next(action); localStorage.clear(); } next(action); };
  13. أهلا رائد، تحية لك لتشجيع ابنتك على تعلم البرمجة فهو شيئ مميز جدا. تتضمن دورة علوم الحاسب على عدة مداخل ومنها تعلم سكراتش، وهي عبارة عن لغة برمجة موجهة للصغار و المبتدئين حيث أنها سهلة و تحوي على تحريك للمجسمات و تفاعلها مع بعضها وهو أمر ممتع للأطفال بالإضافة لتعليمات برمجية بشكل لبانات لا تتطلب الكثير من الجهد للكتابة ما سيعمل على دخول تدريجي للطلاب في فهم بنية الشيفرات البرمجية و التهيئة للمرحلة القادمة وهي لغة برمجية فعلية جافاسكربت.. كما ستتعلم عن مكونات الحاسوب و أجزائه وهو أمر مفيد في قسم الأساسيات بالإضافة لتعلم التفكير المنطقي والخوارزميات و تطبيق هذه المفاهيم على تطبيقات تعليمية. أما بالنسبة لباقِ المداخل فربما ستكون صعبة بعض الشيئ.. لكن المدربين موجودين للاستجابة لأي استفسارات من الطلاب و جاهزين للإجابة و تقديم كل الدعم اللازم. إن دورات أكاديمية حسوب مفتوحة مدى الحياة، فسوف تتمكن ابنتك من متابعة الدورة في الوقت الذي يحلو لها بدون قيود زمنية لإنهاء الدورة. أتمنى لك ولابنتك التوفيق و النجاح
  14. نعم يمكننا عمل هذا حيث يتطلب عنصر div: HTML و بعض التنسيقات: HTML: <div id="parallelogram"></div> + CSS: #parallelogram{ width: 160px; height: 100px; background: #8734f7; -webkit-transform: skew(30deg); -moz-transform: skew(30deg); -o-transform: skew(30deg); transform: skew(30deg); } والشكل: عليك التلاعب بمواقع العناصر من خلال الخاصية position و تموضع العناصر فوق بعضهم عن طريق z-index
  15. وفي حال كان المشروع يعمل على Laravel 4 : علينا تغيير "host" في الملف app/config/database.php من "localhost" إلى "127.0.0.1" وفي حال ظهر الخطأ: "Connection refused" علينا تغيير ال 33060 | port 8889 أو أي رقم: حسب مخدم MySQL //app/config/local/database.php 'mysql' => array( 'driver' => 'mysql', 'host' => '127.0.0.1', 'port' => '8889', ///// هنا 'database' => 'databaseName', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
  16. من أجل أن يتحسن ترتيب موقعك في الصفحات الاولى بمنصات البحث "غوغل، ياهو، بينغ" لا بد وأن تستخدم SEO بطريقة صحيحة. SEO: يعني ال search engine optimization بمعنى أن تقوم بالعمل على المحتوى المتواجد داخل الموقع الخاص بك بطريقة ذكية تتماشى مع الخواريزميات الخاصة بمحركات البحث. يجب تكرار الكلمات المفتاحية في جسم المقالة و كتابة عنوانها بطريقة مناسبة (كما يمكن أن يبحث عنها شخص آخر لتحقيق أكبر عدد تطابق في الكمات) يمكنك اتباع بعض الخطوات لتحسين SEO: فمن أجل أن تحقق تحسن في ملائمته لمحركات البحث، عليكِ أن: - كتابة محتوى ملائم لمجال موقعك بصورة مستمرة. - العمل على تحسين ال structure الداخلي الخاص بمحتوى موقعك. - الاهتمام بالروابط الداخلية للموقع. - حل المشاكل التقنية بالنسبة للموقع. كما يمكن استخدمات الخدمات المدفوعة و الإعلانات. يمكن توظيف مختص من موقع مستقل أو خمسات لإنجاز المهمة.
  17. يمكن تنفيذ هذا الأمر في cmd: php artisan routes (laravel 4) القديمة php artisan route:list (laravel 5+) وأحدث
  18. مكتبة keyboard مضمنة بالأصل و انت تستخدمها فلا حاجة لهذا السطر
  19. خطوة أولى: نقل الأموال إلى مستقل (شحن الرصيد). يقبل مستقل تحويل الأموال عن طريق باي بال pay pal أو البطاقات الإتمانية. يمكنك الدخول للرابط التالي و الضغط على شحن الرصيد: إداة الحساب المالي في مستقل. خطوة ثانية: نقل الأموال للمستقل الذي أنجز المشروع. بعد اختيار المستقل للعمل على المشروع (توظيف مستقل) يتم نقل الأموال مؤقتا وحجزها حتى اكتمال العمل. بعد انتهاء العمل يمكنك استلام المشروع وهذا ينقل الأموال للمستقل تأكدي من أن الملفات كاملة و تعمل بشكل جيد قبل استلام المشروع. بالتوفيق
  20. في الألعاب يجب أن يكون حدث الاستامع للنقر غير متزامن و غير تسلسلي أي يمكن نقر زرين في نفس الوقت و حدوث استجابة فورية لا أعلم بالضبط إن كانت هذه أفضل طريقة لعمل هذا. يمكنك محاولة استخدام الدالة is_pressed: import keyboard while True: # حلقة اللعب if keyboard.is_pressed('q'): # if key 'q' is pressed print('You Pressed A Key!') كرر هذا لكل زر ترغب به. لاستخدام مستمع أحداث عليك بالتالي: from pynput.keyboard import Key, Listener def on_press(key): print('{0} pressed'.format( key)) def on_release(key): print('{0} release'.format( key)) if key == Key.esc: # Stop listener return False # Collect events until released with Listener( on_press=on_press, on_release=on_release) as listener: listener.join()
  21. مرحبا، يمكنك استخدام التعليمة بالشكل التالي: select * FROM messages WHERE recipient_id = 1 GROUP BY sender_id ORDER BY id DESC سوف يتم تجميع الرسائل حسب المرسل و إعادة الرسالة الأحدث
  22. إن الدالة keyboard.keyCode تعيد المحرف المضفوط بترميز ASCII فيمكنك مقارنها مع قيمة المحرف للحرف الذي تريده لكن يفضل بالحالتين الكبيرة و الصغيرة لضمنان معالجتها بالطريقة الصحيحة if keyboard.keyCode == Letter: _______________________^^^^^^ = ASCII لتصبح: if keyboard.keyCode == 'W' or keyboard.keyCode == 'w' :
  23. بعد تخزين المتحول data في قاعدة البيانات يمكنك مباشرة قراءة الخاصية id منه و إرجاعها كما يلي: if ($data->save()) { // هنا أصبح متاحة بعد الحفظ return Response::json(array('success' => true,'id' => $data -> id ), 200); }
  24. قبل تفعيل remote debugging عليك التأكد من أن IP المتصل عليه هو localhost لحل المشكلة عليك فتح الرابط التالي في المتصفح: http://localhost:8081/debugger-ui ثم تفعيل remote debugging سوف تظهر logs على المتصفح. أو من اعدادت المحاكي نتوجه حسب التعليمات و نضبط المخدم: Dev settings > Debug server host & port for device Set localhost:8081 وحل آخر: تجريب تنفيذ adb في cmd: adb reverse tcp:8081 tcp:8081
×
×
  • أضف...