أرشيف التصنيف: Developer

الاختراق مابين الواقع والخيال

قد نعتقد أن إختراق الأجهزة والأنظمة والمنظومات بالسهولة التي تظهرها الأفلام الأمريكية،بحيث يجلس المخترق على كيبورد وأمامه شاشة، ويبدأ في إدخال الأكواد والنقر على لوحة المفاتيح بحيث يستطيع إختراق نظام عسكري شديد الأمنية في أقل من دقيقة.
والاختراق “أو التهديدات الأمنية الإلكترونية” للمواقع تنقسم إلى ثلاث أقسام كما يلي :

1. إيقاف الخدمة، كما يحدث في هجمات DDOS وهي كثرة الطلبات بحيث تسبب إيقاف للموقع أو الخدمة، ولعل هذه الهجمات زادت حدتها مع إنتشار أجهزة IOT والعداوات لبعض القوميات والأديان
2. تسريب البيانات، وهو كما يحدث عند تسريب كمية كبيرة من البيانات السرية الحساسة لموقع ما، قد يكون شركة أو مؤسسة، من بيانات الزبائن أو الموظفين وكل بياناتهم الشخصية، قد تكون لغرض السرقة أو الاستفادة منها أو بيعها
3. ضخ مجموعة من المعلومات والأخبار في موقع إخباري، بحيث يظهر وكأن هذه الأخبار صادرة عن الموقع الرسمي نفسه، وهو كما حدث عند اختراق قنوات الأخبار القطرية ونشر أخبار كأنها صادرة عنها

والاختراق كما قلت لايأتي بسهولة، فيستلزم قبله أن يتم مراقبة مدير تقنية المعلومات في الجهة المراد اختراقها ومعرفة كافة بياناته الشخصية “لمحاولة معرفة كلمات السر الخاصة به” ومعرفة البرمجيات ونظم التشغيل التي يستخدمها وأنظمة قواعد البيانات من جهة “لمعرفة ثغرات هذه الانظمه” ، وأنواع الأجهزة التي يقوم بتشغيلها مثل السيرفرات والراوترات ومعرفة ثغراتها.
كما أن الهجمات المركزة تحتاج إلى معرفة معلومات أكثر وفي الناحية الإجتماعية، للوصول إلى نقاط ضعف الشبكة “أو القائمون على الشبكة” المراد إختراقها.

Advertisements

فرق تسد

image

divide and conquer
بما معناه “فرق تسد” وفي قول أخر “فرق تنتصر”، حكمة من الحياة يستخدمها المبرمجون لحل المشاكل البرمجية بتقسيم المشكلة الكبيرة ” في نظرهم ” إلى مجموعة من المشاكل الأصغر حجما، وحل هذه المشاكل، وكلما أستصعبت المشكلة يتم تقسيمها، وفي النهاية يتم تجميع وربط الحلول الناتجة للوصول للحل المثالي النهائي

Project Manager

مشروع برنامج لإدارة المشاريع

Project Manager

أعكف حاليا علي دراسة وتحليل نظام (مصغر) لإدارة المشاريع، لبرمجته ومن تم بيعه لمن يرغب، بالطبع النظام الذي أنوي برمجته ليس ضخما ( مثل برنامج  Microsoft Project) بل هو نظام بسيط ومخصص لبعض الجهات العامة او الخاصة التي ترغب بالحصول علي برنامج يقوم بتحليل كل عناصر ووحدات المشروع وبالتالي استخراج التقارير المطلوبة بأقل مجهود وفي أسرع وقت (نوع من الميكنة)، والبرنامج الذي أخطط له مبدئيا يجب ان يحقق الأهداف الاتية: استمر في القراءة

عنق الزجاجة

bottleneckيعتبر الكثير من المبرمجين مفهوم عنق الزجاجة هي تلك المرحلة من البرنامج (برامج التعامل مع قواعد البيانات) التي يصاب بها البرنامج بالبطئ لبضع لحظات وقد يتوقف في حالات نادرة، ففي العادة يعتمد البرنامج في سرعة تنفيذه علي عاملين هما :

1. طريقة كتابة كود البرنامج (Source Code) أو (Software) وتعتمد علي خبرة المبرمج العملية في كتابة كود خالي من الأخطاء المنطقية وبإتباع لوغاريتمات سريعة وذكية.

2. العامل الأخر هو مكونات الجهاز (PC, Tablet, iPad, iPhone, iPod, Smart Mobile…) العتادية (Hardware) من حيث توفر كمية كافية من الذاكرة وسرعة معالجة تستطيع معالجة البرنامج بطريقة ترضي المستخدم النهائي.

بالإضافة إلي هذين العاملين (Hardware and Software) يوجد العامل المهم والذي لايمكن تجاهله في حالة ان البرنامج يقوم بالتعامل مع بيانات مخزنة مسبقا في قاعدة البيانات او يقوم بتخزينها. استمر في القراءة

