الأحد، 30 مايو، 2010

Steve Ballmer Keynoting WWDC 10

 

السلام عليكم

image

مقالي اليوم عن اشاعة ترددت حديثا

هل صحيح ماسمعناه

ستيف بالمر CEO لشركة مايكروسوفت سيكون موجود في مؤتمر البرمجين الخاص بشركة Apple لهذا العام 2010 وفي الKeynote !!!!

image

المضحك هو الاشاعة التالية تم تخصيص 7 دقائق فقط له في الكي نوت

 

ياترى مالسر في حضوره هذا المؤتمر

 

الشائعات تقول بانه سيقوم بعرض التحديث الخاص بالاصدارة الحديثة من فيجوال ستوديو 2010 حيث انه ستقوم بدعم الايفون والايباد

image image

اي بانه سيمكنك كتابة برامج تعمل على IPHONE و IPAD

هل ياترى ممكن هذا الكلام؟

 

بصراحة انا اتمنى جدا ان يحدث هذا الكلام وهو حلم لطالما تمنيت ان يصبح حقيقة

 

اذن هل سنرى مصافحة ستيف جوبز لستيف بالمر في هذا المؤتمر

image image

 

الايام ستبين كل شيء

انتظرو المؤتمر يوم 7-6 ان شاء الله

الجمعة، 21 مايو، 2010

Microsoft Give XBOX for a simple Game

السلام عليكم

 

مايكروسوفت مصر تقدم لكم اسبوعيا جهاز اكس بوكس للفائز الاول في لعبتها البسيطة

image

طبعا اللعبة معروفة جدا

 

هو انك تمسك بالماوس على الرمز اللي في الوسط اللي يمثل IE8 وتحركه بحيث انه مايصدم بالرموز الموجودة هنا وعليك البقاء لاطول فترة ممكنة

وكل ثانية تحسب لك نقطة والفائز اسبوعيا يحصل على جهاز اكس بوكس

الشروط

1-انترنت اكسبلورار 8

2-Silverlight

وهو مماثل للفلاش ولكنه خاص بمايكروسوفت حمله من هنا

تذكر اللعبة لاتعمل الا بوجود Silverlight

image

image

 

للتسجيل من هنا

 

نتمنى لكم التوفيق

الخميس، 20 مايو، 2010

Code of the Week:Run an External Source

السلام عليكم

في المقالات السابقة من هذه السلسلة Code of the Week

قمنا بالحديث عن Random Choice وكيفية عمل القرعة

كود هذا الاسبوع بسيط جدا ومفيد

وهي كيفية تشغيل برنامج خارجي

سواء كان برنامج بعينه مثل الفايرفوكس

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

الكود هو

image

فكرة بسيطة جدا وسهلة وتحل كثير من المشاكل

تحياتي

الثلاثاء، 18 مايو، 2010

Visual Studio 2010 Edition Comparison

السلام عليكم

 

في الاصدارات السابقة من الفيجوال ستوديو كان الموضوع يقتصر على النسخ

Standard

Professional

Team System

image

لكن مع سلسلة عائلة 2010 تغير الوضع فاصبح هناك

 

Professional

Premium

Ultimate

image

تماشيا مع الاسلوب السائد مع عائلة منتجات مايكروسوفت المختلفة كويندوز 7 واوفيس 2010 حتى وان اختلفت المسميات

image

image

السؤال الان ماهو الفرق حقيقة؟ والاجابة على هذا السؤال في الصورة التالية

image

تحياتي

الأحد، 16 مايو، 2010

How To Change Default Language In Visual Studio

 

السلام عليكم

 

موضوع اعجبني في احدى المدونات آثرت ان انقله لكم

 

لقراءة المقال الاصلية من هنا

image

I've just installed Clean version of Visual Studio 2010 Ultimate and by mistake I choose my default language as Visual Basic.

So each time I'm starting a new project the default language is Visual Basic and I need to waste couple of expensive seconds to choose C# under other languages.

So here is how you change the default language in Visual Studio to the language you want.

How To:

1. Open Visual Studio, Tools and Click "Import and Export Settings…"

image

A wizard appears and choose the last option - "Reset all Settings"

