الأحد، 29 نوفمبر 2009

كيف تلغي استخدام النماذج المطورة في إدارة عناصر القائمة الخاصة

  1. كيف تنشئ قائمة مخصصة في SharePoint Server 2010
  2. كيف تلغي استخدام النماذج المطورة في إدارة عناصر القائمة الخاصة
  3. إضافة عنصر جديد برمجياً غلى قائمة مخصصة في SharePoint Server 2010

في الإصدار SharePoint Server 2010 تم إدخال ميزة النماذج المطورة التي تعتمد على JavaScript لإظهارها في محاولة من شركة Microsoft لتحسين وتسريع عملية التعامل مع نماذج القوائم وبعض النماذج الأخرى وكذلك اعتمدت شركة Microsoft في بعض النماذج على تقنية Silverlight كما في شاشات إنشاء موقع أو قائمة جديدة. ومن أجل إلغاء استخدام النماذج المطورة في القائمة المخصصة يمكن اتباع الخطوات التالية لاستخدام النماذج التقليدية المستخدمة في MOSS 2007.
من القوائم العلوية اختر الرابط List لعرض روابط الإعدادات الخاصة بالقائمة المخصصة كما في الشكل التالي:

ومن ثم اختر الرابط List Settings كما في الشكل التالي:

لتظهر صفحة الإعدادات الخاصة بالقائمة والتي تحتوي على الكثير من الخيارات ولكن الخيار الذي يهمنا هو Advanced Settings كما في الشكل التالي:


عند الضغط على رابط الإعدادات المتقدمة Advanced Settings تظهر صفحة تحتوي على مجموعة من الخيارات المتقدمة المتعلقة بالقائمة وآخر خيار هو الذي يفعل أو يعطل استخدام النماذج المطورة في إدارة عناصر القائمة:


حدد القيمة No ثم اضغط الزر OK وبعدها اذهب إلى صفحة عرض عناصر القائمة وحاول إضافة عنصر جديد أو الضغط على عنصر موجود مسبقاً ستلاحظ عدم ظهور النموذج المطور وإنما سيظهر النموذج العادي.

السبت، 28 نوفمبر 2009

إضافة عنصر جديد برمجياً غلى قائمة مخصصة في SharePoint Server 2010

  1. كيف تنشئ قائمة مخصصة في SharePoint Server 2010
  2. كيف تلغي استخدام النماذج المطورة في إدارة عناصر القائمة الخاصة
  3. إضافة عنصر جديد برمجياً غلى قائمة مخصصة في SharePoint Server 2010


من التحسينات الملحوظة في SharePoint Server 2010 هي التعامل مع عناصر القوائم ومنها إضافة عناصر جديدة إلى قائمة, وفي هذه المقالة سنركز على كيفية إضافة عنصر جديد برمجياً إلى القائمة المخصصة التي أنشأناها في مقالة سابقة بعنوان كيف تنشئ قائمة مخصصة في SharePoint Server 2010 واسم القائمة هو Names, وكلن قبل الدخول في تفاصيل الشيفرة البرمجية أرغب في استعراض كيفية إضافة عنصر جديد إلى القائمة باستخدام شاشات SharePoint Server 2010.

هذه الخطوات تم تنفيذها ضمن الشروط التالية:

  • Windows 7 64bit.
  • SharePoint Server 2010 Beta Version.

من صفحة استعراض جميع عناصر القائمة اضغط على الرابط Add new item كما في الشكل التالي لفتح نافذة جديدة إضافة معلومات العنصر الجديد:

أو من خلال الضغط على الرابط Items في قائمة الروابط العلوية للصفحة وبعدها اضغط على الرابط New Item كما في الشكل التالي:

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

بعد تعبئة المعلومات اللازمة اضغط على زر Save لحفظ معلومات العنصر الجديد, بعدها يتم إغلاق شاشة إضافة عنصر مع تحديث صفحة عرض جميع عناصر القائمة لعرض العنصر الجديد الذي تمت إضافته إلى عناصر القائمة.

كما يمكن إضافة عنصر جديد إلى عناصر القائمة باستخدام الطريقة المستخدمة في MOSS 2007 وذلك بكتابة العنوان التالي في المتصفح:

http://YOUR_SERVER_NAME/Lists/Names/NewForm.aspx

الخطوات السابقة كانت لإضافة عنصر جديد إلى قائمة باستخدام الميزات التي تقدمها شاشات SharePoint Server 2010.

إنشاء مشروع جديد باستخدام Visual Studio 2010

يدعم VS 2010 مجموعة قوالب مرتبطة مباشرة بالـ SharePoint بحيث تسهل عملية إضافة وتحميل عناصر جديدة تعمل على SharePoint Server 2010 ومن هذه القوالب Visual Web Part الذي يساعد على تصميم جزء ويب Web Part وتحميله ليعمل على تطبيق الويب الخاص بك. الآن يجب إنشاء مشروع باستخدام القالب Visual Web Part:

File -> New Project -> Visual C# -> SharePoint -> Visual Web Part

وليكن اسم المشروع هو CustomList2010Developer ومن ثم اضغط على الزر OK عندها تظهر شاشة تستطيع من خلالها أين سيتم تحميل جزء الويب الذي سنعمل عل برمجته, بعد تحديد عنوان الموقع المناسب اضغط زر Finish.

بعد إنشاء المشروع بنجاح افتح الملف VisualWebPart1.webpart وعدل عنوان جزء الويب Title ووصف جزء الويب Description.

الآن افتح الملف VisualWebPart1UserControl.ascx لبناء النموذج Form الذي سندخل من خلال معلومات العنصر الجديد (FirstName, FamilyName, Email), وهنا طبعاً الشيفرة التي ستتم كتابتها لا علاقة لها بالـ SharePoint Server 2010 وإنما هي شيفرة ASP.NET كما في الشكل التالي:

يحتوي النموذج على 3 حقول نصية لإدخال المعلومات التالية بالترتيب:

  • الاسم الأول FirstName.
  • اسم العائلة FamilyName.
  • البريد الإلكتروني Email.

مع وجود زرين الأول لإضافة المعلومات باستخدام الـ Object Model والثاني باستخدام Linq, والشيفرة التي يجب كتابتها في الحدث Click للزر Add By Object Model هي كما في الشكل التالي:

أما من أجل التعامل مع القائمة Names باستخدام Linq يجب اتباع الخطوات التالية لتوليد الملف الذي من خلاله سيتم التعامل مع القائمة Names:

1 - افتح منفذ الأوامر Command Prompt وأدخل الأمر التالي:

cd c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\bin

2 - اكتب الأمر التالي الذي يولد الملف:

spmetal /web:http://YOU_SERVER_NAME /namespace:CustomList2010Developer /code:c:\NamesList.cs

بعد توليد الملف NamesList.cs أضف هذا الملف إلى المشروع وذلك بالنقر بزر الفأرة الأيمن على اسم المشروع واختر Add Existing Itme.

يجب إضافة مرجع Reference إلى المكتبة Microsoft.SharePoint.Linq كي نستطيع التعامل مع عناصر الـ SharePoint Server 2010 باستخدام Linq وهذه المكتبة موجودة في المسار التالي:

c:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI

أيضاً يجب إضافة العبارة التالية إلى ملف الشيفرة VisualWebPartUserControl.ascx.cs لتفعيل استخدام الـ Linq:

using System.Linq;

وأخيراً الشيفرة التي ستضيف العنصر الجديد باستخدام الـ Linq إلى القائمة Names هي كما في الشكل التالي:

نفذ عملية بناء المشروع من خلال القائمة Buil à Build Solution, ومن ثم نفذ الأمر Deploy Solution من القائمة Build à Deploy Solution.

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

الجمعة، 27 نوفمبر 2009

كيف تنشئ قائمة مخصصة في SharePoint Server 2010

  1. كيف تنشئ قائمة مخصصة في SharePoint Server 2010
  2. كيف تلغي استخدام النماذج المطورة في إدارة عناصر القائمة الخاصة
  3. إضافة عنصر جديد برمجياً غلى قائمة مخصصة في SharePoint Server 2010

لا شك بأن الإصدار الجديد من SharePoint Server 2010 يحتوي على كثير من الميزات الجديدة ولكنه حافظ أيضاً على المزايا القديمة مع إجراء تحسينات هائلة عليها, وسنستعرض فيما يلي كيفية إنشاء قائمة من القالب "قائمة مخصصة" Custom List موضحة بالصور, وهذه الخطوات تم تنفيذها ضمن الشروط التالية:
  • Windows 7 64 Bit
  • SharePoint Server 2010 Beta

في هذه المقالة سنعمل على بناء قائمة تضم المعلومات التالية:

  • الاسم الأول FirstName
  • اسم العائلة FamilyName
  • عنوان البريد الإلكتروني Email

لإنشاء قائمة يمكن تنفيذ ذلك من أماكن مختلفة كما يلي:

  1. من القائمة Site Actions اختر More Options… حيث تظهر شاشة كما في الشكل التالي ومنها يمكن اختيار القالب Custom List وبعدها تكمل خطوات إنشاء القائمة.

  2. من القائمة Site Actions اختر View All Site Content ومن ثم اضغط على الرابط Create لتظهر شاشة مشابة للشاشة في الخطوة رقم 1 ومنها يمكن اختيار القالب Custom List وبعدها تكمل خطوات إنشاء القائمة.

  3. اضغط على الرابط Lists في الجهة اليسرى ومن ثم اضغط على الرابط Create لتظهر شاشة مشابة للشاشة في الخطوة رقم 1 ومنها يمكن اختيار القالب Custom List وبعدها تكمل خطوات إنشاء القائمة.

نلاحظ أن جميع الخطوات السابقة تؤدي إلى نفس النتيجة وهي إنشاء قائمة من القالب Custom List وطبعاً وجود عدة طرق للوصول إلى شاشة إنشاء القائمة يسهل على المستخدم هذه العملية, أيضاً هناك ملاحظة هامة يجب الانتباه إليها وهو أنه عند الضغط على الرابط Create لا ينتقل التحكم إلى صفحة أخرى جديدة وإنما تظهر نافذة منبثقة Pop up Window وتعتبر هذه من التحسينات على شاشات SharePoint Server 2010 والتي تسهل وتسرع عملية الاستخدام والإدارة. كما أن هذه النافذة هي عبارة عن عنصر Silverlight لذلك نلاحظ وجود إبداع في الشكل وطريقة إظهار عناصر الشاشة وذلك باستخدام تنقية Silverlight ولكن ما يحيرني بأن Silverlight حتى تاريخ كتابة هذه المقالة لا يدعم اللغة العربية بشكل صحيح وبعض اللغات الأخرى فلا بد من أن شركة Microsoft ستدعم باقي اللغات بشكل صحيح 100% في الإصدار النهائي لـ SharePoint Server 2010 أو أنها يتقدم حلاً بديلاً لمثل هذه الشاشات كفتح صفحة جديدة في حال أن اللغة المستخدم غير مدعومة (وطبعاً هذا غير منطقي وأشك بأن شركة Microsoft ستقع في مثل هذا الخطأ). ولكن مازال النمط القديم لإنشاء صفحة أو قائمة أو موقع كما في الإصدار MOSS 2007 متوفر وذلك من خلال الرابط http://YOUR_SERVER_NAME/_layouts/create.aspx حيث تظهر الخيارات المتوفرة لإنشاء عنصر ما ومنه يمكن اختيار Custom List لتظهر شاشة لا تعتمد على تقنية Silverlight.

