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

Talaat Magdy

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

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

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

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

    1

كل منشورات العضو Talaat Magdy

  1. أسهل و أسرع طريقة هي استخدم https://videosdk.live/ توفير مكالمة فيديو مضمنة في SDK تم إنشاؤه مسبقًا وإضافة مكالمات فيديو على موقع الويب والتطبيق الخاص بك باستخدام بضعة أسطر من التعليمات البرمجية ولا شيء يمكن أن يكون أبسط من تجربة دردشة الفيديو الأفضل مع 10 أسطر فقط من التعليمات البرمجية. يتيح إجراء مكالمات الفيديو المضمنة الفرصة لدمج SDK للاتصال في الوقت الفعلي دون كتابة تعليمات برمجية صريحة. وهو يدعم جميع أطر جافا سكريبت الحديثة مثل React JS, Vue, and Angular including Vanilla JS. 10000 دقيقة مجانية كل شهر كود منخفض تمامًا وبدون خادم. Video API مع تدفقات الصوت والفيديو والبيانات في الوقت الحقيقي أكثر من 5000 مشارك يدعمون دعم الدردشة مع الوسائط الغنية. مشاركة الشاشة بجودة HD و Full HD. تشغيل الفيديو في الوقت الحقيقي في الاجتماع قم بتوصيله بوسائل التواصل الاجتماعي مثل Facebook و Youtube وغيرها (دعم RTMP خارج). مفتاح مكبر الصوت الذكي سجل اجتماعاتك على السحابة دعم داخلي للسبورة البيضاء والاستطلاع والأسئلة والأجوبة. تخصيص واجهة المستخدم حسب احتياجاتك. الخطوات دخول إلي https://app.videosdk.live/ وتسجيل فيه ثم نضغط علي Generate an API key and Secret 3.قم باستيراد البرنامج النصي في صفحة html الخاصة بك <script src="https://sdk.videosdk.live/rtc-js-prebuilt/0.1.21/rtc-js-prebuilt.js"></script> أو يمكنك استخدام Npm package: rtc-js-prebuilt 4.قم بتضمين كود جافا سكريبت الذي تم إنشاؤه مسبقًا لمكالمات الفيديو في صفحة HTML الخاصة بك <script> var script = document.createElement("script"); script.type = "text/javascript"; script.addEventListener("load", function (event) { const meeting = new VideoSDKMeeting(); const config = { name: "John Doe", apiKey: "<API KEY>", // generated in Setup meetingId: "milkyway", // enter your meeting id containerId: null, redirectOnLeave: "https://www.videosdk.live/", micEnabled: true, webcamEnabled: true, participantCanToggleSelfWebcam: true, participantCanToggleSelfMic: true, chatEnabled: true, screenShareEnabled: true, pollEnabled: true, whiteBoardEnabled: true, raiseHandEnabled: true, recordingEnabled: true, recordingWebhookUrl: "https://www.videosdk.live/callback", participantCanToggleRecording: true, brandingEnabled: true, brandLogoURL: "https://picsum.photos/200", brandName: "Awesome startup", poweredBy: true, participantCanLeave: true, // if false, leave button won't be visible // Live stream meeting to youtube livestream: { autoStart: true, outputs: [ // { // url: "rtmp://x.rtmp.youtube.com/live2", // streamKey: "<STREAM KEY FROM YOUTUBE>", // }, ], }, whiteboardEnabled: true, permissions: { askToJoin: false, // Ask joined participants for entry in meeting toggleParticipantMic: true, // Can toggle other participant's mic toggleParticipantWebcam: true, // Can toggle other participant's webcam drawOnWhiteboard: true, toggleWhiteboard: true, }, joinScreen: { visible: true, // Show the join screen ? title: "Daily scrum", // Meeting title meetingUrl: window.location.href, // Meeting joining url }, }; meeting.init(config); }); script.src = "https://sdk.videosdk.live/rtc-js-prebuilt/0.1.21/rtc-js-prebuilt.js"; document.getElementsByTagName("head")[0].appendChild(script); </script> 5. قم بتغير هذا السطر apiKey: "<API-KEY>" الي API KEY الخاص بك يمكنك قراءة المزيد في الموقع الرسمي .
  2. أي شئ لا يعتمد على القراءة أو مشاهدة فقط لابد من الممارسة أكتر واكتر . فمثلا ممكن تاخد بعض notes لكي تقوم بالمراجعة السريعة . أيضا لابد أن تفهم لا يجب عليك تذكر كل شئ يجيب عليك فهم اشياء اكتر من حفظها . بعد مجموعة من الفيديوهات تقوم بعمل مشروع صغير لتذكر ما تم تدريسها هكذا كل فترة . لا تستعجل النتيجة الفورية عليك باستمرار و القدوم نحو الدروس الجديدة مع أخذ notes وقراءتها عند الحاجه اليها . عليك التوقف والاعادة مرة أخرى إذا لم تستطيع فهم الفيديو أو شرحه . مثلا تبدأ بمشاهدة الفيديوهات ثم التطبيق عليها في نفس الوقت ثم في آخر الأسبوع تقوم بعمل مشروع صغير للأشياء التي فهمتها و شاهدتها
  3. هل تقوم بإستخدام flask gunicorn ام شئ اخر ؟ هل يمكنك كتابة اﻷمر بالكامل المسئول عن تشتغل الخادم
  4. لنفترض ان لديك ملف file.py وتريد معرفته يمكنك عن طريق تحويل اسم ملف الي string و تقسيم اسم الي جزئين مثلا 1 --> file 2 --> py 1- يمكنك بكل سهوله فعل ذلك عن طريق file_name = "file.py" file_name = filename.split(".") extension = file_name[-1] # py print(extension) # py 2- أو عن طريق استخدام os.path.splitext --> تساعدك في تقسيم الاسم إلي جزئين هي مخصصه لتعامل مع file import os filename, file_extension = os.path.splitext('/path/to/somefile.ext') print(filename) # '/path/to/somefile' print(file_extension) # '.ext' في تعامل مع File أفضل استخدام os.path.splitext وليس split الخاصه ب string بعد اﻷمثله لماذا أفضل استخدام splittext "png".split(".")[-1] 'png' # But file doesn't have an extension - هنا لايوجد أي extension هذا شئ غير صحيح أفضل استخدام splitext لانها تعتمد علي os module 3- حلول أخري استخدام - pathlib - re
  5. لدينا العديد من طرق باستخدام loop و بدون استخدام اي method test_list = [1, 3, 5, 6, 3, 5, 6, 1] print ("The original list is : " + str(test_list)) res = [] for i in test_list: if i not in res: # list غير موجود داخل item لو res.append(i) # printing list after removal print ("The list after removing duplicates : " + str(res)) Output : The original list is : [1, 3, 5, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6] هذه طريقة سهله و يمكن تنفيذ بدون معرفة مسبقة باستخدام set الفرق اﻷساسي بين list و set هو أن set لا تقبل أشياء مكرره # initializing list test_list = [1, 5, 3, 6, 3, 5, 6, 1] print ("The original list is : " + str(test_list)) # using set() # to remove duplicated # from list test_list = list(set(test_list)) print ("The list after removing duplicates : " + str(test_list)) Output : The original list is : [1, 5, 3, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6] مع python 3 جاءت بما يسمي list comprehension test_list = [1, 3, 5, 6, 3, 5, 6, 1] print ("The original list is : " + str(test_list)) # using list comprehension res = [] [res.append(x) for x in test_list if x not in res] # printing list after removal print ("The list after removing duplicates : " + str(res)) Output : The original list is : [1, 3, 5, 6, 3, 5, 6, 1] The list after removing duplicates : [1, 3, 5, 6] أذا قمت بالملاحظه ستجد أنه نفس طريقة الاول لكن بكود أفضل و أقل يمكنن أيضا استخدام Using collections.OrderedDict.fromkeys
  6. لابد من تسطيب مكتبة json أولا gem install json ثم كتابة الكود require 'json' file = File.read('./file-name-to-be-read.json')# قراءة file data_hash = JSON.parse(file) # Hash تحويل إلي # نفترض أن هذا شكل file # { # "author":"Isaac Asimov", # "url":"https://isaacbooks.com", # "books": # { # "1":"Fantastic Voyage", # "2":"The Robots of Dawn", # "3": "Pebble In The Sky" # } # } puts data_hash['author'] # => author
  7. مرحبا يوجد العديد فى Youtube مثلا شرح unity تطبيق لعبة من البداية ممكن تقوم بعمل بحث بسيط https://www.youtube.com/results?search_query=c%23+unity+شرح
  8. مرحبا يمكنك فعل ذلك بالعديد من الطرق مثلا باستخدام الدالة sort names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort() print(names) هذا الكود صحيح ولكن لان يوجود حروف capital و small تكون اﻷولية للحروف capital . لان ترتيب A هو 065 أما a 097 يمكنك زيارة هذا رابط لمعرفة ذلك http://sticksandstones.kstrom.com/appen.html باستخدام الدالة sort ولكن جعل حروف أما capital أو small names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key= str.lower) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] names.sort(key= str.upper) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sort باستخدام lambda و lower أو upper names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key=lambda y: y.lower()) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] names = ['Ali', 'ahmad', 'Mohammad', 'malik'] names.sort(key=lambda y: y.upper()) print(names) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted عن طريق lower أو upper names = ['Ali', 'ahmad', 'Mohammad', 'malik'] sorted_list = sorted(names, key=lambda s: s.lower()) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted_list = sorted(names, key=lambda s: s.upper()) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad'] sorted باستخدام casefold يمكنك معرفة المزيد من هنا https://docs.python.org/3/library/stdtypes.html#str.casefold names = ['Ali', 'ahmad', 'Mohammad', 'malik'] sorted_list = sorted(names, key=str.casefold) print(sorted_list) # ['ahmad', 'Ali', 'malik', 'Mohammad']
  9. مرحبا @عبدالقادر بامدحج مشكلة في ملفات قديمة بعد الشئ . أفضل أن تقوم بقراءة ملفات اضافات اشياء جديدة فقط خطوه بخطوه سوف يتاح لك تعلم الكثير . مثلا لا تريد استبدال كل ملف GEMFILE تريد إضافة Bootstrap فقط وهكذا
  10. مرحبا @عبدالقادر بامدحج هذه مشكله في درس الحالي يمكنك محاولة مره اخري ويمكنك ارسال المشروع قبل تنفيذ هذه الخطوات اذا لم تستطيع حل مشكلة . أريد مشروع قديم قبل تنفيذ هذا الدرس إذ١ لم تسطيع تنفيذ هذه الخطوات
  11. مرحبا @عبدالقادر بامدحج هل هي مشكله بعد تحديث الإصدار أم كانت موجوده قبل ذلك أو لم تلاحظها قبل ذلك ؟
  12. مرحبا @عبدالقادر بامدحج يمكن حل مشكلة عن طريق تغير الإصدار gem 'bootstrap-sass', '~> 3.2.0.0' ثم bundle install
  13. مرحبا @عبدالقادر بامدحج هذا مشكله في هذا اﻷصدار من rails و تم تصحليه في أصدار السابقة يمكنك حل هذه المشكلة عن طريق تغير الإصدار الخاص ب rails gem 'rails', '~> 5.2.4' ثم تنفيذ اﻷمر bundle update rails
  14. مرحبا @عبدالقادر بامدحج يمكنك أضافة هذا سطر داخل config/application.rb إذا لم يحتوي علي هذه سطر require "active_storage/engine" ثم bin/rails activestorage:install أن لم تعمل معك يمكنك إضافة مشروع الخاص بك
  15. مرحبا @عبدالقادر بامدحج هل يمكنك أضافة هذا سطر في GEMFILE gem 'bootsnap' ثم bundle install
  16. مرحبا @محمد الاهلي يوجد دالة تسمي count داخل sql هي مسئوله عن جلب العدد الكلي للجدول أو column معين . select count(*) as customer_count from customer ; اذا كان لديك column يسمي id أو primary key أي كان اسمه أفضل انت تقوم باستخدمه لسرعة query لأن معظم DBMS (مثل MySql أو PostgreSQL ) ذكية تقوم بإضافة index علي primary key هذا يحسن من سرعة تنفيذ query select count(id) as customer_count from customer ;
  17. مرحبا @كمال محمودي يمكنك اضافة column جديد لجدول الخاص ب Users وليكن block_date كتابة هذا اﻷمر في terminal php artisan make:migration add_block_date_to_users_table --table=users public function up() { Schema::table('users', function($table) { $table->date('block_date')->nullable()); // dateTime also // nullable قيم سابقة لابد ان تكون null }); } and don't forget to add the rollback option: public function down() { Schema::table('users', function($table) { $table->dropColumn('block_date'); }); } ثم عمل condition بسيط لو user له block_date و لا تساوي null تقوم بإظهار الرسالة له . يمكنك استخدم القيمة المخزنة في block_date لكي تنبه مستخدم أن تم منعه لمدة معينة باستخدام block_date
  18. مرحبا فقط يوجد بعض الأشياء البسيطة قمت بذكره داخل الكود using System; namespace ConsoleApp1 { class Program { private static int number1; private static int number2; static void Main(string[] args) { // int= number1, number; هذا سطر خطأ لا يجوز كتابة هكذا //int number1, number2; double Div; Console.WriteLine("enter first number1"); number1 = int.Parse(Console.ReadLine()); // لابد من اضافة الأقواس للدوال () Console.WriteLine("enter second number1"); number2 = int.Parse(Console.ReadLine()); // لابد من اضافة الأقواس للدوال () if (number2 == 0) { Console.WriteLine("connot deividby zero"); // نسيت ; } else { Div = number1 / number2; Console.WriteLine("the result dividionis"+ Div); // نسيت ; } Console.ReadKey(); // نقوم بإدخال هذا السطر الي الدالة main } } // } هذا block لا نريده }
  19. هذا القيم تسمي data type الخاصه ب sql database تختلف بعض الشئ بين أنواع مستخدمه مثلا PostgreSQL أو MySQL يمكن مشاهدة جميع أنواع الخاصه ب MySQL هنا أو PostgreSQL هنا . بعد معرفة الجميع لابد من معرفة تسميات داخل ORM Object Relational Mapping . سنذهب في جولة بسيطه في ORM ما هو ORM ؟ عبارة عن تقنية تستخدم لخزن , استرجاع , حذف وتحديث البيانات في قواعد البيانات العلائقية (المصممة على شكل علاقات) حيث تستخدم طبقات البيانات لإدارة عملية التواصل بين Object Oriented Languages و Relation database. أو يمكن تعريفها على أنها الخريطة التي تعنى بربط الــ Objects مع Relational database ويكمن الهدف الرئيسي من ORM هو تدرج الوصول إلى البيانات وتكنولوجيا المعاملات لتسهيل عملية الربط بين أجزاء التطبيق وكذلك لتقليل عمليات البحث عن الموارد المشفرة أو المفردات التي يصعب استبدالها , كذلك يمكن اعتمادها كطريقة مبسطة ومتسقة للوصول إلى جميع عناصر التطبيق. حيث توفر ORM نسق ومخرجات عالية الجودة من قاعدة البيانات العلائقية تسمح لمطوري البرامج بكتابة رمز من لغة برمجية إلى أخرى مثل Python بدلاً من SQL لإنشاء وقراءة وتحديث وحذف البيانات والمخططات في قاعدة البيانات الخاصة بهم. أهمية ORM تكون أن تكتب شئ واحد وعند تحويل من database إلي أخري لا يفرق . مثلا في ACTIVE Record User.first لا يفرق مع مبرمج سواء هي SQ LITE أو PostgreSQL أو أي نوع أخري يستخدم Ruby On Rails --> Active Record Laravel --> eloquent يمكن قراءة أنواع data type في Sql أولا ثم تبحث عن ما تريد داخل ORM مثلا تريد أن تقوم بإنشاء column نوع json تذهب إلي orm وليكن eloquent تذهب هنا لعرض جميع قيم متاحه ثم نختار json أو jsonb ستجد أن موقع يشرح لك مثال The jsonb method creates a JSONB equivalent column: $table->jsonb('options'); بكل سهولة ويسر عليك فقط تعلم أنواع data type من SQL و يمكنك بكل سهولة أن تعمل مع أي ORM أو أي Framework
  20. عليك فقط أن تتأكد أن الملف بامتداد json و ثاني شئ هو أن تكون repository هي public
  21. مرحبا نعم يمكنك تعلم البرمجة فى هذا سن ولكن لابد من اختيار اشياء مناسبة لهذا السن لكي تفهم البرمجه وتتعامل معها . يمكنك البدء عن طريق scratch هي لغة رسومية بسيطه تعلمك البرمجة عن طريق أشكال بطريقه سهله يوجد دورة في حسوب تقدم شرح بطريقة رائعه .يمكنك زيارة موقع للمشاهدة مشاريع طلاب لمعرفة ما يمكنك فعله بهذه اللغة . يمكنك تعلم البرمجة أيضا فى هذا السن عن طريق موقع Code.org هو موقع يحتوي علي دورس بسيطه المختلفه المناسبه لكل سن . يوجد أيضا العديد من أمثله . تساعدك في سنك للتعلم البرمجة بالتوفيق إن شاء الله
  22. مرحبًا عبد الواحد. اعتقد أنه تجربة جيدة لك أنت اﻷن قمت بمعرفة اﻷصدار الخامس و سوف تتعلم ما الجديد فى اﻷصدار الثامن . هذا شئ جيد أي انك سوف تمر بمرحلة مهمه لك كمبرمج هي كيفية معرفة واستخدام التحديثات المختلفة بين اﻷصدارت وهذا شئ جيد جدا لك سوف يساعدك على تعامل بنفسك في مستقبل . لن تجد نفسك تتنظر أن يقوم أحد بشرح لك سوف تتعلم ذلك بنفسك سريعا . أيضا يوجد بعض الأشياء الجديدة سوف تفيدك جدا .
  23. هل من الممكن إرفاق مجلد مشروع ؟ أو تفضل أن اشرح لك علي مشروع جديد ؟ من البداية
×
×
  • أضف...