image

Choose the right language for you and hit next.

image

Enjoy.

الجمعة، 14 مايو، 2010

Office and Sharepoint 2010 Launch Event

السلام عليكم ورحمة الله وبركاته

 

12052010091

قامت فروع مايكروسوفت في انحاء متفرقة من العالم يوم امس بالاحتفال لحظة اعلان اطلاق منتجات مايكروسوفت الجديدة

Office 2010

Sharepoint 2010

Visio 2010

Project 2010

 

ومن ضمن هذه الفروع فرع مايكروسوفت مصر في القرية الذكية

من الساعة الرابعة الى الساعة السابعة

12052010097

12052010099

12052010095

 

 

 

 

كان حدثا رائعا جدا قام بعمله

Egypt Sharepoint User Group

image

كل من

أ/أيمن الحطاب

أ/محمد يحي

أ/رشدي خورشيد

وغيرهم بصراحة لايحضرني اسمائهم ولكن كان الحدث مثيرا جدا

 

مجمل الحديث كان عن الSharepoint 2010 وما فيه من مزايا جديدة وعن ارتباطه بVS2010 من خلال الدعم الكامل له في الاصدارة 2010 من الفيجوال ستوديو

 

تم الحديث عن احدث خاصية في Excel 2010 وهي ماتتعلق بالPower pivot وعن كيفية ربطها بالSharepoint

 

تم الحديث عن Office Web App

 

وتم عرض Keynote للبث المباشر لفعاليات Launch Event المقامة في امريكا

12052010092

12052010093

تم توزيع الجوائز في كل Session والتي كانت مقدمة من شركة Ave Point

image

وهي عبارة عن

Windows 7 Ultimate

14052010105

Microsoft Mouse

image

 

 

 

 

 

طبعا اكيد مش نفس هالماوس لكن الفكرة انه ماوس من شركة مايكروسوفت :)

 

تحياتي

الخميس، 13 مايو، 2010

Code of the Week:Random Choice 2

السلام عليكم

 

انتهينا في الفقرة السابقة من كتابة برنامج بسيط يتيح لنا اجراء قرعة لعدة ارقام ويظهر الرقم الذي اختاره ويعرضها على الشاشة

 

ثم توقفنا عند السؤال التالي

2-طلب منا تصميم برنامج لعمل قرعة للفائزين في احدى المسابقات بحيث يقوم بعرض قرعة باسمائهم ويختار اسما معينا

كيف نقوم بذلك؟

 

هنا الجواب باذن الله تعالى

 

قم بتشغيل المشروع السابق وقم باضافة فورم جديد ولنقم بتسميته frmWinners

 

هذه هي الادوات التي نحتاج اليها  بالاضافة الى اداة المؤقت او Timer

image

 

Label>>>>>lblWinner

Button>>>>>btnChoose

Timer>>>>>tmrLuckyGuest

Textbox>>>>txtMyChoose

combobox>>>>>cboWinners

 

سنعرف فائدة كل من مربع النص ومربع القائمة لاحقا

 

اما الان فهناك حلان

اما ان يكون مربع النص ومربع القائمة خلف الزر  او ان يكونا في اي مكان وتكون الخاصية

visible=false

وذلك لاننا لانريد اظهارها للمستخدم

image

وبالتالي هذا الشكل النهائي

 

نفترض ان الاسماء عندك جاهزة وكل ماعلى المستخدم القيام به هو اجراء القرعة

اذن هذا ماسنقوم به

1-قم بادخال الاسماء في مربع القائمة مستخدما الخاصية Items

image

2-سنقوم الان بادخال الكود اللازم طبعا خصائص المؤقت مثل المشروع السابق

الان سنقوم بالجزء المفضل الا وهو كتابة الكود ولكن قبل كتابة الكود سنقوم ببعض التغييرات للاداة tmrLuckyGuest

قم بتغيير الخاصية interval ألى 50 وهنا الرقم يحدد سرعة القرعة حيث اننا نريد عرض الارقام عند اجراء القرعة وهي تتغير بشكل سريع فالسرعة هنا نحددها من خلال هذه الخاصية