Database: Access or SQL Server

databases

من أهم الأسألة التي تحير أغلب المبرمجين بشكل عام والمبرمجين بتقنيات مايكروسوفت بشكل خاص عند التخطيط لبرمجة منظومة ما لسطح المكتب (Windows Application) معتمدة علي قاعدة بيانات هو: هل أستخدم قاعدة بيانات اكسس نظرا لسهولتها وقابليتها للحمل (Portability) أو أستخدم نظام قواعد SQL Server بسبب قدرته علي التعامل مع كم ضخم من البيانات وعدد كبير من المستخدمين!

الجواب ببساطة يعتمد علي طبيعة البرنامج من حيث عدد المستخدمين وخبرتهم في مجال تقنية المعلومات وكمية البيانات المراد معالجتها وتخزينها ،ولنبدأ أولا بأخذ نبذة مبسطة عن كل نوع منهم: استمر في القراءة

أرشفة الكود المصدري للمبرمجين

image_thumb.png

عمليات النسخ الإحتياطي للبيانات المهمة تأرق بال المسؤلين عن تقنية المعلومات في أي مؤسسة فما بالك لو كانت هذه البيانات تخصك أو تخص أحد عملاءك، والأخطر لو كنت مبرمجاً ولديك أكواد لبرامجك التي تتغير كل يوم، بل كل مرة تقوم فيها بزيارة هذه الأكواد وتقوم بتغيير بعض الأوامر البرمجية، حيث تزداد عندك النسخ من نفس البرنامج، فماذا تفعل لو كنت مبرمجاً بالفيجوال ستوديو وتقوم بتطوير بعض البرامج وتسلمها للعمل، وفي اليوم التاني تقوم بتغيير وظيفة في البرنامج تم يقول لك العميل انها لم تعجبه ويرجوك ارجاع الوظيفة كما كانت من قبل، لكن الكود السابق ليس موجوداً لديك؟

(1) أستخدم في البرمجة نظام Visual Studio 2010 ولحل هذه المشكلة أقوم بترتيب الحلول البرمجية في دليل واحد ثم أستخدم برنامج (CleanProject) وهو إضافة برمجية تقوم بضغط الدليل الذي يحتوي على المشروع الخاص بك الى ملف واحد مضغوط بصيغة (ZIP) بعض التخلص من الاضافات الغير مفيدة بحيث يكون حجم الملف الناتج صغير جداً، وماعيلك الا الضغط بالزر الايمن بالفأرة على الدليل وتشغيل البرنامج.

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

(2) لحل هذه المشكلة قمت بتصميم برنامج (مجاني) تحت إسم (GetDateTime) يقوم المستخدم بإختيار الملف الناتج من عملية الضغط في الخطوة (1) ويقوم البرنامج بتغيير اسم الملف الى اسم جديد عبارة عن الاسم الأول + التاريخ + الوقت، الذين تم فيهما تكوين البرنامج.

مثال : اسم الملف المضغوط (SaleSystem.zip)  ويكون الإسم الناتج من العملية هو (.zip[20130421062640]SaleSystem) وبالتالي فكل ملف يحوي الكودى المصدري لبرنامجك حتى التاريخ والوقت المسجل على اسم الملف المضغوط، وبالتالي فالملفات بهذه الطريقة سهلة الأرشفة والتخزين وامكانية الرجوع الى اي اصدار أمر بالغ السهولة.

Install Android Studio on WindowsXP 32Bit

قامت Google في مؤتمرها الأخير بالكشف عن بيئة البرمجة Android Studio IDE الخاصة ببرمجة التطبيقات لنظام التطبيق Android بما يشمله من هواتف وأجهزة لوحية، لتركيب البرنامج يجب أولاً تحميل برنامج التشغيل تحت نظام الوندوز 32بت (يمكن الحصول على ملفات البرنامج الخاص ببيئات أنظمة التشغيل الأخرى من الموقع)، وكذلك بيئة JAVA JDK، ببساطة البرامج المطلوبة هي:

  1. Android Studio IDE (Windows 32Bit)
  2. Java JDK 1.7 (Windows 32Bit)

بعد تحميل هذه البرامج قم بتركيب برنامج Java JDK أولاً، وبعد ذلك قم بتركيب برنامج Android Studio IDE، وبعد ذلك يلزمك القيام بخطوة أخيرة وهي:

  1. إذهب إلى My Computer ثم أضغط على Properties
  2. أضغط على Advanced ثم Environment Variables
  3. في خانة System Variables قم بإضافة متغير جديد تحت إسم JAVA_HOME ويحمل القيمة C:Program FilesJavajdk1.7.0_21  (وهو نفس مكان تركيب برنامج الــJava JDK)

من المفترض انه بعد القيام بهذه الخطوات أن يعمل البرنامج لديك، حظ طيب للمبرمجين.

المصدر