أعلنت شركة مايكروسوفت عن إقامة سلسلة من المحاضرات والدروس التقنيّة للمطوّرين المبتدئين والمتقدّمين على حدٍّ سواء لرفع كفاءاتهم وخبراتهم في استخدام أدوات مايكروسوفت البرمجيّة والتطويريّة، هذا الحدث موّجه خصيصًا للشرق الأوسط وسوف يُقام في مدينة دبيّ – دولة الإمارات العربيّة المتّحدة، بالتحديد في مركز دبي الدولي للمؤتمرات والمحاضرات.
الحدث الَّذي أُطلق عليه tech.ed middle east سوف يستمرّ لمدّة 3 أيّامٍ فقط، ليبدأ من تاريخ 1 وحتّى 3 مارس 2010.
وصفت مايكروسوفت هذا الحدث بأكبر حدث تدريبيّ لعام 2010، ففي 3 أيّامٍ سوف تُقام 100 جلسة تعليميّة يلقيها خبراء من شركة مايكروسوفت في مواضيع مهمّة جدًا ومختلفة، مثل: الأمنية، تقصّي الأعمال، مايكروسوفت سيرفر، مايكروسوفت سيلفرلايت، مايكروسوفت موبايل،.. وغيرها.
لولا سحرها لما استطعنا الجلوس بمتعةٍ وسعادة أمام هذا الجهاز الأخرق لمدّة ساعاتٍ متواصلة دون أن نُصاب بالملل أو الإرهاق.
من البديهيّ إذاً أن يولّي المصممين اهتمامًا طاغيًا بهذا العنصر، فمهما كان التصميم متقنًا وجبارًا إلاّ أنّه يسقط إذا صُبغ بألوانٍ منفّرة أو غير متناسقة.
بعض الأشخاص لديهم حسّ عالي فطري بالألوان، يمكنهم حتّى أن يدمجوا بين البنفسجي والأحمر والأخضر بدرجاتٍ مختلفة ليخرجوا لك بلوحةٍ فنيّة خياليّة، باستطاعتهم أيضًا أن يستخدموا اللون الرماديّ فقط ليصمّموا لك موقعًا مدهشًا ورائعًا.
لكن يحتاج غالبيّة المصمّمين -بالذات المبتدئين منهم- إلى المساعدة في اختيار الألوان المناسبة والتنسيق بينها، بحيث تعطي مظهرًا جميلاً وأخاذًا للموقع أو التصميم مع مراعاة قابلية الاستخدام – كما تحدّثت نوال هنا.
لهذا السبب، برزت العديد من المواقع الّتي تقدّم للمصمّم المساعدة في اختيار مجموعة من الألوان المناسبة والمتناسقة / بما يُعرف عادةً بـ color schema أي “مخطط الألوان”، هذه المخططات تتكوّن من لونين أو أكثر تجمع بينهما علاقة رياضيّة تعتمد على خوارزميات تنسيق الألوان.
اليوم سوف نستعرض في عالم التقنيّة بعض المواقع الَّتي تقدّم مثل هذه الخدمات، نرجو أن تنالوا الفائدة منها، ليس في التصميم الرقمي فحسب، وإنّما في سائر جوانب حياتنا الملوّنة مثل ألوان جدران المنزل وأثاثه وألوان الملابس والأحذية والحاجيات.
يوفر متصفح الفايرفوكس صندوق للبحث في عدّة مواقع ومحرّكات بحث مثل amazon و Google وغيرها، بعض المواقع الَّتي لا يوفّر لها الفايرفوكس search engine plugin يتمّ توفير إضافة خاصّة بها للمستخدم – مثل محرّك البحث bing.
بالمناسبة، ما هي الـ search engine plugin تقنيًا؟
هي عبارة عن ملفات xml! كلّ محرّك بحث له ملف xml خاصّ به في مجلّد Mozilla Firefox/search plugins، بمجرّد معرفتنا بذلك فإنّنا نستطيع إنشاء إضافة لأيّ موقع يقدّم خدمة البحث عن طريق إنشاء ملف xml يحتوي على بياناته.
screencast: بسيط يوضّح كيفيّة إنشاء إضافة للبحث عن الصور في محرّك bing، الأفضل أن تشاهد الفيديو بحجم كامل الشاشة:
كنتُ أرجو الاكتفاء بهذا الفيديو للشرح، لكن لا بدّ من توضيح عناصر ملف الـ xml للـ search plugin:
كيف تتابع الأخبار في منزلك؟
تستخدم الرسيفر لاستقبال ترددات الكثير من القنوات الفضائية، كل قناة تحتوي على عدد من البرامج والمحاورات والنقل المباشر، بجهاز تحكم واحد فقط تستطيع التنقل بين هذه القنوات دون بذل أدنى جهدٍ أو وقت. تخيّل لو توجّب عليك تركيب رسيفر لكلّ قناة، كم سيكون الأمر مكلفًا ومرهقًا، وربّما توقّفتَ عن متابعة أغلب البرامج المهمّة بسبب هذا الشيء.
كيف تتابع الأخبار على الويب؟
إذا اخترتَ أن تزور كلّ موقعٍ بشكل مستقل فكأنّك تختار تركيب رسيفر خاصّ بكلّ قناة على التلفاز! أمّا إذا اخترت متابعة المواقع عبر قارئ الخلاصات، فكأنّك تستخدم رسيفر واحد لمتابعة جميع القنوات المفضّلة دون أن يفوتك برنامج. وقارئ الخلاصات يعمل عمل الرسيفر، حيث يستقبل تحديثات الكثير من المواقع عن طريق ملفات الـ RSS الخاصّة بها.
فما هو ملف الـ RSS تقنيًا؟
الـ RSS عبارة عن ملفّ مبني بلغة XML، يمثّل قناةً معينة لأحد المواقع “أو جزءٍ منها”، كلّ قناة تحتوي على عددٍ من العناصر، كلّ عنصر يحوي “ملخصًا” بمحتويات الموقع مثل: اسم كاتب المقالة، رابط الصفحة، عنوان المقالة ، وصف له أو مقطع بسيط منه. مرّت ملفات الـ rss بتاريخ عريض وطويل، و” الزبدة” أنّه أصبح لدينا نسختين مشهورتين من الـ rss: هما (RSS1.0 , RSS2.0).
RSS1.0: هي ملفات بُنيت على ملفات تسمى RDF، هذه الملفات مبنية على لغة XML والهدف منها هو تقديم معلومات حول الموقع مثل اسم الموقع ورابطه واسم الكاتب.
RSS2.0: بُنيَت أساسًا على ملف XML وهو آخر إصدارات الـ RSS، إذ ظهر بعدها ما يُسمّى بالـ”Atom”.
فرق استخدامهما بالنسبة للمطورين قد لا يكون كبيرًا ، مجرّد فروقاتٍ نحويّة ، ما يجب وضعه بالحسبان هو أنّ لغة XHTML بُنيَت بواسطة XML لذلك /
1- XHTML خاضعة لقوانين وشروط لغة XML النحوية بعكس لغة HTML الَّتي لا تخضع لأيّ شروط أو قواعد .
2- متصفّحات الإنترنت تستخدم متتبع خاصّ لقراءة وسوم لغة HTML .
لكنّها تستطيع استخدام المتتبع الخاصّ بلغة XML عند قراءتها لوسوم لغة XHTML .
لذلك الخضوع لقواعد XML يؤهل الموقع للعرض الصحيح عبر وسائط أخرى غير المتصفحات التقليديّة .
3- في تقنية الـ DOM عبر الجافاسكربت ، نستخدم الأمر document.write أو document.writeln للكتابة في صفحة الـ HTML ، لكنّها لا تعمل مع الـ XHTML .
في الـ XHTML نستخدم Document.getElementById(“content”).InnerHTML .
4- لقراءة تفاصيل علميّة دقيقة حول الفرق بين اللغتين أنصحكم بزيارة هذا الرابط .
.
.
XML Schema /
اختصارًا XSD : لغة لكتابة ملفات مرافقة لملفات XML ، نعرّف بواسطتها عناصر الـ XML بتحديد نوعها ونوع بياناتها ووضع شروط وقواعد لها .
وهي الملفات البديلة عن ملفات DTD الَّتي كانت تُستخدم سابقًا لهذا الهدف ، وتكمن قوّة XML Schema في أنّها مبنيّة بواسطة XML وتحمل مميزاتٍ أكبر من سابقتها .
تحدّثنا في الدرس الثاني عن الهيكليّة الشجريّة لملفات XML ، وقلنا بأنّه من الجائز أن نعطي نفس الاسم لأكثر من عنصر لأنّ الوصول إلى العناصر لا يتمّ عبر اسمها فحسب . في الدرس الثالث وضعنا مثالاً تطبيقيًا لإنشاء ملف XML يحمل بيانات كتّاب عالم التقنيّة .
الآن ، ماذا لو أردنا الوصول إلى بيانات كاتبٍ معين ، عن طريق رقم الـ id الخاصّ به مثلاً .. أو عن طريق اسمه أو رابط مدونته ؟
إنّ معرفتنا لاسم العنصر الَّذي يحمل بيانات الكاتب الواحد وهو <author> لا يكفي ، لا بدّ إذًا من وجود طريقة تساعدني على الوصول إلى عناصر معيّنة ، بعبارةٍ أخرى أسلوب للإبحار في ملفات XML ” XML Files Navigation ” .
توجد طريقتين لذلك وهما :
1- استخدام لغات مخصّصة للاستعلام في ملفات XML ، وعلى رأسها :
XPath ، XQuery
هذه اللغات تقدّم أسلوبًا معيّنًا للبحث في ملف XML بالاعتماد على وجود معلوماتٍ حول العناصر ، على سبيل المثال :
اسم العنصر .
اسم أحد أبناءه .
اسم العنصر الأب .
قيمة إحدى الصفات .
2- التعامل المباشر مع الهيكل الشجريّ لملف الـ XML ، وهنا يكون الوصول للعنصر عن طريق تتبع المسار الوراثي له .
بالنسبة للغة XPath فسوف نتناولها بالتفصيل في الجزء الثاني من الدورة بإذن الله ، أمّا درسنا اليوم فسوف نتحدّث فيه عن الطريقة الثانية .
مع ملاحظة أنّنا نستطيع الجمع بين الطريقتين أثناء البرمجة .
.
.
افتح ملف techwldAuthors.xml الذي قمنا بإنشائه في المرة السابقة عبر المتصفح .
لاحظ الهيكلية الشجرية التي تحدثنا عنها في الدرس الأول ، فهم هذه الهيكلية مهمّ جدًا للتعامل مع عناصر الـ XML برمجيًا .
نبدأ الدرس الثالث بالإجابة عن السؤال الَّذي وردنا من أكثر من زائر في الدرس الثاني ، وهوَ :
ما هي فائدة استخدام الصفات attributes ، وما الفرق بينها وبين العناصر ?
تقنيًا ، يمكنك استخدام أيٍ منهما في حفظ ما تشاء من البيانات ، طريقة الاستعلام عن البيانات في كل منهما وتعديلها وقراءتها متشابهة أيضًا .
من ناحيةٍ عمليّة ، الصفات تُستخدم غالبًا في كتابة بيانات خاصّة بالعنصر نفسه ، رقم الـ id ، رقم التصنيف ، النوع .. إلخ ، هذه البيانات يستفيد منها المطوّر ولا تهمّ المستخدم ، أمّا البيانات الَّتي يمكن الاستفادة منها حتّى مع عزلها عن العناصر الأخرى ، فيفضّل أن تُكتب في عنصرٍ مستقلّ .
أيضًا ، اللغات الَّتي بُنيت بواسطة الـ XML مثل : XSLT استفادت من الصفات ، كما سنرى لاحقًا إن شاء الله .
في النهاية ، اختيار وضع البيانات في صفة أو عنصر مستقل يعود إلى رأيك الشخصيّ .
قواعد كتابة ملف الـ XML :
1- يجب أن يكون لكل وسم فتح وسم إغلاق ، لا يُسمح لي أن أفتح وسمًا بدون إغلاقه ، وهذه هي إحدى الفروقات النحوية الهامّة بين XMLوHTML ، ففي لغة HTML تستطيع فتح وسمٍ بدون إغلاقه مثل وسم <img> .
ورغم ذلك ، فقواعد الـ XML تسمح للمطورين بكتابة وسوم مفردة شريطة أن يتمّ إغلاق الوسم في وسم الفتح نفسه .
وكمثال ، نعود لملف الـ XML الذي قمنا بإنشائه في الدرس السابق :
هي أحد أشهر أشكال تنظيم البيانات في الحاسوب ، حيث تخزّن البيانات في وحداتٍ Nodes متفرّعة عن بعضها البعض ، تبدأ من الجذر Root الَّذي يحمل جميع الوحداتِ الأخرى ، وتنتهي بالأوراق Leaves الّتي لا تتفرّع عنها أيّ وحدات ، ومن هنا جاء الاسم treelike structure ، غير أنّ الفرق بين الشجرة الحقيقيّة وشجرة البيانات هو أنّ جذر الشجرة الحقيقيّة يكون في الأسفل بينما تكون أوراقها في الأعلى ، لكنّ جذر شجرة البيانات يكون في الأعلى وتكون الأوراق في الأسفل .
ولكلّ وحدةٍ من هذه الوحدات اسمًا تُعرف به ، ولا يوجد حرجٌ من أن تحمل أكثر من وحدة نفس الاسم ، فالوصول إلى الوحدات لا يعتمد على اسمها فقط ، بل يعتمد على المسار الذي تعبره لتصل إليها .
إنَّها تنتمي لعائلة لغات الترميز “Markup Languages” الَّتي تنتمي إليها أيضًا لغة HTML المعروفة.
هذه العائلة تنحدر عن اللغة الأمّ المسمَّى بـ SGML والَّتي ظهرت لأوّل مرَّةٍ في عام 1960 أي قبل ظهور الويب بكثير “30 عامًا تقريبًا”، لتساعد على ترميز وتنسيق المستندات والرسائل الإلكترونيَّة المتبادلة عبر الإنترنت.
وتتميَّز عائلة لغات الترميز بوسومها ذات الأقواس المثلثَّة <>، وبهيكليتها الشبيهة بالشجرة TreeLike Structure، بالإضافة إلى أنَّها لا تحتوي على أوامر أو عمليَّات، ووظيفتها تنحصر على ترميز النصوص برموزٍ معيَّنة تفهمها جميع المتصفحات.
·التعريف والوظائف:
ماذا يقول لنا موقع w3schools عند تعريفه لغة XML؟
XML هي اختصار لـ: eXtendable Markup Language أي: لغة الترميز القابلة للتوسّع .
“عمليًا”، بالإمكان اختصار هذه الستة دروس إلى درسٍ واحدٍ فقط، لكنّني أفضّل النهج المنطقي والنظري أولاً قبل التطبيق العمليّ، وأؤمن بانّ تطوير المهارات التقنيّة لن يتحقّق بمجرّد معرفة الأكواد ووظائفها، بل بفهم منطق اللغات والتقنيات ومبادئها، وهذا ما أنتهجه في هذه الدروس -بإذن الله-.
المسافة الزمنيّة بين كلّ درسين هي يومين، لذلك سوف ينتهي الجزء الأوّل بعد أسبوعين -بإذن الله-.
إذا كانت لديك أيّ استفساراتٍ أو ملاحظات، فيمكنك كتابتها كتعليقٍ على الدرس أو المراسلة من “هنا“.
إن أحسنتُ فمن توفيق الله، وإن أخطأتُ فمن نفسي، لا تتردّد بمناصحتنا إذا قرأتَ معلومةً غير صحيحة.