نقوم بتغيير الخاصية Enabled الى False وهذه نقطة مهمة جدا حيث انها تقوم بايقاف المؤقت حتى يتم تشغيله بواسطتنا او بواسطة المستخدم

نقوم بادخال الكود الخاص بالزر

Timer1.Enabled = True
i = 0

 

نفس المثال السابق ولا يحتاج الى شرح

نقوم الان بادخال كود المؤقت

image

Dim m As Boolean = False
   Dim i As Integer = 0
   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       i += 1
       Dim s As Integer
       Dim si As New Random
       s = si.Next(0, ComboBox1.Items.Count - 1)
       Label1.Text = ComboBox1.Items(s)
       If i = 80 Then
           Try
               Label1.Text = ComboBox1.Items(s)
           Catch ex As Exception
           End Try
           Timer1.Enabled = False
       End If
   End Sub

لاحظ باننا في هذا المثال اضفنا متغير جديد من نوع boolean وذلك لسبب سأقوم بتوضيحه لاحقا

وعرفنا المتغير من نوع integer تماما مثل المشرو السابق

في حدث المؤقت

تقريبا مثل المشروع السابق حيث اضفنا القيمة 1 الى المتغير i في اشارة الى عدد المرات التي تم تنفيذ الكود

وهنا الجديد قمنا بتعريف متغير s من نوع integer حتى يتنسى لنا استخدامه في مربع القائمة

قمنا بتعريف متغير من نوع random حتى يقوم باختيار رقم عشوائي مثل المشروع السابقة

وهنا قمنا باسناد الرقم العشوائي الى المتغير s مع ملاحظة مايلي

قمنا بتحديد اصغر رقم 0 واكبر رقم ComboBox1.Items.Count – 1

ولكن لماذا

الفكرة هنا باننا سنقوم باختيار رقم عشوائي يمثل عدد الفائزين وعدد الفائزين حقيقة هو عدد العناصر الموجودة في مربع القائمة وجيث ان اول عنصر في القائمة يمثل بالرقم 0 وليس 1 فاذن يفترض بان يكون اكبر قيمة هي عدد العناصر-1 لاننا سنقوم باستخدام هذا الرقم في جلب العنصر من مربع القائمة

لاننا لو افترضنا ان عدد الفائزين 5 وقمنا بجعل اكبر قيمة ComboBox1.Items.Count اي 5 ومن ثم قمنا باستدعاء العنصر رقم 5 من مربع القائمة سيحدث خطا ولن يعمل البرنامج لماذا؟

 

لان العنصر 5 غير موجودين لان الموجود فقط

0

1

2

3

4

 

نعود للكود وعرفنا السر في اختيار اكبر واصغر قيمة للرقم العشوائي

طبعا مثل المشروع السابق في كل مرة نقوم باضهار العنصر في Label حتى تظهر تاثير القرعة

Label1.Text = ComboBox1.Items(s)

وفي الاخير عند الوصول لعدد المرات المطلوب نضع نفس الكود السابق حتى يتوقف عن الاكمال ونوقف عمل المؤقت بالكود

Timer1.Enabled = False

 

الى هنا المفترض ان البرنامج كامل ولكن خذ هذا السؤال

 

لماذا يقوز في القرعة دائما احد المقربين لاصحاب الجائزة؟او بمعنى اخر كيف ممكن اخلي القرعة لصالحي بحيث اني انا احدد الفائظ مسبقا بحيث انه فقط اظهر لهم تاثير القرعة بينما المسابقة محسومة مسبقا والفائز معروف مسبقا

 

هنا ياتي دور مربع النص

حيث يمكننا تعديل الكود قليلا ليتماشى مع رغباتنا

 

قم باضافة حدث doubleclick للفورم وقم باضافة الكود التالي

TextBox1.Text = InputBox("")

 

في هذا الكود نقوم باظهار inputbox يقوم بالسؤال عن قيمة مربع النص

سنفترض في هذا المثال باننا سندخل رقم العنصر للفائز الموجود في مربع القائمة

 

الان كود المؤقت كما هو ولكن عند انتهاء تاثير القرعة –في داخل التعليمة  if then- لانجعلها نفس ماقبلها

