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

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

  1. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      11

    • المساهمات

      6975


  2. شرف الدين حفني

    • نقاط

      6

    • المساهمات

      1690


  3. Bassel Jhr

    Bassel Jhr

    الأعضاء


    • نقاط

      6

    • المساهمات

      35


  4. Amer Abdallah

    Amer Abdallah

    الأعضاء


    • نقاط

      6

    • المساهمات

      150


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

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

  1. عند استخدام إطار العمل express في node.js لاحظت أن الطلبات لها وقت زمني افتراضي حوالي 120,000 ms للوصول إلى request timeout. ولكن أرغب بتعديل هذه المدّة وزيادة وقت الانتظار قبل الوصول إلى request timeout كيف يمكنني إجراء ذلك في إطار العمل express ؟
    3 نقاط
  2. حسب ما فهمت انك تريد ان تبدل المسافات بعلامة - صحيح؟ إذا كان الأمر كذلك فان سبب المشكلة لديك ان كلا من السطرين $string = preg_replace('#[^\w]#', ' ' , $string); $string = preg_replace('#[\s]+#', ' ', $string); كل ما يفعلونه انهم يقومون بتحويل المسافات, الى مسافات مرة اخرى , وهذا لان الرمز \s يرمز للمسافات والرمز \w يرمز لاى رمز غير الحروف الابجدية, فاذا انتا تقوم بتحويل الرموز والمسافات الى مسافات مرة اخرى بدل من تحويلهم الى شرطة - والسطر الاخير والاول $string = trim($string); return trim(strtolower($string), '-') وظيفتهم أنهم يمسحون المسافات من الجانب الايمن والايسر بفضل الدالة trim ولكن ماذا عن المسافات فى المنتصف بين الكلام؟ الحل ان تقم باستخدام دالة preg_replace كما فعلت سابقا, ولكن تقم باستبدالهم بشرطة - بدلاً من تبديلهم بمسافات كما في الكود الاتي: function seo($string) { $string = trim($string); $string = preg_replace('/\s+/', '-', $string); return strtolower($string); }
    3 نقاط
  3. أنا أستخدم Python الإصدار 3.6 وقمت بتثبيت MySQL الإصدار 5.0 و جانغو Django أيضًا. ويبدو أن جانغو Django يعمل بشكل جيد مع Python (قمت بعمل مشروع بسيط وقد عمل بدون مشاكل)، لكن ليس مع MySQL. أحاول أن أقوم بالتحويل من إستخدام SQLite إلى MySQL لكن يظهر لي خطأ بعدم وجود MySQL، كيف أجعل جانغو Django يستخدم MySQL بدلًا من SQLite؟
    2 نقاط
  4. لدي قائمة مكونه من مجموعة من النصوص وأريد أن أقوم بعكس ترتيب هذه العناصر بدون إنشاء قائمة جديدة، أي يتم تعديل القائمة نفسها، كالتالي: ['Python', 'JavaScript', 'HTML', 'CSS] # القائمة الأساسية ['CSS', 'HTML', 'JavaScript', 'Python] # القائمة بعد التعديل كيف يمكنني عكس ترتيب عناصر قائمة في بايثون؟
    2 نقاط
  5. في حال تم استخدام gzip وضغط محتوى body للطلبات من خلال node.js، كيف يمكن إعادة فك ضغطها؟ لقد حاولت استخدام الدالة createGunzip كما في التوثيق الرسمي: switch (response.headers['content-encoding']) { case 'br': pipeline(response, zlib.createBrotliDecompress(), output, onError); break; case 'gzip': pipeline(response, zlib.createGunzip(), output, onError); break; case 'deflate': pipeline(response, zlib.createInflate(), output, onError); break; default: pipeline(response, output, onError); break; } ولكنها لم تنجح، فما هي الطريقة الصحيحة لإجراء ذلك؟
    2 نقاط
  6. لقد قمت بعمل دالة تقوم باقتطاع النص و تحويله بهذا الشكل www.mywebsite.com/string-string و الدالة هي function seo($string) { $string = trim($string); $string = preg_replace('#[^\w]#', ' ' , $string); $string = preg_replace('#[\s]+#', ' ', $string); return trim(strtolower($string), '-'); } ولكن لم انجح في تحويل الجملة و ان اضع بين كل كلمة و كلمة -
    2 نقاط
  7. يجد طريقتين، إما تقوم بتخديم المشروع على 0.0.0.0 بتشغيل فلاسك كالتالي: flask run --host=0.0.0.0 حيث تم تحديد host. أو برمجيا: (يمكن وضع IP مكان 0000 حسب باقي الإجابة) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000) أو تضع IPv4 الخاص بحاسوبك، يمكن عرضه بالتعليمة كما في الصورة ipconfig => Windows ifconfig => Linux and Mac. ثم تضع العنوان الظاهر مكان host: flask run -h 192.168.1.100 قد تضطر لتفعيل المنفذ على لينوكس ليدعم tcp: sudo ufw enable sudo ufw allow 5000/tcp كما يمكن إضافة ملف متغيرات البيئة وتشغيل المشروع بشكل عادي flaskenv. .flaskenv FLASK_APP=app.py # الملف التنفيذي FLASK_ENV=development FLASK_RUN_HOST=[dev-host-ip] # ip FLASK_RUN_PORT=5000 # port
    2 نقاط
  8. الإصدار 2.0.0

    44934 تنزيل

    كثر العاملون عن بعد في اﻷعوام الأخيرة إما عملًا حرًا أو نظاميًا، وقفز هذا النمط قفزات كبيرة وتغير كذلك عدة مرات في تلك الأعوام، وربما نشهد استقرارًا نسبيًا لتقلباته على المدى القريب، وإن كان الإصدار الأول من هذا الكتاب منتصف عام 2015 يبشِّر به ويدعو الناس إليه وإلى مزايا التعامل مع الموظفين عن بعد، كان لزامًا علينا تحديث الكتاب وإصدار هذه النسخة التي سنتوسع فها ونتعرض للمشاكل التي تواجه الذين يوظِّفون عن بعد، فقد طرأت مشاكل جديدة لم تكن موجودة من قبل استحداث هذا النمط من العمل، وسنذكر بعض الحلول لتلك المشاكل مما رأيناه في السوق أو جربناه بأنفسنا. وكانت الوظائف التي تسمح بالعمل عن بعد في الغالب في المجال التقني أو المجالات التي تعتمد على التقنية في مهامها اليومية، حيث يكون المنتج مادة تُنشأ وتعالَج وتُخرَج على الحواسيب، إما برمجيات أو تصاميم أو نصوص أو مرئيات أو مواد مالية أو غيرها، على عكس المجالات التي تكون المنتجات فيها حقيقية مثل المصانع والمتاجر التي لا بد من تواجد حقيقي للموظفين في محل الإنتاج أو البيع، فازدهرت الشركات المتخصصة في تلك المجالات التي تعتمد أساسًا على نهج العمل البعيد وبدأت شركات كثيرة بتبنيه وفقًا لما يناسبها طبعًا، وهنا أردنا تبيان الطريق الصحيح الذي يسهِّل على صاحب الشركة تبني مفهوم العمل عن بعد ويوصل بشركته إلى النجاح، فرأينا أن نضع هذا الكتاب بين يديك ليكون عونًا ودليلًا ومرجعًا. هذه النسخة موجَّهة في الأساس إلى رواد الأعمال وأصحاب الشركات الذين يودون تأسيس شركة تعمل عن بعد أو لديهم شركة قائمة تقليدية تعمل من مقر حقيقي ويريدون تحويلها إلى شركة بعيدةً سواءً كليًا أو جزئيًا، أما إن كنت عاملًا تعمل عن بعد، سواءً موظفًا أو مستقلًا، فنحيلك هنا إلى كتاب دليل المستقل والعامل عن بعد. ونرجو بهذا العمل أن نكون قد وُفقنا في وضع مرجع بين يديك يؤهلك لتأسيس شركة تعمل عن بعد ويرشدك إلى أهم نواحي إدارتها وتوظيف مختلف الكفاءات فيها، بل وحتى تطويرها والانطلاق بها نحو النجاح، عسى أن نرى الكثير من الشركات العربية التي تخدم سوق العمل وتقوده نحو التطور والنجاح. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0». يمكنك قراءة فصول الكتاب على شكل مقالات نسردها بالترتيب التالي: مدخل إلى العمل عن بعد تأسيس بيئة عمل عن بعد أساسيات التوظيف عن بعد آليات الإدارة والتطوير لشركة تعمل عن بعد تحديات العمل عن بعد والإدارة البعيدة استقرار وتطور الشركات العاملة عن بعد
    1 نقطة
  9. لقد لاحظت وجود كل من app.render و res.render في node.js ولكن في التوثيق الرسمي التفاصيل لكل منهما متشابهة، وكل منها يستدعي callback. ما هو الفرق الأساسي بينهما وماهي الحالات التي يجب فيها استخدام كل واحدة؟
    1 نقطة
  10. أريد تشفير كلمات السر فى قاعدة البيانات
    1 نقطة
  11. في مشروع جانغو Django الخاص بي أريد الحصول على عنوان URL الكامل للصفحة الحالية (مثل /https://example.com/path/to/route)، كيف أقوم بذلك بإستخدام التابع request؟
    1 نقطة
  12. عاوز اعمل صفحه اعاده توجيه للروابط لما حد يدوس علي الرابط يحوله الي صفحه انتظار لمده ٢٠ ثانيه
    1 نقطة
  13. كيف يمكنني أن أحصل على أبعاد tensor (موتر) في تنسرفلو Tensorflow (ال shape)؟
    1 نقطة
  14. سؤالك مطروح مسبقاً وقام عدة مدربين بتقديم إجابات وتنوعة له، يمكنك مراجعة السؤالين: والسؤال: ثم يمكنك مراجهة هذه المقالة: وإن احتجت لأي توضيحات، اقتبس إجابتي وأضف سؤال واضح ومحدد من فضلك.
    1 نقطة
  15. يمكن عكس قائمة عن طريق slice كالتالي: myList = myList[::-1] print(myList) إن لم ترد حفظ الناتج، يمكن استخدام الدالة reversed التي تعيد iterator يمكن المرور عليها بحلقة: for i in reversed(myList): print(i) وإذا كنت تريد حفظه للدالة reversed يمكن تحويل الناتج لقائمة: list(reversed(myList)) كما يمكن استخدام numpy والدالة flip: import numpy as np array = [0, 10, 20, 40] list(np.flip(array)) [40, 20, 10, 0] كما يمكن استخدام تابع الترتيب وعمل ترتيب تنازلي.. بتمرير المعامل reverse=True myList.sort(reverse=True)
    1 نقطة
  16. اريد التسجيل في دورة تسويق الكتروني كاملة متكاملة
    1 نقطة
  17. لم أفهم الاختلاف بين نطاق الاسم name scope والنطاق المتغير variable scope في Tensorflow؟ هل من الممكن أن يتم توضيحه؟
    1 نقطة
  18. هل سوف يتم اضافة دورة كاملة ل فلاتر ف المستقبل القريب !؟
    1 نقطة
  19. يمكنك مراسلة الدعم الفني من هنا و يمكنك وضع أي سؤال يجول في خاطرك بخصوص الدورات و سقوم الدعم الفني بالرد عليك و الإجابة على جميع أسئلتك.
    1 نقطة
  20. كيفية ارسال رسالة من كلاينت لكلاينت ثانى باستخدام Socket.io
    1 نقطة
  21. ما الفرق بين الأمرين التاليين pygame.display.update() و pygame.display.flip()
    1 نقطة
  22. لدي الدالة التالية function getBaseUrl( ) { echo $_SERVER['HTTP_HOST'].strrev( strstr( strrev( $_SERVER['PHP_SELF'] ), "/" ) ); } ولا اعرف اين المشكلة لا تقوم بارجاع http,https
    1 نقطة
  23. جزاك الله خيرا يعني أن تعلمت الفلاتر اعرف اعمل تطبيقات الاندرويد و الايفون ؟؟ وأما بالنسبة للأمن السيرباني له ترتيب معين في اللغات أم لا؟ وإذا كان له ترتيب معين اذكر اللغات بالترتيب أن امكن
    1 نقطة
  24. أهلًا فاطمة، ربما يفيدك هذا الرابط: https://helpcenter.memoq.com/hc/en-us/articles/360016473300-5-QA-Checker
    1 نقطة
  25. هل هناك طريقة لتعريف حقلين على أنهما فريدان unique في جانغو Django؟ لدي جدول المنشورات ولا أريد أن تتكرر قيمة الحقل feild1 و الحقل feild2 معًا، أي أن قيمة الحقل الأول يمكن أن تتكرر وقيمة الحقل الثاني كذلك، لكن لا يمكن لصفين في الجدول أن يكون لها نفس قيم الحقلين معًا. class Post(models.Model): id = models.AutoField(primary_key=True) field1 = models.CharField(max_length=150) field2 = models.CharField(max_length=150) ويجب أن يكون الجدول في قاعدة البيانات في النهاية كالتالي: id | feild1 | feild2 1 | 1 | 55 2 | 1 | 66 3 | 2 | 55 <<< 4 | 2 | 55 <<< لا يمكن أن يكون هناك صفين لهما نفس قيم الحقلين معًا (2 و 55) حاولت وضع unique = True كسمة في الحقولshort_link_id و post_slug لكنها لا تعمل.
    1 نقطة
  26. يمكنك فك الضغط من خلال http نفسه عن طريق تخزين فك التشفير في buffer وإضافة الرد response إلى gunzip من خلال pipe كالتالي: var http = require("http"), zlib = require("zlib"); function getGzipped(url, callback) { var buffer_stream = []; http.get(url, function(res) { var gunzip = zlib.createGunzip(); res.pipe(gunzip); gunzip.on('data', function(data) { // إضافة الجزء الجاهز من فك التشفير إلى buffer buffer.push(data.toString()) }).on("end", function() { //تجميع الأجزاء وإرسال الرد callback(null, buffer.join("")); }).on("error", function(e) { callback(e); }) }).on('error', function(e) { callback(e) }); } getGzipped(url, function(err, result) { console.log(result); }); كما يمكنك تجنّب ذلك من خلال إضافة خيار encoding: null إلى الطلب request وبذلك ستتجنّب تحويل الجزء الذي يتم تحميله من جسم الطلب body إلى النمط string ويبقى بشكل binary buffer مثال: request = require('request'); zlib = require('zlib'); request(url, {encoding: null}, function(err, response, body){ if(response.headers['content-encoding'] == 'gzip'){ zlib.gunzip(body, function(err, dezipped) { callback(dezipped.toString()); }); } else { callback(body); } });
    1 نقطة
  27. لقد قمت بتثبيت الحزم وادراجها ضمن ملف index.js بالشكل التالي import '@laylazi/bootstrap-rtl/dist/css/bootstrap-rtl.min.css'; import './css/style.css'; import 'bootstrap/dist/js/bootstrap.min.js'; import 'jquery/dist/jquery.min'; import 'popper.js/dist/popper.min'; import '@fortawesome/fontawesome-free/js/all.min'; ولكنه ظهرت لي مشكلة في الترمينال وحتى ان مكتبة الايقونات لم تعد تعمل بينما كانت تعمل سابقا ظننت ان المشكلة من تنزيل popper كما فهمت من الخطا الذي اعطاني اياه اعدت تثبيته لكنه لم ينجح ومازالت المشكلة هذه رسالة الخطا Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\coffee>npm run build > coffee@1.0.0 build C:\coffee > webpack serve (node:6000) [DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS] DeprecationWarning: optimizeChunkAssets is deprecated (use Compilation.hooks.processAssets instead a nd use one of Compilation.PROCESS_ASSETS_STAGE_* as stage option) (Use `node --trace-deprecation ...` to show where the warning was created) i ?wds?: Project is running at http://localhost:1239/ i ?wds?: webpack output is served from i ?wds?: Content not from webpack is served from C:\coffee\dist x ?wdm?: assets by info 1.39 MiB [immutable] assets by path *.jpeg 1.32 MiB 12 assets assets by path *.jpg 75.8 KiB asset b43286bd493efbc2bf35.jpg 33.8 KiB [emitted] [immutable] [from: src/ima ges/a3.jpg] asset 21d0191046d0f29643dd.jpg 27.8 KiB [emitted] [immutable] [from: src/ima ges/a1.jpg] asset ddd48e0262fea7b244d0.jpg 7.87 KiB [emitted] [immutable] [from: src/ima ges/a2.jpg] asset aa2e7f1cf6dd9b7cc295.jpg 6.38 KiB [emitted] [immutable] [from: src/ima ges/a4.jpg] assets by path *.html 62.5 KiB 7 assets assets by chunk 1.82 MiB (name: main) asset main.js 1.66 MiB [emitted] (name: main) asset css/style.css 161 KiB [emitted] (name: main) Entrypoint main 1.82 MiB = css/style.css 161 KiB main.js 1.66 MiB runtime modules 1.25 KiB 6 modules orphan modules 19.4 KiB [orphan] 1 module modules by path ./node_modules/ 1.61 MiB (javascript) 159 KiB (css/mini-extract) modules by path ./node_modules/webpack-dev-server/client/ 20.9 KiB 10 modules modules by path ./node_modules/html-entities/lib/*.js 61 KiB 5 modules modules by path ./node_modules/webpack/hot/ 1.58 KiB 3 modules modules by path ./node_modules/url/ 37.4 KiB 3 modules modules by path ./node_modules/querystring/*.js 4.51 KiB 3 modules modules by path ./node_modules/@laylazi/bootstrap-rtl/dist/css/*.css 50 bytes (javascript) 159 KiB (css/mini-extract) ./node_modules/@laylazi/bootstrap-rtl/dist/css/bootstrap-rtl.min.css 50 byte s [built] css ./node_modules/css-loader/dist/cjs.js!./node_modules/@laylazi/bootstrap- rtl/dist/css/bootstrap-rtl.min.css 159 KiB [built] [code generated] modules by path ./src/ 313 bytes (javascript) 4.93 KiB (css/mini-extract) ./src/index.js 263 bytes [built] [code generated] ./src/css/style.css 50 bytes [built] [code generated] css ./node_modules/css-loader/dist/cjs.js!./src/css/style.css 4.93 KiB [built] [code generated] ERROR in ./node_modules/bootstrap/dist/js/bootstrap.min.js 6:85-110 Module not found: Error: Can't resolve '@popperjs/core' in 'C:\coffee\node_modul es\bootstrap\dist\js' resolve '@popperjs/core' in 'C:\coffee\node_modules\bootstrap\dist\js' Parsed request is a module using description file: C:\coffee\node_modules\bootstrap\package.json (relativ e path: ./dist/js) Field 'browser' doesn't contain a valid alias configuration resolve as module C:\coffee\node_modules\bootstrap\dist\js\node_modules doesn't exist or is not a directory C:\coffee\node_modules\bootstrap\dist\node_modules doesn't exist or is not a directory C:\coffee\node_modules\bootstrap\node_modules doesn't exist or is not a di rectory C:\coffee\node_modules\node_modules doesn't exist or is not a directory looking for modules in C:\coffee\node_modules single file module using description file: C:\coffee\package.json (relative path: ./node_ modules/@popperjs/core) no extension Field 'browser' doesn't contain a valid alias configuration C:\coffee\node_modules\@popperjs\core doesn't exist .js Field 'browser' doesn't contain a valid alias configuration C:\coffee\node_modules\@popperjs\core.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\coffee\node_modules\@popperjs\core.json doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\coffee\node_modules\@popperjs\core.wasm doesn't exist C:\coffee\node_modules\@popperjs\core doesn't exist looking for modules in C:\node_modules single file module No description file found in C:\node_modules\@popperjs or above no extension Field 'browser' doesn't contain a valid alias configuration C:\node_modules\@popperjs\core doesn't exist .js Field 'browser' doesn't contain a valid alias configuration C:\node_modules\@popperjs\core.js doesn't exist .json Field 'browser' doesn't contain a valid alias configuration C:\node_modules\@popperjs\core.json doesn't exist .wasm Field 'browser' doesn't contain a valid alias configuration C:\node_modules\@popperjs\core.wasm doesn't exist C:\node_modules\@popperjs\core doesn't exist @ ./src/index.js 3:0-44 webpack 5.50.0 compiled with 1 error in 14087 ms i ?wdm?: Failed to compile.
    1 نقطة
  28. عادةً كلمات السر فى قاعدة البيانات لا يحدث لها عملية تشفير وإنما يحدث عليها عملية Hashing ويوجد فرق بين التشفير وبين الhashing , فإان التشفير هو طريقة لتحويل النص الى نص اخر لا معنى له ويكن عادةً هناك ما يسمى بمفتاح التشفير اللذي يمكنك من تحويل الشيفرة الى الكلمة الاصلية مرة اخرى وانما الHashing هو عبارةة عن دالة احادية الإتجاه, اى إن دالة الHashing تقم بأخذ النص الأصلي وتحويله الى نص اخر , ولكن لا يوجد مفتاح ليقم بإرجاع الشيفرة الى النص الاصلي, وهذا هو ما يحدث للكلمات السرية في قواعد البيانات من اجل ضمان امن البيانات فإذا حدث اختراق في قاعدة البيانات لا يستطيع المخترق معرفة مفتاح التشفير ويحصل على جميع المعلومات, فإنه لا يوجد في الأساس مفتاح تشفير وبالتالي لا يكون المخترق قادرً على اختراق البيانات وتتم عملية الHashing عادة بإستخدام دالة تسمى B-crypt وهي من أشهر دوال الhashing
    1 نقطة
  29. https يعني ان موقعك مزود بssl وأمن للتواصل, والكود اللذي كتبته انت لا يتضمن تلك المعلومة, انما يتضمن معلومات اخرى : function getBaseUrl( ) { if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') echo "https".$_SERVER['HTTP_HOST'].strrev( strstr( strrev( $_SERVER['PHP_SELF'] ), "/" ) ); else echo "http".$_SERVER['HTTP_HOST'].strrev( strstr( strrev( $_SERVER['PHP_SELF'] ), "/" ) ); } ينقصك هنا ان تتأكد اذا كان الاتصال مؤمن تضف كلمة https للرابط عدا ذلك تضف http فقط,وهذا يمكن اتمامه على النحو التالي:
    1 نقطة
  30. لتعلم برمجة تطبيقات الهواتف الذكية يجب عليك تحديد نظام التشغيل الذي ستقوم بإنشاء التطبيقات له (أندرويد أم iOS أم كلاهما معًا)، ولكل من الإختيارات الثلاثة السابقة لها لغات وتقنيات خاصة بها، كالتالي: أندرويد: ستحتاج إلى تعلم لغة مثل Java أو Kotlin لإنشاء تطبيقات أندرويد، وكذلك ستحتاج حساب مطور في متجر جوجل للتطبيقات (إن كنت تريد نشر تطبيقاتك في متجر Play) والذي يكلف 25$ تدفع مرة واحدة. iOS: اللغة الأكثر إستعمالًا لعمل تطبيقات iOS هي Swift ويمكنك أن تستعمل لغة object-c أيضًا، ولرفع تطبيقك على apple store ستحتاج إلى إنشاء حساب مطور بتكلفة 99$ سنويًا. Cross Platform: تطبيقات متعددة المنصات، أي أنه يمكنك أن تقوم بإنشاء تطبيق بلغة معينة وإطار عمل معين ومن ثم إستخدام التطبيق على كلا المنصتين (Android و iOS) وهذا الأمر يقلل تكلفة إنشاء التطبيقات، لأنك سوف تكتب كود واحد فقط، وسوف يعمل على كلا النظامين. تتزايد شعبية Flutter وReact Native حاليًا في إنشاء تطبيقات cross platform كما يمكنك أن تقوم بإنشاء تطبيقات هجينة عبر تقنيات الويب من خلال إستخدام لغات مثل HTML, CSS, Javascript وهي نوع من أنواع cross platform أي أنك تكتب كود واحد ويعمل على أكثر من نظام تشغيل، ويستخدم إطار العمل Cordova كثيرًا في هذا المجال. يمكنك التعرف أكثر حول الفرق بين أنواع التطبيقات من خلال هذا الفيديو: كما تحتوي الأكاديمية على الكثير من المقالات في كل مجال من المجالات السابقة، مثل مقالات حول لغة Java، ولغة kotlin، وبرمجة الأندرويد بشكل عام. أما بالنسبة للأمن السيبراني cyber security فسوف تحتاج إلى تعلم كل أساسيات البرمجة وكيفية إستخدام لغات مثل Python لإنشاء الأداوات المناسبة التي سوف تساعدك في إختبار الإختراق، كما أنه عليك تحديد المجال الذي تريد التخصص فيه (إختبار إختراق المواقع، أو أنظمة التشغيل أم إختبار إختراق شبكات .. إلخ)، بعد ذلك عليك دراسة كيف تعمل الأهداف التي تحاول حمايتها (مواقع، برامج، تطبيقات، ألعاب .. إلخ) حسب المجال الذي حددته. عليك أيضًا تعلم كيفية إستخدام نظام التشغيل Linux حيث أنه النظام الأكثر إستعمالًا في إختبار الإختراق، وأغلب خوادم الويب والشركات الكبيرة في العالم تستخدمه. تحتوي الأكاديمية على بعض الكتب التي قد تساعدك كثيرًا في مرحلة التعلم، مثل كتاب "البرمجة بلغة بايثون" و كتاب "دليل إدارة خواديم أوبنتو" (في حالة أردت أن تتخصص في مجال الويب)، بالإضافة إلى كثير من المواضيع المتقدمة في شكل مقالات في لغة Python.
    1 نقطة
  31. عند استخدامها مع virtualenv ، سيتم تثبيت الحزم في المسار: <virtualenv_name>/lib/<python_ver>/site-packages وبشكل عام كل مايتم تثبيته من خلال pip يمكنك العثور عليه من خلال: pip show <package name> مثال: (base) C:\Users\Windows.10>pip show cvxopt WARNING: Package(s) not found: cvxopt (base) C:\Users\Windows.10>pip show numpy Name: numpy Version: 1.19.5 Summary: NumPy is the fundamental package for array computing with Python. Home-page: https://www.numpy.org Author: Travis E. Oliphant et al. Author-email: None License: BSD Location: c:\users\windows.10\anaconda3\lib\site-packages Requires: Required-by: transformers, torchvision, torch, thinc, tensorflow, tensorboardX, tensorboard, tables, streamlit, statsmodels, spacy, simpletransformers, seqeval, seaborn, scipy, scikit-learn, PyWavelets, pytest-arraydiff, pydeck, pyarrow, patsy, pandas, opt-einsum, opencv-python, numexpr, numba, mkl-random, mkl-fft, matplotlib, Keras, Keras-Preprocessing, imageio, h5py, gensim, easyocr, datasets, Bottleneck, bokeh, blis, bkcharts, astropy, altair
    1 نقطة
  32. OneToOneField يمثل علاقة (one-to-one) ويمثل مفهوم ال composition (التركيب) في الكائنات object، بينما ForeignKey يمثل (one-to-many) ويمثل مفهوم ال agregation أو التجميع للكائنات. OneToOneField هي علاقة واحد لواحد كما ذكرنا وهي مشابهة لحالة ForeignKey مع تحديد قيمة unique على True، ولكن في حالة reverse سيعيد كائناً واحداً مباشرةً. أما ForeignKey فستعيد QuerySet. (one-to-one field )(one-to-one)== (ForeignKey with unique=True)(one-to-many) ForeignKey ="reverse" relation returns a QuerySet. # وستعيد QuerySet one-to-one field = "reverse" يعيد كائن واحد مباشرةً سأعطيك الآن مثال عملي لتفهمهم بشكل أفضل. افترض للحظة أنك تريد إنشاء مدونة في django حيث يمكن للصحفيين كتابة المقالات الإخبارية ونشرها. يريد مالك الصحيفة الإلكترونية أن يسمح لكل من مراسليه بنشر العديد من المقالات التي يريدونها ، لكنه لا يريد أن يعمل مراسلين مختلفين على نفس المقالة. هذا يعني أنه عندما يذهب القراء ويقرأون مقالًا ، فإنهم لن يروا سوى مؤلف واحد في المقالة. على سبيل المثال: مقال بقلم محمد، مقالة بقلم علي، مقالة بقلم إياد. لا يمكنك الحصول على مقال بواسطة محمد & علي لأن المدير لا يريد مؤلفين أو أكثر للعمل على نفس المقالة. كيف يمكننا حل هذه "المشكلة" بمساعدة django؟ مفتاح حل هذه المشكلة هو django ForeignKey. فيما يلي الكود الكامل الذي يمكن استخدامه لتنفيذ فكرة رئيسنا. from django.db import models # أنشئ النموذج أولاً هنا class Reporter(models.Model): first_name = models.CharField(max_length=30) def __unicode__(self): return self.first_name class Article(models.Model): title = models.CharField(max_length=100) reporter = models.ForeignKey(Reporter) def __unicode__(self): return self.title الآن: # يُستخدم لتحديد العلاقات بين شخص وآخر django ForeignKey يوضح لنا هذا المثال العملي التالي أن #لإنشاء علاقات واحد لواحد OneToOneField بينما # إنشاء Reporter object R1 from thepub.models import Reporter, Article R1 = Reporter(first_name='Ali') R1.save() # إنشاء Article object A1. A1 = Article.objects.create(title='TDD In Django', reporter=R1) A1.save() # الحصول على اسم الناشر A1.reporter.first_name 'Ali' # إنشاء آخر R2 = Reporter.objects.create(first_name='Mohamed') R2.save() # الآن حاول إضافته للمقالة السابقة A1.reporter.add(R2) # AttributeError سنحصل على خطأ # كما ترى ، لا يمكن ربط كائن مقال بأكثر من كائن ريبورتير واحد. #r1 الآن لنجرب إرفاق أكثر من مقال ل A2 = Article.objects.create(title='Python News', reporter=R1) R1.article_set.all() # [<Article: Python News>, <Article: TDD In Django>]
    1 نقطة
  33. هناك بعض الاختلافات بين OneToOneField و ForeignKey . كما ورد في الدليل النهائي لـ Django OneToOneField علاقة one-to-one . من الناحية المفاهيمية ، هذا مشابه لـ ForeignKey مع unique=True ، ولكن الجانب العكسي من العلاقة سيعيد كائن واحد بشكل مباشر. بالتباين مع علاقة OneToOneField العكسية تقوم علاقة ForeignKey العكسية بإرجاع QuerySet. على سبيل المثال ، إذا كان لدينا النموذجان التاليان نموذج car يستخدم OneToOneField نموذج Car2 يستخدم ForeignKey مع unique=True مثال OneToOneField from testapp.models import Car, Engine c = Car.objects.get(name='Audi') e = Engine.objects.get(name='Diesel') e.car <Car: Audi> مثال ForeignKey مع unique=True from testapp.models import Car2, Engine2 c2 = Car2.objects.get(name='Mazda') e2 = Engine2.objects.get(name='Wankel') e2.car2_set.all() [<Car2: Mazda>] كود النموذج from django.db import models class Engine(models.Model): name = models.CharField(max_length=25) def __unicode__(self): return self.name class Car(models.Model): name = models.CharField(max_length=25) engine = models.OneToOneField(Engine) def __unicode__(self): return self.name class Engine2(models.Model): name = models.CharField(max_length=25) def __unicode__(self): return self.name class Car2(models.Model): name = models.CharField(max_length=25) engine = models.ForeignKey(Engine2, unique=True, on_delete=models.CASCADE) def __unicode__(self): return self.name
    1 نقطة
  34. تقوم دالة الهوك useEffect بعمل تلك الوظيفة بالإضافة إلى باقي الدوال الخاصة بدورة حياة الكائن , كما هو موضح في الأمثلة القادمة يمكنك محاكاة الدالة componentDidMount ببساطة عن طريق إدخال مصفوفة فارغة في المدخل الثانى للدالة كما في هذا الشكل const HsoubComponent=()=>{ const [a,setA()]=useState(""); useEffect(()=>doSomething(),[]); } كما يمكنك محاكاة الدالة componentDidUpdate عن طريق إدخال القيم اللتي يترتب عليها تحديث الcomponent في المدخل الثاني كما في هذا الشكل const HsoubComponent=()=>{ const [a,setA()]=useState(""); useEffect(()=>doSomething(),[a]); } كما يمكنك محاكاة الدالة componentWillUnmount عن طريق وضع return واللتي تمثل عملية الclean up او التنظيف للموارد const HsoubComponent=()=>{ const [a,setA()]=useState(""); useEffect(()=>{ doSomething() return( doCleanup(); ) },[]); }
    1 نقطة
  35. أهلا فاطمة @Fatma Abdeldaem، هنالك الكثير من الأدوات والإضافات المشابهة التي تعمل مع تطبيقات الترجمة بمساعدة الحاسوب CAT tools وهي: Verifika ErrorSpy Xbench Checkmate بالتوفيق في اختيارك!
    1 نقطة
  36. كلا لايتغير SH1 إنما عليك إضافة المفتاح لديك و مفاتيح التشفير في google play console.. تابع هذا الحل:
    1 نقطة
  37. أنشئ ملف manager.py في مجلد users from django.contrib.auth.base_user import BaseUserManager from django.utils.translation import ugettext_lazy as _ class CustomUserManager(BaseUserManager): """ موديل معدل لجعل الدخول ب ايميل بدل اسم المستخدم """ def create_user(self, email, password, **extra_fields): """ انشاء المستخدم """ if not email: raise ValueError(_('The Email must be set')) email = self.normalize_email(email) user = self.model(email=email, **extra_fields) user.set_password(password) user.save() return user def create_superuser(self, email, password, **extra_fields): """ انشاء المستخدم ادمن """ extra_fields.setdefault('is_staff', True) extra_fields.setdefault('is_superuser', True) extra_fields.setdefault('is_active', True) if extra_fields.get('is_staff') is not True: raise ValueError(_('Superuser must have is_staff=True.')) if extra_fields.get('is_superuser') is not True: raise ValueError(_('Superuser must have is_superuser=True.')) return self.create_user(email, password, **extra_fields) من هنا يمكنك الاختيار اما استخدام AbstractUser أو AbstractBaseUser والشيفرة المستخدم في model.py على التوالي AbstractUser from django.contrib.auth.models import AbstractUser from django.db import models from django.utils.translation import ugettext_lazy as _ from .managers import CustomUserManager class CustomUser(AbstractUser): username = None email = models.EmailField(_('email address'), unique=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = CustomUserManager() def __str__(self): return self.email AbstractBaseUser from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin from django.db import models from django.utils import timezone from django.utils.translation import gettext_lazy as _ from .managers import CustomUserManager class CustomUser(AbstractBaseUser, PermissionsMixin): email = models.EmailField(_('email address'), unique=True) is_staff = models.BooleanField(default=False) is_active = models.BooleanField(default=True) date_joined = models.DateTimeField(default=timezone.now) USERNAME_FIELD = 'email' REQUIRED_FIELDS = [] objects = CustomUserManager() def __str__(self): return self.email تبقى الان أن تعدل settings.py AUTH_USER_MODEL = 'users.CustomUser'
    1 نقطة
  38. إليك المثال التالي من التوثيق الرسمي: from django.db import models from django.contrib.auth.models import ( BaseUserManager, AbstractBaseUser ) class MyUserManager(BaseUserManager): def create_user(self, email, date_of_birth, password=None): # ينشئ ويحفظ مستخدمًا بالبريد الإلكتروني المحدد وتاريخ الميلاد وكلمة المرور if not email: raise ValueError('Users must have an email address') user = self.model( email=MyUserManager.normalize_email(email), date_of_birth=date_of_birth, ) user.set_password(password) user.save(using=self._db) return user def create_superuser(self, username, date_of_birth, password): #مع البريد الإلكتروني المحدد وتاريخ الميلاد وكلمة المرور superuser يقوم بحفظ وإنشاء u = self.create_user(username, password=password, date_of_birth=date_of_birth ) u.is_admin = True u.save(using=self._db) return u class MyUser(AbstractBaseUser): email = models.EmailField( verbose_name='email address', max_length=255, unique=True, ) date_of_birth = models.DateField() is_active = models.BooleanField(default=True) is_admin = models.BooleanField(default=False) objects = MyUserManager() USERNAME_FIELD = 'email' REQUIRED_FIELDS = ['date_of_birth'] def get_full_name(self): # يتم التعرف على المستخدم من خلال عنوان بريده الإلكتروني return self.email def get_short_name(self): # يتم التعرف على المستخدم من خلال عنوان بريده الإلكتروني return self.email def __unicode__(self): return self.email def has_perm(self, perm, obj=None): "هل المستخدم لديه سماحية محددة؟" # أبسط إجابة ممكنة: نعم ، دائمًا return True def has_module_perms(self, app_label): "هل يمتلك المستخدم أذونات لعرض التطبيق" app_label "؟" # أبسط إجابة ممكنة: نعم ، دائمًا return True @property def is_staff(self): "هل المستخدم عضو في فريق العمل؟" # أبسط إجابة ممكنة: جميع المسؤولين هم موظفين return self.is_admin كل ما عليك فعله هو إضافة AUTH_USER_MODEL إلى الإعدادات مع المسار إلى كلاس ال custom user ، والتي تتوسع إما AbstractBaseUser (إصدار أكثر قابلية للتخصيص) أو AbstractUser (يمكنك توسيع فئة المستخدم القديمة بشكل أكبر أو أقل).
    1 نقطة
  39. إضافة للإجابات التي قدمها سامح، يمكنك استخدام: from django.db.models.functions import Length Name.objects.annotate(alias_length=Length('alias')).filter(alias_length__gt=0) أو باستخدام Q: from django.db.models import Q Name.objects.exclude(Q(alias__isnull=True) | Q(alias__exact='')) أيضاً يمكنك استخدام isempty lookup عام بحيث يمكنك استخدامه مع أي حقل. يمكن استخدامه أيضاً بواسطة django rest_framework أو التطبيقات الأخرى التي تستخدم عمليات بحث django: from distutils.util import strtobool from django.db.models import Field from django.db.models.lookups import BuiltinLookup @Field.register_lookup class IsEmpty(BuiltinLookup): lookup_name = 'isempty' prepare_rhs = False def as_sql(self, compiler, connection): sql, params = compiler.compile(self.lhs) condition = self.rhs if isinstance(self.rhs, bool) else bool(strtobool(self.rhs)) if condition: return "%s IS NULL or %s = ''" % (sql, sql), params else: return "%s <> ''" % sql, params # ثم يمكنك استخدامه كالتالي Name.objects.filter(alias__isempty=False)
    1 نقطة
  40. إضافة إلى الإجابة التي قدمها سامح، في حال كنت تستخدم لينوكس أو ماك أو Apple يمكنك أيضاً تحديثه من خلال الأمر التالي: $ python -m pip install -U Django # --upgrade أو -U وإذا كنت تريد نسخة محددة يمكنك القيام بالتالي: # win pip install --upgrade django==3.3.1 إذا كنت ترغب في أن تكون قادرًا على تحديث شفرة Django من حين لآخر بأحدث إصلاحات الأخطاء والتحسينات: ######################### Installing the development version ##################### # mac + apple + lenux $ python -m pip install -e django/ # windows py -m pip install -e django\ سيؤدي هذا إلى جعل كود Django قابلاً للاستيراد ، كما سيجعل أمر الأداة المساعدة django-admin متاح. وبعبارة أخرى، ستكون أنت جاهز تماماً. وعندما تريد تحديث نسختك من شفرة مصدر Django، قم بتشغيل الأمر git pull من داخل مجلد django. وعند القيام بذلك، سيقوم Git بتنزيل أي تغييرات.
    1 نقطة
  41. هل يمكنك إضافة تفاصيل أكثر عن البرنامج؟
    1 نقطة
  42. يمكنك أن تستعمل التابع exclude كالتالي: User.objects.exclude(nickName__isnull = True) إذا كنت بحاجة إلى استبعاد القيم الفارغة أيضًا، فبإمكانك القيام بذلك من خلال تجميع الشروط معًا مثل: User.objects.exclude(nickName__exact = "").exclude(nickName__isnull = True) في الكود السابق سوف يتم إستبعاد كل القيم الفارغة أو التي تساوي Null يمكنك أيضًا أن تستعمل التابع Filter كالتالي: User.objects.filter(nickName__isnull = False, nickName__gt = "") يقوم الكود السابق بنفس الشيء وستحصل على نفس النتيجة
    1 نقطة
  43. يبدو أنك تستعمل إصدار قديم نوعًا ما من مدير الحزم pip، لذلك لا يتم تحديث مطلبات Django أيضًا، ولحل هذه المشكلة يجب عليك أولًا تحديث pip عبر الأمر التالي: pip install --upgrade pip وإن كنت تستعمل ويندوز فيمكنك أن تستعمل الأمر التالي: python -m pip install --upgrade pip بعد ذلك يمكنك تحديث كل الحزم من خلال الأمر التالي: pip install -r requirements.txt --upgrade وإن أردت تحديث حزمة Django فقط (وإعتماديات الحزمة dependencies) ففي الإصدار الحديث من pip يقوم بذلك تلقائيًا عبر الأمر التالي: pip install Django --upgrade أما إن لم تكن ترغب في تحديث الإعتماديات فيمكنك أن تضيف العلم --upgrade-strategy إلى الأمر الأخير، ولكن لا ينصح بعمل هذا الأمر لأنه قد يسبب الكثير من المشاكل لاحقًا.
    1 نقطة
  44. إن SSD مناسب لإقلاع نظام التشغيل وتثبيت البرامج الثقيلة التي تتطلب قراءة بيانات كثيرة مثل برامج التصميم و البرمجية و المونتاج والألعاب أي يصبح إقلاع وتشغيل هذه البرامج سريعاً. وإن قرص SSD أخف وزناً وأقل استهلاكاً لطاقة من HDD. ولكن لا ينصح (أو ليس ضرورياً) تخزين ملفات الوسائط مثل الفيديوهات والصور على SSD بل تخزن على HDD، أي المزيج الأفضل هو قرصين تخزين
    1 نقطة
  45. عليك عمل التعديلات بنفسك، ليس هدفنا حل المشاكل إنما شرح افضل طريقة لعملها، ثم إصلاح الأخطاء إن ظهرت. خذ كامل وقتك في فهم الخطوات و حاول تطبيقها.
    1 نقطة
  46. بعد حفظ دخل المستخدم كما هو مع الفراغات مثل إجابة شرف الدين، يتطلب أيضا تجهيز عنصر عرض مناسب لهذه الحالة وهو عنصر pre ضمن قالب HTML الخاص بالصفحة. إن pre هو وسم HTML مثل ال p لكن الفرق أن pre يحافظ على تنسيق format القديمة، أي لو احتوى النص على فراغات أو بداية سطر جديد سوف يتم الاحتفاظ بها وعرضها كما هي، أما في حال أي وسم آخر، ستلاحظ أن HTML تتخلص من الفراغات المتكررة (وجود أكثر من فراغ متتالي) سيتم عرض فراغ واحد، ولا تكترث لنهاية السطر أي ستعرض كل شيئ على نفس السطر.. يمكنك تجريب أي وسم آخر ولاحظ الفرق بالنسبة للفراغات و الأسطر. يمكنك ملاحظة أنن أحطنا بيانات الاستعلام بالوسم '<echo'<pre وبعد نهاية الجزء وضعنا '<echo'</pre pre: P: توثيق حسوب: العنصر pre بالتوفيق
    1 نقطة
  47. هذه الأحداث غير متزامة، أرجو فصل موضوع تحديث الرسائل عن عمل إنزلاق للرسالة الحديثة واجعلها منفصلة مرتبطة بحدث نقر للمستخدم كما حاولت التوضيح في الإجابة السابقة.
    1 نقطة
  48. مرحبا عبد الله، انا إسماعيل متخرج من الأكادمية من دورة تطوير تطبيقات الويب بلغة php، الدورة مشروحة بلغة عربية فصحى و مفهومة كما يمكنك تسريع سرعة الصوت او تخفيضه إن لم تستوعب جزء ما. تبدأ الدورة بشرح الأساسيات في لغة php و إطار العمل لارافيل، ثم يوجد عدة مسارات في كل مسار يتم بناء مشروع و ما أعجبني أنه في كل مسار يتم الشرح مِن قبل أستاذ آخر فإذا لم تفهم أو لم تستوعب طريقة الشرح في مسار ما ستفهم في آخر. بالإضافة الى انه يوجد مدربين ذو خبرة و يمكنك سؤالهم عن أي شيئ سواء اسفل الدرس او القسم الخاص بالأسئلة. بالنسبة لسؤالك الثاني قد تختلف المدة من شخص لآخر و حسب قدرة كل شخص في الفهم، لكن ما أنصحك به أن لا تركز على الوقت بل ركز على فهم الأساسيات جيدا و البحث عن الحلول للمشاكل التي تواجهك بنفسك قبل سؤال المدربين مباشرة. ارجو لك التوفيق.
    1 نقطة
×
×
  • أضف...