مجتمع المبرمج العربي ـ قناه @cis2020 Channel on Telegram

مجتمع المبرمج العربي ـ قناه

@cis2020


مجتمع المبرمج العربي للبرمجة والتكنلوجياء
مجتمع تعليمي عربي يهتم بتنمية وتطوير قدرات ومهارات ومعلومات المبرمجين.
الانظمام الى مجموعتنا في الفيس بك عبر الرابط التالي:
https://www.facebook.com/groups/272854271061152/?ref=share

الادارة:
@salahalwly59

مجتمع المبرمج العربي ـ قناه (Arabic)

مجتمع المبرمج العربي ـ قناه هو قناة تلغرام تابعة لمجتمع عربي يهتم بالبرمجة والتكنولوجيا. يعتبر هذا المجتمع التعليمي العربي مركزًا لتنمية وتطوير قدرات ومهارات المبرمجين في الوطن العربي. إذا كنت ترغب في الانضمام والتفاعل مع مجموعة المبرمج العربي على فيسبوك، يمكنك ذلك عبر الرابط التالي: https://www.facebook.com/groups/272854271061152/?ref=share. تدير هذه القناة إدارة متخصصة، تقودها شخصية محترفة ومتميزة في مجال التكنولوجيا، يمكنك التواصل معها من خلال المعرف التالي: @salahalwly59. انضم إلينا اليوم وكن جزءًا من مجتمع المبرمج العربي للارتقاء بمهاراتك ومعرفتك في عالم البرمجة والتكنولوجيا!

مجتمع المبرمج العربي ـ قناه

06 Oct, 19:17


أفضل 5 أنظمة تشغيل في مجال "الاختراق"

🛡️ نـظـام KALI LINUX ؛
كالي لينكس عبارة عن توزيعة Linux مبنية على "ديبيان_Debian"، متخصصة في الأمن والحماية المعلوماتية واختبار الاختراق، هذه التوزيعة هي إعادة بناء كاملة لتوزيعة "باك تراك".

🛡️ نـظـام PARROT OS :
نظام Parrot عبارة عن توزيعة للقرصنة، لديه محرر سهل لتطوير البرامج، يمكن للقراصنة استخدام هذا النظام لإجراء تقييم الضعف واختبار والتحليل الجنائي للكمبيوتر والمزيد.

🛡️ نـظـام BACKBOX :
عبارة عن نظام مفتوح المصدر يوفر اختبار اختراق وإمكانية تقييم الأمان، يوفر هذا النظام أيضاً مجموعة أدوات لتحليل شبكة الأمان في بيئة تكنولوجيا المعلومات.

🛡️ نـظـام BLACKARCH :
بلاك أرتش عبارة عن نظام أساسي مجاني يستند إلى Linux ويحتوي على مجموعة واسعة من الأدوات الخاصة بالأتمتة والجوال والشبكات وما إلى ذلك.. وهو نظام تشغيل مفتوح المصدر تم إنشاؤه خصيصاً للباحثين في مجال الأمن ومختبري الاختراق.

🛡️ نـظـام DRACOS LINUX :
وهو أيضاً نظام تشغيل مفتوح المصدر يوفر اختبار الاختراق، ويحتوي على مجموعة واسعة من الأدوات كتحليل البرامج الضارة وجمع المعلومات وما إلى ذلك.

مجتمع المبرمج العربي ـ قناه

06 Oct, 19:17


بديل أداة Chat Gpt وصل وهيغطي على كل أدوات الذكاء الاصطناعي‼️🔥

لو جربت تستخدمه هتدمنه وهتستغنى عن كل الأدوات التانية

بقالي ساعة بجرب أداة Claude ai كل ما اسأله على سؤال يجاوب إجابات دقيقة وموثوقة، وكمان عندها إمكانية تكتب بحث كامل عن أي موضوع وتكتب أي كود برمجي

جرب الأداة مجانًا من هنا👈
https://www.manjmy.com/2823