Label1.Text = ComboBox1.Items(s)

وانما في المقابل نقوم بتغيير القيمة s الى مربع النص فتصبح كالتالي

Label1.Text = ComboBox1.Items(Val(CInt(TextBox1.Text)) - 1)

 

 

ممتاز اذن عرفنا السر الان كيف يمكن تزوير القرعة

 

 

تحياتي

الاثنين، 10 مايو، 2010

Introducing Windows 7 and Office 2010

السلام عليكم ورحمة الله وبركاته وبعد ،،،،،،

DSC06310

في خطوة مني لتدعيم المدونة قررت ان اصدح فكري في الاجواء قليلا

لذلك من هذه المنصة أعلن عن أول حدث مباشر Online Event أقدمه انا شخصيا باذن الله تعالى لمدة ساعتين تقريبا

 

الحدث سيكون بعنوان

Introducing Windows 7 and Office 2010 in Programmer Vision

image

 

سأقوم فيه باستعراض التفاصيل الدقيقة وسبر الاغوار الخاصة والتي تهمنا نحن معشر المبرمجين فيما يخص الاصدارة الجديدة windows 7 and office 2010

 

الحدث سيكون باذن الله تعالى يوم الخميس 27-5  من الساعة الثامنة مساء بتوقيت السعودية ولمدة ساعتين من خلال بث على الانترنت ساقوم بعرض الرابط في حينه ان شاء الله تعالى

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

 

للتسجيل  على هذا الرابط

 

وتقوم باختيار

attending  من الجهة اليمنى

image

 

تذكرو حضوركم يهمني جدا واقتراحاتكم تهمني اكثر

 

 

تحياتي

ملاحظة هامة:تم تأجيل الموضوع الى 7-7-2010 لضروف الامتحانات

الخميس، 6 مايو، 2010

Code of the Week:Random Choice

السلام عليكم ورحمة الله وبركاته وبعد

 

سلسلة جديدة أبداها من هذه المقالة

هذه السلسلة ستكون باذن الله اسبوعية وستكون بنهاية الاسبوع –غالبا الخميس-

سأقوم باختيار فكرة معينة وسأقوم بكتابة الكود اللازم للقيام بهذه المهمة او الفكرة

1-Random Choice

كثيرة هي المرات التي نرغب فيها بعمل برنامج يقوم بعمل قرعة لارقام لاسماء أو حتى لصور

الفكرة بسيطة جديدة وكل ماتحتاج اليها للقيام بذلك هو مؤقت أو Timer

سنقوم بأخذ مثالين لهذه الفكرة

مثال 1: في هذا المثال طلب منا ان نقوم بانشاء برنامج يقوم باجراء قرعة للحضور الذين وزعت عليهم ارقام من 1 – 1000 وعلى البرنامج ان يختار من هذه الارقام

سنقوم بتصميم واجهة المستخدم مستخدمين 3 أدوات فقط

Label>>>>>lblLuckyNumber

Button>>>>>btnChoose

Timer>>>>>tmrLuckyGuest

 

لمن يتسائل عن طريقتي في تسمية الادوات فساقوم بشرح الفكرة لاحقا في موضوع مخصص لذلك ولكن اعلم انها هي الطريقة الرسمية لتسمية الادوات وهي ماتسمى بـــHungarian Notation

 

هذه هي واجهة المستخدم

image

الان سنقوم بالجزء المفضل الا وهو كتابة الكود ولكن قبل كتابة الكود سنقوم ببعض التغييرات للاداة tmrLuckyGuest

قم بتغيير الخاصية interval ألى 50 وهنا الرقم يحدد سرعة القرعة حيث اننا نريد عرض الارقام عند اجراء القرعة وهي تتغير بشكل سريع فالسرعة هنا نحددها من خلال هذه الخاصية

نقوم بتغيير الخاصية Enabled الى False وهذه نقطة مهمة جدا حيث انها تقوم بايقاف المؤقت حتى يتم تشغيله بواسطتنا او بواسطة المستخدم

 

ملاحظة قد تجد هذه الخصائص هي نفسها اي لاتحتاج الى تغيير ولكن لمن يريد ان يتلاعب بها للحصول على نتائج مختلفة

