نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

تكرار البيانات المرُاقَبة (Duplicate Observed Data)

المشكلة هل بيانات النطاق المخزَّنة في أصناف هي المسؤولة عن واجهة المستخدم الرسومية (GUI)؟ إذًا، إليك الحل. الحل فصل البيانات في أصناف منفصلة لضمان الاتصال والتزامن بين صنف النطاق وواجهة المستخدم الرسومية (GUI). مثال قبل إعادة التصميم إليك المخطط التالي لبيانات نطاق مخزَّنة في أصناف والمسؤولة عن الواجهة الرسومية: بيانات النطاق مخزَّنة في أصناف. بعد إعادة التصميم يصبح المخطط السابق بالشكل التالي بعد إعادة التصميم: فصل البيانات في أصناف منفصلة لضمان الاتصال والتزامن بين صنف النطاق وواجهة المستخدم الرسومية. لم ...

تنظيم البيانات (Organizing Data)

تساعد تقنيات إعادة التصميم هذه بالتعامل مع البيانات، وتبديل أصناف ذات وظائف كثيرة مكان الأنواع الأساسية (primitives). نتيجة أخرى مهمة نحصل عليها بتطبيق هذه التقنيات هي فك ارتباطات صنف مما يجعل الصنف قابلًا للنقل وإعادة الاستعمال. وهذه التقنيات هي: التغليف الداخلي للحقول (Self Encapsulate Fields) المشكلة: الوصول المباشر إلى الحقول الخاصّة داخل الصنف. الحل: إنشاء تابعي الجلب (getter) والضبط (setter) للحقل الخاصّ ومنع الوصول إليه إلا عبرهما. تبديل قيم البيانات إلى كائنات (Replace Data Values with Objects) المشكلة: وجود حقلٍ ...

نوع البيانات

نوع البيانات <color> في CSS يستعمل لتمثيل لون في مجال ألوان sRGB، ويمكن وصف اللون بإحدى الطرائق الآتية: كلمة محجوزة. باستخدام نظام RGB (يسمونه نظام الإحداثيات المكعبي cubic-coordinate system) عبر ذكر اللون بالصيغة الست عشرية وقبله رمز # أو عبر الدالتين rgb()‎ و rgba()‎. باستخدام نظام HSL (يسمونه نظام الإحداثيات الأسطواني cylindrical-coordinate system) عبر الدالتين hsl()‎ و hsla()‎. يمكن أن تتضمن قيمة اللون قيمةً للشفافية (عبر القناة alpha)، التي تُشير إلى كيفية اندماج اللون مع الخلفية. صحيحٌ أنَّ الألوان في CSS ...

نوع البيانات

نوع البيانات <blend-mode> في CSS يستعمل لوصف كيف يجب أن تمتزج الألوان عند تداخل طبقات الخلفات مع بعضها بعضًا. فكل بكسل من بكسلات الطبقة التي طُبِّق عليها نمط الامتزاج سيأخذ اللون من الخلفية ومن الأمامية، وستُجرى عملية حسابية عليه، ويُعاد لونٌ جديدٌ سيستخدم مكان تداخل الطبقات. يجدر بالذكر أنَّ هذه القيمة تستعمل مع خاصيتَي background-blend-mode و mix-blend-mode. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي 35 30 غير مدعومة 22 7.1 القيم يُحدِّد نمط الامتزاج باستخدام قيمة ...

بذر قواعد البيانات بالبيانات الاختبارية Seeding في Laravel

مقدمة يتضمّن Laravel تابع بسيط لملء قاعدة البيانات الخاصة بك مع بيانات للتجربة باستخدام أصناف البذر. ستجد جميع أصناف البذر في مجلّد database/seeds، وقد تحتوي أصناف البذر على أي اسم تريده، لكن ربما يجب عليك اتباع بعض المعايير المعقولة مثل UsersTableSeeder ...إلخ. وبشكل افتراضي، سيكون صنف DatabaseSeeder معرّف لك، ومن خلال هذا الصنف يمكنك استخدام أسلوب call لتشغيل بقيّة أصناف البذر، مما يسمح لك بالتحكم بترتيب البذر. كتابة منشئات البذور لتوليد منشئ البذرة (seeder)، نفّذ أمر make:seeder Artisan وستجد جميع ...

التعامل مع البيانات في jQuery

يوفر هذا القسم مجموعة من التوابع التي تستعمل من أجل ربط بيانات محدَّدة مع عنصر محدَّد (أو مجموعة عناصر محدَّدة) وقراءة تلك البيانات لاحقًا. ‎.data()‎ يخزِّن التابع ‎.data()‎ بيانات عشوائية مرتبطة بالعناصر المتطابقة أو تُعيد القيمة في مخزن البيانات المحدد للعنصر الأول في مجموعة العناصر المتطابقة. ‎jQuery.data()‎ يخزِّن هذا التابع بيانات اعتباطيَّة ويقرنها بعنصر محدَّد، ويعيد القيمة التي ضُبِطَت. ‎jQuery.hasData()‎ يتحقَّق هذا التابع إن كان يملك عنصرٌ محدَّدٌ أيَّةَ بياناتٍ مرتبطةٍ به. jQuery‎.proxy()‎ يأخذ هذا التابع دالةً ويعيد أخرى جديدة ...

أنواع البيانات في SQL

تختلف أنواع البيانات بحسب محرك البيانات المستخدَم وستُذكر تباعًا. في محرك البيانات MySQL أنواع البيانات العددية Numeric النوع بداية المجال نهاية المجال مساحة التخزين TINYINT ‎-128 127 1 بايت SMALLINT ‎-32768 32767 2 بايت MEDIUMINT ‎-8388608 8388607 3 بايت INT ‎-2147483648 2147483647 4 بايت BIGINT ‎-9223372036854775808 9223372036854775807 8 بايت BIT 0 1 بت واحد البيانات العددية الثابتة مع الفاصلة العشرية النوع الوصف DECIMAL(p,s)‎ يعبّر الرمز p عن قيمة الدقة أي عدد الخانات المسموحة الإجمالية للعدد ويعبّر الرمز s عن عدد ...

أنواع البيانات في PHP

لا يعيّن المبرمج نوع المتغير عادةً، بل تُعيِّنُه لغة PHP أثناء التنفيذ بالاعتماد على محتوى المتغير المستخدم. ملاحظة: استخدم دالة var_dump()‎ للتحقق من نوع وقيمة تعبير معين، واستخدم الدالة gettype()‎ للحصول على نوع المتغير عند الحاجة لغرض التنقيح، وللتأكد من نوع المتغير فاستخدم مجموعة دوال is_type وهذه بعض الأمثلة عنها: <?php $a_bool = TRUE; // boolean $a_str = "foo"; // string $a_str2 = 'foo'; // string $an_int = 12; // integer echo gettype($a_bool); // الناتج: ...

استبدال الخوارزمية (Substitute Algorithm)