مجتمع المبرمج العربي ـ قناه

06 Oct, 19:16


ِ   🔰      مـعـلـومـة

💬 مـــاهــي اســـتـــضـافــة الــويــب وأنـــواعــها؟

لا شك أنك تسمع كثيراً عن الاستضافة أو استضافة الويب أو استضافة المواقع الإلكترونية أو حتى الـ "هـــوســــت"، فَما المقصود في استضافة الويب وما أنواعها المتوفرة في شركات الاستضافة ولماذا نحتاج إلى الاستضافة؟

◩  الإسـتـضـافـة :
الاستضافة تعني استئجار مساحة (جزء) من حاسوب أو سيرفر ذو مواصفات عالية من معالج ومساحة وسرعة اتصال بالإنترنت، وتوفر شركات الاستضافة مثل تلك الحواسيب؛ هذه المساحة تَستخدمها لرفع أو لوضع مواقعك الإلكترونية عليها.

◩  أنـواعـهـا حـسـب الـنـظـام :
◉ اســـــــتـــــضـــــافــــــة Linux :
هي الأكثر شيوعاً واستخداماً وتدعم المواقع التي تعمل بـ PHP وغيرها، وتتميز بمرونة أكبر بسبب شيوع استخدامها وتُستخدم فيها لوحة التحكم cPanel.

◉ اســـــــتـــــضـــــافــــــة Windows :
تستعملها المواقع الحكومية وتعد أغلى سعراً من استضافة Linux، ولوحة التحكم الأساسية فيها هي Plesk.

◩  الــسـعـة الـتـخـزيـنـيـة :
تختلف الاستضافة تبعاً لسعة القرص الصلب، فبعض الاستضافات تتراوح من بعض الميجابايتس إلى الاستضافات "الغير محدودة"، والسعة التخزينية للقرص الصلب هي المساحة التي يتم استضافة ملفات موقعك عليها من صور وسكربت الموقع وملفات الموسيقى والفيديو وغيرها.

◩  الـ  Bandwidth :
الـ Bandwidth هو كمية نقل البيانات بين الخادم المُستضاف عليه موقعك وبين المستخدم شهرياً، وتعتبر من أهم العوامل التي تؤثر في الموقع، فالمواقع الصغيرة تحتاج إلى سعة نقل بيانات صغيرة نسبياً إذا ما قورنت بالمواقع الكبرى التي تحتاج سعات ضخمة.

◩  شـركـات اسـتـضـافـة الـمـواقـع :
🔹    Hostinger
🔹    HostGator
🔹    bluehost

مجتمع المبرمج العربي ـ قناه

20 Sep, 18:04


Today we’re excited to announce the release of TypeScript 5.6!

If you’re not familiar with TypeScript, it’s a language that builds on top of JavaScript by adding syntax for types. Types describe the shapes we expect of our variables, parameters, and functions, and the TypeScript type-checker can help catch issues like typos, missing properties, and bad function calls before we even run our code. Types also power TypeScript’s editor tooling like the auto-completion, code navigation, and refactorings that you might see in editors like Visual Studio and VS Code. In fact, if you write JavaScript in either of those editors, that experience is powered by TypeScript! You can learn more at the TypeScript website. https://www.typescriptlang.org/

مجتمع المبرمج العربي ـ قناه

19 Sep, 19:28


Redux Toolkit simplifies state management in React applications by providing a set of tools and best practices. It reduces boilerplate code, integrates essential middleware, and enhances developer productivity.

مجتمع المبرمج العربي ـ قناه

17 Sep, 17:48


## استعراض مشاريع GitHub بسهولة باستخدام GitHub Box

إذا كنت تبحث عن طريقة سريعة لمراجعة مشاريعك على GitHub دون الحاجة إلى تحميلها على جهازك، فإليك حيلة رائعة! كل ما عليك فعله هو تعديل رابط مستودع GitHub الخاص بك بإضافة كلمة "box" بعد "github"، ليصبح الرابط كالتالي: githubbox.