اذن المفترض ان يكون نافذة الخصائص كالاتي بالنسبة للمؤقت

image

 

انتهينا الان من الخصائص والان الى الاكواد

انقر نقرة مزدوجة على المؤقت لتنقلك الى صفحة الاكواد

هذا هو الكود الذي سنقوم بكتابته

 

image

سنقوم بشرح الكود

في الحدث الاول الخاص بالزر عند النقر Click قمنا بكتابة الاتي

tmrLuckyGuest.Enabled = True
       i = 0

وهذا يعني تشغيل المؤقت للقيام باختيار الرقم العشوائي

واسندنا القيمة 0 للمتغير i وستعرف فائدته لاحقا

قمنا بتعريف المتغيرين m,i لما لهم من اهمية في اجراء القرعة

ناتي الان لكود المؤقت وهو اهم جزء في الموضوع

هذا هو الكود

Private Sub tmrLuckyGuest_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrLuckyGuest.Tick
    i += 1
    Dim si As New Random
    lblLuckyNumber.Text = si.Next(1, 40)
    If i = 80 Then
        tmrLuckyGuest.Enabled = False
    End If
End Sub

في السطر الاول قمنا باضافة 1 الى قيمة المتغير i

في السطر الثاني قمنا بتعريف المتغير الخاص بعملية القرعة وهو كما تلاحظ من النوع Random الذي يقوم باختيار الارقام العشوائية (انتبه الى كلمة NEW فهي اهم من الكود كاملا))

ثم بعد ذلك قمنا بجعل البرنامج يضع الرقم العشوائي الذي اختاره باستخدام الطريقة

si.next(1,40) الى lblLuckNumber

الى هنا اكتمل الموضوع ولكن لاحظ اننا هنا قمنا فقط باختيار رقم عشوائي ووضعه في مربع النص ولكن لحظة

كيف نقوم بجعل مربع النص يعرض جميع الارقام بصورة سريعة حتى يستقر على رقم معين بعد فترة معينة

هنا ياتي دور المتغير i

لاحظ في كود الزر اسندنا له القيمة 0 حتى نجعله في نقطة البداية

وفي كل مرة ينفذ حدث المؤقت يتم زيادة القيمة بمقدار 1

اذن حدث المؤقت لن يحدث مرة واحدة وانما سيحدث عدة مرات حتى نوقفه باستخدام الخاصية Enabled ونحوله الى False اذن هو سيقوم باختيار رقم عشوائي ووضعه كل مرة في مربع النص وقد يستمر الى ما لانهاية ولكنا نريده لمدة معينة فلذلك اضفنا كود التحقق من عدد المرات وهي 80 مرة مثلا ويمكنك تغييره باي عدد من المرات تريده بحسب ماتريد

    If i = 80 Then
        tmrLuckyGuest.Enabled = False
    End If

اذن سينفذ حدث المؤقت كل 50 جزء من الثانية ل80 مرة ثم سيتوقف وعندما يتوقف سيعرض اخر رقم اختاره

 

اذن كان هذا هو كود الاسبوع

نستعرض واياكم فكرة المثال الثاني ونؤجل الكود الخاص به الى الاسبوع القادم

2-طلب منا تصميم برنامج لعمل قرعة للفائزين في احدى المسابقات بحيث يقوم بعرض قرعة باسمائهم ويختار اسما معينا

كيف نقوم بذلك

 

نترك الجواب للاسبوع القادم

 

 

تحياتي

الاثنين، 3 مايو، 2010

UserGroups Projects

السلام عليكم ورحمة الله وبركاته

 

 

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

 

هي فكرة جميلة جدا تفيد جميع شرائح المبرمجين

المبتدأ>>>>ليتعلم الاسس السليمة للبرمحة من خلال التطبيق المباشر للبرمجة

المتوسط>>>> لتطوير مهارتهم البرمجية وتحفيزهم على اخراج اقصى مالديهم

الخبير (وهو مايهمني هنا) >>>>> للمساهمة في هذه السلسلة (سأوضحها لاحقا)

 

