-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
يمكن استعمال المعامل and$ الذي يقبل مصفوفة تحوي على التعابير الشرطية، لتصبح العبارة كالتالي: find( $and: [{"balls.color": "red"}, {"balls.color": 1}]) أو ربما أنت تقصد كتابة الشرط هكذا: find({"balls.color": "red", "balls.color": 1}) حيث تمرر الخاصيات و القيم جميعها بعنصر واحد.
- 2 اجابة
-
- 1
-
يمكن استخدام الدالة concat لدمج عدة خاصيات سوياً: fullname: {$concat: ["$firstname", " ", "$lastname"]} حيث يتم تمرير الخاصيات المراد دمجها كعناصر مصفوفة
- 2 اجابة
-
- 1
-
عليك فقط عكس الشرط الأخير: find({ employees : { $gt : { $size: 5} }}) هكذا سيتم جلب أكبر مصفوفة لحجم أكبر من 5، لأنه يجب تمرير الخاصية المطلوبة للدالة gt
- 4 اجابة
-
- 1
-
يفترض أن يظهر خطأ مختلف، هل يمكنك إدراجه. شكرا لك بشكل عام ربما النسخة الحديثة لا يدعمها نظام win7 أرجو تثبيت إصدار قديم مثل: mongodb-win32-i386-3.2.21
-
حسنا المشكلة هو عدم وجود مجلدين في القرص C حيث يتم تخزين بيانات mongo أرجو عمل مجلد باسم data في القرص C ثم مجلد آخر ضمنه باسم db، لاحظ رسالة الخطأ فهذا مطلوب لكي يعمل..
-
هل يمكنك التاكد من تشغيل مخدم مونغو mongod server عن طريق الأمر: mongod ثم إعادة المحاولة بتشغيل mongo.
-
السبب في اختلاف الدالة التي يتم استدعائها، حيث أن =+ في مثالك: >>> f.bar += [3] تقوم باستدعاء __iadd__ التي تعدل f.bar الأصلية. أما: >>> f.bar = f.bar + [4] تقوم بإنشاء قائمة جديدة ثم إسنادها للمتغير حيث أنها تستدعي الدالة __add__
- 3 اجابة
-
- 1
-
يمكن عمل ذلك باستخدام الدالة __setattr__ كالتالي: object.__setattr__(self, name, value) أي: x = "attr1" y = 123 foo.__setattr__( x, y)
- 2 اجابة
-
- 1
-
يمكن عمل الفلترة بدون set حتى: temp3 = [item for item in temp1 if item not in temp2] يمكن استخدام المكتبة deepdiff: # تنصيب pip install deepdiff >>> t1 = {1:1, 2:2, 3:3} >>> t2 = {1:1, 2:4, 3:3} >>> pprint(DeepDiff(t1, t2), indent=2) {'values_changed': {'root[2]': {'newvalue': 4, 'oldvalue': 2}}} توثيق المكتبة: deepdiff
-
نعم بالطبع تدعم بايثون هذه الطريقة مثل ternary operator لكن ترتيب الشروط فيها مختلف: a, b = 1, 2 min = a if a < b else b print(min) حيث نضع القيمة التي نريد إعادتها في حال تحقق الشرط، ثم الشرط وأخيرا القيمة الأخرى في حال لم يتحقق الشرط والشكل العام لها: [on_true] if [expression] else [on_false] كما يوجد عبارة مختصرة لكل من: a, b = 1, 2 # اختيارقيمة بناءاً على tuple # (if_test_false,if_test_true)[test] print( (b, a) [a < b] ) # أو القاموس print({True: a, False: b} [a < b]) بالنسبة لحلقة for المختصرة يوجد عدة أشكال عامة لها: for i in <collection> <loop body> _____________________ for <var> in <iterable>: <statement(s)> _____________________ مثال >>> a = [1, 2, 3] >>> for i in a: ... print(i) ... 1 2 3 حيث أدرجت مثال للمرور على قائمة بكل بساطة بدون أي تعقيدات. كما تعمل مع القواميس: >>> d = {'foo': 1, 'bar': 2, 'baz': 3} >>> for k in d: ... print(k) ... foo bar baz _____________________ >>> for k in d: ... print(d[k]) ... 1 2 3 كما يمكن المرور على قائمة من tuple : >>> i, j = (1, 2) >>> print(i, j) 1 2 >>> for i, j in [(1, 2), (3, 4), (5, 6)]: ... print(i, j) ... 1 2 3 4 5 6
- 4 اجابة
-
- 1
-
يمكننا استخدام fcntl والتي هي function provides for control over open files مجموعة دوال التي تؤمن التحكم بالملفات المفتوحة، تتم بتحديد اشارة حدث، مع دالة للتنفيذ عند حدوث تغير: import time import fcntl import os import signal # مسار الملف FNAME = "/HOME/TOTO/FILETOWATCH" # الدالة التي تتنفذ عند حدث التغيير def handler(signum, frame): print "File %s modified" % (FNAME,) # ربط حدث التغيير بالدالة signal.signal(signal.SIGIO, handler) # فتح الملف fd = os.open(FNAME, os.O_RDONLY) # ربط الملف مع الأحداث fcntl.fcntl(fd, fcntl.F_SETSIG, 0) fcntl.fcntl(fd, fcntl.F_NOTIFY, fcntl.DN_MODIFY | fcntl.DN_CREATE | fcntl.DN_MULTISHOT) # جعل الشيفرة تستمر لوقت طويل while True: time.sleep(10000)
-
لا يوجد داع لتشفير البيانات في الجلسة، إنما أرفقته لأنك تريد استعمال cookies، كانت الملاحظة أن الجلسة أمنة أما ملفات الارتباط كلا، لذلك أرشدتك لطريقة تشفيرها. لكي ينجح التشفير هتين القيمتين يجب أن تكونا ثابتتين خلال عمل البرنامج: $key = 'secretkey'; $iv = AES256Encryption::generateIv(); لاحظ أن generateIv تقوم بتوليد قيمة جديدة عند استدعائها لذلك نحسبها مرة واحدة فقط ثم نستخدمها نفسها. القيمة المتغيرة هي النص في المتغير $text
-
عندما نريد تمرير عدة قيم من HTML نضع أقواس مربعة [] مع اسم الخاصية name; المثال خاص ب category.. <div class="form-group"> <label><strong>Category :</strong></label><br> <label><input type="checkbox" name="category[]" value="Laravel"> Laravel</label> <label><input type="checkbox" name="category[]" value="JQuery"> JQuery</label> <label><input type="checkbox" name="category[]" value="Bootstrap"> Bootstrap</label> <label><input type="checkbox" name="category[]" value="Codeigniter"> Codeigniter</label> <label><input type="checkbox" name="category[]" value="JQuery UI"> JQuery UI</label> </div> يمكنك ملاحظة: name="category[]" ضمن ملف التهجير، يمكن تحديد نوع القيمة ك string: <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreatePostsTable extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('category'); $table->longText('description'); $table->timestamps(); }); } } ثم في model نحدد دالة لإسناد القيمة و جلبها.. <?php namespace App; use Illuminate\Database\Eloquent\Model; class Post extends Model { protected $fillable = ['name','category','description']; public function setCategoryAttribute($value) { $this->attributes['category'] = json_encode($value); } public function getCategoryAttribute($value) { return $this->attributes['category'] = json_decode($value); } } حيث كما تلاحظين، نتبع العرف في التسمية في الدوال ليكون getCategoryAttribute - setCategoryAttribute ونتعامل مع المتغيرات كغرض JSON الذي يتم تخزينه كنص في قاعدة البيانات. باقِ الأجزاء تعمل بالطريقة التقليدية بدون تعديل فقط تم الاعتماد على الدالتين ضمن model لعمل طبقة وسيطة و تقوم باتحويل ل JSON.
- 4 اجابة
-
- 1
-
للسماح بالمستخدم بتعديل أبعاد text area يمكن وضع خاصية resize في CSS: div { resize: both; overflow: auto; } وهي تقبل القيم: resize: none|both|horizontal|vertical|initial|inherit; منع تغيير الأبعاد، سماح أفقي و عمودي، فقط أفقي, فقط عمود،.
-
إن الدالتين setItem + getItem تتعاملان مع سلاسل نصية وليس أغراض JSON عند التخزين أو جلب القيم. لذلك علينا تحويل المصفوصة لسلسلة نصية قبل حفظها، و إعادتها لغرض JSON بعد قرائتها: الدوال المساعدة: JSON.stringify لتحويل غرض JSON لسلسلة نصية JSON.parse: لتحويل السلسلة النصية لغرض JSON set setObjectValue = async (value) => { try { const jsonValue = JSON.stringify(value) await AsyncStorage.setItem('key', jsonValue) } catch(e) { // save error } console.log('Done.') } get getMyObject = async () => { try { const jsonValue = await AsyncStorage.getItem('@key') return jsonValue != null ? JSON.parse(jsonValue) : null } catch(e) { // read error } console.log('Done.') } تحتاج لعملية تعديل بسيطة في الشيفرة لديك كما في المثالين السابقين
-
يوجد عدة مجلدات ناقصة لديك: logs framework framework/cache framework/cache/data framework/sessions framework/testing framework/views الأوامر التي تقوم بتوليدهم: cd storage mkdir logs mkdir framework mkdir framework/cache && framework/cache/data mkdir framework/sessions mkdir framework/testing mkdir framework/views chgrp -R www-data ../storage chown -R www-data ../storage أو: cd storage/ mkdir -p framework/{sessions,views,cache} chmod -R 775 framework chown -R www-data:www-data framework
-
لمعرفة الدولة، يمكن استخدام API مجاني: https://www.iplocate.io/api/lookup/8.8.8.8 ^^^^^^^ = IP وهذا يعيد JSON كالتالي: {"ip":"8.8.8.8","country":"United States","country_code":"US", "city":null,"continent":"North America","latitude":37.751,"longitude":-97.822, "time_zone":"America/Chicago", "postal_code":null,"org":"GOOGLE","asn":"AS15169","subdivision":null,"subdivision2":null} حيث يمكنك الوصول للدوالة من الخاصية country. $.getJSON('https://www.iplocate.io/api/lookup/8.8.8.8', function(json) { alert(json.country); }); lمثال آخر ipinfo واستخدامها في PHP: $ip = $_SERVER['REMOTE_ADDR']; $details = json_decode(file_get_contents("http://ipinfo.io/{$ip}")); echo $details->country; // -> "US" لمعرفة اللغة، يمكن استخدام GeoIP كالتالي: if($country = geoip_country_code_by_name($host)) { switch($country) { case "DJ": case "ER": case "ET": $lang = "aa"; break; case "AE": case "BH": case "DZ": case "EG": case "IQ": case "JO": case "KW": case "LB": case "LY": case "MA": case "OM": case "QA": case "SA": case "SD": case "SY": case "TN": case "YE": $lang = "ar"; break; case "AZ": $lang = "az"; break; case "BY": $lang = "be"; break; case "BG": $lang = "bg"; break; case "BD": $lang = "bn"; break; case "BA": $lang = "bs"; break; case "CZ": $lang = "cs"; break; case "DK": $lang = "da"; break; case "AT": case "CH": case "DE": case "LU": $lang = "de"; break; case "MV": $lang = "dv"; break; case "BT": $lang = "dz"; break; case "GR": $lang = "el"; break; case "AG": case "AI": case "AQ": case "AS": case "AU": case "BB": case "BW": case "CA": case "GB": case "IE": case "KE": case "NG": case "NZ": case "PH": case "SG": case "US": case "ZA": case "ZM": case "ZW": $lang = "en"; break; case "AD": case "AR": case "BO": case "CL": case "CO": case "CR": case "CU": case "DO": case "EC": case "ES": case "GT": case "HN": case "MX": case "NI": case "PA": case "PE": case "PR": case "PY": case "SV": case "UY": case "VE": $lang = "es"; break; case "EE": $lang = "et"; break; case "IR": $lang = "fa"; break; case "FI": $lang = "fi"; break; case "FO": $lang = "fo"; break; case "BE": case "FR": case "SN": $lang = "fr"; break; case "IL": $lang = "he"; break; case "IN": $lang = "hi"; break; case "HR": $lang = "hr"; break; case "HT": $lang = "ht"; break; case "HU": $lang = "hu"; break; case "AM": $lang = "hy"; break; case "ID": $lang = "id"; break; case "IS": $lang = "is"; break; case "IT": $lang = "it"; break; case "JP": $lang = "ja"; break; case "GE": $lang = "ka"; break; case "KZ": $lang = "kk"; break; case "GL": $lang = "kl"; break; case "KH": $lang = "km"; break; case "KR": $lang = "ko"; break; case "KG": $lang = "ky"; break; case "UG": $lang = "lg"; break; case "LA": $lang = "lo"; break; case "LT": $lang = "lt"; break; case "LV": $lang = "lv"; break; case "MG": $lang = "mg"; break; case "MK": $lang = "mk"; break; case "MN": $lang = "mn"; break; case "MY": $lang = "ms"; break; case "MT": $lang = "mt"; break; case "MM": $lang = "my"; break; case "NP": $lang = "ne"; break; case "AW": case "NL": $lang = "nl"; break; case "NO": $lang = "no"; break; case "PL": $lang = "pl"; break; case "AF": $lang = "ps"; break; case "AO": case "BR": case "PT": $lang = "pt"; break; case "RO": $lang = "ro"; break; case "RU": case "UA": $lang = "ru"; break; case "RW": $lang = "rw"; break; case "AX": $lang = "se"; break; case "SK": $lang = "sk"; break; case "SI": $lang = "sl"; break; case "SO": $lang = "so"; break; case "AL": $lang = "sq"; break; case "ME": case "RS": $lang = "sr"; break; case "SE": $lang = "sv"; break; case "TZ": $lang = "sw"; break; case "LK": $lang = "ta"; break; case "TJ": $lang = "tg"; break; case "TH": $lang = "th"; break; case "TM": $lang = "tk"; break; case "CY": case "TR": $lang = "tr"; break; case "PK": $lang = "ur"; break; case "UZ": $lang = "uz"; break; case "VN": $lang = "vi"; break; case "CN": case "HK": case "TW": $lang = "zh"; break; default:break; } }
-
الكود النظيف clean code هو مجموعة من المبادئ والأعراف التي يطبقها المبرمج قبل البدء وخلال كتابة الشيفرة البرمجية. الإبقاء على البساطة و عدم التعقيد بدون داعِ وتقسيم العمل على أجزاء مثل دوال أو مكونات لعدم تكرار نفس الشيفرة عدم كتابة أجزاء بدون استخدامها استخدام أسماء ذات دلالة للمتغيرت و أسماء الأصناف.. إضافة تعليقات تطبيق هذا حسب اللغات التي طرحتها: HTML: استخدام القوالب، أي مثل كتابة الترويسة و التذييل مرة واحدة ثم استدعائهم في عدة ملفات CSS: استخام الأصناف Classes، كتابة أصناف تقوم بتجميع التنسيقات لعدد من العناصر المراد أن يكون لها تنسيق مشترك. SASS: استخدام المتغيرات، مثل اللون - حجم النص - الأبعاد، استخدام الدوال بطرية فعالة
- 2 اجابة
-
- 1