عند الضغط على "Enter"، سيفتح لك المشروع مباشرةً على موقع CodeSandbox، حيث يتم تثبيت الاعتماديات تلقائيًا ويبدأ تشغيل المشروع.

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

مجتمع المبرمج العربي ـ قناه

02 Sep, 20:01


Redux باختصار هي مكتبة لإدارة حالة التطبيق في ReactJS. اذ تهدف إلى تسهيل إدارة الحالة وتوحيد الطريقة التي يتم بها إجراء تحديثات المكونات واستدعاء البيانات في التطبيق ككل.

تتضمن بعض الأغراض الرئيسية لاستخدام Redux:

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

مجتمع المبرمج العربي ـ قناه

06 Aug, 00:47


JavaScript Web Workers
شايفك بتهرش في دماغك وبتسأل نفسك سؤال مهم
إزاي JavaScript بتشتغل بسنجل thread و Web Workers بتعمل Multi-threading؟
هجاوبك بالتفصيل في الأخر

لو بتدور على طريقة تخلي كود JavaScript بتاعك أسرع وأكثر كفاءة، Web Workers ممكن يكونوا أفضل صديق ليك! النهارده هنتكلم عن مفهوم جميل زي ما يكون عندك superhero Assistant لتطبيقات الويب بتاعتك
Web Workers إيه بقى دول؟
فكر في Web Workers كحاجة بتشتغل في الخلفية، بيعملوا مهام زي الحسابات المعقدة أو معالجة البيانات من غير ما يبطئوا الـ main thread بتاعك. ده معناه إن تطبيق الويب بتاعك يفضل سلس وسريع حتى لما تكون بتتعامل مع مهام تقيلة.
ليه تتعب نفسك مع Web Workers؟
JavaScript
بيشتغل بthread واحد (single-threaded)، يعني بيعمل حاجة واحدة في الوقت الواحد.
لما تشغل مهمة طويلة على الـ main thread، تطبيق الويب بتاعك ممكن يهنج أو ياخد وقت في التحميل، ويخلي المستخدمين يستنوا ويحسوا بالإحباط تخيل تفضل تضغط ع زرار ومفيش حاجة بتحصل !!!
Web Workers
بتيجي تنقذك بإنها تتعامل مع المهام دي على thread مختلف، فالتطبيق بتاعك يفضل مستجيب، والمستخدمين يبقوا مبسوطين من السرعة.
خلينا نشمر إيدينا ونخش ف الكود شوية!
هنقسم الموضوع لخطوات بسيطة علشان تفهم إزاي بيشتغل!
الخطوة الأولي => إنشاء سكريبت الـ Worker
أول حاجة، محتاجين ملف JavaScript منفصل لل workers بتوعنا. نسميه مثلاً worker.js أو أي اسم تفضله!
بص ع الكود في صورة واحد
في الكود ده، بنجهز الـ worker علشان يستقبل الرسائل باستخدام self.onmessage، ويعمل المهام التقيلة (زي حساب رقم Fibonacci)، وبعدين يبعت النتيجة باستخدام postMessage.

ممكن تقولي إستني ي عم هو ف إيه و إيه هو self؟ أو إيه هي postMessage و onmessage؟
Web Workers
بيشتغلوا في global context مختلف، مش الـ window اللي احنا عارفينه
بنسمي الglobal context الخاص ده self!
Web Workers
بيتواصلوا مع الـ main thread باستخدام الأحداث (events).
باستخدام الأحداث، يقدروا يبعتوا ويستقبلوا رسائل أو بيانات. في الكود، onmessage عادة بيستقبل رسائل أو بيانات من الـ main thread،
وpostMessage بيبعت البيانات المعالجة من الـ Web Worker لل main thread