بصراحة لا أعتبر نفسي خبيرا :) ولكن لا اعتبر نفسي مبتدا ايضا (يعني على قولتهم بين البينين :) ) لذلك هدفي وقبل ارضاء القارئ هو تحفيز المواهب الكامنة لدي على ابراز افضل ما استطيع حتى اكسب الخبرة فيها هذا المجال

 

يهمني جدا شريحة الخبراء اكثر من غيرهم وهو لسبب بسيط جدا اشرحه في المثال التالي

يمكنني ان أذهب الى ينبع (السعودية) من القاهرة عن طريق الرحلة المتجهة الى جدة ثم الى ينبع

عندما ذهبت الى مكتب الحجز وطلبت منه ذلك اخبرني بان هناك شركة طيران اخرى تقوم برحلة مباشرة الى ينبع دون المرور بجدة في هذه الحالة افضل هذه الطريقة حتى وان كانت فيها بعض العقبات (مثلا مافي اكل في الطيارة :) )

 

هذا هو هدفي من شريحة الخبراء اتمنى ان يتعاونو في الموضوع وذلك عن طريق توضيح البدائل لعمل كود للقيام بمهمة معينة لانه توجد احيانا اكثر من طريقة لانجاز مهمة فمعرفتك لجميع الطرق توسع المدارك والفهم

 

انتهينا من المقدمة فلننتقل الى الاسس

ساحاول ان اقتبس ماذكرته في المنتدى هنا مع بعض التعديلات البسيطة

 

فكرة البرنامج:سأقوم بتحويل فكرة معينة الى برنامج بسيط (أبسط مايمكن تخيله مربع نص وزر فقط -مثلا)

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

سأقوم بطرح الضوابط الخاصة بهذه السلسلة ومن خلالها سيتم توضيح الفكرة بشكل أكبر

1-المدة المخصصة للمشروع هو شهر كامل (30 يوم من بداية عرض الموضوع)

2-سأقوم  ببدء الموضوع بمقدمة بسيطة يبين فيها نبذة موجزة عن ماهية البرنامج الذي قام بعمله

3-سأقوم بارفاق نسخة من المشروع (الرفع يكون في Skydrive الخاص بحسابي لضمان بقاء الملفات مدة أكبر)

4-في الاسبوع الاول للمشروع يمكنكم طرح الافكار الخاصة بالموضوع (كيف يمكن تطويره-ماهي افضل طريقة لعمل البرنامج-ماهي افضل الادوات اللتي يجب استخدامها-....) وساقوم بتوضيح الفكرة في حينها

5-سأقوم في الاسابيع الثلاث المتبقية بالمشاركة في تطوير البرنامج والتطوير يكون وفقا للضوابط الآتية
أ-شرح ماأريد أن أقوم به كتابة

ب-إرفاق الكود اللازم للقيام بما أريد عمله

ج-ارفاق صورة توضيحية لماأريد فعله

6-لايسمح ابدا ابدا ابدا من اي عضو مشارك في الموضوع بارفاق نسخة من المشروع الكل يشارك بآرائه وافكاره وأنا سأقوم باعتماد خط سير المشروع حتى ننتهي منه جميعا بنفس الافكار

7-سيتم استخدام Visual Studio 2010 والاصدار4.0 من الفريموورك وعلى هذا فكل من لديه اقل من هذه الامكانيات لا أتوقع ان يشاركنا في الموضوع(لمن يريد طريقة للمشاركة على الخاص )


8-اللغة الوحيدة المسموح باستخدامها هي لغة الفيجوال بيسك وعلى هذا لمن يستخدم السي شارب يمكنه المشاركة ولكن بشرط وضع الكود بلغة الفيجوال بيسك بعد تحويلها باستخدام المواقع المتخصصة لذلك

9-حقوق البرنامج خاصة للمدونة ولا يسمح لاي عضو ببيع البرنامج او نشره

سأحاول تحقيق الحلم في هذه المدونة ولنرى نتيجة الموضوع باذن الله تعالى

 

ملاحظة:سيكون يوم الاثنين من كل أسبوع هو اليوم المخصص للسلسلة لذلك لن تراني اتكلم عن السلسلة الا يوم الاثنين والاثنين فقط

 

تحياتي،،،،،،،،