المشكلة الحاجة إلى استبدال خوارزميّة ما بخوارزميّة أخرى. الحل تعديل محتوى التابع (method body) الذي يُنفِّذ الخوارزمية السابقة ليُنفِّذ الخوارزمية الجديدة. مثال قبل إعادة التصميم تتلخَّص مهمة التابع foundPerson بالبحث عن الأشخاص ذوي الأسماء "Don" أو "John" أو "Kent" وذلك بالمرور بعناصر المصفوفة النصّيّة people باستخدام حلقة for كما في الشيفرة: في لغة Java: String foundPerson(String[] people){ for (int i = 0; i < people.length; i++) { if (people[i].equals("Don")){ return "Don"; ...

أصناف البيانات (Data Classes)

توصيف المشكلة وجود العديد من أصناف البيانات في الشيفرة، والتي تُستخدَم لتخزين البيانات التي تحتاج إليها الأصناف الأخرى، إذ تحتوي على حقولٍ للبيانات (fields) وتوابع للوصول إليها (accessors) أي توابعَ للحصول على بيانات الحقول (getter) وأخرى لتعديلها (setter)، ولا تقوم هذه الأصناف بأيّ مهمّة أخرى ولا تستطيع كذلك تنفيذ العمليات (operations) على بياناتها بمفردها. أسبابها من الطبيعي أن يحتوي الصنف -بادئ الأمر- على القليل من الحقول العامّة (public fields) وبعض التوابع للوصول إليها (accessors) ولكن إن استمرَّ الصنف كذلك فلن ...

البيانات المُجمَّعة (Data Clumps)

توصيف المشكلة تكرار مجموعةٍ من المتغيِّرات (variables) (كتلك المُستخدَمة كمعاملاتٍ [parameters] للربط مع قاعدة البيانات مثلًا) بشكلٍ متطابقٍ تمامًا في عدّة أجزاء من الشيفرة، إذ يجب تحويل تلك المجموعات إلى أصنافها (classes) الخاصّة بها. أسبابها تُعزى المشكلة عمومًا للبُنية (structure) البرمجيّة الضعيفة (أو ما يُعرف بمصطلح copypasta programming)، وللتحقُّقِ من وجود هذه المشكلة بالشيفرة احذف إحدى القيم، فإنْ حدث خللٌ نتيجة الحذف فالمشكلة قائمة ويجب علاجها، وإلّا فتلك إشارةٌ حسنةٌ ومن المحبَّذ تجميعُ هذه المتغيِّرات في كائنٍ واحدٍ. وما الحل؟ ...

تهجير قاعدة البيانات في Laravel

مقدمة تشبه عمليات التهجير التحكم في الإصدار لقاعدة بياناتك، مما يسمح لفريقك بتعديل مخطط قاعدة البيانات ومشاركته بسهولة. وعادةً ما تقترن عمليات التهجير بمنشئ مخططات Laravel لبناء مخطط قاعدة البيانات تطبيقك بسهولة. وإذا كان عليك في أي وقت مضى إخبار أحد أعضاء الفريق بإضافة عمود يدويًا إلى مخطط قاعدة البيانات المحليّة الخاصة بك، فقد واجهت المشكلة التي حُلّت باستخدام تهجيرات قاعدة البيانات. توفّر الواجهة الساكنة Schema دعمًا لإنشاء وتعديل الجداول عبر جميع أنظمة قواعد البيانات المدعومة من قبل Laravel. توليد ...

اختبارات قواعد البيانات في Laravel

مقدمة يزوّدك Laravel بمجموعة من الأدوات المفيدة لتسهيل اختبار تطبيقاتك المقادة بواسطة قواعد البيانات. أولاً، يمكنك استخدام التابع المساعد assertDatabaseHas للتأكد من أن البيانات موجودة ضمن قاعدة البيانات ضمن مجموعة الشروط المعطاة. على سبيل المثال، إن أردت التأكد من أن سجلًا ما موجود ضمن جدول users ببريد مطابق لـ sally@example.com، يمكنك فعل التالي: public function testDatabase() { // القيام بمناداة التطبيق... $this->assertDatabaseHas('users', [ 'email' => 'sally@example.com' ...

الحقل image

عناصر <input> ذات النوع image تُستخدم لإنشاء أزار رسومية، أي أنَّ رز إرسال النموذج سيكون على شكل صورة بدلًا من النص. الخاصية value لا يقبل الحقل image الخاصية value، فالمسار إلى الصورة المعروضة يجب أن يُحدَّد في خاصية src. استخدام الأزار الرسومية الحقل image يُمثِّل عنصرًا قابلًا للاستبدال (أي العنصر الذي لا يكون محتواه مولّدًا أو قابلًا للتحكم باستخدام CSS مباشرةً)، ويعمل بشكلٍ شبيهٍ جدًا بالعنصر <img> العادي، لكن له قدارات زر الإرسال submit. الميزات الأساسية للأزرار الرسومية لننظر إلى ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

التابع Connection.set_progress_handler()‎ في بايثون

يسجّل هذا التابع استدعاءً خلفيًا يجري تنفيذه لكل n من تعليمات SQLite في الجهاز الافتراضي virtual machine. هذا التابع مفيد عند الحاجة إلى اجراء استدعاء من SQLite أثناء عملية طويلة، كتحديث واجهة رسومية مثلًا. البنية العامة set_progress_handler(handler, n) المعاملات handler يمكن استدعاء التابع مع تمرير القيمة None للمعامل handler للتخلص من أي استدعاء خلفي معدّ مسبقًا. تؤدي إعادة قيمة غير الصفر من الاستدعاء الخلفي إلى إنهاء الاستعلام الحالي وإطلاق الاستثناء OperationalError. n عدد تعليمات SQLite. انظر أيضًا التابع Connection.set_authorizer()‎:يسجّل هذا ...

التعامل مع قواعد بيانات Redis في Laravel

مقدمة Redis هو مخزن متقدم لمفتاح-قيمة (key-value) وهو مفتوح المصدر، وغالبًا ما يشار إليه على أنه خادم هيكلية البيانات حيث يمكن أن تحتوي المفاتيح على سلاسل نصيّة وشيفرات وقوائم ومجموعات ومجموعات مرتبة. قبل أن نستخدم Redis مع Laravel، ستحتاج إلى تثبيت حزمة predis/predis عن طريق Composer: composer require predis/predis ويمكنك بدلًا من ذلك تثبيت ملحق PhpRedis PHP عن طريق PECL، ويعد هذا الملحق الأكثر تعقيدًا، ولكن ستكون النتائج ذات أداء أفضل لتطبيقات التي تستخدم Redis بشكل مكثف. الضبط إن ملف ضبط ...

UDP/مقابس مخطط البيانات في Node.js

مؤشر الاستقرار: 2 - مستقر. توفر وحدة dgram تطبيق مقابس مخطط البيانات UDP. const dgram = require('dgram'); const server = dgram.createSocket('udp4'); server.on('error', (err) => { console.log(`server error:\n${err.stack}`); server.close(); }); server.on('message', (msg, rinfo) => { console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); }); server.on('listening', () => { const address = server.address(); console.log(`server listening ${address.address}:${address.port}`); }); server.bind(41234); // الخادم يستمع 0.0.0.0:41234 الصنف: dgram.Socket أُضيف مع الإصدار: v0.1.99. كائن dgram.Socket هو EventEmitter يغلف وظيفة مخطط البيانات. وتُنشأ حالات جديدة من dgram.Socket باستخدام التابع dgram.createSocket()‎. ولا يمكن استخدام الكلمات الرئيسية ...

تعديل قاعدة البيانات ALTER DATABASE

يُمكن تعديل صفات قاعدة البيانات من خلال هذا الأمر الذي له الصيغ الآتية: ALTER DATABASE name RENAME TO new_name; أو في محرك SQL Server: ALTER DATABASE name MODIFY NAME = new_name; لإعادة تسمية قاعدة البيانات باسم جديد new_name ولا تمكن إعادة تسمية قاعدة البيانات المستخدمة حاليًا إذ يجب الاتصال بقاعدة بيانات أخرى ريثما تُعاد تسمية قاعدة البيانات الحالية. ALTER DATABASE name OWNER TO new_owner; التعليمة السابقة لنقل ملكية قاعدة البيانات باسم name إلى مالك آخر باسم new_owner. ALTER DATABASE name RESET ALL; أما التعليمة ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

حذف قاعدة البيانات DROP DATABASE

يستخدم هذا الأمر لحذف قاعدة البيانات، وله البنية العامة التالية: DROP DATABASE [IF EXISTS] name; إذ إن name هو اسم قاعدة البيانات التي ستُحذف ولا يسمح بتنفيذ هذا الاستعلام إلا من مالك قاعدة البيانات ولا يمكن التراجع عن الحذف فيما بعد، وتمنع العبارة IF EXISTS حدوث أي خطأ في حال عدم وجودة قاعدة بيانات بهذا الاسم. يتضمن الحذف كافة الملفات المرتبطة بقاعدة البيانات بالصيغ التالية: ‎.TRN ‎.BAK ‎.DAT ‎.HSH ‎.MRG ‎.frm ‎.ibd ‎.MYD ‎.MYI ‎.TRG ‎.ndb ‎.par ‎.cfg ‎.db مثال لحذف ...

إنشاء قاعدة البيانات CREATE DATABASE

يستخدم هذا الأمر لإنشاء قاعدة بيانات جديدة، وله البنية العامة التالية: CREATE DATABASE name; إذ إن name هو اسم قاعدة البيانات التي ستُنشأ ولا يسمح بتنفيذ هذا الاستعلام ضمن بنية عمليات (transaction block). مثال لإنشاء قاعدة بيانات باسم CompanyRecords يُستخدم الأمر: CREATE DATABASE CompanyRecords; التوافقية SQLServer SQLite Oracle PostgreSQL MySQL نعم لا نعم نعم نعم إن محرك SQLite لا يدعم الأمر CREATE DATABASE إذ يتيح خيار إنشاء قاعدة البيانات من خلال سطر الأوامر command-line. مصادر توثيق CREATE DATABASE في محرك MySQL ...

أنواع البيانات (Data Types) في Kotlin

إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...

الأصناف الواسعة (Large Classes)

توصيف المشكلة احتواء الصنف (class) العديدَ من الحقول (fields) والتوابع (methods) وشيفرةً بأسطرَ كثيرةٍ. أسبابها تبدأ الأصناف صغيرةً ليزداد حجمها مع استمرار تطوُّر البرنامج (كما الحال بالتوابع الطويلة) لأنَّ المبرمج يرى أنَّ إضافة ميِّزاتٍ (features) جديدةٍ في صنفٍ موجودٍ مسبقًا أكثر سهولةً من إنشاء أصنافٍ جديدةٍ مخصَّصةٍ لها. وما الحل؟ الحل بسيطٌ جدًا؛ وهو تقسيم الصنف، وذلك بإحدى الوسائل الآتية: إنشاء صنفٍ جديدٍ (Extract Class) إن كان من الممكن فصلُ بعض مهامّ الصنف الحاليّ ونقلها للصنف الجديد. إنشاء صنفٍ فرعيٍّ ...

الدالة convert_uuencode()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُرِّمز الدالة ‎convert_uuencode()‎ السلسلة النصية. الوصف string convert_uuencode ( string $data ) تُرِّمز الدالة convert_uuencode()‎ السلسلة النصية بإستعمال الخوارزمية uuencode. تُتَرجم خوارزمية Uuencode كل السلاسل النصية (بما في ذلك البيانات بالنظام الثنائي) إلى أحرف قابلة للطباعة، ما يجعله نقلها داخل الشبكة آمنًا. يزيد حجم البيانات المُرَمَزة بخوارزمية Uuencode عن حجمها الطبيعي بنسبة 35%. المعاملات data البيانات التي نريد ترميزها. القيم المعادة تُعيد الدالة convert_uuencode()‎ البيانات مُرَمَزةً، أو القيمة FALSE عند فشل ترميزها. أمثلة المثال 1: ...

تقنيات إعادة التصميم (Refactoring Techniques)

إنشاء التوابع تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods): والتي تتمثل بوجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. دمج التوابع (Inline ...

الوحدة bz2 في بايثون

تقدّم هذه الوحدة واجهة متكاملة لضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط bzip2. تتضمّن وحدة bz2 ما يلي: دالة open()‎ وصنف BZ2File لقراءة الملفات المضغوطة والكتابة فيها. صنفا BZ2Compressor و BZ2Decompressor لإجراء عمليات الضغط وفك الضغط التزايدي incremental. دالتا compress()‎ و decompress()‎ لإجراء عمليات الضغط وفك الضغط بخطوة واحدة. يجدر التنبيه إلى إمكانية الوصول إلى جميع الأصناف في هذه الوحدة بأمان من خيوط متعددة. ضغط البيانات وفكّ الضغط عنها الدالة bz2.open()‎ تفتح الدالة ملفًّا مضغوطًا بخوارزمية bzip2 في النمط ...

الدالة zlib.adler32()‎ في بايثون

تحسب الدالة مجموع التحقق checksum من نوع Adler-32 للبيانات المعطاة. البنية العامة zlib.adler32(data[, value]) ‎ المعاملات data البيانات المراد حساب مجموع التحقق لها. value إن كان المعامل value موجودًا، فإنّه يستخدم كقيمة بادئة لمجموع التحقق، وفي حال غيابه تكون القيمة الافتراضية هي 1. يؤدي تمرير قيمة إلى المعامل value إلى السماح بإجراء عمليات جمع تحقق مستمرّة على مجموعة من المدخلات المترابطة بعضها ببعض. القيمة المعادة تحسب الدالة مجموع التحقق checksum من نوع Adler-32 للبيانات المعطاة. (مجموع التحقق من نوع Alder-32 ...

حفظ البيانات المهيكلة بصيغة JSON في بايثون

يمكن قراءة وكتابة السلاسل النصية في الملفات بسهولة ويسر، أما الأرقام فتحتاج إلى المزيد من الجهد لأنّ التابع read()‎ يعيد السلاسل النصية فقط والتي يجب تمريرها إلى دالة مثل int()‎ والتي تأخذ سلسلة نصية مثل '123' وتعيد القيمة العددية 123. أما البيانات الأكثر تعقيدًا مثل القوائم أو القواميس المتداخلة فتحتاج إلى عمليات تحليل (parsing) وسَلسَلة (serializing) لا يمكن القيام بها بصورة يدوية. وبدلًا من إجبار المستخدمين على كتابة الشيفرات وتنقيحها بصورة مستمرة لغرض حفظ البيانات المعقّدة في الملفات، تتيح بايثون ...

أصناف البيانات (Data Classes) في لغة Kotlin

تُنشَأ بعض الأصناف بهدف تخزين البيانات فيها بشكلٍ أساسيّ، وبالتالي فإنّ كلّ ما تقوم به هذه الأصناف من وظائف يرتبط بالبيانات، وهذا ما يُسمى بأصناف البيانات في لغة Kotlin وتُعرَّف بالمُحدِّد data كما يلي: data class User(val name: String, val age: Int) قواعد عامّة يقوم المُترجِم في الأصناف من هذه النوع باشتقاق العناصر (deriving members) الآتية من كلِّ الخاصّيّات المُعرَّفة في الباني الأساسيّ (primary constructor): كلًا من equals()‎ و hashCode()‎ الدالة toString()‎ بشكلها ‎"User(name=John, age=42‎)‎"‎ الدوال بالصيغة componentN() functions بما ...

حفظ البيانات المهيكلة بصيغة JSON في بايثون

يمكن قراءة وكتابة السلاسل النصية في الملفات بسهولة ويسر، أما الأرقام فتحتاج إلى المزيد من الجهد لأنّ التابع read()‎ يعيد السلاسل النصية فقط والتي يجب تمريرها إلى دالة مثل int()‎ والتي تأخذ سلسلة نصية مثل '123' وتعيد القيمة العددية 123. أما البيانات الأكثر تعقيدًا مثل القوائم أو القواميس المتداخلة فتحتاج إلى عمليات تحليل (parsing) وسَلسَلة (serializing) لا يمكن القيام بها بصورة يدوية. وبدلًا من إجبار المستخدمين على كتابة الشيفرات وتنقيحها بصورة مستمرة لغرض حفظ البيانات المعقّدة في الملفات، تتيح بايثون ...

تغليف الحقول (Encapsulate Field)

المشكلة لديك حقل عام. الحل جعل الحقل خاصًّا وإنشاء توابع وصول له. مثال قبل إعادة التصميم وجود الحقل العام name في الصنف Person: في لغة Java: class Person { public String name; } في لغة C#‎: class Person { public string name; } في لغة PHP: public $name; في لغة TypeScript: class Person { name: string; } بعد إعادة التصميم جعل الحقل name خاصًّا وإنشاء تابع جلب getName وضبط setName له: في لغة Java: class Person { private String name; public ...

الدالة crypt()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُشفِّر الدالة ‎crypt()‎ سلسلةً نصيةً بطريقة غير قابلة للعكس. الوصف string crypt ( string $str [, string $salt ] ) تُعيد الدالة crypt()‎ هاش (hash) السلسلة النصية بإستعمال خوارزمية Unix DES أو أي خوارزمية أخرى متوفرة بالنظام. على الرغم من أنَّ ضبط المعامل salt في الدالة crypt()‎ هو أمرٌ اختياري، إلا أن عدم ضبط قيمته سيؤدي إلى إنشاء هاش ضعيف للسلسة النصية. تُطلِق نسخ 5.6 للغة PHP وما بعدها الخطأ ‎E_NOTICE عند عدم ضبط المعامل ...

القائمة الطويلة للمعاملات (Long Parameter List)

توصيف المشكلة وجود ما يزيد عن ثلاثة أو أربعة معاملات (parameters) مُمرَّرة للتابع (method). أسبابها قد تحدث هذه المشكلة عند دمج عدّة خوارزمياتٍ بنفس التابع (method)، إذ تُستخدَم المعاملات (parameters) الكثيرة لتحديد الخوارزمية التي ستُنفَّذ وآليّتها. أو قد تنتج المشكلة عن محاولة المبرمج أو المطوِّر لجعل الأصناف (classes) أكثر استقلاليةً عن بعضها البعض. فمثلًا: عند نقل الشيفرة التي تنشِئ الكائنات (objects) -اللازمة لأحد التوابع- من داخل التابع إلى الشيفرة التي تستدعي ذلك التابع سيتطلَّبُ تمرير تلك الكائنات إلى التابع كمعاملاتٍ ...

الوحدة ‎‎‎crypto‎ في Node.js

الاستقرار: 2-مستقر توفِّر الوحدة crypto وظيفة التشفير (cryptographic functionality) التي تتضمن مجموعةً من المغلفات (wrappers) التي تُستعمَل من أجل دوال شيفرة Hash في OpenSSL، والتشفير HMAC، والتشفير (cipher)، وفك التشفير (decipher)، والتوقيع (sign)، والتحقق (verify). استعمل الأمر require('crypto')‎ للوصول إلى هذه الوحدة. const crypto = require('crypto'); const secret = 'abcdefg'; const hash = crypto.createHmac('sha256', secret) .update('I love cupcakes') ...

الوحدة gzip في بايثون

تقدّم هذه الوحدة واجهة بسيطة لضغط الملفات وفك ضغطها بنفس الأسلوب المتّبع في برنامجي gzip و gunzip في GNU. وتجري عملية ضغط البيانات بواسطة وحدة zlib. تقدّم وحدة gzip الصنف GzipFile إضافة إلى الدوال open()‎ و compress()‎ و decompress()‎. يدعم برنامجا gzip و gunzip صيغ ملفات أخرى مثل تلك التي تنتج من compress و pack، ولكن يجدر التنبيه إلى أنّ هذه الصيغة غير مدعومة من قبل هذه الوحدة. تعرّف الوحدة العناصر التالية: الدالة gzip.open()‎ تفتح الدالة ملفًّا مضغوطًا بواسطة gzip ...

الدالة zlib.compressobj()‎ في بايثون

تعيد الدالة كائن ضغط يمكن استخدامه لضغط البيانات التي لا يمكن وضعها في الذاكرة دفعة واحدة. البنية العامة zlib.compressobj(level=-1, method=DEFLATED, wbits=MAX_WBITS, memLevel=DEF_MEM_LEVEL, strategy=Z_DEFAULT_STRATEGY[, zdict]) ‎المعاملات level المعامل level هو عدد صحيح ضمن النطاق 0 إلى 9 أو ‎-1 ووظيفته هي التحكم في مستوى عملية الضغط، فالقيمة 1 تقابل المستوى(Z_BEST_SPEED) وهو الأسرع ويعطي أقل مقدار من الضغط، والقيمة 9تقابل المستوى(Z_BEST_COMPRESSION) وهو الأبطأ وينتج أكبر مقدار من الضغط. أما القيمة 0 فتقابل المستوى (Z_NO_COMPRESSION) فتعني عدم ضغط البيانات. القيمة الافتراضية لهذا المعامل ...

HTML/Topics/Scripting

لإنشاء محتوى تفاعلي في تطبيقات الويب، فتدعم HTML استخدام لغات السكربتات، وخصوصًا JavaScript، وهنالك عدِّة عناصر متوافرة لدعم هذه الإمكانية. العنصر الوصف <canvas> استخدم العنصر <canvas> مع الواجهة البرمجية الخاصة به لترسم الرسومات وتحركها. <noscript> يُعرِّف العنصر <noscript> قسمًا من شيفرات HTML التي ستُضاف إلى الصفحة إذا لم يكن العنصر <script> مدعومًا في المتصفح أو كان استخدام شيفرات JavaScript معطلًا من قِبل المستخدم. <script> تضمين أو الإشارة إلى سكربت قابل للتنفيذ.

الحقل email

عناصر <input> ذات النوع email تسمح للمستخدم بإدخال وتعديل عنوان بريد إلكتروني، أو قائمةً بعناوين البريد الإلكتروني إذا كانت الخاصية multiple مضبوطةً. سيتم التحقق من صحة المدخلات تلقائيًا للتأكد أنَّها ليست فارغة وأنَّها تُمثِّل عنوان (أو عناوين) بريد إلكتروني صالح قبل إرسال النموذج. إذا لم يكن المتصفح يدعم الحقل email فسيستخدم المتصفح الحقل text الافتراضي. <input type="email" name="email"> الخاصية value تحتوي الخاصية value في الحقل email على سلسلة نصية (DOMString) التي سيتم التحقق من صحتها تلقائيًا، وهنالك ثلاث صيغ سليمة ...

الدالة zlib.crc32()‎ في بايثون

تحسب الدالة مجموع تحقق من نوع CRC (التحقّق من الزيادة الدورية Cyclic Redundancy Check) للبيانات المعطاة. تكون النتيجة عددًا صحيحًا طوله 32-بت خالٍ من الإشارة. البنية العامة zlib.crc32(data[, value]) ‎المعاملات value معامل اختياري تستخدمه قيمته -إن توفّرت- كقيمة بادئة لمجموع التحقق، وفي حال غيابه تكون القيمة الافتراضية هي 0. يؤدي تمرير قيمة إلى المعامل value إلى السماح بإجراء عمليات جمع تحقق مستمرّة على مجموعة من المدخلات المترابطة بعضها ببعض. هذه الخوارزمية ليست قوية من ناحية التشفير؛ لذا يُنصح بعدم استخدامها ...

الخاصّيّات (Properties) وحقول البيانات (Fields) في لغة Kotlin

التصريح عن الخاصّيّات (Declaring Properties) قد تحتوي الأصناف في لغة Kotlin على الخاصّيّات المعرَّفة إما كقيمٍ متغيّرةٍ عبر الكلمة المفتاحيّة var أو كقيمٍ ثابتةٍ للقراءة فقط (read-only) عبر الكلمة المفتاحيّة val، مثل: class Address { var name: String = ... var street: String = ... var city: String = ... var state: String? = ... var zip: String = ... } إذ يُمكن الوصول للخصائص عبر اسمها ...

الحقول المؤقتة (Temporary Fields)

توصيف المشكلة تحتوي الحقول المؤقَّتة على قيمٍ (وتُستخدَم وفقًا لها في الكائنات [objects]) ضمن شروطٍ مُحدَّدة، وتبقى فارغةً عند عدم تحقٌّق تلك الشروط. أسبابها تُخصَّصُ الحقول المؤقتة لاستخدامها في الخوارزميات التي تتطلَّب عددًا كبيرًا من المُدخلات (inputs)، فبدلًا من إنشاء الكثير من المعاملات في التابع (method parameters) يلجأ المُبرمِج لإنشاء حقولٍ مؤقَّتة لاحتواء البيانات المطلوبة في الصنف (class)، وبهذا فإنّ استخدام تلك الحقول لا يتعدّى تنفيذَ الخوارزميّة المُحدَّدة (ولا وظيفة أخرى لها خارج ذلك النطاق)، ويجعل وجودُ تلك الحقول من ...

الوحدة lzma في بايثون

تقدّم هذه الوحدة مجموعة من الأصناف والدوال المساعدة لإجراء عمليات ضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط LZMA. وتتضمّن هذه الوحدة كذلك واجهة للتعامل مع الملفات ذات الامتداد ‎.xz و ‎.lzma المستخدمة بواسطة الأداة xz، إضافة إلى التعامل مع البيانات المضغوطة الخام. تقدّم هذه الوحدة واجهة مشابهة إلى حد كبير للواجهة المقدّمة في الوحدة bz2، ولكن يجب الانتباه إلى أنّ الصنف LZMAFile -وعلى عكس الصنف bz2.BZ2File- لا تتمتع بسلامة الخيوط not thread-safe؛ لذا إن احتجت إلى استخدام نسخة واحدة ...

الحقل week

عناصر <input> ذات النوع week تُنشِئ حقل إدخال يسمح بانتقاء السنة ورقم الأسبوع في السنة (من الأسبوع 1 إلى 52). شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا، فالوضع الحالي لهذا الحقل في متصفحات Chrome و Opera و Edge ومتصفحات الهواتف المحمولة لا بأس به، وسيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="week" name="week"> سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera، الضغط على السهم سيؤدي إلى إظهار نافذة منتقي التاريخ: ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

إنشاء التوابع (Composing Methods)

تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods) المشكلة: وجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. الحل: نقل الشيفرة إلى تابعٍ (method) ...

الحقل month

عناصر <input> ذات النوع month تُنشِئ حقل إدخال يسمح بانتقاء السنة والشهر بسهولة. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا (راجع قسم دعم المتصفحات لمزيدٍ من المعلومات)، لكن هذا الحقل سيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="month" name="month"> سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera: لقطة لكيفية عرض الحقل month في متصفحَي Chrome و Opera. أما في متصفح Edge فسيبدو الحقل كما يلي: لقطة لكيفية عرض الحقل month ...

الحقل time

عناصر <input> ذات النوع time تُنشِئ حقل إدخال يسمح بإدخال الوقت بسهولة. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا، فالوضع الحالي لهذا الحقل في متصفحات Chrome و Opera و Edge ومتصفحات الهواتف المحمولة لا بأس به، وسيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="time" name="time"> سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera، إذ يظهر سهم علوي وسفلي إضافةً إلى زر لحذف قيمة الحقل، وسيُدخَل الوقت بصيغة 12 ساعة، أي ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

تبديل قيم البيانات إلى كائنات (Replace Data Values with Objects)

المشكلة وجود حقلٍ (field) مٌخصَّص للبيانات في صنفٍ (class) ما (أو في عددٍ من الأصناف)، ولهذا الحقل بياناته وسلوكه (behaviour) المرتبط به. الحل إنشاء صنفٍ جديدٍ ليُوضَع فيه الحقل (field) بالإضافة إلى سلوكه المرتبط به، وتخزين كائنٍ (object) من هذا الصنف الجديد في الصنف الأصليّ للحقل. مثال قبل إعادة التصميم يحتوي الصنف Order على الحقل customer الذي يحتوي بيانات نصيّة (من النوع String) كما هو واضح في مخطط الأصناف الآتي: الصنف Order يحتوي على الحقل customer الذي يحتوي بيانات نصيّة. ...

التابع ‎.data()‎ في jQuery

يخزِّن التابع ‎.data()‎ بيانات عشوائية مرتبطة بالعناصر المتطابقة أو تُعيد القيمة في مخزن البيانات المحدد للعنصر الأول في مجموعة العناصر المتطابقة. ‎.data( key, value )‎ القيمة المعادة يعيد التابع ‎.data()‎ كائنًا من النوع jQuery. الوصف يُخزن بيانات عشوائية مرتبطة بالعناصر المتطابقة. ‎.data( key, value )‎ أُضيفت مع الإصدار: 1.2.3. key سلسلة نصية مُنشَأة من الكائن String تشير إلى جزء من البيانات المراد تعيينه. value قيمة البيانات الجديدة، ويمكن أن تكون من أي نوع من أنواع JavaScript ما عدا القيمة undefined. ...

الوحدة Zlib في Node.js

مؤشر الاستقرار: 2 - مستقر توفر الوحدة zlib وظيفة الضغط باستخدام Gzip و Deflate/Inflate. ويمكن الوصول إليها باستخدام: const zlib = require('zlib'); يمكن ضغط أو فك ضغط دفقٍ ما (مثل ملف) بتوجيه بيانات دفق المصدر من خلال دفق zlib إلى دفق الوجهة: const gzip = zlib.createGzip(); const fs = require('fs'); const inp = fs.createReadStream('input.txt'); const out = fs.createWriteStream('input.txt.gz'); inp.pipe(gzip).pipe(out); من الممكن أيضا ضغط البيانات أو فك ضغطها في خطوة واحدة: const input = '.................................'; zlib.deflate(input, (err, buffer) => { if (!err) { console.log(buffer.toString('base64')); ...

البايتات byte في بايثون

البايتات هي تسلسلات لبايتات مفردة غير قابلة للتغيير (immutable)، وهي مشابهة إلى حدّ كبير للسلاسل النصية. توفّر هذه الكائنات توابع تكون صالحة للاستخدام مع البيانات ذات الترميز ASCII نظرًا لأنّ الكثير من البروتوكولات الثنائية الرئيسية مستندة إلى هذا الترميز. تعريف البايتات صيغة تعريف البايتات مماثلة لصيغة تعريف السلاسل النصية، باستثناء إضافة السابقة b إلى عبارة التعريف وكما يلي: b'still allows embedded "double" quotes' # علامات اقتباس مفردة b"still allows embedded 'single' quotes". ...

التعامل مع التعميم (Dealing with Generalization)

يملك التجريد (Abstraction) تقنيات إعادة التصميم الخاصة به والمرتبطة بشكل أساسي بوظيفة النقل على طول التسلسل الهرمي لوراثة الصنف (class inheritance hierarchy)، وبإنشاء أصناف وواجهات جديدة، وبتبديل التفويض مكان الوراثة أو العكس. تقنيات هذا القسم هي: استخراج الأصناف الفرعية (Extract Subclass) المشكلة: يكون للصنف ميزات تستعمل فقط في حالات معينة. الحل: إنشاء صنف فرعي واستخدامه في هذه الحالات. استخراج الأصناف الفائقة (Extract Superclass) المشكلة: وجود صنفين لهما حقول وتوابع مشتركة. الحل: إنشاء صنف أب مشترك لهما ونقل جميع الحقول والتوابع ...

الوحدة webbrowser في بايثون

تقدّم وحدة webbrowser واجهة متطوّرة تسمح بعرض مستندات الويب على المستخدمين. في أغلب الحالات يكفي استدعاء الدالة open()‎ ببساطة للقيام بكلّ شيء على نحو سليم. تكون متصفّحات الويب الرسومية graphical browser مفضّلة مع محرّك العرض X11، ولكنّ تستخدم الوحدة المتصفّحات النصية text-mode browsers إن كانت المتصفّحات الرسومية غير متوفّرة، أو كان محرّك العرض X11 غير متاح لاستخدام. وعند استخدام المتصفّحات النصية تتوقّف عملية الاستدعاء إلى حين خروج المستخدم من المتصفّح. إن كان متغيّر البيئة BROWSER موجودًا، فإنّه سيفسّر كقائمة os.pathsep ...

الصنف lzma.LZMACompressor في بايثون

تنشئ هذه الدالة البانية كائن compressor جديد، ويمكن استخدام هذا الكائن لضغط البيانات تزايدياً. راجع توثيق الدالة compress()‎ لضغط البيانات دفعة واحدة. البنية العامة lzma.LZMACompressor(format=FORMAT_XZ, check=-1, preset=None, filters=None) المعاملات يحدّد المعامل format نوع تنسيق الحاوية الذي يجب استخدامه، ويأخذ القيم التالية: FORMAT_XZ: تنسيق الحاوية ‎.xz هذا هو التنسيق الافتراضي. FORMAT_ALONE: تنسيق الحاوية ‎.lzma القديم. هذا التنسيق أكثر محدودية من التنسيق ‎.xz، ولا يدعم اختبارات السلامة integrity checks أو المرشحات المتعددة multiple filters. Format_RAW: تدفق بيانات خام، ولا يستخدم تنسيق حاوية. ...

الدالة mt_srand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تحدِّد الدالة mt_srand()‎ البذرة (seed) المستعملة في خوارزميَّة Mersenne Twister لتوليد أعداد عشوائيَّة. الوصف void mt_srand ([ int $seed [, int $mode = MT_RAND_MT19937 ]] ) تحدِّد هذه الدالة قيمة البذرة المستعملة في خوارزميَّة Mersenne Twister عند توليد أعداد عشوائيَّة. تكون قيمة البذرة هي المعامل seed المُمرَّر  إلى الدالة، وإن لم يُعطَ هذا المعامل فستكون قيمة البذرة هي قيمة عشوائيَّة. ملاحظة: لا حاجة لتحديد قيمة البذرة باستدعاء هذه الدالة أو الدالة srand()‎ في كل مرة ...

الدالة mt_srand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تحدِّد الدالة mt_srand()‎ البذرة (seed) المستعملة في خوارزميَّة Mersenne Twister لتوليد أعداد عشوائيَّة. الوصف void mt_srand ([ int $seed [, int $mode = MT_RAND_MT19937 ]] ) تحدِّد هذه الدالة قيمة البذرة المستعملة في خوارزميَّة Mersenne Twister عند توليد أعداد عشوائيَّة. تكون قيمة البذرة هي المعامل seed المُمرَّر  إلى الدالة، وإن لم يُعطَ هذا المعامل فستكون قيمة البذرة هي قيمة عشوائيَّة. ملاحظة: لا حاجة لتحديد قيمة البذرة باستدعاء هذه الدالة أو الدالة srand()‎ في كل مرة ...

الحقل date

عناصر <input> ذات النوع date تُنشِئ حقل إدخال يسمح بانتقاء التاريخ بسهولة، والتاريخ يتضمن السنة والشهر واليوم لكن ليس الوقت time. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا (راجع قسم دعم المتصفحات لمزيدٍ من المعلومات)، لكن هذا الحقل سيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="date" name="date"> سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera: لقطة لكيفية عرض الحقل date في متصفحَي Chrome و Opera. أما في متصفح Edge فسيبدو ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

الدالة strnatcmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcmp()‎ بين سلسلتين نصيَّتين (strings) مع تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي مع تحسُّس حال الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. المعاملات ...

القيمة

نوع البيانات <image> في CSS يستعمل لتمثيل صورة ثنائية الأبعاد؛ وهنالك نوعان من الصور: الصور التقليدية التي يُشار إليها عادةً باستخدام رابط URL، والصور المولّدة ديناميكيًا، مثل التدرجات اللونية <gradient>. يمكن استخدام القيمة <image> مع عدد كبير من خاصيات CSS مثل background-image و border-image و content و list-style-image و cursor. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Safari Opera <url> مدعومة مدعومة مدعومة مدعومة مدعومة <gradient> 26.0 16.0 10.0 6.1 12.1 أنواع الصور يمكن أن تتعامل CSS مع أنواع الصور ...

المصفوفات في PHP

تسمح لك هذه الدوال بالتعامل مع المصفوفات وتعديلها بطرائق عديدة. المصفوفات عنصر أساسي لتخزين وإدارة والتعامل مع مجموعاتٍ من المتغيرات. تدعم لغة PHP المصفوفات أحادية ومتعددة الأبعاد، ويمكن أن ينتجها المستخدم بنفسه أو أن يستخدم دوالًا أخرى لإنشائها. توجد كذلك دوال متخصصة للتعامل مع قواعد البيانات وملأ المصفوفات من نواتج استعلامات قواعد البيانات، وتعيد الكثير من الدوال مصفوفاتٍ أيضًا. رجاءً تصفَّح نوع البيانات الخاص بالمصفوفات من هذا التوثيق للحصول على شرح تفصيلي عن كيفية استعمال المصفوفات في لغة PHP. انظر ...

الدالة natsort()‎‎‎‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تُرتّب الدالة natsort()‎‎‎‎‎‎‎ عناصر المصفوفة باستخدام خوارزمية "الترتيب الطبيعي". الوصف bool natsort ( array &$array ) تُنفذ هذه الدالة خوارزمية تُرتّب سلاسل نصية فيها أحرف وأرقام بنفس الطريقة التي يُرتّب بها الإنسان مع الحفاظ على علاقة المفاتيح بالقيم المرتبطة بها. وتسمى هذه الطريقة باسم "الترتيب الطبيعي". ويمكن ملاحظة مثال على الفرق بين هذه الخوارزمية وخوارزميات الترتيب المعتادة لترتيب السلاسل النصية الرقمية (المستخدمة في الدالة sort()‎‎‎) في المثال التالي. ملاحظة: إذا تساوت مقارنة عنصرين، فإن ترتيبهما ...

الحقل datetime-local

عناصر <input> ذات النوع date تُنشِئ حقل إدخال يسمح بانتقاء التاريخ والوقت بسهولة، والتاريخ يتضمن السنة والشهر واليوم والساعات والدقائق. شكل هذا الحقل يختلف من متصفح إلى متصفح، فالدعم الحالي ليس مثاليًا، فالوضع الحالي لهذا الحقل في متصفحات Chrome و Opera و Edge ومتصفحات الهواتف المحمولة لا بأس به، وسيُعرَض كحقل نصي في المتصفحات التي لا تدعمه: <input type="datetime-local" name="datetime"> سيبدو هذا الحقل كما في الصورة الآتية في متصفحَي Chrome و Opera، الضغط على السهم سيؤدي إلى إظهار نافذة منتقي التاريخ، ...

الدالة natcasesort()‎‎‎‎‎ في PHP

(PHP 4, PHP 5, PHP 7) تُرتّب الدالة natcasesort()‎‎‎‎‎ مصفوفة باستخدام خوارزمية "الترتيب الطبيعي" غير الحساسة لحالة الحرف. الوصف bool natcasesort ( array &$array ) الدالة natcasesort()‎‎‎‎‎ هي نسخة من الدالة ()‎natsort لكنها غير حساسة لحالة الحرف. تُنفذ هذه الدالة خوارزمية تُرتّب سلاسل نصية تحتوي على أحرف وأرقام بنفس الطريقة التي يُرتّب بها الإنسان مع الحفاظ على علاقة المفاتيح بالقيم المرتبطة بها. وتسمى هذه الطريقة باسم "الترتيب الطبيعي". ملاحظة: إذا تساوت مقارنة عنصرين، فإن ترتيبهما النسبي في المصفوفة المُرتّبة سيكون غير ...

معاملات المقارنة في JavaScript

تملك JavaScript نوعين من المقارنة: نوع المقارنة الصارم (strict comparison) مثل المعامل === الذي تكون نتيجة المقارنة معه هي true إذا كانت كلا القيمتان من النوع نفسه ومحتوياتهما متطابقة؛ ونوع المقارنة الذي يحوِّل أنواع البيانات لتتوافق مع بعضها (type–converting comparison) مثل المعامل == الذي يحوِّل القيمتين إلى النوع نفسه قبل إجراء عملية المقارنة؛ أما لعمليات المقارنة النسبية (مثل ‎>=‎) فستحوَّل القيم المُقارَنة إلى قيم أوليّة ثم إلى نوع البيانات نفسه وذلك قبل إجراء عملية المقارنة. تُقارَن السلاسل النصية بناءً على ...

Python/Topics

بنية اللغة بيان للبنية العامة للغة بايثون وبعض الأمور العامة مثل التعليقات وتسمية المعرّفات وغيرها. مفسر بايثون يستخدم مفسر بايثون لمعالجة الشيفرات المكتوبة بها، وهو يقبل عددًا من الخيارات، ويمكن تشغيله في الوضع التفاعلي. أنواع البيانات القيمة المنطقية (boolean) القيمتان المنطقيتان اللتان تدعمهما بايثون هما True و False وهما كائنان ثابتان (Constant objects) يعبران عن صحّة تعبير ما، فإمّا أن يكون صحيحًا True أو خطأً False. الأعداد الصحيحة (int) العدد الصحيح integer هو أي عدد موجب أو سالب لا يتضمن ...

الوحدة heapq في بايثون

تقدّم هذه الوحدة وسيلة لاستخدام خوارزمية طابور الكومة heap queue والتي تعرف كذلك بخوارزمية طابور الأولوية priority queue. الكومات Heaps هي مشجّرات ثنائية binary trees تمتلك كل عقدة أبوية parent node فيها قيمة تكون أصغر من أو مساوية لأي قيمة أخرى في العقد البنوية children. تستخدم الوحدة مصفوفات تكون فيها heap[k] <= heap[2*k+1]‎ و heap[k] <= heap[2*k+2]‎ لجميع قيم k، ويبدأ عدّ العناصر من الصفر. ولغرض المقارنة، تُعدّ العناصر غير الموجودة ما لا نهائية. أما أهمّ خصائص الكومة هي أنّ ...

العنصر

استخدم العنصر <canvas> مع الواجهة البرمجية الخاصة به لترسم الرسومات وتحركها. المثال الآتي سيُضيف عنصر <canvas> إلى مستند HTML، مع تحديد ارتفاعه عبر الخاصية height وعرضه عبر الخاصية width، وسنوفِّر نصًا بديلًا إن لم يكن المتصفح قادرًا على عرض العنصر، فمن المفيد توفير محتوى بديل لزيادة قابلية الوصول لمحتوى العنصر. <canvas id="canvas" width="300" height="300"> نص بديل يصف ماذا يظهر العنصر <code>canvas</code>. </canvas> وبفرض أننا سنرسم مستطيلًا بأبعاد 80×80 باللون الأحمر، فستكون شيفرة JavaScript كالآتي: <script> var canvas = document.getElementById("canvas"); ...

وحدة الخيوط العاملة (Worker Threads) في Node.js

مؤشر الاستقرار: 1 - تجريبي توفر وحدة worker طريقة لإنشاء بيئات متعددة تعمل علي خيوط مستقلة، ولإنشاء قنوات رسائل بينها. ويمكن الوصول إليها باستخدام الراية ‎--experimental-worker flag بالإضافة إلى: const worker = require('worker_threads'); وتفيد الخيوط العاملة (Workers) في أداء عمليات JavaScript كثيفة الاستخدام لوحدة المعالجة المركزية؛ ويجب ألَّا تستخدم في عمليات الإدخال والإخراج I/O، إذ تتعامل آلياتُ Node.js المدمجة لتنفيذ العمليات بشكل غير متزامن معها بشكل أكثر كفاءة من خيوط Worker. علي عكس العمليات التابعة أو عند استخدام وحدة cluster، يمكن ...

الدالة lcg_value()‎ في PHP

(PHP 4, PHP 5, PHP 7) تعيد الدالة lcg_value()‎ عددًا شبه عشوائي (pseudo random number) يترواح مجاله بين 0 - 1؛ تستعمل الدالة خوارزمية مولد المتطابقة الخطية المختلطة (combined linear congruential generator). الوصف float lcg_value ( void ) تعيد هذه الدالة عددًا شبه عشوائي تنحصر قيمته بين 0 - 1. تَدمج هذه الدالة بين نوعين من خوارزميات مولدات المتطابقة الخطية طول دورة (period) إحداها 2‎31 - 85 والأخرى ‎231 - 249. تكون طول دورة هذه الدالة هي حاصل جداء العددين الأوليين ...

الدالة lcg_value()‎ في PHP

(PHP 4, PHP 5, PHP 7) تعيد الدالة lcg_value()‎ عددًا شبه عشوائي (pseudo random number) يترواح مجاله بين 0 - 1؛ تستعمل الدالة خوارزمية مولد المتطابقة الخطية المختلطة (combined linear congruential generator). الوصف float lcg_value ( void ) تعيد هذه الدالة عددًا شبه عشوائي تنحصر قيمته بين 0 - 1. تَدمج هذه الدالة بين نوعين من خوارزميات مولدات المتطابقة الخطية طول دورة (period) إحداها 2‎31 - 85 والأخرى ‎231 - 249. تكون طول دورة هذه الدالة هي حاصل جداء العددين الأوليين ...

الوحدة urllib.request‎‎ في بايثون

تقدّم وحدة urllib.request عددًا من الدوال والأصناف التي تساعد في فتح عناوين URL‏ (HTTP في الغالب) لاستخدامها في عمليات مختلفة مثل الاستيثاق البسيط وإعادة التوجيه والتعامل مع الكعكات cookies وغيرها. ملاحظة: يُنصح باستخدام الحزمة Requests في العمليات المتقدّمة لأنّها توفّر واجهة برمجية ذات مستوى أعلى. دوالّ الوحدة urllib.request تقدّم وحدة urllib.request الدوال التالية: الدالة urllib.request.urlopen()‎ تفتح الدالة عنوان URL المعطى. urllib.request.install_opener()‎ تثبّت الدالة نسخة من الصنف OpenerDirector كفاتح opener افتراضي عام. urllib.request.build_opener()‎ تعيد الدالة نسخة من الصنف OpenerDirector والتي تربط ...

الدالة mt_rand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تولِّد الدالة mt_rand()‎ عددًا صحيحًا شبه عشوائي (pseudo-random integer) وتعيده وذلك باستعمال خوارزميَّة Mersenne Twister. الوصف int mt_rand ( void ) int mt_rand ( int $min , int $max )) تنبيه: لا تولِّد هذه الدالة أي قيم آمنة، لذا لا يجب استعمالها لغرض التشفير مطلقًا. إن أردت توليد قيم آمنة مشفَّرة، فاستعمل الدالة random_int()‎ أو الدالة random_bytes()‎ أو الدالة openssl_random_pseudo_bytes()‎. تعيد معظم الخوارزميات التي تستعملها الدوال التابعة لمكتبة libcs لتوليد أعداد عشوائيَّة قيمًا مريبة أو ذات ...

الدالة mt_rand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تولِّد الدالة mt_rand()‎ عددًا صحيحًا شبه عشوائي (pseudo-random integer) وتعيده وذلك باستعمال خوارزميَّة Mersenne Twister. الوصف int mt_rand ( void ) int mt_rand ( int $min , int $max )) تنبيه: لا تولِّد هذه الدالة أي قيم آمنة، لذا لا يجب استعمالها لغرض التشفير مطلقًا. إن أردت توليد قيم آمنة مشفَّرة، فاستعمل الدالة random_int()‎ أو الدالة random_bytes()‎ أو الدالة openssl_random_pseudo_bytes()‎. تعيد معظم الخوارزميات التي تستعملها الدوال التابعة لمكتبة libcs لتوليد أعداد عشوائيَّة قيمًا مريبة أو ذات ...

الدالة srand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تحدِّد الدالة srand()‎ البذرة (seed) المستعملة في خوارزميَّة توليد أعداد عشوائيَّة. الوصف void srand ([ int $seed ] ) تحدِّد هذه الدالة البذرة المستعملة في خوارزميَّة توليد الأعداد العشوائيَّة. تكون قيمة البذرة هي المعامل seed المُمرَّر  إلى الدالة، وإن لم يُعطَ هذا المعامل فستكون قيمة البذرة هي قيمة عشوائيَّة. ملاحظة: لا حاجة لتحديد قيمة البذرة باستدعاء هذه الدالة أو الدالة mt_srand()‎ في كل مرة تريد فيها توليد أعداد عشوائيَّة، سواءً باستعمال الدالة rand()‎ أو الدالة ...

الدالة srand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تحدِّد الدالة srand()‎ البذرة (seed) المستعملة في خوارزميَّة توليد أعداد عشوائيَّة. الوصف void srand ([ int $seed ] ) تحدِّد هذه الدالة البذرة المستعملة في خوارزميَّة توليد الأعداد العشوائيَّة. تكون قيمة البذرة هي المعامل seed المُمرَّر  إلى الدالة، وإن لم يُعطَ هذا المعامل فستكون قيمة البذرة هي قيمة عشوائيَّة. ملاحظة: لا حاجة لتحديد قيمة البذرة باستدعاء هذه الدالة أو الدالة mt_srand()‎ في كل مرة تريد فيها توليد أعداد عشوائيَّة، سواءً باستعمال الدالة rand()‎ أو الدالة ...

الخاصية grid-auto-flow

الخاصية grid-auto-flow في CSS تضبط كيف ستعمل خوارزمية تحديد مواضع عناصر grid التلقائية. بطاقة الخاصية القيمة الابتدائية row تُطبَّق على حاويات grid. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت، لكن مع تحويل الأطوال النسبية إلى مطلقة. /* كلمات محجوزة */ grid-auto-flow: row; grid-auto-flow: column; grid-auto-flow: dense; grid-auto-flow: row dense; grid-auto-flow: column dense; /* القيم العامة */ grid-auto-flow: inherit; grid-auto-flow: initial; grid-auto-flow: unset; أمثلة هذا مثال عن استخدام الكلمة المحجوزة column مع الخاصية grid-auto-flow، حاول تجربة القيم الأخرى لتعرف الفرق بينها: <div id="grid"> <div id="item1"></div> ...

تبديل رموز الأنواع بالحالة/الاستراتيجية (Replace Type Code with State/Strategy)

ما هو رمز النوع؟ يحدث رمز النوع عندما يوجد مجموعة من الأرقام أو السلاسل النصية التي تشكل قائمة بالقيم المسموح بها لبعض العناصر بدلًا من استخدام نوع بيانات منفصل. وغالبًا ما تُعطَى هذه الأرقام والسلاسل المحددة أسماءً مفهومة عن طريق الثوابت، وهو السبب في استخدام هذه الرموز بشكل كبير. المشكلة يؤثر نوع مُرمَّز على سلوك البرنامج ولكن لا يمكن استخدام الأصناف الفرعية للتخلص منه. الحل استبدال رمز النوع بكائن حالة. إذا كان من الضروري استبدال قيمة حقل برمز النوع، فسيكون ...

التجزئة (Hashing) في Laravel

مقدمة تقدم واجهة التجزئة الخاصة بإطار Laravel تجزئة Bcrypt و Argon2 آمنة لتخزين كلمات مرور المستخدم. إذا كنت تستخدم الصنفين الداخليين ‎(Built-in classes)‎ LoginController و RegisterController المتضمنين مع تطبيق Laravel الخاص بك، فإنهما يستخدمان Bcrypt للتسجيل والاستيثاق تلقائيًا. ملاحظة: يعدّ Bcrypt خيارًا رائعًا لتجزئة كلمات المرور لأن "عامل العمل" الخاص به قابل للتعديل، مما يعني أنه يمكن زيادة الوقت المستغرق لإنشاء تجزئة كلما زادت طاقة المعدات. الضبط يُضبط محرك تشغيل التجزئة التلقائي الخاص بتطبيقك في ملف الإعدادات config/hashing.php. يوجد حاليا ...

العنصر

يُمثِّل العنصر <img> صورةً في المستند. مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt): <img src="wiki-logo.png" alt="Wiki Hsoub Logo"> مثال عن استخدام العنصر <img> لعرض صورة مع تحديد نص بديل لها (عبر الخاصية alt) داخل العنصر مما يسمح بالنقر على الصورة للانتقال: <a href="wiki.hsoub.com"><img src="wiki-logo.png" alt="Wiki Hsoub Logo"></a> بطاقة العنصر تصنيفات المحتوى عنصر تنظيمي أو عنصر عادي أو عنصر يحتوي وسائط مضمّنة أو عنصر تفاعلي. المحتوى المسموح لا يوجد، فهذا العنصر فارغ. الوسم المختصر ...

Kotlin/Topics

بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...

التشفير (Encryption) في Laravel

مقدمة يستخدم مُشفّر Laravel مكتبة التشفير OpenSSL لتوفير تشفير AES-256 و AES-128. ننصحك بشدة باستخدام تسهيلات التشفير المضمنة في Laravel وعدم محاولة إنشاء خوارزميات التشفير المنشأة محليًا والخاصة بك. يتم توقيع جميع قيم Laravel المشفرة باستخدام رسالة رمز الاستيثاق (message authentication code - MAC) بحيث لا عدل قيمها الأساسية بمجرد تشفيرها. الضبط قبل استخدام مُشفّر Laravel، اضبط خيار المفتاح (‎(key في ملف الإعدادات config/app.php. استخدم الأمر php artisan key:generate لإنشاء هذا المفتاح لأن أمر Artisan سيستخدم مولد بايت عشوائي آمن ...

المطابقة (Reconciliation) في React

تُزوّدنا React بواجهة برمجة تطبيقات (API) صريحة بحيث لا نقلق بشأن التغييرات التي تطرأ في كل تحديث. يجعل هذا من كتابة التطبيقات أمرًا أسهل بكثير، ولكن قد لا يكون من الواضح كثيرًا كيفيّة تطبيق هذا في React. تشرح هذه الصفحة الخيارات التي وضعناها في خوارزمية المقارنة (diffing) بحيث تكون تحديثات المُكوّنات متوقعة وفي نفس الوقت سريعة كفاية لأجل التطبيقات عالية الأداء. البداية عندما تستخدم React في نقطة زمنية محدّدة بإمكانك التفكير في التابع render()‎ كأنّه يُنشِئ شجرة من عناصر React، ...

الدالة strnatcasecmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcasecmp()‎ بين سلسلتين نصيَّتين (strings) دون تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcasecmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي ودون تحسُّس حالة الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. تشبه ...

الدالة strnatcasecmp()‎ في PHP

(PHP 4, PHP 5, PHP 7) توازن الدالة strnatcasecmp()‎ بين سلسلتين نصيَّتين (strings) دون تحسُّس حالة الأحرف (كبيرة أو صغيرة) وذلك باستعمال خوارزميَّة الترتيب الطبيعي (natural order algorithm). الوصف int strnatcasecmp ( string $str1 , string $str2 ) توازن هذه الدالة بين السلسلة النصيَّة str1 والسلسلة النصيَّة str2 باستعمال خوارزميَّة الترتيب الطبيعي ودون تحسُّس حالة الأحرف. تُرتِّب هذه الخوارزميَّة السلاسل النصيَّة التي تحوي أحرفًا وأرقامًا بالطريقة ذاتها التي يُرتِّب بها البشر (لهذا السبب سميت "الترتيب الطبيعي") ثمَّ تبدأ عمليَّة الموازنة. تشبه ...

الدالة rand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تولِّد الدالة rand()‎ عددًا صحيحًا شبه عشوائي (pseudo-random integer) وتعيده. الوصف int rand ( void ) int rand ( int $min , int $max ) تعيد هذه الدالة عددًا شبه عشوائي تنحصر قيمته بين 0 وقيمة الدالة getrandmax()‎ إن استدعيت دون تمرير المعاملين الاختياريين min و max. أمَّا إن أردت توليد عدد عشوائي تنحصر قيمته في مجال محدَّد، فاستعمل المعاملين السابقين لتحديد ذلك المجال. تنبيه: لا تولِّد هذه الدالة أي قيم آمنة، لذا لا يجب استعمالها ...

الدالة rand()‎ في PHP

(PHP 4, PHP 5, PHP 7) تولِّد الدالة rand()‎ عددًا صحيحًا شبه عشوائي (pseudo-random integer) وتعيده. الوصف int rand ( void ) int rand ( int $min , int $max ) تعيد هذه الدالة عددًا شبه عشوائي تنحصر قيمته بين 0 وقيمة الدالة getrandmax()‎ إن استدعيت دون تمرير المعاملين الاختياريين min و max. أمَّا إن أردت توليد عدد عشوائي تنحصر قيمته في مجال محدَّد، فاستعمل المعاملين السابقين لتحديد ذلك المجال. تنبيه: لا تولِّد هذه الدالة أي قيم آمنة، لذا لا يجب استعمالها ...

الدالة mt_getrandmax()‎ في PHP

(PHP 4, PHP 5, PHP 7) تعيد الدالة mt_getrandmax()‎ أكبر قيمة عشوائيَّة محتملة. الوصف int mt_getrandmax ( void ) تعيد هذه الدالة أكبر قيمة يمكن أن تعيدها الدالة mt_rand()‎ عند استدعائها. القيم المعادة تُعاد أكبر قيمة عشوائيَّة محتملة يمكن أن تعيدها الدالة mt_rand()‎ دون تمرير أي معامل لها‎. بمعنى آخر، تُعاد القيمة الأكبر التي يمكن استعمالها للمعامل max في الدالة mt_rand()‎ دون إمكانية زيادة النتيجة التي تعيدها هذه الدالة، وبالتالي الحصول على قيم أقل عشوائيَّة. أمثلة المثال 1: إيجاد عدد عشري ...

الدالة mt_getrandmax()‎ في PHP

(PHP 4, PHP 5, PHP 7) تعيد الدالة mt_getrandmax()‎ أكبر قيمة عشوائيَّة محتملة. الوصف int mt_getrandmax ( void ) تعيد هذه الدالة أكبر قيمة يمكن أن تعيدها الدالة mt_rand()‎ عند استدعائها. القيم المعادة تُعاد أكبر قيمة عشوائيَّة محتملة يمكن أن تعيدها الدالة mt_rand()‎ دون تمرير أي معامل لها‎. بمعنى آخر، تُعاد القيمة الأكبر التي يمكن استعمالها للمعامل max في الدالة mt_rand()‎ دون إمكانية زيادة النتيجة التي تعيدها هذه الدالة، وبالتالي الحصول على قيم أقل عشوائيَّة. أمثلة المثال 1: إيجاد عدد عشري ...

أنواع الوسائط المدعومة في المتصفحات

تدعم العناصر <audio> و <video> تشغيل الصوت والفيديو ضمن صفحات الويب دون إضافات. صيغة ملفات الوسائط تتألف من حاوية (container) تحتوي على مسار أو أكثر من مسارات البيانات (data stream)، وتلك المسارات مرمَّزة (coded) باستخدام مرماز (codec). يمكن التعرف على الحاويات من صيغة الملف (أي لاحقته). المسارات الموجودة ضمن الحاويات يمكن أن تتضم مختلف أنواع البيانات مثل الفيديو والصوت والترجمات والبيانات الوصفية. لاحظ أنَّ بالإمكان أن تضم الحاوية الواحدة (أي ملف الوسائط الواحد) على أكثر من مسار من نفس النوع. ...

الدالة md5()‎ في PHP

(PHP 4, PHP 5, PHP 7) تحسب الدالة md5()‎ قيمة md5 لسلسلة نصية. تحذير: تجنب استعمال الدالة md5()‎ في تأمين كلمات المرور نظرًا لسرعة تنفيذ هذه الخوارزمية. راجع أسئلة كلمات المرور الشائعة لتفاصيل أكثر. الوصف string md5 ( string $str [, bool $raw_output = FALSE ] ) تحسب الدالة md5()‎ قيمة md5 للسلسلة النصية str باستخدام الخوارزمية RSA Data Security, Inc. MD5 Message-Digest Algorithm، وتُعيد القيمة الناتجة. المعاملات str السلسلة النصية. raw_output عند تحديده بالقيمة TRUE، فستُعيد الدالة بصمة رقمية بالتمثيل ...

الدالة ()random_number_generator في Sass

تستدعي الدالة random_number_generator()‎ مولد الأعداد العشوائيَّة الداخلي في Sass لتوليد عدد عشوائي. البنية العامة .random_number_generator() القيم المعادة يُعاد عدد عشوائي. انظر أيضًا الدالة random_seed()‎: تُعيّن البذرة المستعملة في خوارزميَّة توليد الأعداد العشوائيَّة. مصادر قسم الدالة random_number_generator في صفحة الدوال في توثيق Sass الرسمي.

تكرار الشيفرات (Duplicate Code)

توصيف المشكلة التشابه (أو التطابق المطلق) بين مقطعين من الشيفرة في البرنامج. أسبابها تحدث هذه المشكلة عندما يعمل أكثرُ من مبرمجٍ على كتابة أجزاءَ مختلفةٍ من نفس البرنامج وبنفس الوقت، فلا يدري أحدهم أنّ الشيفرة التي يكتبها قد سبقه بها مبرمجٌ آخر ومن الممكن استخدامها نفسها دون الحاجة لتكرارها. أو قد تنتُج عن وجود جزئين من الشيفرة مختلفين شكليًّا متماثلين ضمنيًا (يؤديان نفس المهمة)، ومن الصعب كشف هذا النوع من التكرار وعلاجه. قد يكون التكرار هادفًا ببعض الأحيان، كأن يكون ...

الخاصيات العامة

الخاصيات العامة هي الخاصية التي يمكن استعمالها في جميع عناصر HTML، على الرغم من أنَّها قد لا يكون لها تأثير إن استعملت على بعض العناصر. يمكن أن تستعمل الخاصيات العامة على جميع عناصر HTML حتى لو لم تكن هذه العناصر موجودةً في المعيار، وهذا يعني أنَّ العناصر غير المعيارية يجب أن تسمح باستخدام هذه الخاصية، حتى لو كان استخدام هذه العناصر سيؤدي إلى جعل المستند غير متوافق مع معيار HTML5. فمثلًا ستخفي المتصفحات التي تدعم HTML5 المحتوى الموجود ضمن العنصر ...

الدالة levenshtein()‎ في PHP

(PHP 4 >= 4.0.1, PHP 5, PHP 7) تقيس الدالة levenshtein()‎ مسافة Levenshtein بين سلسلتين نصيتين. الوصف int levenshtein ( string $str1 , string $str2 ) int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del ) تُقاس مسافة Levenshtein بعدد المحارف الواجب استبدالها أو إضافتها أو حذفها لتحويل السلسلة النصية str1 إلى السلسلة النصية str2. يُعَد تعقيد خوارزمية الدالة levenshtein()‎ من الدرجة (O(m*n، حيث تمثل m و n طول السلسلتين النصيتين str1 و str2 ...

الكائن JSON في JavaScript

الكائن JSON يحتوي على الدوال التي تُفسِّر صيغة JavaScript Object Notation (اختصارًا JSON) وتحوّل القيم إلى صيغة JSON. ليس الغرض من هذا الكائن هو تهيئته أو بناؤه (عبر المعامل new)، وليس له عملٌ خاصٌ به باستثناء وجود دالتين تابعتين له. الوصف صيغة JSON هي صيغة لتخزين الكائنات والمصفوفات والأعداد والسلاسل النصية والقيم المنطقية والقيمة null؛ وهي مبنية على صيغة JavaScript لكنها تختلف عنها، فبعض شيفرات JavaScript ليست صالحةً في JSON، وبعض شيفرات JSON ليس صالحةً في JavaScript. الجدول الآتي يعرض ...

استنتاج الأنواع في TypeScript

مقدمة سنُغطّي في هذا القسم آلية استنتاج الأنواع في TypeScript، خاصّةً أين وكيف تُستنتَج الأنواع. الأساسيات هناك العديد من الأماكن في TypeScript التي يُستعمَل فيها استنتاج الأنواع لتوفير معلومات النوع عندما لا تكون هناك حاشية نوع (type annotation) صريحة. على سبيل المثال، في الشيفرة التالية let x = 3; سيُستَنتَجُ نوع المتغيّر ‎x‎ على أنّه النوعُ ‎number‎. استنتاج الأنواع هذا يكون عند تهيئة (initializing) المتغيرات والعناصر، أو عند ضبط قيم افتراضيّة للمعاملات، أو عند تحديد النوع المُعادِ لدالةٍ ما. يكون ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).