اذهب إلى المحتوى

عبد الوهاب بومعراف

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

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

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

  • عدد الأيام التي تصدر بها

    1

كل منشورات العضو عبد الوهاب بومعراف

  1. وعليكم السلام ورحمة الله، هو عبارة عن هو منهجية في تطوير البرمجيات تعتمد على كتابة اختبارات برمجية تلقائية قبل كتابة الشيفرة الفعلية حتى بحيث تبدأ العملية بكتابة اختبار فاشل يصف ميزة أو وظيفة جديدة يراد تطويرها، ثم يقوم المبرمج بكتابة أبسط كود ممكن لكي يجعل هذا الاختبار ينجح، وبعدها يتم تحسين الكود من خلال إعادة التصميم دون تغيير سلوكه لضمان جودته وقابليته للصيانة. وهذه الدورة تتكرر بشكل سريع ومنظم لتغطية كل الوظائف الجديدة مما يزيد من جودة الكود ويقوي الثقة بأن البرمجيات تعمل كما هو متوقع. أما وأسلوب TDD يشجع على التفكير المسبق في متطلبات البرنامج وتصميمه ويعتمد بشكل كبير على اختبار وحدات الكود الصغيرة بشكل مستقل مما يسهل اكتشاف الأخطاء وتصحيحها بشكل مبكر كما يقلل من حدوث مشاكل عند تطوير الوظائف الجديدة أو تعديل الكود القائم يمكنك الاطلاع أكثر من هنا:
  2. على الأغلب فإنّ استمرارك في رفع التطبيقات على حساب الشركة من نفس الجهاز أو نفس عنوان ال IP الذي تم حظر حسابك الشخصي عليه سيشكل خطورة كبيرة جدا على حساب الشركة. حتى لو كان الحساب باسم شركة ومن بلد آخر فالسبب هو أن Google تربط الحسابات بالأجهزة والشبكات وأي تكرار لهذه العناصر بين حساب محظور وأي حساب آخر مهما كانت هوية الحساب الجديد يعرّض الحساب الجديد للحظر التلقائي أو المراجعة حتى لو مر وقت طويل أو تغيرت البيانات. لأنّ Google تستخدم تقنيات "البصمة الرقمية" أو Device Fingerprinting & IP Tracking حيث تتابع الجهاز نفسه حتى لو تم تغيير المستخدم وعنوان IP حتى مع تغيير الحساب أو الدولة وتتابع ملفات النظام المرتبطة بالحسابات المحظورة أيضا. لذا من الأفضل ألا تتستخدم نفس الجهاز أو نفس شبكة الإنترنت التي تم عبرها حظر حسابك الشخصي في أي عمل على حساب الشركة أي استخدام جهاز جديد كليا لم يسبق أن دخل عليه أي حساب Google Play محظور. واستخدام اتصال إنترنت جديد كليا ويفضّل أن يكون من بلد الشركة وليس أي اتصال كان مربوطا بالحساب المحظور. أما إذا اضطررت لاستخدام جهازك القديم فعليك إعادة تهيئة ضبط المصنع (Factory Reset) للجهاز ومسح كل بيانات الحسابات القديمة مع ذلك فهذا الحل قد لا يكون مضمونا لأنّه بالرغم من ذلك قد تكون الحسابات مربوطة برقم الجهاز نفسه (IMEI/MAC address)
  3. وعليكم السلام ورحمة الله، في دورة الذكاء الاصطناعي مسار تحليل البيانات لا يتناول موضوع البيانات الضخمة (Big Data) أو تقنياتها لأنّ هذا المجال واسع بحدّ ذاته وقد يحتاج إلى مسار أو اثنين منفصلين وفي بعض الحالات إلى دورة كاملة لشرحه وقد يتم إضافته مستقبلا في التحديثات القادمة، فالبيانات الضخمة هي كميات هائلة من البيانات التي تتطلب تقنيات خاصة لمعالجتها وتخزينها بسبب حجمها وسرعتها وتنوعها، ويتم إدارتها عبر بنى تحتية موزعة وبرمجيات متخصصة ضمن مفهوم يعرف ب Big Data management. أما PySpark فهو إطار عمل بلغة بايثون يتيح معالجة البيانات الضخمة باستخدام محرك Apache Spark بينما PLSQL فهي لغة برمجة خاصة بقواعد بيانات Oracle تمكن من كتابة إجراءات وبرامج داخل قاعدة البيانات. يمكنك الاطلاع أكثر من هنا:
  4. وعليكم السلام، ببساطة ودون تعقيد فإنّ مكتبة NumPy تستخدم للتعامل مع الأعداد والمصفوفات بشكل سريع وسهل مثل جدول كبير من الأرقام تستطيع أن تجري عليه جمع وطرح وضرب بسرعة فهي مثل صندوق أدوات جاهزة للعمليات الرياضية على البيانات. أما مكتبة Numba فهي تساعد على تسريع البرنامج عندما تكتب تعليمات بايثون بنفسك وتريد أن تجعلها أسرع مثل لغة البرمجة C فمثلا إذا كتبت حلقة (loop) تحسب أرقام كثيرة Numba ستجعل هذه الحلقة تعمل بسرعة كبيرة. فكلاهما ستساعدانك لكن كل واحدة له دور مختلف ف NumPy للبيانات وعملياتها وNumba لتسريع التعليمات التي تكتبها بنفسك.
  5. وعليكم السلام. يمكنك ذلك من خلال نشر انشغالك في مدونة حسوب i/o هناك توجد مجتمعات كثيرة يمكنك اختيار المناسب لك وستجد ما تريده هناك من خلال الاطلاع على أحدث أخبار التقنية وتطوير الويب وستجد الكثير من المستخدمين المهتمين بالمجال وربما مشتركين أيضا في إحدى دورات الأكاديمية أو اشتركوا فيها من قبل: https://io.hsoub.com/webdev
  6. هذا أمر طبيعي ومشكلة عدم وجود تصميم جاهز لتحويله إلى كود هي أمر عادي يواجهه كثير من مطوري الواجهات الأمامية والحل ببساطة هو أن تبدأ بالتعلّم من تصاميم جاهزة موجودة على مواقع مثل Dribbble وBehance حيث يمكنك استخدامها كمصدر إلهام لفهم بناء التصاميم وكيفية تحويلها إلى مشاريعك. فلا تنتظر أن يكون لديك تصميم مثالي قبل أن تبدأ بل استخدم أطر عمل مثل Bootstrap أو Tailwind CSS لتساعدك على بناء واجهات سريعة ومحترفة ومع الوقت والتمرن ستكتسب مهارات التصميم تدريجيا الأهم حاليا هو أن تبدأ بتجربة وتحويل أفكار بسيطة إلى كود وتطور محفظة مشاريعك خطوة بخطوة، لأن الخبرة تُبنى بالممارسة وليست بالانتظار. كما أن محفظة الأعمال الاحترافية هي التي تبدأ من الصفر إلى الاحتراف مع تحديثها كل مرة بناء على خبراتك وتجاربك، فكلما زادت خبرتك ستستغني عن المشاريع الصغيرة التي قمت بها في بداياتك وهكذا.
  7. للأسف لا يمكن فهو شرط أساسي لتحويل التطبيق إلى وضع الإنتاج (Live Mode) وتمكين النشر العام والفيسبوك يفرض هذا الشرط لضمان الأمان والموثوقية، ولا يوجد بديل رسمي يسمح بتجاوز هذا المتطلب للنشر العام عبر API للنشر بدون هذا التحقق، تظهر المنشورات فقط للمسؤولين في وضع التطوير يمكنك التحقق من ذلك من هنا: https://developers.facebook.com/docs/development/release/business-verification
  8. عندما يكون التطبيق في وضع التطوير (Dev Mode) فإن كل المنشورات التي يتم إنشاؤها عبر ال API تكون مرئية فقط للمسؤولين المشاركين في التطبيق أي لك أنت فقط أو للمسؤولين الذين لهم دور في التطبيق ولا تظهر هذه المنشورات للجمهور العام أو أي شخص غير مسؤول في التطبيق. وهذه الخاصية تفرضها منصة فيسبوك لضمان أمان التجارب التطويرية وعدم نشر محتوى غير مراقب للجمهور. لذا لكي تجعل المنشورات تظهر للعامة يجب عليك تحويل التطبيق من وضع التطوير إلى وضع الإنتاج (Live Mode) وللقيام بذلك يتوجب عليك إجراء التحقق من النشاط التجاري (Business Verification) وهي عملية تطلب فيها Facebook مستندات تثبت صحة النشاط التجاري المرتبط بالتطبيق مثل رخصة تجارية أو أوراق رسمية وفي حالة عدم وجود نشاط تجاري رسمي، وكونك فردا وليس لديك شركة أو نشاط تجاري، فإن فيسبوك لا يسمح لك بتجاوز هذا الإجراء، مما يعني عدم القدرة على نشر منشورات عامة عبر API في وضع الإنتاج بدون هذا التحقق.
  9. عندما يكون لدينا مجموعة بيانات بعدة أعمدة مطبعة مسبقا وعمود واحد w غير مطبع يجب تطبيق ال Scaling على العمود w فقط وليس على جميع الأعمدة. والسبب هو أن إعادة تطبيق ال Scaling على الأعمدة المطبعة مسبقا سيؤدي إلى تشويه توزيعها الحالي وقد يخل بالعلاقات الإحصائية المطلوبة، بينما تطبيقه على العمود w فقط سيجعل جميع الأعمدة في نفس المقياس المطلوب للنموذج. الممارسة الصحيحة هي تطبيق ال StandardScaler أو MinMaxScaler على العمود w منفردا أو استخدام ColumnTransformer في scikit-learn لتحديد الأعمدة المراد معالجتها بدقة.
  10. يمكن الاعتماد على JavaScript بدون TypeScript بشكل كامل ف JavaScript هي لغة ديناميكية مكتملة تدعم جميع ال paradigms البرمجية وتوفر مميزات حديثة كما أن النظام البيئي ل JavaScript أوسع وأكثر نضجا مع npm packages متاحة مباشرة وعمليا معظم المشاريع الناجحة مثل React، Vue، Express، وNode.js core مكتوبة ب JavaScript خالص والمشكلة الأساسية في TypeScript ليست في قدراتها التقنية، بل في التعقيد الإضافي الذي تفرضه على عملية التطوير فأنت مجبور على إعداد أدوات الترجمة (compiler) وملفات الإعدادات مثل tsconfig.json وإضافة خطوات build إضافية قبل تشغيل الكود، كما أنك تضطر لكتابة تعريفات الأنواع (interfaces وtypes) التي قد تكون معقدة ومطولة أكثر من الكود الفعلي نفس بينما JavaScript الحديث مع أدوات مثل ESLint للتحقق من الأخطاء وJest للاختبارات يوفر نفس مستوى الجودة بطريقة أبسط وأسرع، لأنك تكتب الكود وتشغله فورا دون طبقات إضافية لكن لكل تقنية ودورها وفائدتها وليس هنالك تقنية أفضل من الأخرى إنما يجب التحدث عن إن كانت مناسبة لمشروع معين من عدمه.
  11. يغطي الكورس تقريبا كل ما تحتاجه لتكون مطور JavaScript كامل، فهو لا يقتصر على أساسيات JavaScript فحسب، بل يبني عليها طبقات متقدمة وأطر عمل مطلوبة في السوق مثل React.js و Node.js، مما يمنحك القدرة على تطوير تطبيقات ويب وموبايل وسطح مكتب بشكل متكامل، و الأهم من ذلك أنه يتناول تقنيات حديثة ومطلوبة بشدة في الشركات الكبرى، مثل TypeScript لكتابة كود أكثر متانة وقابلية للصيانة، وNext.js لبناء تطبيقات خادم، وGraphQL لإدارة البيانات بكفاءة، وحتى دمج الذكاء الاصطناعي، مما يضيف بعدا مهما لملفك الشخصي.
  12. الأفضل أن تكتب تعليقا يشرح الفكرة العامة للكود أو المقطع البرمجي، مع إضافة تعليقات تفصيلية فقط عند وجود أسطر أو أجزاء معقدة قد تكون غير واضحة عند القراءة لاحقا لأنّ كتابة تعليق على كل سطر أمر غير عملي ويجعل الكود مزدحما ويصعب من فهمه، لأن الكود الجيد عادة يكون واضحا بذاته لذا أنصح بشرح الهدف العام للكود في تعليق واحد ثم علّق على الأسطر التي تحتوي منطقا غير بديهي أو خطوات قد تربك القارئ.
  13. هل أنت مشترك في إحدى الدورات في الأكاديمية؟ إن كان كذلك أرجو التوجه إلى الدرس الذي واجهت فيه المشكلة. ثم قم بالنزول مباشرة إلى أسفل الصفحة، وستجد صندوقا للتعليقات مثل الذي هنا يمكنك طرح سؤالك هناك.
  14. السلام عليكم ورحمة الله. لقد أخبرتك في سؤالك السابق، الرجاء منك طرح أسئلتك المتعلقة بالدروس والدورات أسفل الدرس الذي واجهتك فيه المشكلة وهذا لمساعدتك على النحو الصحيح فهنا نجيب فقط على الأسئلة العامة. تحياتي.
  15. السلام عليكم ورحمة الله. الرجاء منك طرح أسئلتك المتعلقة بالدروس والدورات أسفل الدرس الذي واجهتك فيه المشكلة وهذا لمساعدتك على النحو الصحيح فهنا نجيب فقط على الأسئلة العامة. تحياتي.
  16. يمكنك استخدام إضافة اسمها Live Server لعرض التغييرات تلقائيا في المتصفح بدون الحاجة لإعادة التحميل، في VS Code اضغط على رمز الإضافات على اليسار و اكتب في البحث: Live Server، و اختر أول نتيجة واضغط على Install. بعد تثبيت الإضافة، افتح ملف index.html واضغط كليك يمين داخل الملف، ثم اختر "Open with Live Server"، و سيتم فتح الملف في المتصفح، وكل مرة تحفظ فيها سيتم تحديث الصفحة تلقائيا.
  17. وعليكم السلام ورحمة الله، Code Golf هو تحد برمجي تكون فيه الغاية عكس المعتاد أي ليس كتابة كود منظم أو واضح بل تقليص عدد الأحرف في الحل إلى الحد الأدنى. أين يطلب من المبرمج أن ينجز مهمة أو يحل مشكلة باستخدام أقل عدد ممكن من الرموز، دون اعتبار للوضوح أو سهولة الفهم. وتستخدم في هذا النوع من التحديات لغات تدعم الاختصار الشديد أو تحتوي على بناء جملي مرن مثل Python أو لغات مخصصة لل Code Golf مثل Jelly وGolfScript. وهذا النوع من البرمجة يشبه التلاعب اللغوي، ويجمع بين التفكير التحليلي والقدرة على استغلال ثغرات اللغة لتحقيق الهدف بكود صغير جدا.
  18. بناء على اطلاعي على ملفك الشخصي على منصة مستقل انصحك باستبدال صورتك الشخصية بأخرى احترافية مع تجنب وضع النظارات. ويجب كتابة وصف موجز من 150-200 كلمة يبرز خبرتك في HTML، CSS، JavaScript، وأطر عمل مثل React مع الإشارة إلى قدرتك على إنشاء واجهات مستخدم متكاملة كما في عملك السابق على مكونات مثل About.js وProjects.js. يمكنك إضافة حتى 5 مشاريع متنوعة إلى معرض أعمالك ولو كانت تجريبية ورفعها على منصات مثل Netlify أو GitHub لعرضها عمليا سيكون جذابا. وعند التقديم على مشروع يمكنك أن تقدّم عرضا مخصصا يظهر فهمك لمتطلبات العميل وحلولك المبتكرة، مثل تحسين تجربة المستخدم. وأن تركز على المشاريع الصغيرة لتقليل المنافسة وتقدّم خدمة إضافية مجانية كتحسين سرعة التحميل لتمييز نفسك.
  19. أنت لديك: points = [[-3, 1, 2], [1, 4, 0], [-1, -4, 5]] وهذه عبارة عن قائمة ثنائية الأبعاد أي قائمة من القوائم بحيث كل عنصر من عناصرها هو صف مكوّن من 3 أرقام وعند كتابة: points[1] في القائمة فإنك تطلب الوصول إلى العنصر الثاني في القائمة لأن الترقيم يبدأ من الصفر وبالتالي ترجع القيمة [1, 4, 0] وهي الصف الثاني بالكامل وليس عمودا. أما القيمة [1, 4, -4] التي أشرت إليها فهي تمثل العناصر ذات الفهرس 1 في كل صف أي أنها تشكل ما يعرف بالعمود الثاني في مصفوفة ثنائية الأبعاد، وللحصول عليها في بايثون يجب استخدام حلقة أو فهم قائمة مثل: [row[1] for row in points]
  20. توفر بايثون العديد من المكتبات والأدوات التي تتيح لك التفاعل مع أنظمة التشغيل والأجهزة المختلفة، حيث يمكنك استخدام مكتبة pyautogui لأتمتة المهام على الحاسوب، أو adb-shell للتحكم في أجهزة الأندرويد عبر واجهة ADB، أو حتى مكتبات مثل OpenCV لمعالجة الصور والفيديوهات من الكاميرا.
  21. بداية يجب أن تنهي الدورة وتتقدم للامتحان الخاص بالدورة ,يمكنك التقدم إلى امتحان الدورة، من خلال التواصل مع مركز مساعدة أكاديمية حسوب, لكي تتقدم للامتحان يجب أن تتوفر بعض الشروط : يجب أن تكون قد أتممت أربعة مسارات تعليمية على الأقل من مسارات الدورة يجب أن تكون قد طبقت المشاريع التي يتم تطبيقها أثناء الدورة ، والاحتفاظ بالمشاريع العملية الناتجة لإرسالها للمراجعة أن تكون قد رفعت كافة المشاريع على حسابك على github ومشاركتها مع مركز المساعدة ثم يتم الامتحان على 4 مراحل مختلفة: بداية تتواصل مع مركز المساعدة وتخبرهم برغبتك في التقدم للامتحان محادثة صوتية مدتها 30 دقيقة يطرح عليك المدرب بعض الأسئلة المتعلقة بالدورة ويناقش ما تم تعلمه في الدورة سوف يحدد لك المدرب مشروع تخرج تقوم بتنفيذه خلال فترة بين أسبوع الى أسبوعين مراجعة المشروع ان تمت جميع الأمور بشكل صحيح تستطيع الحصول على الشهادة , يمكنك معرفة المزيد والتحدث معهم من صفحة الامتحان والحصول على الشهادة.
  22. البرمجة الإجرائية (Procedural Programming) هي نموذج برمجي يعتمد على تنظيم الكود في شكل إجراءات أو دوال منفصلة تستدعى بتسلسل محدد fpde يقوم هذا النموذج على مبدأ "فرµق تسد" حيث يتم تقسيم المشكلة الكبيرة إلى مشاكل أصغر يتم حلها بواسطة دوال منفصلة والبيانات والدوال تكون منفصلة عن بعضها البعض وتمرر البيانات كمعاملات للدوال التي تعالجها وترجع النتائج. التحكم في تدفق البرنامج يتم من خلال استدعاء الدوال بترتيب معين، مع استخدام هياكل التحكم مثل الحلقات والشروط. من أشهر لغات البرمجة الإجرائية: C و Pascal و COBOL و FORTRAN و أجزاء من JavaScript و Python. يمكنك التعرف عليها أكثر من هنا:
  23. أرجو مراجعة الإجابة التالية فهي تحلّ نفس المشكل الذي تواجهه: في حال استمرت المشكلة قم ب الضغط على Ctrl + shift + r لتحميل الصفحة مع حذف الكاش كما يمكنك تجربة استخدام متصفح آخر ثم التجربة مرة أخرى.
  24. مع الأسف لا يوجد حاليا توثيق رسمي ل Pandas في موسوعة حسوب، لكن يمكنك أن تجد الكثير من المعلومات والمصادر داخل مقالات أكاديمية حسوب من هنا: وفي نهاية الصفحة ستجد عدة روابط أخرى يمكها أن تفيدك أكثر:
  25. رغم الأداء المتفوق الذي تقدمه Bun، خاصة في سرعة تنفيذ العمليات حيث بعد بحث قصير وجدت أن بعض الاختبارات التي تم إجراؤها أظهرت أنه أسرع من Node.js بثلاثة أضعاف في طلبات HTTP إلا أن الإحصائيات الرسمية لعام 2024 و2025 تؤكد أن Node.js لا يزال المسيطر في السوق. فبحسب استطلاع Stack Overflow 2024، يستخدم أكثر من 40.8% من المطورين Node.js، وتظهر تقارير مثل W3Techs أن أكثر من 4.6% من المواقع تستخدمه، مع أكثر من 1.4 مليار عملية تنزيل تاريخيا. كما أنّ Node.js يحظى بدعم واسع في المؤسسات الكبرى ولديه نظام بيئي ناضج يضم ملايين الحزم على npm. في المقابل لا تزال Bun حديثة نسبيا حيث أطلقت نسختها المستقرة الأولى في سبتمبر 2023 وتفتقر إلى الاستقرار الكامل والتبني المؤسسي على نطاق واسع.
×
×
  • أضف...