نتائج البحث

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

أنواع المتغيرات في Bash

التعيين العام للقيَم لم نركز كثيرًا في الشرح السابق لصدفة Bash على أنواع المتغيرات التي كنا نعيِّنها لأن Bash تستطيع التعامل مع أنواع متعددة من المتغيرات والمعامِلات، ونتيجة لذلك فإن متغيراتنا يمكنها احتواء أي نوع نختاره من البيانات، انظر المثال التالي للتوضيح: [hsoub in ~] VARIABLE=12 [hsoub in ~] echo $VARIABLE 12 [hsoub in ~] VARIABLE=string [hsoub in ~] echo $VARIABLE string وستكون حالات تريد فيها تجنب هذا السلوك من المثال السابق حين تتعامل مع أرقام الهواتف وغيرها مثلًا، وقد تحتاج أن تحدد متغيرًا ثابتًا (Constant ...

مفسر بايثون

تشغيل المفسر عادة ما يُنصَّب مفسِّر بايثون في المسار ‎/usr/local/bin/python3.6 في أنظمة يونكس، ويؤدّي وضع هذا المسار ضمن مسار البحث الخاصّ بصدفة يونكس (Unix shell) إلى إمكانية استدعاء مفسّر بايثون عن طريق كتابة الأمر التالي في الصدفة: python3.6 ملاحظة: في أنظمة يونكس، لا يستخدم الاسم python افتراضيًا لاستدعاء مفسّر بايثون في الإصدارات ‎3.x‎ من اللغة، وذلك لتجنّب حدوث أي تضارب مع مفسّر الإصدارات ‎2.x من اللغة. يمكن تحديد مسار مفسِّر بايثون أثناء عملية التثبيت، وعادة ما يُستخدم المسار التالي: ‎/usr/local/python كمسار ...

ميزات صدفة Bash

صدفة bash هي الصدفة الافتراضية لنظام جنو يوفّر مشروع GNU -إذ يشير الاسم إلى GNU's Not UNIX- أدواتٍ لإدارة النظم الشبيهة بنظام يونكس، وهي نظم التشغيل الحرة والمتوافقة مع معايير يونكس. وإحدى تلك الأدوات هي bash، صَدَفة متوافقة مع صدفة sh الأولى التي كتبها ستيفن بورن، وبها خصائص مفيدة من صدفتي Korn و C -اختصاراتهما ksh و csh على الترتيب-. وقد صُممت لتتوافق مع معيار IEEE POSIX P1003.2/ISO 9 945.2 للصدفات والبرامج.  كما أن بها مزايا محسّنة عن sh سواء ...

ملفات تهيئة الصدفة

ملفات الإعدادات على مستوى النظام System-wide Configuration files الملف etc/profile/ تقرأ Bash التعليمات الموجودة في etc/profile/ إن استدعيْت بشكل تفاعلي عبر خيار login-- أو إن استدعيْت كـ sh ، تضبط تلك التعليمات عادة المتغيرات PATH - USER - MAIL - HOSTNAME - HISTSIZE ، وهي متغيرات تابعة للصدفة. كذلك تُضبط قيمة umask في etc/profile/ على بعض الأنظمة، أما في بعضها الآخر فإن هذا الملف يحتوي على موجّهات (pointers) لملفات الإعدادات الأخرى مثل: ملف etc/inputrc/ ، وهو ملف تهيئة على مستوى ...

صدفة Bash وبرامج Bash

تعريف بصدفة Bash Bash هي صدفة نظام جنو التي تتوافق مع صدفة بورن وتزيد عليها بعدة مزايا وخصائص مفيدة من باقي الصدفات، وحين تبدأ الصدفة فإنها تقرأ ملفات إعداداتها التي من أهمها ما يلي: etc/profile/ bash_profile./~ bashrc./~ كذلك تتصرف bash بشكل مختلف حين تكون في وضع تفاعلي، وهي متوافقة مع معايير POSIX وبها وضع محظور. ويمكن تقسيم أوامرها إلى ثلاث مجموعات: دوال الصدفة والأوامر المُضمَّنة والأوامر الموجودة داخل مجلد في نظامك. أيضًا، تدعم bash أوامر مضمَّنة أخرى ليست موجودة داخل ...

عرض رسائل المستخدم في Bash

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

الحصول على مُدخلات المستخدم في Bash

استخدام أمر read أمر read هو الأمر المتمم لأمريْ echo و printf، وبنيته اللغوية كالتالي: read [options] NAME1 NAME2 ... NAMEN يُقرأ سطر واحد من المُدخل القياسي (standard input) أو من واصف ملف (file descriptor) أُدخِل كوسيط لخيار u-، وتُعيَّن أول كلمة من السطر لأول اسم NAME1، والثانية للاسم الثاني NAME2 وهكذا، ثم تُعيَّن الكلمات المتبقية وفاصلاتها المتداخلة (intervening seperators) إلى الاسم الأخير NAMEN، أما إن كانت الكلمات المقروءة من مجرى الدخل أقل من الأسماء فتعيَّن قيم فارغة لتلك الأسماء. تُستخدم ...

الدوال في Bash

توفر الدوال طريقة سهلة لتجميع أوامر تحتاج إلى تنفيذها بشكل متكرر، وحين تعمل الدالة فإن المعامِلات الموضعية (positional parameter) تتغير إلى معامِلات الدالة، ثم يعاد ضبط تلك المعاملات بعد توقف الدالة إلى معاملات البرنامج المُستدعِي. وكذلك فإن الدوال تشبه برامج مصغرة (mini-scripts)، ومن ثَمَّ فإنها تولِّد رموز حالة خروج (exit codes) أو رموز حالة إعادة (return codes). مقدمة إلى الدوال في Bash نظرة عامة على الدوال في Bash والبُنى اللغوية لها ومعامِلاتها الموضعية وعرضها في الصدفة. أمثلة عن الدوال في ...

بيئة Bash

يمكن إعداد بيئة Bash على مستوى النظام ككل أو لكل مستخدم على حدة، وتُستخدم ملفات الإعدادات المختلفة من أجل ضبط سلوك الصدفة، إذ تحتوي تلك الملفات على خيارات الصدفة وإعدادات المتغيرات وتعريفات الدوال ووحدات أخرى من وحدات بناء صدفة Bash التي تيسر علينا إنشاء بيئة عمل مريحة ومنجِزة. يمكن اختيار أسماء للمتغيرات كما تشاء -نوعًا ما- باستثناء الأسماء المحجوزة لصدفة بورن وصدفة Bash والمعامِلات الخاصة (special parameters). وتستخدم Bash نظام اقتباس (quoting) لاستبعاد المعاني الخاصة من محرف أو أكثر في ...

Bash/Topics

صدفة Bash وبرامج Bash البرامج الشائعة للصَّدَفة وظائف الصدفة وما تفعله إضافة إلى أنواعها المختلفة (sh، bash، csh، ... ) مزايا صدفة Bash استعراض لأهم مزايا صدفة Bash، مثل الصور المختلفة لاستدعاءات الصدفة، والتعابير الحسابية والشرطية والصدفة المحظورة، وكذلك الأوامر البديلة والمصفوفات، ... . تنفيذ الأوامر في Bash توضيح لما يحدث عند تنفيذ الأوامر في صدفة Bash، واستعراض لأهم الأوامر المُضمَّنة فيها. وحدات البناء الأساسية شرح للوحدات الأساسية التي تشكل صدفة Bash، مثل الأوامر والدوال والمعامِلات والتوسعات والبنية اللغوية، إضافة ...

تطوير برامج Bash جيدة

خصائص الشيفرات الجيدة هذا الشرح عن آخر وحدة بناء للصدفة وهي الشيفرات النصية. إليك بعض الأمور التي يجب أن تراعيها قبل أن نكمل: يجب أن تعمل الشيفرة بدون أخطاء. يجب أن تنفذ المهمة التي كُتبت لها. يجب أن يكون منطق البرنامج محددًا وظاهرًا. لا تنفذ الشيفرة مهامًا غير ضرورية. ينبغي أن تكون الشيفرة قابلة لإعادة استخدامها. الهيكل Structure يجب أن يكون هيكل شيفرة الصدفة مرنًا للغاية، فرغم أن bash بها حرية ظاهرة، إلا أنه يجب تحقيق منطق صحيح وتحكم في ...

الأمران Break و Continue

أمر Break تُستخدم عبارة Break للخروج من الحلقة التكرارية الحالية قبل موعد خروجها الأصلي، ويحدث هذا في الحالات التي لا تعرف فيها عدد المرات التي يجب أن تنفذها الحلقة، كأن تعتمد على إدخال المستخدم مثلًا. يوضح المثال التالي حلقة while يمكن مقاطعتها، وهو مثال مُطوَّر من برنامج wisdom.sh من المثال المشروح في استخدام مُدخلات لوحة المفاتيح للتحكم في حلقة while : #!/bin/bash # هذا البرنامج يطبع أمثالًا ونصائح # يمكنك الخروج الآن بطريقة أفضل. FORTUNE=/usr/games/fortune while true; do echo "On which topic do you want advice?" echo ...

المزيد من خيارات Bash

ناقشنا بعض خيارات صدفة Bash التي قد تفيدك في تنقيح برامج Bash، وسننظر الآن في مزيد من تلك الخيارات بتفصيل أكثر. عرض الخيارات استخدم خيار o- لأمر set لعرض كل خيارات الصدفة: hsoub:~> set -o allexport off braceexpand on emacs ...

البُنى الشرطية في Bash

سنتعلم في هذا الباب كيف نبني سلاسل شرطية في برامجنا بحيث نستطيع اتخاذ إجراءات مختلفة بناء على نجاح الأوامر أو فشلها، وستُحدد تلك الإجراءات باستخدام عبارة if، وسيسمح هذا بتنفيذ مقارنات حسابية ونصية، واختبار رموز الخروج والمدخلات والملفات التي يحتاجها البرنامج. عادة ما يسبق الأوامر في برامج الصدفة اختبارُ if/then/fi لمنع إنشاء الخرج كي يعمل البرنامج في الخلفية أو من خلال أداة cron، أما الشروط الأكثر تعقيدًا فتوضع في عبارة case. ويخبر البرنامج الصدفة الأم عند نجاح اختبار الشرط باستخدام ...

المهام التكرارية في Bash

ستتعلم في هذا القسم كيف يمكن للأوامر المتكررة أن تندمج في حلقات تكرارية، وكيف تُبنى الحلقات التكرارية باستخدام عبارات for أو while أو until إحداها أو جميعها معًا، فحلقة for تنفذ مهمة ما عددًا محددًا من المرات، وإن كنت لا تعرف كم عدد مرات تنفيذ الأمر فاستخدم عبارة until أو while لتحديد متى يجب أن تتوقف الحلقة. ويمكن مقاطعة الحلقات أو إعادة تكرارها باستخدام عبارتي break و continue، كما يمكن استخدام ملف كمُدخَل لحلقة عبر معامل إعادة توجيه المدخلات، كذلك ...

اقتباس المحارف في Bash

فائدة اقتباس المحارف تحمل كثيرًا من المحارف والكلمات معاني ووظائف خاصة بشكل أو بآخر، ويُستخدم الاقتباس لإلغاء ذلك المعنى أو الوظيفة الخاصة، إذ تعطِّل علامات التنصيص في Bash تلك المعاملة التي يلقاها المحرف الخاص، وتمنع معاملة الكلمات الخاصة وفقًا للمعاني التي تحملها، وكذلك تعطِّل توسع المعامِلات. محارف الهروب تُستخدم محارف الهروب لإلغاء المعنى الخاص لمحرف واحد، وتُستخدم الشرطة المائلة الخلفية \ كمحرف للهروب في Bash، إذ تحتفظ بالمعنى المباشر للمحرف الذي يليها باستثناء محرف السطر الجديد، فإن أتى محرف سطر ...

التعابير النمطية في Bash

يلقي هذا الباب الضوء على المزايا المُضمَّنة في Bash لمطابقة الأنماط (patterns) والتعرف على فئات المحارف ومداها. إضافة إلى تفصيل للتعابير النمطية (Regular Expressions)، إذ هي أدوات قوية لاختيار أسطر بعينها من ملفات أو من مُخرج ما، وتستخدمها أوامر كثيرة في يونكس مثل vim و perl وقاعدة بيانات PotgreSQL وغيرها، كما يمكن إضافتها في أي لغة أو تطبيق باستخدام مكتبات خارجية، بل قد تجدها في أنظمة غير أنظمة يونكس، إذ يستخدمها برنامج Excel للجداول الذي يأتي في حزمة مكتب ويندوز. ...

التقاط الإشارات في Bash

قد تُرسل الإشارات إلى برامجك باستخدام أمر kill أو اختصارات على لوحة المفاتيح، ويمكن التقاط تلك الإشارات وتنفيذ أوامر بناءً على ذلك باستخدام أمر trap، ورغم أن بعض البرامج تتجاهل الإشارات إلا أن إشارة kill لا يمكن تجاهلها من أي برنامج. الإشارات في Bash نظرة عامة على الإشارات وإرسالها واستخدامها مع أمر kill. الأفخاخ في Bash نظرة عامة على الأفخاخ في Bash وكيف تفسرها الصدفة وأمثلة عليها.

تنقيح برامج Bash

التنقيح على مستوى البرنامج ككل حين تحدث مشكلة في البرنامج الذي كتبته فإنك في حاجة إلى وضع يدك على مكان المشكلة بالتحديد داخل الشيفرة، وتوفر Bash مزايا تنقيح شاملة لعل أشهرها هو بدء صدفة فرعية بخيار x- الذي سيبدأ الصدفة بالكامل في طور التنقيح، وستُطبَع آثار كل أمر إضافة إلى وسائطه (arguments) إلى خَرج قياسي (standard output) بعد توسيع الأوامر لكن قبل تنفيذها. الشيفرة التالية هي لبرنامج commented-script1.sh من مثال أساسيات كتابة برامج Bash، وقد استدعينا الصدفة في طور التنقيح ...

كتابة وتنقيح برامج Bash

برنامج الصدفة هو سلسلة من الأوامر يعاد استخدامها بشكل متكرر، ووُضعت في ملف نصي له إذن تنفيذ كبرنامج، ويمكن استخدام أي محرر نصي لكتابة برامج لصدفة Bash. تبدأ برامج bash بـ !# متبوعيْن بمسار الصفة التي ستنفذ الأوامر التي ستُكتب في البرنامج، وتضاف التعليقات إلى البرنامج للمرجعية فيما بعد ولتيسير فهم الشيفرة على من يقرؤها. يُفضل الإسهاب في التعليقات داخل برامج الصدفة على الإيجاز فيها. تُنقَّح الصدفة باستخدام خيارات الصدفة، ويمكن استخدام تلك الخيارات للتنقيح الجزئي أو لتحليل الشيفرة كاملة، ...

المزيد حول المتغيرات في Bash

يمكن للمتغير أن يحتوي أي نوع من البيانات ما لم يُصرح بخلاف ذلك بوضوح، وتُضبط المتغيرات الساكنة (Constant Variables) باستخدام أمر readonly. وتحتوي المصفوفة على مجموعة من المتغيرات، وإن صُرح بنوع معين من البيانات لتلك المصفوفة فإن جميع العناصر داخلها ستُضبط على احتواء ذلك النوع فقط من البيانات. كذلك تسمح مزايا Bash بإحلال وتحويل المتغيرات بسرعة، وتتضمن العمليات القياسية حساب طول المتغير والتوسعات الحسابية عليه وإحلال محتواه أو جزء من محتواه. أنواع المتغيرات في Bash شرح للقيم العامة للمتغيرات والمتغيرات ...

أساسيات كتابة برامج Bash

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

البرامج الشائعة للصَّدَفة

الوظائف العامة للصدفة يفسر برنامج صَدَفة يونكس أوامر المستخدم التي يدخلها بنفسه أو التي يمكن استخراجها وقراءتها من ملف نصي يسمى شيفرة الصَّدَفة النصية (shell script) أو برنامج الصدفة (shell program). وتكون تلك الملفات النصية مفسّرة (interpreted) على خلاف الملفات المُجمّعة (compiled)، بمعنى أن الصدفة تقرأ الأوامرَ سطرًا سطرًا وتبحث عنها في النظام، على خلاف البرامج المُجمَّعة التي يحوِّل المُجمِّع (compiler) شيفرتها إلى ملف تنفيذي (executable file) مكتوب بلغة يستطيع الحاسوب فهمها -لغة الآلة-، ثم يُمكن استخدام ذلك الملف بعدها ...

كتابة برامج Bash تفاعلية

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

إنشاء وتشغيل برنامج Bash

الكتابة والتسمية إن كان لديك سلسلة أوامر تنفذها بشكل متكرر وتريد اختصار وقت تنفيذها أو تنفيذها بشكل آلي، فيمكنك وضعها في ملف فارغ يكتب بصيغة معينة وتقرؤه الصدفة على أنه برنامج تنفذه عند استدعاءه بكتابة اسم الملف الذي يحويه، وتسمى تلك البرامج ببرامج الصدفة أو شيفرات الصدفة النصية (Shell Scripts). ويمكن استخدام تلك البرامج لأتمتة المهام باستخدام أداة cron أو في إجراءات الإقلاع وإيقاف التشغيل في أنظمة يونكس، حيث يُحدَّد أسلوب عمل العفاريت (daemons) والخدمات في شيفرات init النصية (init ...

استخدام الأمر المُضمَّن Shift في Bash

وظيفة أمر shift هو أحد أوامر صدفة بورن التي تأتي مع صدفة Bash أيضًا، ويأخذ هذا الأمر وسيطًا (argument) واحدًا ويكون ذلك الوسيط رقمًا، وتُنقل المعامِلات الموضعية إلى اليسار بمقدار هذا الرقم "N"، أما المعامِلات التي تلي ذلك، من 1+N وما بعده إلى #$ فإن أسماءها تُغيَّر إلى أسماء متغيرات من 1$ إلى #$ +1 - N. فمثلًا لنقل أن لديك أمرًا يأخذ عشرة وسائط، وN تساوي 4، إذًا 4$ تصبح 1$، و 5$ تصبح 2$ وهكذا إلى أن تصل ...

التابع Process.spawn في روبي

يُنفِّذ التابع spawn أمرًا محدَّدًا ثم يعيد مُعرِّف العملية الخاصة به. البنية العامة spawn([env,] command... [,options]) → pid spawn([env,] command... [,options]) → pid يشبه التابعُ spawn التابعَ system باستثناء أنّه لا ينتظر إلى أن ينتهي تنفيذ الأمر. يجب على العملية الأب (parent process) أن تستخدم التابع Process.wait لتحصيل حالة الإنهاء للعملية الفرعية، أو تستخدم Process.detach للإبلاغ بعدم الاهتمام بحالتها؛ خلاف ذلك، قد يُراكم نظام التشغيل عمليات ميتة (zombie processes). التابع spawn لديه مجموعة من الخيارات لتحديد خاصيات العملية: env: hash name => val ...

التابع spawn‎ الخاص بالصنف Kernel في روبي

ينفذ التابع spawn تعليمة محددة، ثم يعيد معرفها (pid). البنية العامة spawn([env,] command... [,options]) → pid spawn([env,] command... [,options]) → pid‎ يشبه التابعُ spawn التابعَ system باستثناء أنّه لا ينتظر إلى أن ينتهي تنفيذ الأمر. يجب على العملية الأب (parent process) أن تستخدم التابع Process.wait لتحصيل حالة الإنهاء للعملية الفرعية، أو تستخدم Process.detach لتسجيل عدم الاهتمام بحالتها؛ خلاف ذلك، قد يُراكم نظام التشغيل عمليات ميتة (zombie processes). التابع spawn لديه مجموعة من الخيارات لتحديد خاصيات العملية: env: hash name => ...

التابع Template.safe_substitute()‎ في بايثون

هذا التابع مشابه للتابع Template.substitute()‎ ، باستثناء أنّه لا يطلق خطأً أو استثناءً عند حدوث مشكلة أثناء عملية الاستبدال. البنية العامة safe_substitute(mapping, **kwds) المعاملات mapping أي كائن شبيه بالقاموس يتضمّن مفاتيح مطابقة للمعرّفات المستخدمة في القالب. ‎‎**kwds‎ يمكن بدلًا مما سبق تقديم معاملات مفتاحية، تكون فيها الكلمات المفتاحية مطابقة للمعرّفات المستخدمة في القالب. عند استخدام المعامل mapping مع المعاملات المفتاحية، تأخذ المعاملات المفتاحية الأولوية في حال وجود معرّفات متكرّرة بينهما. القيمة المعادة يعيد التابع سلسلة نصية جديدة ناتجة عن إجراء ...

التابع Template.safe_substitute()‎ في بايثون

هذا التابع مشابه للتابع Template.substitute()‎ ، باستثناء أنّه لا يطلق خطأً أو استثناءً عند حدوث مشكلة أثناء عملية الاستبدال. البنية العامة safe_substitute(mapping, **kwds) المعاملات mapping أي كائن شبيه بالقاموس يتضمّن مفاتيح مطابقة للمعرّفات المستخدمة في القالب. ‎‎**kwds‎ يمكن بدلًا مما سبق تقديم معاملات مفتاحية، تكون فيها الكلمات المفتاحية مطابقة للمعرّفات المستخدمة في القالب. عند استخدام المعامل mapping مع المعاملات المفتاحية، تأخذ المعاملات المفتاحية الأولوية في حال وجود معرّفات متكرّرة بينهما. القيمة المعادة يعيد التابع سلسلة نصية جديدة ناتجة عن إجراء ...

التابع system‎ الخاص بالصنف Kernel في روبي

ينفذ التابع system الأمر المُمرَّر إليه في صدفة فرعية (subshell). البنية العامة system([env,] command... [,options]) → true, false or nil‎ المعاملات env‎ بيئة التنفيذ. يعد هذا المعامل الذي من النوع Hash مماثلة تمامًل لمعامل التابع exec و spawn. انظر صفحة spawn لمزيد من التفاصيل. command...‎ التعليمة المراد تنفيذها. تأخذ التعليمة command…‎ أحد الأشكال التالية. شكل المعامل command…‎ الوصف commandline تعليمة نصية تُمرر إلى الصدفة القياسية cmdname, arg1, ...‎ تعليمة نصية تُمرر إلى الصدفة القياسية ‎[cmdname, argv0], arg1, ...‎ تعليمة ووسيط ...

جدولة المهام (Task scheduling) في Laravel

مقدمة ربّما ولّدت في الماضي نقطة دخول Cron لكل مهمة أردت جدولتها في الخادم. لكن يمكن أن يصبح هذا متعبًا بسرعة لأن الجدولة أصبحت خارج تحكم المصدر وأصبح عليك أن تدخل ب SSH للخادم لإضافة نقاط دخول Cron. يسمح مجدول الأوامر في Laravel بتعريف جدول المهام داخل Laravel بطريقة سلسلة وواضحة. عند استخدام جدولة المهام، تحتاج لنقطة دخول Cron واحدة على الخادم. يُعرّف جدول المهام في التابع schedule من الملف app/Console/Kernel.php. لمساعدتك على البداية، يوجد مثال بسيط معرّف في التابع. ...

التعابير النمطية وأمثلة عن استخدام grep

التعابير النمطية Regular Expressions التعبير النمطي (Regular Expression) هو أسلوب يصف مجموعة من النصوص (strings)، وتُبنى تلك التعابير النمطية بشكل تناظري للتعابير الحسابية (arithmetic expressions) باستخدام عدة معامِلات لدمج التعابير الأصغر. وأصغر وحدة بنائية للتعابير النمطية هي تلك التي تطابق محرفًا واحدًا، ذلك أن أغلب المحارف -بما في ذلك كل الحروف والأرقام- ما هي إلا تعابير نمطية تطابق أنفسها، ويمكن اقتباس أي محرف خاص (metacharacter) له معنىً خاص بسبْقِه بشرطة مائلة خلفية \. المحارف الخاصة للتعابير النمطية يمكن إتْباع التعبير ...

مطابقة الأنماط باستخدام ميزات Bash

مدى المحارف Character Ranges خلافًا لأمر grep والتعابير النمطية (regular expressions) فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن تحديدًا، ضع حول كل منهما علامات اقتباس مزدوجة: hsoub ~> touch "*" hsoub ~> ls "*" * يمكنك استخدام الأقواس المربعة لمطابقة أي محرف أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف ...

التابع exec‎ الخاص بالصنف Kernel في روبي

يستبدل التابع exec العملية (process) الحالية عبر تشغيل الأمر الخارجي المعطى والذي يمكن أن يأخذ أحد الأشكال التالية: الأمر الوصف exec(commandline)‎ أحد أوامر سطر الأوامر (command line) والذي يُمرّر إلى الصدفة (shell) القياسية. exec(cmdname, arg1, ...) ‎ اسم أمر (command name) ووسيط واحد أو أكثر (بدون صدفة). exec([cmdname, argv0], arg1, ...)‎ اسم أمر وكائن argv، مع إمكانية إضافة وسائط أخرى (بدون صدفة shell). في الشكل الأول، تؤخذ السلسلة النصية باعتبارها أمرًا يراد تنفيذه في سطر أوامر، ثم تعمل الصدفة على ...

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

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

الأمر Artisan console) Artisan) في Laravel

مقدمة Artisan هي واجهة الأوامر المُرفقة ب Laravel. وهي تُوفّر عددًا من الأوامر المفيدة والتي ستساعدك في بناء التطبيق. لإظهار جميع الأوامر التي يوفّرها Artisan، يمكنك استعمال الأمر list php artisan list يحتوي كل أمر على صفحة مساعدة "help" تعرّف وتوضّح الأمر كما تُقدّم قائمة المعاملات والخيارات لكل أمر. يُستعمل الأمر مسبوقًا بالكلمة help لإظهار صفحة المساعدة: php artisan help migrate Laravel REPL تأتي كل تطبيقات Laravel مُرفَقَةً ب Tinker، وهي REPL مشغّلة بواسطة حُزمة PsySH. يسمح Tinker بالتفاعل مع ...

التابع Template.substitute()‎ في بايثون

يؤدي هذا التابع عملية الاستبدال بالاعتماد على القالب ويعيد سلسلة نصية جديدة. البنية العامة substitute(mapping, **kwds) المعاملات mapping أي كائن شبيه بالقاموس يتضمّن مفاتيح مطابقة للمعرّفات المستخدمة في القالب. ‎‎**kwds‎ يمكن بدلًا مما سبق تقديم معاملات مفتاحية، تكون فيها الكلمات المفتاحية مطابقة للمعرّفات المستخدمة في القالب. عند استخدام المعامل mapping مع المعاملات المفتاحية، تأخذ الأخيرة الأولوية في حال وجود معرّفات متكرّرة بينهما. في حال عدم وجود المعرّفات في المعامل mapping أو عند غياب المعاملات المفتاحية، تطلق اللغة الخطأ KeyError، وإضافة ...

