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

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

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

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

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

كل منشورات العضو عبدالله عبدالرحمن11

  1. إعتباراً من NumPy إصدار 1.13 ، يمكنك ببساطة اختيار المحور من أجل تحديد القيم الفريدة في أي مصفوفة N-dim. للحصول على الصفوف الفريدة يمكنك فعل هذا unique_rows = np.unique(original_array, axis=0)
  2. الطريقة النموذجية بدون إستخدام مكتبات خارجية المتغيرات يتم تخزينها في المتغير process.argv ، وهيا عبارة عن مصفوفة تحتوي المتغيرات arguments ولكن العنصر الأول هو سيكون node والعنصر الثاني سيكون اسم ملف JavaScript وبقية العناصر ستكون أي متغيرات arguments إضافية ، يمكنك الحصول عليهن كالآتي process.argv.forEach(function (val, index, array) { console.log(index + ': ' + val); }); أو يمكنك إستخدام أحد هذه الحزم Minimist للحصول على الحد الدنى من قراءة المتغيرات arguments Commander.js وهذه الوحدة الأكثر إعتماداً لقراءة المتغيرات arguments meow بديل خفيف ل Commander.js Yargs قارئ المتغيرات arguments أكثر تعقيداً Vorpal.js تطبيق موجه أوامر تفاعلي مع قراءة المتغيرات arguments
  3. يجب عليك تنفيذ هذا الأمر داخل MySQL ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; قم بإستبدال root الى رابط localhost الخاص بك ، وايضا قم بإستبدال password بكلمة السر الخاصة بك ومن ثم قم بتنفيذ هذا الإستعلام لإعادة تحديث الصلاحيات flush privileges; حاول الاتصال ب node بعد الإنتهاء من السابق إذا لم يعمل لديك قم بإزالة 'localhost'@ في الأمر السابق
  4. إذا كنت تقصد إعادة تشغيل للخادم بالكامل reboot فيمكنك إستخدام الكود التالي // يمكنك إستدعاء هذه الدالة function reboot(){ require('child_process').exec('shutdown -r now', function (msg) { console.log(msg) }); } اما إذا كنت تريد إعادة تشغيل خادم node فيمكنك إستخدام هذا الكود /* إذا كنت تستخدم express إستبدل restart بالمسار الذي تريد */ app.get('/restart', (req, res)=> { /* استبدل app_name بإسم خادم node */ require('child_process').exec('pm2 restart app_name', function (msg) { console.log(msg) }); })
  5. هذه مشكلة صلاحية وتغيير المستخدم لن يحل لك هذه المشكلة إلا إذا كان المستخدم مسؤول فإذن لديه صلاحية لحل هذه المشكلة يجب عليك تشغيل البرنامج من المستخدم root أو مستخدم مسؤول Administrator أو من أي مستخدم عادي بإستخدام الأمر التالي sudo ..... لكي يتم تنفيذ البرنامج كمسؤول أو بمعنى آخر بصلاحية مسؤول وللتقليل من إحتمالية ظهور أخطاء في الصلاحية ، يمكنك تعديل npm لكي يستخدم مسار آخر في هذا المثال سننشئ مسار مخفي في مسار home في موجه الأوامر في مسار home انشئ هذا المجلد mkdir ~/.npm-global قم بتعديل npm لكي يستخدم المسار الجديد كالآتي npm config set prefix '~/.npm-global' في محرر النص الذي تفضله افتح وانشئ ملف ~/.profile وقم بإضافة هذا السطر export PATH=~/.npm-global/bin:$PATH في موجه الأوامر قم بتحديث متغيرات النظام source ~/.profile لتجريب التعديلات الجديدة قم بتثبيت حزم npm ثبيتها ك global بدون إستخدام sudo
  6. يمكنك قراءة الملف package.json والحصول البيانات الذي تريدها من بإستخدام الدالة ()readFile أو ()readFileSync من الحزمة fs ومن ثم تحويل البيانات من Buffer الى نص String بإستخدام ()toString وآخيراً تحويل البيانات من JSON الى كائن object بإستخدام ()JSON.parse والحصول على أسماء الحزم وإصداراتها من الكائن الفرعي dependencies كما هو موضح في الكود الآتي const fs = require('fs') const str = JSON.parse(fs.readFileSync('./package.json').toString()) console.log(str.dependencies) أو ببساطة كالآتي const package = require('./package.json') console.log(package.dependencies) وللتحديث let npm = require('npm'); npm.load({'save-dev': true}, function () { npm.commands.outdated(function (err, rawOutdated) { var outdated = rawOutdated.map(function (module) { return module[1]; }); npm.commands.install(outdated, function(err, d) { }); }); });
  7. لأنك عندما تقوم بالتعديل على المتغيرات داخل الدالة فانت تقوم بتعديل متغيرات محلية local نسخة من المتغيرات الخارجية global ، والمتغيرات الخارجية global تبقى كما هي ، أي عندما يتم تمرير المتغيرات الى الدوال يتم إنشاء نسخة من هذه المتغيرات ولا يتم تعديل المتغيرات الأصلية اما إذا أردت تغيير المتغييرات الخارجية global فيجب عليك إضافة الكلمة المحجوزة global لكي تقوم بتعديل المتغيرات الأصلية ، ولا تقوم بعمل نسخة محلية ، كما في الكود الآتي def f(): global x x = 1 global y y.append(3) print('In f():', x, y) x = 0 y = [0,1,2] print('Before:', x, y) f() print('After: ', x, y)
  8. هناك ثلاث خطوات يجب عليك إتباعها أولاً فتح الملف بإستخدام الدالة ()open #open(مسار_الملف, الوضع) # مثال f = open('text_file.txt','r') والأوضاع كالآتي 'r' لقراءة read النص من الملف 'w' لكتابة write النص على الملف 'a' لإضافة append نص الى نهاية الملف الكائن file يعطيك ثلاث دوال للقراءة النص من ملف نصي ()read قراءة النص كاملاً الى سلسلة نصية ، هذه الدالة مفيدة إذا كان الملف النصي صغير وتريد تعديل كامل الملف ()readline يقراء الملف النصي سطر بسطر ويُرجع اليك سلاسل نصية ()readlines يقوم بقراءة كافة الأسطر من الملف ويُرجع اليك قائمة سلاسل نصية بعد الإنتهاء من قراءة الملف يبقى الملف مفتوحاً الى أن تقوم بغلقه بإستخدام الدالة ()close f.close() أما إذا أردت إغلاق الملف بشكل تلقائي بدون إستدعاء الدالة ()close ، فيمكنك إستخدام with كالآتي with open("file.txt") as f: contents = f.readlines() مثال عملي لطريقة للقراءة من ملف with open('text_file.txt') as f: contents = f.read() print(contents)
  9. يمكنك إستخدام الإستعلام الآتي mr = db.runCommand({ "mapreduce": "my_collection", "map": function() { for (var key in this) { emit(key, null); } }, "reduce": function(key, stuff) { return null; }, "out": "my_collection" + "_keys" }) db[mr.result].distinct("_id") بحيث ستحصل على أسماء الحقول فقط
  10. يمكنك إستخدام unset$ كالآتي ، لتغيير role من user الى admin db.collectionName.update({},{"$unset":{"attributes.role":"admin"}}) أما إذا أردت تحديث مستندات متعددة فيمكنك إستخدام هذا الأمر db.collectionName.update({},{"$unset":{"attributes.role":"admin"}},{"multi":true})
  11. إذا كنت تستخدم نظام Windows : قبل التصدير يجب الاتصال ب mongodb عبر إستخدام موجه الأوامر CMD ويجب عليك التأكد أنك تستطيع الاتصال ب local host الآن افتح موجه الأوامر CMD وقم بتنفيذ الآمر التالي mongodump --db "اسم قاعدة البيانات" --out "المسار" مثال mongodump --db mydb --out c:\TEMP\op.json أما إذا كنت تستخدم نظام Ubuntu اذهب الى terminal الى حيث mongodb مثبت وتأكد من أنك تستطيع الاتصال ب mongodb الان قم بفتح terminal جديدة وقم بتنفيذ هذا الأمر mongodump -d "اسم قاعدة البيانات" -o "اسم الملف" مثال eg: mongodump -d mydb -o output.json أما إذا كانت قاعدة البيانات عن بعد remotely فيمكنك إستخدام هذا الأمر mongodump --host xx.xxx.xx.xx --port 27017 --db your_db_name --username your_user_name --password your_password --out /target/folder/path
  12. إذا كنت تطور بإستخدام Expo فلن تحتاج الى Xcode أو Android Studio ، كلما عليك فعله هو كتابة أكواد JavaScript بإستخدام أي محرر أكواد انت مرتاح بإستخدامه مثل Atom أو VSCode أو أي محرر آخر وبعد الانتهاء من تطوير التطبيق يمكنك بنائه لل iOS بإستخدام الأمر التالي expo build:ios ومن ثم ستحصل على رابط سيتيح لك تنزيل ملف ipa. بعدما يتنهي من بنائه على خادم expo والآن تقوم بفتح حاسوب Mac الخاص بك أو فتح حاسوب ماك من MacInCloud وتنزيل تطبيق ipa. من الرابط الذي حصلت عليه ومن ثم يجب عليك رفعه الى AppStore بإستخدام بإستخدام تطبيق Transporter
  13. إذا أردت صفحة ويب لتقديم محتوى تعليمي فهناك قسمين يجب عليك برمجتهم: الأول وهو قسم الواجهات وهذا الذي يراه المستخدم ويتكون من HTML و CSS و JavaScript والثاني هو قسم الخلفية أو الخادم وهنا لديك العديد من الخيارات مثل Nodejs أو PHP أو python وغيرها يمكنك البدء بتعلم دورة واجهات المستخدم من أجل برمجة الواجهات بإستخدام HTML و CSS و JavaScript أما من ناحية برمجة الخادم فهناك عدة خيارات دورة تطوير التطبيقات بإستخدام JavaScript وهذه دورة غنية فيها العديد من المسارات وهي تطوير الواجهات بإستخدام React و تطوير الخوادم بإستخدام Nodejs وتطوير تطبيقات الجوال بإستخدام React Native وتطوير تطبيقات سطح المكتب بإستخدام Electron.js وكل هذا بلغة برمجة واحدة وهي لغة JavaScript دورة تطبيقات الويب بإستخدام PHP دورة تطبيقات الويب بإستخدام Ruby
  14. يمكنك إستخدام معامل XOR بايثون هذا سيقوم بإزالة المكرارات في كل قائمة set(lst1) ^ set(lst2) يمكنك إستخدامه كالآتي lst1 = ['One', 'Two', 'Three', 'Four'] lst2 = ['One', 'Two'] lst3 = set(lst1) ^ set(lst2) print(lst3) ويمكنك إستخدام الدالة من هذا الكود lst1 = ['One', 'Two', 'Three', 'Four'] lst2 = ['One', 'Two'] def Diff(li1, li2): return list(set(li1) - set(li2)) + list(set(li2) - set(li1)) print(Diff(lst1,lst2))
  15. يمكنك تثبيت pynotify وإستخدامها pip install pyinotify ويمكنك إستخدامها كالآتي import pyinotify,subprocess # الدالة الذي يتم إستدعائها عند تغير الملف def onChange(): print(changed) wm = pyinotify.WatchManager() wm.add_watch('log.txt', pyinotify.IN_MODIFY, onChange) notifier = pyinotify.Notifier(wm) notifier.loop()
  16. للحصول على النتائج الذي تكون أكبر من Greater than وفي mongo تكتب إختصاراً gt ، ويمكنك إستخدام هذا الأمر db.collection.find( { employees: { $gt: 5 } } ) ويجب عليك إستخدام gt$ منفصلاً من دون إستخدام size$ وإذا أردت الحصول على النتائج أكبر من أو يساوي greater than or equal يمكنك إستخدام الأمر الآتي db.collection.find( { employees: { $gte: 5 } } )
  17. أفضل حل لهذه المشكلة الأمنية هو تشفير كود بايثون والتي تهدف الى تخزين شفرة المصدر الأصلية الى شكل غير قابل للقراءة بالنسبة للبشر يمكنك إستخدام Cython وهو مترجم يأخذ وحدات py ويترجمها الى ملفات C عالية الأداء وهي تدعم بايثون 2 و 3 ولا توجد طريقة لعكس الكود المترجم الى المصدر ببايثون وهناك عدة طرق أخرى تعتيم الكود Obfuscate لتقليل قابلية قراءة الكود المصدري ترجم compile ملفات py الى ملف pyc ثنائي إستخدام Pyinstaller لتحويل الكود المصدري الى ملف ثنائي قابل للتنفيذ إستخادم PyArmor لتشفير الكود إستخدام نظام التشفير المتقدم AES لتشفير ملفات py و pyc الى ملفات pye تحويل ملفات py الى ملفات c وترجمتها الى ملف مكتبة ارتباط ديناميكي dynamic link library
  18. بما أن الشهادة تعتبر wildcard فيمكنك إستخدام wildcard في اسم النطاق نعم هو كذلك
  19. يستخدم فلاتر لتطوير تطبيقات الاندرويد والآيفون ، بينما php يستخدم لتطوير الخادم لذلك يمكنك إستخدام php لتطوير الخلفية أو الخادم server ويمكنك إستخدام فلاتر أو أي لغة أو إطار عمل آخر لتطوير التطبيقات والتواصل مع الخادم ، لذلك تطبيقات الجوال منفصل تماماً عن تطوير الخادم أما من ناحية دورة فلاتر فلا يتوفر لدينا حالياً دورة متخصصة في فلاتر ولكن لدينا دورة جافاسكريبت وفيها ايضاً مسار React Native وهو المنافس القوي لفلاتر وهو ايضاً أقدم من فلاتر فبعد إتمامك لمسار React Native يمكنك مباشرةً تطوير تطبيقات الاندرويد والآيفون ويمكنك فيما بعد إذا أردت تعلم فلاتر بشكل أسهل بكثير لأنك تعلمت React Native و لغة javascript الذي هي مقاربة للغة برمجة فلاتر والذي هي dart
  20. يمكنك إستخدام هذا الأمر db.books.find({"book_title": /.*m.*/}) أو إستخدام الأمر التالي وهو يقوم بنفس العمل db.books.find({"book_title": /m/}) وهذه طريقة آخرى db.books.find( { name: new RegExp('m', 'i') } ); انت تبحث عن شيء يحتوي m فيه ، وليس شيء يكون m في أوله ملاحظة إستعلامات mongo تستخدم التعابير الإعتيادية regular expressions وهنا عدة حلول أخرى إذا كان يحتوي m db.books.find({book_title:{'$regex' : 'm', '$options' : 'i'}}) إذا أردت أن يكون غير حساس لحالة الحرف case insensitive db.books.find({book_title:{'$regex' : '^m$', '$options' : 'i'}}) أما إذا أردت أن يكون الحرف في بداية الكلمة db.books.find({book_title:{'$regex' : '^m', '$options' : 'i'}}) أما إذا أردت أن يكون الحرف أو النص الذي تبحث عنه في آخر الكلمة db.books.find({book_title:{'$regex' : '^m', '$options' : 'i'}})
  21. ماهي لغة الخلفية backend الذي تستخدمها؟
  22. كلما عليك فعله هو تضمين embed مقاطع الفيديو عبر نسخ رابط الفيديو من المشاركة ووضعه في عنصر HTML اسمه iframe ويمكنك تحديد خيارات التضمين مثل طول وعرض الصفحة المضمنة في صفحتك كالآتي <!--الطول والعرض والرابط الخاص بالتضمين المأخوذ من يويتوب --> <iframe width="420" height="315" src="https://www.youtube.com/embed/tgbNymZ7vqY"> </iframe> يمكنك إضافة بعض الخيارات مثل تشغيل الفيديو تلقائياً وكتم الصوت عبر إضافة autoplay=1 mute=1 الى رابط الفيديو كالآتي <iframe width="420" height="315" src="https://www.youtube.com/embed/tgbNymZ7vqY?autoplay=1&mute=1"> </iframe>
  23. قم بحل المسألة بنفسك وإذا واجتهك مشكلة ولم تجد حلاً لها وقتها سنساعدك
  24. يمكنك إستدعاء حزمة timeit وإستخدامها كالآتي import timeit # إستدعاء الحزمة import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() # تسجيل بداية الوقت print("The start time is :",starttime) # طباعة بداية الوقت test() # تشغيل الاكواد المراد حساب وقتها print("The time difference is :", timeit.default_timer() - starttime) # طباعة الوقت المستغرق لتشغيل الكود السابق ويمكنك إستخدام نفس الحزمة بالطريقة الآتية import timeit # الكود الذي سيتم تشغيله مرة واحدة mysetup = "from math import sqrt" # الكود الذي تريد حساب الزمن المستغرق لتنفيذه mycode = ''' def example(): mylist = [] for x in range(100): mylist.append(sqrt(x)) ''' # طباعة الوقت المستغرق print (timeit.timeit(setup = mysetup, stmt = mycode, number = 10000)) وهذه طريقة أخرى أبسط لتشغيل الكود import timeit start = timeit.timeit() # تسجيل بداية الوقت print("hello") end = timeit.timeit()# تسجيل نهاية الوقت print(end - start) # طباعة الوقت المستغرق أو يمكنك إستخدام datetime كالآتي from datetime import datetime start_time = datetime.now() #هنا تقوم بكتابة الكود المراد حساب الوقت المستغرق لتنفيذه print('hi') end_time = datetime.now() print('Duration: {}'.format(end_time - start_time))
×
×
  • أضف...