لإكمال عملية إنشاء القائمة اضغط على List في الجهة اليسرى لإظهار القوالب الخاصة بالقوائم فقط ومن ثم اختر القالب Custom List كما في الشكل التالي:

بعد اختيار القالب Custom List يمكن إدخال اسم القائمة في الجهة اليمنى من الشاشة في الحقل النصي Name ومن ثم الضغط على الزر Create لإنشاء القائمة أو يمكن اختيار الزر More Options حيث تفتح شاشة فيها خيارات أكثر لإنشاء القائمة (الاسم, الوصف, وهل تظهر القائمة في قائمة التشغيل السريع Quick Launch) كما في الشاشة التالية:

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

كما ذكرنا سابقاً يجب إضافة أعمدة أخرى إلى القائمة (FirstName, FamilyName, Email) ولتنفيذ ذلك اتبع الخطوات التالية:

  1. لإنشاء العمود FamilyName اضغط على الرابط Create Column في قائمة الروابط أعلى الصفحة (إظهار الروابط بهذا الشكل هو إحدى الميزات الجديدة في SharePoint Server 2010 ويسمى Ribbon وقد استخدم في Office 2007 قبل ذلك) بعد الضغط على Create Column تظهر شاشة منبثقة Pop up Window كما في الشكل التالي:


    تتيح اختيار أنواع مختلفة من الأعمدة (هذه الشاشة لا تعتمد على تقنية Silverlight) أدخل معلومات العمود الجديد وهي:
    • اسم العمود: FamilyName
    • نوع العمود: Single line of text
    • وصف العمود: Family name
    • هل قيمة هذا العمود مطلوبة: Yes
    • عدم تكرار هذه القيمة: No
    • الطول الأعظمي لقيمة هذا العمود: 15
    • باقي القيم اتركها كما هي.
    • بعد إدخال المعلومات المطلوبة اضغط على الزر OK لإنشاء العمود.
  2. لإنشاء العمود Email اضغط على الرابط Create Column في قائمة الروابط أعلى الصفحة بعد الضغط على Create Column تظهر شاشة منبثقة Pop up Window تتيح اختيار أنواع مختلفة من الأعمدة (هذه الشاشة لا تعتمد على تقنية Silverlight) أدخل معلومات العمود الجديد وهي:
    • اسم العمود: Email
    • نوع العمود: Single line of text
    • وصف العمود: Email address
    • هل قيمة هذا العمود مطلوبة: Yes
    • عدم تكرار هذه القيمة: Yes
    • الطول الأعظمي لقيمة هذا العمود: 50
    • في الجزء Column Validation وهي من الميزات الجديدة في SharePoint Server 2010 حيث تمكنك من كتابة صيغة للتحقق من صحة المعلومات المدخلة مع إمكانية إدخال رسالة تظهر في حال أن المعلومات المدخلة غير صحيحة, المهم في هذا الجزء أدخل المعلومات التالية:
      • في الحقل Formula اكتب =LEN(Email) >= 5 وتعني بأن طول عنوان البريد الإلكتروني لا يمكن أن يكون أقل من 5 محارف.
      • في الحقل User Message اكتب Email length must be 5 letters at least.
    • باقي القيم اتركها كما هي.
    • بعد إدخال المعلومات المطلوبة اضغط على الزر OK لإنشاء العمود.
  3. لإنشاء العمود FirstName سنعدل على العمود Title الموجود أصلاً وذلك بالضغط على الرابط List Settings في قائمة الروابط أعلى الصفحة حيث تفتح صفحة إعدادات القائمة وهي مشابهة لصفحة إعدادات القائمة في الإصدار Microsoft Office SharePoint Server 2007:


    الآن اضغط على اسم العمود Title لتفتح صفحة جديدة تمكنك من تعديل معلومات هذا العمود كما يلي:

    • اسم العمود: FirstName
    • وصف العمود: First name
    • الطول الأعظمي لقيمة هذا العمود: 15
    • باقي القيم اتركها كما هي.
    • بعد إدخال المعلومات المطلوبة اضغط على الزر OK لإنشاء العمود.

بعد تنفيذ الخطوات السابقة نكون قد أتممنا عملية إنشاء قائمة جديدة اسمها Names تحتوي على 3 أعمدة (FirstName, FamilyName, Email) ويمكن الآن تجربة إضافة عنصر جديد في هذه القائمة.

الخميس، 15 أكتوبر 2009

ربط قواعد بيانات أوراكل مع SharePoint BDC باستخدام الدخول الموحد SSO

من الميزات الهامة الموجودة في Microsoft Office SharePoint 2007 هو فهارس بيانات الأعمال Business Data Catalog أو مايسمى بـ BDC والتي يمكن استخدامها لفهرسة بيانات مخزنة خارجية فو قواعد بيانات مختلفة مثل أوراكل Oracle وذلك لتفعيل عملية البحث عن هذه البيانات باستخدام ميزة البحث في MOSS 2007, ولكن من أجل استخدام الـ BDC لفهرسة معلومات موجودة في قواعد بيانات أوراكل يجب استخدام خدمة الـ Single Sign On Service (SSO) والتي تتيح الاتصال بقاعدة بيانات أوراكل, وبعدها يمكن فهرسة البيانات الموجودة في جداول Tables أو مشاهد Views قاعدة بيانات أوراكل.

خطوات تفعيل خدمة الدخول الموحد في MOSS 2007

أولاً. يجب تشغيل خدمة الدخول الموحد SSO Windows Service حيث أنها بالشكل الافتراضي تكون بالوضع Stopped وطريقة التشغيل Manual, لذلك يجب تشغيلها من خلال لوحة التحكم Control Panel – أدوات الإدارة Administrative Tools – خدمات Services, وبعدهت ابحث عن الخدمة Microsoft Single Sign-on Service وشغلها وحول طريقة التشغيل إلى Automatic لكي تعمل الخدمة بشكل تلقائي في حال إعادة تشغيل المخدم الذي يستضيف هذه الخدمة. وحساب المستخدم الذي يجب تعيينه لتشغيل هذه الخدمة يجب أن يحقق الشروط التالية:

  • حساب نطاق Domain Account.
  • SharePoint Products and Technologies server farm account.
  • عضو في المجموعة Administrators على أول مخدم يتم تشغيل الخدمة عليه.
  • عضو في المجموعة Security Administrators والمجموعة DB creator على المخدم الذي يستضيف الـ MS SQL Server.

بعد تشغيل الخدمة Single Sign-on Service أنت جاهز الآن لإكمال الإعدادات على MOSS 2007, والآن افتح SharePoint 3.0 Central Administration من قائمة ابدأ Start وبعدها اختر كل البرامج All Programs وبعدها Microsoft Office Server. بعدها اضغط على العنصر Operations ومن ثم اختر الرابط Manage settings for single sign-on من القسم Security Configuration.



ملاحظة: يجب تشغيل الـ SharePoint 3.0 Central Administration على نفس الجهاز الذي تعمل عليه الخدمة Microsoft Single Sign-on Service وإلا ستظهر رسالة خطأ عند محاولة إجراء تهيئة لخدمة الدخول الموحد.

بعد الضغط على الرابط Manage settings for single sign-on تظهر الشاشة التالية (شاشة رقم 1):



بعدها اضغط على الرابط Manager server settings حيث أن بقية الروابط تكون غير مفعلة لأول مرة, عندها تظهر الشاشة التالية:




بعد تعبئة البيانات السابقة اضغط على زر OK وبعدها تظهر الشاشة رقم 1 مرة أخرى:



الآن اضغط على الرابط Manage settings for enterprise application definitions لتظهر الشاشة التالية التي من خلالها يمكن تعريف طريقة الاتصال بقاعدة بيانات أوراكل والمعلومات اللازمة لعملية الاتصال كما في الشكل التالي:



في الحقل Display name يمكن إدخال قيمة ما ذات معنى تعبر عن الهدف من هذا التعريف, أما في الحقل Application name أدخل القيمة BDC-ORACLE (مثلاً) فالمعلومات التي سيتم إدخالها تمثل قيمة SsoApplicationID في الـ BDC ولا يمكن تغييرها بعد ذلك, أما في الحقل Account type اختر القيمة Individual. الحقل Field1 أدخل القيمة Username وفي الحقل Field2 أدخل القيمة Password, وبعدها اضغط الزر OK لحفظ المدخلات السابقة.

بعد ذلك ارجع إلى الشاشة رقم 1 واختر الرابط Manage account information for enterprise application definitions لتظهر الشاشة التالية:


أدخل المعلومات السابقة واختر Update account information وبعدها اضغط الزر Set لتظهر الشاشة التالية:


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

بوصولك إلى هذه المرحلة تكون قد انتهيت من تهيئة خدمة الدخول الموحد SSO للاتصال بقاعدة البيانات أوراكل, والآن يجب توليد ملف Application Definition File لاستخدامه في عملية فهرسة البيانات باسخدام الـ BDC. ويمكن استخدام عدة برامج لتنفيذ هذه العملية ولعل أشهر برنامج هو MetaMan, بعد توليد الملف يجب تغيير المعلومات التالية:

  • AuthenticationMode = RdbCredentials
  • DatabaseAccessProvider = Oracle
  • RdbConnection Data Source = "اسم الخدمة التي تستخدمها للاتصال بأوراكل"
  • RdbConnection Pooling = False
  • SsoApplicatio= nId = BDC-ORACLE (تعتمد على القيمة التي أدخلتها في Application Name)
  • WildcardCharacter = %
  • حذف القيمة RdbConnection Integrated Security
  • حذف القيمة RdbConnection Password
  • حذف القيمة RdbConnection User ID

الآن ارفع الملف الذي تم توليده بعد التعديل باستخدام ميزة Import application definition, بعد ذلك يجب إنشاء Content Source يستخدم Business Data Catalog كمصدر للبيانات.

متطلبات لعمل الخطوات السابقة بشكل صحيح:

  • التأكد من سماحيات المستخدم الذي يشغل خدمة Single sign-on.
  • التأكد من صلاحية المستخدم المتصل بقاعدة بيانات أوراكل.
  • تحميل Oracle Client على المخدم الذي سينفذ عملية الفهرسة وإلا لن تتم عملية الاتصال بقاعدة البيانات بشكل صحيح.

الأربعاء، 23 سبتمبر 2009

رأيي الشخصي في مسلسل باب الحارة

حقيقة كثر اللغط في الآونة الأخيرة حول مسلسل باب الحارة وماهي الفائدة من باب الحارة ولماذا هذه الأفكار السخيفة في المسلسل (سخيفة على رأي الآخرين), ولكني لم أقرأ إلا الآن وجهة نظر حيادية أو على الأقل وجهة نظر غير انفعالية بغض النظر عن المستوى الثقافي والعلمي للكتاب ومن أعطوا آراءهم في هذا المسلسل, هل ياترى فعلاً هذا المسلسل سخيف وإن كان سخيفاً لماذا كل هذا الجدول حوله وهؤلاء الذين يعتبرون المسلسل بهذه الدرجة من السخافة لاحظت أنهم تابعوا جميع حلقات المسلسل وتفاصيله وحتى غاصوا في طريقة تفكير بعض الشخصيات بل وحفظوا بعضاً من كلماتهم, إذاً لماذا سخيف ؟؟؟!!!

حقيقة بعد تفكير وتمحيص نرى بأن المسلسل ليس بالسخيف وليس بهذا السوء الذي صوره به البعض بغض النظر عن ذلك الشخص ومن المؤكد بأن المخرج بسام الملا ليس بالمخرج المبتدئ ليضع نفسه في خانة الانتقادات اللاذعة ولو فكرنا قليلاً ومن زاوية أخرى إلى المسلسل لوجدناه مسلسل ذو هدف أعمق مما ينظر إليه البعض وبرأيي قد أوصل رسالة نحن كشعوب عربية بحاجة إليها بل ويجب أن تعرض مثل هذه الأفكار على شاشات الإعلام العربي, فلا شك بأن الكثيرين قد قاربوا بين بداية المسلسل وأحداث غزة الأخيرة وحصارها وما تمثله الأنفاق في المسلسل والجواسيس والخونة وقد حاول المخرج إبراز الحارة على أنها دولة محاصرة من قبل الاحتلال الفرنسي وقد هبت الحارات الأخرى
لمساعدتها بمدها بالمؤن والسلاح والرجال إضافة إلى هذه اللفتة الجريئة المتمثلة بالشابين اللذين أتيا من فلسطين يبحثان عن أسلحة لدى هذه الحارة وكيف ضحيا بنفسيهما دفاعاً عن الحارة وانتقاماً لإخوانهم الذين سقطوا هنا أو في فلسطين, حاول المخرج أن يخرج المشاهد العربي من إطار الخوف الذي زرعه فينا الإعلام الغربي والتصور الخاطئ الذي تجذر في قلوب الكثيرين منا بأننا ضعفاء ولا نستطيع القتال ودائماً نحن مهزومون من قبل الآخرين أياً كانوا. لماذا يحق لهوليود أن تصدر إلينا أفلاماً تصور فيها الأمريكان بأنهم دائماً الأكثر قوة وشجاعة وهم خط الدفاع الأول عن الكرة الأرضية لو صح التعبير ضد هجمات المريخيين وكيف أن جندياً أمريكياً واحداً يستطيع هزيمة كتيبة إن لم يكن جيشاً, أليست هذه الأفكار سخيفة ولا صحة لها وأنا وأنت متأكدين بأنها غير صحيحة وأن الجندي الأمريكي كغيره من جنود الدول الأخرى فيهم القوي والشجاع والضعيف والجبان والخائن, لماذا ننبهر بأفلامهم وننسى أنها لا علاقة لها بالواقع ونهاجم أنفسنا وننسى المغزى الحقيقي من وراء الإعلام الموجه الذي يجب أن يوجه إلينا كشعوب عربية لنستيقظ وندرك أننا لسنا ضعفاء ولا أغبياء بل هي ياإخوان مرحلة تمر بها جميع الدول التي خرجت من 100 سنة من الحروب والمؤامرات والصراعات هي مرحلة يصدر فيها إعلام موجه, صحيح ومنطقي وسخيف وإعلام لا علاقة له بهذه الدنيا, إنما هو إعلام وحسب, حقيقة إني أشد على أيدي من أراد نجاح هذا المسلسل ونظر بعمق إلى مايعرض على هذه الشاشة الصغيرة واستخلص العبر وأخذ المفيد ورمى الباقي, وكلي يقين بأنك أنت ذاتك قد تأثرت بهذا المسلسل بشكل مباشر أو غير مباشر.

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

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

وشكراً

المهندس إسماعيل عنجريني

الأربعاء، 16 سبتمبر 2009

الفلسفة البرمجية

اليوم قرأت مقالة عن الفلسفة التقنية أثارت مابداخلي من أفكار فلسفية برمجية, وهذا تعليقي وردي على هذه المقالة:
لا شك بأن الإنسان كلما ازداد علماً ازداد جهلاً, والفلسفة التقنية هي فلسفة قائمة على نظرة متجردة إلى ماحوله من العلوم التقنية, ولو خصصنا أكثر لوجدنا بأن البرمجة بحد ذاتها هي فلسفة لا يشعر بها إلا من بدأت تصبح البرمجة جزء من حياته اليومية, في البيت ومكان العمل وحتى وهو يمشي في الشارع ويقود السيارة وينتظر الآخرين, هذه الفلسفة تجعلك تواقاً للبرمجة أكثر من ذي قبل لأن من مبادئ تعلم علوم الفلسفة هو أنك يجب أن تتعلم المزيد وإلا فإنك ستقف عند نقطة تشعرك بأن الفلسفة لا معنى لها وطبعاً هذا مبدأ عام ينطبق على الفلسفة البرمجية لأنك إن توقفت عند مجال معين في البرمجة فلا شك بأنك ستنظر إلى المجالات الأخرى من البرمجة أي الجزء الآخر من الفلسفة على أنه غير مهم وهنا تبدأ خطورة التوقف عن التعلم البرمجي, ولاشك بأن فلسفة البرمجة تتوسع لتشمل مجالات عديدة في عالم البرمجة, لأن البرمجة ليس فقط كتابة شيفرة لفعل شيء معين, وإنما هي أيضاً مايجب عمله لبناء واجهات صديقة للمستخدمين سواء على الإنترنت أو على تطبيقات سطح المكتب فهنا تبرز فلسفة أعمق وهي فلسفة البقاء للبرامج التي ولا شك تبنى على مايقدمه أي برنامج أو موقع من فائدة ومدى سهولة استخدام أو الوصول إلى هذه الفائدة, وهذا مانراه في في مواقع شهيرة مثل Yahoo, MSN, Facebook... طبعاً موضوع الفلسفة البرمجية يطول.
لكن فيما يتعلق بنقطة "أنَّ مجتمع المبرمجين هو أكثر المجتمعات عطاءًا دون انتظار المقابل" هو أمر فيه نظر, لأن أي إنسان يعمل بلا هدف أو مقابل ينتظره فلن يعمل أو على الأقل لن يتقن ما يعمله, أي أن المبرمجين (يجب أن نعلم بأن المبرمج ليس أي شخص يكتب شيفرة ما) ينتظرون مقابلاً لعملهم سواء مادي أم معنوي, دنيوي أو أخروي, ولا شك بأن المبرمج يفرح عندما يرى نظامه يعمل لأول مرة لأن (وهذا كلام أثبته العلم) المبرمجين الذي يقضون جل حياتهم ووقتهم في العمل البرمجي تبدأ نظرتهم إلى الأنظمة تختلف بل يبدؤون يشعرون بأنها كائنات حية يجب الاعتناء بها وتربيتها وتعليمها ماهو الصحيح وماهو الخطأ وكيف يجب أن تعيش في عالم البقاء فيه للأقوى, ومن هذا المنطلق فإن أي مبرمج الذي هو جزء من مجتمع المبرمجين يجب أن ينتظر مقابلاً لعمله وإلا فإن شعوره وإحساسه بما يعمل سيتلاشى تدريجياً ويصبح عمله عبئاً عليه أن يتحمله كل يوم, فالأصل في فعل الانتظار هو تحفيزنا والنظر إلى مستقبل قريب أو حتى مستقبل بعيد وهذا بحد ذاته يعطينا أمل بأن ما ننتظهر يستحق أن نعمل لأجله لأنه في حال قدومه يجب أن نكون مستعدين لاستقباله بالشكل المناسب, وما ينتظره المبرمج هو نجاح نظامه الذي يعمل عليه بغض النظر عن طبيعة النجاح, فهذا النجاح هو بداية حياة هذا النظام وكأنه مولود جديد أنجبه أبوه ;) وليس أمه وهذا كاف ليشعرنا بحنان نحو أنظمتنا وأعمالنا تدفعنا إلى إتقانها وإبقائها حية قدر ما نستطيع بل ونعطيها جزءاً من حياتنا البرمجية, وشخصياً أرى بأني لن أعمل عملاً برمجياً بدون مقابل بغض النظر عن المقابل بحد ذاته. وأخيراً أقول لمجتمع المبرمجين المقابل هو بث الحياة في عروق نظام ينتظر الولادة والقدوم إلى هذه الحياة فلا تبخسوا هذا المقابل حقه
وشكراً

الجمعة، 4 سبتمبر 2009

إضافة لتحديد طول النص في العنصر textarea

إضافة لتحديد طول النص في العنصر textarea

هذه الإضافة على مكتبة jQuery الهدف منها هو منع المستخدم من إدخال محارف أكبر من طول معين في حقل نصي متعدد الأسطر أو ما يعرف بـ TextArea HTML Control وهذا هو الإصدار الأول من هذه الإضافة وقد توجد بعض الحالات التي لم تتم معالجتها, وستتم معالجتها في حال وجود أي ثغرة في الإصدارات التالية.
كيف تستخدم هذه الإضافة

1 - إضافة السطر التالي بعد تضمين مكتبة jQuery:


<script src="jquery.textarea.js" type="text/javascript"></script>


2 - استدعاء التابع checkTextAreaLength بتمرير الإعدادات التالية:
- textId: قيمة الخاصية id للحقل النصي textarea الذي يجب تحديد عدد المحارف المدخلة فيه.
- spanId: قيمة الخاصية id لعنصر span الذي ستعرض فيه عدد الأحرف التي تمت كتابتها في الحقل النصي المشار إليه في textId.
- maxLength: عدد المحارف الأعظمي التي يستطيع المستخدم كتابتها في الحقل النصي textId, والقيمة الافتراضية تساوي 255.

حقوق الاستخدام

هذه الإضافة متاحة للإستخدام العام بشرط المحافظة على الترويسة في بداية شيفرة الإضافة, والإضارة إلى كاتب هذه الإضافة.

3 - اضغط هنا لتحميل مثال عن كيفية استخدام هذه الإضافة

الخميس، 2 يوليو 2009

تحميل Microsoft Office SharePoint Server 2007 على Windows Server 2008

عند محاولة تحميل MOSS 2007 على Windows server 2007 وعند تنفيذ ملف التنصيب Setup File لـ MOSS 2007 تظهر الرسالة التالية:

Program Compatibility Assistan

يتم حل هذه المشكلة بتنفيذ الخطوات التالية:
  • افتح شاشة تنفيذ الأوامر Command Line (Windows + R -> cmd -> Enter )
  • أنشئ المجلد mosstemp على القرص c:.
  • انسخ الملف officeserver2007sp1-kb936984-x64-fullfile-en-us.exe إلى المجلد c:\mosstemp, وهذا الملف هو Service Pack 1 لـ MOSS 2007
  • نفذ الأمر التالي: cd c:\mosstemp
  • نفذ الأمر التالي:

officeserver2007sp1-kb936984-x64-fullfile-en-us.exe /extract:C:\mosstemp2

  • بعد تنفيذ الخطوة رقم 5 سيتم إنشاء المجلد mosstemp2 على القرص c:, انسخ محتوى هذا المجلد إلى المجلد updates الموجود ضمن مجلدت تنصيب MOSS 2007.
  • بعد ذلك اضغط على الملف setup.exe وتابع تنصيب MOSS 2007 كما في Windows 2003.

الاثنين، 29 يونيو 2009

إسناد نتيجة تنفيذ التابع load في مكتبة jQuery إلى متحول

يستخدم التابع load لتحميل جزء من المحتوى أو كامل المحتوى لصفحة ما وذلك باستخدام الصيغة التالية:
load(url, [data], [callback])
حيث يتم إسناد القيمة المرتجعة من التابع load إلى المحدد الذي يسبق استدعاء التابع load.

لنفترض أن لدينا صفحة اسمها url.htm وتحتوي على البيانات التالية:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div id="divContainer">
<ul>
<li>Hello</li>
<li>Ismail</li>
</ul>
</div>
</body>
</html>



سنستخدم التابع load من مكتبة jQuery للحصول على محتوى العنصر div(divContainer) كما يلي:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>

<script src="js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var h = '';
$(function() {
$('').load('UrlToFetch.htm #divContainer ul', function(x, y, z) {
h = $(x).html();
alert(h);
});
});
</script>
</head>
<body>
<div id="div"></div>
</body>
</html>



التابع load تم استدعاؤه بتمرير مسار الصفحة إضافة إلى المحدد الذي سيستخدمه التابع لترشيح البيانات التي سيسترجعها من الصفحة url.htm, كما تم تحديد الوسيط callback لتمرير تابع استدعاء عكسي للحصول على القيمة المطلوبة باستخدام السطر:


h = $(x).html()

الاثنين، 1 يونيو 2009

تحسين جودة محتوى البوابات الإلكترونية

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

تحسين جودة محتوى البوابة الإلكترونية
إن محتوى البوابة الإلكترونية بمختلف أشكاله (صور, نصوص, فلاشات ...) يلعب دوراً هاماً في نظرة محركات البحث إليه وطريقة فهرستها لمحتوى البوابة حيث هناك عوامل كثيرة تلعب دوراً هاماً في تحديد جودة محتوى البوابة لذلك يجب الاهتمام وإلى أقصى درجة بجودة المحتوى الذي يتم إدراجه في البوابة, وما يلي هو دليل لبعض أهم النقاط التي يجب أخذها بعين الاعتبار أثناء إدراج أي محتوى في البوابة:
توحيد أحجام وأنواع الخطوط المستخدمة
يعتبر توحيد حجم الخط ونوعه عند وجود بيانات نصية ضمن البوابة الإلكترونية من الأمور المهمة التي تعطي انطباعاً بتوحيد كامل محتوى البوابة إضافة إلى إضفاء نوع من الثبات على طريقة عرض محتوى البوابة وهذا يؤثر على مستوى تقييم البوابة من الناحية الفنية من قبل محركات البحث إضافة إلى أنه يؤثر على تقييم البوابة من الناحية الفنية من قبل الجهات المختصة.
معالجة صور البوابة الإلكترونية
لا شك بأن الصور في أي بوابة إلكترونية لها دور هام في إبراز هدف البوابة والفئات التي تستهدفها, لذلك يتم توضيح معظم ماهو موجود في البوابة باستخدام الصور إضافة إلى أن المحتوى الموجود في أي بوابة إلكترونية يحتوي على الكثير من الصور لذلك يجب أخذ الملاحظات التالية بعين الاعتبار عند إدراج أي صورة:
أبعاد وأحجام الصور
قبل رفع أي صورة بغض النظر عن نوعها أو حجمها أو الهدف منها, يجب معالجتها باستخدام إحدى أدوات التصميم مثل Photoshop أو أي برنامج آخر وذلك لتحديد أبعاد الصورة (العرض والارتفاع) وأيضاً تصغير حجم الصورة إلى أصغر حجم ممكن بدون التأثير على دقة الصورة ووضوحها إضافة إلى حصر أنواع الصور في الأنواع التالية:
  • JPG
  • PNG
  • GIF

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

  • أمثلة أبعاد وحجم الصورة قبل إدراجها في أي صفحة من صفحات البوابة (راجع الفقرة السابقة).
  • يجب أن تكون الصورة على علاقة بالمحتوى النصي.
  • وضع نص مختصر يصف محتوى الصورة وغالباً هذا الوصف يكون تحت الصورة مباشرة أو فوق الصورة وطبعاً هذا يساعد أي زائر من زوار الموقع على معرفة محتوى الصورة, كما في الشكل التالي:

  • وضع نص بديل للصورة وهو ما يسمى Alternate Text حيث يظهر هذا النص عند وضع مؤشر الفأرة على الصورة أو في حال أن الصورة غير موجودة عندها يظهر النص بدلاً من الصورة إضافة إلى أن محركات البحث Search Engines تأخذ هذا النص بعين الاعتبار عند فهرسة الصورة وطبعاً هذا يعطي فرصة أكبر للصورة لكي تظهر في نتائج البحث, ويمكن مشاهدة مثال عن ذلك في الشكل التالي:

  • تحديد أبعاد الصورة بشكل صريح سواء في الشيفرة أو أثناء استخدام إحدى أدوات إدراج الصور في البوابة لأن تحديد أبعاد الصورة بشكل صريح يسرع من عملية تحميل الصورة للمستخدم إضافة إلى أن حيز عرض الصورة يكون محدود ضمن الأبعاد التي تم تحديدها وهذا يحافظ على شكل الصفحة أثناء تأخر عملية عرض كامل عناصر الصفحة, وكمثال يمكن مشاهدة الشكل التالي:

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

