-
المساهمات
936 -
تاريخ الانضمام
-
تاريخ آخر زيارة
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو عبد الوهاب بومعراف
-
تعاملنا كمستقلين مع مختلف أصحاب المشاريع حتما سيختلف من عميل إلى آخر، شخصيا مررت بالعديد من التجارب مع مختلف العملاء داخل منصات العمل الحر وخارجها، لهذا أنصحك أولا عند التفاوض على المشروع، أرسل عرضا خطيا يتضمن نطاق العمل، والمواعيد النهائية، والميزانية، وشروط الدفع (ستستغني عن هذه المرحلة في حالة تعاملك داخل منصة للعمل الحر كمستقل مثلا، وبهذا الشكل يكون هناك دليل واضح على ما تم الاتفاق عليه وكأنك قمت بتوثيق كل شيء من البداية. في الغالب يكون العمل بمبدأ سكرام واعتماد منهجية أجايل لإدارة المشاريع وتسليم المقررات أمرا يعتمده بعض العملاء من غيرهم، لهذا في حالة لم تجد أمرا مشابها في طريقة العمل يمكنك أن تقترح عقد اجتماعات منتظمة لمراجعة التقدم المحرز مع التوثيق داخل نقاش المشروع. ففي المشاريع الكبيرة مثلا، من الأفضل استخدام عقد رسمي يحدد بوضوح المسؤوليات والتوقعات لكلا الطرفين. العديد من الأمور قد تحدث فنحن المستقلون لا نستطيع أن نفرض على العملاء توظيفنا مباشرة من أول نقاش، لهذا يجب أن نردّ بسرعة عند أول استفسار ورسالة منه، وإذا بدأ صاحب المشروع بتغيير المتطلبات أو التراجع عن الاتفاقيات فيمكنك التصرف معه باحترام. ومناقشة أي قضايا وطلب شروحات بوضوح، فعليك أن تكسب العميل وتعرف كيف تتفاوض معه من أول رسالة يرسلها لك، لأن إرسال الاستفسار والرد عليه بشكل مناسب هو نصف التفاوض. يمكنك مراجعة هذه المقالة للاستفادة أكثر: نصائح للتواصل مع العملاء قبل التوظيف ومشاهدة هذا الفيديو التوضيحي:
- 4 اجابة
-
- 1
-
أكيد فلغة البرمجة بايثون بأطر عملها ومكتباتها لا حصر لاستخداماتها التقنية والبرمجية اليوم، لكن تبقى لغات البرمجة لها نقاط القوة والضعف في مختلف المجالات وعلى حسب احتياجاتنا كمبرمجين لها في كل مشروع محدد نهمّ بإنجازه. فبايثون، متفوقة بشكل كبير في المجالات العلمية والحوسبة. لهذا قد تسمع كثيرا بأنها اللغة المفضلة لدى العلماء والباحثين والمهندسين بسبب سهولة استخدامها وقراءتها، بالإضافة إلى توفر العديد من المكتبات والأدوات المتخصصة في مختلف المجالات. فتكملة لما ذكر في التعليق الذي سبقني، فمكتبة NumPy مثلا نجدها رائدة للحسابات العددية والجبرية وتحليل البيانات وهذه قائمة بأهم المكتبات وما المجالات المخصص لها: SciPy: مكتبة شاملة تغطي العديد من المجالات العلمية مثل الرياضيات، العلوم الفيزيائية، المعالجة الإحصائية وغيرها. Pandas: تحليل البيانات وإدارتها بطريقة فعالة. Matplotlib: مكتبة رسومية متعددة الاستخدامات لإنشاء الرسوم البيانية ثنائية وثلاثية الأبعاد. Scikit-learn: مكتبة شهيرة للتعلم الآلي أين تقدم العديد من الخوارزميات والأدوات لبناء نماذج التعلم الآلي. TensorFlow و PyTorch: مكتبات رائدة للتعلم العميق والشبكات العصبية الاصطناعية. OpenCV: مكتبة متخصصة في معالجة الصور ورؤية الحاسوب. Requests: مكتبة لإجراء طلبات الويب واستجابات الشبكة. كما أن هنالك العديد من المكتبات الأخرى المتخصصة في مجالات مثل الفيزياء، الكيمياء، البيولوجيا، الهندسة، الأمن السيبراني لهذا قلنا بأنه لا حصر لها.
- 3 اجابة
-
- 1
-
يتعلق الأمر بالعديد من العوامل، فمثلا لو كنت تعمل على مشروع لك وكنت في مرحلة متقدمة فيجب أن تحلل ما إذا كانت التحديثات الجديدة ضرورية أو تحمل أي إصلاحات أمنية مهمة، فقد يكون من الأفضل الاستمرار في استخدام الإصدار الحالي الذي تعمل عليه لتجنب إعادة العمل أو إحداث اضطرابات كبيرة في المشروع. وأما إذا كانت التحديثات الجديدة تحمل ميزات أو تحسينات مهمة،وكانت هنالك ثغرات أمنية في الإصدار القديم، فهنا التحديث أمر مطلوب وستجد في المستندات الرسمية كل ما تحتاجه إليه في هذا السياق، وقد يتطلب هذا إعادة اختبار المشروع بشكل شامل والتحقق من عدم وجود أي مشكلات تنشأ بسبب ذلك التحديث.
- 4 اجابة
-
- 1
-
لعمل ذلك أرى أنه سيتوجب عليك القيام بتعديل جدول المستخدمين لديك (users) من خلال إضافة حقل جديد لرقم الهاتف مثلا (phone_number) هذا إذا لم يكن موجودا بالفعل وجعل حقل البريد الإلكتروني مميزا أو غير مكرر لتفادي التكرار نفس الأمر بالنسبة لحقل رقم الهاتف. الأمر بسيط فهو يتطلب التعديل على منطق تسجيل الدخول ليقبل إما البريد الإلكتروني أو رقم الهاتف عن طريق البحث في جدول المستخدمين باستخدام القيمة المقدمة فواجهة تسجيل الدخول في هذه الحالة يجب أن تتضمن حقلين منفصلين للبريد الإلكتروني ورقم الهاتف. وعند تسجيل مستخدم جديد، سيطلب النظام منه إدخال البريد الإلكتروني ورقم الهاتف وسيحفظهما في جدول المستخدمين.
-
وفيك بارك الله، بالطبع! يمكننا استخدام كلاس يسمى User لتمثيل المستخدمين في قاعدة البيانات فهناك عدة طرق لتنفيذ التحقق من وجود المستخدم في قاعدة البيانات باستخدام Python، ومن بينها استخدام ما يطلق عليه ORM (Object-Relational Mapping) مثل SQLAlchemy.
-
عادة ما يفضل وضع كل فئة في ملف منفصل إذا كانت الفئة كبيرة بما يكفي أو إذا كان لها استخدام مستقل لكن يبقى ذلك ليس ضروريا، ويمكنك تجميع عدة فئات في ملف واحد خاصة إذا كانت تعتمد على بعضها البعض بشكل كبير أو إذا كانت صغيرة بما يكفي. ففي حالة ما كانت الفئات لها نفس الهدف يمكن وضعها في ملف واحد إذا كان المشروع كبيرا، لتفادي العدد الكبير من الملفات من أجل التنظيم والتنسيق.
- 3 اجابة
-
- 2
-
حسنا سأوضح لك الصورة، أولا القسم الذي يشمل لغة SQL أقصى اليسار، تشمل هذه الفئة أنظمة قواعد البيانات التي تستخدم لغة الاستعلام الهيكلية (SQL) لإدارة وتعديل قواعد البيانات الرابطية (العلائقية). الأمثلة في الصورة هي Microsoft SQL Server و MySQL و Oracle و SQLite. وتعرف هذه بأنظمة إدارة قواعد البيانات الرابطية (RDBMS). القسم الأوسط وهو لغة NoSQL تشمل هذه الفئة أنظمة قواعد البيانات التي لا تستخدم SQL وهي مصممة لمعالجة البيانات غير المنظمة أو شبه المنظمة بكفاءة أكبر، الأمثلة في الصورة هي Cassandra و MongoDB و Redis. وتعرف هذه بقواعد بيانات NoSQL. أما عن الفرق الرئيسي بين SQL و RDBMS ف SQL هي عبارة عن لغة استعلام هيكلية وهي لغة البرمجة المعيارية المستخدمة لإدارة التفاعل مع قواعد البيانات الرابطية. وهي تتيح لنا إنشاء وتعديل واستعلام البيانات المخزنة في قاعدة بيانات رابطية. أما RDBMS فهو نظام إدارة قواعد البيانات الرابطية ويشير إلى البرنامج أو النظام الذي يوفر طريقة لإنشاء وإدارة واستخدام قواعد البيانات الرابطية. ويستخدم RDBMS لغة SQL للتفاعل مع قاعدة البيانات. لذلك، SQL هي اللغة، بينما RDBMS هو البرنامج أو النظام الذي ينفذ ويستخدم SQL لإدارة قواعد البيانات الرابطية. تظهر الصورة أيضا "Program TO Run RDBMS" مع أمثلة مثل phpMyAdmin و HeidiSQL، وهي أدوات واجهة مستخدم رسومية تستخدم للتفاعل وإدارة RDBMS مثل MySQL بسهولة أكبر.
-
عنصر <div> نقوم باستخدامه لإنشاء قسم فارغ في صفحة الويب حيث يمكننا وضع أي عناصر HTML داخله، سواء نعمل مساحة داخله، أو لتجميع عناصر أخرى داخله، كما أنه يستخدم لتنظيم وتقسيم الصفحة إلى عدة أجزاء مثلا لغرض تنسيقها بلغة CSS، وهذا مثال بسيط يوضح الأمر: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>استخدام عنصر div</title> </head> <body> <div> <p>هذا نص داخل div.</p> </div> </body> </html> يمكنك الاطلاع أكثر من هنا: من خلال هذه المقالة في موسوعة حسوب: العنصر div و و
-
لا بأس فالجميع كان يجد صعوبة في التعلم والفهم في بداياته، سأحاول شرح الاستيثاق بشكل واضح ومبسط، ال Authentication هو عبارة عن عملية تحقق من هوية المستخدم أو التأكد من أن المستخدم الذي يحاول الوصول إلى نظام أو تطبيق ما هو مالك الحساب المسجّل نفسه، في Laravel مثلا يتم توفير ميزات قوية للتعامل مع الاستيثاق بطريقة سهلة وآمنة. لتجربته نقوم بتثبيت وننشئ مشروعا جديدا، وننتقل على الطرفية إلى المسار المتواجد فيه المشروع ونكتب هذا الأمر عليه: composer create-project --prefer-dist laravel/laravel project-name ولتكوين قاعدة البيانات نفتح ملف `.env` الموجود في جذر المشروع ونقوم بتعديل إعدادات قاعدة البيانات بحيث تتوافق مع البيئة التي نعمل عليها، الخطوة التالية هي الأسهل والأمتع، وهي إنشاء جدول المستخدمين في قاعدة البيانات، أو ما يعرف بعملية التهجير، فقط من خلال هذا الأمر: php artisan migrate كما قلت ف Laravel يأتي مع قوالب جاهزة للتسجيل والتحقق من هوية المستخدم. لتثبيتها، نكتب الأمر التالي: php artisan make:auth تلك القوالب ستسهل علينا أعباء كثيرة كإنشاء الملفات الجديدة الخاصة بصفحات التسجيل وتسجيل الدخول وحتى إعادة تعيين كلمة المرور، وغيرها، في النهاية نشغل الخادم من خلال الأمر: php artisan serve
- 8 اجابة
-
- 1
-
إضافة للتعليق الذي سيقني فإنه من أجل الخروج من البيئة الافتراضية (venv) في VS Code، يجب أن تفتح الطرفية وتكتب هذا الأمر: deactivate في حالة ما كنت تعمل على الوينداوز. وفي حالة نظام لينكس أو ماك، استخدم هذا الأمر: source deactivate في حالة عملها ستلاحظ أن كلمة (venv) اختفت من بداية سطر الأوامر في الطرفية. أما لتغيير المسار في VS Code، يمكنك اتباع أحد الطريقتين التاليتين: إما من خلال النقر على اسم المجلد الحالي في شريط العناوين (Title Bar) في VS Code، ثم انقر على "Open" (فتح) واختيار المجلد المطلوب. أو من خلال فتح الطرفية (Terminal) وكتابة الأمر `cd` متبوعا بمسار المجلد المطلوب، ثم الضغط على Enter.
- 2 اجابة
-
- 1
-
تقسيم النصوص باستخدام LangChain يمكن أن يتم من خلال عدة طرق سأحاول شرحها لك: يمكن أن نستخدم التقسيم الدلالي أو ما يعرف ب Semantic Segmentation وهذه العملية تتم من خلال تحسين تقسيم الملفات باستخدام تقسيم دلالي يعتمد على المعنى والسياق بدلا من القسمة العشوائية حيث في هذا السياق سيمكن تحديد نقاط محددة في النص تعبر عن بداية ونهاية كل فقرة بحيث يتم الاحتفاظ بالسياق الصحيح. كما يمكن اعتماد تقنيات تعلم الآلة مثل تعلم النصوص (NLP) للمساعدة في عملية تحديد الفقرات وتقسيم الملفات بناء على سياق النصوص. أو إن أردت فتوجد طريقة تعتمد استخدام وظائف التجزئة أو ما يعرف بال Chunking Functions التي تساعد في تقسيم النص إلى أجزاء أصغر بناء على عناصر محددة مثل الجمل أو الفقرات دون فقدان السياق. وآخر نقطة هي تقسيم النص بناء على العناصر الهيكلية فإذا كانت الملفات تحتوي على تنظيم هيكلي محدد مثل عناوين رئيسية وفرعية، يمكن استخدام هذه العناصر لتحديد نقاط التقسيم المناسبة.
- 6 اجابة
-
- 1
-
هنالك العديد من الطرق التي يمكننا استخدامها لإنشاء البوت باستخدام Python. إليك بعض الخيارات الممكنة للبدء في إنشاء بوت واتساب: فمثلا من الطرق الأشهر نجد Whapi.Cloud API أنه يعتبر خيارا جيدا، حيث يمكن استخدام Flask لإنشاء تطبيق ويب يستجيب لرسائل WhatsApp الواردة، وهذه الطريقة تتطلب امتلاكك لحساب على Twilio ورقم هاتف نشط مع تطبيق WhatsApp. توجد مقالة مستفيضة في هذا الموضوع على الأكاديمية يمكنك تصفحها من خلال الرابط التالي:
- 4 اجابة
-
- 1
-
مجال تشفير البيانات أصبح يتزايد الطلب عليه بشكل كبير في الآونة الأخيرة، بالنسبة لمارشال فهي أداة تستخدم لفك تشفير البيانات المشفرة باستخدام خوارزمية "مارشال"، ويعتمد عملها على نقاط ضعف خوازرمية التشفير، فمنها الأدوات القائمة على التحليل الثابت، الهجمات المعروفة، الهجمات العنيفة. بالنسبة لمرحلة التعلم، كمبتدئين فمن الطبيعي أن نبدأ بتعلم المفاهيم الأساسية للتشفير وهذه لمحة عنها: التشفير المتماثل والمتناظر. وظائف التجزئة. التوقيعات الرقمية. تحليل الشيفرة. بروتوكولات الاتصال الآمنة. والسر في التعلم والوصول لمستوى كبير واكتساب الخبرة يعتمد على الشغف والإرادة والالتزام بالتعلم المستمر وتحديث معلوماتك بشطل دوري ومتزامن مع التطورات الحاصلة في هذا المجال. يمكنك أن تطلع أكثر على هاته المقالات التي تتحدث حول التشفير:
- 1 جواب
-
- 1
-
لارافيل يوفر نظام مصادقة مدمجا مبنيا على كلاس Auth فهو يسهل عملية التحقق من صحة بيانات تسجيل الدخول للمستخدمين. توجد طريقتين يجب أن نقوم بتعريفهما في ملف routes/web.php، هما: GET /login: تعرض نموذج تسجيل الدخول. POST /login: تتحقق من بيانات تسجيل الدخول المرسلة وتعيد توجيه المستخدم بناء على صحتها. ثم نقوم باستخدام أمر artisan لإنشاء نموذج تسجيل الدخول من خلال: php artisan make:form Login أين سيقوم هذا الأمر بإنشاء ملف app/Http/Requests/LoginRequest.php، والذي يحتوي على قواعد التحقق من صحة بيانات تسجيل الدخول. في وحدة تحكم LoginController، نستخدم طريقة Auth::attempt للتحقق من صحة اسم المستخدم وكلمة المرور المدخلين ففي حال نجحت عملية التحقق، سيتم تسجيل دخول المستخدم تلقائيا. يمكنك قراءة هذه المقالات للتعمق أكثر: الاستيثاق في لارافل
-
الخطأ واضح في السطر رقم 72 في هذا السطر: if(isset($_POST['login'])){ فقد نسيت إغلاق القوس المنحني `}` لإنهاء الشرط `if` وهذا يعني أن كتلة الكود الخاصة بك ستظل مفتوحة بالكامل، مما يؤدي إلى حدوث خطأ التحليل. يجب أن تعدله بهذا النحو: <?php if(isset($_POST['login'])){ // ... الكود الخاص بك } // أضف القوس هنا ?> وأنصحك باستخدام مسافة بادئة متسقة. فهي تعزز قراءة الكود بشكل كبير وتجعل من السهل اكتشاف هذه الأنواع من الأخطاء، وهذه نسخة معدلة: <?php if (isset($_POST['login'])) { $conn = mysqli_connect("localhost", "root", "", "hospital"); if (mysqli_connect_errno()) { echo "Error! " . mysqli_connect_error(); } else { $ID = $_POST['ID']; $Pass = $_POST['Pass']; $query = "select * from user where ID='$ID' and Pass='Pass'"; $result = mysqli_query($con, $query); $row = mysqli_fetch_row($result); if ($row) { session_start(); $_SESSION[' ID'] = $row[0]; $_SESSION[' Fname' ] = $row[1]; $_SESSION[' Lname'] = $row[2]; $_SESSION[' Pass'] = $Pass; $_SESSION[' Email'] = $Email; header("location:profile.php"); } else { echo "incorrect ID or password, please enter a valid ID and password"; } } } // القوس المنحني الإغلاقي ?> يمكنك مراجعة هذه المقالة لإضافة التنسيق التلقائي في VSCode لعمل المسافات البادئة بشكل تلقائي:
-
المشكلة تبدو أنها تكمن في دالة `askStudentID` وبناء على الكود المقدم ووصف المشكلة فعندما يدخل المستخدم رقم تعريف الطالب، يتم استدعاء دالة `askStudentID` متكررا حتى يدخل رقم تعريف طالب صالح فبعد إدخال رقم تعريف طالب صالح، لا تستمر الدالة إلى الخطوة التالية من استرجاع معلومات الدرس وتسجيل الطالب. لحل هذه المشكلة، تحتاج إلى تعديل دالة `askStudentID` للتعامل مع حالة رقم تعريف الطالب الصالح والمتابعة مع الخطوات التالية وهذا هو الكود المعدل: function askStudentID(){ rl.question('ادخل رقم الطالب: ', student_id=>{ if(student_id.trim() == '' || isNaN(student_id)){ console.log('يرجى إدخال أرقام فقط'); askStudentID(); }else{ dataBase.get(`SELECT * FROM students WHERE student_id = ${student_id}`, (err, rowStudent)=>{ if(err){ rl.close(); dataBase.close(err=>{ if(err) return console.log(err.message); else return console.log('تم إغلاق قاعدة البيانات.'); }) return console.log(err.message); }else if(rowStudent){ // المتابعة إلى الخطوة التالية لاسترجاع معلومات الدرس وتسجيل الطالب console.log('تم العثور على رقم الطالب.'); // الجزء الباقي من الكود لاسترجاع معلومات الدرس وتسجيل الطالب }else{ console.log('رقم الطالب غير موجود.'); askStudentID(); } }) } }) } فهنا قد قم بإدخال رقم تعريف طالب صالح، سيحتوي متغير `rowStudent` على معلومات الطالب. يمكنك استخدام هذه المعلومات للمتابعة مع الخطوة التالية من استرجاع معلومات الدرس وتسجيل الطالب وهذا الإجراء يجب أن يمنع الكود من الخروج من دالة `askStudentID` مبكرا ويسمح له بالمتابعة مع بقية عملية التسجيل.
-
مشكلة اختفاء العناصر قد تكون بسبب تموضع العناصر، لهذا تأكد من أن جميع العناصر موضوعة داخل حدود التخطيط الصحيحة، مثل ConstraintLayout أو LinearLayout، ومن خصائص العرض مثل ال visibility و layout_width و layout_height فيجب أن تكون مضبوطة بشكل صحيح. لا يمكن تحديد المشكلة بالتحديد، لهذا إن لم يعمل معك فيمنك القيام بتنظيف ملفات ذاكرة التخزين المؤقت يمكن ذلك من خلال الانتقال إلى: File > Invalidate Caches / Restart. وفي بعض الأحيان، يمكن أن يؤدي إعادة تشغيل أندرويد ستوديو إلى حل المشكلة أو تحديثه. أما بالنسبة لمشكلة عدم كتابة التعليمات البرمجية التي واجهتك، تأكد من أن لوحة المفاتيح مضبوطة على اللغة الصحيحة وأن جميع الاختصارات تعمل بشكل صحيح. قد يكون بسبب مشكلة في التحديثات، لذا تأكد من أنك تستخدم أحدث إصدار من أندرويد ستوديو. انتقل إلى: File > Settings > Appearance & Behavior > System Settings > Updates للتحقق من وجود تحديثات، إذا لم تنجح الحلول الأخرى، فحاول إعادة تثبيت أندرويد ستوديو لكن تأكد من حذف جميع المجلدات والملفات المتعلقة بأندرويد ستوديو قبل إعادة التثبيت.
-
أولا في حالة ما كانت لديك شركة، فستحتاج إلى الرجوع إلى الميزانية العمومية للشركة، وتحديد حسابات الالتزامات قصيرة الأجل وطويلة الأجل، ثم جمع الأرصدة، والوصول في النهاية إلى القيمة الدفترية. فحينما تقوم بتحديد تلك الالتزامات في القائمة المالية سيتم استخدام القوائم المالية لحساب القيمة الدفترية، والتي تتطلب القيام بالخطوات التالية: تحليل القوائم المالية: من خلال فحص البيانات المالية الخاصة بالشركة، مثل البيانات الدورية (مثل بيان الدخل والميزانية العمومية) وبيان التدفقات النقدية. تحديد الالتزامات الطويلة والقصيرة الأجل: هنا نقوم بتحديد الالتزامات التي تعتبر طويلة الأجل (أي تلك التي تستحق فترة تزيد عن سنة واحدة) والالتزامات القصيرة الأجل (تستحق فترة أقل من سنة). حساب القيمة الدفترية: لحساب القيمة الدفترية للالتزامات، من خلال جمع قيمة الالتزامات الطويلة والقصيرة الأجل وهنا يجب أن تكون الأرقام المستخدمة في هذا الحساب مبينة في القوائم المالية الخاصة بالشركة. التأكد من الدقة: من أجل التأكد من أن البيانات التي تم استخدامها لحساب القيمة الدفترية دقيقة وموثوقة. يمكن أن يتم التحقق من القوائم المالية والتقارير الخاصة بالشركة نفسها. وبمجرد حساب القيمة الدفترية، يمكن استخدام هذه المعلومات لتقييم حالة التمويل الخاصة بالشركة وفهم كيفية توزيع الالتزامات على المدى الطويل والقصير، لكن يجب أن ننوّه بأنّ القيمة الدفترية للالتزامات ليست القيمة الفعلية التي يتم دفعها، وإنما تمثل القيمة المحاسبية لهذه الالتزامات في وقت معين.
-
ال "methods chaining" أو "سلسلة الدوال" هو عبارة عن أسلوب يتيح لنا استدعاء سلسلة من الدوال على كائن واحد دون الحاجة إلى تخزين النتيجة بين كل استدعاء، وفي إطار العمل Laravel نجد أن العديد من الدوال ترجع `$this`، وهذا يعني أنها تعود بالكائن نفسه بعد الانتهاء من تنفيذ الدالة، مما يسمح بمواصلة استدعاء الدوال الأخرى على الكائن نفسه بسلاسة.أما بخصوص العلامة "::" في PHP، فهي تستخدم لاستدعاء الدوال الثابتة (static methods) والثوابت (constants) من داخل الصنف (class) بدون الحاجة لإنشاء كائن من الصنف، انظر لهذا المثال: class MyClass { public static function myStaticMethod() { return "Laravel"; } } echo MyClass::myStaticMethod(); // سيطبع "Laravel" وأما بالنسبة لعملية "->" فهي تستخدم للوصول إلى خصائص الكائنات (properties) والدوال ضمن الكائنات (methods)، أو للوصول إلى العناصر في مصفوفة، يمكن أن يتضح الأمر أكثر من خلال هذا المثال: class MyClass { public $name = "Hsoub"; public function greet() { return "Hi, " . $this->name; } } $obj = new MyClass(); echo $obj->greet(); // سيطبع "Hi, Hsoub" في حين "->" فهي تستخدم للإشارة إلى أن الدالة تعمل على كائن (Object) معين.
- 5 اجابة
-
- 1
-
نعم توجد العديد من المسابقات الوطنية والدولية التي تقام في مختلف أنحاء عالمنا العربي، فمثلا في الجزائر، توجد مسابقة وطنية برمجية للمبرمجين الطلاب بين الجامعات، تحت اسم ICPC Algerian Collegiate Programming Contest و المسابقة البرمجية للطلاب الجامعيين Alcpc. وهي عبارة عن مسابقة برمجة تقام على مستوى الجامعات الجزائرية. حيث يقوم الطلاب والطالبات بحل مجموعة من الخوارزميات باستعمال لغات برمجة من اختيارهم. والفرق المتأهلة تذهب للمنافسة النهائية الإقليمية التي تقام في دولة أخرى وتجمع فرقا من دول الشرق الأوسط وشمال إفريقيا أين تحتدم المنافسة أكثر فأكثر.
-
بالطبع هو ليس كذلك، فمصطلح "تصميم البرمجيات" لا يقتصر فقط على العناصر التي ذكرتها بل يشمل أيضا جوانب أخرى مثل تصميم قواعد البيانات، وتحديد المتطلبات الوظيفية وغير الوظيفية، وتصميم الأنظمة والهندسة البرمجية. فهو عبارة عن عملية تخطيط وإنشاء برامج كمبيوتر تلبي احتياجات المستخدمين بشكل فعال، وهذا يشمل تحديد متطلبات البرنامج، وتصميم واجهة المستخدم، وتحديد هيكل البرنامج وتنظيم البيانات، وتطوير الخوارزميات والتنفيذ الفعلي للبرنامج. توجد عدة أنواع لتصميم البرمجيات وهي: تصميم واجهات المستخدم (UI):بحيث هنا يتم التركيز على كيفية تنظيم وتصميم العناصر التفاعلية التي يتفاعل معها المستخدم. تصميم تجربة المستخدم (UX): وهو النظر في كيفية تفاعل المستخدم مع البرنامج وتجربته الشاملة. تصميم البيانات والهندسة البرمجية: تصميم البيانات والهياكل التي تدعم البرنامج بشكل فعال. تصميم قواعد البيانات: من خلال تحديد كيفية تنظيم البيانات وتخزينها بشكل فعال وآمن. ومن المفترض أن يتعلم تصميم البرمجيات الأشخاص الذين يرغبون في تطوير برمجيات ذات جودة عالية وتجربة مستخدم مريحة وفعّالة. يمكن أن يتعلم التصميم المطورون البرمجيون، ومصممو واجهة المستخدم، ومهندسو البرمجيات، ومحللو النظم، وغيرهم. يمكنك الاستفادة أكثر من هنا عبر تصفح هذه المقالات:
- 7 اجابة
-
- 1
-
كما تفضل الزملاء في إجاباتهم فهذه المشكلة شائعة في PowerShell وأول خطوة يجب الانتباه لها، هي فتحه كمسؤول، وهذا الأمر: Set-ExecutionPolicy RemoteSigned عند تنفيذه في تلك الحالة سيعطي صلاحيات إضافية ويسمح له بالقيام بأعمال تتطلب صلاحيات مرتفعة، مثل تعديل الإعدادات النظامية أو تنفيذ أوامر تأثيرها يمتد إلى جميع المستخدمين على الجهاز. ففتح PowerShell كمسؤول يمنح الأمر "Set-ExecutionPolicy" الصلاحية الكافية لتعديل سياسة التنفيذ الافتراضية على النظام، مما يسمح للسكربتات بالتشغيل دون القيود التي كانت مفروضة بسبب السياسة السابقة. أين يقوم بتعيين سياسة التنفيذ لتسمح بتشغيل السكربتات الموقعة رقميا (مثل السكربتات المنشأة محليا على جهاز الكمبيوتر وغيرها). وأخيرا، تقوم بتنفيذ الأمر التالي: .\venv\Scripts\activate وهو يستخدم عادة في بيئات البيانات الافتراضية (virtual environments) في Python. فعند تنفيذ هذا الأمر، يتم تنشيط (أو تفعيل) البيئة الوهمية المسماة "venv" التي تم إنشاؤها في المجلد الحالي. عند تنشيط البيئة الوهمية، يتم تعيين المتغيرات البيئية بحيث يشير Python إلى المكتبات والأدوات المثبتة داخل هذه البيئة بدلا من البيئة الافتراضية للنظام. في حال واجهتك مشكلة مستقبلا في تثبيت البيئة الافتراضية يمكنك الرجوع لهذه المقالة التي تشرح الخطوات:
-
يبدو أن الحرف الذي استخدمته للتحويل هو "/" وهو خاطئ، والصحيح والمستخدم للتحويل هو "\" لهذا يجب تصحيح أي استخدام غير صحيح لهذا الحرف. وعادة ما يكون ذلك بالتحقق من الترميز في الكود وإصلاح أي escaping characters بشكل صحيح. وأخيراً، لضمان حفظ التعديلات في ملف الكود، يجب استخدام اختصار الكيبورد "CTRL + S" للقيام بعملية الحفظ وهذا أمر مهم لأنه يضمن حفظ التغييرات وتطبيقها على الملف الذي تعمل عليه. وتختلف المشكلات التي قد تواجه مستخدمي VSCode لهذا يجب العودة بشكل دائم ومراجعة التوثيقات المطلوبة، يمكنك تصفح النقاش في هذه المقالة:
-
في الأساس نعم، يمكن تحويل موقع ويب إلى تطبيق Android وحتى إلى تطبيق iOS وهذا الأمر يتم باستخدام تقنيات مختلفة. هناك العديد من الطرق الممكنة لتحقيق ذلك، منها استخدام الأطر البرمجية الهجينة مثل React Native أو Flutter، التي تسمح بكتابة كود واحد يمكن تشغيله على منصتي Android وiOS، وكذلك استخدام الأطر البرمجية المخصصة لكل منصة مثل Java/Kotlin لتطبيقات Android وSwift/Objective-C لتطبيقات iOS. الطريقة التي يتم فيها تحويل الموقع الويب إلى تطبيقات موبايل قد تكون سهلة أو صعبة اعتمادًا على عدة عوامل مثل تعقيد الموقع الويب، والميزات المطلوبة في التطبيقات المحمولة، والخبرة المتاحة لدى فريق التطوير. توجد أدوات مثل PhoneGap و Cordova، والتي تتيح تحويل مواقع الويب الحالية إلى تطبيقات هاتف ذكي، بالنسبة للشركات التي تقدم مميزات مختلفة في كل من تطبيق الجوال والموقع وتطبيق سطح المكتب، فهذا قد يكون بسبب احتياجات وتوقعات المستخدمين المختلفة على كل منصة. لأنه يمكن أن يكون لدى التطبيق المحمول ميزات تفاعلية مختلفة عن الموقع الويب لتحسين تجربة المستخدم على الهواتف الذكية، بينما قد يحتوي تطبيق سطح المكتب على ميزات مخصصة للأجهزة الكمبيوترية مثل استخدام الاختصارات للوحة المفاتيح والوصول إلى الملفات المحلية بسهولة. فمثلا في هذه المقالة يشرح الكيفية والطرق المستخدمة بشكل جيد: تحويل-موقع-الكترونى-الى-تطبيق-على-الهاتف
-
الأسئلة ذات الطابع الاختباري لا نقوم بالإجابة عليها مباشرة، لكن سأحاول شرح الفكرة، يمكنك استخدام لغة برمجة مثل Python ومكتبة Flask لإنشاء واجهة ويب بسيطة فهنا ومن أجل قراءة ملف ذو امتداد PO يمكنك أن تستخدم مكتبة `polib تمكننا من استخراج النصوص والترجمة من الملف. ثم يمكن الشروع في إعداد تطبيق Flask لإنشاء صفحة ويب يمكن للمستخدمين تحميل ملف PO الخاص بهم وتحميله مرة أخرى بعد التعديل، لعرض المعلومات في الجدول يمكن أن نبسط الأمر من خلال استخدام HTML و CSS بحيث سيكون لكل كلمة اصلية وترجمتها حقل في الجدول، بعد ذلك تحاول تقسيم الجدول إلى صفحات وإضافة حقل إدخال للتعريبيمكن ذلك من خلال سكريبت JavaScript لتقسيم الجدول إلى صفحات وعرض 10 صفوف في كل صفحة كما أردت، كما يمكنك إضافة حقل إدخال لكل ترجمة لتسهيل التعديل وبعد التعديلات، تضيف زرا لتحميل الملف المعدل مباشرة من الصفحة. يمكنك تعلم كيفية البرمجة بلغة بايثون وبإطار العمل فلاسك أكثر من هنا كما توجد أداة للتعريب بالفعل تحمل اسم POEDIT يمكنك الاطلاع عليها من المقالة: