Home وجدي عصام

وجدي عصام

مهندس برمجيات مهتم بعلوم الحاسب وبالأخص مجال الخوارزميات وهندسة البرمجيات وحماية التطبيقات،

البرمجيات الخبيثة والفيروسات Malicious Software

مقدمه في نظرية التكاثر الذاتي Self-Replication  : منذ بدايات القرن ال20 وحتى تاريخ هذه اللحظه وما زال البشر يقوموا بمحاولة بناء جهاز قادر على التفكير وحل المشاكل مثل الإنسان ، وبغض النظر عن تسمية هذا الجهاز سواء بالحاسب Computer أو بالإنسان الألى Robotics فالمحاولات كانت جارية منذ القدم. فأول محاولة كانت لبناء جهاز universal machine […]

شرح ال Single Responsibility Principle

مفهوم ال Single Responsibility Principle واختصاراً SRP هو من أهم المفاهيم في أساسيات تصميم البرمجيات SOLID، وبنى هذا المفهوم اعتماداً على مفاهيم ال Coupling وال Cohesion وال Separation of Concerns والتي سبق أن تحدثنا عنها سابقاً هنا ماذا تعرف عن ال Coupling وال Cohesion في تصميم البرمجيات؟ ما هو ال SRP ينص هذا المفهوم على أنه […]

مقدمة لل SOLID

ال SOLID هي اختصار لمجموعه من العادات والتي إن قمت باتباعها سوف تحصل على كود أكثر قابلية للصيانة وأسهل في التغيير والتكيف مع متطلبات المشروع المتغيرة Adaptive Code. وليس كما قد يدل الاسم SOLID أو الصورة التي بالمقالة، على أنه شيء يجعل الكود جامد بل بالعكس تماماً، فهذه الأفكار تدور حول كيف يمكن أن يكون الكود […]

ماذا تعرف عن ال Coupling وال Cohesion في تصميم البرمجيات ؟

كثيراً ما نسمع عن هذا المصطلحان وأنه يجب أن تسعى الى أن يكون الكود قليل التداخل Low Coupling وأكثر تجانساً High Cohesion بدون توضيح مناسب لمعناها، في هذه المقالة سوف نوضح هذه المصطلحات والفرق بينهم بشكل مبسط ونوضح طرق مختلفة لتحقيق ال loose coupling عن طريق طرق التصميم  Design Patterns المختلفة. (1384) About وجدي عصاممهندس […]

ما هي ال Scalability وكيف يتحمل الموقع ملايين الزوار ؟

مقدمة موضوع ال Scalability يعتبر من أهم المواضيع بالنسبة لمطورين الويب خصوصاً هذه الأيام مع تزايد عدد البيانات والمستخدمين سواء في التخزين أو المعالجة أو حتى في الارسال، والطلب على مطورين الويب الذي لديهم خبرة في ال Scalability أصبح اعلى بكثير من مبرمجي الويب بدون أي معرفة أو خبرة بهذا الموضوع. وبالرغم من تزايد الطلب […]

حديث حول ال Internet Explorer Compatibility View

هذه المرة حديثنا حول متصفح الIE ، فاذا كنت مطور ويب تقوم بصيانة مواقع تعمل على نسخ قديمة من ال IE ، أو تقوم بتطوير مواقع حديثه Modern Web (باستخدام CSS 3/JQuery) ولكنها سوف تعمل ك Intranet Web Applications (لاحظ انترانت وليس انترنت) بمعنى سوف تعمل ضمن الشبكة الداخلية Local Networks في الشركات Enterprise  والمؤسسات، فهذا الموضوع سوف يهمك. […]

خوارزميات Error Correction Codes

هذه الأيام نحن معتادون على الوصول لأجهزة الحاسب كلما كنا في حاجة لها، الأمر لم يكن كذلك بالنسبة ل Richard Hamming الباحث الذي كان يعمل في معامل بل في 1940م، حيث أن جهاز الشركة الذي يحتاجه للعمل يستخدم ايضاً بواسطة أقسام أخرى في الشركة، ولا يستطيع الوصول له الا في عطل اخر الأسبوع Weekends، يمكنك […]

ما هو ال Hashing ولماذا يجب أن لا يستخدم كوسيلة تشفير Encryption ؟

كثير من الأحيان نجد من يستخدم ال Hashing algorithms كطريقة للتشفير Encyrption وهذا الأمر ليس صحيح (مثلاً استخدام MD5 أو SHA لتشفير البيانات، أو حتى فهم فكرة الHashing على أنها تشفير للبيانات) ، فالتشفير يحتاج مفتاح key أو باسورد معين أو حتى بالطرق الكلاسيكية القديمة سوف تحتاج لطريقة معينة (هذه هي الsecret)  حتى تسترجع البيانات […]

حل مشكلة اللغة العربية في النوت باد (كيف يحلها المبرمج)

السلام عليكم ورحمة الله وبركاته إن الحديث عن موضوع ال Unicode وال Encoding يعتبر من الأساسيات الضرورية Fundamental Concepts لأي مبرمج ومهندس برمجيات، واكمالاً لسلسه (أساسيات يجب أن يعرفها اي مبرمج) فقد طرحنا سؤالاً عن مشكلة عامه نراها كثيراً بشكل دوري الا وهي أن النص العربي لا يظهر بشكل مقروء عند فتحه في ال Notepad […]

انطلاقه مشروع اعداد كتاب جافا العربي

هل تود المشاركة في اعداد كتاب البرمجة بلغه الجافا العربي ؟ يوماً بعد يوم نرى الكثير من المبتدئين في البرمجة يواجهوا الكثير من المصاعب في تعلم الأساسيات والانتقال للمراحل المتقدمة التي تعطيهم الثقة بأنهم في الطريق الصحيح، وعندما ينتقل ذلك المبتدئ الى مرحلة جيدة بعد عناء الشهور في التعلم وبجهد شاق سوف يبدأ بالعمل والانشغال […]

خوارزميات غيرت العالم ( خوازرمية الرانك Page Rank وكيف تعمل)

خوازرمية  الرانك Page Rank وكيف تعمل أحد أهم العوامل التي ساهمت لصعود محرك البحث Google على حساب المحركات الآخرى القديمة مثل AltaVista و Lycos هو في استخدام خوارزمية ال Page Rank (على الرغم من أن Google ظهرت بعد أربع سنوات فقط من ظهور تلك المحركات في 1998، ولكنها استطاعت في زمن وجيز اجتيازهم حتى أن […]

خوارزميات غيرت العالم (محركات البحث وكيف يستخرج النتائج المطابقة)

شرح محركات البحث وكيف يستخرج النتائج المطابقة جميعنا نستخدم محركات البحث عشرات المرات في اليوم الواحد، وقد نضجر في حال لم نستطيع الحصول على ما نريد في أول ثواني بعد عملية البحث، ولكن هل تسائلت يوماً كيف يعمل هذا المحرك وكيف يستخرج النتائج المطابقة التي تريدها؟ هل تسائلت كيف يمكن أن يرتب محرك البحث تلك النتائج بحيث يظهر […]

نظرة سريعة حول Lucene

العديد من البرامج التي نستخدمها بشكل يومي تستخدم خوارزميات سريعة في البحث قد لا ندري عنها، فبدئاً من محرك البحث في على الويب Google أو MSN Search والتي تخرج لك النتائج في غضون ثانية واحدة وأيضا برامج البحث في نظام التشغيل لديك Desktop Search Engine والتي تبحث في الملفات الموجودة لديك على النظام وتخرج لك […]

جافا دائماً Passing by Value

من المفاهيم الأساسية في مفهوم الدوال Functions/Methods في لغات البرمجة هو تمرير الوسائط Parameter Passing ، وبشكل عام هناك طريقتين للتمرير المعاملات الأولى هي التمرير بالقيمة Pass by Value والثانية هي Pass by Reference  . عند استخدام النوع الأول Pass by Value سوف يتم نسخ القيمة من المتغير أو الكائن المرسل الى المعامل الموجود في […]

منع تشغيل أكثر من نسخه من برنامجك

في بعض الأحيان قد نجبر المستخدم على عدم فتح أكثر من نسخه من البرنامج ، وخاصه في البرامج التي تتصل مع قاعده البيانات والتي لا تقوم بعمل Commit الا مثلا عند الخروج من البرنامج أو أي برنامج أخر مثلا مثل برامج المنبهات والتي تعمل كل مده معينه .. أو لأي سبب أخر يريده المبرمج. ولأن […]

تحليل الفايروس Perlovga وكتابة المضاد للفايروس

في هذا الموضوع سوف نتحدث بشكل عملي على تحليل أحد الفايروسات الحقيقيةو هو فايروس Perlovga كما يسمية مضاد Mcafee وهناك أسماء أخرى لهذا الفايروس مثل TROJ_PERLOVGA.A (من تسمية شركة Trend Micro) ، باستخدام اداوت التحليل ومن ثم نتعلم كيف يتم القضاء عليها بواسطة برنامج بسي++ ،  والقائمه التالية هي الأسماء الأخرى لهذا الفايروس Aliases من مضادات […]

تحليل البرامج الخبيثة Malware Analysis

تتحدث هذه المقالة عن موضوع تحليل البرامج الخبيثة وأهمية ذلك المجال لمختصي أمن المعلومات وبشكل عام لأقسام أمن المعلومات في المنشآت المختلفة، ثم تتدرج المقالة في الحديث عن طرق تحليل هذه البرامج الخبيثة لمعرفة ما تقوم به في نظام المستخدم بدون علمه وتتناول الأدوات الأساسية التي يمكن لأي فرد الدخول والبدء في مجال تحليل الفيروسات. […]

برمجة التطبيقات الموزعه RMI بجافا

بسم الله الرحمن الرحيم . التطبيقات الشبكيه عاده تكون لنوعين من البرامج: الأول يهتم بكيفيه تبادل الملفات والبيانات بين الClient والـ Server ويتم التعامل مع هذا النوع باستخدام بروتكولات FTP,SMTP,HTTP وغيرها من البروتكولات. النوع الثاني من التطبيقات يهتم بكيفيه تشغيل برنامج أو داله في الجهاز الأخر مثل Telnet و Remote Procedure Call أختصارا RPC . […]

التعامل مع JList في Swing

سنتناول في هذا الموضوع لمحة بسيطة عن استخدام الJList وعمل Extending لها لكي تتناسب مع حاجة المستخدم ،، والJList وكغيرها من الSwing Component مبنية على مفهوم الModel-View-Controller وبالتالي اذا كنت تريد تغيير الObject الموجود داخل الComponent سوف تتعامل مع الModel ، واذا أردت تغيير طريقة العرض بالشكل الذي تريدها سوف تتعامل مع الView ، وهذه […]

خوارزميات مطابقة النصوص Pattern Matching Algorithm

موضوع مطابقة النصوص أو البحث في النصوص من المواضيع المهمه في مجال الخوارزميات ، حيث الهدف هو البحث عن نص ما سوف نطلق عليه Pattern داخل مجموعه كبيره من النصوص Text ـ ويمكن أن يكون البحث عن النمط بالضبط exact او عن أي نمط قريب للنمط المراد البحث عنه ، وبما أن خوارزميات البحث المتسلسل […]