والأفضل أن يتم كتابة "الخدمات الإلكترونية" على الصورة مباشرة باستخدام إحدى أدوات تحرير الصور كما في الشكل التالي:

طبعاً ويترك لمختص التصميم لون وشكل وطريقة إدراج النص داخل الصورة.

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

الروابط التشعبية في البوابة الإلكترونية

لا يوجد موقع بدون روابط هذه قاعدة أساسية يجب الانتباه إليها مما يعني بأن الرابط التشعبي Hyperlink هو أحد العناصر الرئيسية في البوابات الإلكترونية لذلك يجب الانتباه إلى طريقة إدراج الروابط في صفحات البوابة وأخذ النقاط التالية بعين الاعتبار:

  • وضع وصف لكل رابط من روابط البوابة ويظهر هذا الوصف عند وضع مؤشر الفأرة فوق الرابط كما أن محركات البحث تأخذ هذا الوصف بعين الاعتبار عند فهرسة الصفحة مما يعطي الرابط فرصة أكبر للظهور في محركات البحث, ويجب الأخذ بعين الاعتبار في حال أن الرابط يشير إلى صفحة داخل البوابة عندها يجب أن يبدأ وصف الرابط بعنوان البوابة ومن ثم يتم ذكر عنوان الصفحة التي يشير إليها الرابط, وكمثال على ذلك:

  • عدم وضع شيفرة جافا سكريبت بدلاً من الرابط لأن ذلك يؤدي إلى مشاكل في فهرسة الصفحة التي يشير إليها الرابط من قبل محركات البحث.
  • في حال وجود محتوى نصي يحتوي على إشارة إلى موقع آخر أو صفحة أخرى عندها يجب إدراج رابط الموقع أو رابط الصفحة داخل المحتوى النصي ويفضل أن يكون بلون مختلف عن لون النص بحيث يستطيع قارئ المحتوى النصي الانتباه إلى وجود رابط.

الملفات الرقمية في البوابة الإلكترونية

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

  • توفير الملف بجميع الصيغ الممكنة وخاصة pdf, doc, zip وذلك للأسباب التالية:
  • إتاحة الفرصة لجميع زوار البوابة للاستفادة من محتوى الملف فبعض الملفات قد تكون ذات أحجام كبيرة وبالتالي فإن صيغة الملف zip قد تكون مناسبة للزوار الذين يستخدمون اتصال غير سريع.
  • توفير نفس الملف بصيغ مختلفة يزيد عدد الملفات التي ستتم فهرستها من قبل محركات البحث وبالتلي تحسين تواجد البوابة على الشبكة العنكبوتية.
  • في التقييم التي تجريه بعض الجهات لقياس أداء وجودة البوابات الإلكترونية تؤخذ بعين الاعتبار أعداد الملفات مثل doc, pdf, zip.
  • يجب وضع عنوان مناسب لكل ملف (العنوان ليس اسم الملف) بحيث يعبر ولو بشكل مختصر عن محتوى الملف.
  • عند وضع رابط لتحميل الملف أيضاً يجب وضع رابط لكل صيغة من صيغ الملف pdf, doc, zip … ويفضل وضع أيقونة تعبر عن نوع الصيغة إلى جانب الرابط وأن يكون عنوان الرابط يعبر عن اسم الملف وعدم استخدام عبارة انقر هنا أو تحميل, طبعاً لأن هذا يساعد محركات البحث على فهرسة الملفات التي تشير إليها الروابط بشكل أكثر دقة.
  • في حال تحويل ملف نصي إلى pdf فيجب تحويله بصيغة نصية وليس على شكل صور لأن ذلك يمنع محركات البحث من فهرسة محتوى ملف الـ pdf.
  • تجنب رفع ملفات ذات أحجام كبيرة وتقسيمها إلى أجزاء عند إمكانية تنفيذ ذلك, حيث أن الملفات الكبيرة قد لا يستفاد منها لأن تحميلها يحتاج إلى وقت طويل إضافة إلى أن بعض محركات البحث تحدد حجم معين للملفات التي ستتم فهرستها.