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

Wael Aljamal

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

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

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

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

    218

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

  1. يوجد هذه الدورة باللغة الانكليزية تشرح عدة أفكار من التي ذكرتها وهذه أيضا
  2. يبدو أن الحزمة wheel غير مثبتة لديك أرجو تثبيتها من خلال التعليمة التالية : pip install wheel ثم أعد المحاولة تثبيت Linter pylint في حال استمرت المشكلة قم بالتعليمات التالية : mkdir wheelhouse // عرف مجلد لتخزين الحزم البرمجة الناقصة التي نريد تثبيتها // مسار افتراضي مناسب لديك pip download --dest wheelhouse requests ثم pip install requests --no-index --find-links wheelhouse/ // wheelhouse/ يعبر عن مسار التثبيت استبدله بالمجلد الذي قمت بإنشائه مسبقا # التعليمة التالية تعرض ماعليك تثبيته (ملفات و مكتبات ناقصة لديك) : python -m pip show requests // الخرج سيكون بالشكل التالي Requires: urllib3, chardet, idna, certifi
  3. إليك توثيق يوتيوب لتضمين الفيديوهات حيث يوفر لك عدة ميزات مثل تشغيل الفيديو بدءاً من وقت محدد إلى التشغيل التلقائي لتضمين playList كاملة مع تضمين الشرح و الخصوصية.. التوثيق من هنا شرح توضيحي من W3Schools من هنا
  4. أنماط التصميم (Design Patterns) هي أساليب نموذجية تحل المشاكل التي تتكرر كثيرًا في تصميم البرمجيات، ويمكن تشبيهها بالمخططات التي تستخدمها -وتُعدَّلها أيضًا- من أجل إصلاح مشكلة بعينها في شيفرتك. شرح وتوثيق موسوعة حسوب لجميع ال Design Patterns من هنا مقالة عامة عن الموضوع من هنا تصنيفات و شرح إضافي من هنا
  5. إن أسهل طريقة هي بالتعامل مع WordPress بالإضافة لشرح زملائي يمكنك قراءة بعض المقالات و الشروحات عن WordPress من خلال المقالات في أكاديمية حسوب من هنا
  6. مرحبا, أقترح استخدام هذه المكتبة البسيطة للنصوص auto_direction و ال Widget Directionality استخدمها ك Wrapper ل Widget أخرى
  7. انظر هذا المثال الذي يحرك جزء من الصفحة عند النقر الرابط أمثلة أخرى لتحريك أجزاء مختلفة بطرق مختلفة باستخدام jQuery الرابط1 - الرابط2 - الرابط3
  8. أقترح عليك استخدام هذه التنسيقات الجميلة: <!DOCTYPE html> <html> <head> <style> div.gallery { <!-- تنسيق العنصر الحاوي للصور --> margin: 5px; border: 1px solid #ccc; float: left; width: 180px; } div.gallery:hover { <!-- تأثير عند مرور الفأرة --> border: 1px solid #777; } div.gallery img { <!-- DIv تنسيق للصورة داخل العنصر --> width: 100%; height: auto; } div.desc { <!-- توصيف الصورة ويقع أسفلها --> padding: 15px; text-align: center; } </style> </head> <body> <div class="gallery"> <a target="_blank" href="img_5terre.jpg"> <img src="img_5terre.jpg" alt="Cinque Terre" width="600" height="400"> </a> <div class="desc">Add a description of the image here</div> </div> <div class="gallery"> <a target="_blank" href="img_forest.jpg"> <img src="img_forest.jpg" alt="Forest" width="600" height="400"> </a> <div class="desc">Add a description of the image here</div> </div> <div class="gallery"> <a target="_blank" href="img_lights.jpg"> <img src="img_lights.jpg" alt="Northern Lights" width="600" height="400"> </a> <div class="desc">Add a description of the image here</div> </div> <div class="gallery"> <a target="_blank" href="img_mountains.jpg"> <img src="img_mountains.jpg" alt="Mountains" width="600" height="400"> </a> <div class="desc">Add a description of the image here</div> </div> </body> </html> وسيكون شكلها :
  9. توثيق فلاتر لتمرير البارامترات من هنا قم بتعريف صف خاص يحوي البيانات التي تريد إرسالها بين ال Screens و مرره كمتحول وحيد يحمل البيانات التي تحتاجها .. ثم قم باستخلاص البيانات مرة أخرى لاستعمالها في ال Screen2
  10. يمكنك استخدام المكتبة country code picker المثال المضمن من مصمم المكتبة : import 'package:country_code_picker/country_code_picker.dart'; import 'package:country_code_picker/country_localizations.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => new _MyAppState(); } class _MyAppState extends State<MyApp> { @override Widget build(BuildContext context) { return new MaterialApp( supportedLocales: [ Locale('en'), Locale('it'), Locale('fr'), Locale('es'), Locale('de'), Locale('pt'), Locale('ko'), ], localizationsDelegates: [ CountryLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], home: new Scaffold( appBar: new AppBar( title: const Text('CountryPicker Example'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ CountryCodePicker( onChanged: print, // Initial selection and favorite can be one of code ('IT') OR dial_code('+39') initialSelection: 'IT', favorite: ['+39', 'FR'], countryFilter: ['IT', 'FR'], showFlagDialog: false, comparator: (a, b) => b.name.compareTo(a.name), //Get the country information relevant to the initial selection onInit: (code) => print("on init ${code.name} ${code.dialCode} ${code.name}"), ), SizedBox( width: 400, height: 60, child: Padding( padding: const EdgeInsets.all(8.0), child: CountryCodePicker( onChanged: print, hideMainText: true, showFlagMain: true, showFlag: false, initialSelection: 'TF', hideSearch: true, showCountryOnly: true, showOnlyCountryWhenClosed: true, alignLeft: true, ), ), ), SizedBox( width: 400, height: 60, child: Padding( padding: const EdgeInsets.all(8.0), child: CountryCodePicker( onChanged: (e) => print(e.toLongString()), initialSelection: 'TF', showCountryOnly: true, showOnlyCountryWhenClosed: true, favorite: ['+39', 'FR'], ), ), ), SizedBox( width: 100, height: 60, child: Padding( padding: const EdgeInsets.all(8.0), child: CountryCodePicker( enabled: false, onChanged: (c) => c.name, initialSelection: 'TF', showCountryOnly: true, showOnlyCountryWhenClosed: true, favorite: ['+39', 'FR'], ), ), ), ], ), ), ), ); } }
  11. إن استخدام flatten image لا يؤثر على الدقة إنما يدمج الطبقات و يقلل حجم الملف فقط.
  12. الإجابة تكون من أساتذة و مدربين لديهم خبرات مناسبة للدورة التي تقوم بالتسجيل فيها وليس من الطلاب
  13. مرحبا هشام, نعم بالطبع يوجد متابعة من قبل المدربين و جاهزين للإجابة على أي استفسار منك وأي نصائح وإضافات تفيدك في الحياة العملية. تتم الإجابة على أسئلتك بعد طرحك لسؤال في حال أردت الاستفسار عن أي تفاصيل بعد مشاهدة فيديو الدورة حيث يوجد قسم للتعليقات خاص بكل فيديو (الدورة مقسمة لعدد من الأقسام يتم شرح كل فكرة في فيديو خاص بها). وفي حالات معينة يمكن أن يتواصل معك أحد المدربين بشكل خاص للإجابة على أسئلتك (عن طريق أي أداة اتصال متوفرة والمناسبة للحالة مثلا TeamViewer لحل مشاكل في حاسوبك الخ..). معظم المتابعة تتم عن طريق الكتابة حيث نكتب شروحات للأسئلة و نحل المشاكل التي ربما تعترضك أثناء الدراسة. بالتوفيق
  14. إن مكتبة Discord تعمل بلغة javascript جافا سكربت يوجد العديد من مصادر التعلم مثل: أكاديمية حسوب كتاب يشرح جافا سكربت خطوات تعلم جافا سكربت طبعا يمكنك التعلم عن طريق يوتيوب حيث يوجد روابط في المقالات التي قم بتوفيرها.. بالتوفيق
  15. هي طريقة غير مستخدمة كثيرا في تعريف خاصية تابعة لغرض معين (بطريقة برمجية أي يمكنك تسمية الخاصية بوضع متحول و ستأخد الخاصية قيمته) (فقط وضعت المثال لتعلم أنه يمكننا فعل ذلك) تبسيط المثال : <?php $obj = new stdClass; // بناء صف $obj->Property1 = " value1"; $obj->Property2 = "value2 "; $newObj = new stdClass; foreach($obj as $prop => $val) { $newObj->$prop = trim($val); //نطبق الدالة على الخاصية } $obj = $newObj; unset($newObj); var_dump($obj); تطبيق trim على user: if (isset($_POST['signup'])){ /* User_Info */ class userInfo{ private $ufame; private $uname; private $umail; private $upass; private $uyear; private $udays; private $umonth; public function users(){ $this->ufame = $_POST['ufame']; $this->uname = $_POST['uname']; $this->umail = $_POST['umail']; $this->upass = $_POST['upass']; $this->uyear = $_POST['uyear']; $this->udays = $_POST['udays']; $this->umonth= $_POST['umonth']; foreach($this as $prop => $val) { $this->$prop = trim($val); // نطبق الدالة على الخاصية } } $user = new userInfo(); $user->users(); print_r($user); }
  16. نعم يمكننا ذلك تطبيق الدالة trim على جميع عناصر مصفوفة تطبيق trim على المصفوفة POST بتعليمة واحدة $result = array_map('trim', $source_array); شرح أكثر عن الالة array_map نضعها في أول الكود ويصبح الكود بالتالي : $_POST = array_map('trim', $_POST); if (isset($_POST['signup'])){ /* User_Info */ class userInfo{ private $ufame; private $uname; private $umail; private $upass; private $uyear; private $udays; private $umonth; public function users(){ $this->ufame = $_POST['ufame']; $this->uname = $_POST['uname']; $this->umail = $_POST['umail']; $this->upass = $_POST['upass']; $this->uyear = $_POST['uyear']; $this->udays = $_POST['udays']; $this->umonth= $_POST['umonth']; } }$user = new userInfo(); $user->users(); print_r($user); } طريقة ثانية لتطبيق الدالة على Object : <?php $obj = new stdClass; // بناء صف $obj->{' Property1'} = " value1"; $obj->{'Property2 '} = "value2 "; $newObj = new stdClass; foreach($obj as $prop => $val) { $newObj->{trim($prop)} = trim($val); // نطبق الدالة على الخاصية و القيمة سويا } $obj = $newObj; unset($newObj); var_dump($obj);
  17. مرحبا, لقد اطلعت على الملفات, يبدو أنها تحتاج الكثير من الوقت و شخص لديخ خبرة جيدة في المجال لذلك أنصحك بالتوجه مثلا إلى منصة مستقل و توظيف مبرمج أو شخص مناسب ليساعدك في الحل رابط منصة مستقل
  18. هل يمكنك تزويدنا بتفاصيل أكثر عن المشروع .. لغة البرمجة و أي تفاصيل مفيدة
  19. الأسئلة ليست صعبة حاول أن تقوم بحلهم بمجهودك ثم قم بتصحيح الأخطاء حسب شرحي لك.. الأول: #include <iostream> #include<string> using namespace std; int main() { int x ,y; // int تعريف متحولين لتخزين أرقام من نوع cout << "enter tow values .. x and y .." << endl; // الطلب من المستخدم إدخال القيم cin >> x >> y; // إدخال اقيم من قبل المستخدم cout << "adding .. " << x + y << endl; // الجمع cout << "multiplying .. " << x * y << endl; // الضرب // endl نستخدمها للنزول إلى سطر جديد return 0; } الثاني : #include <iostream> #include<string> using namespace std; int main() { int myTall , myFriendsTall; // int تعريف متحولين لتخزين أرقام من نوع cout << "enter tow values .. x and y .." << endl; // الطلب من المستخدم إدخال القيم cin >> x >> y; // إدخال اقيم من قبل المستخدم if (myTall > myFriendsTall) { cout << "my Tall is .. " << myTall << " the average is .. " << (myTall + myFriendsTall) /2; } else { cout << "my Friend Tall is .. " << myFriendsTall << " twice his tall is .. " << 2 * myFriendsTall << " half his tall is " << myFriendsTall/2 ; } // endl نستخدمها للنزول إلى سطر جديد return 0; } الثالث : #include <iostream> using namespace std; int main() { int myArray[10]; // تعريف مصفوفة for int i=0;i<10;i++){ // حلقة ب 10 تكرارات cin >> myArray[i]; // إدخال العناصر واحد تلو الآخر } for int i=0;i<10;i++){// حلقة ب 10 تكرارات if(myArray[i]>5){ // اختبار اذا كان العنصر أكبر من 5 cout << myArray[i] << " is at index .. " << i << endl; // طباعة هذا العنصر } } return 0; } الرابع : #include <iostream> using namespace std; // تعريف سجل لنتمكن من تخزين قيم مختلفة في نفس المتحول // هو فعليا تعريف نمط بيانات جديد struct person { char name[40]; char address[40]; int age; float salary; }; int main() { person p1 ,p2; // تعريف متحولين من نمط السجل يحوي كل منهما خصائصه // إدخال القيم cout << "enter person's 1 data .. " << endl; cout << "Name .. address .. age .. salary .. "<< endl; cin >> p1.name >> p1.address >> p1.age >> p1.salary; cout << "enter person's 2 data .. " << endl; cout << "Name .. address .. age .. salary .. "<< endl; cin >> p2.name >> p2.address >> p2.age >> p2.salary; // طباعة النتائج cout << "printing values .. "<< endl; cout << "printing person's 1 data .. " << endl; cout << "Name .. " << p1.name << endl << "address .. " << p1.address << endl << " age .. " << p1.age << endl << "salary .. "<< p1.salary << endl; cout << "printing person's 2 data .. " << endl; cout << "Name .. " << p2.name << endl << "address .. " << p2.address << endl << " age .. " << p2.age << endl << "salary .. "<< p2.salary << endl; return 0; } الخامس: #include <iostream> #include<string> using namespace std; int sum (int a, int b) { // a,b تعريف دالة من نوع رقم تستقبل المتحولات الممررة في int s = a + b; // متحول محلي يخزن مجموع القيمتين return s; // إعادة المجموع لمكان استدعاء الدالة } int main() { int x ,y; // int تعريف متحولين لتخزين أرقام من نوع cout << "enter tow values .. x and y .." << endl; // الطلب من المستخدم إدخال القيم cin >> x >> y; // إدخال اقيم من قبل المستخدم cout << "the sum of x and y is .. " << sum(x,y); // استدعاء الدالة // endl نستخدمها للنزول إلى سطر جديد return 0; }
  20. بعض الاختصارات للتعامل مع أوامر نظام لينكس الخاصة بالملفات و المجلدات: l = Link to another file d = a directory - = file r = read permission - Read the file w = write permission - Write or edit the file x = execute permission He can execute the file - = no permission Number Permission Type `Symbol` 0 No Permission `---` 1 Execute `--x` 2 Write `-w-` 3 Execute + Write `-wx` 4 Read `r--` 5 Read + Execute `r-x` 6 Read + Write `rw-` 7 Read + Write + Execute `rwx` شرح عن أوامر لينوكس و مثال عن استخدامها مثال1 , مثال2 symlink: في الحوسبة ، الرابط الرمزي (أيضًا ارتباط رمزي أو رابط لين) هو مصطلح لأي ملف يحتوي على مرجع إلى ملف أو دليل آخر في شكل مسار مطلق أو نسبي ويؤثر على دقة اسم المسار. تستخدم في حالة أردنا نقل ملفات مرتبطة ببعضها للحفاظ على مسار (path) بينها للتأكيد على ترابط البيانات.
  21. // أطوال القطرين d1 = 2 d2 = 4 // حساب المساحة و المحيط area = (d1 * d2) / 2; perimeter = 2 * sqrt(pow(d1, 2) + pow(d2, 2)); // الطباعة fprintf('The area is %.2f\n', area); fprintf('The perimeter is %.2f\n', perimeter);
  22. عليك تعلم كل ماسبق ال api مرتبط بال frontend و ال backend و حتى لو اختصيت في frontend يجب ان يكون لك معرفة جيدة في كيفية عمل ال api عند ال backend تستطيع حاليا تجاهل (4,13)
  23. هل أنت تعيش في بلد محظور فيه خدمات غوغل؟ .. أنا مثلا أعيش في سوريا و أقوم بتشغيل برنامج VPN لأستطيع اختبار التطبيق (firebase يحتاج للاتصال بالانترنت) = اذا لم تنفع الفكرة السابقة عليك بمراجعة ال Documentation ,وماذا عليك أن تضيف لتحقيق التوافق مع أجهزة آيفون
  24. في ملف PHP.ini الخاص بالسيرفر لديك قم بالبحث عن التالي : extension=php_curl.dll; وقم بإزالة الفاصلة المنقوطة التي قبلها (مثل إزالة التعليق) يمكن أن تجدها باسم extension=curl; احفظ الملف و قم بإعادة تشغيل السيرفر
  25. ليس له علاقة بالسؤال مكتبات جافا المستخدمة في برمجة الأندرويد لها صلاحيات مختلفة عن مكتبات جافا العادية التي يقوم بالبرمجة بها حاليا (فهو يستخدم محاكي محلي كتطبيق اندرويد ينفذ برنامج جافا)
×
×
  • أضف...