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

لوحة المتصدرين

  1. Waleed Hawari

    Waleed Hawari

    الأعضاء


    • نقاط

      4

    • المساهمات

      61


  2. محمود سعداوي2

    محمود سعداوي2

    الأعضاء


    • نقاط

      3

    • المساهمات

      604


  3. Ebrahim Abdo2

    Ebrahim Abdo2

    الأعضاء


    • نقاط

      3

    • المساهمات

      57


  4. Mohammed Allouch

    Mohammed Allouch

    الأعضاء


    • نقاط

      3

    • المساهمات

      47


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 04/30/23 في كل الموقع

  1. السلام عليكم ورحمة الله وبركاتة هل فعلا دورة تطوير تطبيقات البايثون هي كل شي احتاجه للحصول على وظيفة في شركة كمطور بايثون ( تطوير الويب Back end ) ؟ ايضا ماهي نصائحكم لي خلال الدورة ؟ انا قسمت الدورة الى اجزاء ليسهل علي مشاهدة الفيديوهات بشكل يومي
    4 نقاط
  2. مرحبا من فضلكم لدي سؤال أنا حاليا أتابع درس تطبيق ملاحضة والأن قمت بحفض مشروع تطبيق ملاحضة دهرا عن قلب تعلمت أن اكتب الشفرة بسرعة وبدون أخطاء و لكن بعد الأشياء لم افهما وسؤالي هل الطريقة في حفد بعضن المشاريع ستنفعني أو اركز فقط على لفهم و اتخلى عن الحفض و شكراً
    3 نقاط
  3. هل من الضروري التحميل حزمة phpdotenv؟
    2 نقاط
  4. انني اتعلم لغة بايثون لا اعلم ان كنت ساتعلم هذا في المستقبل لكن هناك سال يحيرني كيف يتم ارسال الصوت والفيديو و..الخ من المحادثة بين الطرفين وهل انشاء موقع فيه مقاطع فيديو او مقاطع صوت صعب جدا
    2 نقاط
  5. السلام عليكم. أواجه مشكل في عدم ظهور الصور على صفحة الويب. الصورة التالية توضح كيفية تموضع الملفات قمت بوضع الصور في ملف projects.js export const projects = [ { id: 0, title: "Animated Navigation", description: 'animated navbar without any library using react hooks', image: '../../assets/project-images/animated-navigation.jpg', demo: 'https://react-animated-navigation.netlify.app', }, { id: 1, title: "Netflix Navigation", description: 'animated navbar without any library using react hooks', image: '../../assets/project-images/netflix-navigation.JPG', demo: 'https://react-netflix-navigation.netlify.app', }, { id: 2, title: "Netflix Navigation", description: 'rotating animated navbar using only react hooks without any library', image: '../../assets/project-images/rotating-animation.JPG', demo: 'https://react-js-rotating-navigation.netlify.app', }, { id: 3, title: "Music Player", description: 'rotating animated navbar using only react hooks without any library', image: '../../assets/project-images/music-player.JPG', demo: 'https://audio-player-with-react.netlify.app', }, { id: 4, title: "Music Player", description: 'animated search input using only react hooks without any library', image: '../../assets/project-images/hidden-search-widget.JPG', demo: 'https://animated-search-react.netlify.app', }, { id: 5, title: "Music Player", description: 'basic project to understand array methods like filter sort and reduce using react js', image: '../../assets/project-images/array-methods.JPG', demo: 'https://react-array-methods.netlify.app/', }, ] ملاحظة: عندما أضع الماوس على image تظهر الصورة. قمت بالتثبت من مسميات الصور و لم أجد أي خلل. الرجاء المساعدة.
    2 نقاط
  6. عند إضافة حزّم ويب باك الى المشروع وتثبيتها من موجه الأوامر .. اين يتم تثبيت هذه الحزم بالضبط ؟ هل يمكنني استخدامها في مشروع اخر دون الحاجة لاعادة كتابة امر التثبيت ؟ وما هي تداعيات تعارض الحزم ؟
    2 نقاط
  7. السلام عليكم ما الفرق بين دورة تطوير واجهات المستخدم ودورة تطبيقات باستخدام javascript وماذا سوف استفيد من كل دورة وما هو العمل الذي ساحصل عليه بعد الدورة
    2 نقاط
  8. هو قسم ال AI في حاسبات قسم خاص(مدفوع)؟ وتكلفته كام لو حد يعرف
    1 نقطة
  9. تتم عملية نقل الصوت والفيديو في تطبيقات المحادثة مثل الواتساب عبر استخدام تقنية Protocol (IP)، وتتضمن هذه التقنية تحويل الصوت والفيديو إلى تنسيق رقمي يمكن نقله عبر الانترنت، وذلك باستخدام تقنيات الضغط والتشفير لتحسين جودة الصوت والفيديو وتأمينه. وعندما يرسل أحد المستخدمين مقطع فيديو أو صوت عبر التطبيق، يتم تحويله إلى تنسيق رقمي و تقسيمه إلى عدة حزم صغيرة، و إرسال هذه الحزم عبر الانترنت إلى المستلم. وبعد ذلك، جمع هذه الحزم مرة أخرى وتحويلها إلى مقطع فيديو أو صوت وعرضها أو تشغيلها على جهاز المستلم. ويستخدم كل من Protocol (IP) و WebRTC في تطبيقات المحادثة ونقل الصوت والفيديو. Protocol (IP) كبروتوكول رئيسي لنقل البيانات عبر الإنترنت بشكل عام، ويعتمد على تجزئة البيانات إلى حزم ونقلها من خلال الشبكة. ويستخدم في تطبيقات المحادثة كأساس لنقل الصوت والفيديو من جهاز المرسل إلى جهاز المستقبل. أما WebRTC فهو تقنية حديثة ومفتوحة المصدر تم تطويرها خصيصاً لنقل الصوت والفيديو والبيانات الحية في الوقت الحقيقي عبر الإنترنت. ويتضمن WebRTC بروتوكولات مخصصة للصوت والفيديو والشات وتقنيات الضغط والتشفير وغيرها لتحسين جودة الاتصال وتأمينه. ويستخدم WebRTC في العديد من تطبيقات المحادثة عبر الإنترنت والتطبيقات الأخرى التي تحتاج إلى نقل الصوت والفيديو عبر الإنترنت بشكل سريع وآمن. وتستطيع إنشاء تطبيق محادثة صوتية باستخدام بايثون باستخدام بعض المكتبات المتاحة، مثل: PyAudio: مكتبة بايثون للعمل مع الصوت، وتتيح لك إمكانية تسجيل وتشغيل الصوت على نظام التشغيل الخاص بك. Socket: مكتبة بايثون للتواصل بين العملاء والخوادم باستخدام TCP/IP. PyQT: مكتبة بايثون لإنشاء واجهات المستخدم الرسومية (GUI)، والتي يمكن استخدامها لإنشاء واجهة المستخدم لتطبيق المحادثة الصوتية. ومن الخطوات التي يمكن اتباعها لإنشاء تطبيق محادثة صوتية باستخدام بايثون: تسجيل الصوت باستخدام مكتبة PyAudio. إنشاء واجهة المستخدم باستخدام مكتبة PyQT. التواصل بين العميل والخادم باستخدام مكتبة Socket. نقل بيانات الصوت بين العميل والخادم عبر الاتصال الشبكي باستخدام بروتوكولات الإنترنت مثل TCP/IP أو UDP. تشفير وفك تشفير الصوت باستخدام تقنيات التشفير المناسبة. تشغيل الصوت على العميل باستخدام مكتبة PyAudio. إنشاء موقع يتضمن مقاطع فيديو أو صوت تستطيع استخدام لغة البايثون في إنشاء موقع مثل هذا، بالإضافة إلى العديد من التقنيات الأخرى مثل HTML وCSS وJavaScript و Django framework لإدارة الموقع. وإليك مثال، أنت قمت بإنشاء مشروع دجانغو، عليك بفعل التالي: تحديد نموذج Django الذي سيستخدم لتمثيل الفيديو أو الصوت. يمكن إنشاء نموذج بسيط كالتالي: from django.db import models class Video(models.Model): title = models.CharField(max_length=200) video_file = models.FileField(upload_to='videos/') حيث تم تحديد نموذج Video الذي يحتوي على اسم الفيديو وملف الفيديو. بعد تحديد نموذج الفيديو، يجب إنشاء عرض (View) Django الذي يعرض الفيديو. وتستطيع إنشاء عرض بسيط باستخدام الكود التالي: from django.shortcuts import render def video(request, video_id): video = Video.objects.get(id=video_id) return render(request, 'video.html', {'video': video}) يتم تحديد العرض "video" الذي يستخدم نموذج Video ويسترد الفيديو الذي يحمل نفس معرف video_id. ويجب إنشاء قالب (Template) Django الذي يستخدم لعرض الفيديو. حيث تستطيع إنشاء قالب بسيط باستخدام HTML و Django Template Language، و استخدام HTML5 Video Tag لعرض الفيديو. <html> <head> <title>{{ video.title }}</title> </head> <body> <h1>{{ video.title }}</h1> <video controls> <source src="{{ video.video_file.url }}" type="video/mp4"> </video> </body> </html وهناك العديد من المكتبات التي يمكن استخدامها مع Django لإضافة الوسائط مثل الفيديو والصوت والصور. بالنسبة للفيديو والصوت، تستطيع استخدام مكتبات مثل Django-ffmpeg و Django-Video-Encoder لمعالجة وتشفير الوسائط المتحركة. أيضًا يمكن استخدام مكتبات مثل Pillow و Django-imagekit لمعالجة الصور. وهناك مكتبات JavaScript مثل Plyr و Video.js و WaveSurfer.js لتشغيل الفيديو والصوت وتحريرهم في صفحات الويب.
    1 نقطة
  10. عند إرسال الصوت في المحادثات، فإنه يتم تحويل الصوت من تسجيل الميكروفون إلى بيانات صوتية (audio data) وترمز هذه البيانات إلى مجموعة من الأرقام الثنائية (binary data) ويتم إرسال هذه البيانات الثنائية من خلال الانترنت. وفي النهاية، يتم استقبال هذه البيانات وتحويلها إلى ملف صوتي يمكن تشغيله. يمكن استخدام مختلف البروتوكولات والتقنيات للتعامل مع الصوت في التطبيقات والمواقع، وهذا يعتمد على المتطلبات والأهداف الخاصة بالمشروع. ومن الممكن أن يتم رفع ملفات الصوت على الانترنت وإرسال رابط هذه الملفات خلال المحادثات، ولكن هذا يعتمد على نوع المحادثة وطبيعة الصوت المراد إرساله.
    1 نقطة
  11. شكرا لك لتوضيح الفكرة لكن هل يتم ارسال الصوت كاملا ويرسل ك مقطع صوتي مرفوع على الانترنت ام ك بيانات وشيفرات ويتم تحويله الى صوت في الجهى الاخرة ف كما فهم من الويب عند اضافة صورة يتم اضافة مسار الصورة وتعرض الصورة ولكن الصوت كيف مبداه
    1 نقطة
  12. تعلم لغة بايثون هو خطوة جيدة في الاتجاه الصحيح لتطوير المهارات البرمجية الخاصة بك. بالنسبة لسؤالك حول كيفية إرسال الصوت والفيديو في المحادثات، فإن هذا يتم عادةً باستخدام بروتوكولات الاتصال الصوتي والفيديو المثل WebRTC والذي يستخدم برمجيات تطبيقات الويب. وبالنسبة لإنشاء موقع يحتوي على مقاطع فيديو أو صوت، فإنه يعتمد على مستوى صعوبة المشروع ونطاق الأهداف التي تريد تحقيقها. ومن الجيد أن تعلم أساسيات البرمجة باستخدام بايثون وإنشاء مواقع الويب، ومن ثم يمكنك استخدام مكتبات الوسائط مثل OpenCV للفيديو وPyAudio للصوت للعمل على إضافة وظائف الوسائط إلى موقعك. بصفة عامة، لا يوجد شيء صعب جدًا في البرمجة، فقط يتطلب الأمر بعض الوقت والجهد لتعلم المفاهيم الأساسية والممارسة والتجربة. ويمكن الاستفادة من الموارد التعليمية المتاحة على الإنترنت، بما في ذلك المواقع التعليمية والكتب الإلكترونية والمنتديات والمدونات التعليمية والندوات البرمجية.
    1 نقطة
  13. لا يمكن لأي دورة تعليمية واحدة أن تعطيك كل ما تحتاجه للحصول على وظيفة كمطور بايثون. ومع ذلك، فإن دورة تطوير تطبيقات البايثون يمكن أن تكون خطوة جيدة في الطريق الصحيح نحو تعلم البايثون وتطوير الويب، ولكن هناك الكثير من المهارات والمعرفة الأخرى التي قد تحتاج إليها. من أجل الحصول على وظيفة كمطور بايثون، يجب عليك تعلم البايثون جيدًا، وتطوير فهم قوي للمفاهيم الأساسية والمهارات اللازمة لتطوير تطبيقات الويب. يجب أن تكون لديك فهم جيد للعمليات الأساسية للتطبيقات الخلفية، مثل تخزين البيانات، والاتصال بقواعد البيانات، والتحكم في الخطأ والاستثناءات. بالإضافة إلى ذلك، يجب عليك أن تتعلم أدوات وتقنيات أخرى، مثل Django و Flask و SQL و Git والتصميم العام للتطبيقات ومفاهيم البرمجة الكائنية. إذا كنت قادرًا على تعلم هذه المهارات، فإنك ستكون على المسار الصحيح للحصول على وظيفة كمطور بايثون. بالنسبة لنصائحك خلال الدورة، فإليك بعض النصائح العامة: حافظ على التركيز: قسم الدورة إلى أجزاء لتسهيل مشاهدة الفيديوهات، ولكن لا تنسى التركيز على المفاهيم الأساسية والتمارين والتطبيقات العملية. تمرن على الكتابة: بالإضافة إلى مشاهدة الفيديوهات والحفظ، تمرن على كتابة الشفرة بنفسك وحل المشاكل البرمجية الصعبة. يمكنك استخدام مواقع التحديات البرمجية لتطبيق ما تعلمته في الدورة وتحسين مهاراتك. ابحث عن الاستشارة والمساعدة: إذا واجهتك مشاكل أثناء التعلم، لا تتردد في البحث عن المساعدة والاستشارة من المجتمعات البرمجية عبر الإنترنت، مثل Stack Overflow، أو المنتديات، أو المدونات التعليمية. قم بمشاريع عملية: بمجرد أن تكون على دراية بالمفاهيم الأساسية لتطوير تطبيقات الويب باستخدام البايثون، قم بعمل مشاريع عملية لتطبيق ما تعلمته وتحسين مهاراتك. يمكنك إنشاء تطبيقات ويب بسيطة ونشرها عبر الإنترنت، أو العمل على مشاريع مفتوحة المصدر مع المجتمعات البرمجية. لا تنس التعلم المستمر: يجب عليك الاستمرار في تعلم البايثون وتطوير الويب، ومتابعة أحدث التقنيات والأدوات. يمكنك الاشتراك في دورات تعليمية متقدمة، أو حضور الندوات البرمجية، أو الاشتراك في المجتمعات البرمجية عبر الإنترنت.
    1 نقطة
  14. لا يمكن القول بأن الحصول على وظيفة كمطور بايثون في شركة تتطلب فقط إتمام دورة تطوير التطبيقات باستخدام لغة Python . فالحصول على وظيفة يتطلب عادة خبرة سابقة في المجال، ومعرفة بأساسيات التطوير والبرمجة. ولكن إتمام دورة تطوير التطبيقات باستخدام لغة Python يمكن أن يكون خطوة هامة لاكتساب المهارات اللازمة للعمل كمطور بايثون، والتعرف على أساسيات تطوير الويب في الجانب الخلفي Back end. أما بالنسبة لنصائح خلال الدورة، فمن الجيد تقسيم الدورة إلى أجزاء صغيرة والتركيز على كل جزء بشكل منفصل. كما يمكن استخدام المصادر الإضافية، مثل المقالات والكتب والمنتديات، لتعميق فهمك للموضوعات التي تدرسها في الدورة. ولا تتردد في البحث عن المشاريع التطبيقية التي يمكنك تنفيذها خلال الدورة لتعزيز مهاراتك العملية.
    1 نقطة
  15. لا يمكنك الوصول إلى الصور بهذه الطريقة، لحل المشكلة أنت بحاجة لوضعها في ملف الـ public مثل : أو ان تقوم باستيرادهم بشكل فردي، كل واحدة على حدى.
    1 نقطة
  16. هل يمكنك مشاركة ملفات المشروع حتى اقوم بالاطلاع على سبب المشكلة واختبار الكود.
    1 نقطة
  17. يفرق دوما بين ثلاث أنواع من الحزم والاعتماديات في node هي كالتالي: الـ devDependencies : هي مجموع التبعيات و الحزم المطلوبة للتشغيل على بيئة التطوير، أي تلك التي يتم إستعمالها فقط أثناء التطوير أو الإصدار. بحيث تشكل مجموع الأدوات التي تساعدك على إدارة كيفية تطوير التطبيق لديك . الـ Dependencies : و هي مجموع التبعيات و الحزم التي يحتاجها مشروعك ليكون قادرًا على العمل في بيئة الإنتاج . الـ PeerDependencies : هي مجموع الحزم التي تحتاجها حزمة ما لكي تشتغل بشكل طبيعي، و نادرا ما يتم التعامل مع هاته التبعيات و الحزم. و يقصد بها أي حزمة B تتطلبه حزمة معينة A ما ولكنها لا تشمله مع نفسه عند تثبيته. كما يوجد أيضا : الـ bundledDependencies و الـ OptionalDependencies. التعارض الذي يحدث في الغالب هو بسبب تحديث التبعية او تبعية التطوير الى اصدار معين، مع عدم تواؤم اصدار الحزمة التابعة peerDep مع اصدارها. لنقل مثلا ان الحزمة A تتبع الحزمة B وتعتبرر peer dependency لها، وفي وقت ما تم تحديث اصدار A الى 1.1 ولم يتم تحديث اصدار B. عند محاولة تثبيت B يتم اخبارنا ان هنالك تعارضا فالحزمة B تتطلب الاصدار 1.0 من الحزمة A. وهكذا يتم الأمر باختصار. لتلافي مثل هاته المشكلة، نقوم بجبر التثبيت عن طريق اضافة الخيار force-- او تمكين تثبيت الحزم المتعارضة عن طريق الخيار legacy-peer-deps-- الى امر التثبيت.
    1 نقطة
  18. هذا هو ملف layout الخاص بي <!DOCTYPE html> <html lang="{{ str_replace('_', '-', app()->getLocale()) }}"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <!--wrapper--> <div class="wrapper"> {{ do something to the Array $arr }} {{ $slot }} </div> <!--end wrapper--> </body> </html> وهذا ملف العرض الخاص بي <x-layout> {{ $arr }} <!-- how to pass it to the layout file --> <x-slot:arr> array here </x-slot:arr> </x-layout> سؤالي هو كيفية تمرير مصفوفة إلى ملف layout ؟
    1 نقطة
  19. أجريت بعض اختبارات الأداء ، كانت واجهة DB أسرع بكثير من Eloquent للعديد من عبارات SQL, على سبيل المثال SELECT ، UPDATE ، DELETE ، INSERT. إذن لماذا شخص ما يستخدم Laravel Eloquent الأبطأ بدلاً من واجهة DB الأسرع ؟ شكرا لكم مقدما على الاجابة
    1 نقطة
  20. بخصوص تعارض الحزم فهى تحدث عندما يتعارض تثبيت حزمتين أو أكثر في نفس المشروع، وهذا النوع من المشاكل قد يؤدي إلى توقف تشغيل التطبيق بالكامل أو إلى أخطاء في وظائف محددة من التطبيق. ولحل مشكلة تعارض الحزم، يجب القيام بعدة خطوات: الخطوة الأولى هي تحديد الحزم التي تسبب التعارض والتأكد من أنها تستخدم إصدارًا متوافقًا مع الحزم الأخرى التي يعتمد عليها التطبيق. يمكن تحديد الحزم المتعارضة باستخدام أدوات إدارة الحزم مثل npm-check و npm ls. npm-check و npm ls هما أوامر في واجهة سطر الأوامر لإدارة حزم npm والتحقق من حالة الحزم المثبتة في المشروع وتحديد التعارضات. فالأمر npm-check يقوم بإظهار حالة الحزم المثبتة ويسمح بتحديد الحزم التي تحتاج إلى التحديث أو حذفها. أما الأمر npm ls فيقوم بإظهار قائمة بكافة الحزم المثبتة بما فيها الإصدارات والتعليقات والتبعيات بين الحزم لتحديد التعارضات. الخطوة التالية هي تحديد الخطأ الذي يتم إصداره من التطبيق عند تشغيله، وهذا يتطلب فحص ملفات السجلات أو استخدام أدوات تصحيح الأخطاء مثل debugger أو console.log. بعد تحديد الحزم المتعارضة والخطأ الناتج عنه، يمكن اتخاذ إحدى الخطوات التالية: تحديث إصدارات الحزم المتعارضة إلى إصدارات متوافقة مع بعضها البعض. حذف الحزم المتعارضة واستخدام حزم بديلة. إجراء التغييرات اللازمة في التطبيق لتجنب تعارض الحزم، وهذا يمكن أن يتطلب تغيير كود التطبيق. والحل الأسهل هو استخدام الأمر npm install --legacy-peer-deps لحل مشكلة تعارض الحزم، فهو يستخدم خيار --legacy-peer-deps لتمكين npm من تثبيت الحزم المتعارضة كما كان يفعل في إصدارات سابقة، حيث تم تغيير سلوكية تثبيت الحزم المتعارضة في إصدارات npm الأحدث. ومع ذلك، ينبغي استخدام هذا الأمر بحذر، حيث أنه يمكن أن يؤدي إلى تثبيت إصدارات قديمة من الحزم وهذا قد يؤدي إلى مشاكل أخرى، أي الأفضل هو استخدام حزم متوافقة، لكن في حال كنت تعمل على مشروع للتدريب أو تعلم تقنية جديدة فلا مشكلة في استخدامه.
    1 نقطة
  21. يتم تثبيتها في ملف الـ node_modules نعم ولكن يجب ان تنسخ ملف الـ node_modules وملف الـ package.json وملف الـ package-lock.json إلى المشروع الجديد. هذا يعتمد على الحزمة التي تسبب التعارض، حيث قد لا يسبب التعارض أي مشكلة أو قد يسبب توقف التطبيق بالكامل.
    1 نقطة
  22. أحب دائما الاشارة إلى أن كم المادة العلمية التي يحتاجها المتعلم المبتدئ هي غالبا ما تكون محدودة ولا يحتاج الى ذاك التعمق والالمام بكامل الحيثيات، فهاته المفاهيم والجزئيات تطورت بدورها مع الوقت ولم يطلب أصلا تحصيلها في جلسات متتالية من الدراسة. بل سيجب عليه تعلمها ثم ادراكها ثم ممارستها وتطبيقها ثم التعود عليها. وهذا الأمر لا يتأتى إلا مع الوقت والصبر والممارسة، ولا يمكن بأي حال من الأحوال اختصار هاته الطريق، فكل ممن ذكرت من المحترفين في المجال قد مروا بنفس ما تمر به، وتسائلوا نفس ما تسائلت به، وأحسوا مثل ما أحسست به .. ولكنهم انشغلوا بالتطبيق والممارسة العملية بجانب التحصيل النظري والاطلاع على مواد علمية جديدة بشكل دوري. بل وحتى أن المجتمع البرمجي نفسه يمقت ويحذر من الاكتفاء بالتحصيل النظري فقط. فقد تجده مثلا يحذر من الوقوع في احد الظواهر المعروفة في المجال هي ظاهرة tutorial hell او جحيم التعلم وهو البقاء في دوامة مشاهدة الدورات والشعور بعدم الكفاءة للمارسة العملية او تطبيق ما يتعلمونه، ويحث على الممارسة والتطبيق فهي ما يتعلم الطالب خلاله فعلا. ولهذا تجد دورات الأكاديمية تركز على الشرح النظري أثناء التطبيق العملي نفسه، وتُلحق كل مسار نظري بعدة مسارات تطبيقية. ويُحثُ الطلبة دوما على القيام بأشياء معينة والتطبيق مع المدرب وما الى ذلك .. ولذلك فإنك -باختصار- لن تحتاج غير ما يقدم في الدورة التي تشترك بها فهي ستكفيك وتوفيك وتدفعك للعمل، هذا بجانب الميزات الأخرى لدورات الأكاديمية. أما بالنسبة للتحديثات ومواكبة التغييرات التي تحدث على المجال فبالطبع يتم ذلك، ويتم تحديث اي مادة علمية بعد تحديثها من قبل القائمين عليها بشكل مباشر. فالمشتركون بالاكاديمية يصلهم بريد الكتروني كل مرة يتم فيها تحديث دورة او مسار ما .. ونجد -تقريبا- في كل دورة مسارا لاحقا بعنوان "أرشيف المسارات الأقدم" يختص بالمواد العلمية التي تم تحديثها ولم يعد الطلبة مجبرون على مشاهدتها، ولا يتم حذفها -بطبيعة الحال- نهائيا لاحتمالية وجود بعض الطلبة الذين لا يزالون يشاهدون هاته المسارات. هذا بجانب التنبيه بشأن بعض الجزئيات التي يراقبها بشكل دوري فريق من المدربين المشرفين على الطلبة.
    1 نقطة
  23. انا قطعت فترة كبيرة عن الدورة ارجع من المسار الي كنت فيه او اعيد من البداية واريد ان اسال كم احتاج ساعة دراسة في اليوم ل الانتهاء من الدورة ؟ وما هي طريقة التعلم الصحيحة تسجيل المعلومات ام مشاهدة الفيديو اكثر من مرا ؟ وهل اشاهد الفيديو واطبق المعلومات ام اشاهد الفيديو مرة واحدة واحاول ان اطبق لوحدي ؟ دورة تطوير واجهات المستخدم انا وصلت مسار بناء صفحات هبوط لكن ما نسيت المسارات الي قبل بشكل تام
    1 نقطة
  24. تتحدث كاتبة المقال عن تجربتها الشخصية مع البرمجيات مفتوحة المصدر، وبالتحديد عن الخطأ الأول الذي ارتكبته في بداية مشوارها، وكاد يثنيها عن الشروع بالعمل، وقد عنونت المقال بمتلازمة المحتال Impostor Syndrome في إشارة منها إلى ذلك الشعور الداخلي الذي يتغلب علينا في بعض الأحيان ويزعزع ثقتنا بأنفسنا عبر التشكيك بقدراتنا وما أنجزناه، علّ المقال يكون مفيدًا لكل راغب بدخول هذا المجال. تعلّمتُ -تقول الكاتبة- أساسيات البرمجة من خلال الإنترنت، اتبعت عددًا من البرامج التعليمية وأنجزت المشاريع الملحقة بها، وأحرزت تقدمًا، لكني تساءلت دومًا ماذا بعد؟ ما هي خطوتي التالية للارتقاء إلى المستوى الأعلى؟ وفي هذه المرحلة صادفني منشور على إحدى المدونات يخبر القارئ أن المساهمة في المشاريع مفتوحة المصدر هي الطريقة المثلى لكل مبتدئ يرغب بتطوير مهارته البرمجية والانتقال إلى مستوى أعلى. إذًا بعد أن قرأت ذلك المنشور انتابني شعورٌ قوي أني وصلت للطريق الصحيح، وأن المساهمة في المشاريع مفتوحة المصدر هي السبيل الوحيد لأغدو مطورًا حقيقيًا، لذا بدأت باتباع الإرشادات التي يذكرها المنشور وأولها إنشاء حساب على GitHub، وخلال أقل من عشر دقائق شعرت بالارتباك الشديد لدرجة جعلتني أتخلى عن الفكرة تمامًا. لم أكن شخصًا لا يحب التعلم بل على العكس، لكن المصادر التي اعتمدتها تتوقع من القارئ أن يمتلك معرفةً جيدة ومسبقة بمنصة Git و GitHub وكيف أنها أتاحت للعديد من المطورين حول العالم أن يتعاونوا في مشروعٍ واحد. لذا عدت إلى دروسي ولكن الرغبة في دخول المجال لم تفارقني أبدًا، وعشت صراعًا داخليًا لسنوات بين أن المساهمة في المصدر المفتوح تجربة سهلة وقيمة وينبغي أن أخوضها، وذلك الانطباع الداخلي بأني لست أهلًا بعد لكتابة الأكواد في مشاريع مفتوحة المصدر. لازمتني مشاعر عدم الثقة حتى بعد أن تآلفت مع Git، استمر جدل المحتال الداخلي بأني لم أكتب كودًا لمشاريع حقيقية بعد بل مجرد أكواد لمشاريع تعليمية وتدريبية بل حتى تجارب، وأني لست مؤهلةً للمساهمة في مشاريع حقيقية يستخدمها الآخرون ويعتمدون عليها، في الواقع حتى عندما عملت بصفتي مهندسة برمجيات وكتبت أكوادًا حقيقية، انتابتني المشاعر نفسها، وكانت الحجة أنني أعمل مع لغة برمجة واحدة، فما الذي يضمن نجاحي في مكانٍ آخر ومع أطر عمل وربما لغاتٍ برمجية أخرى. استغرقت فعليًا حوالي السنة ونصف من العمل الجاد بدوامٍ كامل، لأشعر أخيرًا بالثقة الكافية لإغلاق حجج المحتال الداخلي، وتقديم طلب السحب الأول PR على GitHub وبدء رحلتي مع البرمجيات مفتوحة المصدر. أساطير ضارة سنكشف أمامكم زيف اثنتين من أكثر الأساطير الضارة انتشارًا حول البرمجيات مفتوحة المصدر. الأسطورة الأولى: المساهمة في البرمجيات مفتوحة المصدر سهلة تكررت أمامي مرارًا خلال هذه الرحلة رسالةٌ مفادها أن المساهمة في البرمجيات مفتوحة المصدر أمرًا سهلًا، وعندما لم أتمكن من البدء بسهولة بدأت أتساءل عن مهاراتي الخاصة وأشك فيها. أما الآن أفهم معنى هذه الرسالة بطريقةٍ مختلفة، فعندما يصف الناس هذه المساهمة بالسهلة، فهم يقصدون أنها هدف قابل للتحقيق ويمكن للمبتدئين الوصول إليه إن اجتهدوا، أو أنك تستطع المساهمة في البرمجيات المفتوحة المصدر دون كتابة الكثير من التعليمات البرمجية المعقدة، هذا كله صحيح ولكن الأهم أن تعرف أن هذه المساهمة في الواقع صعبة وتتطلب منك وقتًا كافيًا تفهم خلاله قاعدة شيفرة جديدة وأدوات خاصة يستخدمها المطورون. بالتأكيد لا نريد إثناء المبتدئين عن المحاولة، لكننا نرغب في إخبارهم أن مواجهة التحديات أمرًا طبيعيًا ومتوقعًا للغاية خلال العملية. الأسطورة الثانية: لابد أن يساهم كل مطور حقيقي بالبرمجيات مفتوحة المصدر لطالما ذكرني المحتال الداخلي بأن عدم مساهمتي في البرمجيات مفتوحة المصدر يعدّ نقصًا واضحًا ووصمة عار في مسيرتي المهنية، بصراحة حتى وأنا أكتب هذا المقال أشعر بالذنب لأنني لم أساهم أكثر في المجتمع مفتوح المصدر. العمل على هذه البرمجيات طريقة رائعة للتعلم والمشاركة في مجتمع المطورين الأوسع هذا كله لا ريب فيه، إلّا أنها بالتأكيد ليست الطريقة الوحيدة، إذ يمكنك التدوين أو حضور اللقاءات أو العمل في مشاريع أخرى أو القراءة أو الإرشاد أو حتى العودة إلى المنزل في نهاية يوم عمل طويل للاستمتاع بلقاء ودي مع الأهل أو الأصدقاء. ما نريد قوله في النتيجة أن المساهمة في البرمجيات مفتوحة المصدر تحدي ممتع ومفيد حقًا، لكن بشرط أن يكون هو التحدي الذي اخترته. خطئي الأول في المساهمة بالمشاريع مفتوحة المصدر خطئي الأول كان السماح للمحتال الداخلي بالتحكم بقراري، فقد جعلني أتردد لسنوات بحجة أني لست مؤهلةً بعد، حتى أني لم أفهم في حينها حجم العمل الذي أحتاجه للوصول إلى مستوى أشعر معه بالثقة التامة لكتابة كود في مشروع غير مألوف (وهي بالمناسبة نقطة ما زلت أسعى تحقيقها حتى اليوم)، زد على ذلك أني استسلمت لفكرةٍ مفادها أن المساهمة في المجتمع مفتوح المصدر هي الطريقة الوحيدة لإثبات جدارتي بصفتي مطور جيد. في النهاية بدأت، وقدمت طلب السحب الأول على أحد المشاريع واسعة النطاق، ولكن انعدام الثقة بالنفس أفسد علي التجربة بأكملها وجعلها أقل إمتاعًا. لا تدع Git يحبط عزيمتك إذا كنت تحاول تعلم المزيد عن Git ووجدت صعوبة بذلك، أو كنت مبتدئًا ويمنعك Git من تقديم مساهمتك الأولى في هذا المجتمع، فلا تقلق لست الوحيد الذي يشعر بذلك لأن Git معقد بالفعل، ولا يُتوقع منك أن تتعلمه على الفور وتفهمه بمجرد إلقاء نظرة عليه فهو يحتاج وقتًا، ولكن ما إن تتعلمه حتى تكتشف فائدته الجمّة وما يقدم من تسهيلات للمطورين ليعملوا معًا على مشروعٍ واحد وفي وقت واحد ومن ثم قيامه بدمج تعديلاتهم الفردية في الكود النهائي. يوجد العديد من المصادر الجيدة لتتعرف على Git و GitHub (وهو الموقع الذي يستضيف الشيفرات البرمجية ويتيح للأشخاص أن يتعاون عليها باستخدام Git)، ويمكنك أن تبدأ من قسم Git على أكاديمية حسوب سيشكل نقطة انطلاق جيدة إضافة إلى أنه متاح باللغة العربية إذ فيه عدة سلاسل ومقالات مفيدة. أنصحك أن تنتقل إلى سلسلة "المساهمة في المشاريع مفتوحة المصدر" وأن تبدأ بقراءة المقال الأول فيها كيفية المساهمة في المشاريع مفتوحة المصدر: ابدأ بتعلم نظام Git فهي سلسلة مفيدة مؤلفة من ستة مقالات، كما تجد بالقسم أيضًا سلسلة عن تعلم Git مؤلفة من سبعة مقالات. ترجمة -وبتصرف- للمقال My first contribution to open source: Impostor Syndrome لصاحبته Galen Corey. اقرأ أيضًا ما هي البرمجيات مفتوحة المصدر؟ تراخيص البرامج مفتوحة المصدر الإشراف على مشاريع البرمجيات مفتوحة المصدر عبر غيت هب GitHub الفرق بين البرمجيات الحرة ومفتوحة المصدر
    1 نقطة
  25. الشير بوينت هو منصّة تشاركيّة تعمل كتطبيق ويب. يمكن لأيّ شركة تستخدم شير بوينت في عملها إنشاء مواقع ويب websites خاصّة بها متاحة للعموم على الإنترنت، أو مخصّصة لموظّفيهما على الإنترانت intranet أو مزيج بينهما. يمكن من خلال أيّ موقع في شيربوينت مشاركة الملفات والصور والمستندات بمختلف أنواعها بين مستخدمي هذا الموقع، والتحكّم بإصداراتها من خلال ميّزة سجل الإصدار Version History التي سنتحدّث عنها لاحقًا في هذا المقال. كما يسمح شير بوينت بالاستغناء عن التعاملات الورقيّة ضمن الشركة، وذلك من خلال مستويات الصلاحيّات التي يوفّرها للمستخدمين، ودعمه مهام سير العمل Workflow الذي يسمح بإجراء موافقات متسلسلة على معاملة أو طلب إجرائي خاص بالشركة. كما تدعم مواقع ويب المُنشأة بواسطة شير بوينت المهام الروتينيّة التي تتمتّع بها أنظمة إدارة المحتوى. سنتناول في هذه السلسلة طريقة تنصيب شير بوينت لاستثماره بالشكل الأمثل. وهي عمليّة ليست بسيطة كعمليّة تنصيب تطبيق عادي. حيث سنمرّ بسلسلة من الإجراءات والعمليّات التي ستجري على أكثر من خادوم لتحقيق هذه المهمّة. تُعتبر هذه السلسلة موجّهة إلى مسؤولي تقنيّة المعلومات الذين يحتاجون إلى تنصيب شير بوينت على الخواديم الخاصّة بشركاتهم. ومن الممكن أن يستفيد من هذه السلسلة أيضًا الأشخاص المهتمّون بشير بوينت والذين لا يمتلكون بنية عتاديّة مناسبة لتصيبه، حيث يمكن استخدام آلات افتراضيّة virtual machines لهذا الغرض مثل VMware (وهو الأفضل برأيي) أو VirtualBox أو Hyper-V (يأتي مع Windows Server 2012 ولكنّه يحتاج إلى تفعيل)، ولكن ينبغي أن يكون الحاسوب الذي سيشغّل هذه الآلات الافتراضيّة ذا مواصفات جيّدة، أنصح بالحدّ الأدنى أن يكون المعالج Intel Core i5 الجيل السادس أو الخامس، والذاكرة 16 GB. يمكن استخدام مواصفات أقل، ولكنّ ربما ستعاني من ضعف الأداء. يُعتبر التطبيق App حجر البناء الأساسي في مواقع شير بوينت. قد يكون التطبيق عبارة عن مكتبة صور أو مكتبة مستندات أو قائمة مهام أو قائمة جهات الاتصال، أو حتى من الممكن أن يكون عبارة عن قائمة قابلة للتخصيص يمكنك بناؤها بالشكل الذي ترغبه (تشبه القائمة المخصّصة إلى حدٍّ كبير بنية جدول في قاعدة بيانات). جميع أنواع التطبيقات الذي ذكرناها قبل قليل هي تطبيقات افتراضية يمكن إضافتها إلى الموقع بعد إنشائه. يمكنك بالطبع إنشاء أكثر من تطبيق من التطبيقات السابقة في موقع شير بوينت بحسب الحاجة. كما أنّه من الممكن الحصول على تطبيقات من مصادر أخرى توفّر المزيد من المزايا، وقد تكون هذه التطبيقات مجّانيّة أو مدفوعة. قسم من المحتويّات الافتراضية لموقع شير بوينت. تطبيقات شير بوينت الأساسيّة سنتحدّث في هذه الفقرة عن عدد من التطبيقات الأساسيّة الافتراضيّة المهمّة في شير بوينت، والتي ستحتاج في الغالب إلى أحدها بصرف النظر عن نوع الموقع الذي ستنشئه. القوائم الافتراضيّة هناك عدّة قوائم من أهمّها: قائمة جهات الاتصال، وقائمة الإعلانات، وقائمة المهام، وقائمة التعقّب issue tracking وغيرها. يمكن من خلال قائمة جهات الاتصال تخزين البيانات الشخصيّة وبيانات الاتصال لأيّ موظّف في الشركة أو لأيّ زبون لها، كما يمكن ربط هذه القائمة مع تطبيقات أخرى مثل Microsoft Outlook وMicrosoft Access للحصول على بيانات موجودة مسبقًا دون الحاجة لإعادة إدخالها. تفيد قائمة الإعلانات في وضع إعلانات مخصّصة لأعضاء الموقع، فعندما نريد الإعلان عن أمر ما يخصّ الشركة، فليس من الضروري إرسال رسائل البريد الإلكتروني إلى الموظّفين، حيث من الممكن وضع إعلان ضمن قائمة الإعلانات ليشاهده الجميع، كما تحتوي هذه القائمة على حقل انتهاء الصلاحيّة للإعلان، وحقل يوضّح المستخدم الذي أنشأ الإعلان وحقل أيضًا للمستخدم الذي عدّله (في حال قم أحد ما بتعديله). بالنسبة لقائمة المهام فيمكن من خلالها إسناد المهام لموظّفي الشركة فيما يتعلّق بإنجاز مهمّة أو مشروع ما. حيث من الممكن إسناد الأولويّة في تنفيذ المهمّة ونسبة الإنجاز المحقّقة لها. أمّا قائمة التعقّب فاستخدامها مفيد في المهام التي تتطلّب المتابعة. المكتبات الافتراضيّة تضمّ عدّة مكتبات مثل مكتبات المستندات والنماذج والصور. بالنسبة لمكتبة المستندات فمن الممكن أن تعتبرها كمجلّد عادي من مجلّدات نظام التشغيل Windows، ولكنّها تتمتّع بمزايا مهمّة. حيث يمكن حماية أي مستند من خلال تحديد صلاحيّات الوصول والتعديل والقراءة لهذا المستند. توجد أيضًا ميزة السحب check-out وميزة الإيداع check-in للمستند. تضمن هاتان الميّزتان أنّ هناك مستخدم واحد فقط يُعدّل المستند في لحظة ما. يمنع ذلك المشاكل التي قد تنجم عن تعديل المستند من قِبَل عدّة مستخدمين بنفس الوقت. ملاحظة تسمح ميزة سجل الإصدار Version History بالاحتفاظ بنسخة كاملة من التعديلات التي أُجريت على أيّ ملف أو مُدخَل مع تحديد المستخدم والتوقيت والتعديل الذي قام به، مع إمكانيّة استعادة أي نسخة قديمة منهما. وهذه الميزة مشتركة بين القوائم والمكتبات مهام سير العمل Workflow يمكن استخدام مهام سير العمل ضمن تطبيقات شير بوينت، وهي تسمح بالتحكّم في آلية العمل ضمن التطبيقات التي نضيفها إلى مواقع شير بوينت. فيمكن على سبيل المثال أن نُرسل بريدًا إلكترونيًّا عند إضافة مُدخل لإحدى القوائم، أو أن نضيف بعض البيانات بشكل تلقائيّ على مُدخلٍ في قائمة أخرى. أي شيء يشبه البرمجة ولكن بدون أن تكون لك خبرة مسبقة بأيّ لغة برمجة، فكل ما تحتاجه هو تطبيق SharePoint Designer الذي يسمح لك بالتعامل مع مهام سير العمل، وتجهيزها ونشرها إلى أيّ موقع ضمن منصّة شير بوينت. كما يسمح لك هذا التطبيق بإنشاء وتعديل أيّ جزء من الموقع، بما فيها صفحات الموقع. يأتي هذا التطبيق بشكل منفصل ويمكن تنصيبه والاستفادة من المزايا التي يوفّرها. من الممكن أيضًا دمج ميّزة الموافقات Approvals مع مهام سير العمل، بحيث يصبح من السهل التحكّم بالعمليّات الإداريّة التي تحدث ضمن شركة ما، وذلك من خلال تجهيز الموافقات لتتوافق مع البنية الهرميّة الإداريّة للشركة. ملاحظة من الممكن أيضًا التحكّم في آلية عمل مواقع شير بوينت بشكل تفصيليّ دقيق من خلال كتابة تطبيقات مخصّصة لشير بوينت باستخدام لغة البرمجة سي شارب C# وتطبيق Visual Studio من مايكروسوفت. يوجد شرح في موقع أكاديميّة حسّوب حول شهادة MCSD – مطوّر حلول باستخدام شير بوينت، وكذلك سلسلة دروس خاصّة بتعليم لغة سي شارب. وضع شير بوينت بالنسبة لعالم الأعمال في الحقيقة لا يمكن مقارنة شير بوينت من حيث عدد المواقع التي تستخدمه مع أنظمة إدارة محتوى أخرى مثل WordPress وJoomla وDrupal. فهذه الأنظمة تتفوّق عليه بسهولة (في الوقت الراهن) من ناحية الاستخدام. إلّا أنّ شير بوينت يتّجه إلى أن يكون مسيطرًا في الشركات الكبيرة، والتي تتطلّب مواقعها حركة مرور كبيرة. مثل هذه الشركات الكبيرة تدفع بالتأكيد رواتب ممتازة! فيما يخص المنطقة العربية، تُعتبر أسواق مجلس التعاون الخليجي نهمةً لمنصّة شير بوينت، وهي ترغب بكلّ تأكيد برفد طواقمها بخبراء في شير بوينت. يمكنك باستطلاع بسيط في بوابات التوظيف الكبيرة التي تغطّي أسواق العمل في الخليج، لترى مدى الطلب عليه. يُصنّف العمل في شير بوينت في عدّة اتجاهات من أهمّها: اتجاه الإدارة والصيانة Administration واتجاه التطوير البرمجي Development والتخصيص Customization، وغيرها من الاتجاهات الأخرى. إصدارات SharePoint النسخة الأحدث من شير بوينت هي SharePoint 2016 لكنّها حديثة جدًّا (عمرها بضعة أسابيع فقط) ولا يبدو أنّ الشركات ستنتقل إليها مباشرةً في المدى القريب، لأنّ الانتقال عمليّة تحتاج إلى تخطيط وتجهيز وليست مجرّد ترقية عاديّة. الإصدار المهيمن حاليًا من شير بوينت هو SharePoint 2013 وهو المستَخدم في أغلب الشركات. يأتي هذا الإصدار بنسختين رئيسيّتين: إصدار SharePoint 2013 Foundation: وهو مجّاني يمكن تحميله من موقع مايكروسوفت. يضم هذا الإصدار المزايا الأساسيّة لشير بوينت. إصدار SharePoint 2013 Server: وهو مدفوع، لكن يمكن تحميله على سبيل التجريب لمدة ستة أشهر. يضم هذا الإصدار المزايا الكاملة لشير بوينت. يُعتبر شير بوينت تطبيقًا نهمًا للعتاد الصلب، ويتطلّب العمل مع شير بوينت وجود خادومين على الأقل، حيث تعود المتطلّبات الفعليّة للعتاد الصلب حسب حجم الشركة. في الحقيقة توفّر شركة مايكروسوفت حلًا جاهزة يتمثّل باستضافة منصّة شير بوينت على السحابة. حيث يتوفّر شير بوينت ضمن خدمة Office 365 السحابيّة. من الممكن للشركات الصغيرة أن تستفيد من هذا الحل الجيّد، وتتخلّص من تكاليف إنشاء وإدارة وشراء التراخيص اللازمة لتشغيل نسخة شير بوينت مخصّصة. أمّا بالنسبة للشركات المتوسّطة والكبيرة فقد يكون من المناسب أكثر اعتماد تشغيل منصة شير بوينت بشكل محلّي على خواديم مخصّصة. ملاحظة سنتناول في هذه السلسلة طريقة تنصيب الإصدار SharePoint 2013 Server. الخلاصة تعرّفنا في هذا الفصل على شير بوينت، ذلك التطبيق المهم الذي دخل عالم الأعمال من أوسع أبوابه. سنتناول تباعًا في هذه السلسلة طريقة تنصيبه خطوة بخطوة مع الشرح المفصّل مدعومًا بالصور، مع نصائح مهمّة ستجعلك مرتاحًا في المستقبل عند البدء باستثمار شير بوينت. ولكن قبل كلّ ذلك سيتناول المقال التالي البنية الهيكليّة لشير بوينت حيث سنتعرّف على الأشكال المحتملة لهذ التطبيق بمميّزاتها ومساوئها أثناء التشغيل في بيئة العمل.
    1 نقطة
×
×
  • أضف...