محمد أيت لعرايك

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

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

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

السُّمعة بالموقع

45 Excellent
  1. توجد APIs مجانية تفر لك أسماء الأدوية بأسمائها التجارية أشهرها rxnav rxnav توفر واجهات برامج التطبيقات (APIs) للمستخدمين لاسترداد البيانات من العديد من مصادر معلومات الأدوية ، بما في ذلك RxNorm و MED-RT و RxTerms. ويوفر لك البيانات على شكل json أو xml على حسب إختيارك يمكنك الإطلاع على الapi بالتفصيل من هذا الرابط ويمكنك أيضا الإطلاع على التوثيق الخاص ب API وجميع الدوال الخاصة به من هنا
  2. طالما لم تقم بتهيئة محرك الأقراص C: في برنامج الإعداد عند تثبيت windows ، فلن تفقد بياناتك ، ولكن يتم نقلها إلى موقع آخر في القرص. بعد التثبيت ، يمكنك العثور على مجلد Windows.old في القرص C: و يتم حفظ جميع ملفاتك هناك. بعد نسخ جميع الملفات المطلوبة من مجلد Windows.old ، يمكنك استخدام برنامج مثل Disk Cleanup لحذف مجلد Windows.old لتحرير مساحة على القرص.
  3. نظام التشغيل (OS) هو أساسًا الدماغ والجهاز العصبي المركزي لأي نظام كمبيوتر ، بما في ذلك أجهزة الكمبيوتر المحمولة والخوادم والهواتف الذكية وأجهزة الاستشعار ، وهو متاح في كل من الأنواع التجارية ومفتوحة المصدر. يدير نظام التشغيل جميع أجهزة وبرامج النظام ويخصص جميع الموارد ، بما في ذلك المعالجة والذاكرة والتخزين. ويوجد العديد من أنواع أنظمة التشغيل : 1- نظام تشغيل إنترنت الأشياء هو نظام تشغيل مصمم للمتطلبات والمواصفات الخاصة لأجهزة وتطبيقات إنترنت الأشياء. إنه ضروري للاتصال والأمان والشبكات والتخزين وإدارة الجهاز عن بُعد واحتياجات أنظمة إنترنت الأشياء الأخرى. تتمتع بعض أنظمة تشغيل إنترنت الأشياء أيضًا بإمكانيات معالجة في الوقت الفعلي ويشار إليها على أنها نظام تشغيل في الوقت الفعلي 2- نظام تشغيل الأجهزة المحمولة (OS) هو البرنامج الذي يسمح للأجهزة المحمولة مثل الهواتف والأجهزة اللوحية والأجهزة الذكية الأخرى بتشغيل التطبيقات والبرامج الأخرى. تعمل معظم أنظمة تشغيل الأجهزة المحمولة فقط على أجهزة معينة. على سبيل المثال ، يعمل iPhone على iOS ويعمل Google Pixel على Android. 3-نظام التشغيل (OS) هو برنامج نظام يدير أجهزة الكمبيوتر وموارد البرامج ويوفر خدمات مشتركة لبرامج الكمبيوتر. يتطلب كل برنامج كمبيوتر تقريبًا نظام تشغيل ليعمل. أكثر أنظمة التشغيل شيوعًا هما Microsoft Windows و macOS من Apple. هناك العديد المن المصادر في الأنترنت لمساعدتك في تعلم هذه الأنظمة يكفي فقط كتابة نوع النظام في جوجل وسوف تظهر لك مواقع لدروس مجانية ومدفوعة مثلا إبحث عن : IoT Operating System
  4. OOP

    يمكن كتابة المصفوفة بإستعمال العديد من الطرق وهناك مجموعة من المكتبات الجاهزة والتي يمكنك إستعمالها مباشرة, لكن بإختصار يمكن كتابة class على الشكل التالي: final public class Matrix { private final int M; // عدد الصفوف private final int N; // عدد الأعمدة private final double[][] data; // مجموعة M-by-N // إنشاء مصفوفة M by-N من 0 public Matrix(int M, int N) { this.M = M; this.N = N; data = new double[M][N]; } //إنشاء مصفوفة على أساس مجموعة 2d public Matrix(double[][] data) { M = data.length; N = data[0].length; this.data = new double[M][N]; for (int i = 0; i < M; i++) for (int j = 0; j < N; j++) this.data[i][j] = data[i][j]; } // طباعة المصفوفة public void show() { for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) StdOut.printf("%9.4f ", data[i][j]); StdOut.println(); } } يمكنك إستعمال class جاهزة من هذا الرابط فهي تتوفر على مجموعة من الدوال الأكثر تقدما للتعامل مع المصفوفات.
  5. حاول تغيير إعدادات الإميل في ملف env : MAIL_DRIVER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=ahmodreda219@gmail.com MAIL_PASSWORD=correct_password MAIL_ENCRYPTION=tls MAIL_FROM_NAME="${APP_NAME}" MAIL_FROM_ADDRESS=mahmodredas219@gmail.com بعد ذلك قم بإزالة cache php artisan config:cache أعد تشغيل الخادم المحلي الخاص بك حاول زيارة مسارك باستخدام وحدة التحكم التي تحتوي على وظيفة البريد. وأيضا تحتاج إلى تسجيل الدخول عبر حساب Gmail الخاص بك للسماح بالاتصال غير الموثوق به. قم بزيارة هذا الرابط للسماح بالإتصال من طرف Gmail
  6. يمكنك أيضا إسترجاع array في الإستعلام وذلك ب إضافة ()toArray بعد ()get. على الشكل التالي: <?php $emails = $user->emails()->where(['verified' => true])->get()->toArray(); بعد ذلك يمكنك إظهار النتائج التالي: <?php @foreach($emails as $email) <h1> {{ $email['content'] }} </h1> <p> {{ $email['flag'] }} </p> @endforeach
  7. بطبيعة الحالة يمكنك ذلك لكن يجب عليك عمل بعض التغيرات على الإستضافة الجديدة : عند نقل موقع ويب إلى مضيف ويب مختلف ، فأنت بحاجة إلى: 1- شراء وتفعيل حسابات استضافة جديدة ، 2- نقل جميع ملفات مواقع الويب - بما في ذلك قواعد البيانات وحسابات البريد الإلكتروني ، 3- قم بتثبيت وتهيئة تطبيقك (إصدار PHP ، WordPress ، إلخ) على المضيف الجديد ، 4- تحقق من الموقع الجديد على عنوان URL التدريجي / المؤقت ، 5- استكشاف الأخطاء وإصلاحها في حالة وجود أي أخطاء ، 6- قم بتوجيه سجلات DNS الخاصة بنطاقك إلى مضيف الويب الجديد تعد استضافة الويب صناعة تنافسية - تبذل شركات الاستضافة كل ما في وسعها لكسب عملاء جدد. وهناك شركات تقدم خدمة ترحيل مواقع الويب المجانية للعملاء الجدد، . كل ما عليك القيام به هو طلب الترحيل بعد الاشتراك مع المزود الجديد وسيتولى فريق الدعم الخاص بهم مهمة نقل الموقع إلى مضيف ويب مختلف.
  8. الكوبونات هي خصومات ورموز ترويجية تمنح المشتري من المتجر تخفيظ على السعر الحقيقي للمنتج عند الشراء من متجر إلكتلروني, مثلا في Laravel : يمكنك جعل جدول المنتجات في قاعدة البيانات يستخدم خصومات ، بإنشاء جدول كوبونات خاص product_promotions ثم نربطه مع جدول المنتجات, في جدول product_promotions نضع الحقلين ( promo_id , product_id ) لكي يتم الربط بين كل منتج والكوبون الخاص به في جدول الكوبونات promotions بعد ذلك نقوم بتعريف علاقة many to many في نمودج المنتج <?php public function promocodes(){ return $this->belongsToMany(Promo::class)->withPivot(['promo_id']); } ستعيد هذه الدالة جميع العروض الترويجية التي تستخدمها هذه المنتجات حتى نتمكن من إظارها وإجراء جميع العمليات عليها, <?php $promocodes = Product::find(1)->promocodes; print_r($promocodes); // سيتم إظهار جميع الكوبنات الخاصة بالمنتج رقم 1
  9. لكي نفهم جيد الفرق بين استخدام app أو route لنعاين المثالين التاليين // app.js var express = require('express'), dogs = require('./routes/dogs'), var app = express(); app.use('/dogs', dogs); app.use('/cats', cats); app.use('/birds', birds); app.listen(3000); //dogs.js var express = require('express'); var router = express.Router(); router.get('/', function(req, res) { res.send('GET handler for /dogs route.'); }); router.post('/', function(req, res) { res.send('POST handler for /dogs route.'); }); module.exports = router; عندما يتم استدعاء ()var app = express ، يتم إرجاع كائن app. . التطبيق الرئيسي عندما يتم استدعاء var router = express.Router، يتم إرجاع تطبيق صغير مختلف قليلاً. الفكرة وراء التطبيق المصغر هي أن كل مسار في تطبيقك يمكن أن يصبح معقدًا للغاية ، وستستفيد من نقل كل هذه التعليمات البرمجية إلى ملف منفصل. يصبح جهاز توجيه كل ملف تطبيقًا مصغرًا. له هيكل مشابه جدًا للتطبيق الرئيسي. في المثال أعلاه ، تم نقل رمز المسار / dogs إلى ملفه الخاص حتى لا يتسبب في تشويش التطبيق الرئيسي. سيتم تنظيم الكود الخاص بـ / dogs بالمثل في ملفاتهم الخاصة. من خلال فصل هذا الرمز إلى ثلاثة تطبيقات صغيرة ، يمكنك العمل على منطق كل واحد على حدة ، ولا تقلق بشأن كيفية تأثيره على التطبيقين الآخرين. cats و birds إذا كان لديك كود middleware يتعلق بجميع المسارات الثلاثة ، فيمكنك وضعه في التطبيق الرئيسي ، قبل app.use إذا كان لديك كود middleware يتعلق بواحد فقط من هذه المسارات ، يمكنك وضعه في الملف لهذا المسار فقط.
  10. هذه تسمى مشكلة صلاحيات و لاتحل عن طريق تشفير id بل نقوم بعمل Middleware تقوم بالتحقق من صلاحيات المستخدم يمكنعمل ذلك على النحو التالي: في المتحكم الخاص بك قم بوضع دالة التحقق على دالة التعديل class Foo extends Conroller { public function __construct() { $this->middleware('post-edit', ['only' => ['edit']]); // يتم التحقق من الصلاحيات قبل تنفيد الأمر بالتعديل } public function edit(Request $request, $id) { //تعديل المقال } } بعد ذلك نتأكد من الصلاحيات بواسطة post-edit middleware <?php namespace App\Http\Middleware; use Closure; class PostEditMiddleware { public function handle($request, Closure $next) { if(Auth::user()->id == $request->input('user_id')) // نتحقق أن العنصر خاص بالمستخدم ولديه صلاحية التعديل عليه return $next($request); return Response::make("Unauthenticated", 401); // في حالة ليس لديه الصلاحية نقوم بإسترجاع رسالة عدم الصلاحية } }
  11. يمكنك كذالك تخزين الصور ببساطة بإستعمال دالة في المتحكم الخاص بك على الشكل التالي. public function uploadImage(Request $request) { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048', // تحديد صيغة الصورة وحجمها ]); $imageName = time().'.'.$request->image->extension(); // أعطاء إسم مناسب للصورة $request->image->move(public_path('images'), $imageName); // public/images رفع الصورة إلى الخادم في مجلد return back() ->with('success','You have successfully upload image.') ->with('image',$imageName); } و إجابتا على سؤالك الثاني فالصور تحفظ داخل مجلدات المشروع في الخادم. فمثلا في هذا المثال ستجد الصورة في مجلد public/images ويمكن أيضا تخزينها في مجلدات أخرى حسب الحاجة.
  12. عندما تريد دمج Firebase في تطبيقك ، يجب عليك اختيار إحدى طريقتين الموجودة في التوثيق الرسمي يمكنك إما اختيار استخدام إصدارات محددة من كل تبعية ، مثل هذا: implementation 'com.google.firebase:firebase-analytics:18.0.0' implementation 'com.google.firebase:firebase-firestore:22.0.0' أو يمكنك استخدام Firebase BoM لاختيارها لك ، بناءً على إصدار BoM واحد يطبق إصدارات متوافقة معينة من أجلك: // bom إستيراد إصدار implementation platform('com.google.firebase:firebase-bom:26.1.0') // يتم اختيار إصدارات Firebase SDK تلقائيًا بواسطة BoM implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-firestore' يمكنك العثور على مزيد من المعلومات حول إصدارات Firebase من هنا
  13. يمكن إضافة اساليب عمليات جديدة إلى الكائن Calculator ببساطة بواسطة الخاصية this.methods. وذلك لتتمكن من إضافة دوال جديدة للعمليات الأكثر الأكثر تعقيدًا. ويمكن كتابة الدالة Calculator على الشكل التالي: function Calculator() { // إضافة العمليات this.methods = { "-": (a, b) => a - b, "+": (a, b) => a + b }; this.calculate = function(str) { let split = str.split(' '), // تحديد الأعداد والنوع العملية a = +split[0], op = split[1], b = +split[2]; if (!this.methods[op] || isNaN(a) || isNaN(b)) { return NaN; } return this.methods[op](a, b); // إسترجاع العملية }; this.addMethod = function(name, func) { this.methods[name] = func; // إضافة العملية إلى الكائن معرفة بإسمها }; }
  14. ويمكنك أيضا إستخدام الطريقة التالية: أضف تبعيات babel-cli و babel-preset-es2015 (المعروفة أيضًا باسم ES6) إلى ملف package.json لتطبيقك بالشكل التالي: { "dependencies": { "babel-cli": "^6.0.0", "babel-preset-es2015": "^6.0.0" }, "scripts": { "start": "babel-node --presets es2015 app.js" } } بعد ذلك يمكنك ببساطة تنفيذ الأمر التالي لتشغيل التطبيق الخاص بك npm start إذا قررت التوقف عن استخدام Babel (على سبيل المثال ، بمجرد أن يدعم Node.js جميع ميزات ES6) ، يمكنك إزالته من package.json: { "dependencies": {}, "scripts": { "start": "node app.js" } } تتمثل إحدى فوائد هذه الطريقة أن تشغيل التطبيق الخاص بك يظل كما هو ، مما يساعدك إذا كنت تعمل مع مطورين آخرين.
  15. Mongoose هي مكتبة نمذجة بيانات الكائن (ODM) لـ MongoDB و Node.js. يدير العلاقات بين البيانات ، ويوفر التحقق من صحة المخطط ، ويستخدم للترجمة بين الكائنات في التعليمات البرمجية وتمثيل تلك الكائنات في MongoDB. MongoDB هي قاعدة بيانات مستندات NoSQL بدون مخطط. هذا يعني أنه يمكنك تخزين مستندات JSON فيه ، ويمكن أن تختلف بنية هذه المستندات حيث لا يتم فرضها مثل قواعد بيانات SQL. هذه إحدى مزايا استخدام NoSQL لأنها تسرع تطوير التطبيقات وتقلل من تعقيد عمليات النشر deployments. والفرق بينهما أنه باستخدام Mongoose ، يمكن للمستخدم تحديد مخطط المستندات في مجموعة معينة. يوفر الكثير من الراحة في إنشاء وإدارة البيانات في MongoDB. على الجانب السلبي ، قد يستغرق تعلم mongoose بعض الوقت ، ولديه بعض القيود في التعامل مع المخططات المعقدة للغاية. ومع ذلك ، إذا كان مخطط المجموعة الخاص بك غير متوقع ، فابدأ باستخدم برنامج MongoDB driver. إنه أبسط بكثير في هذه الحالات. أما الجانب السلبي هنا هو أنه سيتعين عليك كتابة كميات أكبر من التعليمات البرمجية للتحقق من صحة البيانات و تصحيح الأخطاء.