Document.queryCommandSupported()‎

يشير التّابع Document.queryCommandSupported‎()‎ إلى ما إذا كان أمر التّحرير المعطى مدعومًا من طرف المتصفّح أم لا. البنية العامة isSupported = document.queryCommandSupported(command); command الأمر المرغوب التّعرّف على ما إذا كان مدعومًا أم لا. القيمة المعادة قيمة منطقيّة من النّوع Boolean تكون true إن كان الأمر مدعومًا وتكون false إن لم يكن كذلك. مثال var flg = document.queryCommandSupported("SelectAll"); if(flg) { // نفّذ عمليّةً ما } ملاحظات يعيد الأمر 'paste' القيمة false في حالة لم يكن الأمر متاحًا إضافةً إلى حالة كون السكربت المستدعي ...

عوارض أندرويد في كوردوفا

يوضح هذا الدليل كيفية تضمين مُكوّن (component) عارض كوردوفا داخل تطبيقات أندرويد الكبيرة. لمزيد من التفاصيل حول كيفية جعل هذه المكونات تتواصل مع بعضها، راجع دليل تطوير الإضافات. إذا لم تكن لديك خبرة بمنصة أندرويد، فعليك الاطلاع أولًا على دليل التطوير على منصة أندرويد، وتثبيت أحدث إصدارٍ من إطار العمل SDK الخاص بأندرويد قبل محاولة اعتماد الطرق الواردة في هذا الدليل لتضمين العوارض. بدءًا من الإصدار 1.9 من كوردوفا، أصبحت منصة أندرويد تعتمد على المُكوِّن CordovaWebView، والذي بُنِي على المُكوِّن ...

Document.queryCommandEnabled()‎

يشير التّابع Document.queryCommandEnabled‎()‎ إلى ما إذا كان أمر التّحرير المعطى مفعّلًا من طرف المتصفّح أم لا. البنية العامة isEnabled = document.queryCommandEnabled(command); command الأمر المرغوب التّعرّف على ما إذا كان مدعومًا أو لا. القيمة المعادة قيمة منطقيّة من النّوع Boolean تكون true إن كان الأمر مُفعّلًا وتكون false إن لم يكن كذلك. مثال var flg = document.queryCommandEnabled("SelectAll"); if(flg) { document.execCommand("SelectAll", false, null); // الأمر مُفعّل، لذا نفّذه } ملاحظات بالنّسبة للأمران 'cut' و'copy' فإنّ التّابع يعيد القيمة true فقط إن استدعيَ في ...

عملية تهيئة ريلز

يشرح هذا الدليل العمل الداخلي لعملية التهيئة في ريلز. وهو دليل متعمق للغاية وموصى به لمطوري ريلز المتقدمّين. ستتعلم بعد قراءة هذا الدليل: كيفيّة استخدام خادم ريلز (rails server). التسلسل الزمني لتهيئة ريلز. أين تُطلَب الملفّات المختلفة أثناء تسلسل التمهيد. كيفيّة تعريف واجهة Rails::Server واستخدامها. يتضمّن هذا الدليل كل استدعاء لتابع مطلوب لتشغيل مكّدس Ruby on Rails (أي stack) لتطبيق ريلز افتراضي، مع شرح كل جزء بالتفصيل. بالنسبة لهذا الدليل، سنركّز على ما يحدث عند تنفيذ rails server لبدء إقلاع ...

التابع Process.exec في روبي

يستبدل التابع exec العملية الحالية عبر تشغيل الأمر الخارجي المعطى. البنية العامة exec([env,] command... [,options]) يمكن أن يأخذ التابع عند استعماله لتنفيذ الأمر الخارجة المعطى أحد الأشكال التالية: exec(commandline)‎: الأمر هو سلسلة نصية تُمرَّر إلى الصدفة القياسية (standard shell). exec(cmdname, arg1, ...)‎: يُمرَّر إلى التابع اسم الأمر ووسيط واحد أو أكثر (بدون صدفة). exec([cmdname, argv0], arg1, ...)‎: يُمرَّر إلى التابع اسم الأمر والوسيط argv فقط أو وسيط آخر أو أكثر (بدون صدفة). في الشكل الأول، تُؤخذ السلسلة النصية كسطر أمري يخضع إلى توسعة ...

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

(PHP 4, PHP 5, PHP 7) تفتح الدالة popen()‎ عمليَّة وتشير إليها بمؤشِّر شبيه بمؤشِّر ملف. الوصف resource popen ( string $command , string $mode ) تفتح هذه الدالة أنبوبًا (pipe) يتصل مع العمليَّة المراد تنفيذها باستعمال الأمر command الفرعي المعطى. المعاملات command الأمر المراد تنفيذه. mode يُحدِّد هذا المعامل نوع الوصول المطلوب إلى المجرى. القيم المعادة يُعاد مؤشِّر ملف مطابق تمامًا للمؤشِّر المعاد بوساطة الدالة fopen()‎ باستثناء أنَّه أحادي الاتجاه (unidirectional) (أي يمكن استعماله إمَّا للقراءة أو للكتابة فقط) ويجب ...

 التابع ENV.to_a في روبي

يحول التابع to_a متغيرات البيئة إلى مصفوفة مكونة من مصفوفات فرعية تضم أسماء وقيم تلك المتغيرات. البنية العامة to_a → Array القيمة المعادة تُعاد مصفوفة مكونة من مصفوفات فرعية تضم أسماء وقيم متغيرات البيئة. أمثلة مثال عن استخدام التابع to_a: ENV.to_a # => [["TERM", "xterm-color"], ["SHELL", "/bin/bash"], ...] انظر أيضًا التابع to_h: ينشئ جدولًا من النوع Hash يحوي نسخةً من متغيرات البيئة.  التابع to_s: يعيد السلسلة النصية “ENV”. مصادر قسم التابع to_a في الصنف ENV في توثيق روبي الرسمي.

التابع trap‎ الخاص بالصنف Kernel في روبي

يحدد التابع trap معالج الإشارات (handling of signals). الوسيط الأول يمثل اسم إشارة (سلسلة نصية مثل "SIGALRM" أو "SIGUSR1" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG" من اسم الإشارة. تحدد التعليمة command أو الكتلة المعطاة الكود البرمجي المراد تشغيله عند إطلاق الإشارة. إذا كانت التعليمة تساوي السلسلة النصية "IGNORE" أو "SIG_IGN" ، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT" أو "SIG_DFL" ، فسيُستدعى معالج روبي الافتراضي. لكن إذا كانت تساوي "EXIT" ، فستنهي الإشارة البرنامج النصي. إذا ...

التابع Signal.trap‎ في روبي

يربط التابع trap معالجًا بإشارة محدَّدة. البنية العامة trap( signal, command ) → obj trap( signal ) {| | block } → obj‎ يمثل المعامل signal اسم إشارة (سلسلة نصية مثل "SIGALRM" أو "SIGUSR1" وغير ذلك) أو رقم إشارة. يمكن حذف الأحرف "SIG" من اسم الإشارة. تحدد التعليمة command أو الكتلة block المعطاة الشيفرة أو الأوامر المراد تنفيذها عند إطلاق الإشارة. إذا كانت التعليمة تساوي السلسلة النصية "IGNORE" أو "SIG_IGN"، فسيتم تجاهل الإشارة. أما إذا كانت تساوي "DEFAULT" أو "SIG_DFL"، فسيُستدعَى معالج ...

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

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

هدم التسلسل الهرمي (Collapse Hierarchy)

المشكلة في التسلسل الهرمي لصنف، يكون صنفٌ فرعي هو عمليًا نفس صنفه الأب. الحل دمج الصنف الفرعي والصنف الأب. مثال قبل إعادة التصميم الصنف الفرعي Salesman هو عمليًّا نفس الصنف Employee له: الصنفٌ الفرعي هو عمليًا نفس صنفه الأب. بعد إعادة التصميم دمج الصنف الفرعي Salesman في الصنف الأب: دمج الصنف الفرعي والصنف الأب. لم إعادة التصميم؟ قد يؤدي نمو البرنامج مع مرور الوقت إلى أن يصبح كلٌ من الصنف الفرعي والصنف الأب تقريبًا نفس الشيء. فتُزال ميزة من الصنف ...

التابع binding‎ الخاص بالصنف Kernel في روبي

يعيد التابع binding  كائنًا من النوع Binding، والذي يصف ويحدد ارتباطات المتغيرات والتوابع لحظة الاستدعاء. يمكن استخدام هذا الكائن عند استدعاء eval لتنفيذ الأمر الذي تم تقييمه (evaluated command) في هذه البيئة. البنية العامة binding → a_binding‎ القيمة المعادة يعاد كائنٌ من النوع Binding. أمثلة مثال على استخدام التابع binding‎: def get_binding(param) binding end b = get_binding("hello") eval("param", b) #=> "hello" ‎ انظر أيضا الصنف Binding. مصادر قسم التابع binding‎ في الصنف Kernel‎ في توثيق روبي الرسمي.

الخاصية ‎event.metaKey‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

event.metaKey القيمة المعادة يُعيد كائنًا من النوع Boolean. الوصف تشير هذه الخاصية إذا ما كان مفتاح META مضغوطًا عند إطلاق الحدث. event.metaKey أُضيفت مع الإصدار: 1.0.4 تعيد هذه الخاصية قيمة منطقية ( true أو false ) تشير إلى ما إذا كان مفتاح META مضغوط عليه في وقت إطلاق الحدث. قد يشير هذا المفتاح إلى اسم مفتاح بديل في بعض الأنظمة. في لوحات مفاتيح ماك ، يشير مفتاح META إلى مفتاح Command (⌘). في لوحات مفاتيح ويندوز، يشير مفتاح META إلى ...

الخاصية ‎event.metaKey‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

event.metaKey القيمة المعادة يُعيد كائنًا من النوع Boolean. الوصف تشير هذه الخاصية إذا ما كان مفتاح META مضغوطًا عند إطلاق الحدث. event.metaKey أُضيفت مع الإصدار: 1.0.4 تعيد هذه الخاصية قيمة منطقية ( true أو false ) تشير إلى ما إذا كان مفتاح META مضغوط عليه في وقت إطلاق الحدث. قد يشير هذا المفتاح إلى اسم مفتاح بديل في بعض الأنظمة. في لوحات مفاتيح ماك ، يشير مفتاح META إلى مفتاح Command (⌘). في لوحات مفاتيح ويندوز، يشير مفتاح META إلى ...

إنشاء قاعدة البيانات 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 ...

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

(PHP 4, PHP 5, PHP 7) تغيِّر الدالة chown()‎ مالك الملف. الوصف bool chown ( string $filename , mixed $user ) تحاول هذه الدالة تغيير مالك الملف filename إلى المالك الجديد user. المستخدم ذو امتيازات مدير النظام الذي يملك كافَّة صلاحيات الوصول (superuser) قادرٌ وحده على تغيير مالك الملف. المعاملات filename مسار الملف الذي ستُجرى عليه العمليَّة. user اسم المالك الجديد أو رقم مُعرِّفه. القيم المعادة تُعاد القيمة TRUE عند نجاح العملية، والقيمة FALSE خلاف ذلك. أمثلة المثال 1: استعمال الدالة ...

اختبارات المتصفح (Laravel Dusk) في Laravel

مقدمة يوفّر لك Laravel Dusk أتمتة للمتصفّح واختبار للواجهات البرمجيّة بطريقة سهلة الاستخدام. بشكلٍ افتراضي، لا يتطلّب Dusk تنصيب JDK أو Selenium على جهازك، حيث يستعمل تثبيت مستقل (standalone) لبرمجية ChromeDriver. بأي حال، يمكنك استخدام أي برنامج تشغيل متوافق مع Selenium إذا أردت. التثبيت للبدء، أضف الاعتمادية laravel/dusk إلى مشروعك: composer require --dev laravel/dusk بعد تثبيت Dusk، سجّل مزوّد الخدمة الذي يتبع إلى Dusk، وهو Laravel\Dusk\DuskServiceProvider. بشكل عام، يكون هذا تلقائيًّا باستخدام التسجيل التلقائي لمزوّدات خدمة Laravel. تنبيه: إذا قمت بتسجيل ...

استعمال أدوات البناء مع TypeScript

توضّح هذه الصفحة كيفيّة استخدام أدوات البناء (Build tools) المشهورة مع شيفرة TypeScript: Browserify التثبيت npm install tsify باستخدام واجهة سطر الأوامر (Command Line Interface) browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js باستخدام الواجهة البرمجية (API) var browserify = require("browserify"); var tsify = require("tsify"); browserify() .add("main.ts") .plugin("tsify", { noImplicitAny: true }) .bundle() .pipe(process.stdout); للمزيد من التفاصيل، انظر: smrq/tsify Duo التثبيت npm install duo-typescript باستخدام واجهة سطر الأوامر (Command ...

العنصر

الغرض من العنصر <samp> هو إظهار جزء من ناتج برنامج حاسوبي، ويُعرَض محتوى هذا العنصر عادةً بخطٍ ذي عرضٍ ثابت (monospace). مثال عن استخدام العنصر <samp> لعرض نص عادي ثم ناتج أحد البرامج ثم نص عادي: <p> عند كتابة أمر غير متوفر في سطر الأوامر، ستظهر الرسالة <samp>command not found</samp>. </p> بطاقة العنصر تصنيفات المحتوى عنصر تنظيمي أو عنصر عادي. المحتوى المسموح محتوى عادي. الوسم المختصر لا يمكن حذف أيّ من وسمَي البداية أو النهاية. العناصر الأب أي عنصر ...

الدالة sqlite3.complete_statement()‎ في بايثون

تتحقّق الدالة ممّا إذا كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. البنية العامة sqlite3.complete_statement(sql) المعاملات sql سلسلة نصية تتضمن جملة SQL المراد التحقق ممّا إذا كانت تنتهي بفاصلة منقوطة أو لا. القيمة المعادة تعيد الدالة القيمة True إن كانت السلسلة النصية المعطاة تتضمن جملة SQL واحدة أو أكثر تنتهي بالفاصلة المنقوطة. أمثلة يمكن استخدام هذه الدالة لتوفير طبقة حماية لقاعدة بيانات SQLite، وكما هو موضح في المثال التالي: import sqlite3 con = sqlite3.connect(":memory:") con.isolation_level = None cur ...

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

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

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

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

العمليات الأبناء في Node.js

الاستقرار: 2-مستقر توفِّر الوحدة child_process القدرة على توليد (spawn) عمليات أبناء بطريقةٍ مشابهةٍ  -وليست مماثلة- للدالة popen(3)‎، إذ يمكن للدالة child_process.spawn()‎ أن توفِّر هذه الإمكانيَّة في المقام الأول: const { spawn } = require('child_process'); const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.log(`stderr: ${data}`); }); ls.on('close', (code) => { console.log(`child process exited with code ${code}`); }); تُنشَأ أنابيبٌ (pipes) لمجرى الدخل القياسي (stdin) ومجرى الخرج القياسي (stdout) ومجرى الخطأ القياسي (stderr) بين العمليَّة الأب في Node.js ...

Python/pathlib/Path/mkdir

التابع Path.mkdir في بايثون يُنشئ هذا التابع مجلّدًا في المسار المُعطى بالخصائص التي يتم تحديدها في باقي الوسطاء. Create a new directory at this given path. If mode is given, it is combined with the process’ umask value to determine the file mode and access flags. If the path already exists, FileExistsError is raised. If parents is true, any missing parents of this path are created as needed; they are created with the default permissions without taking mode into account ...

المعاملات الرياضية في JavaScript

المعاملات الرياضية (arithmetic operators) تأخذ قيمًا عدديةً وتُعيد قيمةً عدديةً واحدةً، والمعاملات الرياضية القياسية هي الجمع + والطرح - والضرب * والقسمة /. الجمع (+) معامل الجمع يُنتِج مجموع المدخلات الرقمية، أو يضيف سلسلتين نصيتين إلى بعضها. البنية العامة x + y أمثلة // رقم + رقم -> عملية جمع 1 + 2 // 3 // رقم + قيمة منطقية -> عملية جمع true + 1 // 2 // قيمة منطقية + قيمة منطقية -> عملية جمع false + false // 0 // رقم + سلسلة ...

الدالة replaceFirst()‎ في Kotlin

تبدل الدالة replaceFirst()‎ محرفًا جديدًا مكان أول ظهور لمحرف قديم، أو سلسلة نصية جديدة مكان أول ظهور لسلسلة نصية قديمة، أو سلسلة نصية جديدة أو ناتج تنفيذ دالة مكان أول ما يطابق تعبير نمطي معين في سلسلة نصية أو سلسلة من المحارف. البنية العامة actual fun String.replaceFirst( oldChar: Char, newChar: Char, ignoreCase: Boolean = false ): String actual fun String.replaceFirst( oldValue: String, newValue: String, ...

الجدول ASCII في أردوينو

يرجع الترميز ASCII (اختصارٌ إلى American Standard Code for Information Interchange) إلى ستينيات القرن الماضي، وكان يُعدُّ الطريقة القياسية المتبعة آنذاك (والتي لا تزال مستعملة إلى يومنا هذا) في ترميز النصوص عدديًّا. انتبه إلى أنَّ المحارف 32 الأولى من هذا الجدول هي محارف غير مطبوعة (non-printing characters)، وتدعى غالبًا محارف التحكم (control characters). القيمة العشرية القيمة الست عشرية المحرف   القيمة العشرية القيمة الست عشرية المحرف القيمة العشرية القيمة الست عشرية المحرف 0 00 NUL (null) 42 2A * 85 ...

الأصناف المجهولة في PHP

أُضيف دعم الأصناف المجهولة إلى الإصدار السابع من PHP، وهي مفيدة عند الحاجة إلى إنشاء نسخة واحدة بسيطة من الصنف. <?php // قبل الإصدار السابع class Logger { public function log($msg) { echo $msg; } } $util->setLogger(new Logger()); // الإصدار السابع وما بعده $util->setLogger(new class { public function log($msg) { echo $msg; } }); ?> يمكن للأصناف ...

الأصناف المجهولة في PHP

أُضيف دعم الأصناف المجهولة إلى الإصدار السابع من PHP، وهي مفيدة عند الحاجة إلى إنشاء نسخة واحدة بسيطة من الصنف. <?php // قبل الإصدار السابع class Logger { public function log($msg) { echo $msg; } } $util->setLogger(new Logger()); // الإصدار السابع وما بعده $util->setLogger(new class { public function log($msg) { echo $msg; } }); ?> يمكن للأصناف ...

التابع String.sub في روبي

يعيد التابع sub نسخة من السلسلة النصية التي استدعي معها مع تبديل قيمة محدَّدة مع أول تطابق للنمط المعطى. البنية العامة sub(pattern, replacement) → new_str sub(pattern, hash) → new_str sub(pattern) {|match| block } → new_str إن أعطيت كتلة block إلى التابع، فستُمرَّر السلسلة الحالية المتطابقة إليها وستعيَّن قيم متغيرات مثل ‎$1، و ‎$2، و ‎$`‎، و ‎$&‎، و ‎$'‎ بشكل مناسب. ستحل القيم التي تعيدها الكتلة مكان القيمة المتطابقة في كل استدعاء. المعاملات pattern يكون عادةً تعبيرًا نمطيًّا. إن كان سلسلة نصية، فستُفسَّر أية محارف ...

فصل الاستعلامات عن المُعدِّلات (Separate Query from Modifier)

المشكلة هل لديك تابعٌ يُعيد قيمةً ما ولكن يغيِّر أيضا شيئًا ما داخل الكائن؟ الحل تقسيم التابع إلى تابعَين منفصلَين. كما يمكن أن نتوقع، يجب على أحدهما أن يعيد القيمة ويُغيِّر الآخر الكائن. مثال قبل إعادة التصميم ينفذ التابع ()getTotlaOutstandingAndSetReadyForSummaries في الصنف Customer مهمتين، إذ يعيد قيمة ويضبط قيمة أخرى في الكائن: تابع يُعيد قيمة ويغيِّر شيئًا ما داخل الكائن. بعد إعادة التصميم فصل التابع التابع ()getTotlaOutstandingAndSetReadyForSummaries إلى تابعين هما: الأول ()getTotlaOutstanding لجلب قيمة، والآخر ()setReadyForSummaries لضبط حالةٍ في الكائن: ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

سطر أوامر ريلز

بعد قراءة هذا الدّليل، ستتمكّن من: إنشاء تطبيق ريلز. توليد النماذج، ووحدات التحكّم، وتهجيرات قاعدة البيانات (database migrations)، ووحدات الاختبار. بدء الخادم الإنتاجي. كيفية تجربة الكائنات من خلال صدفة تفاعليّة (interactive shell) يفترض هذا الدليل أن لديك معرفة أساسية بإطار العمل ريلز من قراءة دليل البدء مع ريلز. أساسيات سطر الأوامر هناك بضعة أوامر تُعتبر حاسمة للغاية لاستخدامك اليومي لإطار العمل ريلز. هذا الأوامر مرتّبة حسب كثرة استخدامها تقريبًا بالشكل التالي: rails console rails server bin/rails rails generate rails dbconsole ...

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

توفر هذه الوحدة آلية محمولة لاستخدام الوظائف والأدوات التي تعتمد على نوع نظام التشغيل. ‎‎>>> import os >>> os.getcwd() '/home/username' ملاحظات تستخدم وظائِف جميع الوحدات المبنيّة في بايثون، والمعتمدة على نوع نظام التشغيل، في جميع الأنظمة المتوافرة فيها نفس الواجهة (interface). فعلى سبيل المثال، تُعيد الدالة os.stat(path)‎‎ معلومات حول المسار المُدخَل بنفس التنسيق على جميع الأنظمة التي تتوافر فيها الدالة (الواجهة المُستخدمة هنا مماثلة لتلك المُستخدمة في واجهة POSIX). تتوفر أيضًا إمكانيّة إضافة إضافات خاصة لنظام تشغيل مُعين عبر الوحدة os، ولكن ...

التابع open‎ الخاص بالصنف Kernel في روبي

ينشئ التابع open كائنًا من النوع IO متصلًا بالمجرى أو الملف أو العملية الفرعية (subprocess) المحددة. البنية العامة open(path [, mode [, perm]] [, opt]) → io or nil open(path [, mode [, perm]] [, opt]) {|io| block } → obj‎ في حال إعطاء كتلة، فستُسدعَى بتمرير كائن من النوع IO كوسيط إليها، والذي سيُغلق تلقائيًا عند الانتهاء من تنفيذ الكتلة ثم سيعاد الناتج. إذا بُدئ الوسيط path بشرطة عمودية ("|") ، فسيتم إنشاء عملية فرعية (subprocess)، متصلة بالمُستدعي (caller) بواسطة ...

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

الحزم (Package development) في Laravel

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

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

الاستقرار: 2-مستقر توِّفر الوحدة console طرفيَّة بسيطة لتنقيح الأخطاء تشبه طرفيَّة JavaScript التي توفِّرها متصفحات الويب. تنتج الوحدة عنصرين محدَّدين هما: الصنف Console مع توابعه مثل التوابع console.log()‎، و console.error()‎، و console.warn()‎ التي يمكن استعمالها للكتابة على أي مجرى من مجاري Node.js. نسخة الكائن console العامَّة المضبوطة للكتابة على المجرى process.stdout والمجرى process.stderr، ويمكن استعمالها دون استدعاء require('console')‎. تحذير: لا تكون توابع الكائن console العام متزامنةً دومًا مثل واجهات المتصفح البرمجيَّة التي تشبهها، ولا غير متزامنةٍ دومًا مثل مجاري Node.js ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

العوارض في منصة iOS في كوردوفا

يوضح هذا الدليل كيفية تضمين مُكوّن (component) عارض كوردوفا في تطبيقات منصة iOS الكبيرة. للمزيد من التفاصيل حول كيفية جعل تلك المكوّنات تتواصل مع بعضها، راجع دليل تطوير الإضافات. بدأ دعم العوارض في منصة iOS منذ الإصدار 1.4 كوردوفا، باستخدام مكوِّن Cleaver الذي بُنِي على قالب Xcode. منصة كوردوفا 2.0 والإصدارات الأحدث لا تدعم إلا التقديم المستند إلى المشروع الفرعي (subproject-based) للمكُوِّن Cleaver. تتطلب هذه الإرشادات على الأقل الإصدار الرابع من كوردوفا، والثامن من Xcode، بالإضافة إلى الملف config.xml من ...

Node.js/Topics

طريقة الاستعمال وتشغيل الأمثلة (Usage & Example) تبيّن هذه الصفحة طريقة استعمال Node.js وكيفية تشغيل الأمثلة الخاصة بها. اختبارات التوكيد (Assertion Testing) توفِّر الوحدة assert مجموعةً من اختبارات التوكيد البسيطة التي يمكن استعمالها للتأكد من الثوابت (invariants). الخطافات غير المتزامنة (async_hooks) توفِّر الوحدة async_hooks واجهة برمجية (API) لتسجيل دوال ردود النداء التي تتعقَّب دورة حياة (lifetime) الموارد غير المتزامنة (asynchronous resources) المُنشأَة داخل تطبيقات Node.js. الصنف Buffer أُنشِئ الصنف Buffer ليكون جزءًا من واجهة Node.js البرمجيَّة من أجل التعامل مع المجاري الثمانيَّة (octet streams) ...

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

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

الصنف Object في روبي

يعدُّ الصنف Object الجذر الافتراضي لكل كائنات روبي. يَرِث الصنف Object من الصنف BasicObject ما يسمح بإنشاء تسلسلات هرمية بديلة للكائن. تُتاح توابع الكائن لكل الأصناف ما لم يتم تجاهلها (overridden) صراحةً. تندمج الوحدة Kernel ضمن الصنف Object ما يعطي الوصول العام (global) للدّوال المبنية ضمنيًّا في الوحدة. رغم أنَّ توابع النسخة المنشأة من الصنف Object معرَّفةٌ عن طريق الوحدة Kernel، رأينا أن نوثّقهم هنا لمزيد من الوضوح. عند الإشارة (referencing) إلى الثوابت في الأصناف الوارثة من الصنف Object، لا ...

الصنف ARGF في روبي

الصنف ARGF هو مجرى (stream) صُمِّم ليُستخدَم في الملفات البرمجية (scritps) التي تُعالج الملفات المُمرَّرة إليها على شكل وسائط في سطر الأوامر (command-line arguments)، أو المُمرَّرة عبر مجرى الدخل القياسي (STDIN). تُخزَّن الوسائط المُمرَّرة للملف البرمجي في المصفوفة ARGV، إذ يخزَّن وسيط واحد في كل عنصر. تفترض ARGF أنّ الوسائط التي ليست أسماء ملفات (filenames) قد أزيلت من ARGV. انظر الشيفرة التالية مثلًا: $ ruby argf.rb --verbose file1 file2 ARGV #=> ["--verbose", "file1", "file2"] option = ARGV.shift #=> "--verbose" ARGV #=> ...

بنية المجلدات في Laravel

مقدمة تهدف هيكلية تطبيق Laravel الافتراضية إلى توفير نقطة بداية رائعة لكل من التطبيقات الكبيرة والصغيرة. بالطبع، أنت حر في تنظيم تطبيقك كما تشاء. لا يفرض Laravel أي قيود تقريبًا على مكان وجود أي صنف من أصناف مشروعك، طالما أن Composer يمكنه تحميل الصنف تلقائيًا. أين هو مجلّد النماذج؟ عند عملية البدء مع Laravel، يشوشّ العديد من المطورين بسبب عدم وجود المجلّد models. ومع ذلك، فإن عدم وجود مثل هذا المجلّد هو متعمد. نجد كلمة "نماذج" غامضة لأنها تعني الكثير ...

طوابير الانتظار (Queues) في Laravel

مقدمة ملاحظة: يوفر Laravel الآن Horizon، لوحة تحكم وضبط للأنظمة المدعومة من طوابير انتظار Redis. تفقد توثيق Horizon لمزيد من المعلومات. توفّر طوابير انتظار Laravel واجهة API موحدة بين مختلف طوابير انتظار البيئة الخلفية مثل Beanstalk أو Amazon SQS أو Redis أو قواعد البيانات العلائقية. تسمح ٌطوابير الانتظار بتأخير إنجاز المهام التي تتطلب الكثير من الوقت مثل إرسال بريد لوقت لاحق. تأخير هذه المهام يسرّع طلبات الويب في التطبيق بشكل كبير. يوجد ملف ضبط طوابير الانتظار في config/queue.php. ستجد في ...

نظرة عامة على Action Cable في ريلز

ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز. بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به. كيفية إعداد Action Cable. كيفية إعداد القنوات. النشر وإعداد المعمارية لتشغيل Action Cable. المقدمة يدمج Action Cable مقابس الويب WebSockets مع باقي تطبيق ريلز بسلاسة. يسمح ذلك بكتابة الميزات في الوقت الحقيقي في روبي بنفس الأسلوب والشكل كبقية تطبيقات ريلز، مع الاستمرار في الأداء وقابلية التطوير. ...

الكائن Process

يكون الكائن process عامًا (global) والذي يزود معلومات عن عملية Node.js الحالية ورقابةً عليها، كونه كائنًا عامًا فهو متوافر دومًا لتطبيقات Node.js دون استخدام ()require. أحداث Process الكائن process هو نسخة من EventEmitter. الحدث 'beforeExit' أُضيف في الإصدار: 0.11.12. يُطلَق الحدث 'beforeExit' عندما تفرغ Node.js من حلقة الأحداث (event loop) ولا يوجد عمل إضافي لجدولته. بشكل طبيعي، عملية Node.js سوف تنتهي عندما لا يكون هناك عمل مجدولٌ، لكن المُنصِت المسجِّل لحدث 'beforeExit' يمكن أن يعمل استدعاءات غير متزامنة، وبذلك يسبب ...

خيارات سطر الأوامر في Node.js

يتوافر العديد من خيارات سطر الأوامر التي يمكن استعمالها مع Node.js. تُستعمَل هذه الخيارات في تنقيح أخطاء الشيفرة، والتحكم في كيفيَّة تنفيذ الشيفرة، وغيرها من الأمور المفيدة. يمكن عرض هذا التوثيق في الطرفيَّة عبر استعمال الأمر man node. البنية العامة node [options] [V8 options] [script.js | -e "script" | -] [--] [arguments] node debug [script.js | -e "script" | <host>:<port>] … node --v8-options إنَّ تنفيذ node دون أيَّة وسائط يؤدي إلى بدئها مع الوحدة REPL. لمزيدٍ من المعلومات حول node debug، راجع رجاءً ...

Ruby/Topics

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

البدء مع ريلز

يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات. التخطيط العام لتطبيق ريلز. المبادئ الأساسية للنمط MVC (النموذج [Model]، والواجهة [View]، ووحدة التحكم [Controller]) والتصميم RESTful. كيف تولد سريعًا أجزاء البداية لتطبيق ريلز. افتراضات الدليل صُمِّم هذا الدليل للمبتدئين الراغبين ببدء استعمال إطار العمل ريلز من الصفر. ولا يفترض أن لك سابق خبرة بريلز. إنَّ ريلز هو إطار عمل لتطبيقات الويب يعمل على لغة البرمجة روبي. ...

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