الخطوة التانية إنشاء والتحدث مع الـ Worker
دلوقتي، هنشوف إزاي ننشئ Worker ونبعت رسائل/بيانات ليه من السكريبت الرئيسي بتاعنا ، مستني إيه بص ع الصورة رقم 2
هنا، بننشئ worker جديد، نبعت رسالة ليه باستخدام worker.postMessage
ونستلم النتائج باستخدام worker.onmessage
كمان بنتعامل مع أي أخطاء محتملة باستخدام worker.onerror
طب م دا برضه كلام حلو بس مش كفاية أنا عاوز أشوف سيناريوهات تفيدني واقعية
لو عندك array كبيرة جدا عاوز تعملها sort
خلينا نخلي Web Worker يتعامل مع الموضوع ده بص ع الكود في صورة 3

مثال تاني واقعي أكثر
عندك api بتعملها fecth وبتغيب ؟ هييجي واحد يقولي أنا شغال Asynchronous هقوله ماشي ي حبيبي ده مبيغيرش حقيقة إن fetch بيشتغل على الـ main thread حتى لو استخدمت async/await،
كمثال ع دا بص ع الصورة رقم 4

ال Best Practices عشان تستخدم ال Web Workers
Web Workers
معندهمش وصول مباشر للـ DOM، فخلي مهامهم مركزة.
دايماً ضيف error handling علشان تتجنب المشاكل.
معظمنا بيستخدم JavaScript في المتصفحات وعارفين إنها بتشتغل بسنجل ثريد، بس إزاي Web Workers بتعمل Multi-threading؟
JavaScript
مش بتحدد موديل معين للثريدينج، لكنها بتشتغل بسنجل ثريد في معظم المتصفحات. ده يعني إن الكود بيتنفذ في ثريد واحد، وكل العمليات بتتعمل واحدة واحدة.
معظم المتصفحات القديمة كانت بتشتغل بسنجل ثريد، بس دلوقتي المتصفحات زي Chrome، Firefox، بدأت تستخدم أكتر من ثريد عشان تحسن الأداء.
Web Workers مش جزء من JavaScript نفسها، لكنها ميزة في المتصفحات بنقدر نوصلها من خلال JavaScript.
الWorkers دي بتشتغل في ثريدات منفصلة، وده بيساعد على إننا نعمل عمليات تقيلة من غير ما نبطئ الـ main thread.
المتصفح هو اللي بيتولى إدارة الthreads. لما نعمل Worker، المتصفح بيكريت ثريد جديد ويشغل الكود بتاعه فيه.
الكود اللي بيشتغل في الـ Worker بيبقى منفصل عن الـ main thread، يعني مش بيتأثر بأي عمليات تانية شغالة في نفس الوقت يعني مش بنحتاج نقلق على موضوع الـ Memory model أو الـ concurrent access للمتغيرات.
الإتصال بين الـ main thread والـ Workers بيتم من خلال الرسائل (messages). ده بيسمح للـ Workers إنها تبعت وتستقبل بيانات من غير ما تأثر على الأداء العام.

مجتمع المبرمج العربي ـ قناه

06 Aug, 00:47


الجانب المظلم لـ useState في React

تعال بقي أقولك علي 4 غلطات بشعة بتعملها وانت بتستخدم useState وهتخليك تشد ف شعرك لو لسه مبتدأ

1 - Forgetting to Consider the Previous State
بص كدا ع الكود في صورة 1
لما تشتغل بـ useState في React، لازم تأخد في الاعتبار أحدث حالة للٍstate لما تupdateها . الغلطة دي ممكن تؤدي unexpected behaviors، خصوصًا لما تتعامل مع تحديثات سريعة أو multiple state updates
في الكود اللي صورة 1 => incrementCounter بيحدث العداد بناءً على قيمته الحالية.
ده ممكن يبان بسيط لكنه هيسبب مشاكل
React ممكن تجمع عدة استدعاءات setCounter مع بعض، أو تحديثات حالة تانية ممكن تتداخل، وبالتالي الcounter مش هيتم تحديثه بشكل صحيح كل مرة ، دي ميزة في react إسمها batch
عشان متعملش renders كتير وتحسن البريفورمانس
عشان تتجنب المشكلة دي استخدم ال functional form من setCounter
النسخة دي بتاخد function كـ argument، وReact بتcall function دي بأحدث قيمة للحالة. ده بيضمن إنك دايمًا شغال بأحدث قيمة للstate


const incrementCounter = () => {
setCounter(prevCounter => prevCounter + 1); // بيحدث بشكل صحيح بناءً على أحدث حالة
};
2 - Neglecting State Immutability
في قاعدة مهمة أوي هتتعلمها ف بداية تعلمك ريأكت إسمها don't mutate the state
متلعبش في ال state ي حبيبي بس يا بابا ، إلا من خلال الsetState


const [profile, setProfile] = useState({ name: 'John', age: 30 });

const updateAge = () => {
profile.age = 31; // تغيير الحالة مباشرة
setProfile(profile);
};


الكود ده بيغير object profile مباشرة. التغييرات دي مش بتؤدي لإعادة الـ render ولكن بتحصل مشاكل من ورا حركة زي دي زي إيه ؟
الحالة دي، profile.age هيكون 31، لكن الـ UI هيظل يعرض 30 لأن React مش عارف إن فيه تغيير حصل لإن مفيش rerender حصل
لما بتغير الstate بشكل مباشر، ده بيصعب على React تتبع التغييرات، وده ممكن يؤدي لمشاكل في الأداء لأن React مش قادر يدير الـ render بشكل فعال.
لو فيه أجزاء تانية من الكود معتمدة على الحالة القديمة، التغييرات المفاجئة دي ممكن تؤدي لأخطاء أو تصرفات غريبة في التطبيق.

3: Misunderstanding Asynchronous Updates
تحديثات الstate في React باستخدام useState غير متزامنة (asynchronous). ده بيسبب لخبطة، خصوصًا لما يتم تحديث الحالة بسرعة ورا بعض. إنت كمبرمج ممكن تتوقع إن الحالة تتغير فورًا بعد استدعاء setState، لكن في الواقع، React بتجمع التحديثات دي علشان تحسن الأداء ، الpatching هتكلم عنه بالتفصيل قدام لا تقلق إستناه في مقالة رايقة :(

تعال نشوف مثال بيبين المشكلة دي بص ع الكود ف صورة رقم 2

في المثال ده، عايز يعدل count مرتين. لكن بسبب الpatching ، كل استدعاء لـ setCount بيتم بناءً على نفس الحالة الأولية، وبالتالي count بيزيد مرة واحدة بس.

علشان تتعامل مع الsetStateبشكل صحيح، استخدم ال (functional update) لـ setCount. ده بيضمن إن كل تحديث بيتم بناءً على أحدث حالة

const incrementCount = () => {
setCount(prevCount => prevCount + 1);
setCount(prevCount => prevCount + 1);
// دلوقتي كل تحديث بيتم بناءً على أحدث حالة
};



4- State for Derived Data
استخدام الstate لبيانات ممكن نشتقها من existing state تانية أو من الـ props
بص ع الكود في الصورة ال 3 كدا ، هل إنت شايف ال greeting state ليها لازمة ؟؟
greeting مش لازمة لأننا نقدر نشتقها مباشرة من name.





const GreetingComponent = ({ name }) => {
const greeting = Hello, ${name}; // مشتقة مباشرة من props

return (
<div>{greeting}</div>
);
};

export default GreetingComponent;



استخدام الـ useState هوك في React بشكل فعال مهم جداً لبناء تطبيقات موثوقة وكفء. لما تفهم وتتجنب الأخطاء الشائعة—زي إهمال الـ previous state، الـ state immutability mismanagement، تجاهل الـ asynchronous updates، وتجنب استخدام state مشتقة من الـ derived data—هتقدر تضمن سلوك سلس وقابل للتنبؤ.

مجتمع المبرمج العربي ـ قناه

12 Jul, 19:28


مطورين FrontEnd ..
هذه مستودعات Github repositories رهيبة راح تخليك محترف React🚀 🔥

اخر مستودع خله بالمفضلة لان كل اللي تحتاجه راح تحصله فيه😍

⬇️⬇️
https://x.com/proadev/status/1790059228595417093

https://www.instagram.com/p/C66lf_Prjf5/?img_index=1

مجتمع المبرمج العربي ـ قناه

02 Jul, 20:23


هذا الموقع يفيدك لو بتدرب على إنشاء الAPI يوفر لك قائمة بالمستخدمين
بيانات وهمية .. تقدر تستخدمها وتتعلم على التعامل مع الapi من خلالها

RANDOM USER GENERATOR 

https://randomuser.me/

مجتمع المبرمج العربي ـ قناه

23 May, 20:55


إن التقنية التي تتضمنها لإعراض طلبات HTTP/HTTPS والاستجابات بين العميل (مثل متصفح الويب أو تطبيق الهاتف المحمول) وخادم ، باستخدام أداة مثل مجموعة Burp Suite. تُستخدم هذه التقنية بشكل شائع في اختبار سلامة تطبيق الويب لتحليل واختبار سلوك تطبيقات الويب وأمانه. إليك تعريف وشرح أكثر تفصيلاً:

### تعريف:
http/https اعتراض ومعالجة:
تتضمن هذه التقنية التقاط وتعديل طلبات HTTP/HTTPS من قبل العميل إلى خادم والمسؤوليات المقابلة التي يشعر بها الخادم إلى العميل. تُستخدم أدوات مثل Suite Burp لتكون بمثابة وكيل ، واعتراض حركة المرور هذه لأغراض التحليل والتعديل. يتيح ذلك لمختبري الأمن فهم كيفية نقل البيانات ومعالجتها ، وتحديد الضعف ، واختبار متانة آليات أمان تطبيق الويب.

### شرح مفصل:

### العملية الخطوة:

1. الإعداد والتكوين:
- قم بتثبيت جناح التجشؤ: قم بتنزيل وتثبيت مجموعة التجشؤ على جهاز الكمبيوتر الخاص بك.
- تكوين إعدادات الوكيل: قم بتكوين متصفح الويب أو الجهاز المحمول إلى حركة المرور عبر وكيل Burp Suite. يتضمن هذا بشكل عام تعيين إعدادات الوكيل على عنوان IP والمنفذ حيث يستمع مجموعة التجشؤ (على سبيل المثال ، 127.0.1: 8080`).
- قم بتثبيت شهادة CA Burp: لاعتراض حركة مرور HTTPS ، شهادة CA الخاصة بكالوريوس التثبيت على جهازك. يتيح هذا تجشير تجشير فك تشفير حركة مرور HTTPS من خلال أداء هجوم رجل في الوسط (MITM) بطريقة خاضعة للرقابة والأخلاقية.

2. اعتراض حركة المرور:
- ابدأ اعتراض: تمكين ميزة التقاطع في مجموعة التجشؤ. يتيح لك ذلك التقاط وعرض جميع طلبات ومسؤوليات HTTP/HTTPS بين العميل والخادم.
- مشغل حركة مرور: إجراء إجراءات في تطبيق الويب (على سبيل المثال ، تسجيل الدخول ، إرسال نموذج) لإنشاء طلبات HTTP/HTTPS.

3. تحليل الطلبات والاستجابات:
- عرض الطلبات: يفحص تفاصيل طلبات HTTP المعتادة ، وتشمل الرؤوس والمعلمات وملفات تعريف الارتباط والجسم.
- عرض الردود: يفحص تفاصيل مسؤوليات HTTP المعتادة ، والرؤوس المتضمنة ، ورموز الحالة ، ومحتوى الجسم.

4. معالجة حركة المرور:
- تعديل الطلبات: تحرير طلب HTTP المعترض قبل أن يتم رائحته إلى الخادم. على سبيل المثال ، قم بتغيير قيم المعلمة ، أو تعديل الرؤوس ، أو تغيير جسم ال