Get it on Google Play تحميل تطبيق نبأ للآندرويد مجانا

صدور FreeCAD 0.18

وادي التقنية

صدور FreeCAD 0.18

بعد سنة تقريبا من إطلاق النسخة ٠.١٧ من برنامج التخطيط الهندسي فريكاد، أعلن فريق التطوير عن إطلاق النسخة ٠.١٨ من البرنامج حاملة معها أكثر من ٢٥٠٠ تغيير وساهم فيها أكثر من ١٠٠ متطوع. تعتبر هذه النسخة مهمة جدا في تطوير نواة فريكاد البرمجية، حيث أصبح البرنامج يدعم بايثون ٣ ومكتبة QT5.

بداية ما هو FreeCAD ؟

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

يعمل فريكاد على منصات متعددة ( ويندوز، ماك، لينكس) ويقرأ ويكتب العديد من الصيغ من مثل STEP و IGES و STL و SVG و DXF وOBJ و IFC و DAE وغيرها الكثير.

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

يقدم فريكاد نفس المميزات التي تقدمها البرامج CATIA و SolidWorks و Solid Edge و يقوم بنفس العمل.

لمن برنامج فريكاد؟

إن كنت هاوي أو محترف وحصلت على مشروع ترغب في بنائه وتحاج إلى صنع مخطط له،على شكل مطبوع 2d أو 3D ؟ قم بتصميمه في فريكاد. فأنت لا تحتاج إلى أي خبرة مسبقة.

أما إذا كنت مستخدم محترف، فإنك ستجد أدوات مماثلة في فريكاد مثل التي توجد في البرامج التجارية.

أهم مميزات هذه الإصدارة:
- توسيع أدوات TechDraw
- تحسين أدوات منضدة الإنشاءات Arch و BIM
- إضافة أدوات رسم جديدة sketcher وزيادة ثبات واستقرار منضدة PartDesign

الفيديو التالي يشرح أهم مميزات هذه الإصدارة:


لتنزيل البرنامج من هنا.

Fahad السبت, 2019/04/27 - 10:47ص
disqus

April 27th 2019, 3:27 am

صدور Kdenlive 19.04

وادي التقنية

صدور Kdenlive 19.04

مع إطلاق حزمة تطبيقات كدي ١٩.٠٤ أعلن فريق تطوير برنامج كدنلايف لتحرير الفيديو عن إطلاق الإصدارة ١٩.٠٤ وهي إصدارة يطلق عليها في عالم البرمجة "معادة التصنيع refactored" وإعادة التصنيع في عالم البرمجة يعني : "تغيير يصنع في البنيان الداخلي للبرمجية ليجعلها أسهل للفهم وأقل كلفة للتعديل بدون تغيير سلوكه الظاهر" للمزيد حول إعادة التصنيع راجع كتاب "الشفرة الكاملة" الفصل ٢٤. ومن أجل الوصول إلى هذه الإصدارة قضى مطوروا برنامج كدنلايف ثلاث سنوات من العمل المتواصل، في خلال هذه المدة غيروا أكثر من ٦٠٪ من الشفرة المصدرية حيث أضافوا أكثر من ١٤٤ ألف سطر وحذفوا أكثر من ٧٤ ألف سطر.  وتعتبر هذه الإصدارة هي الأكبر لهذا البرنامج حيث جلبت مميزات جديدة وحسنت من استقرار البرنامج وزادت من سرعة البرنامج، والأهم من ذلك جعلت صيانة البرنامج وإصلاح العلل وإضافة مميزات جديدة أسهل.
المميزات الجديدة:
- إعادة تصنيع خط الزمن بحيث فصل الفيديو عن الصوت وأصبحا منفصلين، فعندما تسحب مقطع مرئي إلى خط الزمن فإن المقطع سينفصل حيث يذهب الصوت إلى متتبع الصوت والفيديو إلى متتبع الفيديو.


- أصبح مخطط المقاطع قابل للتخصيص بحيث أصبح من الممكن إعادة تحجيم المقاطع بشكل منفصل.


- أضيفت ميزة التنقل باستخدام لوحة المفاتيح، فيمكنك الآن تحريك المقاطع ودمجها باستخدام لوحة المفاتيح.


- أضيفت ميزة تسجيل الصوت إلى البرنامج بحيث يمكن من تسجيل صوتك أثناء تشغيل المشروع مفيدة لعمل الدروس التعليمية.


- تحسينات كبيرة في تأثير السرعة.
- إعادة ترتيب التأثيرات إلى ثلاث مجموعات الرئيسة تحتوي أهم المؤثرات الصوتية والمرئية و تأثيرات الفيديو وتأثيرات الصوت.

لتنزيل هذه الإصدارة من هنا.

 

admin الجمعة, 2019/04/26 - 8:16م
disqus

April 26th 2019, 12:47 pm

صدور أوبنتو ١٩.٠٤

وادي التقنية

صدور أوبنتو ١٩.٠٤

بعد ستة أشهر من التطوير أعلنت شركة كانونيكل عن إطلاق أوبنتو ١٩.٠٤ والتي تحمل مسمى “Disco Dingo”، هذه الإصدارة هي الإصدارة الرابعة بعد أن قررت أوبنتو التخلي عن سطح مكتبها الخاص يونتي والرجوع إلى سطح مكتب جنوم الشهير. وخلال الإصدارات السابقة عانى سطح مكتب جنوم في توزيعة أوبنتو من بعض الصعوبات على التأقلم وخصوصا من حيث الأداء والسرعة، وأخيرا مع هذه الإصدارة أصبح سطح مكتب جنوم ٣.٣٢ يعمل بسلاسة من دون مشاكل في الأداء.
تأتي هذه الإصدارة أيضا بنواة لينكس ٥.٠ والتي أضافت دعم للعديد من العتاد من مثل:  AMD FreeSync و Raspberry Pi touchscreens و طقم تشفير  Adiantum.
وهذه قائمة مختصرة بأهم المميزات:
- تحسين أداء سطح المكتب
- جنوم ٣.٣٢
- خيار لنمط الرسوميات الآمن.
- نواة لينكس ٥
- تحديث ثيمة سطح المكتب
- إضافة تمديد لأيقونات سطح المكتب.
- دعم تكبير الشاشية بطريقة كسرية.
- إضافة ميزة النجمة للملفات في متصفح الملفات Nautilus.

هذه الإصدارة لا تقدم لها كانونيكل دعما طويل الأجل إلا أنها تمهد الإصدارة القادمة طويلة الدعم ٢٠.٠٤.

يمكنك تنزيل هذه الإصدارة من هنا.

admin السبت, 2019/04/20 - 3:25م
disqus

April 20th 2019, 7:56 am

تعلم البرمجة

وادي التقنية

تعلم البرمجة

هذه المقال ة نشرها زميلنا عبداللطيف ايمش على موقع أكاديمية حسوب ونقلناها هنا للفائدة.

"أريد تعلم البرمجة لكنني لا أعرف من أين أبدأ!" هذه هي أكثر عبارة تتردد على سمعي من حديثي العهد بالبرمجة، إذ يأتيني هذا السؤال مرارًا وتكرارًا؛ وفي كل مرة أحاول أن أجيب عنه في سياقه، أجد أنني أضيف معلومات جديدة على إجاباتي السابقة، لذا قررت كتابة هذا المقال بعنوان "تعلم البرمجة" لعله يفيد الراغبين في تعلم تطوير التطبيقات في بدء رحلتهم مع البرمجة.

جدول المحتويات

حرصًا على تنظيم المقالة ولتسهيل الوصول إلى القسم الذي تريده بسهولة، سنذكر هنا جدول المحتويات باختصار:

ما هي البرمجة؟

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

إليك المثال العملي التالي الذي يشرح ماهية البرمجة:

إن كنت تتوقع زيارة صديق لك اليوم، واتصل بك ليقول لك: "أنا واقف بجانب الحديقة ولا أعرف كيف أصل إلى منزلك". أنت عادةً تمر كل يوم من جانب الحديقة وتعرف الطريق بينها وبين منزلك شبرًا بشبر. برأيك هل ينفع إن قلت له: "منزلي معروف وقريب من الحديقة وأنا كل يوم أمر من جانبها"؟ لا، بالتأكيد. تحتاج إلى أن تقسِّم المشكلة إلى أجزاء تمثل خطوات بسيطة يستطيع صديقك فهمها وتنفيذها.

مثلًا، أخبره أن ينفذ الأوامر التالية: "سر إلى الأمام عشرة أمتار" ثم "اتجه إلى اليمين" ثم "سر إلى نهاية الشارع" ثم "اتجه إلى اليسار". أخبره بعد ذلك: "عُدَّ الأبنية الموجودة على اليسار حتى تصل إلى البناء الرابع" ثم "اصعد إلى الطابق الثاني" ثم "اطرق على الباب الذي سيظهر أمامك". مبارك! بهذه الطريقة، تستطيع أن تدل صديقك على منزلك بدقة. البرمجة هي الشيء نفسه تمامًا. فهل ترى التعابير المكتوبة بين قوسين؟ إنها التعابير التي تكتب بإحدى لغات البرمجة والتي تخاطب الحاسوب بدلًا من صديقك السابق.

لغات البرمجة هي مجموعة من المفردات والقواعد اللغوية التي تشكل لغةً وسيطةً للتخاطب مع الحاسوب وأمره بتنفيذ تعليمات وأشياء محدَّدة. فلا الحاسوب يفهم لغة البشر ولا البشر يفهمون لغة الحاسوب، لذا كان هنالك حاجة ملحة لوجود لغة وسيطة يفهمها كلاهما؛ نتيجةً لذلك، انبثق مفهوم لغة البرمجة.

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

يهتم المبرمج بالتفكير في تسلسل الخطوات التي على الحاسوب القيام بها لإتمام العمل المطلوب منه (مثل حساب العمر اعتمادًا على تاريخ الولادة)، ثم كتابة هذه الخطوات بترتيب منطقي بإحدى لغات البرمجة.

ربما لاحظتَ في الجملة السابقة أن جزءًا من مهمة المبرمج هو التفكير المنطقي، وهذا يجعلنا ننتقل إلى السؤال الشائع "هل أستطيع تعلم البرمجة وأصبح مبرمجًا؟" أو "هل أنا مؤهل لأصبح مبرمجًا؟".

لماذا تتعلم البرمجة؟

يبدو أن تعلم البرمجة ليس بالصعوبة التي توقعتها، لكنك تريد حافزًا يجعلك تتعلم البرمجة.

تسمع كثيرًا أن البرمجة هي مجال المستقبل، وأن وظائف المبرمجين ستكتسح مجال التوظيف في السنوات القادمة؟ أستطيع أن أؤكد لك ذلك، كما أنَّ وظائف البرمجة هي من أعلى الوظائف دخلًا.

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

وظائف البرمجة مريحة عمومًا، فالعمل كله مكتبي أمام حاسوب في بيئة مريحة ومناسبة، وأغلبية الشركات تتبع نظام العمل 40 ساعة في الأسبوع (أي 5 أيام لمدة 8 ساعات يوميًا)، ولا تغفل عن قدرتك على العمل عن بعد من خلال الانترنت أو كمستقل في أوقات فراغك.

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

ما عليك معرفته لتصبح مبرمجًا

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

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

التفكير المنطقي

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

الخوارزميات

كلمة "الخوارزميات" هي الكلمة المرعبة التي ينفر منها البعض، فكل ما يتخيلونه عند ذكرها هو الرياضيات المعقدة والمعادلات الطويلة والرموز العجيبة، لكن الأمر بسيط جدًا؛ فالخوازرميات هي تطبيقٌ للتفكير المنطقي في خطوات متسلسلة واضحة تمامًا لحل مشكلة ما.

لكي أوضِّح لك أن الخوارزميات ليست أمرًا معقدًا، سأخبرك بكيفية كتابة برنامج يسأل المستخدم عن سنة ميلاده، ثم يعيد عمره الحالي بالسنوات.

  • الخطوة الأولى: إظهار رسالة نصية نطلب فيها من المستخدم إدخال تاريخ ميلاده.
  • الخطوة الثانية: تخزين سنة الميلاد التي أدخلها المستخدم.
  • الخطوة الثالثة: الحصول على السنة الحالية.
  • الخطوة الرابعة: طرح مدخلات المستخدم من السنة الحالية.
  • الخطوة الخامسة والأخيرة: إظهار الناتج.

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

إطارات العمل

كلمة أخرى شائعة جدًا في عالم البرمجة هي "إطارات العمل" frameworks، إطارات العمل هي مجموعة من الشيفرات البرمجية التي تسهل على المبرمج إنشاء التطبيقات، بتوفير وحدات جاهزة تقدم خدمات مثل تسجيل المستخدمين، وإرسال البريد الإلكتروني، والتعامل مع قواعد البيانات. أي يمكنك أن تعدّها أدوات برمجية تساعدك في برمجة تطبيقك وتسهِّل لك فعل ذلك.

الأدوات اللازمة للبدء في تعلم البرمجة

تحتاج إلى حاسوبٍ بمواصفات جيدة (ليس من الضروري أن يكون من أفضل الحواسيب، وإنما أن يمتلك مقدارًا جيدًا من الذاكرة العشوائية). لا ننصح بمواصفات معينة أو نظام تشغيل معين، استعمل ما يحلو لك وما ترى نفسك معتادًا عليه (سواءً كان ويندوز أو لينكس أو ماك).

ستحتاج أيضًا إلى اتصالٍ جيد بالإنترنت للوصول إلى المواد التعليمية، ولتنزيل البرمجيات والمكتبات اللازمة للتطوير.

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

  • المحررات النصية: مثل Visual Studio Code أو Atom أو Sublime Text أو Bracktes أو Notepad++‎. وهذه المحررات النصية تكون بسيطة في أغلبها، وتوفر ميزات أساسية مثل تلوين الشيفرات، وبعض ميزات الإكمال التلقائي، وتدعم أغلبيتها إضافات لزيادة وظائفها. وظيفة هذه المحررات النصية عمومًا هي تعديل الشيفرات بسهولة وسرعة. ننصحك بتجربة Visual Studio Code لشهرته حاليًا وكثرة إضافاته ودعمه الممتاز من شركة Microsoft.
  • بيئات التطوير المدمجة: مثل Visual Studio و Eclipse و Android Studio و NetBeans و Apple Xcode وغيرها. وهذه البيئات توفر ميزات أكثر بكثير من المحررات النصية، مثل تشغيل الشيفرات وتنقيحها (debugging) وميزات التحكم بالإصدارات والاتصال بقواعد البيانات وخلاف ذلك.

لماذا هناك العديد من لغات البرمجة؟

قد تتساءل، لماذا هناك العديد من لغات البرمجة؟ أليست هذه اللغات كلها تنفذ الهدف ذاته؟ لماذا لا يكون هنالك لغة موحدة بين المبرمجين والحاسوب؟

الحقيقة أنّه توجد لغة برمجة واحدة ولكن ليست إحدى اللغات التي تراها أمامك في الصورة. اللغة التي نشير إليها هي "لغة الآلة" التي يستطيع معالج الحاسوب قراءتها وفهمها. أتتساءل ما هي لغة الآلة وكيف تبدو؟ إليك مقطعًا منها:

معلومٌ أنّ معالج الحاسوب لا يفهم شيئًا سوى الأصفار والواحدات، وهذه اللغة -أي لغة الآلة- هي تمثيل للأصفار والواحدات بطريقة تخبر الحاسوب بما يجب عليه فعله. الجدير بالذكر أن هذه اللغة عصية الفهم على البشر، إذ حتى إن استطعت كتابة شيفرة مثل الشيفرة الموضحة بالصورة (كما في السنوات الأولى من بداية اختراع الحاسوب)، لن يفهمها الآخرون ولن يستطيع أحد التعديل على الشيفرة وتطويرها لاحقًا باستثنائك.

سعيًا لإيجاد لغة قريبة من لغة البشر، انقسمت لغات البرمجية إلى قسمين: لغات البرمجة منخفضة المستوى، ولغات البرمجة عالية المستوى وذلك تبعًا لمدى قربها من لغة الآلة أو لغة البشر على التوالي. أي أنّ لغات البرمجة منخفضة المستوى هي اللغات الأقرب للغة الآلة آنفة الذكر مثل لغة التجميع، ولغات البرمجة عالية المستوى هي اللغات الأقرب للغة البشر مثل لغة بايثون وجافا.

تنفيذ البرامج المكتوبة بلغات برمجة عالية المستوى

الحديث عن اللغات عالية المستوى واللغات منخفضة المستوى يقودنا إلى الحديث عن كيفية تنفيذ المعالج للشيفرة المكتوبة بلغة عالية المستوى لا يفهمها المعالج (أليس هذا ما تفكر به الآن؟).

عرفنا أن المعالج يفهم الأوامر والتعليمات المكتوبة بلغة منخفضة المستوى (لغة الآلة)، إذ مَثَلُ هذه العملية كمَثَلِ شخصٍ أجنبي تعلم اللغة العربية وبدأ التحدث مع ناطقٍ باللغة العربية، إذ يمكن لهما التواصل مباشرةً - ليخبر كل منها ما يريد من الآخر فعله - دون وسيط. أمَّا مَثَلُ كتابة برنامج بلغة عالية المستوى أقرب إلى لغة البشر والطلب من الحاسوب تنفيذه كمثل ناطق باللغة الهندية يريد التخاطب مع ناطق باللغة العربية دون أن يفقه أحدهما لغة الآخر. في هذه الحالة، لن يستطيع أحدهما فهم ما يتكلم به الآخر وستفشل عملية التواصل. قد تقول: لماذا لا يحضران مترجمًا يترجم ما يقوله كل منها للآخر؟ حسنًا، هذا ما يحصل تمامًا عندما يراد تنفيذ برنامج بلغة لا يفهمها معالج الحاسوب.

في اللغات البشرية، هنالك نوع واحد من المترجمين يعرفه الجميع للترجمة من لغة إلى آخرى؛ أما في لغات البرمجة، هنالك نوعان من المترجمين بين اللغات هما: المفسر، والمترجم. بناءً على ذلك، تنقسم لغات البرمجة إلى لغات مفسرة ولغات مترجمة. (من الآن وصاعدًا، كلما ذكرنا لغات البرمجة، فنحن نشير إلى لغات البرمجة عالية المستوى.)

  • المفسر (interpreter): وهو برنامج خاصٌ يفسِّر الشيفرة المصدرية لبرنامج مكتوب بلغة عالية المستوى سطرًا بسطر ويحولها إلى لغة منخفضة المستوى لينفذها الحاسوب مباشرةً.
  • المترجم (compiler): وهو برنامج خاصٌ يحوِّل الملفات المصدرية لبرنامج مكتوب بلغة عالية المستوى إلى ملف تنفيذي مكتوب بلغة الآلة دفعةً واحدةً، ثم يمكن تشغيل الملف التنفيذي على الحاسوب للقيام بالمهمة المطلوبة.

لماذا يوجد الكثير من لغات البرمجة عالية المستوى؟

الآن وبعد أن عرفت الفرق بين لغة الآلة ولغة البشر، لربّما ما زلت تتساءل عن كثرة اللغات البرمجية عالية المستوى المتوافرة وعدم وجود لغة واحدة. نستطيع القول أنك خطوت خطوةً جيدةً للأمام إذ أصبحت الآن أكثر دقة. جواب سؤلك هو أنّ كل لغات البرمجة تُستخدم لتحويل فكرة منطقية إلى سلسلة أوامر يمكن للحاسوب أن ينفذها. فعلى سبيل المثال لا الحصر يمكنك استخدام أي من Ruby أو Java أو Python أو C#‎ أو Go أو JavaScript لبناء موقع ويب. لكن يمكنك أن تعدّ لغات البرمجة على أنها أدوات، وكل أداة تسهّل مهمة دونًا عن أخرى. فعلى سبيل المثال، السيارة والحافلة والدراجة والمحراث الزراعي كلها وسائط نقل، لكنها مختلفة الاستخدام؛ فلا يمكنك أن تذهب وعائلتك لقضاء إجازة صيفية مستخدمين المحراث الزراعي، كما لا يمكنك استخدام سيارة سباق في مدينة مكتظة ذات شوارع ضيقة للذهاب بها إلى العمل. مع أن آلية عمل هذه المركبات متشابهة. والأمر سيانٌ بالنسبة إلى البرمجة.

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

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

"حسنًا، اقتنعتُ أن البرمجة مناسبة لي وليست صعبة كما كنتُ أتخيل، من أين أبدأ طريقي في تعلم البرمجة إذًا؟"

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

أنت تعلم أن البرنامج هو سلسلة أوامر ينفذها الحاسوب لحل مشكلة ما، والبرنامج نفسه مكتوب بلغة يفهمها الحاسوب تسمى لغة الآلة.

من الأمور الملحوظة التركيز كثيرًا على لغة البرمجة ذاتها أثناء بداية تعلم البرمجة. سأخبرك حقيقةً صادمةً: "لغة البرمجة التي تستعملها ليست بتلك الأهمية التي تتوقعها"، أنا لا أقول لك أن جميع لغات البرمجة متماثلة أو تُستعمل لنفس الاستعمالات، لكن لا تركِّز كثيرًا على تعلم كيفية الكتابة في لغة برمجة ما وتهمل المفاهيم البرمجية التي تقف وراءها.

المتغيرات والثوابت

عليك أن تتعرف على مفهوم المتغيرات variables المستعمل في جميع لغات البرمجة، والذي يعني إسناد قيمة ما إلى رمز أو كلمة وتخزين هذه القيمة في الذاكرة. فلو أردنا أن نخزن العبارة "Hello World" في متغير ما فنكتب شيئًا شبيهًا بما يلي:

var variable_name = "Hello World";

أي أننا نسند الجزء الموجود على يمين إشارة المساواة إلى المتغير المذكور على يسار إشارة المساواة.

يمكننا أن نستنتج من اسم "المتغيرات" أن قيمتها قابلة للتغيير خلال تنفيذ البرنامج، فيمكننا في مكانٍ ما من الملف المصدري أن نعيد تعريف المتغير السابق بكتابة:

var variable_name = "New value";

أما الثوابت فهي تتشابه مع المتغيرات في كثيرٍ من النواحي، إلا أنك لا تستطيع إعادة تعريف قيمتها بعد تعريفها أول مرة. قد تستفيد من الثوابت عندما تكون متأكدًا تمامًا من عدم تغيير القيمة خلال فترة تنفيذ البرنامج. فلو أردنا تعريف ثابت اسمه pi يحتوي على القيمة 3.14 (والتي سنعرف أنها لن تتغير مطلقًا)، فيمكننا أن نكتب:

const pi = 3.14;

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

الشروط

تدعم جميع لغات البرمجة تعريف شروط تُنفَّذ في حالات معينة. ففي الخوازرمية السابقة التي شرحنا فيها حساب العمر، يمكننا أن نكتب الشرط بالعربية كما يلي:

  • إذا كان (تاريخ الميلاد أكبر من التاريخ الحالي): نقول للمستخدم أن هنالك خطأ
  • وإلا: سنحسب العمر بطرح تاريخ الميلاد من التاريخ الحالي

وإذا أردنا كتابتها بإحدى لغات البرمجة فستبدو شبيهةً بما يلي:

if ( user_birth > current_year ) {
 // ERROR!
} else {
 age = current_year - user_birth;
}

لا تلقِ للأقواس بالًا، فهي جزء من لغة البرمجة، وقد تختلف من لغة لأخرى، وليست موضع اهتمامنا حاليًا.

حلقات التكرار

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

دعنا نعدل الخوارزمية البسيطة لنضيف تكرارًا فيها:

ما أجمل البرمجة! تخيل لو كان عندك ألف مستخدم، وكان عليك حساب أعمارهم، يمكنك بضغطة زر أن تحسبها كلها.

الدوال

الدالة function هي مجموعة من التعليمات البرمجية التي تقبل مدخلات وتعيد القيمة المطلوبة. تكون الدوال عادةً قصيرةً وتقوم بمهمة وحيدة فقط. فمثلًا لو أردنا تعريف دالة باسم divide تقبل عددين، وتعيد ناتج قسمة العدد الكبير على الصغير، فيمكننا أن نكتب الخورزمية الآتية:

مصادر تعلم البرمجة

أول ما سيتبادر إلى ذهنك بعد قرارك تعلم البرمجة هو من أين سأتعلم؟ هنا يأتي دور القسم التعليمي المتكامل في حسوب ليقدم للمبتدئ (والمحترف على حدٍ سواء) محتوى علمي مميز ومبسط.

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

وهنالك قناة للأكاديمية على يوتيوب ننشر فيها دوريًا دروسًا قصيرةً عن تساؤلات محددة ومفاهيم البرمجة وخلافه. لا تنسَ الاشتراك في قناة الأكاديمية لتصلك الفيديوهات الجديدة.

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

لننطلق الآن للتحدث عن مجالات البرمجة الأساسية وما اللغات والتقنيات المستعملة فيها.

تطوير واجهات المستخدم

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

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

تتألف صفحة الويب من مجموعة من المكونات، وتُكتَب هذه المكونات باستخدام لغة HTML، وبعد كتابة البينة الهيكلية للصفحة سنأتي على تنسيقها باستخدام لغة CSS، وهي اللغة المستعملة لإضفاء شكل وهيئة على عناصر HTML. أي أن عناصر HTML تصف محتوى الصفحة (مثل الترويسات والقوائم والمحتوى الرئيسي والفقرات والروابط والصور والفيدوهات)، وقواعد CSS تُعرِّف كيف يجب أن تبدو هذه العناصر (سواءً من ناحية الألوان أو المساحات أو الخلفيات أو الخطوط أو خلاف ذلك).

تأتي لغة JavaScript مكملةً لهما وتستعمل لإعطاء بعض عناصر الصفحة صفاتٍ تفاعلية، مثل شريط متحرك من الصور أو قوائم تظهر عند وقوع حدث معيّن ...إلخ.

هنالك تقنيات كثيرة تستعمل في تسهيل إنشاء الواجهات الأمامية وسنذكر بعضها:

  • إطار Bootstrap لتسهيل تنسيق عناصر الصفحة.
  • مكتبة jQuery لتسهيل التعامل مع عناصر الصفحة باستخدام JavaScript.
  • لغة Sass لإنشاء ملفات CSS بسرعة وسلاسة.
  • أدوات بناء مثل Gulp الذي يسهِّل تحويل الملفات المصدرية للتطبيق إلى النسخة النهائية التي ستعرَض للمستخدم.

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

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

اللغات والتقنيات المستخدمة في تطوير واجهات المستخدم: HTML و CSS و JavaScript و Bootstrap و Sass و jQuery و Gulp.

 

تطوير الواجهات الخلفية

قد تتساءل: ماذا يعني تطوير الواجهات الخلفية (backend)؟ وما الفرق بينه وبين تطوير واجهات المستخدم (frontend)؟ الفرق بينهما هو أن الواجهات الخلفية هي البرمجيات التي تُنفَّذ على الخوادم وتجري عمليات عليها مثل التعامل مع قواعد البيانات والملفات والخدمات الخارجية، أما واجهات المستخدم فهي الصفحات التي تظهر على شاشة الزائر في متصفحه.

سأطرح عليك الخيارات المتاحة أمامك للبدء في مجال تطوير الواجهات الخلفية، وجميع اللغات المذكورة هنا هي لغات ناجحة وقوية ولا يهم أي لغة تختار منها، المهم أن تتطلع على شيفرات بسيطة من كل لغة وتتخذ قرار تعلمها، واحذر من تضييع وقتك في التنقل بين لغات البرمجة والبحث عن أفضلها، فكلُ لغةٍ ممتازةٌ في مجالها.

تعلم البرمجة باستخدام لغة PHP

بعد تبيان الفرق بين واجهات المستخدم والواجهات الخلفية، يمكن القول بأن أشهر لغة لتطوير الواجهات الخلفية هي لغة PHP، وتتفوق على اللغات المنافسة لها أضعافًا مضاعفة.

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

هنالك عدد من البرمجيات المكتوبة بلغة PHP مثل ووردبريس WordPress ودروبال Drupal وميدياويكي MediaWiki (التي تشغِّل ويكيبيديا وموسوعة حسوب) وغيرها الكثير؛ إضافةً إلى عددٍ كبير من إطارات العمل مثل Laravel و Zend و CodeIgniter و Symfony و CakePHP و Yii وغيرها، وهذا ما يدل على إمكانيات اللغة الكبيرة والمجتمع الكبير الذي يحيط بها.

لتعلم تطوير الواجهات الخلفية باستخدام PHP، ننصحك بالتسجيل في دورة تطوير تطبيقات الويب باستخدام PHP المقدمة من أكاديمية حسوب، والتي تحتوي على 19 ساعة فيديو تتوزع على خمسة مسارات تعليمية تبدأ بأساسيات لغة البرمجة PHP للمبتدئين، مرورًا بشرح أمثلة عملية تطبيقية بالتفصيل، ووصولًا لتطوير التطبيقات باستخدام إطار العمل Laravel.

أثناء مشاهدتك للدورة، يمكنك أن تعود إلى موسوعة حسوب للاطلاع على توثيق لغة PHP وإطار العمل Laravel.

اللغات والتقنيات المستخدمة في تطوير تطبيقات الويب باستخدام PHP هي: PHP و Laravel وقواعد البيانات (مثل MySQL و PostgreSQL وغيرها).

 

تعلم البرمجة باستخدام لغة روبي - Ruby

إذا كنتَ تبحث عن لغةٍ أنيقة وسهلة الاستعمال فستجد ضالتك في لغة روبي Ruby فهي من أجمل اللغات وأسلسها كتابةً، وهي لغة برمجة عامة يمكن استخدامها لتطوير مختلف أنواع التطبيقات ومن ضمنها تطوير تطبيقات الويب.

ذاع صيت روبي في تطوير الويب بعد نشر إطار العمل Ruby on Rails (يشار إليه اختصارًا "ريلز"). هنالك إطارات عمل أخرى مثل Sinatra لكن يبقى ريلز أشهرها.

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

أثناء مشاهدتك للدورة، يمكنك أن تعود إلى موسوعة حسوب للاطلاع على توثيق لغة روبي وإطار العمل ريلز.

اللغات والتقنيات المستخدمة في تطوير تطبيقات الويب باستخدام روبي: روبي و ريلز وقواعد البيانات (مثل MySQL و PostgreSQL وغيرها).

 

تعلم البرمجة باستخدام لغة جافا سكربت - JavaScript

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

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

لتعلم تعلم لغة JavaScript لتطوير الواجهات الخلفية من خلال التسجيل في دورة تطوير التطبيقات باستخدام JavaScript المقدمة من أكاديمية حسوب، والتي تحتوي على 13 ساعة فيديو تتوزع على ثلاث مسارات تعليمية تشرح أمثلة عملية تطبيقية شرحًا مفصلًا، وتشرح تطوير الواجهة الخلفية باستخدام Node.js.

أثناء مشاهدتك للدورة، يمكنك أن تعود إلى موسوعة حسوب للاطلاع على توثيق لغة JavaScript وبيئة العمل Node.js.

اللغات والتقنيات المستخدمة في تطوير تطبيقات الويب باستخدام JavaScript: لغة JavaScript وبيئة Node.js وإطار العمل Express.js وقواعد البيانات (مثل MongoDB و MySQL و PostgreSQL وغيرها).

 

تعلم البرمجة باستخدام لغة بايثون - Python

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

الخيارات المتاحة أمامك هي إطار العمل جانغو (Django) وفلاسك (Flask) وغيرها، يمكنك تعلم لغة البرمجة بايثون لتطوير الواجهات الخلفية من خلال قراءة سلاسل المقالات عن تعلم بايثون في قسم البرمجة في أكاديمية حسوب، ثم الانتقال إلى تعلم إطار العمل جانغو أو فلاسك. يمكنك أن تعود إلى موسوعة حسوب للاطلاع على توثيق لغة بايثون.

اللغات والتقنيات المستخدمة في تطوير تطبيقات الويب باستخدام بايثون: لغة بايثون وإطارات العمل المبنية عليها (مثل جانغو وفلاسك) وقواعد البيانات (مثل MySQL و PostgreSQL وغيرها).

تعلم تطوير تطبيقات الجوال

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

النظامان الرئيسيان المسيطران على سوق الجوال حاليًا هما أندرويد ثم iOS. يمكن برمجة تطبيقات أندرويد بلغة Java أو Kotlin (أو غيرهما) وبرمجة تطبيقات iOS باستخدام Swift (وغيرها).

ستكتشف أنَّ عليك تطوير تطبيقين منفصلين تمامًا، واحد لهواتف أندرويد وآخر لهواتف iOS، وذلك يسبب زيادةً في حجم العمل المطلوب وصعوبةً في إدارة التغييرات.

بسبب ذلك، ظهر مفهوم "التطبيقات الهجينة"، وهي تطبيقات تعمل على نظام أندرويد و iOS دون أي تعديلات، وذلك باستخدام تقنيات مشتركة وهي تقنيات الويب. أي أصبح بإمكان مطوري الويب الاستفادة من معلوماتهم في تطوير تطبيقات الجوال باستخدام منصة كوردوفا Cordova.

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

طوِّرت في الفترة الماضية تقنيات أخرى مبنية على JavaScript مثل ReactNative المبنية على مكتبة React.js والتي تسمح للمطورين بكتابة تطبيقات أصيلة (وليست هجينة) باستخدام تقنيات الويب.

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

أثناء مشاهدتك للدورة، يمكنك أن تعود إلى موسوعة حسوب للاطلاع على توثيق منصة كوردوفا.

اللغات والتقنيات المستخدمة في تطوير تطبيقات الجوال: Java و Swift و Kotlin و Cordova و ReactNative.

 

تطوير الألعاب

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

أغلب من يجيب عن تطوير الألعاب يقول "عليك بتعلم لغة C++‎" لكن دعني أفصِّل لك الأمر قليلًا.

برمجة الألعاب تتطلب عملًا كثيرًا من فريق عمل كبير، مدعوم من شركة تجارية. من الصعب على مطوِّر وحيد أن ينشئ لعبة كاملة من الصفر دون فريق.

تُطور أغلبية الألعاب باستخدام محرِّك (engine) والذي يسهِّل الأمر على المطورين ويتيح بيئة تطوير مناسبة للألعاب، ويتيح الميزات الأساسية لجميع الألعاب مثل التحكم بالكاميرا ونمذجة الشخصيات ثلاثية الأبعاد وتحريكها والأمور الفيزيائية الأخرى. هنالك عدد كبير من محركات تطوير الألعاب، ومن المرجح أنك شاهدت شعارها في الألعاب التي لعبتها من قبل، ومن أشهرها: Unreal Engine و Unity.

يمكن التعامل مع هذه المحركات باستخدام عدِّة لغات، مثل C++‎ (وهي أشهرها)، وجافا (خصوصًا للألعاب على هواتف أندرويد) وحتى يمكن استخدام JavaScript في التعامل مع بعضها.

تذكر أنّ الألعاب غير محدودة بتطبيقات سطح المكتب أو الهواتف، فهنالك ألعاب كثيرة تعمل على المتصفحات باستخدام تقنيات HTML5 و JavaScript.

اللغات والتقنيات المستخدمة في تطوير الألعاب: C++‎ و Java و JavaScript ومحركات Unity و Unreal Engine.

تطوير الأنظمة المدمجة

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

هل سمعت أيضًا بمصطلح "إنترنت الأشياء"؟ إنترنت الأشياء هو نظام مدمج متصل بالإنترنت. نعم، بهذه البساطة! لابد الآن أن يتبادر إلى ذهنك الساعات والثلاجات والغسالات الذكية وطائرات الدرون وأنظمة المراقبة عن بعد وأنظمة البيوت الذكية، إذ كلها أمثلة على إنترنت الأشياء.

كيفية برمجة الأنظمة المدمجة

أشهر وأكثر لغة برمجة تستعمَل في برمجة الأنظمة المدمجة وإنترنت الأشياء هي لغة C (أي لغة سي) وكل اللغات المشتقة منها (مثل‎ لغة أردوينو C). تُستعمَل لغة C++‎ كثيرًا في هذا المجال، إذ تعدُّ لغة ذات مستوى أعلى من لغة C لدعمها للبرمجة كائنية التوجه. أضف إلى ذلك أنه بدأ حديثًا استعمال لغة بايثون في برمجة تطبيقات الأنظمة المدمجة مع أنها لم ترتبط تقليديًّا بهذا المجال سابقًا. صحيح أنَّ لغة بايثون ليست بقوة لغة C و C++‎ في هذا المجال إلا أنها تستمد ميزاتها وفعاليتها من المكتبات الهائلة المتوافرة فيها.

بعيدًا عن C وبايثون، تستعمل في مجال الأنظمة المدمجة أيضًا لغات أخرى تنضوي ضمن "لغات توصيف العتاد" (Hardware Description Languages)؛ لغتي VHDL و Verilog هما من أشهر لغات توصيف العتاد المستعملة في هذا المجال. تُستعمَل مثل هذه اللغات في برمجة "مصفوفة البوابات المنطقية القابلة للبرمجة" (FPGA أي Field Programmable Gate Array).

أخيرًا، قد تجد بعض المراجع تشرح برمجة الأنظمة المدمجة بلغة أخرى تدعى "لغة التجميع" (Assembly Language) التي تصنف من اللغات منخفضة المستوى. يتطلب تعلم البرمجة باستخدام هذه اللغة فهمًا واسعًا بمعمارية وحدة التحكم المركزية والمعالج بالمجمل لأنها أقرب لغة يفهمها الحاسوب. الانتقال إلى هذه اللغة قد يكون في مستويات متقدمة من تعلمك لبرمجة الأنظمة المدمجة وتطبيقات إنترنت الأشياء. من ميزات البرمجة بهذه اللغة هي التحكم الواسع بالعتاد والمعالج الذي لا توفره لغات أخرى. يقال أن هذه اللغة صعبة بعض الشيء ومعقدة، ولكن لا أرى ذلك! قد يكون سبب قول ذلك هو أن لغة التجميع هي لغة منخفضة المستوى وأقرب شيء إلى لغة الآلة ولا يستطيع من يلقي نظرة على شيفرة مكتوبة فيها فهمها مطلقًا إن لم يعرفها.

تطوير تطبيقات سطح المكتب

مجال تطوير تطبيقات سطح المكتب كالمحيط الواسع؛ إن لم تملك بوصلة وتعرف إلى أين تريد الاتجاه، ستضيع فيه حتمًا. هنالك الكثير من أنظمة التشغيل أشهرها - وأكثرها سيطرةً على السوق حاليًا - هي: نظام التشغيل ويندوز، ولينكس، وماك (macOS)، ويملك كل نظام تشغيل تطبيقات مكتبية خاصة به. لذلك، يجب عليك أولًا -قبل الدخول إلى سوق برمجة تطبيقات سطح المكتب- تحديد نظام التشغيل المستهدف. أي يجب الإجابة على السؤال التالي: هل يستهدف تطبيقك نظام تشغيل محدد، أم تريد لتطبيقك أن يعمل على عدة أنظمة تشغيل في آن واحد؟!

بعد تحديد نظام التشغيل المستهدف، اطلع على اللغات المفضل استعمالها في ذلك النظام لبرمجة تطبيقاته؛ فعلى سبيل المثال، اللغات C و C++‎  و C#‎ و VB.NET هي الأكثر استعمالًا في برمجة تطبيقات نظام التشغيل ويندوز، واللغات C و C++‎ و Bash هي الأكثر استعمالًا في برمجة تطبيقات توزيعات نظام التشغيل لينكس. أمَّا نظام الشغيل ماك، فينفرد باستعمال لغة Objective-C.

حسنًا، دعني أخبرك الحقيقة، كل لغة برمجة عامية الغرض يمكن استعمالها في برمجة التطبيقات، إذ أشهر اللغات التي تُدرَّس أكاديميًّا في هذا المجال هي لغة جافا (Java). لا يخفى على القارئ دخول لغة بايثون بقوة على هذا المجال نظرًا لامتلاكها الكثير من المكتبات الرائعة وسهولة صياغتها.

دخلت مؤخرًا لغة جافاسكربت على سوق برمجة تطبيقات سطح المكتب عبر إطار العمل Electron (إلكترون)، إذ توظف في هذا المجال تقنيات تطوير الويب (HTML و CSS و JavaScript ...إلخ.). بدأ هذا الإطار ينتشر كالنار في الهشيم مما دفع شركات كبيرة لتطوير تطبيقات سطح المكتب الخاصة بها باستعمال هذا الإطار ومنها شركة Slack التي استعملت هذا الإطار لتطوير تطبيقها المكتبي.

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

كيفية اختيار لغة البرمجة التي تناسبك

يمكنك اختيار لغة البرمجة اعتمادًا على المجال الذي تحب العمل فيه، سألخص لك مسار التعلم لمختلف مجالات العمل:

  • العمل كمطور ويب full-stack: يعني ذلك تعلم تطوير واجهات المستخدم، وتطوير الواجهات الخلفية. يمكن التخصص بمجال واحد من هذين المجالين فقط، إذ يُطلَب كثيرًا في سوق العمل مبرمجين متخصصين في واجهات المستخدم أو الواجهات الخلفية.
  • العمل كمطور تطبيقات للهواتف المحمولة: يمكنك تعلم برمجة تطبيقات أندرويد أو iOS كلًا على حدة، أو استعمال تقنيات مثل كوردوفا للتطوير لكلا النظامين معًا.
  • العمل كمطور تطبيقات سطح المكتب: يمكنك البدء بالتخصص في تطوير تطبيقات مكتبية لنظام تشغيل محدَّد (مثل نظام التشغيل ويندوز أو لينكس) عبر تعلم لغة البرمجة المستعملة في ذاك المجال (كما أشرنا إلى ذلك في قسم تطوير تطبيقات سطح المكتب)؛ خيار آخر هو تعلم اللغات والتقنيات التي تمكنك من تطوير تطبيقات عابرة للمنصات (تعمل على عدة أنظمة تشغيل) مثل استعمال إطار العمل Electron.
  • العمل كمطور للأنظمة المدمجة والأنظمة الذكية: لغة C هي أساس هذا المجال، سواءً كنتَ تتعامل مع المتحكمات مباشرةً، أو تتعامل مع شريحة مثل أردوينو (والتي تمتلك لغةً مشتقةً من C).

نصائح لتعلم البرمجة

مشوار تعلم البرمجة طويل وشائق، وجميل ومسلٍ، لكنك قد تصاب بالإحباط في بداية طريقك لكثرة الأمور التي عليك الإلمام بها، لذا جهزت إليك النصائح الآتية من تجربتي في البرمجة:

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

في النهاية أرجو لك كل التوفيق في مشوارك البرمجي. وأرجو منك أن تشاركنا تجربتك في تعلم البرمجة، لعل غيرك يستفيد منها.

 
Fahad الجمعة, 2019/03/15 - 6:28ص
disqus

March 15th 2019, 12:07 am

إطلاق ليبرأوفيس 6.2

وادي التقنية

إطلاق ليبرأوفيس 6.2

أطلقت مؤسسة المستند المفتوح النسخة 6.2 من طقم البرامج المكتبية ليبرأوفيس الحرة ، هذه الإصدارة جاءت بعد ستة أشهر من الإصدارة 6.1 حيث تنتهج المؤسسة إطلاق إصدارتين من الطقم في كل سنة.

أهم ميزة في هذه الإصدارة هو إطلاق واجهة رسومية جديدة مستوحاة و مطورة من واجهة تطبيقات مايكروسوفت المسماة روبن ، ولكن أكثر تخصيصا، حيث أصبحت واجهة تطبيقات ليبرأوفيس تأتي بثلاث واجهات يمكن التبديل بينها.
1- واجهة شريط حواسب الدفترية Notebookbar وهي الأقرب لفكرة روبن من شركة مايكروسوفت.

2- واجهة المضغوطة المجمعة Groupedbar وهي هجين بين الواجهة التقليدية (القوائم) و واجهة روبن.

3- الواجهة التقليدية بالقوائم.

وأهم المميزات الأخرى التي أتت مع الإصدارة 6.2:
- تحسين القوائم السياقية وتوحيدها بين مختلف التطبيقات في الحزمة.
- تسريع أداء تعقب التغييرات.
- أصبح الآن بالإمكان إدراج بيانات ملف الجداول الحسابية كجدول وليس ككائن.
- تحسين إمكانية تعديل طريق التحريكات في برامج العروض Impress و برنامج الرسم Draw ، مع إضافة بعض التنسيقات لرسم النصوص.
- رزمة من التعديلات في التوافقية مع تنسيق ملفات مايكروسوفت.

- دعم التكامل مع كدي 5 .

لتنزيل هذا الإصدارة من هنا.

زايد السبت, 2019/02/09 - 4:33م
disqus

February 9th 2019, 7:48 am

إطلاق OpenToonz 1.3

وادي التقنية

إطلاق OpenToonz 1.3

منذ إطلاق برنامج أوبن تونز لتصميم الرسوم المتحركة ثنائية الأبعاد كبرنامج حر ومفتوح المصدر في عام ٢٠١٦م، بدأ البرنامج في تكوين مجتمع من المطورين حوله، بالإضافة إلى استقطاب الكثير من المستخدمين، وبعد ثلاث سنوات من التطوير يطلق المجتمع الإصدارة ١٫٣ التي تركز على الاستخدامية والثبات حيث حلت أكثر من ٦٠ علة منذ الإصدارة ١٫٢٫١ وإضافة عديدا من المميزات الجديدة من أهمها:
- دعم تقنية Windows Ink على نظام ويندوز.
- دعم فرش الرسم من محرك MyPaint .
- دعم ميزة فصل الألوان.

وغيرها من المميزات والتحسينات الجديدة، لتنزيل هذه الإصدارة من هنا.

Fahad الاثنين, 2019/02/04 - 8:46ص
disqus

February 4th 2019, 12:14 am

دعوة لحضور مؤتمر البرمجيات الحرة والمفتوحة المصدر ٢٠١٩م، مسقط

وادي التقنية

دعوة لحضور مؤتمر البرمجيات الحرة والمفتوحة المصدر ٢٠١٩م، مسقط

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

هذا المؤتمر يعقد كل عامين، حيث كانت النسخة الأولى في فبراير 2013 تحت عنوان «تجارب ناجحة لتبني البرمجيات الحرة والمفتوحة المصدر»، وكانت النسخة الثانية في فبراير 2015 تحت عنوان «فرص ومجتمعات البرمجيات الحرة والمفتوحة المصدر»، بينما جاءت النسخة الثالثة في فبراير 2017 تحت عنوان «استراتيجيات وممارسات تبني البرمجيات الحرة والمفتوحة المصدر». ويعُقد المؤتمر هذا العام في 11 و 12 فبراير 2019 تحت شعار "البرمجيات الحرة والمفتوحة المصدر كمحرك لنقل التقنية وتعزيز الابتكار وريادة الأعمال". ويستهدف المؤتمر الشركات العاملة في تقنية المعلومات والاتصالات والعاملين والباحثين والأكاديميين والموظفين والطلاب ومجتمع البرمجيات الحرة والمفتوحة المصدر بشكل عام.

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

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

للتسجيل ومعرفة التفاصيل قم بزيارة موقع المؤتمر من هنا.

Fahad الأحد, 2019/01/13 - 8:39ص
disqus

January 13th 2019, 12:41 am

حسوب تطلق موقع "بعيد" للتوظيف عن بعد

وادي التقنية

حسوب تطلق موقع "بعيد" للتوظيف عن بعد

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

 

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

 

طبقًا لتقديرات البنك الدولي فإن منطقة الشرق الأوسط يجب أن تخلق 300 مليون وظيفة بحلول عام 2050، وبحسب تقرير المنتدى الاقتصادي العالمي حول مستقبل الوظائف في الشرق الأوسط وشمال أفريقيا فإنه يمكن للعمل عن بعد عبر الإنترنت أن يوفر أكثر من مليوني وظيفة بدوام كامل في كل من السعودية ومصر وتركيا بحلول العام 2025.

 

وفي دراسة لصندوق النقد العربي لم تزد نسبة مشاركة المرأة العربية في قوة العمل عن 18.9 في المائة من إجمالي الإناث في سن العمل في عام 2017، مقارنة مع 48.7 في المائة للمتوسط العالمي، لذا فإن العمل عن بعد دون التقييد بالوجود في مكان بعينه يساعد على تمكين المرأة واستثمار طاقاتها وتفعيل مساهمتها في التنمية الإقتصادية.كما يساعدها على التوفيق بين العمل وواجباتها الأسرية، والاستمتاع بأجواء عمل مرنة وفقًا لظروفها الخاصة.

 

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

 

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

 

جدير بالذكر أن شركة حسوب تقف خلف أكبر منصتين للعمل الحر في العالم العربي؛ منصة مستقل للعمل الحر وموقع خمسات أكبر سوق عربي لبيع وشراء الخدمات المصغرة، ويعمل فريق عملها بالكامل عن بعد موزعًا عبر عدة دول، لدى حسوب أكثر من مليون مستخدم مسجل و 950 ألف عمل نُفذ عبر منصاتها.

Fahad الأربعاء, 2019/01/09 - 8:17ص
disqus

January 8th 2019, 11:47 pm

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

وادي التقنية

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

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

تحوي البلدية على ١٠٠٠ جهاز مكتبي قد انتقل غالبيتها إلى ليبر أوفيس. ولتسهيل التحول، ترجمت  أدلة استخدام رايتر و كالك إلى اللغة الألبانية، كذلك صنعت دورة تعلم ليبر أوفيس ووضعها على منصة تعلم الخاصة بالبلدية. 

Fahad الأحد, 2018/11/25 - 8:29ص
disqus

November 24th 2018, 11:39 pm

ماهى JSON وكيفية كتابتها وفيما تستخدم

وادي التقنية

ماهى JSON وكيفية كتابتها وفيما تستخدم

JSON أو JavaScript Object Symation هي صيغة بسيطة وقابلة للقراءة بسهولة من قبل الإنسان وتستخدم لتمثيل البيانات و تبادلها بين الأنظمة البرمجية المختلفة.

جيسون JSON ليست لغة برمجية إنما هي طريقة متفق عليها بين لغات البرمجة المختلفة لتمثيل البيانات بهدف سهولة تبادل البيانات بين هذه اللغات.

صيغة جيسون تمثل عن طريق نص، والبنية لهذا النص تشبه الكائن أو Object في لغة البرمجة جافاسكربت, وهذه الصيغة مدعومة من لغات البرمجة الأساسية الأخرى وتستخدم هذه الصيغة بشكل كبير لتبادل البيانات بين الخادم والعميل Client-Server.

كيفية تمثيل البيانات عن طريق

الجزءان الأساسيان اللذان يشكلان JSON هما المفاتيح Keys والقيم Values.

  • المفتاح Key : يمثل اسم فريد لقيمة البيانات ويتم وضعه عادة بين علامات التنصيص

  • القيمة Value : تمثل البيانات ويمكن أن تمثل اكثر من نوع بيانات مثل النصوص والأرقام والمصفوفات.

معًا يشكل Key / Value سطر في صيغة جيسون حيث يتم استخدام علامة , كفاصل بين السطور.

أنواع البيانات للقيم في JSON

  • Array المصفوفة: مجموعة من القيم المترابطة على سبيل المثال: رواتب الموظفين ويتم تمثيلها كالتالي [2000, 5000,6000].

  • Boolean قيمة منطقية: ولها احتمالان True او False.

  • Number رقم: تكون القيمة عبارة عدد صحيحا أو حقيقيا أو فواصل عشرية.

  • Object لكائن: مجموعة مترابطة من أزواج من المفاتيح / القيم Key / Value.

  • String السلسلة النصية: مجموعة من الأحرف النصية العادية تشكل عادة كلمة.

مثال على صيغة JSON

يمكنك معاينة المثال هنا

لماذا نستخدم جيسون JSON

لفهم فائدة وأهمية JSON ، يجب أن نفهم قليلاً كيف تطور عرض صفحات الويب.

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

كان إعادة تحميل الصفحة بالكامل مضيعة للوقت ولموارد الخادم ، بحث مطورو الويب عن تقنيات أحدث لتحسين تجربة المستخدم بشكل عام. فأثبتت القدرة على إرسال طلبات الويب إلى الخادم في الخلفية أثناء عرض الصفحة ، والتي تم تقديمها في Internet Explorer 5 ، وترجع فائدة تقديم الطلبات في الخلفية إلى عدم إعادة تحميل الصفحة كاملة لتغير جزء معين في الصفحة. على سبيل المثال عند الضغط على رابط معين يتم تحميل بيانات في الخلفية دون إعادة تحميل الصفحة وبالتالي يتم التعامل مع البيانات على المتصفح من قبل لغة Javascript التي تعمل على المتصفح.

في الأساس كان يتم نقل البيانات بتنسيق XML ولكن XML كانت طويلة وصعبة في التعامل في لغة جافا سكريبت. كانت JavaScript تحتوي بالفعل على مفهوم الكائنات أو Objects ، وهي طريقة للتعبير عن البيانات داخل اللغة ، لذلك أخذ Douglas Crockford مجموعة فرعية من هذا التعبير كمواصفات لتنسيق تبادل البيانات الجديد الذي أطلق عليه اسم JSON. كان JSON أسهل في القراءة بكثير بالنسبة للأشخاص وحتى بالنسبة لتحليل المتصفحات. وسرعان ما بدأ مطورو الويب يفضلون JSON عنXML.

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

JSON و XML

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

يمكنك معاينة المثال هنا

بالإضافة إلى كون الصيغة اكثر طولًا وتعقيدًا من JSON فهنالك سبب أخر لكون JSON افضل من XML وهو صعوبة تحويل XML الى كائن جافاسكربت - بحيث يتم التعامل مع البيانات عن طريق الجافاسكربت-

مثال على جيسون فى لغة جافاسكربت

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

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

يمكنك معاينة المثال هنا

اقرأ أيضا:

ماهى جافاسكربت وكيف تعمل

تعرف على معنى API وفائدته

المصادر

كتب هذا المقال عمر العربي من موقع مطور.

Fahad الأربعاء, 2018/11/14 - 9:03ص
disqus

November 14th 2018, 11:48 pm

كتاب الشفرة الكاملة

وادي التقنية

كتاب الشفرة الكاملة

بعد عام من العمل و كثير من الجهد و المال، يسرنا أن نعلن عن إصدار كتاب الشفرة الكاملة لمؤلفه ستيف ماكونيل ، وستيفن ماكونيل، مؤلف العديد من كتب هندسة البرمجيات مثل التطوير السريع "Rapid Development "، وتقييم البرمجيات "Software Estimation". ويشار إليه كخبير في هندسة البرمجيات وإدارة المشاريع. حصل ماكونيل على درجة البكالوريوس في علوم الحاسب في كلية ويتمان، واشنطن، ودرجة الماجستير في هندسة البرمجيات من جامعة سياتل. ثم عمل بعد ذلك في مجال صناعة البرمجيات المكتبية، حيث عمل في مايكروسوفت، وبوينغ، ومجموعة راسل للاستثمار والعديد من شركات منطقة سياتل الأخرى. من عام 1996 إلى 1998، كان رئيس تحرير خانة "أفضل الممارسات" في مجلة IEEE Software. ومن 1998 إلى 2002، شغل منصب رئيس تحرير المجلة.

نشر ماكونيل  الشفرة الكاملة، في عام 1993 ، و جاء في مقدمة الكتاب:

 إنّ الفجوة بين أنشطة هندسة البرمجيات الممّيزة والمعدل الوسطي للأنشطة البرمجية واسعة جداً – وقد تكون أوسع من أيّ من تخصصات الهندسة الأخرى.  "الأداة التي تنشر أفكار لأنشطة عملية جيدة لابد أن تكون مهمة" فريد- بروكس.     

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

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

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

هذا الدليل يختصر هذه العملية، جاعلاً الاكتشافات الرئيسية متاحة الآن للمبرمج المتوسط.

من عليه أن يقرأ هذا الكتاب؟

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

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

ملخص فهرس الكتاب:

القسم الأول: ترتيب الأساسيات

في هذا القسم:
الفصل الأول: مرحباً بك في بناء البرمجيات.
الفصل الثاني: الاستعارات، لفهم أفضل لتطوير البرمجيات.
الفصل الثالث: قس مرتين واقطع مرة، المتطلبات التحضيرية.
الفصل الرابع: قرارات بناء مفتاحية.

القسم الثاني: إنشاء شفرة عالية الجودة

في هذا القسم:
الفصل الخامس: التصميم في البناء
الفصل السادس: الصفوف الناجحة
مرخصة برخصة المشاع الإبداعي نَسب المُصنَّف 4.0 دولي.

القسم الثالث: المتغيرات

في هذا القسم:
الفصل العاشر: قضايا عامّة في استخدام المتغيرات
الفصل الحادي عشر: قوّة أسماء المتغيرات
الفصل الثاني عشر: أنواع البيانات الأساسية
الفصل الثالث عشر: أنواع البيانات غير العادية

القسم الرابع: العبارات

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

القسم الخامس: تحسينات الشفرة

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

القسم السادس: اعتبارات النظام

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

القسم السابع: مهنة البرمجيات

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

وأخيرا الترجمة العربية مرخصة برخصة المشاع الإبداعي نَسب المُصنَّف 4.0 دولي.

تنزيل الكتاب من هنا.

المصدر من هنا.

وقت ممتعا في القراءة.

 

زايد الاثنين, 2018/11/05 - 12:40م
disqus

November 5th 2018, 4:18 am

أي بي أم تستحوذ على شركة ردهات

وادي التقنية

أي بي أم تستحوذ على شركة ردهات

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

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

يا ترى ما الشركة القادمة في سوق الاستحواذات في عالم البرمجيات الحرة؟

Fahad الاثنين, 2018/10/29 - 9:15ص
disqus

October 29th 2018, 1:44 am

صدور توزيعة إلمنتري ٥

وادي التقنية

صدور توزيعة إلمنتري ٥

أطلق مطورو توزيعة لينكس إلمنتري الإصدارة الخامسة تحت مسمى Juno. توزيعة المنتري هي توزيعة لينكس مبنية على أوبنتو. تأتي بسطح مكتب خاص بها يسمى البانتيون، وتتكامل بعمق مع غيرها من تطبيقات نظام التشغيل توزيعة المنتري مثل بلانك (Dock)، ميدوري (متصفح الويب الافتراضي) وScratch (محرر نص بسيط). تستخدم هذه التوزيعة Gala كمدير النوافذ الخاص بها، والمبني على Mutter .
هدفت هذه الإصدارة إلى تحقيق ثلاثة غايات:
١- تحسين تجربة المستخدم.
٢- تحسين الإنتاجية للمستخدمين الجدد.
٣- تطوير منصة التطوير إلى المستوى الأعلى.

وبناء على هذه الأهداف طالت التحديثات كل أنحاء النظام من متجر التطبيقات ومحرر النصوص والطرفية و مدير الملفات، وعارض الصور وغيرها من التطبيقات.

توزيعة إلمنتري تستحق التجربة والاختبار. لتنزيل هذه الإصدارة من هنا.

Fahad الاثنين, 2018/10/22 - 9:50ص
disqus

October 22nd 2018, 2:13 am

صدور أوبنتو ١٨.١٠

وادي التقنية

صدور أوبنتو ١٨.١٠

أصدرت كانونيكال أوبنتو ١٨.١٠ ، تأتي هذه الإصدارة بأحدث الإصدارات من المكونات، وأهم هذه الإصدارات نواة لينكس 4.18 التي جاءت بدعم معالجات الرسومية AMD Radeon RX Vega M ودعم Raspberry Pi 3B بالإضافة إلى دعم متطور في حفظ الطاقة . من الحزم المميزة في هذه الإصدارة حزمة OpenSSL 1.1.1 الذي يأتي بدعم معيار TLSv1.3 .
أما سطح المكتب فيأتي بإصدارة ٣.٣٠ وفيرفوكس ٦٣ و ليبرأوفيس ٦.١.٢ أما إصدارة الخادم فقد جاءت أحدث الإصدارات الموجه للمخدمات من مثل qemu و libvirt و Open vSwitch وcloud-init.

ومرافقة مع هذا الإصدارة صدرت النكهات الأخرى من أوبنتو من مثل Kubuntu و Lubuntu وXubuntu.

admin الاثنين, 2018/10/22 - 9:12ص
disqus

October 22nd 2018, 1:43 am

صدور كدي بلازما 5.14

وادي التقنية

صدور كدي بلازما 5.14

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

تركز العمل العلى تحسين مدير البرامج Discover حيث حصل على إمكانية تحديث مشغلات الأجهزة Firmware بحيث يمكن تحديث هذه المشغلات بسهولة. وحصل مدير النوافذ KWin على الكثير من الجهد حيث حسنت التأثيرات البصرية و حسن دعم ويلاند حيث أصبح يدعم النسخ و اللصق بين تطبيقات جي تي كي و التطبيقات الأخرى ، كذلك أضيف دعم واجهات المعيارية للتفاعل بين النوافذ XdgShell و XdgOutput.

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

كذلك أضيف ودجة لتسهيل ضبط وإدارة الشاشات عندما توصل أو تفصل شاشة جديدة.


وغيرها الكثير من التحسينات الصغيرة المنتشرة في كل مكان، و التي تعطيك بمجموعها بأريحية في التعامل مع بيئة سطح المكتب.

زايد السبت, 2018/10/13 - 9:51م
disqus

October 13th 2018, 2:03 pm

أفضل 10 نصائح لمساعدتك على شراء حاسب محمول احترافي

وادي التقنية

أفضل 10 نصائح لمساعدتك على شراء حاسب محمول احترافي

أجهزة اللاب توب أو الكمبيوتر المحمول تعتبر واحدة من ضمن أفضل أجهزة التكنولوجيا حول العالم لذلك تقدم لكم تقرير من بوابة التكنولوجيا لبعض النصائح لاختيار الحاسب الأفضل للمستخدم  والتي تساعد على تسهيل المهام وسهولة إنجاز العمل بأسرع وقت ممكن و تتميز بسهولة الحمل ولا تحتاج لمجهود كبير لحملها، لذلك يفضلها العديد من مستخدمي التكنولوجيا حول العالم، لكن للأسف يوجد أنواع كثيرة من أجهزة الحاسب المحمول تظهر في الأسواق ولا يعرف المستخدم أي منهم الأفضل وما الذي سوف يساعده على إنجاز عمله بأفضل شكل ممكن و يتناسب مع ميزانيته سواء كان نوعه   Dell أو Lenovo أو HP أو Acer، فتعتبر تلك الأنواع الأكثر تأثيراً في السوق والتي تجذب العديد من المستخدمين حول العالم للشراء،لكن يتساءل الكثير من المستخدمين قبل الإقبال على شراء أي منتج منهم هذه الأسئلة:
 
ماذا لو لم يفعل الحاسب المحمول ما أريده؟
ماذا لو كانت لوحة المفاتيح أو الشاشة غير ملائمة أو لا تحتوي على جميع المنافذ التي أحتاجها؟

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

كيف تختار لاب توب ذات مواصفات وإمكانيات عالية ؟

أهم 10 نصائح لاختيار حاسب محمول احترافي:

اختيار الحجم:


لا يكفى فقط شراء لاب توب ذات مميزات رائعة و مواصفات وإمكانيات عالية، بل الحجم له دوراً كبيراً في ذلك، حيث يساعد على تنفيذ المهام في أي مكان يتواجد به المستخدم، فمن المعروف أن أجهزة الكمبيوتر المحمول يتم تقسيمها إلى فئات مختلفة، فيوجد الذي يتميز بحجم شاشة ضخمة قياس 17 بوصة وتعتبر الأفضل للعمل والألعاب، كما توجد الأجهزة التي تتميز بلوحة مفاتيح مناسبة لجعل الكتابة أسهل وأفضل من أي وقت مضى، لكنها للأسف ستكون أكبر وأثقل من طراز 13 بوصة، لكن أكدت الدراسات أن أفضل حجم لأجهزة لاب توب الذي يساعد على تنفيذ المهام والكتابة بشكل احترافي ويسهل على المستخدم حمل الجهاز في أي مكان يذهب إليه هي طراز 15 بوصة، حيث يقدم سمات لائقة بين سهولة الاستخدام وقابلية الحمل وطالما أنها تزن حوالي 2 كجم أو أقل ، فإنك لن تمانع في أخذها إلى أي مكان وإذا كنت تريد شيئًا فائقًا خفيف الوزن ، فاختر جهاز كمبيوتر محمول بعرض 11-13 بوصة .

دقة الشاشة:


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

وتعتبر أجهزة الحاسب المحمول أو اللاب ذو شاشة أصغر في الحجم تحتوي على مساحة أكبر من وحدات البيكسل، مما يجعل الرؤية أفضل بشكل أكثر وضوحا وليس كما يعتقد البعض بأن الشاشات الكبيرة هي الأفضل،  لذلك عندما تقرر الشراء  ضع ذلك في الحسبان أنه لا توجد مساحة أكبر للتطبيقات على جهاز كمبيوتر محمول بقياس 15 بوصة مع شاشة 1،920 × 1،080 مقارنةً بطراز 15 بوصة مع شاشة بحجم 1،366 × 768 ومع ذلك فإن الدقة الأعلى تعني أن النصوص والرموز ستكون أكثر سلاسة وبالتالي يسهل رؤيتها.

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

الشكل العام للجهاز:


من المعروف أن معظم أجهزة الكمبيوتر لا تزال تقدم تصميماً تقليدياً من شاشة تتدلى لأسفل على لوحة المفاتيح ولوحة اللمس وتحافظ الكثير من شركات المجال على الشكل التقليدي لاب توب، إنما الذي لا يعرفه الكثير أن شاشة التي تحتوي على خاصية اللمس يشعر المستخدم معها بمتعة أثناء تنفيذ المهام الإبداعية مثل الرسم أو صنع الموسيقى ويوجد العديد من الشركات التي استخدمت تلك التقنية وحولت جهاز الكمبيوتر المحمول إلى جهاز لوحي وأصبح الآن 2 في 1 ، مثل مجموعة Surface من Microsoft كما تقدم أيضا أجهزة Asus Transformers على شاشات تنفصل تمامًا عن بقية الجهاز لتتمكن من الحصول على جهاز لوحي مناسب بدون أي وزن أو لوحة مفاتيح .

لوحة المفاتيح:


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

لوحة اللمس:


إذا أردت تنفيذ المهام بأسرع وقت ممكن يجب أن تعمل لوحة اللمس بشكل أسرع ، لكن للأسف لسوء الحظ يوجد العديد من لوحة لمس الكمبيوتر المحمول غير احترافية وهناك اتجاه جعل الأزرار جزءًا من لوحة اللمس الرئيسية وبالتالي عند تنفيذها سوف تعمل بشكل سئ ولا يمكن أن تعترف بها .

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

الاتصال:


يسمح للكمبيوتر المحمول بمساحة محدودة لبناء قاعدة بياناته فقط، لذا تحتوي بعض الأجهزة على عدد قليل من منفذي USB وإذا كان لديكِ طابعة وماوس متصلان بالكمبيوتر وللترجمة في التقاط بعض الصور من الكاميرا فستحتاج إلى فصل أحد المكونات ما لم يكن الكمبيوتر المحمول يحتوي على قارئ بطاقات SD مضمّن كما يفعل الكثيرون .
وهناك عدد محدود من أجهزة الكمبيوتر المحمولة الحالية تحتوي على 3 منافذ USB الذي يساعد على نقل البيانات بشكل أسرع .
تتميز أجهزة الكمبيوتر المحمول الأكبر حجمًا إلى امتلاك ثلاثة منافذ USB على الأقل والتي لها مناسبة لمعظم الأشخاص. لذا يجب أن تضع في اعتبارك أثناء شراء لاب توب أن الكثير من أجهزة الكمبيوتر الحديثة لا تحتاج إلى محركات أقراص DVD ولتوصيل أقراص USB تأكد من وجود منافذ احتياطية كافية .

الأداء:


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

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

كما يجب أن تهدف على الأقل إلى معالج Intel Core i3 ، الذي يتعامل بشكل مريح مع تصفح الويب والعمل المكتبي والنظر في رقاقة Core i5 للمهام الأكثر كثافة مثل التعامل مع الصور الكبيرة وتحرير الفيديو وترميزه وأجهزة الحاسب المحمول المزودة برقائق Core i7 مرتفعة الثمن ولكنها سريعة جدًا وتتحمل مشاقة الاعمال ، لذلك تستحق النظر إذا كنت تريد أفضل أداء ممكن.

كارت الشاشة ( الجرافيك ):


تعتمد معظم أجهزة الحاسب المحمول على كارت الشاشة المدمجة الخاصة بالمعالج والتي يطلق عليه عادةً اسم "Intel HD Graphics" الذي يساعد المستخدم على تصميم  صور فيديوهات ثلاثية الأبعاد بطريقة بسيطة و بدقة منخفضة، لكن إذ أردت تزويد الدقة فستحتاج إلى كمبيوتر محمول مزود بشريحة جرافيكس مخصصة من Nvidia أو AMD ومن الصعب تحديد مدى سرعة شرائح الرسومات من رقم الطراز ، لذلك نوصي بالبحث عن معايير الرسومات عبر الإنترنت لمعرفة كيف تحصل على كارت شاشة يتميز بأداء عالي ويحتوي على مجموعة شرائح قادرة علي تشغيل أحدث الألعاب والجرافيك عالي الدقة .


عمر البطارية:


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

القرص الصلب ( سعة التخزين ):


هو المسؤول عن تخزين البيانات ، فمن المعروف أن القرص الصلب من نوع SSD سيجعل جهاز الكمبيوتر المحمول الخاص بك يعمل بشكل أسرع ، مما يشعر المستخدم بسرعة أكبر وأكثر استجابة أثناء تنفيذ المهام مقارنة بالقرص الصلب التقليدي HDD البطئ ، لذلك يجب عليك أن تتأكد من حجم الهارد، و يمكنك شراء SSD صغير لنظام التشغيل الخاص بك بسعة 128 جيجا بايت و استخدام القرص الصلب التقليدي لملفاتك الشخصية .

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

2.5.0.0

2.5.0.0

2.5.0.0
Fahad الأربعاء, 2018/10/03 - 7:57ص
disqus

October 3rd 2018, 12:30 am

إطلاق Synfig Studio 1.2.2

وادي التقنية

إطلاق Synfig Studio 1.2.2

بعد شهور من العمل، أطلق مطوروا برنامج التحريك الرسومي ثنائي الأبعاد الحر Synfig الإصدارة 1.2.2 وهي تجميعة لعمل ١٢ شهرا، تحوي على مميزات جديدة وإصلاحات مهمة.

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

أهم المميزات الجديدة:

نمط تصيير المسودة:


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

مجموعة المرشحات


هذه الميزة تعمل على تجميع مجموعة من المرشحات كطبقة واحدة لتسهيل التعامل معها وتطبيقها على الطبقات.

تحميل الصور الحي


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

تحرير نقاط التحريك من لوحة المنحنيات


أصبح بالإمكان تحرير إظهار نقاط التحريك keyframes  وتحريرها من لوحة المنحنيات.

توفير نسخة قابلة للنقل لنظام ويندوز


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

إصلاح العديد من المشاكل المتعلقة بواجهة الاستخدام والأداء والثبات.

لتنزيل هذه الإصدارة من هنا.

Fahad الاثنين, 2018/09/17 - 8:48ص
disqus

September 17th 2018, 1:13 am

مدخل إلى علم تصميم البرمجيات

وادي التقنية

مدخل إلى علم تصميم البرمجيات

أصدرت "المبادرة العربية للترجمة العلمية" أول كتابا لها بعنوان: "مدخل إلى علم تصميم البرمجيات" المترجم من الكتاب الإنجليزي "Code Simplicity". يناقش الكتاب إمكانية إنشاء علم لتصميم البرمجيات، ويضع قوانينه وقواعده الأساسية.

ترجم الكتاب تحت راية "المبادرة العربية للترجمة العلمية" من متطوعين سعيا لإثراء المحتوى العربي التقني.

من مقدمة الكتاب:

"يكمن الفرق بين المبرمج الجيد والمبرمج السيء في الفهم. حيث أن المبرمج السيء لا يستوعب جيدا ما يقوم به على نقيض المبرمج الجيد. صدق أو لا تصدق، الأمر بهذه البساطة.

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

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

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

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

٠ كونه أداة تعليمية ممتازة لاستخدامها في تدريب المبرمجين المبتدئين: إضافة إلى احتوائه على معلومات مهمة حتى للمبرمجين المتمرسين والخبراء.

٠ سيمكنك من الفهم العميق للأسباب التي تدفع مهندسي البرمجيات إلى القيام بأشياء معينة أو السبب وراء وجوب تصميم البرمجية الفلانية بطريقة معينة.

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

لتحميل الكتاب من هنا، رابط احتياطي من هنا.

Fahad السبت, 2018/09/15 - 10:40ص
disqus

September 15th 2018, 2:57 am

إطلاق ليبرأوفيس ٦.١

وادي التقنية

إطلاق ليبرأوفيس ٦.١

أعلنت مؤسسة المستند المفتوح عن إطلاق النسخة ٦.١ من طقم برامج المكتبية ليبر أوفيس الحرة. هذه الإصدارة هي الثانية من سلسلة ليبر أوفيس ٦ التي أطلقت في يناير ٢٠١٨م

أهم مميزات ليبرأوفيس ٦.١:


- إضافة طقمين أيقونات جديدة، أحدهما Colibre وفقا لمعايير مايكروسوفت للتصميم لتوافق بصري أكبر مع ويندوز.
- إعادة كتابة محرك الصور من جديد ليصبح التعامل مع الصور  أسرع وأكثر سلاسة.
- إعادة ترتيب قوائم Draw لتتوافق مع بقية البرامج.
- إضافة محرك جديد لقواعد بيانات Base يدعى Firebird (متوفر ضمن المزايا الاختبارية) ويهدف إلى الاستغناء عن قاعدة البيانات الحالية HSQLDB المكتوبة بلغة جافا.
- تعديلات كثيرة على ليبرأوفيس أونلاين ليوافق واجهة نسخة المكتب وتشمل إضافة الروابط وتضمين الخطوط ودعم الهوامش السفلية.
- تحسين طريقة تصدير ملفات EPUB
- إضافة الأرقام العربية المشرقية والفارسية إلى خيارات القوائم المرقمة.

لمشاهدة كل التغييرات في هذه الإصدارة وهي قائمة طويلة يمكنكم متابعة هذا الرابط.
وتقول المنظمة أن ما نسبته ٧٢٪ من التطوير جاء من قبل شركات تدعم ليبرأوفيس وأما ٢٨٪ الباقية جاءت من متطوعين أفراد.

لتنزيل هذا الإصدارة من هنا.

Fahad الجمعة, 2018/08/10 - 3:42م
disqus

August 10th 2018, 8:05 am

لغة بايثون تجلب البرمجة إلى جمهور جديد واسع ومبتكرها يستقيل

وادي التقنية

لغة بايثون تجلب البرمجة إلى جمهور جديد واسع ومبتكرها يستقيل

مقالة نشرت في مجلة الإيكونومست قسم العلوم والتكنولوجيا بتاريخ ١٩ يوليو ٢٠١٨، ترجمة فهد السعيدي بتصرف بسيط.

في ديسمبر ١٩٨٩، بدأ جايدو ڤان روسم – عالم حاسوب هولندي – مشروعه لقضاء عطلة عيد الميلاد، وبعد أن ضجر من العيوب في لغات البرمجة الأخرى، أراد أن يبني لغته الخاصة. كانت مبادئه بسيطة. أولا، يجب أن تكون سهلة القراءة. وبدلا من أن تمتد إلى نهايات السطر وتكون محصورة بين حاصرتين، كل جزئية تزاح بإزاحة من مسافة بيضاء. ثانيا، يجب أن تسمح للمستخدمين بإنشاء حزمهم الخاصة من وحدات البرمجة ذات الأغراض الخاصة، والتي يمكن بعدها أن تتاح إلى الآخرين لتكون أساسا لبرامج جديدة. ثالثا، رغب باسم ”قصير، وفريد، وغامض بعض الشيء“. من أجل ذلك أطلق عليها اسم مجموعة كوميدية بريطانية تدعى مونتي بايثون. وأصبح مستودع الحزم يعرف بـ متجر الجبن.
بعد قرابة ثلاثين سنة من اختراعه في عيد الميلاد، يشبهها فان روسم بإصدارة تكنولوجية لشخصية مونتي بايثون التي أصبحت من غير قصد المسيح في فلم ”Life of Brian“. فيقول: ”أنا بكل تأكيد لم أخطط لإنشاء لغة تهدف للاستخدام العام.“ إلا أنه خلال ١٢ شهرا الفائتة بحث مستخدمو جوجل في أمريكيا عن بايثون بانتظام أكثر عن كيم كردشيان النجمة التلفزيونية الشهيرة. لقد ازداد معدل البحث ثلاثة أضعاف منذ عام ٢٠١٠، بينما ظلت عمليات البحث للغات البرمجة الأخرى ثابتة أو متناقصة (انظر المخطط).


لقد نمت شعبية اللغة ليس فقط بين المطورين المحترفين – قرابة ٤٠٪ يستخدمونها، بالإضافة غلى ٢٥٪ يرغبون باستخدامها، وفقا لمنتدى المبرمجين Stack Overflow – بل أيضا مع الأفراد العاديين. يقول موقع Codecademy – الموقع الذي درَّس ٤٥ مليون مبتدأ كيف يستخدمون اللغات المختلفة – إن أكبر ازدياد في الطلب بلا منازع هو من أولئك الذين يرغبون في تعلم بايثون. وهكذا تجلب بايثون البرمجة إلى أصابع أولئك كانوا في حيرة يوما ما من البرمجة. ساعد البايثونيون – كما يطلق على المتحمسين لهذه اللغة – على إضافة أكثر من 145,000 حزمة إلى متجر الجبن، تغطي مواضيع مختلفة من علم الفلك إلى تطوير الألعاب.
انتهى فان روسم – بالرغم من سعادته بهذا الحماس الكبير للغته – إلى إدراك أن الإشراف عليها، في دوره الذي يقوم به كـ ”دكتاتور خيري مدى الحياة“ عبء لا يمكن تحمله. إنه يخاف أنه أصبح مثل المعبود. يقول: ”أنا لست مرتاحا لهذه الشهرة،“ بصوت غريب مثل برايان يحاول إبعاد حشود مريديه. ”بعض الأحيان أشعر أن كل شيء أقوله أو أفعله ينظر إليه كقوة ضخمة جدا.“ في ١٢ من يوليو استقال من منصبه الفخري، تاركا البايثونيين ليدروا أنفسهم بأنفسهم.

لا أحد توقع هوس الإحصائيين


إن لغة بايثون ليس كاملة. فلدى اللغات الأخرى الكثير من الكفاءة في المعالجة والمقدرات المتخصصة. فلغة سي ولغة سي بلس بلس تعتبران خيارات ”منخفضة المستوى“ تعطي المستخدم المزيد من التحكم حول ما يجري داخل معالج الحاسوب. أما لغة جافا فهي شهيرة في بناء التطبيقات المعقدة الضخمة. وجافا سكربت فهي اللغة المختارة للتطبيقات التي يتوصل إليها عبر متصفحات الوب. وهناك لغات لا تحصى تطورت لأغراض مختلفة. لكن مميزات بايثون القاتلة – التركيب اللغوي البسيط يجعل الشفرة البرمجية سهلة التعلم والمشاركة، ومصفوفتها الهائلة من حزم الطرف الثالث – تجعلها لغة جيدة للأغراض العامة. ويظهر تعدد استخداماتها في نطاقها الواسع في الاستخدام والمستخدمين. فتوظفها وكالة المخابرات المركزية (سي آي إيه) في الاختراق، وشركة بيكسار في إنتاج الأفلام، وجوجل في فهرسة صفحات الوب، سبوتيفاي في ترشيح الأغاني.
إن أكثر الحزم إغراءا يجدها البايثونيون في متجر الجبن تتعلق باستخدام الذكاء الصناعي. حيث يمكن للمستخدمين من إنشاء شبكات عصبية، تحاكي العلاقات في المخ، في تعلم الأنماط في الكميات الكبيرة من البيانات. يقول فان روسم إن بايثون أصبحت اللغة المفضلة للباحثين في علوم البيانات، الذين قاموا بإنتاج عدد وفير من الحزم لها.
بالرغم من ذلك، ليس كل البايثونيين متحمسين جدا. يعتقد زاك سيمس، رئيس موقع كودأكادمي، أن العديد من زوار موقعه يحاولون تعلم المهارات التي يمكن أن تساعدهم في الوظائف التي ترى عادة أنها ”غير تقنية“. فمثلا يمكن للمسوقين استخدام اللغة لبناء وحدات إحصائية تقيس فاعلية الحملات الدعائية. ويمكن للمحاضرين في الكليات التأكد إذا ما كانوا قد وزعوا الدرجات بشكل عادل. (حتى الصحفيين في مجلة الإيكونمست، الباحثين عن المعلومات في الوب، يستخدمون عادة برامج كتبت بلغة بايثون لفعل ذلك.)
تعتبر لغة بايثون قيمة بشكل خاص لدى المحترفين الذين يعتمدون منذ أمد بعيد على التنقيب في الجداول الإلكترونية. فقد قام سيتي جروب، بنك أمريكي، بتقديم دورة سريعة في بايثون لمحلليه المبتدئين. وأعلن موقع وظائف، eFinancialCareers، أن هناك زيادة تقارب أربعة أضعاف في السجلات التي تشير إلى بايثون ما بين الربع الأول لعام ٢٠١٥ و ٢٠١٨.
غير أن هذا التعطش لهذه المهارات لا يخلو من مخاطرة. حيث يحذر سيسار بري، شريك في Bain & Company، شركة استشارية، أن أكثر الأشياء إخافة في هذا وظيفته هو ”شخص ما تعلم أداة ولكن لا يعرف ما الذي يجري بالداخل.“ ومن دون إشراف جيد، يمكن لمبتدأ يلعب بمكتبات الذكاء الاصطناعي أن يصل إلى استنتاجات مشبوه. يقول برند زيجلر، شريك في مجموعة بوسطن الاستشارية، إن شركته تخصص مثل هذه التحليلات إلى أعضاء فريق البيانات فقط التابع لشركته.

ربوت روسم العالمي


أحد الحلول لمشكلة المهنيين نصف المتعلمين هو تعليمهم بشكل جيد أسرار اللغة. إن لغة بايثون كانت أكثر اللغات شهرة كلغة مبتدأة في الجامعات الأمريكية في عام ٢٠١٤، لكن تعليمها كان محصور عادة للذين يدرسون العلوم، والتكنولوجيا، والهندسة، والرياضيات. أحد الاقتراحات الثورية هي تعليمهم منذ الصغر عن طريق توفير علوم الحاسوب للجميع في المدارس الابتدائية. يلاحظ هادي بارتوفي، رئيس موقع code.org ، مؤسسة خيرية، أن ٤٠٪ من المدارس الأمريكية تقدم مثل هذه الدروس، أكثر من ١٠٪ في عام ٢٠١٣م. وحوالي ثلثين من أعمار ١٠ – ١٢ لديهم حساب في موقع code.org. وربما الخوف من أن المستقبل سيكون مملوءا بالوظائف المؤتمتة، يريد ٩٠٪ من الأمريكان أن يدرس أبناؤهم علوم الحاسوب.
لا أحد يعرف إلى أي متى ستستمر شهرة بايثون. لقد كان هناك لغات حاسوب مسيطرة في الماضي، أصبحت الآن تتوارى في الخلف. ففي الستينيات، اجتاحت لغة فورتران العالم. وكلغات تدريسية للمبتدئين، حظيت لغة بيسك وباسكل بلحظاتهما في الشهرة. وكما استقر رأي بارتوفي نفسه على جافا سكربت كلغة لنواة مخططات موقع Code.org نظرا لأنها تظل الاختيار القياسي لصفحات الوب المتحركة.
لا يمكن لأي لغة حوسبة أن تكون ذات أغراض عامة بشكل حقيقي. وسيظل التخصص مهما بشكل ضروري. وبالرغم من ذلك فإنه صحيح، في ذلك عيد الميلاد القديم، أن فان روسم قام بفعل شيء ما جدير بالذكر. وهو وإن كان لا يلعب دور المسيح، إلا أنه كان فتى ذكيا جدا.

Fahad السبت, 2018/07/21 - 5:29م
disqus

July 21st 2018, 9:39 am

إطلاق لينكس منت ١٩

وادي التقنية

إطلاق لينكس منت ١٩

أعلن فريق تطوير توزيعة لينكس منت عن صدور الإصدارة ١٩ بنسختين Cinnamon و MATE، المبنيتان على أوبنتو ١٨.٤ والمدعومتان إلى سنة ٢٠٢٣.
لعل أهم ميزة في هذه الإصدارة هي تقنية Timeshift التي قدمت في الإصدارة ١٨.٣ وأصبحت الآن في لب ومدار توزيعة لينكس منت.
تسمح هذه التقنية لك بأن تستعيد حالة جهازك إلى آخر نقطة استعادة صالحة، وإذا ما حدث أي عطب في النظام إرجاع النظام لآخر نقطة صالحة.
من المميزات الجديدة أيضا تحسين وتطوير سرعة النظام لتكون التطبيقات أسرع وأكثر خفة على مستوى سطح المكتب أو تطبيقاته.
والعديد من المميزات الجديدة التي يمكنك الإطلاع عليها هنا لنسخة  Cinnamon وهنا لنسخة  MATE.

لتنزيل هذه الإصدارة من هنا.

Fahad الأحد, 2018/07/01 - 12:59م
disqus

July 1st 2018, 5:20 am

إطلاق كدي بلازما ٥.١٣

وادي التقنية

إطلاق كدي بلازما ٥.١٣

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

الفيديو التالي يشرح أهم مميزات هذه الإصدارة:


بالإضافة إلى ذلك هناك عدة مميزات جديدة إضافية في هذه الإصدارة من أهمها:
١- تكامل بلازما مع متصفحات الانترنت فيرفكس وكروم وما بني عليه، حيث أصبحت إشعارات اكتمال التنزيل تظهر  في نافذة منبثقة مثلما هي الحال مع متصفح الملفات دولفين.


٢- إعادة تصميم إعدادات النظام وفقا لتصورات مجموعة التصاميم المرئية لكدي بحيث أصبحت الإعدادات أجمل وأكثر اتساقا.


٣- واجهة جميلة جديدة شاشة الإغلاق والدخول


٤-تحسين محرك الرسوميات واستمرار العمل على إضافة دعم ويلاند.


٥- تحسين وتطوير برنامج تنزيل وتثبيت البرامج Discover في عرض المجموعات ومعلومات التطبيقات.

بالإضافة إلى مئات التحسينات البسيطة والمؤثرة في جميع أنحاء سطح المكتب يمكنكم متابعتها بالكامل من هنا.

Fahad الخميس, 2018/06/14 - 2:07م
disqus

June 14th 2018, 6:28 am

كتاب أساسيات النظم الرقمية

وادي التقنية

كتاب أساسيات النظم الرقمية

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

يعتبر الكتاب مرجع علمي للسنوات صمم ليكون كتابا  دراسيا للسنوات الأولى كليات الهندسة، إلا أنه مفيد كنص تدريبي ممتاز، فهو يحوي تنوعا هائلا من المعلومات القيمة التي تجمع القواعد النظرية والأمثلة العملية وشرحاً عن الشرائح الإلكترونية، تساعد في بناء معظم الدوائر والأنظمة الرقمية البسيطة."

الفصل الأول

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

الفصل الثالث

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

الفصل الثاني

يقدم  شرحا عن كيفية تمثيل  البيانات في الأنظمة الرقمية من خلال تعريف عملية الترميز وأهدافها وقواعدها وعرض أهم أنظمة ترميز البيانات وبعض الشفرات القياسية المستخدمة في أنظمة المعلومات، والتعرف على كيفية تمثيل الأرقام والرموز.

الفصل الرابع

يعرض البوابات المنطقية التي  تعد العناصر المكونة للأنظمة الرقمية وأهم شرائح  الدوائر  المتكاملة  لها،  وأمثلة عن استعمال البوابات المنطقية في تطبيقات بسيطة.

الفصل الخامس

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

الفصل السادس

يقوم بدراسة وتحليل وتصميم أهم الدوائر المنطقية التوافقية، ويعرض أهم أهم شرائح الدوائر المتكاملة لها.

الفصل السابع

يقدم شرحا لدوائر الماسكات والقلابات من خلال دراسة وتصميم الأنواع الشهيرة من القلابات وتوضيح طريقة عملها كونها عناصر البناء للدوائر المنطقية التعاقبية.

الفصل الثامن

يقوم بتحليل الدوائر المنطقية التعاقبية وأهم أهم الفروقات ما بين الدوائر المنطقية التوافقية والدوائر المنطقية التعاقبية  ،ونعرف من خلاله على المسجلات كدوائر منطقية تعاقبية وأهم أنواعها وطرق عملها وأهم تطبيقاتها.

الفصل التاسع

يقدم شرحا مفصلا للعدادات الرقمية كأحد تطبيقات القلابات الأساسية وأحد الدوائر الرقمية المستخدمة بكثرة في العديد من التطبيقات ، مع عرض للشريحة الإلكترونية المستخدمة للعدادات مع أهم خواصها ومواصفاتها.

يمكنكم تنزيل الكتاب من هنا.

الدكتور المهندس خالد بكرو سوري، من مواليد الكويت، حاصل على الدكتوراه في هندسة الحواسيب من جامعة حلب - سوريا، و باحث في: المعالجة الآلية للغة العربية و معالجة الصورة الرقمية و التعليم الالكتروني ، وفي الإعجاز العلمي في القرآن الكريم. يعمل كمدرس في عدد من الجامعات في سوريا وتركيا و هو عميد كلية العلوم وتكنولوجيا المعلومات، أكاديمية توليب للعلوم والتكنولوجيا، اسطنبول - تركيا.

زايد السبت, 2018/06/02 - 1:03م
disqus

June 2nd 2018, 5:32 am

كتاب أساسيات الحوسبة

وادي التقنية

كتاب أساسيات الحوسبة

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

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

وأستطيع أن أقول أن المؤلف أجاد في هذا العمل ، يمكنكم تنزيل الكتاب من هنا.

فهرس الكتاب:

الفصل الأول: الأسس النظرية لعمل الحاسب

- تعريفات

- طريقة عمل الحاسب

- دورة معالجة المعلومة

- أهم مميزات الحاسب

- أنواع الحواسيب

- الأنظمة الذكية

- أنظمة المعلومات

- البنية الأساسية لأبسط نظام حسابي

الفصل الثاني: الإنترنت، الويب والتجارة الإلكترونية

- الإنترنت والويب

- الاتصال بالإنترنت

- الاتصال

- أدوات البحث

- التجارة الإلكترونية

- الحوسبة السحابية

- انترنت الأشياء

الفصل الثالث: البرمجيات التطبيقية

- البرمجيات التطبيقية

- تطبيقات الأغراض العامة

- التطبيقات المتخصصة

- التطبيقات الجوالة

- مجموعة البرامج المتخصصة والمفيدة

الفصل الرابع: برمجيات النظام

- برمجيات النظام

- أنظمة التشغيل

- أنظمة التشغيل الجوالة

- أنظمة تشغيل سطح المكتب

- التشغيل الافتراضي

الفصل الخامس: وحدة النظام

- أجهزة الحاسب المكتبية

- أجهزة الحاسب المحمولة

- أجهزة الحاسب اللوحية

- الهواتف الذكية

- أجهزة الحاسب التي يمكن ارتداؤها

- مكونات الحاسب

- لوحة النظام

- المعالجات الدقيقة

- الذاكرة

- فتحات وبطاقات التوسعة

- خطوط التوصيل والنواقل

- المنافذ

- الكابلات

- مزود الطاقة

الفصل السادس: الإدخال والإخراج

- ما هو الإدخال

- لوحات المفاتيح

- أجهزة التأشير

- الماسحات الضوئية

- قارئات البطاقات

- أجهزة التقاط الصورة

- أجهزة ادخال الصوت

- ما هو الاخراج

- الشاشات

- قارئ الكتاب الإلكتروني

- الطابعات

- أجهزة إخراج الصوت

- أجهزة تدمج الإدخال والإخراج

- بيئة العمل

الفصل السابع: التخزين الثانوي

- الأقراص الصلبة

- تخزين الحالة الصلبة

- الأقراص الضوئية

- التخزين السحابي

- أجهزة التخزين عالية السعة

- نظام تخزين المؤسسة

- شبكة منطقة التخزين سان

الفصل الثامن: الاتصالات والشبكات

- أنظمة الاتصالات

- نقل البيانات

- البروتوكولات

- أنواع الشبكات

- بنية الشبكات

- شبكات المنظمة

- أمن الشبكات

الفصل التاسع: الخصوصية، الأمن، والأخلاقيات

- الأفراد

- الخصوصية

- قواعد البيانات الكبيرة

- الشبكات الخاصة

- الإنترنت والويب

- الهوية على الشبكة

- القوانين الأساسية للخصوصية

- الأمن

- الجريمة الإلكترونية

- تدابير لحماية أمن الحاسب

- تشفير البيانات

- الأخلاقيات

- إدارة حقوق التأليف والنشر والحقوق الرقمية

- السرقة الأدبية

- اتفاقية ترخيص المستخدم النهائي

الفصل العاشر: تمثيل البيانات في أنظمة المعلومات

- البيانات والتعليمات الإلكترونية

- نظام الترميز

- التمثيل الرقمي للبيانات

- أنظمة تمثيل وترميز البيانات

زايد الأربعاء, 2018/05/30 - 10:57ص
disqus

May 30th 2018, 3:33 am

مكتبة وادي التقنية

وادي التقنية

مكتبة وادي التقنية

يسرنا أن نقدم لكم مكتبة وادي التقنية، و هي مكتبة تحوي 44 كتاب تقني قمنا بنشرها أو المساهمة بنشرها منذ أن بدأنا هذا الموقع قبل عشر سنوات، قمنا بجمعها في صفحة واحدة حتى يسهل تصفحها، و تجدون رابطها في أعلى صفحة الموقع ، و للتسهيل اضغط هنا.

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

الأمر مبهج أن هناك عدة كتب نقوم بترجمتها حاليا عسى أن ترى النور قريبا، و هناك بعض المؤلفين تواصلوا معنا لنشر كتبهم، وسوف نفعل ذلك بإذن الله.

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

بارك الله فيكم على دعمكم لنا.

زايد الاثنين, 2018/05/28 - 6:00م
disqus

May 28th 2018, 10:18 am

إطلاق كتاب « تعلم DOM »

وادي التقنية

إطلاق كتاب « تعلم DOM »

بعد مفاوضات مع دار نشر O'Reilly وأخذ إذن المؤلف، وبعد جهدٍ استغرق عدِّة أشهر، انتهى العمل على كتاب تعلم DOM الذي ترجمه عبد اللطيف ايمش عن كتاب DOM Enlightenment لمؤلفه Cody Lindley، والذي نَشَرتَه دار نشر O'Reilly لاحقًا بنفس الاسم.

يأتي هذا الكتاب ليشرح كيفية الاستفادة من DOM لتعديل عناصر HTML عبر JavaScript شرحًا عمليًا مدعَّمًا بالأمثلة القابلة للتطبيق، ويأتي في آخره فصلٌ نُنشِئ فيه مكتبةً شبيهةً بمكتبة jQuery تدريبًا عمليًا على استعمال دوال وكائنات DOM لتعديل المستندات.

يقع هذا الكتاب في أكثر من 300 صفحة من المحتوى التقني المدعَّم بأمثلة عملية قابلة للتجربة فوريًا على المتصفح، وهو مقسَّمٌ إلى أحد عشر فصلًا تشرح مختلف جوانب التعامل مع المتصفحات باستخدام JavaScript.

يستهدف هذا الكتاب فئة المبرمجين متوسطي المعرفة بلغة JavaScript، أي أنَّه يفترض معرفةً مسبقةً بهذه اللغة أو تعاملًا مع إحدى المكتبات المكتوبة بها.

لتنزيل الكتاب اضغط هنا.

يجدر بالذكر أنَّ هذا الكتاب برعاية وادي التقنية، وقد نشرنا من قبل كتبًا من نفس السلسلة وهي:

عمل عبد اللطيف أيضًا على كتبٍ أخرى، منها:

Fahad الاثنين, 2018/05/21 - 4:00م
disqus

May 21st 2018, 7:57 am

صدور جمب ٢.١٠

وادي التقنية

صدور جمب ٢.١٠

بعد عمل دام ست سنوات متواصلة من العمل المستمر، أعلن مطورو برنامج تحرير الصور GIMP الشهير في عالم البرمجيات الحرة، إطلاق الإصدارة ٢.١٠.

أبرز المميزات الجديدة في هذه الإصدارة:

١- انتقال إلى محرك جديد لمعالجة الصور يدعى GEGL وهذه الخطوة تعتبر ضرورية لإضافة مميزات جديدة يخطط لها المطورون في الإصدارة ٣.٢ ، بالإضافة سمح هذا الانتقال معالجة الصور عالية الدقة من مثل 32 بت، وإضافة المعالجة المتوازية وتسريع معالجة البكسلات المعتمد على العتاد.

٢- أصبح إدارة الألوان ميزة رئيسة في البرنامج حيث تعتمدها كل أدواته المختلفة.

٣- تحسين عمل أدوات تحرير الصور الحالية وإضافة أدوات جديدة.

٤- إضافة ميزة معاينة المرشحات مباشرة التي نقلت إلى محرك GEGL الجديدة.

٥- تحسين تقنيات الرسم الرقمي بإضافة ميزة الرسم المتناظر وتدوير الرسوم ودعم فرش MyPaint.

٦- دعم هيئات صور جديدة من مثل OpenEXR و RGBE وWebP و HGT.

٧- تحسين دعم البيانات الوصفية وتحريرها.

٨- إضافة دعم HiDPI.

٩- سمات جديدة للبرنامج الداكنة والرمادية والفاتحة.

١٠- أصبح بالإمكان إضافة قناع لمجموعة من الطبقات.

وغيرها الكثير من المميزات الجديدة التي يمكن الاطلاع عليها هنا.

لتنزيل هذه الإصدارة من هنا.

Fahad السبت, 2018/04/28 - 11:29ص
disqus

April 28th 2018, 3:58 am

صدور أوبنتو 18.04

وادي التقنية

صدور أوبنتو 18.04

أعلنت شركة كانونيكال عن إطلاق أوبنتو ١٨.٠٤ طويلة الدعم تحت مسمى ”Bionic Beaver“ والذي يعني القندس ذي الأعضاء الآلية، تعتبر هذه النسخة نقلة نوعية وعودة أوبنتو إلى أصولها، بعد أن استثمرت طويلا في سطح المكتب يونتي رجعت أخيرا إلى سطح مكتب جنوم واعتمدت بشكل رسمي لنسخة أوبنتو الموجهة إلى سطح المكتب.

كذلك أعلنت الانتقال إلى خادم العرض ويلاند وبما أن هذه النسخة طويلة الدعم فقط ارتأت الشركة إبقاء خادم العرض القديم X.org وتوفير خادم ويلاند بشكل اختياري.

من المميزات الجديدة أيضا إضافة ميزة التثبيت بأقل المتطلبات، الإصدارة الجديدة تأتي بنواة لينكس ٤.١٥ و نسخة السادسة من برامج الأوفيس ليبر أوفيس.

إن الانتقال إلى سطح جنوم من وجهة نظري الشخصية هو أكبر ميزة تقدمها أوبنتو ١٨.٠٤ وخصوصا أن الدعم الفني لهذه الإصدارة سيستمر إلى عام٢٠٢٣.

الفيديو التالي يعرض أهم المميزات في هذه الإصدارة:


للمزيد واستعراض كل المميزات الجديدة من هنا.

لتنزيل هذه الإصدارة من هنا.

admin الجمعة, 2018/04/27 - 11:17ص
disqus

April 27th 2018, 3:29 am

استخدام صور WebP لتسريع مواقع الويب

وادي التقنية

استخدام صور WebP لتسريع مواقع الويب

استخدام صور WebP لتسريع مواقع الويب

تمهيد

صيغة WebP هي صيغة صور حديثة مفتوحة المصدر ومطوَّرة من Google في عام 2010 بناءً على صيغة الفيديو VP8. منذ ذاك الحين، ازداد عدد مواقع الويب (وتطبيقات الهاتف) التي تستخدم صيغة WebP ازديادًا كبيرًا. يدعم متصفحا Google Chrome و Opera صيغة WebP دون إضافات، وهذان المتصفحات مسؤولان عن عرض 74% تقريبًا من صفحات الويب، مما يضمن أنَّ عددًا كبيرًا من المستخدمين يمكنهم تصفح المواقع بشكل أسرع فيما لو استعملت تلك المواقع صورًا بصيغة WebP؛ يجدر بالذكر أنَّ هنالك خططٌ لإضافة دعم لصيغة WebP في متصفح Firefox.

تدعم صيغة WebP ضغط الصور الفقود (lossy) وغير الفقود (lossless)، وتدعم أيضًا الرسومات المتحركة، لذا يمكنها أن تستبدل صيغة GIF. ميزتها الرئيسية التي تتفوق فيها على صيغة الصور الأخرى هي أنَّ الحجم التخزيني للصورة أقل بكثير، مما يعني أنَّ سرعة تحميل الصور ستكون أكبر، وسيقل تراسل البيانات في الخادم وعند زائر الموقع. ولمّا كانت الصور بصيغة WebP أقل حجمًا بنسبةٍ كبيرة مقارنةً مع صور PNG و JPEG، فإنَّها ستسرِّع تحميل الصفحات بنسبةٍ كبيرة. إذا كان تطبيق الويب أو الموقع الخاص بك يعاني من مشاكل في الأداء أو كان حجم التراسل الشبكي كبيرًا، فتحويل صورك إلى صيغة WebP سيساعدك كثيرًا في تحسين أداء الصفحات.

سنستخدم في هذه المقالة أداةً تعمل من سطر الأوامر باسم cwebp لتحويل الصور إلى صيغة WebP، وسنُنشِئ سكربتات تسمح لنا بتحويل جميع الصور الموجودة في مجلّد مُحدَّد إلى هذه الصيغة، بما في ذلك الصور المضافة حديثًا. وفي النهاية، سنناقش منهجيتين يمكننا اتباعهما لتخديم صور WebP إلى زوار موقعنا.

المتطلبات المسبقة

أغلبية الخطوات والأوامر في هذه المقالة تنطبق على جميع توزيعات لينكس، والاختلافات تكون في طريقة تثبيت البرامج وحسب؛ لذا سنعتمد على ذكر طريقة تثبيت الأدوات اللازمة على توزيعة أوبنتو 16.04 و CentOS 7. ما يلزم هو خادم قد ثبتنا عليها إحدى التوزيعتين السابقتين، ومضبوطٌ فيه خادم أباتشي، مع وحدة mod_rewrite، لاحظ أنَّ حزمة أباتشي في توزيعة CentOS 7 تأتي مع دعم mod_rewrite مسبقًا، أما أوبنتو فهي تحتاج إلى تفعيل.

لاحظ أنَّ الغالبية العظمى من الأوامر في هذا الدرس ستعمل على التوزيعات الأخرى دون تعديل.

بعد حصولك على وصول إلى الخادم، وتثبيت أباتشي وتفعيل وحدة mod_rewrite، فيمكنك المتابعة مع هذه المقالة.

الخطوة الأولى: تثبيت cwebp وتهيئة مجلد الصور

سنثبِّت في هذا القسم البرمجات التي سنستخدمها لتحويل الصور، وسنُنشِئ أيضًا مجلدًا وننزِّل فيه صورًا لنختبر الأوامر عليها.

لتثبيت cwebp، البرمجية التي تضغط الصور وتحوِّلها إلى صيغة ‎.webp، فسنستخدم الأمر الآتي:

sudo apt-get install webp 

أما إذا كنتَ تستعمل CentOS 7، فيمكنك استخدام الأمر الآتي بدلًا من الأمر السابق:

sudo yum install libwebp-tools

سنُنشِئ مجلدًا جديدًا في المجلد الجذر لخادم أباتشي (والموجود في المسار ‎/var/www/html) باسم webp:

sudo mkdir /var/www/html/webp

سنغيّر ملكية هذا المجلد إلى المستخدم سامي (sammy، بفرض أنَّ لدينا في النظام مستخدمٌ بذاك الاسم، وإن لم يكن متاحًا فيمكنك إنشاؤه إن أردت، فهو أفضل من ترك الملفات بملكية الجذر [المستخدم root]) وذلك باستخدام الأمر الآتي:

sudo chown sammy: /var/www/html/webp

سنحتاج إلى بعض الصور لتجربة الأوامر عليها، لذا سنُنزِّل صورًا حرةً باستخدام الأمر wget. لاحظ أنَّ هذه الأداة مثبتة افتراضيًا في أوبنتو 16.04، لكن تثبيتها سهلٌ جدًا في CentOS 7:

sudo yum install wget

ملاحظة: لتسهيل متابعة الأوامر الموجودة في هذه المقالة، سنُنزِّل ثلاث صور حرة من الإنترنت، أوّل صورتان منها (Junonia orithya و Mycalesis junonia) مرخصتان برخصة CC BY-SA 4.0 لصاحبها Jee & Rani Nature Photography؛ أما الصورة الأخيرة (Dental Care) فهي مرخصة برخصة CC0.

wget -c "https://upload.wikimedia.org/wikipedia/commons/2/24/Junonia_orithya-Thekkady-2016-12-03-001.jpg?download" -O /var/www/html/webp/image1.jpg
wget -c "https://upload.wikimedia.org/wikipedia/commons/5/54/Mycalesis_junonia-Thekkady.jpg" -O /var/www/html/webp/image2.jpg
wget -c "https://cdn.pixabay.com/photo/2017/07/18/15/39/dental-care-2516133_640.png" -O /var/www/html/webp/logo.png

معظم عملنا سيكون داخل المجلد ‎/var/www/html/webp، لذا سنغيّر مجلد العمل الحالي إليه بكتابة الأمر:

cd /var/www/html/webp

بعد أن ثبتنا خادم أباتشي، وفعّلنا إضافة mod_rewrite، وثبتنا cwebp وبعد أن ضبطنا مجلد التجارب، يمكننا الآن أن نتابع مع الخطوات القادمة.

الخطوة الثانية: ضغط الصور باستخدام cwebp

قبل أن نناقش كيفية تخديم صور ‎.webp إلى زوار موقعنا، علينا أن نُنشِئ نسخًا بهذه الصيغة من الصور الموجودة لدينا حاليًا. يمكننا استخدام الأداة cwebp لتحويل صور JPEG أو PNG أو TIFF إلى صياغة ‎.webp. الصيغة العامة لهذا الأمر تبدو كما يلي:

cwebp image.jpg -o image.webp

يمكن تحديد مسار ملف المخرجات (بصيغة ‎.webp) بعد الخيار ‎-o، لاحظ أنَّ صور WebP تنتهي عادةً باللاحقة ‎.webp.

يمكننا ضبط جودة الصورة ‎-q إلى أيّ قيمة بين 0 و 100؛ وستكون القيمة الافتراضية، إن لم نضبطها، مساويةً إلى 75.

إذا نزّلتَ الصور التي ذكرناها في الخطوة الأولى، فيمكنك تنفيذ الأوامر الآتية لتحويل الصورة image1.jpg إلى image1.webp و image2.jpg إلى image2.webp. تذكّر أن تغيّر مجلد العمل الحالي إلى ‎/var/www/html/webp، ثم نفِّذ الأمر cwebp لتحويل الصور بجودة 100%:

cd /var/www/html/webp
cwebp -q 100 image1.jpg -o image1.webp
cwebp -q 100 image2.jpg -o image2.webp

لنلقِ نظرةً على الحجم التخزيني لملفات JPEG و WebP باستخدام الأمر ls. سنستخدم الخيار ‎-l لعرض الصيغة التفصيلية التي تتضمن حجم الملف التخزيني، والخيار ‎-h الذي يطلب من الأمر ls أن يعرض الحجم بصيغةٍ سهلة القراءة:

ls -lh image1.jpg image1.webp image2.jpg image2.webp

سيُنتِج الأمر السابق الناتج الآتي:

-rw-r--r-- 1 sammy sammy 7.4M Oct 28 23:36 image1.jpg
-rw-r--r-- 1 sammy sammy 3.9M Feb 18 16:46 image1.webp
-rw-r--r-- 1 sammy sammy  16M Dec 18  2016 image2.jpg
-rw-r--r-- 1 sammy sammy 7.0M Feb 18 16:59 image2.webp

يُظهِر ناتج الأمر ls أنَّ حجم الملف image1.jpg هو 7.4 ميغابايت، بينما حجم الملف image1.webp هو 3.9 ميغابايت؛ والمثل ينطبق على ملف image2.jpg (16 ميغابايت) و image2.webp (7.0 ميغابايت). لاحظ أنَّ حجم الملفات قد أصبح نصف ما كان عليه!

إذا كنّا نجري ضغطًا غير فقود (lossless، مما يعني أنَّ البيانات الأصلية للصورة ستُحفَظ كاملةً دون أيّ ضياع أثناء عملية الضغط)، فيمكننا أن نستعمل الخيار ‎-lossless، الذي يُعدّ أفضل طريقة للحفاظ على جودة صور PNG. إذا كانت لديك صور بصيغة PNG (كالتي نزّلناها في الخطوة السابقة) وتريد تحويلها إلى صيغة WebP لتقليل حجمها التخزيني، فيمكنك أن تستعمل الأمر الآتي:

cwebp -lossless logo.png -o logo.webp

الأمر الآتي يُظهِر أنَّ الحجم التخزيني لصورة WebP هو 60 كيلوبايت، وهو حوالي نصف الحجم التخزيني لصورة PNG (حوالي 116 كيلوبايت).

ls -lh logo.png logo.webp

ناتج الأمر السابق:

-rw-r--r-- 1 sammy sammy 116K Jul 18  2017 logo.png
-rw-r--r-- 1 sammy sammy  60K Feb 18 16:42 logo.webp

الخلاصة هي أنَّ الحجم التخزيني لنسخة WebP من الصور هي أقل بحوالي 50% من الحجم التخزيني لمثيلاتها من JPEG و PNG، لكن لاحظ أنَّ نسبة الضغط قد تختلف اعتمادًا على الصور التي عندك. يجدر بالذكر أنَّ هنالك عوامل أخرى كثيرة تؤثر على معدّل الضغط، بما في ذلك معدّل الضغط للصورة الأصلية، وصيغة الملف الأصلي، وطريقة التحويل (فقودة أم غير فقودة)، والجودة المطلوبة، ونظام التشغيل الذي تجري عليه عملية التحويل.

الخطوة الثالثة: تحويل جميع صور JPEG و PNG في أحد المجلدات

لقد حوّلنا بعض الملفات في الخطوة السابقة إلى صيغة WebP يدويًا، لكن فعل ذلك يأخذ وقتًا طويلًا ويتطلب جهدًا كثيرًا. يمكننا تبسيط هذه العملية بكتابة سكربت تحويل الذي سيبحث عن ملفات JPEG ويحولها إلى صيغة WebP بجودة 90%، وسيحوِّل أيضًا صور PNG إلى صور WebP غير فقودة.

أوّل عنصر في السكربت الذي سنكتبه هو الأمر find. يمكنك تعلّم المزيد من المعلومات حول الأمر find من الفصل السابع عشر «البحث عن الملفات» من كتاب «سطر أوامر لينكس». سيبحث الأمر find عن الملفات في المجلد المُحدَّد، وسنستخدم معه بعض الخيارات لمطابقة أسماء تلك الملفات.

لنُنشِئ السكربت باستخدام المحرر النصي المُفضَّل لدينا. سنستخدم هاهنا المحرر nano لكنك تستطيع أن تستعمل أيّ محرر ترتاح معه. سنُنشِئ الملف webp-convert.sh في مجلد ‎/var/www/html/webp:

nano ~/webp-convert.sh

سيبدو أوّل سطر من الملف كما يلي:

find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \)

للحصول على مسار المجلد الذي يحتوي على الصور التي نريد تحويلها، فسنستخدم المعامل الموضعي ‎$1. لاحظ أنَّنا سنُمرِّر مسار مجلّد الصور التي نريد تحويلها إلى السكربت من سطر الأوامر، وهنا سيأتي دور المعامل الموضعي السابق. الغرض من استخدامه هو القدرة على تحديد مسار مجلد الصور بغض النظر عن مكان تخزين السكربت.

باستخدامنا للخيار ‎-type f أخبرنا الأمر find أن يبحث عن الملفات العادية فقط (أي أننا لا نريد أن نحصل على مسارات المجلدات في نواتجه). نريد أيضًا أن نُطابِق اسم الملف مع نمطٍ معيّن باستخدام الاختبار ‎-iname. لاحظ أنَّنا استخدمنا اختبارًا غيرَ حساسٍ لحالة الأحرف (وذلك باستخدامنا للاختبار ‎-iname بدلًا من ‎-name)، وهذا الاختبار سيبحث عن أيّة ملفات تنتهي باللاحقة ‎.jpg ‏(‎*.jpg) أو ‎.jpeg ‏(‎*.jpeg). رمز النجمة * هو محرفٌ خاصٌ يُطابِق محرفًا عاديًا صفر مرة أو أكثر. لاحظ أيضًا أنَّنا استخدمنا المعامل المنطقي ‎-o (الذي يعني «أو») لنطلب من الأمر find أن يعرض الملفات التي تُطابِق الاختبار الأول ‎-iname (أي ‎-iname "*.jpg"‎) أو الاختبار الثاني (‎-iname "*.jpeg"‎). وضعنا كلا الاختبارين بين قوسين لنحرص على أنَّ الاختبار الأول (أي ‎-type f) سيُنفَّذ دومًا باستخدام المعامل المنطقي ‎-and.

بعد العثور على الملفات المطلوبة، علينا أن نتخذ إجراءً لتحويلها إلى صيغة WebP. سنفعل ذلك باستخدام المعامل ‎-exec في السطر الثاني من السكربت الذي نعمل عليه (لاحظ أنَّنا استخدمنا الشرطة المائلة الخلفية \ للسماح بامتداد الأمر find على أكثر من سطر). البنية العامة لهذا المعامل هي ‎-exec command {} \;‎. السلسلة النصية {} ستُستبدل بمسار كل ملف يعثر عليه الأمر find (أي أنَّ الأمر المُحدَّد بهذا المعامل سيُنفَّذ على جميع الملفات، كلًا على حدة). استخدمنا ; لنخبر الأمر find أين ينتهي الأمر (لاحظ أنَّنا هربنا [escape] المحرف ; لأنَّ له معنى خاص في الصدفة [shell] ‏bash، وهو الإشارة إلى نهاية الأوامر).

علينا أن نتحقق أولًا من عدم وجود نسخة ‎.webp من الصور وذلك لكل صورة يُعثر الأمر find عليها، وإن لم تكن موجودةً فسنحوِّلها باستخدام الأمر cwebp كما ناقشنا في الخطوة السابقة. السؤال الآن هو ما هو الأمر الذي علينا تنفيذه مع المعامل ‎-exec؟ صراحةً، سنحتاج إلى تنفيذ أكثر من أمر واحد لتحويل الصور إلى ‎.webp. ولهذا السبب، سنستخدم الأمر bash لتنفيذ سكربت صغير الذي سيُنشِئ نسخة ‎.webp من الملف إن لم تكن موجودةً. ولفعل ذلك سنُمرِّر هذا السكربت الصغير كسلسلة نصية (محاطة بعلامتي اقتباس) باستخدام الخيار ‎-c. إلى هذه المرحلة، لقد تضمّن الأمر find المعامل ‎-exec، الذي يُنفِّذ الأمر bash الذي سنُمرِّر إليه سكربتًا صغيرًا (يُمثَّل فيما يلي بالمحتوى النائب `'commands') الذي سيُنفَّذ مجموعة أوامر على ملفات JPEG. يجب أن يبدو الملف الذي نعمل عليه كما يلي في هذه المرحلة:

find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \) \
-exec bash -c 'commands' {} \;

أما داخل 'commands' (أي السكربت الموجود بين علامتي اقتباس بعد الخيار ‎-c التابع للأمر bash)، فسنبدأ بتهيئة متغير جديد باسم webp_path للاحتفاظ بمسار ملف WebP الجديد، الذي سنولِّده بتبديل لاحقة الملف المُطابَق من الأمر find (أي ‎.jpg أو ‎.jpeg) باللاحقة ‎.webp. سنستخدم الأمر sed هنا لتبديل الملف لاحقة الملف الأصلي (أي جميع المحارف التي تأتي بعد آخر نقطة . في اسم الملف) باللاحقة ‎.webp. رجاءً ارجع إلى قسم الأمر sed في الفصل العشرين «معالجة النصوص» في كتاب سطر أوامر لينكس لمزيدٍ من المعلومات حوله. المعامل الموضعي ‎$0 سيحمل مسار الملف المُطابَق هنا، وذلك لأنَّنا مررنا مسار كل ملف إلى الأمر bash بوضع السلسلة النصية {} كمعامل له (تذكّر أنَّ الشكل العامل للأمر كان bash -c 'commands' {} \;‎). مرّرنا اسم الملف الناتج إلى مجرى الدخل القياسي للأمر sed باستخدام here string وهي العلامة ‎<<<‎ (راجع الصفحة 411 من كتاب سطر أوامر لينكس للتفاصيل):

webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");

للحفاظ على طاقة المعالجة في الخادم، فسنختبر إن كان هنالك ملفٌ محوّلٌ مسبقًا إلى صيغة WebP، وذلك باستخدام الأمر if. سنختبر ‎[‎ إن لم يكن ! هنالك ملفٌ ‎-f باسم ‎"$webp_path"‎ موجودًا مسبقًا. لاحظ وجود علامتي اقتباس حول اسم الملف لتفادي حدوث مشاكل فيما لو احتوى على فراغات:

if [ ! -f "$webp_path" ]; then 
  # conversion command
fi;

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

cwebp -quiet -q 90 "$0" -o "$webp_path";

ملاحظة: ربما لاحظتَ أنَّ الأمر cwebp يُظهِر الكثير من المخرجات، وقد لا نرغب بها في حال استخدمناه ضمن سكربتات، لذا يمكننا الاستفادة من الخيار ‎-quiet لإخبار الأمر cwebp ألّا يعرض أيّ شيء.

يجب أن يبدو السكربت المستخدم لتحويل صور JPEG كما يلي عند هذه المرحلة:

# converting JPEG images
find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \) \
-exec bash -c '
webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then 
  cwebp -quiet -q 90 "$0" -o "$webp_path";
fi;' {} \;

أما لتحويل صور PNG، فسنستعمل شيئًا شبيهًا جدًا بما فعلناه مع صور JPEG، باستثناء أمرين اثنين: أولهما هو تغيير النمط المستعمل في الأمر find إلى ‎"*.png"‎، وثانيهما هو استعمال الخيار ‎-lossless في الأمر cwebp لتحويل صور PNG بطريقة غير فقودة (كما ناقشنا في الخطوة الثانية).

سيبدو الملف كله كما يلي:

#!/bin/bash

# converting JPEG images
find $1 -type f -and \( -iname "*.jpg" -o -iname "*.jpeg" \) \
-exec bash -c '
webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then 
  cwebp -quiet -q 90 "$0" -o "$webp_path";
fi;' {} \;

# converting PNG images
find $1 -type f -and -iname "*.png" \
-exec bash -c '
webp_path=$(sed 's/\.[^.]*$/.webp/' <<< "$0");
if [ ! -f "$webp_path" ]; then 
  cwebp -quiet -lossless "$0" -o "$webp_path";
fi;' {} \;

لنختبر الآن السكربت webp-convert.sh، سنستخدم الملفات التي أنشأناها في الخطوة السابقة لتجربته. لكن احرص أولًا على جعل ملف السكربت قابلًا التنفيذ:

chmod a+x ~/webp-convert.sh

لنشغِّل السكربت على المجلد ‎/var/www/html/webp:

./webp-convert.sh /var/www/html/webp

لم يحدث شيء! ذلك لأنَّ السكربت بحث عن وجود نسخة ‎.webp من الصور في المجلد ‎/var/www/html/wepb، لكننا حولناها كلها في الخطوة الثانية من هذا الدرس. علينا إذًا أن نحصل على صورٍ جديدةٍ أو نحذف نسخة ‎.webp. الأمر الآتي سيحذف جميع ملفات ‎.webp الموجودة في المجلد ‎/var/www/html/webp:

rm /var/www/html/webp/*.webp

بعد حذف جميع صور ‎.webp، يمكننا تشغيل السكربت مرةً أخرى للتحقق أنَّه يعمل:

./webp-convert.sh /var/www/html/webp

سيؤكد الأمر ls أنَّ السكربت قد حوّل الصور بنجاح:

ls -lh /var/www/html/webp

الناتج:

-rw-r--r-- 1 sammy sammy 7.4M Oct 28 23:36 image1.jpg
-rw-r--r-- 1 sammy sammy 3.9M Feb 18 16:46 image1.webp
-rw-r--r-- 1 sammy sammy  16M Dec 18  2016 image2.jpg
-rw-r--r-- 1 sammy sammy 7.0M Feb 18 16:59 image2.webp
-rw-r--r-- 1 sammy sammy 116K Jul 18  2017 logo.png
-rw-r--r-- 1 sammy sammy  60K Feb 18 16:42 logo.webp

هذه الخطوة هي أساس استخدام صور WebP في موقعنا، لأننا نحتاج إلى وجود نسخة WebP من جميع الصورة في موقعنا. سننظر في الخطوات القادمة كيف يمكننا الاستفادة من تلك الصور لتسريع مواقع الويب!

الخطوة الرابعة: مراقبة ملفات الصور في أحد المجلدات

حوّلنا جميع الصور عندنا إلى صيغة ‎.webp في الخطوة الثالثة، لكننا قد نحتاج إلى أتمتة هذه الخطوة للتعامل مع الصور الجديدة التي لم تحوَّل إلى WebP بعد. يمكننا إضافة سكربت جديد لتحويل لمراقبة التغييرات التي تحصل في مجلد الصور لتحويل الصور الجديدة مباشرةً دون الحاجة إلى تشغيل سكربت webp-convert.sh يدويًا في كل مرة نضيف فيها صورةً جديدةً.

إحدى المشاكل في سكربت webp-convert.sh هي أننا لا نستطيع أن نعرف أنَّ صورةً ما قد أُعيدَت تسميتها أو حُذِفَت. فمثلًا، لو أنشأنا صورةً باسم foo.jpg وشغّلنا سكربت webp-convert.sh، ثم أعدنا تسمية تلك الصورة إلى bar.jpg وشغّلنا السكربت webp-convert.sh مجددًا، فسينتهي بنا المطاف بوجود ملفي ‎.webp متطابقين (وهما foo.webp و bar.webp). لهل هذه المشكلة، ولتفادي تشغيل السكربت يدويًا، فسنُضيف مراقبات (watchers) التي تراقب ملفاتٍ أو مجلداتٍ معيّنة للتغييرات، وتُشغِّل أوامر ردًا على تلك التغييرات.

يمكننا ضبط تلك المراقبات باستخدام الأمر inotifywait، الذي هو جزءٌ من الحزمة inotify-tools، وهي مجموعةٌ من الأوامر السطرية التي توفِّر واجهةً بسيطةً لنظام inotify في نواة نظام لينكس. يمكننا تثبيت هذه الحزمة في نظام أوبنتو بالأمر الآتي:

sudo apt-get install inotify-tools

أما لتوزيعة CentOS 7، فالحزمة inotify-tools متوافرة في مستودع EPEL. يمكننا تثبيت مستودع EPEL وتثبيت الحزمة inotify-tools باستخدام الأمرين الآتيين:

sudo yum install epel-release
sudo yum install inotify-tools

الأمر inotifywait ينتظر حدوث تغييرات في مجلدٍ معيّن. الخيار ‎-q سيخبر الأمر inotifywait ألّا يخرج الكثير من المخرجات. نرغب أيضًا أن يعمل الأمر inotifywait دون أجلٍ مسمى (‎-m) كيلا ينتهي تنفيذه بعد الحصول على أوّل حدث وقع في المجلد. إضافةً إلى ذلك، نرغب بضبط المراقبات في المجلد المُحدَّد وجميع المجلدات الفرعية التابعة له تعاوديًا باستخدام الخيار ‎-r.

الصيغة التي نريد الحصول عليها عند وقوع تغييرٍ في المجلد هي «اسم الحدث» متبوعًا بمسار الملف، ويمكننا تغيير الصيغة باستخدام الخيار ‎--format. الأحداث التي نريد مراقبتها هي close_write (الذي سيُطلَق عند إنشاء ملف وانتهاء عملية كتابته إلى القرص)، و moved_from و moved_to (التي ستُطلَق عند نقل ملف)، والحدث delete (الذي سيُطلَق عند حذف ملف).

يمكننا إنشاء السكربت بمحررنا النصي المُفضَّل كما فعلنا في الخطوة السابقة مع السكربت webp-convert.sh. الأمر الآتي سيُنشِئ الملف webp-watchers.sh في المجلد ‎/var/www/html/webp:

nano ~/webp-convert.sh

سيبدو أوّل سطرٍ في السكربت كما يلي:

inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1

لتفحص ما هي المخرجات التي سيُظهرها هذا الأمر، فنحاول تشغيله في المجلد ‎/var/www/html/webp، مع تشغيله في الخلفية بإضافة الرمز & في نهاية الأمر. سننتقل الآن من تعديل السكربت إلى سطر الأوامر لاختبار سلوك الأمر inotifywait (احرص على حفظ الملف والخروج من المحرِّر):

inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete /var/www/html/webp &

لمعرفة المخرجات التي يُنتِجها الأمر inotifywait، فسنُنشِئ عدِّة ملفات ونجري عمليات عليها. سنُنِشئ أولًا ملفًا جديدًا فارغًا باسم new_file باستخدام الأمر touch. أدخِل الأمر الآتي في سطر الأوامر:

touch /var/www/html/webp/new_file

ثم سنُعيد تسمية الملف (أي ننقله) إلى moved_file باستخدام الأمر mv:

mv /var/www/html/webp/new_file /var/www/html/webp/moved_file

وفي النهاية سنحذف الملف moved_file باستخدام الأمر rm:

rm /var/www/html/webp/moved_file

سنشاهد ناتجًا شبيهًا بالناتج الآتي في الطرفية:

CLOSE_WRITE,CLOSE /var/www/html/webp/new_file
MOVED_FROM /var/www/html/webp/new_file
MOVED_TO /var/www/html/webp/moved_file
DELETE /var/www/html/webp/moved_file

سيظهر أوّل سطر بعد إنشاء الملف الجديد، وسيظهر السطران الثاني والثالث بعد نقل الملف (ويشيران إلى مسار المصدر والوجهة). في النهاية، آخر سطر يُظهِر أنَّ الملف قد حُذِف.

بالعودة إلى أوّل سطر في سكربت webp-watchers.sh، سنستخدم الأمر grep لمعرفة إن كانت الملفات التي أطلقت أحد الأحداث السابقة هي ملفات بصيغة JPEG أو PNG؛ ولمّا كان الأمر inotifywait لا يوفِّر الخيار ‎--include لمراقبة الملفات التي تُطابِق تعبيرًا نمطيًا محدَّدًا، فنحن مجبرون لاستخدام الأمر grep لحلّ التفافي لهذا القصور. أمر grep الآتي سيؤدي إلى مطابقة صور JPEG أو PNG فقط. وسنستخدم فيه الخيار ‎-i لتجاهل حالة الأحرف، والخيار ‎-E لاستخدام التعابير النمطية الموسّعة (extended regular expressions). سنضيف أيضًا الخيار ‎--line-buffered إلى أمر grep لتمرير الأسطر التي جرت مطابقتها إلى حلقة التكرار (التي سنُناقشها بعد قليل):

| grep -i -E '\.(jpe?g|png)$' --line-buffered

أي أنَّ ناتج الأمر inotifywait سيُمرِّر مسار الملفات التي تغيّرت في المجلد المُحدَّد عبر أنبوب (pipe، أي الرمز |) إلى الأمر grep، الذي بدوره سيتحقق إن كان الملف صورةً.

الخطوة الآتية هي بناء حلقة التكرار while. يمكننا الاستفادة من حلقة التكرار while مع الأمر read في حالات مثل حالتنا؛ مما يسمح لنا بمعالجة كل سطر من الأسطر المُمرَّرة إلى الحلقة فور إخراجها. سيُخزِّن الأمر read الحدث في متغيرٍ باسم ‎$operation وسيخزِّن مسار الملف المُعالَج في متغيرٍ باسم ‎$path:

| while read operation path; do
  # commands
done;

لندمج ذلك مع أمر inotifywait الموجود في أوّل سطر من السكربت:

inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1 \
| grep -i -E '\.(jpe?g|png)$' --line-buffered \
| while read operation path; do
  # commands
done;

حلقة while ستتحقق من الحدث المُطلَق من الأمر inotifywait، ومن ثم ستجري الأوامر الموجودة داخل الحلقة الأفعال الآتية:

  • إنشاء ملف WebP جديد إن أنشأنا صورةً جديدةً أو نقلناها إلى المجلد الهدف.

  • حذف ملف WebP إذا حُذِفَت الصورة الأصلية أو نُقِلَت من المجلد الهدف.

هنالك ثلاثة أقسام رئيسية في حلقة التكرار. أولها هو تعريف متغيرٍ باسم webp_path الذي هيّأناه ليُخزِّن نسخة ‎.webp من الصورة الهدف (أنشأناه بأسلوب مشابه لما فعلناه في الخطوة الثالثة):

webp_path="$(sed 's/\.[^.]*$/.webp/' <<< "$path")";

الخطوة المنطقية التالية هي اختبار الحدث الذي وقع:

if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then
  # commands to be executed if the file is moved or deleted
elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then
  # commands to be executed if a new file is created
fi;

إذا نقلنا أو حذفنا الملف، فسنتحقق من وجود نسخة ‎.webp منه، فإذا كانت موجودةً فسنحذفها باستخدام الأمر rm:

if [ -f "$webp_path" ]; then
  $(rm -f "$webp_path");
fi;

أما بالنسبة إلى الملفات المُنشَأة حديثًا، فسنختبر إن كان الملف بصيغة PNG (باستخدام if و grep كما فعلنا في الخطوة الثالثة). فعلنا لذا سيسمح لنا باستخدام التحويل غير الفقود (عبر الخيار ‎-lossless). إذا لم يكن الملف المُطابَق بصيغة PNG فسنجري تحويلًا فقودًا باستخدام نفس الأمر المذكور في الخطوة الثانية (أي بتحديد جودة الصورة عبر المعامل ‎-q):

if [ $(grep -i '\.png$' <<< "$path") ]; then
  $(cwebp -quiet -lossless "$path" -o "$webp_path");
else
  $(cwebp -quiet -q 90 "$path" -o "$webp_path");
fi;

قد تتساءل لماذا لم ننقل ملف ‎.webp عند نقل الملف الأصلي المرتبط به، ذلك لأننا اتبعنا المنهجية الأسهل: حذف ملف WebP ثم إعادة إنشاءه من الصفر؛ ذلك لأننا لا نريد تعقيد السكربت في حال أضفنا الجزء المسؤول عن نقل نسخة ‎.webp المرتبطة بالملفات الأصلية.

يجب أن يكون كامل ملف webp-watchers.sh كما يلي:

#!/bin/bash
echo "Setting up watches.";

# watch for any created, moved, or deleted image files
inotifywait -q -m -r --format '%e %w%f' -e close_write -e moved_from -e moved_to -e delete $1 \
| grep -i -E '\.(jpe?g|png)$' --line-buffered \
| while read operation path; do
  webp_path="$(sed 's/\.[^.]*$/.webp/' <<< "$path")";
  if [ $operation = "MOVED_FROM" ] || [ $operation = "DELETE" ]; then # if the file is moved or deleted
    if [ -f "$webp_path" ]; then
      $(rm -f "$webp_path");
    fi;
  elif [ $operation = "CLOSE_WRITE,CLOSE" ] || [ $operation = "MOVED_TO" ]; then  # if new file is created
     if [ $(grep -i '\.png$' <<< "$path") ]; then
       $(cwebp -quiet -lossless "$path" -o "$webp_path");
     else
       $(cwebp -quiet -q 90 "$path" -o "$webp_path");
     fi;
  fi;
done;

لا تنسَ أن تجعل السكربت قابلًا للتنفيذ:

chmod a+x ~/webp-convert.sh

يمكننا الآن تشغيل السكربت على المجلد ‎/var/www/html/webp لمراقبته (وجميع المجلدات الفرعية فيه) للتغيرات. ربما ترغب بتشغيل الأمر في الخلفية بإضافة الرمز & في نهاية الأمر:

./webp-watchers.sh /var/www/html/webp

في هذه المرحلة، حوّلنا جميع الصور الموجودة في المجلد ‎/var/www/html/webp إلى صيغة WebP، وضبطنا المراقبات باستعمال سكربت webp-watchers.sh. حان الوقت الآن لاستكشاف خياراتنا بخصوص طريقة تخديم صور WebP إلى زوار مواقعنا.

الخطوة الخامسة: تخديم ملفات WebP إلى الزوار

إذا اتبعتَ التعليمات الموجودة في الخطوات السابقة، فيجب أن تصبح عندك نسخة ‎.webp لكل صورة JPEG أو PNG موجودة في مجلد ‎/var/www/html/webp. يمكننا الآن التفكير بطريقة تخديم تلك الصور إلى المتصفحات الداعمة لها.

سنفعل ذلك بمنهجيتين اثنتين: استخدام عناصر HTML5 (العنصر [](http://wiki.hsoub.com/HTML/picture) تحديدًا)، ووحدة mod_rewrite في خادم الويب أباتشي. سنناقش طريقة استخدام العنصر في هذه الخطوة، وسنُرجئ شرح الوحدة mod_rewrite إلى الخطوة القادمة.

إذا كنتَ مطوِّر (أو صائن) موقعك، فيمكنك استخدام العنصر لتضمين الصور في صفحات الويب في موقعك. يسمح هذا العنصر بتعريف أكثر من مصدر (source) للصورة. وإذا كان المتصفح يدعم صيغة WebP فسيُنزِّل نسخة ‎.webp بدلًا من الصورة الأصلية، مما يُسرِّع تخديم الصفحة. يجدر بالذكر أنَّ العنصر مدعومٌ دعمًا جيدًا في المتصفحات الحديثة التي تدعم صيغة WebP.

العنصر هو حاوية التي تحتوي على عناصر [](http://wiki.hsoub.com/HTML/source) لتحديد «مصدر» مختلف للصورة المُحدَّدة في العنصر [](http://wiki.hsoub.com/HTML/img) المحتوى فيها. إذا استخدمنا العنصر للإشارة إلى صورة ‎.webp، فسينظر المتصفح إن كان قادرًا على تفسير تلك الصفحة، وإن لم يكن قادرًا فسيستعمل الصورة المُحدَّدة في الخاصية src في العنصر .

لنقل أنَّ لدينا صورة PNG باسم logo.png وحولنا إلى logo.webp باستخدام السكربتات السابقة، فيمكننا استخدام شيفرة HTML الآتية لعرض الصورة logo.webp لأي متصفح يدعم صيغة WebP، والصورة logo.png للمتصفحات الأخرى التي لا تدعم صيغة WebP أو لا تدعم العنصر . لنفتح محررنا النصي المُفضَّل ونُنشِئ ملف HTML في المسار ‎/var/www/html/webp/picture.html:

nano /var/www/html/webp/picture.html

سنختصر الصفحة الاختبارية إلى البنية الآتية:


  
  

يمكن استخدام العنصر لتوفير أكثر من نسخة من الصورة، مما يسمح للمتصفح باختيار أكثر صورة ملائمة بينها لعرضها. هذا أبسط خيارٍ متاحٍ أمامنا لتخديم صور ‎.webp.

بعد أن شرحنا كيفية تخديم صور ‎.webp مباشرةً من شيفرة HTML، سننتقل الآن إلى شرح طريقة أتمتة هذه العملية باستخدام وحدة mod_rewrite التابعة لخادم أباتشي.

الخطوة السادسة: تخديم صور WebP باستخدام وحدة mod_rewrite

إذا أردنا تحسين سرعة موقعنا، لكنه يحتوي على عددٍ كبيرٍ من الصفحات أو لدينا وقتٌ وموارد قليلة لتعديل شيفرة HTML، فستساعدنا وحدة mod_rewrite في أتمتة عملية تخديم صور ‎.webp إلى المتصفحات الداعمة لها.

أولًا، علينا اختبار إذا كانت وحدة mod_rewrite متوافرةً، وذلك في ملف ‎.htaccess باستخدام التعليمة ifModule؛ وإذا كانت الوحدة متاحةً فسنُفعِّلها باستخدام التعليمة RewriteEngine On. يمكن إنشاء ملف ‎.htaccess في مجلد ‎/var/www/html/webp باستخدام الأمر الآتي:

nano /var/www/html/webp/.htaccess

الصيغة الأوليّة لملف ‎.htaccess ستكون كما يلي:


  RewriteEngine On 
  # further directives

لكي نعرف متى علينا تخديم صور ‎.webp إلى المستخدم، فيجب أن يجري خادم الويب عدِّة اختبارات. فعندما يجري المتصفح طلبيةً، فسيُضمِّن فيها ترويسةً تُخبِر الخادم ماذا يستطيع المتصفح تشغيله. وفي حالة صور WebP، سيُرسِل الخادم ترويسة Accept التي تحتوي على image/webp. سنتحقق إذا كان المتصفح قد أرسل هذا الترويسة باستخدام التعليمة RewriteCond. التعليمة RewriteCond تُحدِّد المعايير أو الشروط التي يجب أن تُطابَق حتى يُنفَّذ ما في التعليمة RewriteRule. راجع توثيق وحدة mod_rewrite الرسمي لمزيدٍ من المعلومات:

RewriteCond %{HTTP_ACCEPT} image/webp

علينا ترشيح كل الملفات ما عدا صور JPEG و PNG، وذلك باستخدام تعبيرٍ نمطيٍ شبيهٍ بالتعبير المستخدم في الأقسام السابقة، وذلك لمطابقة عنوان URI المطلوب من المتصفح. لاحظ أننا استخدمنا ‎(?i) لجعل عملية المطابقة غير حساسة لحالة الأحرف:

RewriteCond %{REQUEST_URI}  (?i)(.*)(\.jpe?g|\.png)$ 

لتتحقق أنَّ نسخة ‎.webp من الملف موجودة (من البدهي أننا لا نريد تخديم صورة غير موجودة إلى المستخدم)، فيمكننا استخدام تعليمة RewriteCond كما يلي:

RewriteCond %{DOCUMENT_ROOT}%1.webp -f

في النهاية، إذا تحققت كل الشروط السابقة، فسنُعيد توجيه صورة JPEG أو PNG المطلوبة إلى ملف WebP المرتبط بها. لاحظ أننا «نعيد توجيه الملف» (redirect، أي سيُطلَب من المتصفح أن يجري طلبية جديدة لرابط URI جديد يُشير إلى ملف ‎.webp) باستخدام الراية R، ولا «نعيد كتابة رابط URI» ‏(rewrite). الفرق بين إعادة التوجيه وإعادة كتابة رابط URI هي أنَّ المتصفح سيُخدِّم رابط URI الجديد دون إخبار المتصفح بذلك، مما يعني أنَّ الملف المنقول إلى المتصفح هو ‎.webp لكنّه سيبقى مخدّمًا بنفس رابط URI الأصلي. بعبارةٍ أخرى، سيظهر أنَّ رابط URI يُشير إلى ملف ‎.png (على سبيل المثال)، لكنه في الحقيقة ملف ‎.webp:

RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] 

عند هذه المرحلة، أنهينا قسم mod_rewrite في ملف ‎.htaccess، لكن ماذا سيحدث لو كان هنالك خادم تخزين مؤقت بين خادمنا وجهاز المستخدم؟ قد يؤدي ذلك إلى تخديم النسخة الخطأ من الملف إلى الزائر، ولهذا السبب علينا أن نتحقق إذا كانت الوحدة mod_headers مفعّلةً، وذلك لإرسال ترويسة Vary: Accept. الترويسة Vary تُخبر الخوادم الوسيطة (proxy servers) أنَّ نوع المحتوى للمستند (أي MIME type. بعبارةٍ أخرى: صيغة الملف المُخدَّم) تختلف (Vary) اعتمادًا على قدرات المتصفح الذي طلب الملف. إضافةً إلى ذلك، إنَّ المحتوى المُخدَّم إلى الزائر قد وُلِّد اعتمادًا على ترويسة Accept الموجودة في الطلبية. فطلبيةٌ أخرى لها ترويسة Accept مختلفة قد تحصل على ناتج آخر. لاحظ أنَّ إرسال هذه الترويسة هو أمرٌ ضروري لمنع الخوادم الوسيطة من تخديم صور WebP إلى المتصفحات غير الداعمة لها:


  Header append Vary Accept env=REDIRECT_accept

في نهاية ملف ‎.htaccess، سنضبط نوع MIME لملفات ‎.webp إلى image/webp باستخدام التعليمة AddType. فعلنا ذلك لتخديم الصور باستخدام نوع MIME الصحيح:

AddType image/webp .webp

هذه هي النسخة النهائية من ملف ‎.htaccess:


  RewriteEngine On 
  RewriteCond %{HTTP_ACCEPT} image/webp
  RewriteCond %{REQUEST_URI}  (?i)(.*)(\.jpe?g|\.png)$ 
  RewriteCond %{DOCUMENT_ROOT}%1.webp -f
  RewriteRule (?i)(.*)(\.jpe?g|\.png)$ %1\.webp [L,T=image/webp,R] 



  Header append Vary Accept env=REDIRECT_accept


AddType image/webp .webp

ملاحظة: لاحظ أنَّك تستطيع دمج ملف ‎.htaccess السابقة مع الملف الموجود مسبقًا عندك. فلو كنتَ تستخدم ووردبريس مثلًا، فيمكنك نسخ ملف ‎.htaccess السابق ولصقه في بداية الملف الموجود عندك.

لنجرِّب ما فعلناه في هذه الخطوة. لو اتبعنا الخطوات السابقة، فيجب أن يكون لدينا ملف باسم logo.png و logo.webp في مجلد ‎/var/www/html/webp. لنجرِّب استخدام عنصر بسيط لتضمين صورة الشعار logo.png في صفحة الويب. يمكننا إنشاء ملف HTML تجريبي مثلما فعلنا في الخطوة السابقة:

nano /var/www/html/webp/img.html

أدخِل شيفرة HTML في ملف ‎/var/www/html/webp/img.html:


عندما تزو صفحة الويب السابقة باستخدام متصفح Chrome بزيارة الرابط http://example.com/webp/img.html فستلاحظ أنَّ الصورة المُخدَّمة هي نسخة ‎.webp من الشعار (جرِّب مثلًا فتح الصورة في لسانٍ جديد)؛ أما إذا كنتَ تستخدم Firefox فستحصل على نسخة ‎.png تلقائيًا.

الخلاصة

تعلمنا في هذه المقالة عن كيفية استخدام صيغة صور WebP لجعل تحميل صفحات الويب أسرع، وشرحنا كيفية استخدام الأداة cwebp لتحويل الملفات. أوّل طريقة استعملناها لتخديم الملفات هي عبر عنصر ، أما الخطوة الثانية فكانت باستعمال وحدة mod_rewrite في أباتشي.

ما شرحناه في هذا الدرس كافٍ لتحقيق هدف تسريع الموقع باستخدام صور WebP، لكن يمكنك تخصيص السكربتات لتناسب احتياجاتك. ننصحك بأخذ وقتك لتصفح المراجع الآتية:

  • لتعلّم المزيد حول ميزات صيغة WebP وكيفية استخدام أدوات التحويل، فانظر إلى توثيق WebP.

  • لمزيدٍ من التفاصيل والأمثلة عن استخدام العنصر ، فانظر إلى صفحته في موسوعة حسوب.

  • للتوسع في فهم وحدة mod_rewrite، فألقِ نظرةً على توثيقها.

استخدام صيغة WebP لصور موقعك سيُقلِّل حجمها التخزيني بنسبةٍ كبيرة، مما يُقلِّل حجم التراسل الشبكي ويجعل تحميل الصفحات أسرع، خصوصًا إذا كان موقعك يحتوي على عددٍ كبيرٍ من الصور.

مصدر هذه المقالة هو مقالة How To Create and Serve WebP Images to Speed Up Your Website المنشورة في DitgitalOcean والتي كتبها عبد اللطيف ايمش.

admin السبت, 2018/04/14 - 2:40م
disqus

April 14th 2018, 7:16 am

صدور FreeCAD 0.17

وادي التقنية

صدور FreeCAD 0.17

بعد سنتين من العمل المتواصل، منذ إصدارة 0.16 أعلن فريق برنامج FreeCAD عن إطلاق الإصدار 0.17 الذي تطلب أكثر من ٦٨٠٠ تغيير في الشفرة المصدرية وقد أضيفت منضتي عمل جديدين بالإضافة إلى تحسين مناضد العمل السابقة.

بداية ما هو FreeCAD ؟

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

يعمل فريكاد على منصات متعددة ( ويندوز، ماك، لينكس) ويقرأ ويكتب العديد من الصيغ من مثل STEP و IGES و STL و SVG و DXF وOBJ و IFC و DAE وغيرها الكثير.

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

يقدم فريكاد نفس المميزات التي تقدمها البرامج CATIA و SolidWorks و Solid Edge و يقوم بنفس العمل.

لمن برنامج فريكاد؟

إن كنت هاوي أو محترف وحصلت على مشروع ترغب في بنائه وتحاج إلى صنع مخطط له،على شكل مطبوع 2d أو 3D ؟ قم بتصميمه في فريكاد. فأنت لا تحتاج إلى أي خبرة مسبقة.

أما إذا كنت مستخدم محترف، فإنك ستجد أدوات مماثلة في فريكاد مثل التي توجد في البرامج التجارية.

ما الجديد في 0.17 ؟

- إعادة تصميم منضدة العمل PartDesign بالكامل حيث أضافت فكرة حاوية الجسم والجزء، وهذا التغيير لا يتوافق مع الإصدارة السابقة 0.16 لذا يجب الحذر عند فتح الملفات القديمة.

- إضافة مدير الإضافات إلى البرنامج مما يسهل عملية الحصول على الإضافات وتثبيتها.

- إضافة منضدة العمل TechDraw الذي استبدل منضدة الرسم القديمة ولكن بمميزات أفضل وأكثر.

بالإضافة إلى قائمة طويلة من المميزات الجديدة التي يمكن الاطلاع عليها من هنا.

لتنزيل البرنامج من هنا.

Fahad الثلاثاء, 2018/04/10 - 9:28ص
disqus

April 10th 2018, 1:58 am

إعلان صيغة فيديو AV1 حرة

وادي التقنية

إعلان صيغة فيديو AV1 حرة

أعلن تحالف الوسائط المفتوحة عن إطلاق ترميز فيديو حر مخصص لدقة 4K بدون قيود تجارية، ويتأتي تحت اسم AV1 هو منافس لصيغة HEVC  التجارية مع كفاءة أعلى بنسبة 30%.

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

وأهم أهداف التحالف هو تطوير صيغة تساعد على تقليل أحجام ملفات الفيديو مع كونها بدون قيود تجارية؛ حيث تقدر بعض الدراسات أن 82% من استهلاك شبكات الإنترنت سيكون فيديو بحلول عام 2021.

زايد الخميس, 2018/03/29 - 1:26م
disqus

March 29th 2018, 5:46 am

أفضل الحواسيب المحمولة المخصصة لنظام لينكس

وادي التقنية

أفضل الحواسيب المحمولة المخصصة لنظام لينكس

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

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

  • تقريباً بعض أجهزة لاب توب Luinx  قد تحتاج إلى عمل إضافي لتثبيت برامج التشغيل وإصلاح مشكلات التوافق ولكن معظمها يعمل بشكل جيد ومع ذلك إذا كنت تريد التأكد والحصول على جهاز لاب توب " يعمل فقط " ، احصل على جهاز كمبيوتر محمول من قائمتنا أدناه .
  • قد لا يكون اللاب توب  " الأفضل " بالنسبة لك مناسبًا لشخص آخر لذا اختر جهاز كمبيوتر محمول يعتمد على ميزانيتك وتفضيلاتك ومتطلباتك أولاً تحقق من التوصيات الثانية .
  •  قم ببحثك عن الجهاز قبل شرائه أولاً عن طريق محرك البحث Google بكتابة اسم موديل الجهاز الذي تخطط لاستخدامه عن طريق إضافة " linux " أو " Ubuntu " أو أي شيء آخر ستستخدمه وستجد المزيد من المعلومات حول هذا الجهاز . قد لا يكون الجهاز مدعومًا بالبرامج و التعريفات ، أو قد يكون هناك بعض الأخطاء في المواصفات أو المعلومات مثل لوحة اللمس ، Wi-Fi ، عمر البطارية ... إلخ . كما يمكنك حتى البحث في المنتديات والحصول على بعض الآراء / الآراء من أشخاص آخرين إذا كنت تشتري جهاز كمبيوتر محمول مع توزيعة Linux مثبتة مسبقًا ، فلا داعي للقلق بشأن التوافق .
  • تعمل أجهزة اللاب توب المزودة بنظام Windows المثبت مسبقًا مع نظام التشغيل Linux والعكس بالعكس إذا وجدت جهاز لاب توب مثبت عليه Windows مثبتًا مسبقًا ، فلا يزال بإمكانك استخدامه لتثبيت نظام Linux عليه بنفسك كما يمكنك  تثبيت نظام لينكس على جهاز لاب توب ماك (أبل) و تجدر الإشارة إلى أن تلك الأجهزة التي تعمل بنظامي التشغيل Windows و Mac غالبًا ما تكون أكثر تكلفة ، لذلك إذا كنت تخطط لتثبيت نظام التشغيل Linux ، فلا تحصل على ترخيص Windows باستخدام الكمبيوتر المحمول الجديد .
  • تحقق أولاً من أجهزة Linux فبعض الأجهزة لديها توصيات رسمية للحواسيب المحمولة والبعض الآخر لديها منتديات مجتمعية مع قائمة بالتوصيات Mint و Ubuntu هما أكثر متاجر لينكس شعبية ، وبطبيعة الحال فهي متوافقة مع معظم الأجهزة مباشرة من الشركات الأخرى ، أيضا يحتوي Ubuntu على دليل للحواسيب المحمولة المختبرة والموصى بها والتي يجب عليك التحقق منها كما أن Arch Wiki مليء بالمعلومات المفيدة حول أجهزة الكمبيوتر المحمولة Linux والأجهزة ذات الصلة.
  • لا تحتاج إلى جهاز لاب توب قوي لأجل أداء سلس فمعظم أنظمة لينكس خفيفة الوزن في حد ذاتها حتى المشهورة منها بحيث لا تحتاج إلى الكثير من ذاكرة الوصول العشوائي ووحدة المعالجة المركزية (CPU) كما تحتاج مع Windows أو Mac ، يمكنك حتى تشغيل نظام لينكس خفيف الحجم على ذاكرة عشوائية سعة 256 ميجابايت أو أقل و بالطبع ، للحصول على أداء أفضل ، ستحتاج إلى أجهزة أفضل لذلك يجب عليك اختيار جهاز اللاب توب استنادًا إلى متطلباتك وميزانيتك مع الأخذ في الاعتبار أن أنظمة لينكس نفسها لن تحتاج إلى الكثير من المواصفات مثل الأنظمة الأخرى .
  •  إذا كنت لا ترغب في استخدام نظام Linux كنظام تشغيل رئيسي على الجهاز ، فيمكنك دائمًا إعداد نظام التشغيل المزدوج مع Linux وWindows أو Mac .


و فيما يلي ترشيحات لأفضل خمسة أجهزة لاب توب تعمل بنظام لينكس لعام 2018 ، و هذا هو الموضوع الرئيسي ، فتابع معنا .
 


 1 – Dell XPS 13 Developer Edition :

مثالية للذين يبحثون عن جهاز أنيق و راق .
و يتميز بالآتي :
-    تصميم رائع و جذاب .
-    عدة خيارات للاتصال .
-    تلائم الأجهزة الصغيرة .
و يعيبه أنه يأتي بكاميرا ويب WebCam ضعيفة .
يحتفظ XPS 13 بتاجه كالبطل غير المتنازع عليه في سوق Ultrabook ، ويمكن للمرء أن يتعجب من دعم Dell لنظام Linux الذي لا يعين كنظام رئيسي . يمكن تخصيص اللاب توب بحيث يمكنك تهيئته ليكون مناسبًا لكل شيء بدءًا من مهام المكتب الروتينية إلى الألعاب ، اعتمادًا على المبلغ الذي ترغب في دفعه .
إذا كنت ترغب في ذلك ، يمكنك الحصول على أغلى جهاز XPS 13 ، الذي يحتوي على شاشة تعمل باللمس بتقنية InfinityEdge بدقة 4k ، أو الحصول على شاشة أقل دقة FHD و لا تعمل باللمس ، و تجدر الإشارة أيضًا إلى أن الشاشة عالية الدقة ستفرض جهداً إضافياً على وحدة معالجة الرسومات ووحدة المعالجة المركزية ، وقد تؤثر على عمر البطارية بشكل سلبي .
و نظرًا لأنه يُنظر إليه على أنه إصدار " مطورى البرامج " ، فمن المفاجئ أنه لا توجد خيارات تخصيص إضافية . فالطراز الأساسي يأتي مع 8 جيجا بايت من ذاكرة الوصول العشوائي مع قرص صلب بسعة 256 من نوع SSD ، و لن يمكنك ترقيتها بعد شرائها ، إلا أنه يمكنك اللجوء إلى القرص الصلب الذي يأتي بسعة 512 جيجا بايت من نوع SSD أيضاً ، و في مقابل مبلغ إضافي أيضاً يمكنك الحصول على نفس القرص بسعة 1 تيرا بايت .

 


 2 - Alpha Litebook :

للذين يريدون شراء جهاز مشهور يعمل بنظام Linux .
و يتميز بالآتى :
-  شاشة بدقة FHD .
-  العديد من المنافذ .
و يعيبه أن القرص الصلب من نوع SSD بسعة 120 جيجا بايت فقط .
إحتكرت شركتا جوجل و أرمادا فئة Chromebook مما أدى إلى استياء بعض مستخدمى Linux التقليدين الذين يريدون مواصفات أفضل مقابل المال الذي يدفعونه ، لذلك تعهدت شركة Alpha بتلبية رغباتهم بإصدار فئة Litebook بأسعار تماثل أجهزة Chromebook تقريباً و التى تأتى غالباً بنفس سعة ذاكرة الوصول العشوائي فقط ، و لكن مع أجهزة Litebook  فإنه يكون أعلى المواصفات من حيث سعة القرص الصلب كما يمكنك تخصيصه للاستخدام الأمثل لك ،  و هو يأتي بمعالج Intel Celeron N3150 رباعي النواة بتردد 1.6 جيجا هيرتز ، و هو شئ ممتاز .
و على ذكر التخصيص و الخيارات الإضافية ، يمكنك اختيار شاشة بدقة FHD مع قرص صلب عادى بسعة 512 جيجا بايت ، أو قرص صلب من نوع SSD بسعة 120 جيجا بايت فقط ، أو يمكنك إختيار الخيار " الهجين " الذي يشمل قرص صلب عادى بسعة 512 جيجا بايت ، مع قرص صلب من نوع SSD سعة 32 جيجا بايت فقط ، و هذه نقطة ضد هذه الفئة لمن يريدون قرص من نوع SSD بسعة أكبر من 120 جيجا بايت .
و إذا كنت بحاجة إلى جهاز أكثر قوة ، فإن Alpha Store يقدم أجهزة لاب توب من نوع Linux مع مواصفات أكثر تحديدًا مثل Centurion Ultra .


 3 – Purism Librem 13 :

مناسبة لمحبي الخصوصية .
و يتميز بالآتي :
- صُمم ليكون آمنا جداً .
- أنه لن يتم ترقية الجهاز إلا بعد ثلاث سنوات على الأقل .
و يعيبه أنه باهظ الثمن .
شرعت شركة Purism في سعيها لبناء أكثر أجهزة اللاب توب أمانًا على الإطلاق ، ومن الواضح أنها اختارت ( Linux PureOS )  لتشغيل الجهاز ، فبدلاً من التوجه السائد ، دخلت الشركة إلى مجتمع التمويل الجماعي للحصول على تمويل أكثر من 430 ألف دولار ، مما يسمح لها باعتماد روح أكثر صرامة من معظم الشركات عندما يتعلق الأمر بالخصوصية والحقوق في البرمجيات الحرة و الأمان .
يبدو جهاز Librem 13 للوهلة الأولى أنه جهاز تقليدي ، و لكن عندما تستخدمه سترى أكثر من ذلك ، على سبيل المثال الشركة قد صنعت لوحات المفاتيح الخاصة بها ، بالإضافة إلى ذلك ، فإن اهتمام Purism بنظام لينكس و الآمن بشكل عام ، يتجاوز معظم الأجهزة في هذه القائمة .


4 – System76 Oryx Pro :

أجهزة راقية بمواصفات عالية .
و يتميز بأنه هناك اختيار بين شاشة بمقاس 15.6 أو 17.3 بوصة .
و لكن يعيبه أنه غير قابل للتكوين بمعنى أنه لا يمكنك فيما بعد ترقية ذاكرة الوصول العشوائي أو القرص الصلب لأنه غير قابل للإزالة ، كما أنه يعيبه أنه يكون مكلفاً إذا أردت خيارات أعلى في المواصفات .
صمم Oryx Pro لنظام التشغيل Linux ، و يمنحك فرصة الاختيار بين نظام لينكس المقدم من Ubuntu 16.04 أو OS 17.10 المعتمد أساسا على Ubuntu .
يأتي الجهاز بهيكل مصنوع من الألمنيوم خفيف الوزن مع لون أسود غير لامع و لديك حتى اختيار حجم الشاشة (15.6 أو 17.3 بوصة) . يوفر أيضا معالج رسومى GeForce GTX 10 ومجموعة Oryx تعمل بمعالج Intel Core i7 رباعي النواة بتردد 3.8 جيجا هيرتز مع توربو و تشجعك الشركة على تخصيص Oryx ليناسب احتياجاتك بشكل افتراضي ، حيث يمكنك أن تحصل على 8 جيجا بايت من ذاكرة الوصول العشوائي وقرص صلب من نوع SSD بسعة 250 جيجا بايت ، ولكن يمكنك دفع مبلغ إضافي للترقية إلى 64 جيجا بايت من ذاكرة الوصول العشوائي مع قرص صلب من نوع SSD بسعة 2 تيرا بايت إذا كنت ترغب في ذلك - على الرغم من أن التكوينات الراقية تصبح مكلفة للغاية هنا .
كما يمكنك أيضًا الاختيار بين Nvidia’s GTX 1060 و GTX 1070 عندما يتعلق الأمر بالمعالج الرسومي ، ومن الممكن إضافة محركات أقراص إضافية ، أو شراء حقيبة لاب توب مصممة لحماية جهازك . يمكن تمديد الضمان من دفتر لتوفير التغطية لمدة ثلاث سنوات ، و هذه خيارات جيدة جداً .


 5 – System76 Galago Pro :

أتبحث عن قوة نظام Linux فى نهاية المطاف ؟
و يتميز هذا الجهاز بأنه يمكنك توسيع قدراته بترقية بعض مواصفاته ، كما يتميز بأنه يمكنك اختيار شاشة بدقة QHD ، كما أنه يمكنك الحصول على النسخة الافتراضية ذات دقة عرض FHD مقابل ثمن أقل .
على الورق ، يعتبر Galago Pro من System76 وحشًا مطلقًا ، ومع ذلك فهو يزن أقل من معظم أجهزة اللاب توب التي تحتوي أيضًا على شاشة مقاس 13 بوصة . هذا الجهاز ينافس الإصدار المطور من Dell XPS 13 ، والذي يتميز بهيكل من الألمنيوم ، و يوفر سعة تصل إلى 32 جيجا بايت من ذاكرة الوصول العشوائي و هذا ممتاز .
لدى Galago Pro مكانين للأقراص الصلبة . حيث يقبع في المكان الأول قرص صلب بسعة 120 جيجا بايت من نوع SSD بشكل افتراضي ولكن يمكن اختيار سعة 2 تيرا بايت عند الطلب ، يمكنك أيضًا اختيار تثبيت قرص SSD ثانٍ في المكان الآخر بسعة تصل إلى 4 تيرا بايت ، و تلك خيارات ممتازه ، إذا لم يكن ذلك كافياً فإنه يحتوي على شاشة بمقاس 13.3 بوصة بدقة 3,200 × 1,800 بكسل ، و منفذ Ethernet ، وقارئ بطاقة SD ، و منفذين USB ، و ثلاثة منافذ Thunderbolt ، و منفذ USB Type-C ، و منفذ mini-Display ، باختصار لن تجد مواصفات مماثلة في عالم الأجهزة التي تعمل بنظام ويندوز تقدم لك هذا الكم من الطاقة و سعة التخزين .

Fahad الأحد, 2018/03/18 - 8:13ص
disqus

March 18th 2018, 12:56 am

كتاب "تعلم لغة Go بسهولة"

وادي التقنية

كتاب "تعلم لغة Go بسهولة"

يسر فريق وادي التقنية أن يقدم لكم كتاب ”تعلم لغة Go بسهولة“ الكتاب العربي الوحيد المتكامل (على حسب معرفتنا) في لغة جو من شركة جوجل.

استغرق الكتاب قرابة السنة من الجهد المتواصل في الترجمة والمراجعة والتنسيق، ونقتبس من مقدمة الترجمة العربية:

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

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

وكالعادة لا تتوفر العديد من المصادر العربية التعليمية لكل التقنيات الحديثة، ولكني آمل أن يكون هذا العمل باكورة أعمال أخرى كما حدث مع كتابتي ”تعلم بايثون بسهولة“ (للأسف لم يكتمل) عندما أطلقته في عام ٢٠٠٧م حيث لم تكن هناك العديد من الكتب العربية حول لغة بايثون في تلك الفترة، أما الآن ولله الحمد فقد توفرت العديد من المصادر الغنية والمتعمقة في لغة بايثون.“
 

محتوي الكتاب:

نفترض في هذا الكتاب أنك على علم بإحدى لغات البرمجة الأخرى و قد برمجت بها . سواء عملت بلغة تستخدم المترجم مثل c وc++‎ وjava ، أو بلغة تستخدم المُفسر مثل Python و Ruby و JavaScript ، لذلك نحن لن نشرح كل شيء كما لو كان الوضع للمبتدئ . ستكون بناء الجملة السطحية مألوف، وكذلك المتغيرات والثوابت، والتعبيرات، وتدفق التحكم، والوظائف.

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

ويصف الفصل الثاني العناصر الأساسية المكونة للغة Go: الإعلانات، والمتغيرات، وأنواع البيانات الجديدة، والحزم والملفات، والنطاق. يناقش الفصل الثالث الأرقام، والعمليات المنطقية ، والسلاسل النصية، والثوابت، ويشرح كيفية معالجة نصوص يونيكود. ويصف الفصل الرابع الأنواع المركبة، وهي الأنواع المبنية من الأنواع الأكثر بساطة باستخدام المصفوفات والخرائط والهياكل والشرائح، طريقة جو للقوائم الديناميكية. ويغطي الفصل الخامس الدوال ويناقش التعامل مع الأخطاء، وجمل panic و recover و defer.

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

جو لديها نهج غير عادي للبرمجة الكائنة التوجه. فلا توجد وراثة الصفوف،أو في الواقع أي صفوف، فالكائنات ذات السلوك المعقد تصنع من الكائنات البسيطة بالتركيب ولكن ليس بالوراثة. ويمكن للدوال أن ترتبط بأي نوع مخصص من قبل المستخدم ،وليس فقط بالهياكل، والعلاقة بين أنواع الملموس والأنواع المجردة (واجهات) هو ضمني، لذا يمكن أن يفي نوع ملموس بواجهة لم يكن مصمم النوع على علم بها. يغطي الفصل السادس الدوال بينما يغطى الفصل السابع الواجهات.

ويعرض الفصل الثامن طريقة جو في التزامن، الذي يقوم على فكرة توصيل العمليات المتسلسلة (CSP)، التي تجسدها رويتينات جو goroutines والقنوات channels .

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

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

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

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

يشرح الفصل الثالث عشر تفاصيل البرمجة منخفضة المستوى الذي يستخدم حزمة unsafe للتغلب على نظام أنواع جو، وعندما يكون ذلك مناسبا.

كل فصل يحتوي على عدد من التمارين التي يمكنك استخدامها لاختبار فهمك للغة Go، واستكشاف الأفكار الجديدة من أمثلة الكتاب.

رخصة الترجمة العربية:

الترجمة العربية مرخّصة برخصة المشاع الإبداعي نَسب المُصنَّف 4.0 دولي.

عن مؤلفين الكتاب:

ألان دونوفان، مهندس استشاري في قسم البنية التحتية في شركة جوجل، متخصص في أدوات تطوير البرمجيات. بدأ العمل ضمن فريق لغة جو منذ ٢٠١٢م في تصميم المكتبات و الأدوات للتحليل الساكن. وهو مؤلف العديد من الأدوات منها: oracle و godoc-analysis و eg و gorename .

بريان كيرنغان عمل في مركز أبحاث علوم الحاسوب في مختبرات بيل حتى عام ٢٠٠٠م، في مجال لغات يونكس وأدواته. يعمل حاليا بروفيسور في قسم علوم الحاسوب في جامعة Princeton. وهو مؤلف مشارك للعديد من الكتب من ضمنها The C Programming Language و The Practice of Programming.

 

لتنزيل الكتاب بصيغة PDF اضغط من هنا، ولتنزيل مصدر الكتاب من هنا.

يسعدنا تواصلكم معنا وإخبارنا بالأخطاء اللغوية والترجمية والإملائية في الترجمة العربية.

Fahad السبت, 2018/03/10 - 9:35ص
disqus

March 10th 2018, 12:53 am

إطلاق موسوعة حسوب أول موسوعة عربية لتوثيق لغات البرمجة

وادي التقنية

إطلاق موسوعة حسوب أول موسوعة عربية لتوثيق لغات البرمجة

أعلنت شركة "حسوب" الرائدة عربيا في تطوير مشروعات ويب لإثراء المحتوى العربي على شبكة الإنترنت وتمكين الشباب العربي وتحسين مهاراته رسميا عن مشروعها الجديد "موسوعة حسوب"،  وهو المشروع الذي يوفر توثيقا باللغة العربية للغات البرمجة المختلفة بما في ذلك  HTML و CSS و JavaScript و SQL وغيرها من اللغات.

وعملت "حسوب" خلال الشهور الست الماضية على توفير توثيق كامل للغات  HTML وCSS وJavaScript وSQL وPHP، وتبلغ عدد صفحات الموسوعة الآن أكثر من 1000 صفحة تتضمن أكثر من 300 الف كلمة، وتخطط الشركة خلال الشهور القليلة المقبلة لتزويد "موسوعة حسوب" بالتعاون مع المساهمين المتطوعين بتوثيق كامل للعديد من لغات البرمجة الأخرى الهامة، والتي تشمل  وRuby وKotlin وGo وPython بالإضافة للمكتبات البرمجية المرتبطة لها مثل Bootstrap وjQuery و React والعديد من المكتبات الأخرى.

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

وقال عبد المهمين الأغا المؤسس والمدير التنفيذي لشركة حسوب تعليقا على إطلاق "موسوعة حسوب": "لأول مرة بتاريخ الويب العربي يصبح لدينا مرجع شامل يوثّق لغات البرمجة JavaScript HTML CSS PHP SQL"، ووعد الأغا بالمزيد من التطويرات القادمة للموسوعة قريبا.

رابط الموسوعة: https://wiki.hsoub.com

تأسست شركة حسوب عام 2011 ولدى الشركة الآن مجموعة من المشروعات الرائدة في تقديم الحلول للمستخدم العربي وإثراء المحتوى الرقمي باللغة العربية على شبكة الإنترنت، وتشمل مشروعات الشركة كل من خدمة إعلانات حسوب وهي شبكة إعلانية وموقع خمسات وهو سوق لبيع وشراء الخدمات المصغرة، هذا بالإضافة إلى موقع مستقل للعمل الحر الذي يتيح توظيف أفضل المستقلين العرب للعمل على تطوير المشروعات عن بعد، إلى جانب كل من أكاديمية حسوب التي توفر دورات تعليمية عالية الجودة باللغة العربية في مختلف المجالات التقنية وموقع حسوب I/O الذي يعتبر مجتمعا للنقاش وطرح الأفكار.

Fahad الثلاثاء, 2018/02/13 - 7:48ص
disqus

February 12th 2018, 11:14 pm

صدور كدي بلازما ٥.١٢

وادي التقنية

صدور كدي بلازما ٥.١٢

بعد أربعة أشهر من العمل المستمر في التطوير، أعلن مجتمع كدي عن إطلاق كدي بلازما ٥.١٢ طويلة الدعم، وتعتبر هذه النسخة الإصدارة الثانية طويلة الدعم بعد كدي بلازما ٥.٨، جاءت كدي بلازما ٥.١٢ مركزة على سرعة الإقلاع وتحسين تجربة الاستخدام بشكل عام، حيث عكف المطورون على تتبع العلل وإصلاحها في كل أنحاء الشفرة المصدرية.

أهم مميزات كدي بلازما ٥.١٢

  • تحسين الأداء بشكل عام وزيادة سرعة تشغل سطح المكتب بمقدار ٣٠٪ .
  • تطوير دعم ويلاند حيث أضاف ميزة الألوان الليلة لضبط سطوع ألوان الشاشة في الليل.
  • أصبح KRunner يدعم برامج قراءة الشاشة.
  • أصبحت نصوص التنبيهات قابلة للنسخ.
  • تحسين مدير التطبيقات Discover بحيث أصبح يعرض تفاصيل البرامج بشكل أفضل وزيادة استقراره وثباته.
  • الاستمرار في تحسين ويلاند على كدي بحيث أصبح مناسبا لشريحة أوسع من المختبرين.

هذا الفيديو يشرح بشكل مرئي أهم المميزات:

إذا كنت ما تزال على كدي ٥.٨ المستقرة وترغب بمعرفة ما الجديد منذ تلك الإصدارة، راجع هذه المقالات:
كدي ٥.٩ وكدي ٥.١٠ وكدي ٥.١١
لقد حدثت العديد من النقلات النوعية لكدي منذ كدي ٥.٨ لذا ننصحك بالترقية.

Fahad الأربعاء, 2018/02/07 - 8:27م
disqus

February 7th 2018, 11:43 am

إعلان ليبرافيس ٦,۰

وادي التقنية

إعلان ليبرافيس ٦,۰

أعلنت مؤسسة المستند عن إصدار ليبرافيس 6.0 ، في ذكرى السادسة من إطلاق المشروع ليبرافيس، و ليبرافيس هو مجموعة تطبيقات مكتبية سهلة و غنية و أمنة ، و تقدم توافقية عالية مع المستندات تطبيق مايكروسوفت افيس، و تشمل حزمة ليبرافيس تطبيق كتابة المستندات و تطبيق الجداول الحسابية و تطبيق العروض الاحترافية و تطبيق قواعد بيانات و تطبيق رسم احترافي.
وتماشيا مع سياسة التدرج في التغييرات بحيث لا تؤثر على ثبات البرنامج؛ فقد شملت هذه الإصدارة طائفة وسعة من التغييرات الهادفة لتحسين تجربة الاستخدام و توفير التسهيلات العملية و توفير خصائص غير متوفرة من قبل، و هذه أهم الأشياء التي تغيرت:
أهم المميزات العامة في ليبر أفيس ٥.٤:
١- إضافة دعم تغيير الأيقونات من قبل المستخدم عن طريق مدير ملحقات.
٢- إضافة خطوط ناتو من جوجل و خطوط عربية (أميري و ريم كوفي و شهرزاد و KACSTBook و KACSTOffice) لتعطي تجربة استخدام أفضل و تساعد على جعل المستندات أكثر قابلية للنقل بسبب عدم الاعتماد على خطوط مملوكة وغير قابلة لإعادة التوزيع.
٣-دعم معيار تصنيف المستندات TSCP.
٤- دعم مفاتيح التشفير OpenPGP لتوقيع ملفات ليبر أوفيس على جميع المنصات .
٥ - إضافة إمكانية حفظ الصور حال تغييرها في نفس الموضع.
٦ - دعم التصدير إلى صيغة EPUB3 الخاصة بالكتب الإلكترونية.
٧ - تحسين دعم معيار OOXML الخاص بمايكروسوفت حيث حسن دعم القصاصات الفنية الذكية و استيراد متحكمات ActiveX و تحسين عرض حالة التوقيع.


أهم مميزات رايتر:
١- دعم تدوير الصور بشكل أفضل.
٢- إضافة إستراد قوائم الأسماء من ملف رايتر و من ملف XLSX لميزة دمج المراسلات.
٣- تحسين مظهر الجداول الافتراضي.

أهم مميزات كالك:
١- دعم تصدير مجموعة صور أو أشكال محددة كصورة منفردة.
٢- إضافة ثلاث دوال لدعم معيار ODF1.2 وهي SEARCHB و  FINDB و REPLACEB.

أهم مميزات إمبرس:
١- إضافة 10 قوالب بتصاميم حديثة.

لتنزيل هذه الإصدارة من هنا.

زايد الخميس, 2018/02/01 - 1:19م
disqus

February 1st 2018, 4:38 am

دعوة لحضور اللقاء السنوي لجمعية البرمجيات الحرة وغنو/لينكس 0,1 بالجزائر

وادي التقنية

دعوة لحضور اللقاء السنوي لجمعية البرمجيات الحرة وغنو/لينكس 0,1 بالجزائر

تنضم جمعية البرمجيات الحرة و غنو/لينكس بالجزائر الملتقى السنوي الأول النسخة 0,1  يوم السبت 30 ديسمبر بمدينة حاسي بحبح ولاية الجلفة .الجزائر عنوان الملتقى لهذه السنة هو ” سوق العمل و البرمجيات الحرة ...الكفاءة و الشهادة“

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

محاور الملتقى:

  • التعريف بالبرمجيات الحرة وغنو/لينكس

  • مشروع الويكيبيديا و الميديا ويكي لإدارة المحتويات المعرفية

  • التعريف بمشروع توزيعة SEMICODE OS

  • Blockchain and Bitcoin

  • مشروع الدوكر docker

  • برنامج بلندر " التعريف بالبرنامج + ورشة"

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

Fahad الجمعة, 2017/12/29 - 10:21ص
disqus

December 29th 2017, 2:11 am

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

وادي التقنية

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

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

نحتاج إلى الأدوات الآتية:

  1. نظام النطق إسبيك مع دعم العربية
  2. Mbrola نظام النطق وأصواته
  3. قارئ للشاشة
  4. نظام توزيع الكلام
  5. برنامج تشكيل

سنتحتاج إلى تشغيل نظام النطق إسبيك مزود بدعم للغة العربية، ثم نثريه بأصوات عربية من نظام النطق Mbrola للحصول على صوت أفضل. سنحتاج أيضا إلى مشكّل آلي للنصوص العربية باستعمال برنامج مشكال مفتوح المصدر. كما سنحاول تشغيل قارئ الشاشة Orca، ونظام إرسال الكلام speech dispatcher لاعتماده برنامجا وسيطا يسمح للتطبيقات الأخرى من تشغيل نظام النطق.

نهدف إلى الحصول على نطق صوت عربي جيد وصحيح قدر الإمكان مشكّل"

يمكنكم متابعة المقال من هنا.

 

زايد الأربعاء, 2017/12/06 - 11:12ص
disqus

December 6th 2017, 2:41 am

كتاب " تعلم بسهولة برنامج ليبر أوفيس كالك "

وادي التقنية

كتاب " تعلم بسهولة برنامج ليبر أوفيس كالك "

يسعدنا اليوم أن نقدم الكتاب الثالث "تعلم بسهولة برنامج ليبر أوفيس كالك " تأليف الأستاذة فوزية بينت سعيد العامرية و الإستاذ أحمد بن محمد الرحبي، وبدعم من هيئة تقنية المعلومات بسلطنة عمان، لتوفير الكتب العربية حول البرمجيات الحرة بشكل مجاني. الكتاب طبع ووزع في عام ٢٠١٥م. هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي نَسب المُصنَّف - الترخيص بالمثل 4.0 دولي.

يقول المؤلفان في المقدمة:

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

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

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

فهرس الكتاب

هذا الكتاب يشرح برنامج الجداول الالكترونية Calc وقد تم تقسيمه إلى مقدمة وعدة فصول.

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

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

وأخيرا سنتطرق إلى شرح قائمة البيانات وكيفية عمل التصفية المتقدمة والمجاميع الفرعية والصلاحية والدمج والتجميع والتخطيط وأخيرا سنتطرق إلى الأمر Pivot Table .”

لتنزيل الكتاب من هنا.

Fahad الاثنين, 2017/11/27 - 7:12ص
disqus

November 26th 2017, 10:47 pm

كتاب " تعلم برنامج Inkscape خطوة ... خطوة "

وادي التقنية

كتاب " تعلم برنامج Inkscape خطوة ... خطوة "

يسعدنا اليوم أن نقدم الكتاب الثاني "تعلم Inkscape خطوة .. خطوة " تأليف الأستاذة حنان بنت حمدان العبرية، وبدعم من هيئة تقنية المعلومات بسلطنة عمان، لتوفير الكتب العربية حول البرمجيات الحرة بشكل مجاني. الكتاب طبع ووزع في عام ٢٠١٥م.

تقول المؤلفة في المقدمة:

" تُعد البرمجيات مفتوحة المصدر (الحرة) من أكثر البرمجيات التي يهتم بها العالم في الوقت الراهن لما لها من إمكانيات  تسمح لمستخدميها حرية تطوريها والتعديل عليها
دون قيود، كما إن معظمها يمكن تداولها واستخدامها  لأي غرض دون مقابل وبصورة مجانية، بالإضافة إلى ذلك فهي تتميز بسهولة الحصول عليها من خلال توفرها في مواقع
على شبكة الإنترنت تتضمن كل ما يتعلق بها من توضيح لها وكيفية الاستفادة منها.
توجد العديد من البرمجيات الحرة والتي تُستخدم في مجالات مختلفة من بينها الرسم والتصميم المتجهي ويعتبر برنامج Inkscape من أشهرها، إذ يُستخدم في تحرير الرسوم المتجهة وإنتاجها بصورة احترافية كما له إمكانيات مميزه تجعله منافس قوي لغيره من البرامج التجارية والمستخدمة في نفس المجال.
وقد جاء هذا الكتاب الذي بين يديك مبينًا كيفية الاستفادة من برنامج Inkscape الرائع واستخدامه في إنتاج رسوم دقيقة وبجودة عالية، إذ يحتوي الكتاب على جزأين يعرض أولهما شرح مُفصّل لواجهته وكيفية التعامل معها أما الجزء الثاني فيتضمن مشاريع تُساعدك في التمرين على استخدام أدوات البرنامج وأوامره المختلفة وفهمها والاستفادة منها في إنتاج تصاميم أخرى."

فهرس الكتاب:

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

لتنزيل الكتاب من هنا.

Fahad الأحد, 2017/11/19 - 11:23ص
disqus

November 19th 2017, 2:56 am

كتاب " خطوة بخطوة لنحترف GIMP "

وادي التقنية

كتاب " خطوة بخطوة لنحترف GIMP "

اليوم نوفر كتاب " خطوة بخطوة لنحترف GIMP “ ليكون متوفرا لتنزيل بشكل مجاني للجميع، ليستفيد من كل أفراد الوطن العربي.

جاء كتاب "خطوة بخطوة لنحترف GIMP “ بدعم من هيئة تقنية المعلومات بسلطنة عمان، لتوفير الكتب العربية حول البرمجيات الحرة بشكل مجاني. الكتاب طبع ووزع في عام ٢٠١٥م.

الكتاب من تأليف الأستاذة منى باعمر و الأستاذة موزة الوهيبية، هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي نَسب المُصنَّف - الترخيص بالمثل 4.0 دولي.

جاء في المقدمة:

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

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

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

ولذلك عزمنا النية على أن نسهم بجهدنا لسد أي فجوة في المادة التعليمية لتلك البرمجيات الحرة، ورأينا أن هذا البرنامج الحيوي والمهم للغاية دروسُه قليلةٌ جدًا وفكرنا في أن نبدأ في تقديم دورة له وهي « خطوة بخطوة لنحترف الجمب» .

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

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

 

فهرس الكتاب:

المقدمة

الجزء الأول: ((دليل استخدام برنامج الجمب)

الفصل الأول: مقدمة حول البرمجيات الحرة

الفصل الثاني: مقدمة حول برنامج الجمب

تعريف برنامج الجمب

تأسيس برنامج الجمب

مميزات النسخة الجديدة 2.8 من الجم

الحصول على برنامج الجمب

فتح برنامج الجمب

الفصل الثالث: واجهة برنامج الجمب

تفصيل واجهة الجمب

أولًا: شرح سريع لصندوق الأدوات

شريط الخيارات المتغيرة

ثانيًا: الألواح و الإطارات

الفصل الرابع: العمل مع برنامج الجمب

العمل مع البرنامج

إنشاء ملف جديد

طريقة فتح الصور في البرنامج

شرح عناصر نافذة الصورة

احفظ عملك

طرق الحفظ

نوع ملف الحفظ

الفصل الخامس: مقدمة حول قوائم برنامج الجمب

القوائم

قائمة File

قائمة Edit

قائمة Select

قائمة View

قائمة Image

قائمة Layer

قائمة Color

قائمة Tools

قائمة Filter

قائمة Windows

قائمة Help

الفصل السادس: الرسم في الجمب

إنشاء صورة جديدة

استخدام الطبقات للرسم

خصائص النافذة الحوارية للطبقات

رسم الخطوط والمنحنيات

الرسم بخطوط حادة: أداة القلم

خيارات عرض أيقونات فرش جمب

الفرش

أنواع الفرش

خصائص الفرش

مقارنة بين الفرش البارا مترية والفرش الصورة

خيارات أدوات الرسم

أنماط أدوات الرسم

رسم خطوط ضبابية أو ناعمة: أداة فرشاة التلوين

الاختلافات بين أداة القلم و أداة فرشاة التلوين

مميزات أداة فرشاة التلوين

أداة فرشاة الهواء

خصائص أداة فرشاة الهواء

أداة الحبر

خصائص أداة الحبر

أداة الممحاة

خصائص أداة الممحاة

ظروف مختلفة لاستخدام خاصية مضاد المسح

رسم الدوائر والمستطيلات وأشكال أخرى

رسم حواف التحديد.

خصائص النافذة الحوارية رسم حواف التحديد

أداة التحديد الحر

ملء المناطق

أداة الملء بالدلو

خصائص أداة الملء بالدلو

الأنماط

أداة المزج

اختيار التدرجات

خصائص أخرى للتدرجات

عندما لا تستطيع الرسم في الجمب

الفصل السابع: الطبقات في الجمب

استخدام الطبقات لإضافة النص

إضافة النص

استخدام أداة النقل

تغيير الألوان

الظل الساقط

تطبيق المؤثرات

استخدام الطبقات للنسخ

عناصر صندوق الحوار

الجزء الثاني: ((تدريبات عملية في برنامج الجمب))

تطبيقات على النص باستخدام قائمة Filter و الأداة blend

الدرس الأول: استعمال خصائص الكتابة

الطريقة الأولى: استخدام قائمة Filter.

بعض التطبيقات للطريقة الأولى

الطريقة الثانية: استخدام الأداة blend.

بعض التطبيقات للطريقة الثانية

الدرس الثاني: انعكاس النص.

بعض التطبيقات لتغيير زاوية الكتابة

الدرس الثالث: صنع بلورة في الجمب

بعض التطبيقات لصنع البلورة

الدرس الرابع: عمل تأثيرات للصور باستخدام Quick Mask

تطبيقات لتأثيرات الصور باستخدام Quick Mask

الدرس الخامس: انعكاس الصورة على الماء

بعض التطبيقات لانعكاس الصورة على الماء

الدرس السادس: البخار المتصاعد من كوب قهوة ساخن

بعض التطبيقات على البخار المتصاعد

الدرس السابع: خروج الأشياء من إطار الصورة

بعض التطبيقات لخروج الأشياء من إطار الصورة

لتنزيل الكتاب من هنا.

Fahad الثلاثاء, 2017/11/14 - 10:45ص
disqus

November 14th 2017, 2:16 am

صدور أوبنتو 17.10

وادي التقنية

صدور أوبنتو 17.10


أطلقت شركة كانونيكل الإصدارة ١٧.١٠ من توزيعة أوبنتو تحت مسمى (Artful Aardvark)، هذه التوزيعة جاءت بتغييرات تعتبر جذرية من ناحية توجهات شركة كانونيكل بخصوص سطح المكتب.

أول هذه التغييرات هو اعتماد سطح مكتب جنوم بشكل رئيسي لسطح المكتب واستبعاد سطح مكتب يونتي،  وثاني هذه التغييرات هي اعتماد Wayland بدلا عن Mir ، كذلك اعتماد GDM بدلا عن LightDM كمدير للعرض.

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

من ناحية البرامج فهذه الإصدارة تأتي بحزمة ليبرأوفيس ٥.٤ و نواة لينكس ٤.١٣

يمكنكم تنزيل هذه الإصدارة عبر هذا الرابط

Fahad الأحد, 2017/10/22 - 12:55م
disqus

October 22nd 2017, 5:13 am

كتاب تعلم البرمجة بلغة الـC

وادي التقنية

كتاب تعلم البرمجة بلغة الـC


بعد 4 سنوات من العمل عليه،  أطلق حمزة عباد و عدن بلواضح  كتاب "تعلم البرمجة بلغة الـC" الّذي هو ترجمة لدرس Apprenez à programmer en C المكتوب باللغة الفرنسية، الخاص بموقع OpenClassrooms الشهير، لمؤلّفه Mathieu Nebra.

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


يتكوّن الكتاب من 31 فصلا موزّعة على 4 أجزاء. فصول الجزء الأوّل تحوّل القارئ من شخص لا علاقة له بالبرمجة إلى مبرمج مبتدئ قادر على استخدام أدوات البرمجة و مستوعب للمفاهيم الأساسيّة كأنواع البيانات، المتغيّرات، الشروط، الحلقات التكراريّة و الدوال. في الجزء الثاني، يتعلّم القارئ مفاهيم أكثر تقدّما في البرمجة، كالمؤشّرات، الجداول، السلاسل المحرفيّة و الهياكل بالإضافة إلى الحجز الحيّ للذاكرة و التعامل مع الملفّات. بعد ذلك، يتناول الجزء الثالث مبدأ استخدام المكتبات البرمجيّة مركّزا على استغلال مكتبة SDL لإنشاء النوافذ و الرسم فيها و مكتبة FMOD لتشغيل الصوت و استعمالهما لإنشاء برامج و ألعاب حقيقيّة. في الأخير، فصول الجزء الرابع تتناول مواضيع مكمّلة في لغة الـC تتمثّل في تقنيّات شائعة الاستخدام لتخزين البيانات، كالقوائم المتسلسلة، جداول التجزئة، المكدّسات و الطوابير.

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

 

فصول الكتاب

  • تقديم
  • مقدمة
  • أساسيّات البرمحة بلغة الـC
    • قلت برمجة ؟
    • الحصول على الأدوات اللازمة
    • برنامجك الأوّل
    • عالم المتغيّرات
    • حسابات سهلة
    • الشروط
    • الحلقات التكراريّة
    • عمل تطبيقي: "أكثر أو أقل"، لعبتك الأولى
    • الدوال
  • تقنيات متقدّمة في لغة الـC
    • البرمجة المجزأة
    • المؤشّرات
    • الجداول
    • السلاسل المحرفيّة
    • المعالج القبلي
    • أنشئ أنواع متغيّرات خاصة بك
    • قراءة و كتابة الملفّات
    • الحجز الحيّ للذاكرة
    • عمل تطبيقي: لعبة الـPendu
    • إدخال نص بشكل أكثر أمانا
  • إنشاء ألعاب 2D في SDL
    • تثبيت SDL
    • إنشاء نافذة و مساحات
    • إظهار صور
    • معالجة الأحداث
    • عمل تطبيقي: Mario Sokoban
    • تحكّم في الوقت
    • كتابة نصوص باستخدام SDL_ttf
    • تشغيل الصوت بـFMOD
    • عمل تطبيقي: الإظهار الطيفيّ للصوت
  • هياكل البيانات
    • القوائم المتسلسلة
    • المكدّسات و الطوابير
    • جداول التجزئة
  • الخاتمة

محتوى الكتاب حر و منشور تحت ترخيص المشاع الإبداعي، نسب المصنف - غير تجاري - الترخيص بالمثل، النسخة الثانية (CC-BY-NC-SA 2.0). الكتاب منشئ بلغة LaTeX و مترجم بمترجم XeLaTeX. يمكنكم إيجاد الشفرة المصدرية الكاملة لمحتوى الكتاب مع مزيد من المعلومات في المستودع الخاص بهذا الكتاب على GitHub.
لتنزيل الكتاب، يرجى الذهاب إلى صفحة الإصدارات الخاصة بالمستودع.

نوفر رابط بديل من هنا.

Fahad السبت, 2017/10/14 - 1:01م
disqus

October 14th 2017, 5:38 am

صدور كدي بلازما ٥.١١

وادي التقنية

صدور كدي بلازما ٥.١١

أعلن مجتمع سطح المكتب كدي عن إطلاق النسخة بلازما ٥.١١ ، التي أتت بالعديد من المميزات الجديدة من مثل إعادة تصميم تطبيق الإعدادات و تحسين نظام التنبيهات، و إضافة تطبيق "Vault" وهو  تطبيق يسمح للمستخدمين بأن يشفروا مجموعة من الملجدات أو الملفات بطريقة سهلة وآمنة.


أهم المميزات في بلازما ٥.١١


إعادة تصميم تطبيق الإعدادات


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

تحسين نظام التنبيهات


بعد الطلب العالي على إضافة ميزة حفظ التنبيهات القديمة ، فقد سعى الفريق ضمن جهوده لتحديث نظام التنبيهات في بلازما إلى إضافة هذه الميزة ، بحيث يمكنك الآن رؤية التنبيهات المنتهية في خانة التاريخ.

تحسين مدير المهام


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

خزانة بلازما


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

 

Fahad الأربعاء, 2017/10/11 - 10:27ص
disqus

October 11th 2017, 2:45 am

بوستجريسكل كتاب الوصفات

وادي التقنية

بوستجريسكل كتاب الوصفات

أكثر من 90 وصفة عملية لإدارة فعالة، وتصميم الحلول باستخدام PostgreSQL


يسر فريق وادي التقنية إصدار " كتاب بوستجريسكل كتاب الوصفات ، أكثر من 90 وصفة عملية لإدارة فعالة و تصميم الحلول باستخدام PostgreSQL " ، تأليف تشيتيج تشوهان ، و هذا أول مرجع عربي حول قاعدة بيانات «PostgreSQL» هي قاعدة بيانات تتوفر على مجموعة واسعة من المنصات وهي واحدة من قواعد البيانات المفتوحة المصدر الأكثر شعبية المنتشرة في بيئات الإنتاج في جميع أنحاء العالم.

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

هذا الكتاب يقدم لك نظرة ثاقبة ومعمقة في مختلف هذه الميزات وتطبيقاتها على «بوستجريسكل». فهو يهدف إلى أن يكون دليلاً عمليا لمديري قواعد البيانات ومطوري البرامج على حد سواء، مع تقديم الحلول المتعلقة بترحيل البيانات، تقسيم الجدولة، إمكانية توافر عالية وقابلية النسخ، أداء قاعدة البيانات، واستخدام لغات بيرل " Perl" وبايثون " Python" للتكامل مع «بوستجريسكل».


ماهي النقاط التي يغطيها هذا الكتاب؟


الفصل 1، إدارة قواعد البيانات وخادم «بوستجريسكل»، يساعدك هذا الفصل على إنشاء قواعد البيانات واستيعاب مفهوم المخططات والأدوار والمستخدمين والمجموعات، والجداول في خادم «بوستجريسكل».


الفصل 2، السيطرة على الأمن، يتيح لك رؤية وفهم الضوابط الأمنية ومستويات الأمن الموجودة في «بوستجريسكل», فبعد قراءتك لهذا الفصل، يجب أن تكون قادرا على فهم وضبط عناصر التحكم الأمنية الموجودة في خادم ««بوستجريسكل» ويجب أن تكون قادرا أيضا على استخدام اتصالات " طبقة المقابس الآمنة " "SSL" في «بوستجريسكل» من أجل تشفير البيانات.


الفصل 3، النسخ الاحتياطي والاستعادة ، ويظهر هذا الفصل مختلف سيناريوهات النسخ الاحتياطي والاسترداد التي يمكن تنفيذها في «بوستجريسكل». بعد قراءة هذا الفصل، يجب أن تكون على دراية بطرق النسخ الاحتياطي المنطقي والمادي الملموس واستعادة قواعد البيانات أو كائنات قاعدة البيانات في السيناريو القائم على الاسترداد.

الفصل 4، يقدم مهام الصيانة الروتينية، معلومات عن الصيانة الدورية للمهام التي تنفذ لتحقيق الأداء الأمثل.

الفصل 5، مراقبة النظام باستخدام أدوات "يونكس" "Unix"، ويغطي مختلف أوامر "يونكس" "Unix"/ "لينكس" "Linux" التي تفيد في استكشاف أخطاء وحدة المعالجة المركزية "CPU" والذاكرة و مشاكل الإدخال/الإخراج ذات الصلة. بعد قراءة هذا الفصل، يجب أن تكون قادرا على استكشاف الأخطاء وإصلاحها فيما يخص وحدة المعالجة المركزية "CPU"، والذاكرة، ومشاكل تنازع القرص بنجاح باستخدام مختلف أوامر "يونكس" "Unix".

الفصل 6، مراقبة نشاط قاعدة البيانات والتحقيق في قضايا الأداء، يعلمك الجوانب المختلفة المتعلقة بتحسين أداء «بوستجريسكل». فبعد قراءة هذا الفصل، يجب أن تكون قادرا على حل تناقضات القفل، والعثور على عبارات تشغيل SQL بطيئة ، وجمع الإحصاءات، ودراسة استخدام الفهرس، والتحقيق وحل مشاكل قاعدة بيانات «بوستجريسكل» المختلفة في بيئة الوقت الحقيقي.

الفصل 7، التوافر العالي وقابلية النسخ، هذا القسم يشرح مفهوم التوافر العالي وقابلية النسخ في «بوستجريسكل». وبعد قراءة هذا الفصل، سوف تكون قادرا على تنفيذ ميزة التوافر العالي وخيارات النسخ باستخدام تقنيات مختلفة بما في ذلك تدفق النسخ، تقنية "سلوني" "Slony" للنسخ المتماثل، النسخ باستخدام "بوكاردو" "Bucardo"، والنسخ باستخدام "لونغديست" "Longdiste". وفي نهاية المطاف، سوف تكون قادرا على تنفيذ جميع خدمات باقة، ، «بوستجريسكل» النشطة / غير النشطة المتاحة بشكل واسع باستخدام أدوات مفتوحة المصدر مثل "دربد" "DRBD"، "بايسمايكر" "Pacemaker"، و "كوروسينك" " Corosync".

الفصل 8 ، تجميع الاتصالات، ويتناول أساليب تجميع الاتصالات مثل "بي جي بول" "pgpool" و "بي جي باونس" "Pgbounce". التي تساعد على تقليل الفائض في قاعدة البيانات عندما يكون هناك عدد كبير من الاتصالات المتزامنة. وبعد قراءة هذا الفصل، يجب أن تكون قادرا على إعداد أساليب "بي جي بول" "pgpool" و"بي جي باونس" "Pgbounce".

الفصل 9، تقسيم الجدول ، ويشرح أساليب التقسيم المختلفة وتنفيذ الفصل المنطقي لبيانات الجدول إلى أقسام. كما يوفر هذا القسم أيضا حصولك على دراية بتطبيق التقسيم الأفقي باستخدام "بي أل/ بروكسي" "PL/Proxy".

الفصل 10، النفاذ إلى «بوستجريسكل» من خلال "بيرل" "Perl"، هذا الفصل يجعلك على دراية بإنشاء قاعدة البيانات والاتصالات، والنفاذ إلى البيانات، وأداء عمليات DML على قاعدة بيانات «بوستجريسكل» باستخدام برمجة "بيرل" "Perl".

الفصل 11، النفاذ إلى «بوستجريسكل» من خلال "بايثون" "Python"، ويظهر لك هذا الفصل كيفية إنشاء الاتصالات الخاصة بقاعدة بيانات والنفاذ إلى البيانات، وتنفيذ عمليات DML على قاعدة بيانات «بوستجريسكل» باستخدام برمجة "بايثون" "Python"،.

الفصل 12، نقل البيانات من قواعد البيانات الأخرى وتحديث باقة «بوستجريسكل»، ويغطي هذا الفصل التلقائيات المختلفة المتاحة لبدء التحديثات الرئيسية والثانوية لنسخة «بوستجريسكل». كما يزودك هذا الفصل أيضا بطريقة استخدام أداة "أوراكل غولدنغايت" "Oracle GoldenGate" لنسخ البيانات من قواعد البيانات الأخرى إلى «بوستجريسكل».

الترجمة العربية  مرخّصة برخصة المشاع الإبداعي نَسب المُصنَّف 4.0 دولي.

لتنزيل الكتاب: اضغط هنا.

Fahad الاثنين, 2017/10/09 - 11:46ص
disqus

October 9th 2017, 4:06 am

صدور PostgreSQL 10

وادي التقنية

صدور PostgreSQL 10

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

أول غير هو طريقة عنونة الإصدار حيث أصبح شبيه بنظام متصفح موزيلا فيرفكس؛ حيث يكون الرقم الأول هو إصدارة رئيسية و الرقم الفرعي إصدارة فرعية لإصلاح العلل في الإصدارة الرئيسة على عكس النظام السابق.

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


الميزة الثانية هي جعل ميزة تقسيم الجدول مضمنة في تعريف الجدول حين إنشاءه، و تقسيم الجدول أجزاء أصغر تسهل عملية إدارة البيانات و صيانتها ، كانت عملية تقسيم الجداول تتم بشكل يدوي في السابق ولكن الآن أصبح بالإمكان إتمامها بشكل آلي سهل بدون الحاجة إنشاء مطلقات trigger

الميزة الثالثة هو تحسين الاستعلامات المتوازية حيث استمرت الجهود في استغلال تعدد الأنوية لتحسين الأداء ، وفي هذه الإصدارة دعم أنواع مختلفة من المسح مثل Bitmap Heap Scan و Index Scan و Index-Only Scan ، و حسن كذلك عملية إعادة تجميع المخرجات.

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

و الميزة الخامسة هو دعم نظام التصاريح SCRAM-SHA-256 لتحسين أمان كلمات السر وطرق إرسالها و استقبالها.


وهناك المزيد يمكن الإطلاع عليه في صفحة ما هو الجديد في PostgreSQL10.
 

زايد السبت, 2017/10/07 - 12:15م
disqus

October 7th 2017, 4:47 am

دروس في تعلم برنامج جمب من الصفر إلى الاحتراف

وادي التقنية

دروس في تعلم برنامج جمب من الصفر إلى الاحتراف

بحمد الله قمنا بترجمة كامل الدروس التعليمية الرسمية في موقع برنامج الرسم الاحترافي الحرة جمب ، وسنقوم بنشرها تحت تصنيف gimp على دفعات. في هذه الصفحة نعرض كل الدروس لتكون مرجع سهل لمتابعة الشروح.

المستوى: مبتدئ

1- جمب على السريع

2- SIMPLE FLOATING LOGO الشعار العائم البسيط

3- الرسم بحدود محددة Borders on selection

4- استخدم المسارات البسيطة (منحنيات بيزيه) باحترافية

5- القناع السريع

6- إزالة العين الحمراء Red eye removal

7- الخطوط المستقيمة Straight Line

8- أقنعة الطبقات (الشفافة) Layer Masks

المستوى: متوسط

9- رسم الأشكال باستخدام أداة المسار The Path Tool

10- درس في إزالة التسنن من خاصية العتبة Anti-Aliased Threshold

11- درس تعليمي عن الحبيبات الفلمية

12- تغيير لون الخلفية 1

13 - تغيير لون الخلفية 2

14 - تلوين سكتش (رسم تخطيطي) بالأبيض والأسود

15 - تصميم شعار عائم ثلاثي الأبعاد 3D

16- إنشاء تراكيب قابلة للتكرار Tilable Textures

17- تحريك رسومي بسيط (أنيميشن)

18- الدرس التعليمي للفراشي المخصصة

 

المستوى: متقدم

 

19 - أنابيب الصور Image Pipes

20- أنبوب الصور Image pipes 2

21- النص الذهبي Golden text

22- تأثير فلتر التمريرة العالية (لعمل مخطط سكتش )

23- تحويل صور إلى رسم photo to sketch

24- رسم فرشاة باستخدام جمب

25- إنشاء أيقونات icons باستخدام جمب

26- استخدام حزمة جمب للرسوم المتحركة GAP

27 - درس الرسوم المتحركة المتقدمة

28- التلوين الانتقائي في جمب

29- تخفيف تشويش CCD في الصورة باستخدام جمب

30- إزالة التشويش بواسطة تمويه البقع الانتقائي

41- كتابة ملحقات لجمب 1: العمل مع الصور

40- خريطة الصورة Image Map

39- تقطيع الصور للوب باستخدام جمب gimp

38- أقنعة اللمعان Luminosity Masks

37- تقنية الشحذ الذكي “Smart” Sharpening

36- مزج التعريض Blending Exposures

35-إنقاذ جودة صورة ذات بقع إضاءة مشعة

34- التمويه الضبابي بالتراكب

33- تغيير تدرج اللون إلى البني الداكن Sepia Toning

32- التحويل إلى الأبيض والأسود الرقمي بشكل احترافي

31- إنشاء قناع تباين

Fahad الثلاثاء, 2017/10/03 - 10:13ص
disqus

October 3rd 2017, 2:26 am

مدخل إلى الحوسبة المتوازية

وادي التقنية

مدخل إلى الحوسبة المتوازية

المؤلف: بليز بارني (Blaise Barney)، مختبر لورانس ليفرمور الوطني، ترجمة زكرياء المهداوي.

ملخص

هذا هو البرنامج التعليمي الأول في ورشة " بدء العمل على حوسبة ليفرمور". وليس الغرض منه سوى تقديم نظرة عامة وسريعة جدا عن الموضوع الواسع والشامل للحوسبة المتوازية( Parallel Computing)، وكمقدمة للدروس اللاحقة. وعلى هذا النحو، فإنه سيغطي أساسيات الحوسبة المتوازية، وهو موجه فقط لمن يود التعرف على هذا الموضوع والذي يخطط لحضور درس واحد أو أكثر من الدروس الأخرى في هذه الورشة. إنه غير موجه لتغطية البرمجة المتوازية بشكل متعمق، لأن هذا يتطلب وقتا أطول بكثير. يبدأ البرنامج التعليمي بمناقشة حول الحوسبة المتوازية - ما هي استخداماتها وكيف، تليها مناقشة حول المفاهيم والمصطلحات المرتبطة بالحوسبة المتوازية. ثم استكشاف مواضيع بنيات الذاكرة المتوازية ونماذج البرمجة. وتتبع هذه المواضيع سلسلة من المناقشات العملية حول عدد من القضايا المعقدة والمتعلقة بتصميم وتنفيذ برامج متوازية. ويختتم البرنامج التعليمي بعدة أمثلة عن كيفية موازاة البرامج التسلسلية البسيطة.

جدول المحتويات

    1. ملخص
    2. نظرة عامة
        1. ما هي الحوسبة المتوازية؟
        2. لماذا استخدام الحوسبة المتوازية؟
        3. من يستعمل الحوسبة المتوازية؟
    3. المفاهيم والمصطلحات
        1. بنية الحاسب لـ فون نيومان
        2. تصنيف فلين الكلاسيكي
        3. بعض المصطلحات المتوازية العامة
        4. حدود وتكاليف البرمجة المتوازية
    4. بنيات ذاكرة الحاسوب المتوازية
        1. الذاكرة المشتركة
        2. الذاكرة الموزعة
        3. الذاكرة المشتركة-الموزعة الهجينة
    5. نماذج البرمجة المتوازية
        1. نظرة عامة
        2. نموذج الذاكرة المشتركة
        3. نموذج الخيوط
        4. الذاكرة الموزعة / نموذج تمرير الرسالة
        5. نموذج البيانات المتوازي
        6. النموذج الهجين
        7. SPMD وMBF
    6. تصميم البرامج المتوازية
        1. الموازاة اليدوية مقابل الموازاة التلقائية
        2. فهم المشكلة والبرنامج
        3. التجزئة
        4. الاتصالات
        5. المزامنة
        6. تبعيات البيانات
        7. موازنة التحميل
        8. الحبوبية
        9. I / O
        10. التصحيح
        11. ضبط وتحليل الأداء
    7. أمثلة موازية
        1. معالجة مصفوفة
        2. حساب  PI
        3. معادلة الحرارة البسيطة
        4. معادلة الموجة 1-D
    8. المراجع والمزيد من المعلومات

نظرة عامة

ما هي الحوسبة المتوازية (Parallel Computing)؟

    • الحوسبة التسلسلية (Serial Computing)


    • عادة، تكتب البرمجيات من أجل حوسبة تسلسلية حيث
        ◦ تقسم المشكلة إلى سلسلة منفصلة من التعليمات
        ◦ تنفذ التعليمات بالتتابع واحدة تلو الأخرى
        ◦ تنفذ التعليمات على معالج واحد
        ◦ يمكن تنفيذ تعليمة واحدة فقط خلال أي لحظة من الزمن



مثلا :

    • الحوسبة المتوازية


    • يُقصد بالحوسبة المتوازية، في أبسط معانيها، الاستخدام المتزامن لموارد حساب متعددة لحل مشكلة حسابية
        ◦ تقسم المشكلة إلى أجزاء منفصلة يمكن حلها في وقت واحد
        ◦ تقسم أيضا كل جزء إلى سلسلة من التعليمات
        ◦ تنفذ تعليمات كل جزء في وقت واحد على معالجات مختلفة
        ◦ تستخدم آلية شاملة للرقابة / التنسيق

مثلا :

    • يجب أن تكون المشكلة الحسابية قادرة على:
        ◦ قابلة للتقسيم إلى قطع عمل منفصلة والتي يمكن حلها أو تنفيذها في وقت واحد؛
        ◦ أن يتم تنفيذ تعليمات البرنامج المتعددة في أي لحظة من الزمن؛
        ◦ أن تحل في أقل وقت مع موارد حساب متعددة بالمقارنة مع مورد حساب واحد.
    • موارد الحساب عادة ما تكون:
        ◦ جهاز حاسوب واحد مع معالجات/أنوية متعددة
        ◦ عدد هائل من مثل هذه الحواسيب متصلة بشبكة

    • الحواسيب المتوازية (Parallel Computers)


    • تعتبر في يومنا هذا جميع أجهزة الحاسوب المستقلة تقريبا متوازية من منظور الأجهزة
        ◦ وحدات متعددة الوظائف (المخبأة أو ذاكرة التخزين المؤقت L1 – L1 cache، المخبأة أو ذاكرة التخزين المؤقت L2 – L2 cache ، فرع - branch، الجلب المسبق - prefetch، فك شفرة - decode، الفاصلة العائمة - floating-point، معالجة الرسومات (GPU)، عدد صحيح - integer، وما إلى ذلك)
        ◦ وحدات/أنوية التنفيذ المتعددة
        ◦ خيوط (threads) الأجهزة المتعددة

IBM BG/Q Compute Chip with 18 cores (PU) and 16 L2 Cache units (L2)
    • تربط الشبكات بين العديد من الحواسب المستقلة (عقود - nodes) لإنشاء عناقيد حواسيب متوازية كبيرة


    • على سبيل المثال، يظهر الرسم التخطيطي أسفله مجموعة حواسيب متوازية LLNL نموذجية
        ◦ كل عقدة حساب هو حاسوب متواز متعدد المعالجات في حد ذاته
        ◦ تربط عقود حساب متعددة فيما بينها بواسطة شبكة ذات عرض حزمة لانهائي (Infiniband)
        ◦ تستخدم العقود ذات الغرض الخاص، وكذلك متعددة المعالجات لأغراض أخرى

    • أغلبية أجهزة الحواسيب المتوازية الكبيرة العالمية (الحواسيب الفائقة - supercomputers) هي مجموعات من الأجهزة التي تنتجها حفنة من (معظم) البائعين المعروفين.

المصدر: Top500.org

لماذا استخدام الحوسبة المتوازية؟


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


    • الأسباب الرئيسية:
    • توفير الوقت و/أو المال:
        ◦ نظريا، يؤدي إلقاء المزيد من الموارد في مهمة ما إلى تقصير الوقت اللازم لإنجازها، مع توفير محتمل للتكاليف.
        ◦ يمكن تركيب الحواسيب المتوازية من مكونات السلع الأساسية الرخيصة.

    • حل مشاكل معقدة إضافية/كبيرة:
        ◦ تعد الكثير من المشاكل جد كبيرة و/أو معقدة حيث أنه من غير العملي أو من المستحيل حلها على جهاز كمبيوتر واحد، وخاصة إذا ما نظرنا إلى ذاكرة الكمبيوتر المحدودة.
        ◦ مثال: "مشاكل التحدي الكبرى" (en.wikipedia.org/wiki/Grand_Challenge) التي تتطلب بيتافلوبس (PetaFLOPS) و بيتابيتس (PetaBytes) من موارد الحوسبة.
        ◦ مثال: تعالج محركات بحث الويب / قواعد بيانات الملايين من المعاملات في كل ثانية.

    • توفير التزامن (CONCURRENCY):
        ◦ يمكن لمورد حساب واحد القيام بأمر واحد فقط في نفس الوقت. بينما يمكن للعديد من موارد الحساب أن تفعل أشياء كثيرة في آن واحد.
        ◦ مثال: توفر الشبكات التعاونية مكانا عالميا حيث يمكن للناس من جميع أنحاء العالم أن يجتمعوا ويضطلعوا بعمل "فعليا".

    • الاستفادة من الموارد غير المحلية:
        ◦ استخدام موارد حساب على شبكة منطقة واسعة، أو حتى الإنترنت عندما تكون موارد الحوسبة المحلية نادرة أو غير كافية.
        ◦ مثال: تمتلك SETI@home (setiathome.berkeley.edu) أكثر من 1.6 مليون مستخدم في كل بلد تقريبا في العالم. (يونيو 2017).
        ◦ مثال: تمتلك Folding@home (folding.stanford.edu) أكثر من 1.8 مليون مساهم عالميا (يونيو 2017)

    • استخدام أفضل للأجهزة المتوازية الكامنة (UNDERLYING PARALLEL HARDWARE):
        ◦ تعتبر أجهزة الحاسوب الحديثة، وحتى أجهزة الحاسوب المحمول، متوازية في بنيتها مع معالجات/أنوية متعددة.
        ◦ يوجه البرنامج المتوازي خصيصا للأجهزة المتوازية ذات الأنوية المتعددة، الخيوط، الخ.
        ◦ في معظم الحالات، تعمل البرامج التسلسلية المشتغلة على أجهزة الحاسوب الحديثة على "تبديد" قدرة الحوسبة المحتملة.

Intel Xeon processor with 6 cores and 6 L3 cache units
    • المستقبل
    • خلال العشرين سنة الماضية، تظهر بوضوح الاتجاهات التي تشير إليها الشبكات الأسرع من أي وقت مضى، والأنظمة الموزعة، وبنيات الحواسيب متعددة المعالجات (حتى على مستوى سطح المكتب) أن التوازي هو مستقبل الحوسبة.
    • في نفس هذه الفترة الزمنية، كانت هناك زيادة تفوق 500,000 مرة في أداء الحاسوب الفائق، مع عدم وجود نهاية في الأفق حاليا.
    • السباق هو بالفعل على الحوسبة بسرعة إكساسكيل (Exascale)!
        ◦ إكسافلوب (Exaflop) = 1018 حساب في الثانية

المصدر: Top500.org

من يستعمل الحوسبة المتوازية؟


    • العلوم والهندسة
    • تاريخيا، اعتبرت الحوسبة المتوازية كونها "مكرّسة للحوسبة الفائقة"، وقد استخدمت لنمذجة مشاكل صعبة في العديد من مجالات العلوم والهندسة:
    • الهندسة الميكانيكية - من الأطراف الاصطناعية إلى المركبات الفضائية
    • الهندسة الكهربائية، تصميم الدوائر، الإلكترونيات الدقيقة
    • علم الحاسوب، الرياضيات
    • الدفاع، الأسلحة

    • الغلاف الجوي، الأرض، البيئة
    • الفيزياء - التطبيقية، النووية، الجسيمات، المادة المكثفة، الضغط المرتفع، الانصهار، الضوئيات
    • العلوم البيولوجية، التكنولوجيا الحيوية، علم الوراثة
    • الكيمياء، العلوم الجزيئية
    • الجيولوجيا، علم الزلازل


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


    • التطبيقات العالمية
    • يجري حاليا استخدام الحوسبة المتوازية على نطاق واسع في جميع أنحاء العالم، وذلك في طائفة واسعة من التطبيقات.

 
المصدر: Top500.org

المفاهيم والمصطلحات

تصميم فون نيومان (von Neumann Architecture)


    • سمي باسم عالم الرياضيات الهنغاري العبقري جون فون نيومان أول من ألف المتطلبات العامة لجهاز الحاسوب الإلكتروني في أوراقه عام 1945.
    • ويعرف أيضا باسم "حاسوب البرامج المخزَّنة (stored-program computer)" – يحتفظ بكل من تعليمات البرنامج والبيانات في الذاكرة الإلكترونية. و يختلف عن أجهزة الحاسوب السابقة التي تمت برمجتها من خلال "الأسلاك الصلبة - hard wiring".
    •

جون فون نيومان1940
(المصدر: أرشيف لانل)
    • منذ ذلك الحين، اتبعت جميع الحواسيب تقريبا هذا التصميم الأساسي:


    • تتألف من أربعة مكونات رئيسية هي:
        ◦ الذاكرة
        ◦ وحدة التحكم
        ◦ وحدة المنطق الحسابية
        ◦ الإدخال / الإخراج
    • القراءة / الكتابة، تستخدم ذاكرة الوصول العشوائي لتخزين كل من تعليمات البرنامج والبيانات
    •  تعليمات البرنامج هي بيانات مبرمجة تخبر الحاسوب بالقيام بشيء ما
    • البيانات هي ببساطة معلومات ستستخدم من قبل البرنامج
    • تقوم وحدة التحكم بجلب التعليمات/البيانات من الذاكرة، و تفك شفرة التعليمات ثم تقوم بتنسيق العمليات لإنجاز المهمة المبرمجة تتابعيا.
    • تقوم وحدة الحساب بعمليات حسابية أساسية
    • الإدخال/الإخراج (Input/Output) هو واجهة المشغل البشري
    • المزيد من المعلومات عن إنجازاته الرائعة الأخرى: http://en.wikipedia.org/wiki/John_von_Neuman
    • ماذا في ذلك؟ من يهتم؟
        ◦ حسنا، ما تزال أجهزة الحاسوب المتوازية تتبع هذا التصميم الأساسي، فقط ضاعفت الوحدات. بينما ظلت البنية الأساسية هي نفسها.

التصنيف الكلاسيكي لـ فلين (Flynn)


    • هناك طرق مختلفة لتصنيف أجهزة الحاسوب المتوازية. الأمثلة متاحة هنا.
    • واحدة من التصنيفات المستخدمة على نطاق واسع، منذ عام 1966، تسمى تصنيف فلين.
    • يميز تصنيف فلين بنيات الحاسوب متعددة المعالجات وفقا للكيفية التي يمكن أن تصنف وفقها على طول البعدين المستقلين لتدفق التعليمات (Instruction Stream) ولتدفق البيانات (Data Stream). لكل بعد من هذه الأبعاد حالة واحدة فقط من الحالتين الممكنتين: واحدة (Single) أو متعددة (Multiple).
    • تحدد المصفوفة أدناه التصنيفات الأربع الممكنة وفقا لفلين:

    • تعليمات وحيدة، بيانات وحيدة (SISD):


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

 

UNIVAC1

IBM 360

CRAY1

CDC 7600

PDP1

Dell Laptop

    • تعليمات وحيدة، بيانات متعددة (SIMD):


    • نوع من أجهزة الحاسوب المتوازية
    • تعليمات وحيدة: تنفذ جميع وحدات المعالجة نفس التعليمات في أي دورة معالجة معينة
    • بيانات متعددة: يمكن لكل وحدة معالجة أن تعمل على عنصر بيانات مختلف
    • الأنسب للمشاكل المتخصصة التي تتميز بدرجة عالية من الانتظام، مثل معالجة الرسومات/الصور.
    • متزامن (بانتظام) ومنفذ حتمي
    • صنفان اثنان: مصفوفات المعالج وخطوط الأنابيب المتجهة
    • أمثلة:
        ◦ مصفوفات المعالج: Thinking Machines CM-2, MasPar MP-1 & MP-2, ILLIAC IV
        ◦ خطوط الأنابيب المتجهة: IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10
    • معظم أجهزة الحاسوب الحديثة، وخاصة تلك التي تمتلك وحدات معالج الرسومات (GPUs) تستخدم تعليمات SIMD ووحدات التنفيذ.

 

ILLIAC IV

MasPar

        

Cray X-MP

Cray Y-MP

Thinking Machines CM-2

Cell Processor (GPU)

    • تعليمات متعددة، بيانات وحيدة (MISD):


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

    • تعليمات متعددة، بيانات متعددة (MIMD):


    • نوع من أجهزة الحاسوب المتوازية
    • تعليمات متعددة:  قد يقوم كل معالج بتنفيذ تدفق تعليمات مختلف
    • بيانات متعددة: قد يعمل كل معالج مع تدفق بيانات مختلف
    • يمكن أن يكون التنفيذ متزامنا أو غير متزامن، حتمي أو غير حتمي
    • حاليا، هو النوع الأكثر شيوعا من أجهزة الحاسوب المتوازية – توجد معظم الحواسيب الفائقة ضمن هذه الفئة.
    • أمثلة: معظم الحواسيب الفائقة الحالية، عناقيد (clusters) و"شبكات" أجهزة حاسوب متوازية مشبكة، أجهزة حاسوب SMP متعددة المعالجات، وأجهزة حاسوب شخصية متعددة الأنوية.
    • ملاحظة: تشمل أيضا العديد من بنيات MIMD المكونات الفرعية التنفيذية SIMD


IBM POWER5

HP/Compaq Alphaserver

Intel IA32

AMD Opteron

Cray XT3

IBM BG/L

بعض المصطلحات العامة المتوازية


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

الحوسبة الفائقة / الحوسبة عالية الأداء - High Performance Computing (HPC)
تستخدم أسرع وأكبر أجهزة الحاسوب العالمية لحل المشاكل الكبيرة.


العقدة - Node
عبارة عن "حاسوب في صندوق" مستقل من وحدات معالجة مركزية/معالجات/أنوية متعددة، ذاكرة، واجهات الشبكة، وما إلى ذلك. وتشبك العقد معا لتكون حاسوبا فائقا.


وحدة المعالجة المركزية CPU / المقبس / المعالج / النواة - CPU / Socket / Processor / Core
هذا يختلف اعتمادا على من تتحدث إليه. في الماضي، كانت وحدة المعالجة المركزية (CPU) مكون التنفيذ الوحيد للحاسوب. ثم، دمجت وحدات معالجة مركزية متعددة في عقدة. بعد ذلك، قسمت وحدات المعالجة المركزية الفردية إلى عدة "أنوية"، كل منها أصبحت وحدة تنفيذ وحيدة. تسمى وحدات المعالجة المركزية مع الأنوية المتعددة أحيانا "مقابس" – تعتمد على المورد. والنتيجة هي عقدة ذات وحدات معالجة مركزية متعددة، تحتوي كل منها على عدة أنوية. يخلط بين التسميات في بعض الأحيان. أتساءل لماذا؟


المهمة - Task
قسم منفصل منطقيا من العمل الحسابي. والمهمة هي عادة برنامج أو شبه برنامج مجموعة من التعليمات التي تنفذ بواسطة معالج. ويتألف البرنامج المتوازي من مهام متعددة تشتغل على معالجات متعددة.


المواردة - Pipelining
تقسيم مهمة إلى خطوات تؤديها وحدات المعالج المختلفة، مع مدخلات تتدفق من خلالها، يشبه بشكل كبير خط التجميع؛ نوع من الحوسبة المتوازية.


الذاكرة المشتركة - Shared Memory
من وجهة نظر دقيقة للأجهزة، فهي تصف بنية الحاسوب حيث لدى جميع المعالجات وصول مباشر (قائم على الناقل عادة) إلى الذاكرة الملموسة المشتركة. ومن الناحية البرمجية، فإنها تصف نموذجا حيث كل المهام المتوازية لها نفس "صورة" الذاكرة ويمكنها أن تعنون وتلج مباشرة نفس مواقع الذاكرة المنطقية بغض النظر عن مكان وجود الذاكرة الملموسة فعلا.


المعالج المتعدد المتناظر - Symmetric Multi-Processor (SMP)
بنية جهاز الذاكرة المشتركة حيث تشترك المعالجات المتعددة في مساحة عنوان واحد ولديها وصول متساو إلى جميع الموارد.


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


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


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


الحبوبية - Granularity
في الحوسبة المتوازية، يقصد بالحبوبية ذلك المقياس النوعي للحساب بالنسبة للاتصالات.
    • خشنة: يتم إجراء كميات كبيرة نسبيا من العمل الحسابي بين أحداث الاتصالات
    • دقيقة: يتم إجراء كميات صغيرة نسبيا من العمل الحسابي بين أحداث الاتصالات

التسريع المرصود - Observed Speedup
يعرف التسريع المرصود لشفرة والذي تتم موازاته على النحو التالي:

وقت التنفيذ التسلسلي على مدار الساعة
-----------------------------------
وقت التنفيذ المتوازي على مدار الساعة


هو واحد من أبسط وأكثر المؤشرات استخداما وعلى نطاق واسع لأداء برنامج متوازي.


تكلفة التوازي - Parallel Overhead
هو مقدار الوقت اللازم لتنسيق المهام المتوازية، مقابل القيام بعمل مستفاد منه. يمكن أن تشمل تكلفة التوازي  عوامل مثل:
    • وقت بدء المهمة
    • التزامنات
    • اتصالات البيانات
    • تكلفة البرامج تفرضها اللغات المتوازية والمكتبات وأنظمة التشغيل وما إلى ذلك.
    • وقت إنهاء المهمة


التوازي الضخم - Massively Parallel
يشير إلى الأجهزة التي تؤلف نظام مواز معين - تملك العديد من عناصر المعالجة. يظل معنى "العديد" يتزايد، ولكن حاليا، أكبر أجهزة الكمبيوتر المتوازية تتكون من عناصر المعالجة تحسب من مئات الآلاف إلى الملايين.


التوازي المربك - Embarrassingly Parallel
حل العديد من المهام المماثلة، ولكنها مستقلة في آن واحد؛ وليس هناك حاجة إلى التنسيق بين المهام.


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

حدود وتكاليف البرمجة المتوازية

    • قانون أمدال (Amdahl):


    • ينص قانون أمدال على أن تسارع البرنامج المحتمل يعرف بأنه أجزاء الشفرة (P) التي يمكن موازاتها:

 


     

    • إذا لم يكن بالإمكان موازاة الشفرة، فإن P=0 و speedup=1 (لا يوجد تسارع).
    • إذا تمت موازاة كل الشفرة، P=1 وسرعة غير منتهية (من الناحية النظرية).


    • إذا كان بالإمكان موازاة 50٪ من الشفرة، فإن الحد الأقصى speedup=2، وهذا يعني أنه سيتم تشغيل الشفرة مرتين أسرع.


    • بإدخال عدد من المعالجات التي تؤدي الى  توازي في العمل، يمكن صياغة العلاقة على النحو التالي:
حيث P = كسر التوازي، N = عدد المعالجات و S = الكسر التسلسلي.

    • وسرعان ما يصبح واضحا أن هناك حدودا لقابلية توسع الموازاة. فمثلا:

    • الاقتباس "الشهير": يمكنك قضاء العمر مدى الحياة للحصول على 95٪ من الشفرة الخاصة بك لتكون متوازية، ولن تحقق أبدا أفضل من تسريع بـ 20 مرة بغض النظر عن عدد المعالجات التي تستعملها في ذلك!
    • مع ذلك، تظهر بعض المشاكل زيادة الأداء بزيادة حجم المشكلة. فمثلا:

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

    • تعد المشاكل التي تزيد من نسبة الوقت المتوازي بحجمها أكثر قابلية للتطوير من المشاكل التي لها نسبة الوقت المتوازي ثابتة.

    • تعقيد - Complexity:


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

    • قابلية النقل - Portability:


    • بفضل التوحيد القياسي في العديد من واجهات برمجة التطبيقات APIs مثل MPI وخيوط  POSIX وOpenMP، فإن قضايا قابلية النقل بالبرامج المتوازية ليست خطيرة كما في السنوات الماضية. ومع ذلك...
    • تطبق جميع قضايا النقل المعتادة المرتبطة بالبرامج التسلسلية على البرامج المتوازية. على سبيل المثال، إذا كنت تستخدم "تحسينات" المورد إلى Fortran، C أو C++، فستصبح قابلية النقل مشكلة.
    • على الرغم من وجود معايير لعدة واجهات برمجة التطبيقات، فإن عمليات التنفيذ تختلف في عدد من التفاصيل، وأحيانا في نقطة تتطلب تعديلات في الشفرة (الترميز) من أجل تحقيق قابلية النقل.
    • يمكن أن تساهم أنظمة التشغيل بدور رئيسي في قضايا قابلية نقل الشفرة.
    • تعد بنيات الأجهزة قابلة للتغيير بشكل كبير ويمكن أن تؤثر على قابلية النقل.


    • متطلبات الموارد - Resource Requirements:


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


    • قابلية التوسع - Scalability:


    • نوعان من قابلية التوسع قائمان على الوقت إلى الحل: التحجيم القوي والتحجيم الضعيف.
    • التحجيم القوي - Strong scaling:
    • يبقى حجم المشكلة الإجمالي ثابتا كلما تمت إضافة المزيد من المعالجات.
    • الهدف هو تشغيل نفس حجم المشكلة بشكل أسرع
    • يقصد بالتحجيم الكامل حل المشكلة في زمن 1/p (مقارنة بالتسلسل)
    • التحجيم الضعيف - Weak scaling:
    • يبقى حجم المشكلة لكل معالج ثابتا كلما تمت إضافة المزيد من المعالجات.
    • الهدف هو تشغيل مشكلة أكبر في نفس المدة الزمنية
    • يقصد بالتحجيم الكامل أن المشكلة Px تشتغل في نفس الوقت الذي يشتغل فيه معالج واحد
    • إن قدرة أداء برنامج متوازي على التوسع هي نتيجة لعدد من العوامل المترابطة. ببساطة، إن إضافة المزيد من المعالجات نادرا ما يكون هو الحل.
    • قد تكون للخوارزمية حدود متأصلة لقابلية التوسع. وفي مرحلة ما، يؤدي إضافة المزيد من الموارد إلى تقليل الأداء. وهذا حالة مشتركة في العديد من التطبيقات المتوازية.
    • تلعب عوامل الأجهزة دورا هاما في قابلية التوسع. أمثلة:
    • سعة نطاق ناقل ذاكرة وحدة المعالجة المركزية على آلة SMP
    • سعة نطاق شبكة الاتصالات
    • كمية الذاكرة المتاحة في أية آلة معينة أو مجموعة آلات
    • سرعة المعالج على مدار الساعة
    • يمكن لمكتبات الدعم المتوازي وبرامج النظم الفرعية أن تحد قابلية التوسع المستقلة لتطبيقك.

بنيات ذاكرة الحاسوب المتوازية

الذاكرة المشتركة - Shared Memory

    • الخصائص العامة


    • تختلف أجهزة الحاسوب المتوازية ذات الذاكرة المشتركة كثيرا، ولكنها تشترك عموما في قابلية جميع المعالجات في الوصول إلى كل الذاكرة كحيز عنوان عام.
    • يمكن أن تعمل العديد من المعالجات بشكل مستقل ولكنها تشترك في نفس موارد الذاكرة.
    • تكون التغييرات التي ينجزها معالج واحد في موقع الذاكرة مرئية لجميع المعالجات الأخرى.
    • تاريخيا، تم تصنيف آلات الذاكرة المشتركة إلى ذاكرة موحدة الوصول (UMA) وذاكرة غير موحدة الوصول (NUMA)، وذلك استنادا إلى أوقات الوصول إلى الذاكرة.


    • الذاكرة موحدة الوصول - Uniform Memory Access  (UMA)


    • تتمثل اليوم بشكل شائع من قبل الآلات المعالج المتعدد المتناظر (SMP)
    • معالجات متطابقة
    • وصول متساوي وأوقات وصول إلى الذاكرة
    • تسمى أحيانا ذاكرة موحدة الوصول متماسكة مخبأة (CC-UMA). ويقصد بمتماسكة مخبأة إنه إذا قام معالج واحد بتحديث موقع في الذاكرة المشتركة، فإن جميع المعالجات الأخرى تعلم التحديث. يتم تحقيق التماسك المخبأ على مستوى العتاد.

    • الذاكرة غير موحدة الوصول - Non-Uniform Memory Access (NUMA)


    • غالبا ما تُصنع عن طريق ربط مادي (فيزيائي) لاثنين أو أكثر من الآلات المعالج المتعدد المتناظرSMP
    • يمكن لآلة المعالج المتعدد المتناظرSMP الوصول مباشرة لذاكرة آلة المعالج المتعدد المتناظر SMP  أخرى.
    • ليس لكل المعالجات وقت وصول متساو إلى جميع الذاكرات
    • يعتبر الوصول إلى الذاكرة عبر الرابط أبطأ
    • إذا تم الحفاظ على التماسك المخبأ، حينها يمكن أيضا أن تسمى ذاكرة غير موحدة الوصول متماسكة مخبأة (CC-NUMA)


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

الذاكرة الموزعة - Distributed Memory

    • الخصائص العامة


مثل أنظمة الذاكرة المشتركة،  تتنوع أنظمة الذاكرة الموزعة كثيرا ولكنها تتقاسم مميزات مشتركة. وتتطلب أنظمة الذاكرة الموزعة شبكة اتصالات للتوصيل بين الذاكرة والمعالج.

    • تمتلك المعالجات ذاكرة محلية خاصة بها. ولا يتم تعيين عناوين الذاكرة في معالج واحد إلى معالج آخر، لذلك ليس هناك مفهوم حيز عنوان عام عبر جميع المعالجات.
    • ولأن كل معالج له ذاكرة محلية خاصة به، فإنه يعمل بشكل مستقل. إذ ليست للتغييرات التي يجريها على ذاكرته المحلية أي تأثير على ذاكرة المعالجات الأخرى. وبالتالي، فإن مفهوم التماسك المخبأ لا ينطبق.
    • عندما يحتاج المعالج إلى الوصول إلى البيانات في معالج آخر، فإنه عادة ما يكون من مهمة المبرمج لتحديد صريح لكيفية وزمن توصيل البيانات. كما يعد كذلك التزامن بين المهام من مسؤولية المبرمج.
    • تختلف "معمارية" الشبكة المستخدمة لنقل البيانات بشكل كبير، على الرغم من أنها يمكن أن تكون بسيطة مثل شبكة الإيثرنت.
    • الإيجابيات
    • تعد الذاكرة قابلة للتوسع مع عدد المعالجات. حيث كلما زاد عدد المعالجات ازداد حجم الذاكرة بشكل تناسبي.
    • يمكن لكل معالج أن يصل بسرعة إلى الذاكرة الخاصة به دون تدخل ودون تكلفة المتكبدة مع محاولة الحفاظ على التماسك المخبأ العام.
    • فعالية التكلفة: يمكن استخدام السلع، والمعالجات الجاهزة والتشبيك.
    • السلبيات
    • المبرمج هو المسؤول عن العديد من التفاصيل المرتبطة باتصال البيانات بين المعالجات.
    • قد يكون من الصعب تعيين هياكل البيانات المتوفرة، استنادا على الذاكرة الإجمالية، إلى تنظيم الذاكرة هذا.
    • أوقات الذاكرة غير موحدة الوصول – تستغرق البيانات الموجودة على عقدة بعيدة وقتا أطول للوصول مقارنة بالبيانات المحلية للعقدة.

الذاكرة المشتركة-الموزعة الهجينة - Hybrid Distributed-Shared Memory

    • الخصائص العامة


    • تستخدم اليوم أكبر وأسرع أجهزة الحاسوب في العالم معمارية الذاكرة المشتركة والموزعة على حد سواء.

    • يمكن أن يكون مكون الذاكرة المشتركة جهاز ذاكرة مشترك و/أو وحدات معالجة الرسومات (GPU).
    • مكون الذاكرة الموزعة عبارة عن تشبيك للعديد من أجهزة وحدات معالجة الرسومات/ذاكرات مشتركة، والتي تعرف فقط عن الذاكرة الخاصة بها – وليس عن ذاكرة على جهاز آخر. لذلك، يتطلب الأمر شبكة اتصالات لنقل البيانات من جهاز إلى آخر.
    • ويبدو أن الاتجاهات الحالية تشير إلى أن هذا النوع من بنيات الذاكرة سيستمر في الانتشار وسيزداد في الحوسبة الفائقة في المستقبل المنظور.
    • الإيجابيات والسلبيات
    • كل شيء مشترك بين بنية كل من الذاكرة المشتركة والذاكرة الموزعة.
    • زيادة قابلية التطوير هي ميزة هامة لديها
    • زيادة تعقيد المبرمج هي سلبية مهم لديها

نماذج البرمجة المتوازية

نظرة عامة


    • هناك العديد من نماذج البرمجة المتوازية المستخدمة اليوم:
        ◦ الذاكرة المشتركة (بدون خيوط)
        ◦ الخيوط
        ◦ الذاكرة الموزعة / تمرير الرسالة
        ◦ البيانات المتوازية
        ◦ الهجين
        ◦ برنامج واحد متعدد البيانات (SMPD)
        ◦ برامج متعددة ذات بيانات متعددة (MPMD )

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

نموذج ذاكرة مشتركة على جهاز ذاكرة موزعة:


مقاربة Kendall Square Research (KSR) ALLCACHE، وزعت ذاكرة جهاز فيزيائيا عبر أجهزة مشبكة، ولكنها تبدو للمستخدم كحيز عنوان عام لذاكرة مشتركة واحدة. وبشكل عام، يشار إلى هذه المقاربة باسم "الذاكرة المشتركة الافتراضية".

نموذج ذاكرة موزعة على جهاز ذاكرة مشتركة:


واجهة تمرير الرسالة  Message Passing Interface (MPI) على SGI Origin 2000. تستخدم  SGI Origin 2000 النوع CC-NUMA من بنية الذاكرة المشتركة، حيث تملك كل مهمة لديها إمكانية الوصول المباشر إلى حيز العنوان العام عبر جميع الأجهزة. ومع ذلك، فإن قابلية إرسال واستقبال الرسائل باستخدام MPI، كما هو الحال عادة على شبكة من أجهزة الذاكرة الموزعة، تكون منفذة ومستخدمة بشكل مشترك.

    • أي نموذج يجب استخدامه؟ هذا غالبا ما يكون توليفة بين ما هو متاح و ما هو اختيار شخصي. لا يوجد نموذج "أفضل"، على الرغم من أن هناك بالتأكيد تطبيقات أفضل لبعض النماذج من غيرها.
    • تصف الأقسام التالية كل من النماذج المذكورة أعلاه، وتناقش أيضا بعض عمليات التنفيذ الفعلية.

نموذج الذاكرة المشتركة (بدون خيوط)


    • تشارك العمليات/المهام حيز عنوان مشترك، في نموذج البرمجة هذا، والذي تقوم بقراءته وكتابته بشكل غير متزامن.
    • تستخدم آليات مختلفة مثل الأقفالlocks /منظم المرورsemaphores  للتحكم في الوصول إلى الذاكرة المشتركة، وحل التنازعات ولمنع حالة التعارضات والتوقفات التامة.
    • قد يكون هذا أبسط نموذج برمجة متوازية.
    • ميزة هذا النموذج من وجهة نظر المبرمج هي أن مفهوم "ملكية" البيانات غير موجودة، لذلك ليس هناك حاجة لتحديد اتصالات البيانات بين المهام بوضوح. وتمتلك جميع العمليات رؤية ووصول متساو إلى الذاكرة المشتركة. ويمكن في كثير من الأحيان تبسيط تطوير البرامج.
    • من العوائق الهامة من حيث الأداء أن فهم وإدارة موقع البيانات يصبح أكثر صعوبة:
        ◦ الحفاظ على البيانات المحلية في العملية التي تعمل على ذلك تحافظ على الوصول إلى الذاكرة، وتحديثات المخبأة وحركة مرور الناقل التي تحدث عندما تستخدم العديد من العمليات نفس البيانات.
        ◦ لسوء الحظ، يعد ضبط موقع البيانات صعب الفهم وقد يكون خارج نطاق التحكم لدى المستخدم العادي.
    • آليات تنفيذ هذا النموذج
    • على أجهزة الذاكرة المشتركة القائمة بذاتها، وأنظمة التشغيل الأصلية، توفر مترجمات اللغة و/أو العتاد الدعم اللازم لبرمجة الذاكرة المشتركة. فعلى سبيل المثال، يوفر معيار POSIX  واجهة برمجة تطبيق (API) لاستخدام الذاكرة المشتركة، بينما يوفر UNIX قطع الذاكرة المشتركة (shmget، shmat، shmctl، الخ).
    • على أجهزة الذاكرة الموزعة، توزع الذاكرة فيزيائيا عبر شبكة من الأجهزة، ولكن تصبح عامة عبر الأجهزة والبرمجيات المتخصصة. مجموعة متنوعة من آليات التنفيذ لـ SHMEM متاحة راجع: http://en.wikipedia.org/wiki/SHMEM.


نموذج الخطوط - Threads Model


    • هذا النموذج البرمجي هو نوع من برمجة الذاكرة المشتركة.
    • في نموذج الخيوط للبرمجة المتوازية، يمكن لعملية واحدة " ثقيلة الوزن" أن تكون لديها عمليات متعددة "خفيفة الوزن"، ومسارات تنفيذ متزامنة.
    • على سبيل المثال:
        ◦ تتم جدولة البرنامج الرئيسي a.out ليشتغل من قبل نظام التشغيل الأصلي. ويقوم a.out بتحميل واكتساب كل موارد النظام والمستخدمين اللازمة لتشغيله. هذه هي عملية "الوزن الثقيل".
        ◦ يؤدي a.out بعض الأعمال التسلسلية، ثم يقوم بإنشاء عدد من المهام (الخيوط) التي يمكن جدولتها وتشغيلها من قبل نظام التشغيل بشكل متزامن.
        ◦ يحتوي كل خيط على بيانات محلية، ولكنه أيضا، يشارك الموارد الكاملة لـ a.out. وهذا يوفر التكلفة المرتبطة بتكرار موارد برنامج لكل خيط ("خفيفة الوزن"). ويستفيد كل خيط أيضا من عرض ذاكرة إجمالية لأنه يشارك مساحة الذاكرة لـ a.out.
        ◦ يمكن وصف عمل الخيوط بشكل أفضل كنهج فرعي ضمن البرنامج الرئيسي. حيث يمكن لأي خيط تنفيذ أي نهج فرعي في نفس الوقت كما بالنسبة للخيوط الأخرى.
        ◦ تتواصل الخيوط مع بعضها البعض من خلال الذاكرة الإجمالية (تحديث مواقع العناوين). ويتطلب هذا إنشاء تزامن للتأكد من أنه لا يتم تحديث نفس العنوان العام لأكثر من خيط واحد في أي وقت.
        ◦ يمكن للخيوط أن تأتي وتذهب، ولكن يظل a.out حاضرا لتوفير الموارد المشتركة اللازمة إلى غاية اكتمال التطبيق.

    • تطبيقات - Implementations
    • من منظور البرمجة، تشتمل عمليات التنفيذ للخيوط عادة على:
        ◦ مكتبة من النهج الفرعية التي يتم استدعاءها من داخل شفرة المصدر المتوازي
        ◦ مجموعة من توجيهات المترجم البرمجي المضمنة ضمن شفرة المصدر التسلسلي أو ضمن شفرة المصدر المتوازي
وفي كلتا الحالتين، يكون المبرمج هو المسؤول عن تحديد التوازي (على الرغم من أنه يمكن لمترجمات اللغة أن تقدم المساعدة أحيانا).
    • لا تعد عمليات تنفيذ الخيوط جديدة في الحوسبة. فتاريخيا، قام موردو الأجهزة بتوفير آليات تنفيذ ذات إصدارات ملكية خاصة بهم من الخيوط. وتختلف هذه آليات التنفيذ اختلافا جوهريا عن بعضها البعض، مما يجعل الأمر صعبا على المبرمجين لتطوير تطبيقات متسلسلة محمولة.
    • أدت جهود توحيد المقاييس المنفصلة إلى إخراج آليتي تنفيذ للخيوط مختلفتين جدا: خيوط POSIX و OpenMP.


    • خيوط POSIX
        ◦ يحددها المقياس IEEE POSIX 1003.1c (1995). لغة C فقط.
        ◦ جزء من أنظمة التشغيل يونكس/لينكس (Unix/Linux)
        ◦ بني من منظور مكتبة
        ◦ يشار إليها عادة باسم Pthreads.
        ◦ جد متوازية؛ تتطلب اهتمام كبير من مبرمج بالتفاصيل.


    • OpenMP
        ◦ مقياس صناعي، تم تحديده بشكل مشترك وأيدته مجموعة من الموردين الكبار لأجهزة وبرمجيات الحاسوب، والمنظمات والأفراد.
        ◦ بني من منظور توجيه المترجم (Compiler)
        ◦ محمول / متعدد المنصات، بما في ذلك منصتي يونكس وويندوز
        ◦ متوفر في تطبيقات C / C ++ و Fortran
        ◦ يمكن أن يكون جد سهل وبسيط الاستخدام - يوفر "التوازي التدريجي". ويمكن أن يبدأ برمز تسلسلي.


    • آليات تنفيذ أخرى للخيوط، ولكن لم تتم مناقشتها هنا:
        ◦ خيوط ميكروسوفت
        ◦ خيوط جافا، خيوط بيثون
        ◦ خيوط CUDA لوحدات معالجة الرسومات (GPUs)


    • المزيد من المعلومات
    • دورة خيوط POSIX: computing.llnl.gov/tutorials/pthreads
    • دورة OpenMP: computing.llnl.gov/tutorials/openMP

الذاكرة الموزعة / نموذج تمرير رسالة - Distributed Memory / Message Passing Model


    • يوضح هذا النموذج الخصائص التالية:
        ◦ مجموعة من المهام التي تستخدم الذاكرة المحلية الخاصة بها أثناء الحساب. يمكن أن تتواجد مهام متعددة على نفس الجهاز الفيزيائي و/أو عبر عدد اعتباطي من الأجهزة.
        ◦ بيانات تبادل المهام من خلال الاتصالات بإرسال واستقبال الرسائل.
        ◦ عادة ما يتطلب نقل البيانات إجراء عمليات تعاونية من قبل كل عملية. على سبيل المثال، يجب أن تكون لعملية الإرسال عملية استقبال مطابقة.
    • آليات التنفيذ
    • من منظور البرمجة، عادة ما تتضمن آليات تنفيذ تمرير الرسائل مكتبة النُّهج الفرعية. ويتم تضمين الاستدعاءات إلى هذه النُّهج الفرعية في شفرة المصدر. ويكون المبرمج مسؤولا عن تحديد كل التوازي.
    • من الناحية التاريخية، كانت هناك مجموعة متنوعة من مكتبات تمرير الرسائل منذ الثمانينيات. وتختلف عمليات التنفيذ هذه اختلافا كبيرا عن بعضها البعض مما يجعل من الصعب على المبرمجين تطوير التطبيقات المحمولة.
    • في عام 1992، تم تشكيل منتدى MPI بهدف أساسي هو إنشاء واجهة قياسية لعمليات تنفيذ تمرير الرسائل.
    • تم إصدار الجزء 1 من واجهة تمرير الرسائل (MPI) عامَ 1994. بينما تم إصدار الجزء 2 (MPI-2) عامَ 1996 وMPI-3 عامَ 2012. جميع مواصفات MPI متوفرة على شبكة الإنترنت: //www.mpi- forum.org/docs/.
    • يعد MPI "بحكم الأمر الواقع" مقياسا صناعيا لتمرير الرسائل، وحلَّ تقريبا محل جميع عمليات التنفيذ المستخدمة الأخرى والخاصة بتمرير الرسائل في أعمال الإنتاج. وتوجد آليات التنفيذ في جميع منصات الحوسبة المتوازية الشهيرة تقريبا. لا تشمل جميع آليات التنفيذ كل شيء في MPI-1 أو MPI-2 أو MPI-3.

    • المزيد من المعلومات:
دورة MPI: computing.llnl.gov/tutorials/mpi

نموذج البيانات المتوازية - Data Parallel Model


    • قد يشار إليه أيضا كنموذج حيز العنوان العام المجزأ (  Partitioned Global Address Space PGAS).
    • يوضح النموذج المتوازي للبيانات الخصائص التالية:
        ◦ يتعامل مع حيز العنوان بشكل عام
        ◦ تركز معظم الأعمال المتوازية على أداء العمليات لمجموعة بيانات. وعادة ما تنظم مجموعة البيانات في بنية مشتركة، مثل مصفوفة أو مكعب.
        ◦ تعمل مجموعة من المهام بشكل جماعي على بنية البيانات نفسها، ومع ذلك، تعمل كل مهمة على جزء مختلف عن نفس بنية البيانات.
        ◦ تقوم المهام بتنفيذ نفس العملية في جزئها الخاص بالعمل، على سبيل المثال، "إضافة 4 إلى كل عنصر من مصفوفة".
    • على معماريات الذاكرة المشتركة، قد تكون لجميع المهام إمكانية الوصول إلى بنية البيانات من خلال الذاكرة الإجمالية.
    • على معماريات الذاكرة الموزعة، يمكن تقسيم بنية البيانات الإجمالية بشكل منطقي و/أو فيزيائي من خلال المهام.

    • آليات التنفيذ:
    • حاليا، هناك العديد من آليات التنفيذية الشهيرة نسبيا، وأحيانا تطورية، مبنية على أساس البيانات المتوازية/نموذج PGAS.
    • كوراي فورتران (Coarray Fortran): مجموعة صغيرة من ملحقات فورتران 95 للبرمجة المتوازية SPMD. تعتمد على المترجم. للمزيد من المعلومات: https://en.wikipedia.org/wiki/Coarray_Fortran
    • C المتوازي الموحد (UPC Unified Parallel C): امتداد للغة البرمجة C للبرمجة المتوازية SPMD. تعتمد على المترجم. للمزيد من المعلومات: http://upc.lbl.gov/
    • المصفوفات العامة Global Arrays: توفر بيئة برمجة نمط الذاكرة المشتركة في سياق بنيات بيانات المصفوفة الموزعة. مكتبة ذات ملكية عامة مع ارتباطات C و Fortran77. مزيد من المعلومات: https://en.wikipedia.org/wiki/Global_Arrays
    • X10: لغة برمجة متوازية على أساس PGAS يتم تطويرها من قبل شركة IBM في مركز أبحاث توماس ج. واتسون. للمزيد من المعلومات: http://x10-lang.org/
    • Chapel: مشروع لغة برمجة متوازية مفتوح المصدر يقوده كراي (Cray). للمزيد من المعلومات: http://chapel.cray.com/

النموذج الهجين - Hybrid Model

 


    • يجمع النموذج الهجين بين أكثر من نموذج من نماذج البرمجة الموصوفة سابقا.
    • حاليا، يوجد مثال شائع لنموذج هجين هو مزيج من نموذج تمرير الرسائل (MPI) مع نموذج الخيوط (OpenMP).
        ◦ تقوم الخيوط بالعمليات الحسابية المكثفة باستخدام البيانات المحلية للعقدة
        ◦ تحدث اتصالات بين العمليات على مختلف العقد عبر الشبكة باستخدام MPI
    • أثبت هذا النموذج الهجين بأنه يعمل بشكل رائع في البيئات الشهيرة للأجهزة العنقودية متعددة/عديدة الأنوية.
    • مثال آخر مماثل وشعبي على نحو متزايد لنموذج هجين هو استخدام MPI مع برمجة CPU-GPU (وحدة المعالجة المركزية - وحدة معالجة الرسومات).
        ◦ تشغل مهام MPI على وحدات المعالجة المركزية باستخدام الذاكرة المحلية والتواصل مع بعضها البعض عبر الشبكة.
        ◦ نوى مركزة حسابيا محملة على وحدات معالجة الرسومات على العقدة.
        ◦ تبادل البيانات بين الذاكرة عقدة المحلية و ووحدات المعالجات الرسومية باستخدام CUDA  (أو ما يعادله).


    • نماذج هجينة أخرى شائعة:
        ◦ MPI مع خيوط POSIX (Pthreads)
        ◦ MPI مع مسرعات غير وحدات معالجة الرسومات (non-GPU)
        ◦ ...

SPMD وMPMD


    • برنامج واحد متعدد البيانات - Single Program Multiple Data (SPMD):


    • يعتبر SPMD حاليا نموذج برمجة "عالية المستوى" التي يمكن بناؤها اعتمادا على أي مزيج من نماذج البرمجة المتوازية المذكورة سابقا.
    • برنامج واحد: تنفذ جميع المهام نسختها من نفس البرنامج في وقت واحد. هذا البرنامج يمكن أن يكون خيوطا، تمريرا للرسائل، بيانات متوازية أو هجينة.
    • بيانات متعددة: قد تستخدم جميع المهام بيانات مختلفة
    • عادة ما يكون لبرامج SPMD المنطق الضروري المبرمج فيها للسماح لمهام مختلفة بالتفرع أو بتنفيذ مشروط فقط لتلك الأجزاء من البرنامج التي تم تصميمها لتنفيذها. أي أن المهام لا تحتاج بالضرورة إلى تنفيذ البرنامج بأكمله – بل ربما لجزء منه فقط.
    • ربما يكون نموذج SPMD، باستخدام تمرير الرسائل أو البرمجة الهجينة، نموذج البرمجة المتوازية الأكثر استخداما لعناقيد متعددة العقد.


    • متعددة بيانات متعددة البرامج - Multiple Program Multiple Data (MPMD):


    • مثل SPMD، يعتبر MPMD حاليا نموذج برمجة "عالية المستوى" والتي يمكن بناؤها على أساس أي مزيج من نماذج البرمجة الموازية المذكورة سابقا.
    • برامج متعدد: قد تنفذ المهام برامج مختلفة في وقت واحد. ويمكن أن تكون البرامج عبارة عن خيوط، تمرير رسائل، بيانات متوازنة أو هجينة.
    • بيانات متعددة: قد تستخدم جميع المهام بيانات مختلفة
    • لا تعد تطبيقات MPMD شائعة مثلما هو الأمر بالنسبة لتطبيقات SPMD، ولكنها قد تكون أكثر ملاءمة لأنواع معينة من المشاكل، لا سيما تلك التي تكون أفضل لتفكك وظيفي منه لتفكك مجالي (الذي ستتم مناقشته لاحقا في فصل التجزئة).

تصميم البرامج المتوازية

الموازاة اليدوية مقابل الموازاة التلقائية - Automatic vs. Manual Parallelization


    • كان تصميم وتطوير البرامج المتوازية عملية يدوية للغاية. حيث يكون المبرمج هو المسؤول عادة عن تحديد وحاليا عن تنفيذ التوازي.
    • في كثير من الأحيان، يستغرق تطوير الشفرات المتوازية يدويا وقتا طويلا، ويكون معقدا، وعرضة للخطأ وعملية تكرارية.
    • منذ عدة سنوات، أصبحت أدوات مختلفة متاحة لمساعدة المبرمج على تحويل البرامج التسلسلية إلى برامج متوازية. والنوع الأكثر شيوعا من الأدوات المستخدمة لموازاة برنامج تسلسلي تلقائيا هو مترجم الموازاة أو ما قبل المعالج.
    • يعمل مترجم الموازاة عموما بطريقتين مختلفتين:
تلقائية تامة - Fully Automatic
    • يحلل المترجم شفرة المصدر ويحدد فرص التوازي.
    • يشمل التحليل تحديد مثبطات التوازي وربما ترجيح التكلفة على ما إذا كان التوازي سيحسن الأداء فعلا أم لا.
    • تعتبر حلقات التكرار (do، for) الهدف الأكثر شيوعا للتوازي التلقائي.
مبرمج موجه - Programmer Directed
    • باستخدام "توجيهات المترجم" أو ربما أعلام المترجم، يقول المبرمج للمترجم بشكل واضح كيفية موازاة الشفرة البرمجية.
    • قد تكون قادرة على استخدامها جنبا إلى جنب مع بضع درجات من التوازي التلقائي أيضا.

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

فهم المشكلة والبرنامج


    • مما لا شك فيه، أن الخطوة الأولى في تطوير البرمجيات المتوازية هي أولا فهم المشكلة التي ترغب في حلها بالتوازي. إذا بدأت مع برنامج تسلسلي، فإن هذا يتطلب فهم الشفرات البرمجية الجاهزة أيضا.
    • قبل قضاء بعض الوقت في محاولة لتطوير حل متواز للمشكلة، حدد ما إذا كانت المشكلة هي التي يمكن أن تكون متوازية بالفعل أم لا.
        ◦ مثال على سهولة موازاة مشكلة:
احسب الطاقة المحتملة لكل من واحدة من عدة آلاف من التشكلات المستقلة لجزيئة. عندما تنتهي من ذلك، ابحث عن الحد الأدنى لطاقة التشكل.
هذه المشكلة لديها القابلية على أن تحل على التوازي. حيث يمكن تحديد كل واحدة من التشكلات الجزيئية بشكل مستقل. ويعد أيضا حساب الحد الأدنى من طاقة التشكل مشكلة متوازية.
    • مثال على مشكلة مع القليل من التوازي أو بدونه:
حساب سلسلة فيبوناتشي (Fibonacci) (0،1،1،2،3،5،8،13،21، ...) باستخدام الصيغة:
F(n) = F(n-1) + F(n-2)
يستخدم حساب القيمة F(n) قيمتي F(n-1) وF(n-2) التي يجب حسابهما أولا.


    • تحديد نقاط الحوسبة المكثفة في البرنامج hotspots :
        ◦ اعرف أين يتم معظم العمل الحقيقي. غالبا ما تحقق معظم البرامج العلمية والتقنية معظم عملها في أماكن قليلة.
        ◦ يمكن أن تساعدك المحللات وأدوات تحليل الأداء هنا
        ◦ ركز على موازاة نقاط الحوسبة المكثفة وتجاهل تلك الأقسام من البرنامج ذات الاستخدام القليل لوحدة المعالجة المركزية.
    • تحديد نقاط الاختناق (bottlenecks) في البرنامج:
        ◦ هل هناك مناطق بطيئة بشكل غير متناسب، أو تتسبب في وقف العمل أو إرجاءه؟ على سبيل المثال، ادخال/اخراج (I/O) هو عادة شيء يبطئ البرنامج.
        ◦ قد يكون من الممكن إعادة هيكلة البرنامج أو استخدام خوارزمية مختلفة لتقليل أو القضاء على المناطق البطيئة غير الضرورية
    • تحديد مثبطات التوازي. أحد الفئات الشائعة للمثبط هو الاعتماد على البيانات، كما يتضح من تسلسل فيبوناتشي أعلاه.
    • تحقق من الخوارزميات الأخرى إن أمكن. قد يكون هذا هو الاعتبار الأكثر أهمية عند تصميم تطبيق متواز.
    • استفد من إيجابيات برنامج المتوازي للطرف الثالث الأمثل ومكتبات الرياضيات المثالية المتاحة من كبار الموردين (IBM's ESSL، Intel's MKL، AMD's AMCL وما إلى ذلك).

التجزئة - Partitioning


    • واحدة من الخطوات الأولى في تصميم برنامج متواز هو تقسيم المشكلة إلى "قطع" منفصلة من الأعمال التي يمكن توزيعها على مهام متعددة. ويعرف هذا باسم التحلل أو التجزئة.
    • هناك طريقتان أساسيتان لتجزئة العمل الحسابي بين المهام المتوازية: التحلل المجالي والوظيفي.
    • التحلل المجالي - Domain Decomposition:
    • في هذا النوع من التجزئة، يتم تحليل البيانات المرتبطة بالمشكلة. ثم تعمل كل مهمة متوازية على جزء من البيانات.

    • هناك طرق مختلفة لتقسيم البيانات:



    • التحلل الوظيفي - Functional Decomposition:
    • في هذا النهج، ينصب التركيز على الحساب الذي يتعين القيام به وليس على البيانات التي تتم معالجتها بواسطة الحساب. وتتحلل المشكلة وفقا للعمل الذي يجب القيام به. كل مهمة تنفذ إذن جزءا من العمل الإجمالي.

    • يفسح التحلل الوظيفي المجال للمشاكل التي يمكن تقسيمها إلى مهام مختلفة. فمثلا:
نمذجة النظم الإيكولوجية - Ecosystem Modeling
يحسب كل برنامج عدد السكان من مجموعة معينة، حيث يعتمد نمو كل مجموعة على نمو جارتها. ومع مرور الوقت، تحسب كل عملية حالتها الحالية، ثم تتبادل المعلومات مع الكثافات السكانية المجاورة. تتقدم جميع المهام بعدها لحساب الحالة في الخطوة الزمنية التالية.

معالجة الإشارات - Signal Processing
يتم تمرير مجموعة بيانات إشارة الصوت من خلال أربعة مرشحات حسابية مختلفة. كل مرشح عبارة عن عملية منفصلة. يجب أن يمر الجزء الأول من البيانات من خلال المرشح الأول قبل التقدم إلى الثاني. وعندما يحدث ذلك، يمر الجزء الثاني من البيانات من خلال المرشح الأول. وبحلول الوقت الذي يكون فيه الجزء الرابع من البيانات في المرشح الأول، فإن جميع المهام الأربع تكون مشغولة.

نمذجة المناخ - Climate Modeling
يمكن اعتبار كل مكون نموذج كمهمة منفصلة. وتمثل الأسهم تبادل البيانات بين المكونات أثناء الحساب: يولد نموذج الغلاف الجوي بيانات سرعة الرياح التي يستخدمها نموذج المحيطات، ونموذج المحيطات يولد بيانات درجة حرارة سطح البحر التي يستخدمها نموذج الغلاف الجوي، وهلم جرا.

    • يعد الجمع بين هذين النوعين من تحلل المشكلة أمرا شائعا وطبيعيا.


الاتصالات - Communications


    • من يحتاج الاتصالات؟
تتوقف الحاجة إلى الاتصالات بين المهام على مشكلتك:
تحتاج إلى الاتصالات:
    • معظم التطبيقات المتوازية ليست بسيطة جدا، وتتطلب مهام لتبادل البيانات مع بعضها البعض.
    • على سبيل المثال، تتطلب مشكلة انتشار الحرارة 2-D مهمة لمعرفة درجات الحرارة التي تحسبها المهام التي لها بيانات مجاورة. للتغييرات على البيانات المجاورة تأثير مباشر على بيانات تلك المهمة.


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

            
    • العوامل التي يجب مراعاتها:
هناك عدد من العوامل الهامة التي يجب مراعاتها عند تصميم الاتصالات بين المهام الخاصة ببرنامجك:


    • كلفة الاتصالات - Communication overhead
        ◦ ينطوي التواصل بين المهام على كلفة بشكل دائم تقريبا.
        ◦ تستخدم بدلا من ذلك دورات الجهاز والموارد التي يمكن استخدامها للحساب لتجميع البيانات ونقلها.
        ◦ تتطلب الاتصالات في كثير من الأحيان نوعا من المزامنة بين المهام، الأمر الذي يمكن أن يؤدي إلى قضاء المهام الوقت في "الانتظار" بدلا من القيام بالعمل.
        ◦ يمكن أن تؤدي حركة مرور الاتصالات المتنافسة إلى تشبع حيز النطاق الترددي للشبكة، مما يزيد من تفاقم مشاكل الأداء.

    • زمن الوصول مقابل حيز النطاق الترددي - Latency vs. Bandwidth
        ◦ زمن الوصول هو الوقت المستغرق لإرسال رسالة ذات الحجم الأدنى (0 بايت) من نقطة A إلى نقطة B. ويتم التعبير عنها بشكل عام بالميكروثانية.
        ◦ حيز النطاق الترددي هو مقدار البيانات التي يمكن توصيلها خلال وحدة زمنية. يعبر عنه عادة باسم ميغابايت/ثانية أو جيغابايت/ثانية.
        ◦ يمكن أن يسبب إرسال العديد من الرسائل الصغيرة جعل كلفة الاتصالات هي المسيطرة. في كثير من الأحيان يكون أكثر كفاءة تحزيم الرسائل الصغيرة في رسالة أكبر، وبالتالي زيادة عرض النطاق الفعال للاتصالات.

    • رؤية الاتصالات - Visibility of communications
        ◦ مع نموذج تمرير الرسائل، تكون الاتصالات صريحة وعموما واضحة تماما وتحت تحكم المبرمج.
        ◦ مع النموذج المتوازي للبيانات، غالبا ما تحدث الاتصالات بشفافية للمبرمج، وخاصة على بنيات الذاكرة الموزعة. قد لا يكون المبرمج قادرا حتى على معرفة كيفية إنجاز الاتصالات بين المهام بالضبط.

    • الاتصالات المتزامنة مقابل الاتصالات غير المتزامنة - Synchronous vs. asynchronous communications
        ◦ تتطلب الاتصالات المتزامنة نوعا من "المصافحة" بين المهام التي تشارك البيانات. يمكن أن يكون هذا منظما بشكل واضح في الشفرة من قبل المبرمج، أو أنه قد يحدث في مستوى أقل غير معروف بالنسبة للمبرمج.
        ◦ غالبا ما يشار إلى الاتصالات المتزامنة على أنها حاجبة للاتصالات لأن العمل الآخر يجب أن ينتظر حتى اكتمال الاتصالات.
        ◦ تسمح الاتصالات غير المتزامنة للمهام بنقل البيانات بشكل مستقل عن بعضها البعض. على سبيل المثال، يمكن للمهمة 1 إعداد وإرسال رسالة إلى المهمة 2، ثم تبدأ فورا بالقيام بأعمال أخرى. عندما تستقبل المهمة 2 البيانات التي لا تهم.
        ◦ غالبا ما يشار إلى الاتصالات غير المتزامنة على أنها اتصالات غير حاجبة لأنه يمكن القيام بالعمل الآخر في حين أن الاتصالات تجري.
        ◦ يعتبر الحساب البيني مع الاتصالات أكثر فائدة لاستخدام الاتصالات غير المتزامنة.

    • نطاق الاتصالات - Scope of communications
        ◦ يعتبر معرفة أي المهام التي يجب تتواصل مع بعضها البعض أمرا بالغ الأهمية خلال مرحلة تصميم الشفرة المتوازية. ويمكن تنفيذ كلا النطاقين الموصوفين أدناه بشكل متزامن أو غير متزامن.
        ◦ نقطة إلى نقطة (Point-to-point) - ينطوي على مهمتين بمهمة واحدة تعمل كمرسل/منتج للبيانات، والآخر يعمل كمستقبل/مستهلك.
        ◦ الجماعي (Collective) - ينطوي على تبادل البيانات بين أكثر من مهمتين، والتي غالبا ما يتم تحديدها على أنها أعضاء في مجموعة مشتركة، أو جماعي. بعض الاختلافات الشائعة (هناك المزيد):

    • كفاءة الاتصالات - Efficiency of communications
        ◦ في كثير من الأحيان، يملك المبرمج خيارات يمكن أن تؤثر على أداء الاتصالات. سيتم هنا ذكر عدد قليل منها فقط.
        ◦ ما هي عملية تنفيذ التي ينبغي استخدامها لنموذج معين؟ باستخدام نموذج تمرير الرسائل كمثال على ذلك، قد تكون عملية تنفيذ MPI أسرع على منصة أجهزة معينة أخرى.
        ◦ ما هو نوع عمليات الاتصال التي ينبغي استخدامها؟ كما تم ذكره سابقا، يمكن لعمليات الاتصالات غير المتزامنة أن تحسن الأداء العام للبرنامج.
        ◦ نسيج الشبكة - قد توفر بعض المنصات أكثر من شبكة واحدة للاتصالات. فأي واحدة هي الأفضل؟
    • التكلفة والتعقيد - Overhead and Complexity

    • وأخيرا، ندرك أن هذه ليست سوى قائمة جزئية من الأشياء التي يجب أخذها في عين الاعتبار !!!

المزامنة - Synchronization


    • إدارة تسلسل العمل والمهام التي تؤديه هو اعتبار حساس في التصميم لمعظم البرامج المتوازية.
    • يمكن أن يكون عاملا هاما في أداء البرنامج (أو عدم وجوده)
    • غالبا ما يتطلب "تسلسل" أجزاء من البرنامج.

    • أنواع المزامنة:


    • الحاجز - Barrier
        ◦ عادة ما يعني أن جميع المهام معنية
        ◦ تؤدي كل مهمة عملها حتى تصل إلى الحاجز. ثم تتوقف، أو "يتم منعها".
        ◦ عندما تصل المهمة الأخيرة إلى الحاجز، تتم مزامنة جميع المهام.
        ◦ ما يحدث من هنا يختلف. في كثير من الأحيان، يجب أن يتم الجزء التسلسلي من العمل. وفي حالات أخرى، يتم تحرير المهام تلقائيا لمواصلة عملها.
    • قفل / سيمافور (ملوحة) - Lock / semaphore
        ◦ يمكن أن ينطوي على أي عدد من المهام
        ◦ يستخدم عادة لتسلسل (حماية) الوصول إلى البيانات الإجمالية أو جزء من الشفرة. وقد تستخدم مهمة واحدة فقط في كل مرة القفل / السيمافور / العلم (الخاص بها).
        ◦ المهمة الأولى للحصول على قفل "يحدد" ذلك. يمكن بعدها لهذه المهمة الوصول إلى البيانات المحمية أو الشفرة بأمان (بشكل متسلسل).
        ◦ يمكن لمهام أخرى محاولة الحصول على القفل ولكن يجب الانتظار حتى المهمة التي تملك القفل الذي يحررها.
        ◦ يمكن أن يكون محظورا أو غير محظور

    • عمليات الاتصالات المتزامنة - Synchronous communication operations
        ◦ لا تشمل سوى تلك المهام التي تنفذ عملية الاتصال
        ◦ عندما تؤدي إحدى المهام عملية الاتصال، يستلزم الأمر وجود شكل من التنسيق مع المهمة (المهام) الأخرى المشاركة في الاتصالات. على سبيل المثال، قبل أن تقوم مهمة بتنفيذ عملية إرسال، يجب أن تتلقى أولا إقرارا من مهمة الاستلام بالموافقة على إرسالها.
        ◦ تمت مناقشتها سابقا في قسم الاتصالات.


تبعيات البيانات - Data Dependencies


    • تعريف:
    • توجد تبعية بين تعليمات البرنامج عندما يؤثر ترتيب تنفيذ التعليمة على نتائج البرنامج.
    • تنتج تبعية البيانات عن الاستخدامات المتعددة لنفس الموقع (المواقع) في التخزين بواسطة مهام مختلفة.
    • تعتبر التبعيات مهمة للبرامج المتوازية لأنها واحدة من المثبطات الأولية للتوازي.

    • أمثلة:
    • تبعية البيانات في حلقات التكرار - Loop carried data dependence

DO J = MYSTART,MYEND
A(J) = A(J-1) * 2.0
END DO


يجب حساب قيمة A (J-1) قبل قيمة A (J)، وبالتالي فإن A (J) تعرض تبعية البيانات على A (J-1). نقول أن التوازي مثبَّط.
إذا كانت المهمة 2 تحتوي على A(J) والمهمة 1 لها A (J-1)، فإن حساب القيمة الصحيحة لـ A (J) يستلزم ما يلي:

    • بنية الذاكرة الموزعة - يجب أن تحصل المهمة 2 على قيمة A (J-1) من المهمة 1 بعد انتهاء المهمة 1 من حسابها
    • بنية الذاكرة المشتركة – يجب على المهمة 2 أن تقرأ A (J-1) بعد تحديثها من طرف المهمة 1


task 1        task 2
------        ------

X = 2         X = 4
  .             .
  .             .
Y = X**2      Y = X**3


كما هو الحال في المثال السابق، يتم تثبيط التوازي. وتعتمد قيمة Y على:
    • بنية الذاكرة الموزعة - إذا أو عندما تتصل قيمة X بين المهام.
    • بنية الذاكرة المشتركة - المهمة التي يخزن الماضي قيمة X.

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

    • كيفية التعامل مع تبعيات البيانات:
    • بنيات الذاكرة الموزعة - توصيل البيانات المطلوبة في نقاط التزامن.
    • بنيات الذاكرة المشتركة – مزامنة عمليات القراءة/الكتابة بين المهام.

موازنة التحميل - Load Balancing


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

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


محاكاة N -body – قد تهاجر الجسيمات عبر نطاقات المهام التي تتطلب المزيد من العمل لبعض المهام.


أساليب الشبكة التكيفية – قد تحتاج بعض المهام إلى تهذيب شبكتها حينما لا يقوم البعض الآخر بذلك.


المصفوفات غير الكثيفة - بعض المهام لديها بيانات فعلية للعمل عليها حينما يكون البعض الآخر في الغالب "مجرد أصفار".

        ◦ عندما يكون مقدار العمل الذي ستؤديه كل مهمة متغيرا عن قصد أو غير قادر على التنبؤ به، فقد يكون من المفيد استخدام نهج تجمع المهام المجدول (scheduler-task pool). عندما تُنهي كل مهمة عملها، فإنها تتلقى قطعة جديدة من قائمة انتظار العمل.

        ◦ في نهاية المطاف، قد يصبح من الضروري تصميم خوارزمية تكشف وتتعامل مع اختلالات التحميل لأنها تحدث ديناميكيا داخل الشفرة.

الحبوبية - Granularity


    • معدل الاتصالات /الحوسبة - Computation / Communication Ratio :
    • في الحوسبة المتوازية، تعتبر الحبوبية مقياسا نوعيا لمعدل الحساب في الاتصالات.
    • عادة ما يتم فصل فترات الحساب عن فترات الاتصالات بواسطة أحداث التزامن.
    • توازي الحَب-الدقيق - Fine-grain Parallelism :


    • يتم إنجاز كميات صغيرة نسبيا من العمل الحسابي بين أحداث الاتصالات
    • حوسبة منخفضة إلى مقدار الاتصالات
    • يسهل موازنة التحميل
    • يدل على كلفة الاتصالات وفرص قليلة لتحسين الأداء
    • إذا كانت الحبوبية دقيقة جدا فمن الممكن أن الكلفة المطلوبة للاتصالات والتزامن بين المهام سيستغرق وقتا أطول من الحساب.
    •  توازي الحَب- الخشن - Coarse-grain Parallelism  :


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

I / O (إدخال/إخراج)


الأخبار السيئة:
    • تعتبر عمليات الإدخال/الإخراج (I/O) عموما مثبطات للتوازي.
    • تتطلب عمليات الإدخال/الإخراج أوامر بحجم أكبر من عمليات الذاكرة.
    • قد تكون أنظمة الإدخال/الإخراج المتوازية غير ناضجة أو غير متاحة لجميع الأنظمة الأساسية.
    • في بيئة حيث تدرك كافة المهام نفس مساحة الملف، يمكن أن تؤدي عمليات الكتابة إلى الكتابة فوق الملف.
    • يمكن أن تتأثر عمليات القراءة بقدرة خادم الملفات على التعامل مع طلبات القراءة المتعددة في نفس الوقت.
    • الإدخال/الإخراج الذي يجب إجراؤه عبر الشبكة (NFS، غير محلية) يمكن أن يتسبب في اختناقات شديدة وقد يسبب حتى في تعطيب خوادم الملفات.
 الأخبار الجيدة:
    • أنظمة الملفات المتوازية متاحة. فمثلا:
        ◦ GPFS: النظام العام للملفات المتوازية (IBM). يسمى حاليا مقياس طيف IBM.
        ◦ Lustre: لعناقيد لينكس ( Intel)
        ◦ HDFS نظام الملفات الموزعة Hadoop (Apache)
        ◦ PanFS: نظام الملفات ActiveScale Panasas لعناقيد لينكس (Panasas ، Inc.)
        ◦ وللمزيد – انظر http://en.wikipedia.org/wiki/List_of_file_systems#Distributed_parallel_file_systems
    • قد أصبح تخصص برمجة الإدخال/الإخراج  المتوازية لـ MPI متاحة منذ عام 1996 كجزء من MPI-2. وأصبحت عمليات تنفيذ الحرة والخاصة بالموردين متاحة بشكل شائع.
    • بعض الإرشادات:
        ◦ القاعدة رقم 1: قلل الإدخال/الإخراج الإجمالي قدر الإمكان
        ◦ إذا كان لديك الوصول إلى نظام ملفات متوازية، استخدمه.
        ◦ كتابة أجزاء كبيرة من البيانات بدلا من قطع صغيرة وعادة ما تكون أكثر كفاءة بكثير.
        ◦ ملفات أقل وأكبر أداء أفضل من العديد من الملفات الصغيرة.
        ◦ احجز الإدخال/الإخراج في أجزاء تسلسلية محددة من الوظيفة، ثم استخدم الاتصالات المتوازية لتوزيع البيانات على المهام المتوازية.على سبيل المثال، يمكن للمهمة 1 قراءة ملف إدخال ثم بعدها توصل البيانات المطلوبة إلى مهام أخرى.وبالمثل، يمكن للمهمة 1 إجراء عملية الكتابة بعد تلقي البيانات المطلوبة من جميع المهام الأخرى.
        ◦ عمليات الإدخال/الإخراج الإجمالية عبر المهام - بدلا من تنفيذ العديد من مهام الإدخال/الإخراج، تؤدي مجموعة فرعية من المهام.

التصحيح - Debugging


    • يكون من الصعب تصحيح الشفرات المتوازية بشكل لا يصدق، لا سيما الشفرات ذات المستوى الصاعد.
    • الخبر السار هو أن هناك بعض المصححات الممتازة المتاحة للمساعدة:
    • pthreads  و OpenMPمخيطة
    • MPI
    • GPU  / مسرع
    • Hybrid
    • يمتلك مستخدمو حوسبة ليفرمور الوصول إلى العديد من أدوات التصحيح المتوازية المثبتة على عناقيد LC:
    • TotalView من RogueWave للبرمجيات
    • DDT من Allinea
    • Inspector من Intel
    • أداة تحليل التتبع المكدس  (STAT)- مطورة محليا
    • كل هذه الأدوات لديها منحنى تعلم مرتبط بها - أكثر من غيرها.
    • للحصول على تفاصيل ومعلومات للبدء، راجع:
        ◦ صفحات ويب LC في https://hpc.llnl.gov/software/development-environment-software
        ◦ برنامج TotalView التعليمي:  https://computing.llnl.gov/tutorials/totalview/

ضبط وتحليل الأداء - Performance Analysis and Tuning


    • كما هو الحال مع التصحيح، يمكن للتحليل و ضبط أداء البرنامج المتوازي أن يكون أكثر صعوبة بكثير من البرامج التسلسلية.
    • لحسن الحظ، هناك عدد من الأدوات الممتازة لتحليل أداء البرنامج المتوازي وضبطه.
    • لدى مستخدمو حوسبة ليفرمور امكانية الوصول إلى العديد من هذه الأدوات، ومعظمها متاح في جميع عناقيد الإنتاج.
    • بعض نقاط البدء للأدوات المثبتة على أنظمة LC:
        ◦ صفحات ويب LC في https://hpc.llnl.gov/software/development-environment-software
        ◦ TAU : http://www.cs.uoregon.edu/research/tau/docs.php
        ◦ HPCToolkit  :http://hpctoolkit.org/documentation.html
        ◦ Open|Speedshop  :  http://www.openspeedshop.org/
        ◦ Vampir / Vampirtrace  : http://vampir.eu/
        ◦ Valgrind  :http://valgrind.org/
        ◦ PAPI  :http://icl.cs.utk.edu/papi/
        ◦ Mpitrace : https://computing.llnl.gov/tutorials/bgq/index.html#mpitrace
        ◦ mpiP :http://mpip.sourceforge.net/
        ◦ MemP  :  http://memp.sourceforge.net/

أمثلة متوازية

معالجة المصفوفة - Array Processing


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

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


معالجة المصفوفة - Array Processing
الحل المتوازي 1
    • حساب العناصر المستقلة عن بعضها البعض - يؤدي إلى حل متوازي محرج.
    • يتم توزيع عناصر المصفوفات بالتساوي بحيث تمتلك كل عملية جزء من المصفوفة (مصفوفة فرعية).
        ◦ يتم اختيار مخطط التوزيع للوصول إلى الذاكرة بكفاءة.على سبيل المثال خطوة واسعة لوحدة (خطوة واسعة لـ 1) عبر المصفوفات الفرعية. تزيد خطوة وحدة من استخدام المخبأة/الذاكرة.
        ◦ بما أنه من المرغوب فيه الحصول على خطوة وحدة من خلال مصفوفة فرعية، فإن اختيار مخطط التوزيع يعتمد على لغة البرمجة. للمزيد من الخيارات، راجع بلوك - الرسم البياني للتوزيعات الدوريةبلوك - مخطط توزيعات دورية.


    • يضمن الحساب المستقل من عناصر المصفوفة عدم الحاجة للاتصال أو التزامن بين المهام.
    • بما أن كمية العمل موزعة بالتساوي عبر العمليات، فلا ينبغي أن تكون هناك مخاوف تتعلق بموازنة التحميل.
    • بعد توزيع المصفوفة ، تنفذ كل مهمة جزء من حلقة تكرار المقابلة للبيانات التي تمتلكها.
على سبيل المثال، تظهر توزيعات فورتران (عمود - رئيسي) وC (صف - رئيسي):
 

do j = mystart, myend
do i = 1, n
a(i,j) = fcn(i,j)
end do
end do

for i (i = mystart; i 


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

find out if I am MASTER or WORKER
   
if I am MASTER
   
  initialize the array
  send each WORKER info on part of array it owns
  send each WORKER its portion of initial array
   
  receive from each WORKER results
   
else if I am WORKER
  receive from MASTER info on part of array I own
  receive from MASTER my portion of initial array

  # حساب نصيبي من المصفوفة
  do j = my first column,my last column
    do i = 1,n
      a(i,j) = fcn(i,j)
    end do
  end do

  send MASTER results

endif


    • أمثلة البرامج:
    • برنامج MPI في C:  https://computing.llnl.gov/tutorials/mpi/samples/C/mpi_array.c
    • برنامج MPI في فورتران:  https://computing.llnl.gov/tutorials/mpi/samples/Fortran/mpi_array.f

معالجة  المصفوفة


الحل المتوازي 2: تجمع المهام (Pool of Tasks)
    • أظهر حل المصفوفة السابق موازنة تحميل ثابتة:
        ◦ كل مهمة لديها كمية ثابتة من العمل للقيام بها
        ◦ قد يكون وقت الخمول كبيرا للمعالجات الأسرع أو الأكثر خفة في التحميل – تحدد المهام الأبطأ الأداء العام.
    • لا تعد موازنة التحميل الثابتة عادة مصدر قلق كبير إذا كانت جميع المهام تؤدي نفس كمية العمل على أجهزة مماثلة.
    • إذا كانت لديك مشكلة في موازنة التحميل (بعض المهام تعمل بشكل أسرع من غيرها)، يمكنك الاستفادة من استخدام نخطط "تجمع المهام".
    • مخطط تجمع المهام - Pool of Tasks Scheme :
    • يتم استخدام عمليتان
عملية رئيسية:
        ◦ تحتضن تجمع المهام للعمليات العاملة للقيام بها
        ◦ يرسل العامل المهمة عند طلبها
        ◦ تجمع النتائج من العمليات العاملة
عملية عاملة: تفعل ما يلي مرارا وتكرارا
        ◦ تحصل على مهمة من العملية الرئيسية
        ◦ تنفذ الحساب
        ◦ ترسل النتائج إلى العملية الرئيسية
    • لا تعرف العمليات العاملة قبليا وقت تشغيل أي جزء من المصفوفة التي سوف يتعاملن معها أو كمية المهام التي سوف يقمن بأدائها.
    • تحدث موازنة التحميل الديناميكي في وقت التشغيل: تحصل المهام الأسرع على المزيد من العمل للقيام به.
    • حل الشفرة المستعارة: الشفرة باللون الأحمر تتغير للتوازي.

find out if I am MASTER or WORKER

if I am MASTER

  do until no more jobs
    if request send to WORKER next job
    else receive results from WORKER
  end do

else if I am WORKER

  do until no more jobs
    request job from MASTER
    receive from MASTER next job

    calculate array element: a(i,j) = fcn(i,j)

    send results to MASTER
  end do

endif

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

حساب PI


    • يمكن حساب قيمة PI بطرق مختلفة. إذا اعتبرنا طريقة مونتي كارلو (Monte Carlo) لتقريب : PI
        ◦ إدراج دائرة بنصف قطر r في مربع بطول  2r
        ◦ مساحة الدائرة هي Πr 2  ومساحة المربع 4r 2
        ◦ نسبة مساحة الدائرة من مساحة المربع هي:

Πr 2 / 4r 2 = Π / 4


        ◦ إذا كنت تولد عشوائيا N نقطة داخل المربع ، تقريبا
N * Π / 4من تلك النقاط ( M ) يجب أن تقع داخل الدائرة.
        ◦ Π  تقارب التالي:

N * Π / 4 = M
Π / 4 = M / N
Π = 4 * M / N


        ◦ لاحظ أن زيادة عدد النقاط يولد و  يحسن التقريب.
    • الشفرة المستعارة التسلسلية لهذا الإجراء:

npoints = 10000
circle_count = 0

do j = 1,npoints
  generate 2 random numbers between 0 and 1
  xcoordinate = random1
  ycoordinate = random2
  if (xcoordinate, ycoordinate) inside circle
  then circle_count = circle_count + 1
end do

PI = 4.0*circle_count/npoints


    • المشكلة مكثفة حسابيا - معظم الوقت ينفق في حلقة
    • أسئلة يجب طرحها:
        ◦ هل هذه المشكلة قادرة على أن تكون متوازية؟
        ◦ كيف يمكن تقسيم المشكلة؟
        ◦ هل تحتاج الى الاتصالات؟
        ◦ هل هناك أي تبعيات للبيانات؟
        ◦ هل هناك حاجة إلى التزامن؟
        ◦ هل تكون موازنة التحميل مصدر قلق؟

حساب PI
الحل المتوازي


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



npoints = 10000
circle_count = 0

p = number of tasks
num = npoints/p

find out if I am MASTER or WORKER

do j = 1,num
  generate 2 random numbers between 0 and 1
  xcoordinate = random1
  ycoordinate = random2
  if (xcoordinate, ycoordinate) inside circle
  then circle_count = circle_count + 1
end do

if I am MASTER

  receive from WORKERS their circle_counts
  compute PI (use MASTER and WORKER calculations)

else if I am WORKER

  send to MASTER circle_count

endif


    • أمثلة البرامج:
    • برنامج MPI  في :   C https://computing.llnl.gov/tutorials/mpi/samples/C/mpi_pi_reduce.c
    • برنامج MPI في :   Fortran https://computing.llnl.gov/tutorials/mpi/samples/Fortran/mpi_pi_reduce.f


المعادلة الحرارية البسيطة - Simple Heat Equation


    • معظم المشاكل في الحوسبة المتوازية تتطلب التواصل بين المهام. وهناك عدد من المشاكل المشتركة تتطلب التواصل مع المهام المجاورة.
    • تصف معادلة الحرارة 2-D تغير درجة الحرارة مع مرور الوقت، نظرا لتوزيع درجة الحرارة الأولية وظروف الحدود.
    • يتم استخدام مخطط الفرق المحدود لحل معادلة الحرارة عدديا على منطقة مربعة.
        ◦ تمثل عناصر المصفوفة ثنائية الأبعاد درجة الحرارة عند النقاط على المربع.
        ◦ درجة الحرارة الأولية هي صفر على الحدود ومرتفعة في الوسط.
        ◦ تجرى درجة الحرارة الحدودية عند الصفر.
        ◦ يتم استخدام خوارزمية الوقت يخطو.
    • لحساب العنصر يتم  الاعتماد على قيم العنصر المجاورة:

    • يحتوي البرنامج التسلسلي على شفرة مثل:

do iy = 2, ny - 1
  do ix = 2, nx - 1
    u2(ix, iy) =  u1(ix, iy)  +
        cx * (u1(ix+1,iy) + u1(ix-1,iy) - 2.*u1(ix,iy)) +
        cy * (u1(ix,iy+1) + u1(ix,iy-1) - 2.*u1(ix,iy))
  end do
end do

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

المعادلة الحرارية البسيطة
الحل المتوازي


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

    • التنفيذ كنموذج: SPMD
        ◦ ترسل العملية الرئيسية المعلومات الأولية للعمليات العاملة، ثم تنتظر لجمع النتائج من جميع العاملات
        ◦ تحسب العمليات العاملة الحل ضمن عدد محدد من الخطوات الزمنية، وتتواصل عند الضرورة مع العمليات المجاورة
        ◦ حل الشفرة المستعارة: المميزة باللون الأحمر تتغير للتوازي.

find out if I am MASTER or WORKER

if I am MASTER
  initialize array
  send each WORKER starting info and subarray
  receive results from each WORKER

else if I am WORKER
  receive from MASTER starting info and subarray

  # Perform time steps
  do t = 1, nsteps
    update time
    send neighbors my border info
    receive from neighbors their border info
    update my portion of solution array
    
  end do
 
  send MASTER results
      
endif


    • أمثلة البرامج:
    • برنامج MPI  في :   C https://computing.llnl.gov/tutorials/mpi/samples/C/mpi_heat2D.c
    • برنامج MPI في :   Fortran https://computing.llnl.gov/tutorials/mpi/samples/Fortran/mpi_heat2D.f

معادلة الموجة 1-D  – 1-D Wave Equation


    • في هذا المثال، يتم حساب الاتساع على طول سلسلة موحدة، وتهتز بعد انقضاء فترة محددة من الزمن.
    • ويشمل الحساب ما يلي:
        ◦ الاتساع على المحور y
        ◦ i كمؤشر موضع على طول المحور x
        ◦ نقاط العقدة المفروضة على طول السلسلة
        ◦ تحديث السعة في خطوات زمنية منفصلة.

    • والمعادلة التي يتعين حلها هي معادلة الموجة أحادية البعد:

 A(i,t+1) = (2.0 * A(i,t)) - A(i,t-1) + (c * (A(i-1,t) - (2.0 * A(i,t)) + A(i+1,t))) 


حيث c ثابت
    • لاحظ أن السعة ستعتمد على الجداول الزمنية السابقة (t, t-1) والنقاط المجاورة  (i-1, i+1)
    • أسئلة يجب طرحها:
        ◦ هل هذه المشكلة قادرة على أن تكون متوازية؟
        ◦ كيف يمكن تقسيم المشكلة؟
        ◦ هل تحتاج للاتصالات؟
        ◦ هل هناك أي تبعيات للبيانات؟
        ◦ هل هناك حاجة إلى التزامن؟
        ◦ هل تكون موازنة التحميل مصدر قلق؟

معادلة الموجة 1-D - 1-D Wave Equation
الحل المتوازي
    • هذا مثال آخر عن مشكلة تتعلق بتبعيات البيانات. وسيتضمن الحل المتوازي كلا من الاتصالات والتزامن.
    • يتم تقسيم مصفوفة السعة بأكملها وتوزيعها على أنها مصفوفات فرعية لجميع المهام. كل مهمة تمتلك جزءا متساويا من إجمالي المصفوفة.
    • موازنة التحميل: تتطلب جميع النقاط عملا متساويا، لذلك يجب تقسيم النقاط بالتساوي
    • من شأن تفكيك الكتلة أن يقسم العمل إلى عدد من المهام كقطع، مما يسمح لكل مهمة بتملك نقاط بيانات متجاورة في الغالب.
    • تحتاج الاتصالات فقط ان تحدث على حدود البيانات. وكلما زاد حجم الكتلة كلما قل الاتصال على حدود البيانات.

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

find out number of tasks and task identities

#Identify left and right neighbors
left_neighbor = mytaskid - 1
right_neighbor = mytaskid +1
if mytaskid = first then left_neigbor = last
if mytaskid = last then right_neighbor = first

find out if I am MASTER or WORKER
if I am MASTER
  initialize array
  send each WORKER starting info and subarray
else if I am WORKER`
  receive starting info and subarray from MASTER
endif

#Perform time steps
#In this example the master participates in calculations
do t = 1, nsteps
  send left endpoint to left neighbor
  receive left endpoint from right neighbor
  send right endpoint to right neighbor
  receive right endpoint from left neighbor

  #Update points along line
  do i = 1, npoints
    newval(i) = (2.0 * values(i)) - oldval(i)
    + (sqtau * (values(i-1) - (2.0 * values(i)) + values(i+1)))
  end do

end do

#Collect results and write to file
if I am MASTER
  receive results from each WORKER
  write results to file
else if I am WORKER
  send results to MASTER
endif


    • أمثلة البرامج:
    • برنامج MPI في C: https://computing.llnl.gov/tutorials/mpi/samples/C/mpi_wave.c
    • برنامج MPI في Fortran: https://computing.llnl.gov/tutorials/mpi/samples/Fortran/mpi_wave.f
هذا يكون البرنامج التعليمي قد اكتمل.
يرجى إكمال نموذج التقييم عبر الإنترنت

المراجع والمزيد من المعلومات


    • الكاتب :بليز بارني (Blaise Barney)، حوسبة ليفرمور.
    • سيؤدي بك البحث عن "البرمجة المتوازية" أو "الحوسبة المتوازية" على WWW إلى مجموعة واسعة من المعلومات.
    • اقتراحات للقراءة:
        ◦ "تصميم وبناء برامج متوازية." إيان فوستر(Ian Foster) .
        ◦ " مدخل إلى الحوسبة المتوازية ." أنانث غراما (Ananth Grama)، أنشول غوبتا (Anshul Gupta)، جورج كاريبيس (George Karypis)، فيبين كومار (Vipin Kumar) .
        ◦ "نظرة عامة على الحواسيب الفائقة الأخيرة ." آج فان دير ستين (A.J. van der Steen)، جاك دونجارا (Jack Dongarra) .
    • تم إنشاء الصور/الرسومات من قبل المؤلف، أو من قبل الموظفين الآخرين لـ LLNL ، أو تم الحصول عليها من غير حقوق طبع ونشر، أو من مصادر حكومية أو عامة (مثل  http://commons.wikimedia.org/)، أو تم استخدامها بإذن من المؤلفين من عروض أخرى وصفحات ويب.
    • التاريخ: تم تطوير هذه المواد من المصادر التالية، التي لم تعد محفوظة أو متاحة.
        ◦ برامج تعليمية موجودة في "ورشة البرمجة المتوازية SP" لمركزMaui High Performance Computing.
        ◦  برامج تعليمية موجودة في صفحة الويب "التعليم والتدريب" لمركز كورنيل ثوري (Cornell Theory).

Fahad الثلاثاء, 2017/09/19 - 2:13م
disqus

September 20th 2017, 4:01 am

إطلاق كتاب «نحو فهم أعمق لتقنيات HTML5

وادي التقنية

إطلاق كتاب «نحو فهم أعمق لتقنيات HTML5

يواصل المهندس عبداللطيف  إيميش  عمله الدؤوب  في ترجمة  الكتب التقنية المتعلقة بتقنيات الوب الحديثة  واليوم يصدر  كتاب «نحو فهم أعمق لتقنيات HTML5» المترجم من كتاب «Dive Into HTML5» للمؤلف Mark Pilgrim والذي نَشَرتهُ O’Reilly لاحقًا باسم «HTML5: Up and Running».
حيث يقول: " لا يخفى على أحدٍ سطوع نجم لغة HTML5 وانتشار تطبيقاتها انتشارًا كبيرًا، إذ ذاع صيتها وأصبحت حديث الكثيرين لما تحتويه من تقنياتٍ مهمةٍ لتطبيقات الويب، فهي تتضمن كل ما يتعلق بتشغيل مقاطع الفيديو على صفحات الويب، وتوليد الرسوميات ديناميكيًا، وتحديد الموقع الجغرافي للمستخدم، وإتاحة استعمل تطبيقات الويب دون اتصال، إضافةً إلى تنظيمها لبنية المستند الهيكلية تنظيمًا دقيقًا يسهِّل تفسيرها من المتصفحات والبرمجيات الأخرى، والمزيد…
لذا جاء هذا الكتاب محاولًا تقديم مفاهيم HTML5 وتقنياتها وطرائق استخدامها إلى القارئ العربي، مدعمًا بأمثلة علميةٍ تسهّل توضيح الأفكار، وحاولتُ فيه توفير أحدث المعلومات عن دعم تلك التقنيات قدر المستطاع، وأعدت النظر في بعض الفصول لتناسب التغييرات التي طرأت حديثًا. "

ينقسم الكتاب إلى أحد عشر فصلًا وهذه عناوين أبرز الفصول:
    لمحة تاريخية عن HTML
    اكتشاف دعم ميزات HTML5
    البنية الهيكلية لمستندات HTML5
    الرسم عبر العنصر canvas
    الفيديو
    تحديد الموقع الجغرافي
    التخزين المحلي
    تطبيقات الويب التي تعمل دون اتصال
    النماذج في HTML5
    البيانات الوصفية
    التعامل مع تأريخ المتصفح
  الكتاب مرخص بموجب رخصة المشاع الإبداعي نسب المُصنَّف - الترخيص بالمثل 4.0 (CC BY-SA 4.0). شعار HTML5 والشعارات البقية مرخصة برخصة المشاع الإبداعي CC BY 3.0.

لتنزيل هذا الكتاب: اضغط هنا.


يمكنك الاطلاع أيضًا على الكتب الأخرى التي عمل عليها عبد اللطيف ايمش:
- تعلم البرمجة بلغة PHP
- سطر أوامر لينكس
- دليل إدارة خواديم أوبنتو
- تعلم JavaScript
- تعلم jQuery

Fahad الثلاثاء, 2017/08/15 - 10:32م
disqus

August 15th 2017, 2:59 pm

صدور ليبر أفيس ٥.٤

وادي التقنية

صدور ليبر أفيس ٥.٤

أعلنت منظمة المستند عن إطلاق الإصدارة ٥.٤ من الحزمة المكتبية الحرة ليبر أُفيس، هذه الإصدارة جاءت بالعديد من المميزات الجديدة وخصوصا تحسين التوافق مع حزمة مايكروسوفت أفيس.
لعل أهم ميزة في هذه الإصدارة هي إعادة كتابة وحدة حفظ واستيراد ملفات مايكروسوفت أفيس بحيث أصبحت أكثر كفاءة وتنتج حجما أصغر ، وهذا يبسط ويسهل عملية توافق الملفات بين مايكروسوفت أفيس ليبرأفيس.


أهم المميزات العامة في ليبر أفيس ٥.٤:
١- إضافة وحدة ألوان جديدة مبنية على نموذج ألوان PYB.
٢- إضافة دعم صور EMF التي تنتجها حزمة مايكروسوفت أفيس.
٣- أصبحت الملفات PDF المستوردة في ليبرأفيس أكثر جودة ودقة.
٤- دعم مفاتيح التشفير OpenPGP لتوقيع ملفات ليبر أوفيس على لينكس.
 
أهم مميزات رايتر:
١- دعم قوالب مايكروسوفت وورد DOTM
٢- إضافة ميزة إضافة علامة مائية في المستند عن طريق قائمة التنسيق.
٣- أصبح التعامل مع الهوامش والتعليقات النهائية أكثر سهولة.

أهم مميزات كالك:
١- دعم مخططات pivot  التي تستخدم جداول pivot بحيث تتحدث تلقائيا عند تحديث الجداول.
٢- أصبح التحكم في التعليقات أسهل باستخدام قائمة الأوامر.

أهم مميزات إمبرس:
١- إضافة التحكم في زاوية الكائن المكرر وحفظها للاستخدام القادم.


لتنزيل هذه الإصدارة من هنا.

Fahad الأحد, 2017/07/30 - 9:29ص
disqus

July 30th 2017, 1:51 am

نبذة عن المعالجات متعددة النوايا ( Multi-Core Processors )

وادي التقنية

نبذة عن المعالجات متعددة النوايا ( Multi-Core Processors )

بقلم/ خالد القرني

مقدمة

أصبحت المعالجات متعددة النوايا (Multi-Core Processors ) لدى التكنولوجيين الاتجاه المرغوب به الآن في عالم المعالجات الحاسوبية وذلك عندما وصلت المعالجات أحادية النوايا ( Single-Core Processors ) الحد الأقصى الفيزيائي لها من التعقيد والسرعة. واستنادًا على بعض قوائم المعالجات الكبيرة والسريعة المنشورة بواسطة موقع ( Top500 ) ، هناك إشارة فعلية إلى أن 20% من المعالجات الحديثة تنتمي إلى عائلة المعالجات متعددة النوايا.

صرحت شركة انتل ( Intel) ،التي تعتبر من أحد عمالقة شركات صناعة المعالجات الحاسوبية، أن زيادة سرعة معالجات الجيل القادم من النوايا الأحادية بزيادة ترددها ( Frequency ) صار من الصعب جدا هذه الأيام ، وذلك بسبب الارتفاع الملموس في حرارتها أثناء إنجازها المهمات المختلفة وأيضاً استهلاكها الزائد من الطاقة ( Power Consumption ).

ونتيجة لهذا العائقان الرئيسيان اللذان أثّرا على معدل زيادة سرعة نبذ الساعة لهذه المعالجات ( Clock Rate ) ، قام المسؤولون في صناعة الحاسبات الآلية بالتفكير في تصميم المعالجات ذات النوايا المتعددة.

 

لماذا سميت المعالجات ذات النوايا المتعددة بهذا الاسم ؟

التسمية لهذه المعالجات بهذا الاسم مأخوذة من طريقة تصنيعها والطريقة هي وضع معالجين ( CPUs ) أو اكثر في نفس الدائرة الكهربائية المتكاملة ( Integrated Circuit ) ، الاسم المختصر منها (IC )، وبمعنى آخر يُرَكَّب معالجان أو اكثر في شريحة كهربائية واحدة ( Chip )،كما هو موضح في الشكل التالي:


1- معالج مزدوج ذو رباعي النوايا (Quad-core dual-processor system)


تسمية أخرى لهذه المعالجات هى شريحة المعالجات المتعددة ( Chip Multiprocessors) ، الاسم المختصر منها ( CMP )

ما فوائد المعالجات ذات النوايا المتعددة ؟

على سبيل الإيجاز نسرد هنا بعض فوائد المعالجات ذات النوايا المتعددة التي تميزت بها عن المعالجات ذات النواة الواحدة:

  1. من الطبيعي زيادة سرعة أداء عمل ما عندما يُقسَّم ويُنجز عن طريق أكثر من شخص في وقت واحد ، فكما هو الحال مع هذه المعالجات فهي افتراضيًا تزيد سرعة التطبيقات المختلفة تقريبًا إلى 30% وذلك بتقسيم كميات العمل المعطاة ( Work Loading ) إلى النوايا (Cores) المختلفة. الشكل التالي يوضح مقارنة بسيطة بين معالج أحادي النواة وآخر متعدد النوايا من ناحية السرعة المسجلة من بعض نتائج القياسات المحددة (Benchmarks ) لبعض البرامج والتطبيقات .

  1. تنجز معالجة المهام المختلفة بتردد منخفض ( Low Frequency ) وباستهلاك طاقة أقل( Low Power Consumption ) لكل نواة في الشريحة.

  2. الانسجام والتناغم (Compatibility) التام عند تصميم وبناء نوايا مختلفة مع بعضها البعض. فعلى سبيل المثال نستطيع وضع النوايا البطئية مع السريعة والنوايا ذات مجموعات تعليمات مختلفة ( Instruction Sets ) مع بعضها البعض. وهذا الأسلوب من التصاميم يُلَقَّب بالمعالجات المتعددة ذات الخواص والعناصر المختلفة (Heterogeneous CMP ).

  3. الفعالية الملحوظة وذلك لأن المعالجات ذات النوايا المتعددة كما أشرنا إليه سابقًا تُقَلِّصُ وتخفض الطاقة المستهلكة وبالتالي يؤدي هذا إلى زيادة فعاليتها وقدرتها على إنجاز المهام المختلفة.

  4. المقدرة على تزويد الموازنة الضرورية بين السرعة ( Performance ) وبين الطاقة المستهلكة.

 

السرعة الزائدة والطاقة المتوفرة من المعالجات ذات النوايا المختلفة

السرعات المكتسبة من هذه المعالجات تزيد تنفيذ المهام بمعدل عالٍ يصل إلى عشر أضعاف (10X) سرعة المعالجات ذات النوايا الأحادية، بغض النظر عن نوع المهام سواء أكانت المهام تسلسلية (Sequence) أم متوازية ( Parallel)

وأيضًا يوفِّر ما يقارب عشر أضعاف (10X) الطاقة الحرارية ( Heat Dissipation )الناتجة عن المعالجات ذات النوايا الأحادية، وذلك عن طريق إنقاص التردد كما أشير سابقا.

الشركات المصنعة للمعالجات ذات النوايا المتعددة

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

  1. AMD

من أمثلة المعالجات التي أصدرتها هذه الشركة (Opteron enterprise-server Multicore) و

(desktop chips Athlon 64) و(Sempron desktop chips) وأيضًا (Turion mobile chips).

  1. Intel

هذه الشركة تملك ما يقارب 16 مشروع لتصميم معالجات مختلفة ذو نوايا متعددة منها:

أول معالج اصدر عنها في 2001 وهو عباره عن dual-core server chip, the power 4 وفي نهاية العام نفسه أصدرت معالج آخر يعمل بسرعة أربعة أضعاف المعالج السابق. وعلى ضوء ذلك فقد اتحدت هذه الشركة مع كل من Sony و Toshiba لإخراج التصميم المعالج (Cell) المطور لتعامل مع الكميات الضخمة من المهام

(compute-intensive workloads) و النقل عريض النطاق للبيانات (broadband data transmission) و أخيرًا التعامل والمعالجة الاحترافية مع الوسائط المتعددة مثل الصورة والصوت (multimedia processing).

  1. SUN

في عام 1999 أصدرت معالج بيانات صغير الحجم ويسمى (MAJC) لكنه لم ينتشر ولم يستخدم على نطاق واسع لكنه استخدم كمعالج ضمني ومدمج (embedded-systems) لبعض الأجهزة الإلكترونية

ملخص المعالجات ذات النوايا المختلفة

المعالجات متعددة النوايا (Multi-Core Processors ) مقارنةً مع المعالجات النوايا الأحادية ( Single-Core Processors ) تُنجز عدة مهام خلال نبض ساعات قليلة، وصممت لتعمل بتردد منخفض ( Low Frequency ) الذي ينتج لنا استهلاك طاقة منخفضة ( Low Consumption ) والذي يؤدي إلى زيادة فعالية أداء هذه المعالجات.

 

المصادر

  1. https://computing.llnl.gov/linux/slurm/dist_plane.html

  2. http://archive.cotsjournalonline.com/articles/view/100659

Fahad الخميس, 2017/07/27 - 10:46ص
disqus

July 27th 2017, 3:06 am

صدور فيدورا ٢٦

وادي التقنية

صدور فيدورا ٢٦

أعلن مجتمع توزيعة فيدورا عن إطلاق النسخة ٢٦ ، هذه النسخة جاءت بالعديد من المميزات الجديدة وشملت كل نسخ فيدورا لسطح المكتب و المخدمات و السحاب.
سأحاول تلخيص الجديد في  هذه الإصدارة ، ونبدأ بالمميزات التي تختص المستخدمين النهائيين، حيث أن  أهم جديد في هذه الإصدارة هي تضمينها بنسخة ٣.٢٤ من سطح مكتب جنوم، والتي جاءت بالعديد من المميزات أهمها الوضع الليلي، معلومات الطقس، وتطبيق وصفات الطبيخ. أما بالنسبة لمدراء الأنظمة،  لعل أهم ميزة هي تضمين هذه النسخة  Modular Server Preview  وهو مخدم يعمل بفكرة التوزيعة المتدحرجة،  الفكرة بعدها ما زالت تحت الاختبار والتجريب ويتوقع أن تعمم لكل النسخ بعد استقراراها.  من المميزات أيضا هو تفعيل سياسة تشفير شاملة تغطى النظام بالكامل.
أما بالنسبة للمطورين فقد حدثت لغات البرمجة إلى آخر الإصدارات من مثل اعتماد GCC 7 و Golang 1.8 وبايثون ٣.٦ و روبي ٢.٤ و php 7.1
لتنزيل هذه فيدورا ٢٦ من هنا.

Fahad الأربعاء, 2017/07/12 - 10:01ص
disqus

July 12th 2017, 2:27 am

صدور دبيان ٩

وادي التقنية

صدور دبيان ٩

بعد ٢٦ شهرا من التطوير، أعلن مجتمع دبيان عن إصدار دبيان ٩ تحت مسمى "Stretch" والتي ستكون مدعومة لخمس سنوات من الآن.  من الأشياء الجديدة هو استبدال قاعدة بيانات MySQL إلى MariaDB ، وإرجاع متصفح الانترنت فيرفوكس وعميل البريد الإلكتروني ثندربرد بعد عشر سنوات من القطيعة مع مؤسسة موزيلا.
أهم الحزم في هذه الإصدارة هي:

  • Apache 2.4.25
  • Asterisk 13.14.1
  • Chromium 59.0.3071.86
  • Firefox 45.9 (in the firefox-esr package)
  • GIMP 2.8.18
  • an updated version of the GNOME desktop environment 3.22
  • GNU Compiler Collection 6.3
  • GnuPG 2.1
  • Golang 1.7
  • KDE Frameworks 5.28, KDE Plasma 5.8, and KDE Applications 16.08 and 16.04 for PIM components
  • LibreOffice 5.2
  • Linux 4.9
  • MariaDB 10.1
  • MATE 1.16
  • OpenJDK 8
  • Perl 5.24
  • PHP 7.0
  • PostgreSQL 9.6
  • Python 2.7.13 and 3.5.3
  • Ruby 2.3
  • Samba 4.5
  • systemd 232
  • Thunderbird 45.8
  • Tomcat 8.5
  • Xen Hypervisor
  • the Xfce 4.12 desktop environment

لتنزيل هذه الإصدارة من هنا.

Fahad الأحد, 2017/06/18 - 2:33م
disqus

June 18th 2017, 6:51 am

صدور كدي بلازما ٥.١٠

وادي التقنية

صدور كدي بلازما ٥.١٠

أعلن مطوروا سطح المكتب كدي عن إصدار سطح المكتب بلازما ٥.١٠ ، هذه الإصدارة جاءت بالعديد من المميزات الجديدة وحسنت الكثير من الأدوات الموجودة سابقا في سطح المكتب كدي.
أهم مميزات هذه الإصدارة:
١- تحسين لوح مدير المهام، بحيث أصبح بالإمكان تجميع التطبيقات في مجموعة عن طريق الضغط على الزر الوسط في الفأرة.


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


٣- إظهار متحكمات الملتدميا على شاشة الإقفال.


٤- إضافة لوحة مفاتيح افتراضية في شاشة الدخول.


٥- الاستمرار في تطوير وتحسين دعم خادم ويلاند بحيث أضيف دعم مخططات لوحة المفاتيح ولكن دعم ويلاند لم يصل إلى مرحلة بأن ينصح في استخدامه بعد.

admin الخميس, 2017/06/01 - 1:30م
disqus

June 1st 2017, 5:42 am

إطلاق سكريبس ١.٥.٣ الداعم للغة العربية

وادي التقنية

إطلاق سكريبس ١.٥.٣ الداعم للغة العربية

أخيرا صدرت نسخة ١.٥.٣ التطويرية من برنامج النشر المكتبي سكريبس الحر ومفتوح المصدر، هذه النسخة تحمل الدعم الرسمي للغة العربية بحيث أصبح سكريبس يكتب العربية ويتعامل معها بشكل سلس جدا.
كنا قد أشرنا سابقا إلى إضافة دعم العربية في سكريبس بواسطة دعم من هيئة تقنية المعلومات في سلطنة عمان بحيث شكل فريق بيت تكنولوجيا مفتوحة المصدر HOST لدعم العربية في سكريبس وغيره من البرامج مفتوحة المصدر.
ما الجديد في سكريبس ١.٥.٣
١- إعادة كتابة وتطوير محرك تصيير النصوص ليدعم اللغات المعقدة من مثل العربية والهندية وغيرها من اللغات.
٢- إضافة دعم لأكثر من ٥٠٠ لغة في سكريبس.
٣- أصبح التعامل مع النصوص والتحرير أسرع في المستندات الكبيرة.
٤- إضافة ميزة معاينة الخطوط في نافذة تحرير النص.

تنزيل هذه الإصدارة:
لمنصة ويندوز هنا ، و ويندوز ٦٤ من هنا
لمنصة الماك من هنا
لمنصة أوبنتو من هنا.
لبقية توزيعات لينكس يرجى متابعة مستودعات البرامج للحصول عليها.

Fahad الاثنين, 2017/05/29 - 10:07ص
disqus

May 29th 2017, 2:38 am

صدور كتاب « تعلم jQuery »

وادي التقنية

صدور كتاب « تعلم jQuery »

وأخيرا، وبعد جهود مثابرة ومستمرة،  صدر كتاب «تعلم jQuery» الذي ترجمه عبد اللطيف ايمش من كتاب «jQuery Enlightnement» لصاحبه Cody Lindley.
يتناول هذا الكتاب مكتبة jQuery الشهيرة، ويبيّن آلية عملها، وطريقة استعمالها، شارحًا ذلك بأمثلةٍ عمليةٍ قابلةٍ للتجربة تجربةً حيةً مباشرةً.؛ هذا الكتاب موجَّهٌ للمبرمج صاحب المعرفة المتوسطة بمكتبة jQuery أو الذي تعامل مسبقًا مع مكتبة JavaScript أخرى.
قُسِّمَ هذا الكتاب إلى اثني عشر فصلًا ويقع في 240 صفحة، وهذه عناوين الفصول فيه:
- المفاهيم الأساسية في jQuery
- تحديد العناصر في jQuery
- التنقل في شجرة DOM
- تعديل شيفرات HTML
- نماذج HTML
- الأحداث في jQuery
- jQuery ومتصفح الويب
- الإضافات في jQuery
- تحسين أداء شيفرات jQuery
- المؤثرات في jQuery
- تقنية Ajax
- مواضيع متفرقة
هذا الكتاب حرٌ ومنشورٌ برخصة المشاع الإبداعي: نَسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0 (أي CC BY-NC-SA 4.0). تُرجِمَ هذا الكتاب بعد أخذ إذن المؤلف.
يجدر بالذكر أنَّ هذا الكتاب برعاية وادي التقنية، وقد نُشِرَ كتاب «تعلم JavaScript» مترجمًا للعربية ولنفس المؤلف في وقتٍ سابق [رابط].
لتنزيل هذا الكتاب: اضغط هنا.


يمكنك الاطلاع أيضًا على الكتب الأخرى التي عمل عليها عبد اللطيف ايمش:
- تعلم البرمجة بلغة PHP
- سطر أوامر لينكس
- دليل إدارة خواديم أوبنتو
- تعلم JavaScript

 

 

Fahad الأربعاء, 2017/05/03 - 11:29ص
disqus

May 3rd 2017, 3:53 am

مدخل إلى تطبيق الرسم Krita لمستخدمي الفوتوشوب

وادي التقنية

مدخل إلى تطبيق الرسم Krita لمستخدمي الفوتوشوب

مقدمة

إن كنت من مستخدمي الفوتوشوب فهذه المقالة خصَّصت لك لتعريفك بتطبيق الرسمKrtia وشرح الأشياء المتشابهة بين التطبيقين بهدف الانتقال بسهولة وسلاسة إلى Krita والعمل عليه بفعالية كبيرة مشابهة لتلك على الفوتوشوب. إنَّ Krita هو تطبيق رسم رقمي ثنائي الأبعاد أمَّا الفوتوشوب فهو تطبيق يُستخدم للتعديل على الصور. يحتوي الفوتوشوب أدوات ومميزات كثيرة تفوق تلك المميزات في Krita ولكنَّ الأخير أقوى بكثير في مجال الرسم الرقمي، وعندما تعتاد على استخدام Krita ستجد فيه أدوات ومميزات لا تتوافر في الفوتوشوب.

إصدار Krita الذي سنشرح عليه هو 2.9 وإصدار الفوتوشوب هو CS2 و CS3، ولا تقلق إذا تغيَّر الإصدار لأنَّ الأساسيات تبقى ثابتة.

أساسيات استخدام Krita

يغطي هذا القسم كيفية استخدام الأدوات الأساسية في Krita والمشابهة لتلك الموجودة في الفوتوشوب.

المعاينة والإظهار

التنقُّل

يمكن التنقُّل ضمن ملفك بعدَّة طرق منها:

  • عجلة الفأرة: تحريكها للأمام والخلف يتحكم بحجم الإظهار عبر التصغير والتكبير، والضغط عليها  يُمسك الصورة ويحركها للانتقال إلى أجزاء منها.

  • لوحة المفاتيح: ينوب عن تحريك عجلة الفأرة في لوحة المفاتيح ضغط الزرين + أو – وينوب عن ضغط عجلة الفأرة زر المسطرة لأداء الوظيفة نفسها. ويمكن ضغط Ctrl + Space أو Ctrl + Alt + Space للتكبير أو التصغير.

التدوير

يمكن تدوير لوحة الرسم بضغط Shift + Space أو ‎Ctrl + [‎ أوCtrl + [ أو يمكن أيضًا من مجموعة الأرقام اليمينية ضغط 4 أو 6 للتدوير و 5 لإعادة الشكل لوضعه الأصلي.

الانعكاس

يمكن تطبيق الانعكاس Mirror على لوحتك بضغط M بعد تحديدها.

تحريك وتغيير الشكل

توجد الأداتان التحريك Move والتغيير Trasform في شريط الأدوات، بالإضافة إلى استخدام الاختصارات وهي T لتحريك طبقة أو شكل ما، وهي الأداة نفسها في فوتوشوب عند ضغط Ctrl، و Ctrl + T للتعديل على الشكل. وبعد الانتهاء منها اضغط B للعودة إلى الفرشاة، ولا تنس ضغط Enter لتطبيق التغيرات التي أجريتها باستخدام أداة التشويه، وتطبِّق التغييرات تلقائيًا عند التحريك.

التحديد

لا تستطيع في Krita استخدام Alt أو Shift لتحديد مجموعة من العناصر أو إضافة أو إزالة عنصر جديد من مجموعة محدَّدة سابقًا وهذا مشابه للفوتوشوب كما تعلم. يوفر Krita أدوات فرعية تظهر كأيقونات في واجهة التطبيق منها أداة التحديد، وعند انتقائها تُتاح لدينا بعض الخيارات التي نصل إليها بضغط:

  • R: إعادة تحديد عناصر.

  • T: مقاطعة مجموعة من العناصر ذات خاصية معينة وتحديدها.

  • A: إضافة عناصر جديدة لمجموعة محدَّدة سابقًا.

  • S: إزالة عنصر أو أكثر من مجموعة محدَّدة سابقًا.

إن أردت تحريك مجموعة من العناصر بالضغط على Ctrl كما في الفوتوشوب فلن تستطيع، بل اضغط على T ثمَّ اختر أداة التحريك بدلًا من بذلك.

إليك أيضًا بعض النصائح المفيدة:

  • إذا كنت تريد وضع مجموعة أو أشياء محدَّدة ضمن طبقة فاذهب بعد اختيارها إلى شريط أدوات الطبقات واضغط بالزر الأيمن عليه ثم اختر (Select opaque).

  • يمكنك استخدام أداة تحديد المضلع لتحديد ما بداخله عبر نقرتين متتاليتين بالفأرة أو ضغط Shift ثمَّ الزر الأيسر  وافتح مضلَّع لتحديد ما بداخله.

  • تستطيع تكبير العناصر المحدَّدة أو تصغيرها منSelect → Scale، كما يوجد ضمن القائمة السابقة خيارات كثيرة سأتركها لك لاكتشافها.

يوجد أيضًا بعض الاختصارات التي تفيدك في التحديد منها:

  • Ctrl + H: إظهار أو إخفاء التحديد.

  • Ctrl + A: تحديد الكل.

  • Ctrl + Shift + A: إلغاء تحديد الكل.

ملاحظة لمستخدمي Gimp: عند تحديد عناصر ونسخها عبر Ctrl + C ثمَّ لصقها Ctrl + V فإنَّ Krtia ينشئ طبقة جديدة ويضع العناصر فيها. أو إذا أردنا نقل عناصر إلى طبقة موجودة نختار تلك العناصر وننقلها إلى الطبقة بضغط T ثمَّ اختيار أداة التحريك (Move tool) من خيارات الأداة.

التحكم بالطبقات

نستعرض الاختصارات التالية الموجودة في فوتوشوب و Krita أيضًا وهي:

  • Ctrl + J: مضاعفة الطبقة.

  • Ctrl + E: دمج الطبقات.

  • Ctrl + Shift + E: إلغاء الدمج، وهو نفس الاختصار Ctrl + Shift + M في فوتوشوب.

  • Ins: إنشاء طبقة رسم جديدة.

المجموعات وأساليب المزج

يوفر Krita أساليب مزج Blending Mode لتطبيقها على الطبقات ضمن المجموعة وإضافة تأثيرات عليها، وإذا احتوت المجموعة على مستويات متعدِّدة فإن أسلوب المزج يُطبق على المستوى الأول منها خلافًا للفوتوشوب، وقد يكون ذلك مفاجئًا لمستخدميه.

تحريك الطبقات وإدخالها ضن مجموعة

تستطيع تحديد طبقات متعدِّدة باختيارها مع استمرار الضغط على Shift كما في فوتوشوب ثمَّ تحريكها إلى مجموعة طبقات Layer Groub فتنتقل الطبقات المحدَّدة إليها. انتبه إلى عدم امكانية تطبيق مرشِّح Filter على مجموعة لتطبيق تأثيرات على كامل طبقاتها.

أقنعة القطع

لا تتوفر خاصيَّة أقنعة القطع Clipping Masks في Krita ولكن يوجد بديل آخر لأداء الوظيفة نفسها وهي Alpha-inheritance حيث ضع الطبقة ذات الشكل الذي تريد اقتصاصه من الصورة أسفل المجموعة وفعِّل الخيار (inherit alpha) -لاحظ وجود أيقونة بشكل a بجانب الطبقة- للطبقات الأعلى منها.

pha inheritance.png صورة widget

يمكن القيام بالعملية السابقة تلقائيًّا عبر الاختصار Ctrl + Shift + G حيث تُنشأ مجموعة بطبقة أساسيَّة في الأسفل وطبقات أخرى أعلى منها مع تفعيل خاصيَّة (inherit alpha) عليها .

الوضع Pass-through

أصبحت الإصدارات الحالية من Krita تمتلك الوضع Pass-through الموجود في الفوتوشوب والذي يزود الطبقة بخاصيَّة إضافية لتبدو وكأنها ليست من ضمن المجموعة ويمكن تطبيق أسلوب مزج بينها وبين طبقات أخرى من الملف، وهذا الوضع ليس من ضمن أساليب المزج وتجده بجانب الخيار Inherit alpha.

الطبقات الذكيَّة

يمتلك Krita عوضًا عن الطبقات الذكيَّة Smart layers التي يمكن تطبيق تعديلات غير مُخرِّبة عليها مجموعةً من الخيارات والوظائف وهي:

  • طبقات الملفات File layers: ترتبط هذه الطبقات مع صور من خارج الملف وتُعدَّل تلقائيًّا عند تعديل الصور الأصليَّة تلك.

  • الطبقات المنسوخة Clone layers: إذا حدَّدت طبقة ما ثمَّ اخترت إنشاء طبقة جديدة من هذا النوع تنشأ طبقة طبق الأصل عن الطبقة المُحدَّدة. لا يمكن التعديل على هذا النوع من الطبقات وعند الرسم على الطبقة الأصلية تُعدَّل هذه الطبقة تلقائيًّا.

  • أقنعة التعديل Transform Masks: تُستخدم للتعديل غير المُخرِّب مع جميع أنواع الطبقات.

  • مُرشحات الأقنعة Filter Masks: يمكن باستخدامها تطبيق المرشحات Filters غير المُخرِّبة على جميع أنواع الطبقات، ويطبَّق تأثير المرشِّح مكان تطبيق القناع.

أنماط الطبقات

يمتلك Krita أنماط الطبقات Layer Styles المشابهة لتلك الموجودة في فوتوشوب، ولإضافتها على الطبقة نضغط برز الفأرة الأيمن عليها ثمَّ نختار (Layerstyle). يستطيع Krita فتح وحفظ ملفات مكتبة الأنماط ASL.

أشياء إضافية

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

أدوات الرسم

تشَّكل أدوات الرسم نقطة القوة التي يتفوق بها Krita عن فوتوشوب لأنَّه تطبيق رسم رقمي كما عَلِمت، وهذه الأدوات كثيرة جدًا وكلٌّ منها يحتوي على العديد من الخيارات.

الأدوات

مصطلح الأدوات Tools في Krita لا يشابه نظيره الموجود في فوتوشوب، ففي Krita لن تجد الممحاة أو أداة الضباب Blur Tool ...إلخ. بل ستواجه أولًا تحديد الطريقة لرسم خطوطك وكيف ستبدو على اللوحة. عندما تختار أسلوب الرسم يمكنك آنذاك تحديد طرائق مختلفة لرسم لوحتك كالمحي وإضافة الغباش وغيرها، وكلُّ ذلك يُدار من قِبل "أنواع الفُرَش" وخياراتها. يوجد العديد من الفُرَش المحفوظة ضمن التطبيق والتي تدعى Brush presets، ويمكن أيضًا التعديل عليها من الخيارات وإنشاء فرشاة خاصَّة بك عبر الضغط على (Edit Brush Settings) في شريط الأدوات.

المحي

لا يعدُّ المحي أداةً في Krita ولكنَّه أسلوبًا من أساليب المزج حيث يمكن لأيَّة فرشاةٍ لديك أن تكون ممحاةً بضغط الزرE، وبإعادة ضغطه مرة أخرى تعود الفرشاة لنفس أسلوب المزج السابق.

اختصارات مفيدة

  • Shift: تكبير أو تصغير حجم الفرشاة، ويمكن أيضًا استخدام [ و ].

  • / : التبديل مع آخر أسلوبٍ استخدمته للفرشاة.

  • K و L: تُستخدم عند تحديد اللون كي يصبح أغمق أو أفتح.

  • I و 0: زيادة أو إنقاص درجة التعتيم opacity.

  • D: إعادة ضبط الألوان بحيث تكون سوداء في الواجهة وبيضاء في الخلفية.

  • X: لتبديل ألوان الخلفية مع الواجهة.

  • Shift + I | Shift + N | Shift + M: للوصول إلى "عارض الألوان" على لوحة الرسم.

ويمكنك بسهولة تغيير أي اختصار من Settings > Configure Shortcuts.

استقرار ونعومة المسار

يوفر Krita خيارات عديدة للتعامل مع استقرار Stabilization ونعومة Smoothing المسار المرسوم، خصوصًا ذلك المرسوم حرًّا باليد باستخدام أداة (paint with brush)، عبر خيارات الأداة (Tool Options).

ضبط الضغط عند الرسم

تطبيق Krita حساس للضغط عند رسم المنحنيات والخطوط، وإذا شعرت أنه يعطي ضغطًا كبيرًا أو صغيرًا عند الرسم فيمكنك ضبط تلك القيم عبر Settings > Configure Krita > Tablet Settings.

مرشحات التعديل

تستطيع استخدام مرشحات تقليدية كما في فوتوشوب لتعديل بعض الأشياء كاللون والتباين خلال الرسم ومنها:

  • Ctrl + L: لتعديل مستويات الإضاءة والعتمة tone-values للصورة.

  • Ctrl + U: لتعديل HSV/HSL وهي درجة اللون، ودرجة إشباعه، ودرجة الإضاءة.

  • Ctrl + I: عكس الألوان فالأبيض يصبح أسودًا.

الأدوات Burn / Blur / Dodge

توجد كأدواتٍ منفصلةٍ خلافًا للفوتوشوب، ويمكن استخدامها مع الفُرَش Brush Engine كما تُستخدم أغلب المرشِّحات.

القوالب

يمكنك تغيير قالب Krita المظلم من Settings > Themes، وإن لم تعجبك الألوان المحيطة بلوحة الرسم فيمكنك تخصيصها من Settings > Configure Krita > Display واختيار لونك المفضل.

ما الذي يمتلكه Krita زيادةً على الفوتوشوب

أشرنا سابقًا إلى أنَّ Krita متخصِّصٌ في مجال الرسم الرقمي فهو يحتوي على أدواتٍ تخصُّصيَّةٍ لهذا الغرض لا تتوفر في تطبيقات التعديل على الصور كالفوتوشوب. سنستعرض ما يلي بعضًا من هذه الأدوات.

أنواع الفُرَش

يحوي Krita الكثير من الفُرَش المتنوعة تدعى Brush Engins والتي تُعدِّل على النُقَط Pixels في لوحتك وتعطيها شكلًا معينًا. يمكن تخصيص الفرشاة والتعديل عليها بما يناسبك من إعدادات الفرشاة brush-settings الموجودة في شرط الأدوات أو عبر الاختصار F5.

اللوحة المنبثقة

تسمح اللوحة المنبثقة بالوصول السريع للفُرَش والألوان وغيرها بدلًا من استخدام زر الفأرة الأيمن حيث تظهر اللوحة، كما هو موضَّحٌ، عند اقتراب المؤشر منها، ويمكنك تخصيص الفرشاة المناسبة للعمل والأكثر استخدامًا ووضع اسم لها بضغط الزر الموجود أسفل يمين اللوحة.

أدوات التعديل

يمكن باستخدام هذه الأدوات التعديل على مجموعة وتطبيق التأثيرات على جميع طبقاتها، وتوجد طرائق تعديل كثيرة منها الالتفاف، والمنظور، والتعديل الحر ...إلخ. ويمكن استخدام أدوات التعديل مع الأقنعة لتطبيق تعديلات غير مُخرِّبة على أي نوع من الطبقات.

الحفظ التراكمي

تساعد هذه الميزة على تجنب إعادة الكتابة فوق الملف الذي نعمل عليه بعد كل عملية جديدة نقوم بها وبالتالي تبقى الإصدارات القديمة من الملف محفوظة كلَّما تقدمت بالعمل.

ولكي يفهم التطبيق أننا نريد حفظ الملف بهذه الخاصية نضيف في نهاية الاسم "XXX_" أي يصبح مثلًا myartworksname_001.kra.

المرشِّح "Color to alpha"

إذا أردت إزالة الخلفية البيضاء لملفات مسحوبة على ماسحٍ ضوئيٍّ فما عليك سوى استخدام هذا المرشِّح الذي يجعل الألوان شفَّافةً (alpha).

الكثير من أساليب المزج

إن كنت من محبي أساليب المزج Blending Modes فإنَّ Krita يحوي ما يزيد على 70 منها، حاول أن تجد متَّسعًا من الوقت لاستكشفها.

الأدوات المساعدة على الرسم

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

الفُرَش المتعددة

تسمح أداة الفُرَش المتعددة multibrush بالرسم مستخدمًا أكثر من فرشاة بآن واحد، وتكون حركة هذه الفُرَش مختلفة عن حركة الفرشاة الأساسيَّة بحسب النوع المستخدم كرسم انعكاس للفرشاة الأساسية أو تكرار الشكل المرسوم عددًا من المرات حول محور ما، ومن أنواع الفرش المتعددة:

  • Symmetry: تكرار الشكل نفسه.

  • Parallel: رسم شكل موازِ للشكل الأساسي.

  • Mirrored: رسم شكل مُنعكس عن الشكل الأساسي.

  • Snowflake: أشكال تشبه التساقط كالثلج.

اختيار واسع للألوان

توفر لوحة تحديد الألوان المتقدمة خيارات كثيرة وواسعة عند اختيار الألوان.

ترشيح الألوان

يمكن عبر لوحة تحكم LUT استخدام مرشِّح لتصحيح الألوان وإظهار النتائج في معاينة مختلفة، وهذه الخاصيَّة مفيدةٌ خصوصًا لمن يستخدم تصحيح الألوان بكثرة أو لمن يريد عرض الصورة بتدرج الرمادي.

الرسم بألوان HDR

يمكن الرسم باستخدام ألوان HDR (High-dynamic-range) ذات الدقة والإضاءة العالية والشبيهة بألوان الصورة الواقعيَّة التي تراها العين، وتُستخدم عن طريق لوحة تحكم LUT.

ما هي الأشياء التي لا تتوفر في Krita

نُذكِّر مجدَّدًا أن Krita هو تطبيق رسم وأنَّ الفوتوشوب هو تطبيق للتعديل على الصور مع بعض ميزات الرسم ولذا نجد بعضًا من الأمور لا يمكن استخدام Krita لأدائها، وسنستعرض باختصار بعضًا منها.

المُرشِّحات

رغم أن Krita يحوي مجموعة مميزة من المُرشِّحات إلا أنَّك قد تفقد نوعين أو أكثر من المرشِّحات أو أدوات ضبط الألوان التي تستخدمها بكثرة في فوتوشوب كعدم وجود أداة ضبط الألوان HSV (درجة اللون وإشباعه وقيمته).

أداة تنقيح الصورة وإصلاحها تلقائيًّا

لا تتواجد أداة تنقيح الصورة وإصلاحها تلقائيًّا Automatic healing tool فيKrita ولكن توجد أداة مشابهة لها تدعى Clone Tool.

Macro

وهي موجودة في Krita ولكنَّها حاليًا لا تعمل جيِّدًا.

أداة كتابة نص

لا تمتلك أداة كتابة النص Text Tool مميزات متطورة شبيه بالأداة الموجودة في الفوتوشوب.

أساليب المزج مع أنماط التحويل

عند تطبيق تحويلات وتعديلات Transforming على طبقة ما أو مجموعة مُحدَّدة في Krita فإنَّها تظهر في أعلى قائمة الطبقات مع تجاهل أسلوب المزج في الطبقة.

أشياء أخرى

لا تستطيع تحريك العناصر المحددة، أو التصدير إلى الويب أو استخدام عرض الشرائح معه.

الخلاصة

تطبيق ما سبق يساعدك على اعتياد العمل على Krita بسرعة، وإن استصعبت عدم توفر بعض الأدوات التي اعتدت العمل عليها في فوتوشوب فلا تقلق لأنَّ Krita سريع التطور وستضاف المزيد من الخصائص والأدوات إليه خلال زمنٍ قصيرٍ. ويمكنك الاستفادة من هذه المقالة أيضًا لمزيد من التفاصيل حول التطبيق.


 


 

ترجمة -وبتصرف- للمقال: Introduction to Krita coming from Photoshop الذي كتبه فريق عمل Krita.

جميل بيلوني الأربعاء, 2017/04/26 - 3:34م
disqus

April 26th 2017, 8:23 am

مفاهيم أساسية حول تطبيق الرسم Krita

وادي التقنية

مفاهيم أساسية حول تطبيق الرسم Krita

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

الرسومات الشعاعيَّة والنقطيَّة

يُستخدم تطبيق Krita للرسومات النقطية Raster بشكل أساسيٍّ ويمكن أيضًا استخدامه لتعديل الرسومات الشعاعية Vector. أظنُّ أنَّ إشارة استفهام بدت على وجهك مطالبة بتعريف نوعي الرسومات التي ذُكرت آنفًا، إن كنت بالطبع مستجدًا في عالم الرسومات، لذا سنشرح هذين المفهومين.

تتكون الصورة الرقمية من شبكة من النقط pixels وتدعى أحيانًا (بيكسل)، والنقطة هي أصغر عنصر في الصورة وتأخذ لونًا معيّنًا، وتعالج تطبيقات الرسومات النقطية هذه النقط pixels وتُعدِّل عليها. إذا كان لديك على سبيل المثال لوحةً ما واخترت فرشاةً بحجم نقطة واحدٍ ذات لون أسود ورسمت فوق مكان ذي لون أبيض فأنت حقيقةً تغيِّر لون النقط التي أسفل الفرشاة إلى الأبيض. أظنُّ أنَّك تلاحظ عندما تكبِّر صورة ما ظهور مربعات صغيرة تحمل كلَّ واحدةٍ منها لونًا، تلك هي النُقط .


الرسوميات الشعاعية، بالموازنة مع الرسوميات النقطية، لا تعتمد على النقط وإنما تعتمد على التعبيرات الرياضية (المعادلات). عند رسم مستطيل مثلًا على طبقة شعاعية في تطبيق Krita فأنت حقيقةً ترسم مسارًا يمر عبر مجموعة نقط تدعى بالعُقد، وتكون هذه العقد جزءًا من محور إحداثيات (x,y). عند تكبير تلك الصورة أو تحريكها فإنَّ الحاسب يعيد حساب المعادلات تلك ثمَّ يرسم المسار "الصورة" من جديد ويُظهرها لك، ويمكنك حينها تكبير الصورة إلى حد لا نهائي دون انخفاض الدقة. يَعتبر تطبيق Krita جميع أنواع الطبقات نقطية باستثناء نوع الطبقة الشعاعية.

مفهوم الصورة والمعاينة والنافذة

يوجد ثلاثة أنواع رئيسة لمساحة العمل عند استخدام تطبيق الرسم وهي:

الصورة

وهي الأهم وتتكون عند فتح صورة ما أو إنشاء صورة جديدة. يتيح لك Krita إنشاء نسخة جديدة عند فتح صورة من قائمة "ملف" file أو حفظها بملف جديد. تحتوي الصورة عند حفظها على الطبقات والألوان والحجم والبيانات الوصفية كاسم صاحب الصورة والتاريخ والدقة DPI (عدد النقاط بالبوصة). يمكن فتح عدَّة صور بآنٍ واحدٍ والتبديل بينها عبر قائمة "نافذة" window. تستطيع أيضًا حفظ الملف الموجود على القرص الصلب عند فتحه بطرائق متعددة وهي:

  • جديد new: إنشاء صورة جديدة، وعند ضغط زر "حفظ" save سيُنشئ التطبيق ملفًا جديدًا يحفظه على القرص الصلب.

  • فتح open: إنشاء نسخة جديدة داخل البرنامج من الملف الذي فُتح، وعند ضغط زر "حفظ" فإن التطبيق سيطبق التعديلات على الملف الأصلي.

  • فتح صورة حالية كملف جديد open existing image as new: شبيه بالخيار السابق ولكن عند ضغط زر "حفظ" سيُطلب منك تحديد موقع لحفظ الملف دون التعديل على الملف الأصلي.

  • إنشاء نسخة من الصورة الحالية create copy from current image: شبيه بالخيار السابق ولكن مع الصور التي اخترتها مسبقًا.

  • الحفظ المتزايد save incremental: يسمح هذا الخيار بإنشاء نسخة جديدة للملف كلَّما عدَّلت عليه وكل نسخة تحمل رقمًا جديدًا، ويساعد هذا الخيار على حفظ النُسخ القديمة من الملف.

توفر الخيارات السابقة تنقلًا سريعًا بين الملفات وأخذ نسخ احتياطية، كما يوجد خيار للحفظ التلقائي auto-save واستعادة الملفات التالفة.

المعاينة

بقصد بالمعاينة view أنها نافذة تُظهر الصورة الحالية، ويتيح لك Krita عرض الصور عرضًا متعددًا يمكِّنك من التلاعب بها عبر التكبير والتصغير والتدوير وعكس الصورة وتغيير الألوان ...إلخ دون التعديل على الصورة نفسها. الطريقة المعاينة هذه مفيدةٌ جدًا خصوصًا للرسامين لأنها تمكنهم من تحليل الأخطاء. يمكن الضغط على زر "M" لمحاذاة معاينتين للصورة.

يمكن استخدام العرض المتعدِّد عبر الخيارWindow → New View → Image Name، وتستطيع التنقل بينهم من القائمة "Window" أو عبر الاختصار Ctrl + Tab، ويمكن أيضًا وضع جميع المعاينات للصورة في مكانٍ واحدٍ بتفعيل الخيار Subwindow من الإعدادات عبر الخيارات Window → Tile.

لوحة التحكم Docker

إنَّ لوحة التحكم Dockers هي نافذة فرعية تتوضَّع في واجهة التطبيق Krita، وتحوي أدوات مختلفة مثل اختيار الألوان والطبقات وأدوات لخيارات أخرى كما موضح بالصورة.

تتواجد جميع المعاينات والنوافذ الفرعية Dockers في نافذة واحدة.

النافذة

يُفترض أنَّ يكون مصطلح نافذة Window معلومًا لديك خصوصًا إن كنت من مستخدمي نظام التشغيل ويندوز. يوفر تطبيق Krita إمكانيَّة فتح نوافذ متعددة من خيار Window → New window حيث تُفيدك هذه الخاصيَّة عند تعدُّد أجهزة العرض الموصولة بالحاسوب، وتوضِّح الصورة التالية مثالًا عن تعدد النوافذ.

لوحة الرسم

ستلاحظ عند فتح ملفٍ جديدٍ من قائمة "ملف" وجود مساحة مستطيلة بيضاء تدعى "لوحة الرسم" وهي موضحة بالصورة التالية.


وإذا أردت حفظ الصورة بصيغة "jpg" أو "png" ...إلخ أو طباعتها فإن المحتويات التي تظهر هي تلك الموجودة داخل لوحة الرسم، ولن يظهر أيُّ محتوىً خارج حدودها ولكنه يبقى محفوظًا ضمن الملف في الطبقات.

الطبقات

إذا أراد رسامٌ رسم لوحة ما فإنه يبدأ برسم السماء ثم العناصر البعيدة المتوضعة في الخلف فالأقرب مراعيًا الترتيب حتى يصل إلى العناصر الأمامية. نجد ذلك واضحًا عند الانتقال إلى الرسم الرقمي أثناء رسم مربعٍ ثمَّ دائرةٍ، حيث تتوضع الدائرة فوق المربع وتظهر أولًا، وتدعى الخاصية السابقة "ترتيب عناصر اللوحة". تساعد الطبقات على فصل عناصر اللوحة ضمن مجموعات والتحكم بترتيبها وتوضعها ضمن اللوحة والتعديل على كلِّ واحدةٍ منها دون التأثير على الأخرى. يمكن باستعمال الطبقات رسم مجموعة من الأشجار تظهر خلفها هضبة أو جبل. ويحتوي تطبيق Krita على أنواع مختلفة من الطبقات متعدِّدة الوظائف وهي:

  • طبقات الرسم Paint layers: تُعرف هذه الطبقة أيضًا بالطبقة النقطية وهي أكثر أنواع الطبقات استخدامًا.

  • الطبقات الشعاعية Vector layers: يُستخدم هذا النوع مع الرسوميات الشعاعية.

  • مجموعة طبقات Group layers: يمكن عبر هذه الطبقات إنشاء مجموعة من الطبقات الأخرى بسحبها وإفلاتها ضمن طبقة تجميعية.

  • الطبقات المنسوخة Clone layers: إذا حدَّدت طبقة ما ثمَّ اخترت إنشاء طبقة جديدة من هذا النوع تنشأ طبقة طبق الأصل عن الطبقة المُحدَّدة، ولا يمكن التعديل على هذا النوع من الطبقات ولكن تُعدَّل تلقائيًّا عند الرسم على الطبقة الأصلية.

  • طبقات الملفات File layers: ترتبط هذه الطبقات مع صور خارجية وتُعدَّل تلقائيًّا عند تعديل الصور الأصلية تلك، وتُستخدم مع الشعارات والصور التي تتغير كثيرًا.

  • طبقات ملءFill layers: تكون هذه الطبقات مليئة بألوان أو أشكال محددة.

  • طبقات المرشحاتFilter layers: تُستخدم لإضافة تأثيرات لمجموعة من الطبقات وسنناقشها لاحقًا.

يمكن معالجة محتوى الطبقة عبر الأدوات.

الأدوات

تُستخدم الأدوات لتعديل ومعالجة الصور وأشهرها استخدامًا هي فرشاة الرسم وهي الأداة الافتراضية عند فتح تطبيق Krita. ويوجد خمسة أنواع من الأدوات وهي:

  • أدوات الرسم Paint Tools: تُستخدم للرسم على طبقات الرسم، ويمكن باستخدامها رسم مستطيلات ودوائر وخطوط ...إلخ. ويمكن أيضًا التعديل على أنواع الفُرَش Brush Engines المستخدمة للرسم وإضافة تأثيرات لها.

  • أدوات الرسم الشعاعي Vector Tools: تتوضع في الصف العلوي وتُستخدم للرسم الشعاعي والتعديل عليه، وتستطيع استخدام جميع الأدوات للرسم على الطبقات الشعاعية باستثناء فرشاة الرسم الحر، ولا يمكن أيضًا استخدام أدوات الفرشاة لإضافة تأثيرات للأشكال المرسومة.

  • أدوات التحديد Selection Tools: تمكِّنك من تحديد مناطق معينة من الطبقة والتعديل عليها دون التأثير على الأجزاء المتبقية. عملها شبيه بعمل القناع المائي Masking fluids في الرسم العادي الذي يُستخدم لتحديد منطقة ما والتعديل عليها دون التأثير على المناطق المجاورة.

  • أدوات التوجيه Guide Tools: تضم مجموعة من الأدوات منها إظهار أو إخفاء خطوط الشبكة وأدوات مساعِدة للرسم.

  • أدوات التعديل Transform Tools: تمكنك من التعديل سريعًا على العناصر أو الطبقات المحدَّدة كتغيير الحجم أو التدوير أو الانحراف ...إلخ.

سأترك لك مهمة اكتشاف جميع الأدوات واستخدامها في رسم لوحتك.

أنواع الفُرَش

يمكن توليد أنماط معينة للفرشاة أو إضافة تأثيرات لها كإنشاء حدود للفرشاة مثلًا، ويحوي تطبيق Krita أنواعًا عديدةً من الفُرَش لها تأثيرات مختلفة. توضح الصورة ثلاثة أنواع مختلفة للفرشاة وهي على اليسار (Pixel brush) والوسط (Color smudge brush) وعلى اليمين (Sketch brush).

النوع (Pixel brush) بسيط جدًا ويساعدك على أداء الأعمال الأساسيَّة، وإذا كنت مولعًا بالرسم فإن النوع Color smudge brush هو الأفضل وقد تلاحظ أنه بطيء بالموازنة مع النوع السابق ولكنه يتميز بالقدرة على مزج الألوان. النوع الأخير Sketch brush يختلف تمامًا عن سابقيه فهو يرسم خطوطًا مبعثرة وعشوائية. يوجد خيارات كثيرة لكل نوع من أنواع الفُرَش يعطي كلٌّ منها تأثيرًا معينًا، ويمكنك ضبط هذه التأثيرات من إعدادات الفرشاة بالضغط على الاختصار F5. تُحفظ التعديلات التي تجريها على الفرشاة ضمن قائمة الفُرَش الموجودة سابقًا والتي يمكنك الوصول إليها عبر الاختصار F6.

ترسم الفرشاة باستخدام الألوان ولكن كيف يفهم الحاسوب الألوان؟

الألوان

يستطيع الإنسان رؤية الملايين من الألوان التي هي عبارة عن أمواج كهرومغناطيسيّة تنعكس على سطح الجسم فإمَّا أن يُشتِّتها أو يمتصُّ جزءًا منها لتنعكس على أعيننا ونميز لون ذلك الجسم. توضح الصورة في الأسفل نظامين لونيين، اليمين هو النظام RGB واليسار هو النظام CMY.

الألوان المستخدمة عند الرسم على لوحة تقليدية هي عبارة عن أصباغ تمتص الأمواج الضوئية المقابلة للون الذي نريد الحصول عليه، وكلما زادت نسبة الصباغ زادت نسبة امتصاص الضوء وبالتالي نحصل على لون أغمق والعكس بالعكس. وتكون الألوان الأساسية التي تُمزج مع بعضها للحصول على بقية الألوان الأخرى هي الأزرق الفاتح Cyan blue والأحمر الأرجواني أو الوردي Magenta red والأصفر Yellow أمَّا اللون الأبيض فهو موجود على ورقة الطباعة ولذلك يُستخدم هذا النظام CMY للطباعة .

يستخدم الحاسوب ثلاثة ألوان أساسيَّة أيضًا ويمزج بينها بكميات متفاوتة للحصول على ألوان أخرى بطريقة مشابهة للطريقة السابقة، وبما أنَّ شاشة الحاسوب هي جسم مشع للضوء فإنه عند مزج كمية كبيرة من الألوان الضوئية السابقة نحصل على ضوء زائد وبالتالي على لون فاتح حتى الوصول إلى اللون الأبيض، وتكون الألوان الأساسيَّة هي الأحمر Red والأخضر Green والأزرق Blue. وبما أنَّ شاشة الحاسوب تتكون من عدد من النقط فإنَّ كلَّ نقطة تتوهج بتدرُّجات مختلفة للألوان الأساسيَّة تلك للحصول على اللون المحدد، وتتراوح قيمها من 0 حتى 255 ويُستخدم عادةً النظام الست عشري، وبالتالي فإنَّ الحاسوب يستخدم النظام RGB. ويمكنه أيضًا التحويل إلى النظام CMY أو النظام LAB، وللمزيد يمكنك الاستفادة من هذه المقالة.

الصورة التالية هي لوردة حمراء عُرضت باستخدام نمط القناة الحمراء red channel والذي يشبه التدرج الرمادي ولكن نسبةً للون الأحمر، حيث لاحظ ظهور اللون الأبيض للورقة والذي يدل على اللون الأحمر الصافي واللون الأغمق للساق الذي يشير إلى قلة اللون الأحمر وهذا طبيعي لأنها خضراء اللون. بمعنى آخر، كلَّما كان اللون كاشفًا كلما دلَّ على وجود اللون الأحمر والأمر مشابه عند تحليل الصورة عبر نمط قناة اللون الأخضر وقناة اللون الأزرق حال أردنا تحليل الصورة إلى أنماط لونية. يمتلك تطبيق Krita نظامًا معقدًا لإدارة الألوان يمكنك معرفة المزيد عنه عبر هذه الصفحة.

الشفافيَّة

يستطيع الحاسب معرفة مدى شفافيَّة كل نقطة في الشاشة بالطريقة نفسها التي يميز الألوان الأساسيَّة، لذا تعد الشافية أيضًا كقناة وتدعى قناة ألفا alpha channel، وتظهر أهمية الشفافيَّة عند تعدُّد الطبقات.

أساليب المزج

بما أنّ الألوان تخزَّن على الحاسوب باعتبارها أرقامًا فلم لا نجري عليها بعض العمليات الحسابية؟! تسمى تلك العمليات بأساليب المزج Blending modes ويمكن تطبيقها على طبقة أو فرشاة الرسم ومن هذه الأساليب:

  • الضرب Multiply: يعطي هذا الأسلوب ألوان عاتمة وبالتالي إنشاء الظلال بسهولة.

  • الإضافة Addition: يعطي هذا الأسلوب ألوان فاتحة بعكس الأسلوب السابق مما يعطي تأثيرات مميَّزة وجذَّابة.

  • المسح Erasing: لا يوجد في Krita أداة للمسح وإنما هي أسلوب دمج يطبق على الفرشاة، وعند الضغط على الزر E نحصل على ما يشبه الممحاة.

  • الطبيعي Normal: هو أسلوب دمج وسطي بين الألوان معتمدًا على مدى شفافية أكبر قيمة من الألوان الأساسيَّة الثلاثة .

يحتوي تطبيق Krita على 76 أسلوب مزج يمكنك الإطلاع عليها هنا.

الأقنعة

إنَّ الأقنعة Masks هي تأثيرات ثانوية تطبَّق على الطبقة، ويعتبر قناع الشفافية الرئيسي من بينها ويستخدم التدرج الرمادي لتعديل درجة شفافية الصورة، ويعطي وضع اللون الأسود ضمن هذا القناع الشفافية بينما يعطي وضع اللون الأبيض التعتيم. تستطيع الرسم فوق القناع بأيَّة فرشاة كما تستطيع تحويل أية طبقة رسم عادية إلى قناع وتطبيق التأثيرات على جميع عناصرها سواءً لإظهارها أو إخفائها جميعًا. وتأتي فائدة القناع من تطبيق الشافية على الأشياء دون حذف النقط pixels المهمة منها.

لدينا في الصورة التالية سيدة على شكل شبح أبيض ولكنها في هيئتها تلك لا تبدو كذلك.

لتحويل تلك الصورة إلى شبح حقيقي نضغط بالزر الأيمن على الطبقة ونضيف قناعًا شفافًا Transparency Mask ثمَّ نعدِّل تدريجات الأبيض والأسود بحيث يكون تدرج الأسود في الأسفل للحصول على شفافية أكبر حتى تنتج معنا الصورة التالية التي هي أقرب لهيئة شبح حقيقي.


المُرشِّحات

يمكن إجراء العديد من العمليات الحسابية على النقط المكونة للصورة أو مجموعة منها أو طبقة بأكملها وتدعى هذه العمليات "الترشيح" Filter. بمعنى آخر، نعرِّف الترشيح بأنه تمرير صورة من خلال عملية تعالج كل نقطة من نقاطها. ومن أنواع المرشِّحات:

  • إزالة التشبُّع Desaturate: تحويل جميع نقط الصورة إلى التدرج الرمادي.

  • الضبابية Blur: تُنعَّم الصورة عن طريق حساب متوسط النقط للمنطقة المحدَّدة أو للصورة بأكملها وينتج غباشًا أو شكلًا ضبابيًا.

  • التباين Sharpen: يزيد من حدَّة تباين النقط المتجاورة والتي تملك تَبايُنًا أقل فتصبح الصورة أكثر وضوحًا.

  • إخفاء اللون Color to Alpha: هو مرشِّح ذو شهرة حيث يحول جميع الألوان المحددة إلى شفَّافة.

توضح الصورة التالية مجموعة مختلفة من المرشِّحات طُبِّقت على أجزاء مختلفة من الصورة، ويحتوي تطبيق Krita على مجموعة كبيرة من المرشِّحات.


 

استخدام المرشِّح مع الفرشاة

يوفر تطبيق Krita إمكانية استخدام المرشِّح مع الفرشاة، ونجد أنَّ أغلب تطبيقات التعديل على الصور يفصلون المرشِّح عن الفرشاة. وبهذه الخاصية يمكن إنشاء فرشاة تجعل الصورة ضبابية أو تزيد من تباينها ...إلخ.

مرشِّحات الطبقات والأقنعة وأنماط الطبقات

يتيح تطبيق Krita استخدام المرشِّحات مع الطبقات حيث تصبح جزءًا لا يتجزأ من الطبقة وتُطبَّق التأثيرات حينئذ على جميع عناصر الطبقة بالمستوى نفسه. ويمكن أيضًا استخدام المرشّحات مع الأقنعة Filter Masks حيث يضاف تأثيرها مكان استخدام القناع المطبَّق في مجموعة أو طبقة واحدة.

ألا زلت تذكر السيدة الشبح؟ سنعدِّل قليلًا عليها باستخدام المرشِّح مع القناع السابق لإعطائها بعض الضوء المشع كي تبدو أكثر واقعية. نختار الطبقة ghost layer ونُنشئ طبقة جديدة منسوخة عنها. نضغط على تلك الطبقة بالزر الأيمن ونضيف مرشِّح للقناع من نوع gaussian blur ونضبط القيمة على 10. نضع الطبقة المنسوخة خلف الطبقة الأصلية ونحدِّد أسلوب مزج من نوع Color Dodge والذي يعطي الشبح توهجًا واضحًا. وإذا عدَّلت شيئًا على الطبقة الأصلية ghost layer فإنَّ التعديلات تنتقل إلى الطبقة المنسوخة تلقائيًا.

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

عمليات التعديل

هي عمليات رياضية تُجرى على نُقَط الصورة وتشبه المرشِّحات، من تلك التعديلات Deformations تغيير الحجم، وقلب وتدوير الصورة، وأداة القص التي تؤثِّر على حجم لوحة الرسم، وأداة التحريك. تستطيع باستخدام هذه الأدوات تدوير أو تغير حجم لوحة الرسم أو وضعها في منظور معين، كما يمكن استخدام أدوات متقدمة كأداة الانحراف wrap، والأداة cage والأداة liquefy التي تنشئ مجموعة من العقد حول الشكل لتشويهه بعض الشيء وابتكار أشكال جديدة.

فرشاة التعديل

يوفر تطبيق Krita دمج التحويلات المشوِّهة للعنصر مع الفرشاة لنحصل على فرشاة التعديل Deform brush engine، وتعتبر نسخة عن أداة التحويل Liquefy وتتميز بالسرعة ولكن ذات دقة أقل. توضح الصورة التالية استخدام أداة التحويل Liquefy الشكل على اليسار للموازنة مع فرشاة التعديل الشكل على اليمين.

أقنعة التعديل

يمكن أن تصبح عمليات التحويل جزءًا من الطبقة مثل المرشِّحات والأقنعة شرط أن تكون غير مشوِّهَة للصورة، ولا يمكن استخدام التدرج الرمادي معها خلافًا للمرشِّحات والطبقات بسبب خللٍ تقنيٍٍ.

الرسوم المتحركة

يدعم الإصدار 3.0 من Krita الرسوم النقطية المتحركة حيث يوفر جدولًا زمنيًا وأدوات لمعاينة الحركة كما يوفر فُرَشًا متنوعة للرسم النقطي المتحرك مع إمكانية التصدير كصورة بصيغة (gift) أو فيديو.

الأدوات المساعدة للرسم

علينا عدم نسيان أنَّ Krita هو تطبيق رسم رقمي ويجب أن يحوي أدوات رسمٍ كتلك التي نستخدمها للرسم في حياتنا اليومية كالمسطرة وغيرها من الأدوات التي تساعد على الرسم. سنستعرض فيما يلي بعضًا من تلك الأدوات التي يوفرها التطبيق.

الشبكة والخطوط المساعدة

هما من الأدوات المهمة والمساعدة كثيرًا في عملية الرسم حيث يمكن إظهار الشبكة grids وهي مجموعة من الخطوط الأفقية والعمودية بتباعدات محدَّدة، أو وضع خطوط مساعدة على لوحة الرسم وظيفتها مشابهة لوظيفة للمسطرة.

الالتقاط

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

العناصر المساعدة

هل تتذكر يومًا أنك وضعت نقطتين أو أكثر على لوحة ما للوصل بينها بخطوط مستقيمة أو طلب منك مدرِّس الرياضيات رسم خطين متوازيين أو متعامدين أو دائرتين مماستين أو متحدتي المركز؟ العناصر المساعدة في Krita تساعد على القيام بتلك المهام وأكثر من ذلك.

توضح الصورة في الأعلى استخدام بعضًا من الأدوات المساعدة، وبعد الانتهاء منها يمكنك إزالتها بسهولة.

تخصيص مساحة العمل

ختامًا، يفضل كلَّ شخصٍ، خصوصًا الرسامين، مساحةً خاصةً به للعمل كوضع شريط العناصر في مكان يفضِّله على الشاشة أو وضع اختصاراته الأكثر استخدامًا ضمن شريط الأدوات أو غيرها من بيئة العمل. لم يغفل Krita عن ذلك بل وفر مجموعة من الإعدادات لتخصيص بيئة العمل وحِفظها من خلال زر موجود أعلى اليمين.

ويمكن ضبط شريط الأدوات من Settings → Configure Toolbars، وضبط الاختصارات من Settings → Configure Krita → Configure Shortcuts ومن Settings → Configure Krita → Canvas Input Settings.


 


ترجمة -وبتصرف- للمقال Basic Concepts الذي كتبه فريق عمل Krita.

جميل بيلوني الثلاثاء, 2017/04/25 - 1:14ص
disqus

April 24th 2017, 5:40 pm

عام على تشفير واتساب

وادي التقنية

عام على تشفير واتساب

بقلم: م. عوض العمري، مهندس أمن معلومات

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

يذكر موقع واتساب أن : "التشفير التام في واتساب يحمي معلوماتك فلا يمكن لأحد، بما في ذلك واتساب، قراءة محتوى دردشاتك باستثنائك أنت والطرف الآخر الذي تتواصل معه"

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

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

وباستقراء بسيط لتشفير الرسائل في الدردشات على واتساب فمن غير المعقول أن يتعرف التطبيق على محتوى ملف فيديو قبل تحميله من الخادم في دردشتين مختلفتين لو كان الملف فعلا مشفر حيث يفترض ألا يتعرف على الملف سوى التطبيق نفسه وليس الخادم.

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

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

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

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

وماذا لو استجابت الشركة لطلب المنظمات الرقابية والأمنية بطريقة سرية من دون أمر قضائي أو حتى إشارة إعلامية!

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

admin الجمعة, 2017/04/07 - 2:02م
disqus

April 7th 2017, 6:21 am

كانونيكال تتخلى عن يونتي ٨ و أوبنتو فون

وادي التقنية

كانونيكال تتخلى عن يونتي ٨ و أوبنتو فون

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

وكتوجه لهذا المسار، فإن الشركة ستستثمر في سوق السحاب وانترنت الأشياء، وهما المجالان اللذان يجلبان أرباح أكبر وعليها إقبال أكبر من الزبائن المستعدين للدفع. وكنتيجة أيضا لهذا التوجه، فإن الإصدارة القادمة من أوبنتو ١٨.٠٤ طويلة الدعم ستأتي بسطح مكتب جنوم بشكل افتراضي مثلما كان هو الحال قبل أن تبدأ كانونيكال في تطوير سطح مكتب يونتي.

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

Fahad الجمعة, 2017/04/07 - 10:47ص
disqus

April 7th 2017, 3:06 am

طريقة تثبيت مودل على أوبنتو ‏16.04

وادي التقنية

طريقة تثبيت مودل على أوبنتو ‏16.04

مقدمة

يعتبر مودل من أشهر أنظمة إدارة التعليم الإلكتروني مفتوحة المصدر التي تعتمد على الويب، حيث يمكن لأيٍّ شخصٍ كان تثبيته واستخدامه. تستطيع باستخدام هذا النظام تزويد الطلاَّب بالمراجع كالكتب والفيديوهات وإجراء النقاشات بينهم، كما أنَّه يسمح لك أيضًا بإدارة وظائف المستخدمين حيث توجد مستوياتٌ مختلفةٌ تمكِّنك من تحديد صلاحيات كلٍّ من المدرِّسين والطلاَّب للوصول إلى مختلف المواد المتوافرة. عند تثبيت مودل على خادم الويب الخاص بك، سيتمكَّن أيُّ أحدٍ يستطيع الوصول إلى موقعك من الاشتراك وبدء التعلُّم.

سوف تتعلَّم في هذه المقالة كيفية تثبيت مودل على خادم أوبنتو ‏16.04 بدءًا من تثبيت وإعداد جميع التطبيقات المطلوبة لعمله وحتى تثبيته ثمَّ إعداد المظهر وإنشاء دورتك الأولى باستخدامه.

المتطلبات الأساسيَّة

تحتاج قبل الشروع في العمل إلى المتطلبات التالية:

  • خادم أوبنتو 16.04، ومساحةٌ على القرص الصلب لا تقلُّ عن 200 ميغابايت مخصَّصةٌ لمودل بالإضافة إلى مساحة المحتوى الذي ستوفِّره، وذاكرةٌ بحجم 512 ميغابايت ويفضَّل ألَّا تقل عن 1 غيغابايت للحصول على أداءٍ أفضلٍ.

  • الوصول إلى الخادم بوساطة مستخدم يملك امتيازات الجذر مع تفعيل الجدار الناري عليه. (يمكنك الاستفادة من هذه المقالة لمعرفة كيفية تثبيت خادم أوبنتو 16.04).

  • تثبيت حزمة LAMP والتي هي Apache, MySQL, PHP. تأكَّد من تدوينك لكلمة مرور المستخدم "root" أثناء تثبيت وإعداد MySQL، ولمزيد من المعلومات يمكنك زيارة هذه الصفحة.

الخطوة الأولى: تثبيت مودل وملحقاته

يعتمد مودل على بعضٍ من التطبيقات منها مكتبةٌ للتدقيق الإملائي ومكتبةٌ للرسوم البيانيَّة إضافةً إلى بعض مكتبات PHP لأنَّ هذا التطبيق يعتمد كُلِّيًا على PHP، لذلك يجب تثبيتها أولًا.

تأكَّد بدايةً من الحصول على القائمة الأحدث من حزم التطبيقات وذلك بكتابة الأمر التالي في سطر الأوامر:

$ sudo apt-get update

بعدها ثبِّت الملحقات من خلال الأمر التالي:

$ sudo apt-get install aspell graphviz php7.0-curl php7.0-gd php7.0-intl php7.0-ldap php7.0-mysql php7.0-pspell php7.0-xml php7.0-xmlrpc php7.0-zip

أعد تشغيل خادم Apache لتحميل الأدوات والحزم التي ثبَّتها للتو:

$ sudo systemctl restart apache2

أنت الآن جاهز لتثبيت مودل، نزِّله أولًا من موقعه الرسمي عبر curl، وهو تطبيق لنقل البيانات من وإلى الخوادم عبر العديد من البروتوكولات، حيث سيتم تنزيل أحدث إصدارٍ من التطبيق:

$ curl -L https://download.moodle.org/download.php/direct/stable32/moodle-latest-32.tgz > moodle.tgz

سنفكُّ الضغط والأرشفة عن الملفِّ الذي تم تنزيله باستخدام برنامج tar إلى المجلد الجذر لخادم الويب:

$ sudo tar -xvzf moodle.tgz -C /var/www/html

تأكَّد أنَّ المجلَّد moodle أصبح موجودًا في المجلد السابق:

$ ls /var/www/html

يفترض أن تجده ضمن القائمة الناتجة بأسماء المجلَّدات الموجودة:

Output index.html moodle

شاهد محتوى ذلك المجلَّد عبر الأمر:

$ ls /var/www/html/moodle

يجب أن تجد داخله جميع ملفَّات ومجلَّدات التطبيق:

admin        composer.json       grade          message
README.txt
auth         composer.lock       group          mnet
report

availability config-dist.php     Gruntfile.js   mod
repository

backup       config.php          help_ajax.php  my
rss

badges       CONTRIBUTING.txt    help.php       notes
search

behat.yml.dist   COPYING.txt     index.php      npm-shrinkwrap.json
tag

blocks       course              install        package.json

tags.txt     blog                dataformat     install.php
phpunit.xml.dist theme
           brokenfile.php draftfile.php
INSTALL.txt pix                  TRADEMARK.txt
  cache
enrol        iplookup            plagiarism     user

calendar     error               lang           pluginfile.php
userpix
      cohort              file.php       lib
portfolio    version.php        
comment        files
local        PULL_REQUEST_TEMPLATE.txt          webservice

competency   filter              login          question
completion   githash.php         media          rating

سننشئ الآن مجلَّدًا خارج المجلَّد السابق، لحمايته من عدم وصول أحدٍ إليه عبر المتصفح، والذي سيحتوي على جميع الدروس والملفَّات التي ستخزَّن على الخادم:

$ sudo mkdir /var/moodledata

سنغيِّر ملكيَّة المجلَّد الذي أنشأناه ليتمكن مستخدم خادم الويب www-data من الوصول إليه:

$ sudo chown -R www-data /var/moodledata

سنحدِّد الأذونات للمجلَّد والتي تسمح بالتحكم الكامل للمستخدم المالك والمجموعة المالكة فقط:

$ sudo chmod -R 0770 /var/moodledata

أصبح مودل على خادمك وحان الوقت لإعداد قاعدة البيانات التي سيستخدمها.

الخطوة الثانية: إعداد قاعدة البيانات

سنستخدم قاعدة بياناتMySQL لإنشاء قاعدة البيانات التي سيستخدمها مودل لتخزين معظم بياناته، ويجب أن تكون بنية هذه القاعدة متوافقةً معه، وسننشئ أيضًا مستخدمًا جديدًا ليتمكن التطبيق من الوصول لتلك القاعدة.

نحتاج أولًا إلى إجراء بعض التعديلات على ملفِّ ضبط MySQL كي يتوافق مع التطبيق. افتح ملف ضبط قاعدة بيانات MySQL:

$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

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

...
[mysqld]
#
# * Basic Settings
#
user             = mysql
pid-file         = /var/run/mysqld/mysqld.pid
socket           = /var/run/mysqld/mysqld.sock
port             = 3306
basedir          = /usr
datadir          = /var/lib/mysql
tmpdir           = /tmp
lc-messages-dir  = /usr/share/mysql
skip-external-locking
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda

## Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
...

احفظ الملفَّ وأعد تشغيل خادم MySQL لتفعيل الإعدادات الجديدة:

$ sudo systemctl restart mysql

سننشئ الآن قاعدة البيانات الخاصَّة بمودل، عليك أن تتعامل مع سطر أوامر MySQL لتنفيذ الأوامر اللاحقة:

$ mysql -u root -p

أدخل كلمة مرور المستخدم "root" التي وضعتها أثناء تثبيتك لقاعدة بيانات MySQL، وحال تسجيل دخولك ستجد قد ظهرت العبارة ‏‎‏‏‎‏‏"mysql>‎"، أنشئ حينئذ قاعدة البيانات:

mysql> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

أنشئ مستخدمًا جديدًا لمودل:

Musql> create user 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';

ملاحظة: استبدل اسم المستخدم وكلمة المرور بالعبارتين "moodlepassword" ،"moodler".

أعطِ المستخدم moodler الإذن لتعديل قاعدة البيانات كي يتمكن من إنشاء الجداول وتغيير بعض الأذونات:

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodler'@'localhost' IDENTIFIED BY 'moodlerpassword';

اخرج من سطر أوامر MySQL:

mysql> quit;

هذا ما توجَّب عليك فعله لإعداد قاعدة البيانات، والآن تستطيع تشغيل مودل من المتصفح وإكمال التثبيت.

الخطوة الثالثة: إعداد مودل باستخدام المتصفِّح

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

تحذير: إنَّ هذه الأذونات التي سنغيِّرها ستجعل المجلَّد متاحًا للجميع، وإذا كنت غير مطمئنٍّ لذلك فلا تطبِّقها. ستزوِّدك صفحة الويب بالتعليمات التي ستساعدك على تعديل ملف الإعدادات. يجب عليك في حال تغييرك للأذونات إعادتها كما كانت عند انتهائك من التثبيت، وهذا الأمر سيذكر لاحقًا.

$ sudo chmod -R 777 /var/www/html/moodle

افتح المتصفِّح وأدخل العنوان: http://your_server_ip/moodle وستظهر صفحةٌ شبيهةٌ بالصفحة التالية:

 

اتبع الخطوات التالية:

  1. حدِّد اللِّغة التي تريدها ثم اضغط زر التالي.

  2. غيِّر مجلَّد البيانات إلى المسار‏ ‏‏"‏‎/var/moodledata" ثم اضغط زر التالي.

  3. في صفحة "قاعدة البيانات"، حدّد النوع "Improved MySQL (native/mysqli)" ثم اضغط زر التالي.

  4. في صفحة "إعداد قاعدة البيانات"، أدخل اسم المستخدم وكلمة المرور لقاعدة البيانات التي أنشأتها في الخطوة الثانية واترك الحقول المتبقيَّة كما هي ثم اضغط زر التالي.

  5. اقرأ شروط الرخصة ثم أكِّد موافقتك عليها بضغط زر استمر.

  6. ستظهر صفحة "تأكيدات الخادم"، تأكَّد من تثبيت جميع الحزم المطلوبة وعدم حصول أيِّ خطأٍ عند تثبيتها. تأكد من ظهور الرسالة "بيئة خادمك متوافقة مع الحد الأدنى لمتطلبات التثبيت" في الأسفل ثم اضغط زر استمر.

  7. سيثبِّت مودل بعض المكونات، وعند الانتهاء ستظهر الرسالة "تم بنجاح" عندها اضغط على استمر في الأسفل.

  8. ستنتقل بعدها إلى صفحة إعداد حساب المستخدم الرئيس للموقع، اتبع الخطوات التالية:

    • أدخل اسم المستخدم الذي تريده أو اترك الاسم الافتراضي، ولكنَّ ذلك لن يكون آمنًا.

    • اترك الإعدادات الافتراضيَّة عند اختيار أسلوب التوثيق.

    • أدخل كلمة المرور التي تريدها.

    • أدخل عنوان بريدك الإلكتروني.

    • قم بإعداد بقيَّة الخيارات بما تراه مناسبًا.

    • اضغط زر تحديث سيرتك الذاتيَّة.

  9. ستنتقل إلى إعدادات الصفحة الرئيسة، ادْخِل اسم الموقع الكامل واسم الموقع المختصر وحدِّد المنطقة الزمنيَّة ثمَّ اختر فيما إذا كنت تسمح بالتسجيل الذاتي عبر البريد الإلكتروني، وأكمل بقية الإعدادات بما تراه مناسبًا. وعند الانتهاء اضغط زر احفظ التغييرات.

ستُنقل عند الانتهاء من جميع الإعدادات السابقة إلى لوحة تحكُّمٍ جديدةٍ تمَّ تسجيل دخولك إليها كمستخدم رئيس.

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

$ sudo chmod -R 0755 /var/www/html/moodle

سنغير الأذونات الافتراضيَّة للمجلَّد moodledata الذي ستخزَّن فيه الملفات تغييرًا بسيطًا وذلك لزيادة الأمان. افتح ملفَّ الضبط الخاصِّ بمودل عبر الأمر:

$ sudo nano /var/www/html/moodle/config.php

ابحث عن السطر التالي:

$CFG->directorypermissions = 0777;

عدله كما هو مبيَّنٌ:

$CFG->directorypermissions = 0770;

احفظ الملفَّ واخرج من المحرِّر.

أعد أخيرًا ضبط الأذونات للمجلد ‎/var/moodledata عبر الأمر:

$ sudo chmod -R 0770 /var/moodledata

انتهينا من ضبط مودل، سنجري بعض التخصيص له وسننشئ درسًا تجريبيَّا لنطمئنَّ من عمله جيِّدًا.

الخطوة الرابعة: تخصيص مودل وإنشاء الدورة الأولى

أوُّل شيءٍ يفترض بك القيام به هو تسجيل موقعك الحالي على موقع مودل، سيتمُّ تسجيلك ضمن القائمة البريدية لتزويدك بأحدث الإشعارات كتنبيهات الأمان والمنشورات الجديدة. وللقيام بذلك اضغط على رابط إدارة الموقع الموجود ضمن إطارٍ ناحية اليمين، ثم اضغط على تسجيل واملأ النموذج بالبيانات المناسبة. وتستطيع أيضًا نشر موقعك كي يُعثر عليه بسهولةٍ.

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

اضغط زر تغيير السمة change theme وستظهر لك نافذةً تعرض القوالب المتاحة، و عند اختيار أحد القوالب سيتغير شكل موقعك ومظهره بالكامل بضغط زر استخدم السمة. ويمكنك أيضًا تغيير مظهر الموقع عند الدخول إليه من أجهزةٍ مختلفةٍ مثل الهاتف المحمول أو الجهاز اللوحي.

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

 

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

عليك التأكُّد من اكتمال عملية تثبيت مودل وجاهزيَّته للنشر قبل السماح للآخرين بالتسجيل والبدء بالدورات. عليك أيضًا إعداد شهادة TSL/SSL لخادم apache لتشفير البيانات بين خادمك والعملاء، وللمزيد حول ذلك راجع هذا الرابط. وتأكد كل حينٍ من إجراء عملية النسخ الاحتياطي لقاعدة بيانات MySQL -للمزيد اقرأ هذه المقالة- وللملفات المتواجدة على الخادم ومن ضمنها المجلد /var/moodledata لحماية بياناتك، ولمزيد من النصائح حول عملية النسخ الاحتياطي للملفات شاهد هذه الصفحة.

الخاتمة

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

 

 

ترجمة -وبتصرف- للمقال: How To Install Moodle on Ubuntu 16.04 لصاحبه: Brian Hogan

رابط المقال: هنا

جميل بيلوني الخميس, 2017/03/30 - 1:22ص
disqus

March 29th 2017, 5:37 pm

إعادة تعيين كلمة مرور المستخدم «root» لقاعدة بيانات MySQL وقاعدة بيانات MariaDB

وادي التقنية

إعادة تعيين كلمة مرور المستخدم «root» لقاعدة بيانات MySQL وقاعدة بيانات MariaDB

مقدمة

قد يحدث أن تنسى كلمة المرور التي وضعتها لحسابك مهما كانت ذاكرتك جيِّدة أو تفقدها إن كنت من النوع الذي لا يحب الحفظ، فإذا ما نسيت أو فقدت كلمة مرور المستخدم «root» لقاعدة بيانات MySQL أو قاعدة بيانات MariaDB فلا تخف لأنَّك سوف تتعلم في هذه المقالة كيفيَّة إعادة تعيينها سواءً للإصدارات القديمة أو الحديثة.

المتطلبات الأساسيَّة

تحتاج لإعادة تعيين كلمة مرور المستخدم «root» لقاعدة بيانات MySQL أو MariaDB الوصول إلى خادم قاعدة البيانات تلك بوساطة مستخدم يملك امتيازات الجذر في نظام تشغيل لينكس.

الخطوة الأولى: تحديد إصدار قاعدة البيانات

تأتي معظم توزيعات لينكس الحديثة محمَّلة بقاعدة بيانات MySQL أو قاعدة بيانات MariaDB، والتي تشتهر بأنها بديل كامل وشامل عن MySQL. تختلف الأوامر التي ستُستخدم لإعادة تعيين كلمة المرور بحسب نوع وإصدار قاعدة البيانات، ولمعرفة الإصدار الذي تستخدمه اكتب الأمر التالي:

$ mysql --version

إذا كانت قاعدة البيانات هي MySQL فستظهر لك النتيجة:

mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

أمَّا إذا كانت MariaDB فستظهر لك النتيجة:

mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

احفظ نوع ورقم إصدار قاعدة البيانات التي تستخدمها لأنها ستلزمك لاحقًا.

الخطوة الثانية: إيقاف خادم قاعدة البيانات

يجب عليك لتغيير كلمة مرور المستخدم «root» إيقاف خادم قاعدة البيانات قبل البدء بأيِّ شيء، ولإيقاف خادم MySQL اكتب الأمر:

$ sudo systemctl stop mysql

أمَّا لإيقاف خادم MariaDB اكتب الأمر:

$ sudo systemctl stop mariadb

و يجب عليك بعد إيقاف خادم قاعدة البيانات أن تتصل به يدويًا لتغيير كلمة المرور.

الخطوة الثالثة: إعادة تشغيل خادم قاعدة البيانات مع إلغاء التحقق من أذونات المستخدمين

إذا شغَّلت قاعدة بيانات MySQL أو MariaDB دون تمكينها من الوصول إلى جداول الصلاحيات "grant tables"، وهي الجداول التي تحتوي على بيانات الامتيازات للمستخدمين، فإنك ستتمكَّن من الوصول إلى سطر أوامر قاعدة البيانات بامتيازات المستخدم الجذر ودون إدخال كلمة المرور الخاصَّة به. يجب أيضًا عدم السماح لقاعدة البيانات من الاتصال بالشبكة لمنع المستخدمين من الوصول إليها أثناء تغيير كلمة المرور حيث تهدِّد هذه العملية أمن قاعدة البيانات.

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

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

سيعمل الأمر السابق في الخلفية وستكمل أنت استخدام سطر الأوامر بشكل طبيعي. ستتصل الآن بقاعدة البيانات بوساطة حساب المستخدم «root» دون أن يُطلب منك إدخال كلمة المرور:

$ mysql -u root

ستجد أنَّه انتقلت إلى سطر أوامر قاعدة البيانات مباشرةً كما هو موضَّح:

MySQL prompt Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>


 

MariaDB prompt Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>

لديك الآن صلاحيات المستخدم «root» لتغيير كلمة المرور.

الخطوة الرابعة: تغيير كلمة مرور المستخدم الجذر

الطريقة الأسهل لتغيير كلمة المرور في الإصدارات الحديثة لقاعدة بيانات MySQL هي باستخدام أمر "ALTER USER"، ولكن لن يعمل هذا الأمر بشكل صحيح لعدم توافر جداول الصلاحيات "grant tables"، لذلك اطلب من خادم قاعدة البيانات إعادة تحميل الجداول عبر الأمر:

mysql> FLUSH PRIVILEGES;

تستطيع الآن تغيير كلمة المرور ولكن هل تتذكر ما هو نوع وإصدار قاعدة البيانات لديك؟ إذا كانت قاعدة البيانات MySQL إصدار 5.7.6 والأحدث (5.7.7 و 5.7.8 ...إلخ) أو مع قاعدة بيانات MariaDB إصدار 10.1.20 والأحدث (10.1.21 و 10.2.0 ...إلخ) فاستخدم الأمر:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

أمَّا إذا كانت قاعدة بيانات MySQL إصدار 5.7.5 والأقدم (5.7.4 و 5.7.3 ...إلخ) أو قاعدة بيانات MariaDB إصدار 10.1.20 والأقدم (10.1.19 و 10.1.18 ...إلخ) فاستخدم الأمر:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

ضع كلمة مرورك الجديدة بدلًا من "new_password".

ملاحظة: إذا لم يعمل الأمر "ALTER USER" فلذلك دلالةٌ على وجود مشكلة كبيرة. بإمكانك حينئذ استخدام الأمر التالي لإعادة تعيين كلمة المرور:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

وبعد ذلك أعد تحميل جداول الصلاحيات "grant tables" كما تعلمت سابقًا.

وعليك في جميع الأحوال التأكد أنَّ الأمر السابق تم تنفيذه بنجاح عند ظهور الرسالة التالية:

Query OK, 0 rows affected (0.00 sec)

وبذلك تغيَّرت كلمة المرور، ويتوجب الآن إيقاف خادم قاعدة البيانات الذي شغَّلته يدويًا وإعادة تشغيله بشكل طبيعي.

الخطوة الخامسة: إعادة تشغيل خادم قاعدة البيانات

أوقف خادم قاعدة البيانات الذي شغلته يدويًا في الخطوة الثالثة عبر الأمر التالي، سيبحث هذا الأمر عن رقم التعريف للعملية التي تعمل ثمَّ يرسل إشارة لإنهائها "SIGTERM"، وللمزيد عن إدارة عمليات لينكس يمكنك قراءة هذه المقالة. استخدم مع قاعدة بيانات MySQL الأمر:

$ sudo kill `cat /var/run/mysqld/mysqld.pid`

أمَّا مع قاعدة بيانات MariaDB:

$ sudo kill `/var/run/mariadb/mariadb.pid`

أعد بعد ذلك تشغيل الخادم باستخدام systemctl، استخدم مع قاعدة بيانات MySQL:

$ sudo systemctl start mysql

أمَّا مع قاعدة بيانات MariaDB:

$ sudo systemctl start mariadb

تستطيع التأكد أنَّ كلمة مرور المستخدم «root» لقاعدة البيانات تغيرت بشكل صحيح بالدخول إلى قاعدة البيانات عبر الأمر:

$ mysql -u root -p

سيُطلب منك إدخال كلمة المرور بعد كتابة الأمر السابق، اكتب كلمة المرور الجديدة ويجب أن تتصل مع قاعدة البيانات كما هو متوقع.

الخاتمة

أعدنا تغيير كلمة مرور المستخدم الجذر بعد فقدانها واتصلنا من جديد مع قاعدة بيانات MySQL أو قاعدة بيانات MariaDB. تأكَّد أن كلمة المرور الجديدة التي اخترتها قوية بما يكفي واحفظها في مكان آمن بعيد عن الفقدان أو النسيان.


 

ترجمة -وبتصرُّف- للمقال How To Reset Your MySQL or MariaDB Root Password لصاحبه Mateusz Papiernik

رابط المقال: هنا

جميل بيلوني الأحد, 2017/03/26 - 1:30ص

March 25th 2017, 5:40 pm

ما هي رخصة المشاع الإبداعي؟

وادي التقنية

ما هي رخصة المشاع الإبداعي؟

تعرف المشاع الإبداعي "creative commons" - أو اختصارًا "CC" - بأنها منظمةٌ عالميةٌ غير ربحيةٍ تزوِّد المنتجين والمبتكرين وغيرهم برخصٍ حرةٍ عند نشر أعمالهم، حيث تحدِّد هذه الرخص صلاحيَّة استخدام الآخرين لتلك الأعمال ضمن شروطٍ محدَّدةٍ.

عندما يُنتَج عملٌ ما ككتابة مقالةٍ أو التقاط صورةٍ ...إلخ فإنَّ ذلك العمل يكون محميًا بحقوق نشرٍ تلقائيًّا. تمنع حقوق النشر تلك من سوء استخدام الآخرين لهذه الأعمال كنسخها وسرقتها أو نشرها على شبكة الإنترنت على سبيل المثال.

تسمح رخصة المشاع الإبداعي للمنتجين والمبدعين باختيار الطريقة التي تحدِّد للآخرين كيفيَّة استخدام أعمالهم. فإنَّ نشر العمل برخصة المشاع الإبداعيِّ يمكِّن الأشخاص من معرفة ما هو مسموحٌ وغير مسموحٍ لهم أثناء استخدامهم لذلك العمل، وعندما يريد أحدٌ استخدامه بما هو ليس مسموحٌ به في الرُّخصة فيجب آنذاك الحصول على إذنٍ من منتج العمل للقيام بذلك.

أجمل ما في رخصة المشاع الإبداعي أنَّها تسمح باستخدام جميع الأعمال المنشورة ضمنها في المجال التعليميِّ بلا قيودٍ، وبذلك يمكن للمدرِّسين والطُّلاب نسخُ ونشرُ تلك الأعمال بحرِّيةٍ، وحتَّى في بعض الأحيان تسمح لهم بالتعديل عليها دون الرجوع إلى المالك وطلب الإذن بذلك.

الحقوق والواجبات الأساسيَّة

تقدِّم رخصة المشاع الإبداعيِّ ستُّ رخصٍ أساسيَّةٍ، تسمح كلُّ واحدةٍ منها باستخدام المواد والأعمال بطرائق مختلفةٍ. تشترك تلك الرخص فيما بينها ببعض الحقوق والالتزامات الواجبة على المستخدمين وهي:

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

جميع رخص المشاع الإبداعيِّ تسمح لك بما يلي:

  • نسخ العمل (تنزيله أو تحميله من وإلى الإنترنت أو إنشاء نسخةٍ ورقيَّةٍ أو سحب العمل على ماسحٍ ضوئيٍ).

  • نشر العمل ( بين الطلبة أو بين المدرِّس وطلابه أو بين الأهل والمجتمع).

  • عرض أو إظهار العمل (كتشغيل الصوت أو الفيديو في إحدى القاعات الدراسيَّة أو عرضه للعائلة).

  • مشاركة العمل (جعل العمل متوافرًا على الشبكة الداخليَّة للمدرسة أو الجامعة، أو مشاركته على المدونة الخاصَّة بالطلَّاب).

  • تكرار العمل بصيغة أخرى دون تعديله (نسخ المحتوى الصوتي "MP3" أو المرئي "MP4" على أقراص ليزرية سواءً "CD" أو "DVD" لتشغيلها في المدرسة أو الجامعة).

إنَّ هذه الصلاحيات هي أساسيَّةٌ بالنسبة لحقوق المستخدم في جميع الرخص، إضافةً إلى أنَّ بعض الرخص تعطيك صلاحيَّاتٍ إضافيَّةٍ.

واجبات المستخدم

عندما تَستخدم أيَّ عملٍ خاضعٍ لرخصة المشاع الإبداعي فيجب عليك ما يلي:

  • نَسْبُ العمل إلى صاحبه دائمًا (للمزيد يمكنك مراجعة هذه الصفحة).

  • أخذُ إذنٍٍ من صاحب العمل للقيام بأيِّ شيءٍ يخالف حقوق النشر المتضمِّنة في الرخصة (كاستخدام العمل لأغراضٍ تجاريَّةٍ أو اشتقاق العمل أو أجزاءٍ منه في حال لم يكن مسموحًا بذلك).

  • المحافظة على حقوق النشر وأيُّ ملاحظةٍ مرتبطةٍ بها وإبقائها على جميع نسخ العمل دون تعديلٍ أو تحويرٍ.

  • الإشارة إلى الرُّخصة التي نشر بها العمل في جميع أجزائه ونُسخه.

  • ذكر جميع التعديلات التي قمت بها والإشارة لها في حال القيام بأيِّ تعديلٍ على العمل الأصليِّ (كالقول بأنَّ هذا العمل هو ترجمةٌ للُّغة العربيَّة عن العمل الأصلي "س" مثلًا).

كما أنَّه لا يجب عليك أن:

  • تستخدم العمل بشكل يضرُّ بسمعة صاحبه.

  • تصرِّح أو توحي بأنَّ صاحب العمل يؤيِّدك أو يكُفلك أو يدعم مشروعك.

  • تضيف أيَّة تقنيةٍ للعمل (كإدارة الحقوق الرقمية "DRM") تقيِّد الآخرين من استخدامه.

وللمزيد من المعلومات يمكنك مراجعة هذه الصفحة.

عناصر الرخصة الاختيارية

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

توجد أربعة عناصر أساسيَّةٍ يملك كلُّ واحدٍ منها رمزًا واختصارًا خاصًّا به يمكِّننا من تمييزه ومعرفته بسهولةٍ وهي:

  نسب العمل لصاحبه (BY)

يجب عليك نسبُ العمل لصاحبه وذكر نوع الرخصة التي نشر بها، وهذا إجباريٌّ في جميع رخص المشاع الإبداعي. لمزيد من المعلومات حول ذلك راجع هذه الصفحة.

  غير تجاري (NC)

إنَّ أيَّ استخدامٍ للعمل يجب أن يكون لأغراضٍ غير تجاريَّةٍ، على سبيل المثال يُسمح بمشاركة عملٍ ما لأغراضٍ تعليمية أو مشاركة فيديو لاحتفالٍ شعبيٍٍ، ولكن لا يسمح باستخدام ذلك العمل من أجل الإعلان أو تحصيل منفعةٍ ما.

  بلا اشتقاق (ND)

يمكنك استخدام العمل فقط كما هو عليه، فلا يسمح بتعديل العمل أو اجتزائه مطلقًا. وفي حال رغبت بالقيام بذلك كاقتباس جزءٍ منه أو قصِّ صورةٍ ما أو تعديل جزءٍ من النصِّ أو استخدام مقطعِ أغنيةٍ في فلمٍ ما ...إلخ فيتوجب عليك آنذاك الحصول على إذنٍ من صاحب العمل.

  المشاركة بالمثل (SA)

يجب على أيِّ عملٍ جديدٍ يُشتقُّ من عملٍ ما خاضعٍ لهذه المادة أن يُنشر بنفس رخصة العمل الأصلي الذي اشتقَّ منه. فإذا قمت مثلًا بدمج عملٍ ما والتعديل عليه وكان العمل الأصلي خاضعًا لرخصة "نسب العمل لصاحبه والمشاركة بالمثل BY-SA" فيجب نشر العمل الجديد بنفس الرخصة "نسب العمل لصاحبه والمشاركة بالمثل BY-SA".

الرخص الستَّة الأساسيَّة للمشاع الإبداعي

إن العناصر السابقة قد جُمعت ورُتِّبت للحصول على ستِّ رخصٍ أساسيَّةٍ وهي:

   نسب العمل لصاحبه (BY)

  • نوع الاستخدام: تجاري وغير تجاري.

  • تستطيع:

    1. النسخ.
    2. التعديل والاقتباس.
    3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
    4. منح الرخصة للآخرين.

   نسب العمل لصاحبه-غير تجاري (BY-NC)

  • نوع الاستخدام: غير تجاري فقط.

  • تستطيع:

  1. النسخ.
  2. التعديل والاقتباس.
  3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
  4. منح الرخصة للآخرين.

   نسب العمل لصاحبه-المشاركة بالمثل (BY-SA)

  • نوع الاستخدام: تجاري وغير تجاري.

  • تستطيع:
    1. النسخ.
    2. التعديل والاقتباس.
    3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
    4. منح الرخصة للآخرين بنفس رخصة العمل الأصلي.

   نسب العمل لصاحبه-بلا اشتقاق (BY-ND)

  • نوع الاستخدام: تجاري وغير تجاري.

  • تستطيع:

    1. النسخ.
    2. التعديل والاقتباس.
    3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
    4. منح الرخصة للآخرين.

   نسب العمل لصاحبه-غير تجاري-المشاركة بالمثل (BY-NC SA)

  • نوع الاستخدام: غير تجاري فقط.

  • تستطيع:

    1. النسخ.
    2. التعديل والاقتباس.
    3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
    4. منح الرخصة للآخرين بنفس رخصة العمل الأصلي.

   نسب العمل لصاحبه-غير تجاري-بلا اشتقاق (BY-NC ND)

  • نوع الاستخدام: غير تجاري.

  • تستطيع:

    1. النسخ.
    2. التعديل والاقتباس.
    3. إعادة التوزيع (نشر أو عرض العمل علانيةً أو مشاركته).
    4. منح الرخصة للآخرين.

مغالطات حول المشاع الإبداعي

سنتناول فيما يلي بعض المغالطات الشائعة والتي قد سمعتَ عنها حول رخصة المشاع الإبداعي.

المشاع الإبداعي تعادي حقوق التأليف والنشر

تؤمن المشاع الإبداعي بحقوق التأليف والنشر وبحق المنتجين والمبتكرين بحماية أعمالهم والتحكم بها كيفما شاؤوا، وتسعى المشاع الإبداعي انطلاقًا من هذا المبدأ إلى تقديم مختلف الوسائل والأدوات بشكلٍ طوعيٍّ لتحقيق ذلك.

تستطيع التصرف كما يحلو لك مع وجود رخصة المشاع الإبداعي

إنَّ وجود عناصر رخصِ المشاع الإبداعي لا تعني عدم وجود حقوقٍ للتأليف والنشر ولا تعني أيضًا أنَّه يمكن التصرف بالأعمال كيفما نشاء. بل على العكس تمامًا، فعندما يختار المؤلف رخصة المشاع الإبداعي عند نشر عمله فهذا لا يعني أنه خسر عمله ولم يعد يملكه بل قد صان حقه وحفظ عمله من أيِّ عملٍ لا يريده، وإن حدث أي خَرقٍ ومخالفةٍ لا يُسمح بها سَيُطبَّق قانون حماية حقوق النشر والتأليف مباشرةً على من خالفه.

جميع رخص المشاع الإبداعي غير تجاريَّة

يعتقد البعض أنَّه لا يسمح باستخدام العمل لأيِّ غرضٍ تجاريٍّ حال وجود رخصة المشاع الإبداعي.هذا كلامٌ خاطئٌ، حيث توجد العديد من الرخص التي تسمح باستخدام العمل لأغراضٍ تجاريةٍ، وقد تجد ذلك فيما قرأتَ آنفًا.

لماذا يجب على أنظمة التعليم أن يعتمدوا رخصة المشاع الإبداعي؟

المدرِّسون ورخصة المشاع الإبداعي

توجد قيودٌ وقوانينٌ كثيرةٌ تحدُّ من قدرة المدرِّسين على نسخ أو مشاركة المواد، بالرغم من اعتمادهم على تراخيص قانونيَّة واستثناءات تعليمية تعطيهم صلاحياتٍ كثيرةٍ. وتزداد هذه القيود خاصَّة عندما يريدون:

  • نسخ العمل بأكمله أو جزءٌ كبيرٌ منه.

  • تعديل العمل أو اقتباس جزءٍ منه ودمجه مع أعمال أخرى.

  • توفير العمل ومشاركته مع الأقارب والمجتمع.

إنَّ استخدام رخصة المشاع الإبداعي هو بديلٌ جيدٌ للأسباب التالية:

  • نسخ المحتوى بأكمله دون قيود.

  • توفِّر العديد من عناصرها إمكانية الاقتباس والتعديل.

  • إمكانية توفير العمل للأقارب والمجتمع بحرِّيَّةٍ تامَّةٍ.

  • إنَّ جميع رخص المشاع الابداعي مجانيَّة وبدون دفع أيِّ رسومٍ.

الطلَّاب ورخصة المشاع الابداعي

يخضع الطلَّاب عند قيامهم بنسخ شيءٍ ما أو مشاركته إلى أحكام "الاستعمال العادل" -وهو مجموعة من الأحكام تمنح استثناءاتٍ في عملية النسخ والمشاركة لغرض التعليم والبحث وتطبَّق في بعض البلدان- في قانون حقوق النشر والتأليف، وهذه الأحكام معقَّدةٌ بعض الشيء ولا تمنح الطالب بسهولةٍ حقَّ نسخ العمل بأكمله أو التعديل عليه أو اقتباس جزءٍ منه أو نشره وتوفيره للآخرين. ونجد في تلك الحالة أنَّ رخصة المشاع الإبداعي تعتبر بديلًا جيدًا لأنها تساعد الطلَّاب وتمنحهم صلاحيَّات كثيرةٍ تساعدهم في دراستهم كما مرَّ معنا منذ قليل.

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

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

هل تحترم الرخص وتتقيد بها؟

حالَ مخالفتك لرخصة المشاع الإبداعي وارتكاب ما ليس مسموحٌ لك به فإنك ستكون عُرضةً للمساءلة القانونيَّة على انتهاكك لحقوق النشر والتأليف.

هل تعتقد أنَّ عناصر رخصة المشاع الإبداعي يمكن مخالفتها؟

يجب عليك الانتباه لعدم انتهاك حقوق النشر والتأليف عند تعاملك مع مختلف المواد والأعمال التي تجدها على الإنترنت. نجد أنَّ معظم الاختراقات من قبل بعض الأشخاص هي نتيجة عدم معرفتهم بأنَّه لا يسمح لهم بنشر تلك الأعمال على الإنترنت. أولئك الذي يستخدمون رخص المشاع الإبداعي يكونون أكثر وعيًا ومعرفةً بحقوق النشر والتأليف وقلَّما تحدث انتهاكاتٌٍ من قبلهم. اللُّجوء إلى فطرتك السليمة قد يساعدك في تلك الحالات، فمثلًا إذا رأيت أغنيةً ما أو برنامجًا تلفزيونيًا أو فلمًا يحمل كلًّا منهم طابعًا تجاريًا فعليك قبل نشره أو استخدامه التواصل مع ناشره للحصول على إذنٍ يخولك القيام بذلك.

كيف يمكنك ترخيص مشروعك؟

بدايةً، يجب عليك أن تقرِّر كيف سيستخدم الآخرون مشروعك وما هي أقصى صلاحياتهم ثم تحدِّد الترخيص المناسب له، وفي حال رغبتك بنشر مشروعك تحت رخصة المشاع الإبداعي فيجب عليك أن تختار الرخصة المناسبة والتي توافق عناصرها ما قد اخترته لعملك.


 

ترجمة -وبتصرف- للمقال: What is Creative Commons

كُتب من قِبل: ARC Centre of Excellence for Creative Industries and Innovation through Creative Commons Australia and the National Copyright Unit of the COAG Education Council

رابط المقال: هنا

جميل بيلوني الثلاثاء, 2017/03/21 - 2:49ص
disqus

March 20th 2017, 7:00 pm

ثلاثة بدائل مفتوحة المصدر عن برنامج النشر المكتبي Microsoft Publisher

وادي التقنية

ثلاثة بدائل مفتوحة المصدر عن برنامج النشر المكتبي Microsoft Publisher

اعترفت لنفسي منذ أسابيع قليلة خلت أنَّني لم أتخلص تمامًا من المستندات الورقيَّة كما تخيَّلت أن أفعل ذلك بسهولة. وعندما فكرت بالأمر مليًّا، وجدت أنَّ صفًّا من الأوراق يحيط بي من جميع الاتجاهات بالرغم من أنَّ تعاملي مع الآخرين يكون عبر ملفاتٍ ووثائق إلكترونيَّة أغلب الأوقات، والماسح الضوئيُّ لديَّ لا يتوقف عن العمل لتحويل كلِّ ما يصلني من نسخٍ ورقيَّةٍ إلى مستنداتٍ إلكترونيَّةٍ.

كما أنَّني بحثت في مكتبي المنزلي ففوجئت بوجود الكثير من الأوراق ملقاةً هنا وهناك، أدركت آنذاك أنَّ وجود بعضٍ من الأشياء حولنا مرتبطٌ حتما بنُسخٍ ورقيّة كالرزنامات والإعلانات وأدلَّة الاستخدام. كما وجدت بعضًا من الإعلانات الملصقة لحدث ما وحتَّى قطعًا من أوراق الأوريغامي. نستطيع إثبات أنَّ الأشياء السابقة يمكن تحويلها إلى نسخٍ إلكترونيَّة، ولكن النتيجة ستكون أكثرُ كلفةً وأقلُّ إرضاءً لنا.

يوجد جزءٌ آخرُ للمعضلة، بالرغم من أنَّني أفضِّل استخدام كل ما هو إلكتروني لمشاركة المعلومات والرسائل، لكنَّ ذلك لا يعني أنَّ كلَّ شخصٍ أتفاعل معه سيفضل تلك الطريقة ويتقبَّلها. لذلك، سيكون الانتباه لحاجات جماهيرك أمرًا حرِجًا إن أردت أن تنتقل رسالتك لهم بوضوح. لذا عليك أن تحتكَّ بجماهيرك وأن تعرف حاجاتهم لكي تصل رسالتك كما تتوقع لها، وبذلك تقطع نصف الشوط. والأمر ليس هيِّنًا خاصَّةً عند وجود المنافسة الشديدة لجذب الجماهير ومن بينهم جماهيرك.

توجد طرائق عدَّةً لنشر كتابك إلكترونيًا، وإنَّ نشره ورقيًّا أمرٌ واردٌ. وسواءً اخترت تلك الطريقة أم غيرها للنشر فأنت تحتاج إلى تصميمٍٍ ينسجم مع محتوى الكتاب وغلافه وحتى الشعارات التي يحتويها.

يوجد في هذا العالم الكثيرُ من التطبيقات المحتكرة، مغلقة المصدر، لبعض الشركات والتي تقدِّم الكثير من أدوات التصميم، منها تطبيق "QuarkXpress" من شركة Quark وتطبيق "Adobe InDesign" الأكثر شهرةً من شركة Adobe. ويُعدُّ تطبيق النشر المكتبي "Publisher" من شركة مايكروسوفت الأكثر شهرةً وانتشارًا من بينهم جميعًا والذي يُستخدم على الأقلِّ من قِبل الأفراد و الشركات التجاريَّة الصغيرة. ويُعرف هذا التطبيق على أنَّه من أكثر التطبيقات استخدامًا على منصات النشر خصوصًا بتكلفته المنخفضة وسهولة استخدامه خاصَّة لمن اعتاد استخدام حزمة مايكروسوفت المكتبية "Microsoft Office".

أظنُّ أنَّك تفكِّر في ما ذُكر عن "التطبيقات المحتكرة" وأدواتها التصميمية الرهيبة. لا تقلق إذا كنت من مستخدمي نظام لينكس أو حتى إذا كنت عالقًا في نظامي ويندوز أو ماك، فهنالك خياراتٌ كثيرةٌ مفتوحة المصدر ستساعدك بالاستغناء عن تطبيق النشر المكتبي "Publisher" وتصميم كتابك القادم.

أولًا: Scribus

أحدثَ هذا التطبيق ضجَّةً كبيرةً عندما انخرط في مجال النشر المكتبي المفتوح المصدر. ستجد فيه بعد التطوير الحثيث والمستمر عبر عقدٍ من الزمن الكثير من الأدوات والميزات التي يحتاج لها مستخدمٌ متمرِّس. يستطيع هذا التطبيق الاستيراد من صيغ كثيرةٍ ومنوعةٍ، ويستخدم واجهةً سهلةً تجعله الخيار الأفضل للمستخدم المبتدئ كما أنَّه يدعم اللُّغة العربية. بالإضافة إلى أنَّ وجود مجتمع ضخم من المستخدمين يفيد بتوفير المصادر الكثيرة والدعم الخارجي الذي تحتاج له من كتبٍ وقوالب جاهزةٍ تلبِّي جميع الاحتياجات.

ثانيًا: LibreOffice

ألا تحتاج إلى تعلُّم استخدام تطبيقٍ جديدٍ من تطبيقات النشر المكتبي؟ تقدِّم لك هذه الحزمة من التطبيقات قدرات تصميمٍ رائعةٍ عبر العديد من تطبيقاتها. حيث يزودك التطبيق "Writer" بتصميماتٍ أساسيَّةٍ وبمقدرةٍ على الرسم تُوسِّعُ مجال استخدامه كثيرًا. ويعدُّ الخيار الأمثل للتصميمات المعقَّدة جزئيًا كالأخبار أو النشرات أو الأبحاث. بالنسبة لي، اعتدت على استخدام "Impress" لنشر الإعلانات العلمية أثناء القيام بمشاريع في الجامعة بالإضافة إلى استخدام النماذج الافتراضية في تطبيق "PowerPoint " واستيرادها.

ثالثًا: Markup

الخيار الثالث هو استخدام لغة Markup. إنها ليست بهذه السهولة وغير مفضَّلة لبعض المستخدمين، وقد لا تتمكن أغلب الأوقات من استخدام بعض محررات النصوص المتطورة مع هذه اللُّغة والتي تُظهر النتيجة النهائيَّة للنص أمامك أثناء كتابتك الكود. وإذا كنت تعرف القليل عن هذه اللغة، فلماذا لا تطور خبرتك في استخدامها؟ ولا أعني بالضبط استخدامLaTeX فقط، وهو نظام لمعالجة المستندات النصية وتنسيقها ويعتمد على لغة markup ويتميز بسهولته وشموليته وهو مفتوح المصدر ومتوفرٌ على جميع أنظمة التشغيل، بل إنَّ استخدام لغة HTML أو لغة CSS، وهما الأساس في تصميم صفحات الويب والتعامل مع النصوص باحترافٍ كبيرٍ، سيكون كافيًا لك لمعظم المشاريع التي تقوم بها. كما ستجعلك هذه اللغة تستخدم الكثير من الأدوات الموجودة لديك مسبقًا بدءًا من محرر النصوص البسيط وحتى تطبيقاتٍ أكثر تطورًا، حيث تقوم بادئ ذي بدءٍ بالعمل مع صفحات الويب ثم نهايةً تحوُّل ما كتبته إلى نسخةٍ إلكترونيَّة جاهزة للطباعة باستخدام PDF عبر أدواتٍ للتحويل. قد تكون هذه اللغة بديلةً عن سابقاتها ولكنَّها تُستخدم للتصميم في مجال النصوص بشكلٍ احترافيٍ وتلبي الكثير من الاحتياجات.

ولكن لماذا نستخدم لغة Markup في مجال التصميم؟ إننا نستخدمها لعدَّة أسبابٍ. أولها بساطة النص، حيث يمكنك التعديل والتحديث على النص مباشرةً و بسهولةٍ من خلال استخدام أدواتٍ مختلفة أو من سطر الأوامر. ثانيها تقليل وقت التنسيق والإخراج عند العمل على وثائق متشابهة سواءً للويب أو للطباعة. ثالثها أنها لغة قابلة للقراءة، وهذه الخاصيَّة المفضَّلة لديَّ، حيث أحصل على ما أتوقع دائما عند كتابة الكود أثناء التصميم.

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


 

ترجمة -وبتصرف- للمقال:‏ ‎3 open source alternatives to Microsoft Publisher لصاحبه Jason Baker

رابط المقال: هنا

جميل بيلوني الخميس, 2017/03/16 - 10:34م
disqus

March 16th 2017, 2:55 pm

حكاية ويكيبيديا

وادي التقنية

حكاية ويكيبيديا

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

حكاية ويكيبيديا هو كتاب إلكتروني يتحدث عن موسوعة ويكيبيديا الشهيرة. يناقش المؤلف عبّاد، وهو كاتب ومراجع وإداري في ويكيبيديا منذ عشر سنوات، كيف يستطيع المتطوّعون في ويكيبيديا كتابة مقالات موسوعية وضبط جودتها ودقتها العلمية والأكاديمية.

<--!break-->

يعرج الكتاب على الكثير من المواضيع الشائقة حول ويكيبيديا مثل الركائز الخمس للوكيبيديا ، ولماذا يحذف 40% من المقالات في اليوم الأول من نشرها ، سياسة منع التحرير، و قضية الجدلية حول حيادية الموسوعة، مأساة المحتوى العربي.

يُعتبر هذا أول كتاب باللغة العربية يختصُّ بالحديث عن موسوعة ويكيبيديا. مؤلّف الكتاب هو عباد ديرانية، إداري سابق ومحرر في ويكيبيديا منذ تسع سنوات. وقد نشر العمل بشكل مجاني وتحت رُخصة المشاع الإبداعي (كريتف كومنز) عبر منصّة كتب عربية حرة، وهو موقع عربيّ يختصُّ بنشر الكتب المُعفَاة من حقوق الملكية الفكرية. وجاء الإصدار برعاية ويكيميديا بلاد الشام، وهي منظمة غير ربحية تعتبر الممثل الرسمي لويكيبيديا ومشاريعها الشقيقة في أربعة دولة عربية: لبنان وسوريا والأردن وفلسطين.

يُمكن قراءة الكتاب عبر الإنترنت بصُورة مجانية، من خلال هذا الرابط ، على موقع كتب عربية حرة.

الرابط البديل من هنا.

زايد السبت, 2017/02/25 - 9:22ص
disqus

February 25th 2017, 1:27 am

كودي 17.0

وادي التقنية

كودي 17.0

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

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

حصلت الواجهة الافتراضية لكربتون على تحديث شامل تحت معيار التصميم واجهة 10 أقدام (تصميم مخصص للتلفاز) تحت اسم Estuary ، بينما حصلت شاشات اللمس على واجهة مخصص لهن تحت اسم Estouchy، و ليكتمل العقد حصل متصفح الويب على واجهة جديدة هو الأخر تحت اسم Chorus2.

محرك الفيديو حصل بدوره على الكثير من التحسينات في الثبات و المزامنة الصوت مع الفيديو و تبديل معدل التحديث و فك و ترميز الفيديو على جميع المنصات ، و هناك إضافات جديدة تدعم بروتوكلات البث مثل RTMP و MPEG-DASH و SmoothStream و NXMSL ، وتسريع تشغيل DVD عن طريق العتاد .

وعلى منصة أندرويد أصحب كودي 17 يتبع المعيار المتبع للصوت في أندرويد و يتطلب أندوريد 5 كحد أدنى ، و جميع الأجهزة التي تطبق تطبق AudioTrack الإصدارة 23 (الموجودة في اندرويد 6) فإن كودي 17 يدعم التمرير للأنظمة الصوتية DTS-HD و DTS-X و Dolby TrueHD و Dolby ATMOS ، و للمعلومة كودي و منصة أندرويد للتلفاز أصبحت سوق متكامل و رافد لكودي.

التحميل من هنا.

 

زايد الأربعاء, 2017/02/08 - 7:55م
disqus

February 8th 2017, 11:25 am

بلازما 5.9 تبدأ 2017 بأناقة

وادي التقنية

بلازما 5.9 تبدأ 2017 بأناقة

سطح مكتب بلازما 5.9

أعلن مجتمع كدي عن إطلاق أول تحديث لسطح المكتب بلازما لهذه السنة 2017 تحت اسم بلازما 5.9 ، و يأتي هذه التحديث بالكثير من الإضافات التي تزيد من الإنتاجية و تحسن بيئة العمل، و يترافق مع هذه الإصدارة مواصلة دعم الإصدارة طويلة الدعم من سطح مكتب بلازما 5.8 لمن يحب أن الاستقرار.

إنتاجية أفضل

أول هذه الإضافات هي إضافة معاينة متفاعلة للإشعارات ، وأوضح موضع لهذه الإضافة هو عند أخذ لقطة من سطح المكتب باستعمال اختصار Shfit+Print ٍscr الخاص ببرنامج Spectacle؛ حيث يمكن سحب الصورة من منطقة الإشعارات مباشرة لنافذة المحادثة أو البريد الإلكتروني أو المتصفح ،

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

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

وفي الإضافة الثالثة استعادت ودجة الأيقونة (التي تنتج من سحب تطبيق أو مستند إلى سطح المكتب) مربع الخيارات ؛ فأصبح بالإمكان تغير الأيقونة أو نص التعريف أو مجلد العمل وغيرها من الخصائص، كذلك أصبحت قائمة السياق تدعم خاصية "افتح باستخدام".

خيارات كثيرة يمكن بها تخصيص الأيقونة

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

يمكن كتم الصوت مباشرة من على شريط المهام

ولم ينسى تطبيق المطلق السريع من التحسينات فأصبح يدعم قائمة الإجراءات السريعة مثل "شغل في الطرفية" و "افتح المجلد الحاوي".

تحسينات بصرية

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

القوائم العالمية

لقد عادت القوائم العالمية؛ الميزة التي كان تتمتع بها كدي حيث يمكن فصل شريط القائمة من نافذة التطبيق ، هذه الميزة لها محبيها.

القوائم العالمية

تصدير واستيراد أكثر قوة لسمات سطح المكتب

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

لقد تحقق الحلم، فقد أصبح الآن بالإمكان تغيير سمة التطبيقات أيضا ، مع إمكانية استيراد وتصدير سمات كاملة (الأيقونات و سمة سطح المكتب و سمة التطبيقات) مع بعضها و مشاركتها في مخزن كدي.

وحدة جديدة لضبط الشبكات

خطوة طبيعية فبعد تحديث التطبيق المصغر لشبكة في صينية النظام ، جاء دور وحدة الضبط حيث أصبح لديها واجهة جديدة بتقنيات عصرية مثل QML.

وحدة ضبط الشبكات بحلة جديدة

ويلاند

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

- القدرة على أخذ صورة للشاشة و استعمال منتقي الألوان ، محبي كامل الشاشة سيسعدوا بالنوافذ المكبرة عديمة الحواف.

- يمكن الآن حصر المؤشرات بواسطة التطبيقات ،و أضيف دعم الإيماءات و الحركات النسبية للألعاب.

- أصبحت أجهزة الإدخال أكثر قابلية للضبط ويمكن حفظ الضبط بين الجلسات ، و أضيف وحدة لضبط لوحة اللمس.

- عن استخدام نمط بريد يمكن الآن سحب التطبيقات بواسطة النقر على مساحة فارغة في الواجهة مثل ما هو عليه في اكس.

- عند تشغيل تطبيقات اكس فأن أيقونة النافذة تظهر بشكل جيد في اللوح.

- أصبحت الألواح تدعم ميزة الإخفاء التلقائي.

- أصبح بالإمكان تغيير تشكيلة الألوان للنوافذ.

لوحة اللمس أصبح لها وحدة خاصة لضبطها على ويلاند

زايد الثلاثاء, 2017/02/07 - 6:48م
disqus

February 7th 2017, 10:34 am

إطلاق ليبرأوفيس 5.3

وادي التقنية

إطلاق ليبرأوفيس 5.3

أعلنت مؤسسة المستند المفتوح عن إصدار ليبرأوفيس 5.3 بعد نص سنة من إصدار السابق، و قد ساهم المئات من المطورين في إضافة وتحسين ليبرأوفيس في إصدارته الأخيرة؛ حيث قاموا ب9750 تعديل شمل إضافة مليون ونصف سطر وحذف 360 ألف سطر ، وتصف المؤسسة بأن هذه الإصدارة أغنى إصدارة بالمزايا الجديدة في تاريخ البرنامج.

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

ليبرأوفيس رايتر يعمل على المتصفح

أهم المزايا في إصدارة 5.3

من أهم التغييرات العامة في هذه الإصدارة:

- توحيد محرك إخراج النصوص ليصبح حرفباز HarfBuzz هو محرك النصوص في منصة ويندوز و ماك ، مما يسهل عملية تتبع العلل ، و اختفاء العلل التي كانت موجودة في منصة وغير موجودة في منصة أخرى، و بالإضافة إلى تحسين المحاذاة بالكشيدة في اللغة العربية.

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

- دعم استيراد وتصدير تواقيع PDF ، ودعم معيار تواقيع الإلكترونية المتقدمة لPDF المعروف ب PAdES ، ومعيار XAdES لملفات ODF.

- إضافة الوضع الآمن عن الذي يمكن من خلاله بدء ليبرأوفيس لتعديل الإعدادات التي ضيعت البرنامج ، بالإضافة إلى تسهيل مربع استرجاع الملفات.

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

- دعم إدراج ملف PDF كصورة.

في برنامج رايتر

- إضافة مربع مستقل للتنقل بين الصفحات مما يسهل العملية كثيرا.

- لقد طورت ميزة التنسيق التلقائي للجداول لتصبح ميزة مستقلة تحت اسم أنماط الجداول بحيث أصبح بالإمكان الحفاظ على نمط أو تصميم الجدول عند التحرير أو إضافة أو حذف أي صف أو عمود أو بيانات ، إضافة إلى دعم استيراد و تصدير أنماط الجداول في ملفات ODF .

- إضافة أدوات رسم جديدة كنت موجودة في السابق في برنامج العرض Impress و برنامج Draw.

في برنامج كالك

- إضافة أدوات رسم جديدة كنت موجودة في السابق في برنامج العرض Impress و برنامج Draw.

- تحسين الأنماط الافتراضية للخلايا ، و تمكين من تحميل هذه الأنماط من ملف المستخدم.

- إضافة دالة الوسيط أو الأوسط Median في الجدول المحوري pivot table و التنسيق الوحيد الذي يدعم هذه الميزة هو ODS.

- يمكن الآن البحث عن عن دالة معينة في مربع إدخال الدوال.

في برنامج امبرس

- إمكانية ربط الصور عوضا عن تضمينها عند إدراج صور من الألبوم.

- عند بدء برنامج امبرس يظهر مربع اختيار القوالب لتبدأ بأحدها.

- إضافة قالبين افتراضيين Vivid و Pencil ، مع تحسين جمعي القوالب المتوفرة.

يمكنكم تحميل هذه الإصدارة من هنا.

زايد الاثنين, 2017/02/06 - 11:11م
disqus

February 6th 2017, 2:33 pm

انطلاق مسابقة " سمو " لزيادة زيادة عدد المقالات العربية في ويكيبيديا

وادي التقنية

انطلاق مسابقة " سمو " لزيادة زيادة عدد المقالات العربية في ويكيبيديا

تنطلق في الأول من شباط (فبراير) 2017 "مُسابقة سمو".  تسعى  المسابقة إلى إثراء المحتوى العربي في ويكيبيديا عن طريق زيادة عدد المقالات وخاصة في المجالات الأقل محتوى كالعلوم والطب والهندسة، حيث يُكافأ المشاركون الذين يساهمون ضمن شروط المسابقة مادياً بتبرعٍ كريم من مؤسسة "سمو المجتمع" في المملكة العربية السعودية.

أهداف المسابقة:

  • زيادة عدد المقالات العربية ذات المحتوى الموسوعي المتكامل.‏
  •  ‏تشجيع المساهمين الجدد للاستمرار في التحرير خارج نطاق المسابقة، حيث تحدي المشترك لنفسه سيكون عاملاً مُحفّزاً للاستمرارية وزيادة العطاء.‏
  •  ‏إثراء المحتوى العربي العلمي، والمحتوى المختار.

 للاطلاع على شروط المشاركة، يرجى زيارة صفحة المسابقة في ويكيبيديا العربية من هنا.

Fahad الثلاثاء, 2017/01/31 - 8:47ص
disqus

January 31st 2017, 12:05 am

مقدمة إلى Ansible

وادي التقنية

مقدمة إلى Ansible

"أنسبل هو أداة أتمتة وأركسة ونشر. لحظة! لحظة! أداة ماذا؟ وماذا؟ وماذا؟ الأتمتة Automation تعني القيام بالأشياء بطريقة ذاتية حيث تصف المهام اللازم إتمامها لإنجاز المطلوب ويتم ذلك بطريقة آلية دون تدخل unattended. وهي تسهل إدارة عدد كبير جدا من الخوادم ووضعها في الحالة المطلوبة.

أما الأركسة orchestration فهي من الأوركسترا حيث تكون أنت الموسيقار/المايسترو الذي يتنسق آلاف العازفين دفعة واحدة وبالتتالي ويشير لهم ماذا يفعلون ومتى وينقل اللحن من جهة لآخرى."

تابعوا الأستاذ مؤيد السعدي في هذه المقدمة حول أداة انسبل.

زايد السبت, 2017/01/28 - 8:58م
disqus

January 28th 2017, 12:20 pm

صدور Wine 2.0

وادي التقنية

صدور Wine 2.0

أعلن فريق تطوير مشغل تطبيقات ويندوز ( واين) عن إطلاق نسخة ٢.٠ المستقرة. جاءت هذه الإصدارة ثمرة جهود تطوير استمرت سنة كاملة و حوت على ٦٦٠٠ تغيير وتعديل. وأهم ميزة رئيسية هي دعم تشغيل مايكروسوفت أوفيس ٢٠١٣ و دعم بنية ٦٤ بت على نظام ماك أو أس. هذه الإصدارة هي أول إصدارة بنظام توقيت الإصدارات الجديد الذي اعتمده الفريق بحيث تصدر  بشكل سنوي، بحيث تؤجل المميزات غير المكتملة إلى الإصدار القادم وهذا تشمل دعم HD و تعريف رسوميات أندرويد.

ما الجديد في واين ٢.٠
دعم المزيد من خصائص DirectWrite  المستخدم في الألعاب.
- دعم تضمين الخطوط في ملفات PDF.
- تحديث جداول الحروف إلى نسخة 9.0.0 من معايير اليونيكود.
- دعم ملفات الإقليمية للغة الفارسية.
- دعم أفضل للغات التي تكتب من اليمين إلى اليسار

وغيرها الكثير من المميزات الجديدة التي يمكن أن تطلع عليها من هنا.

Fahad الخميس, 2017/01/26 - 9:47ص
disqus

January 26th 2017, 1:10 am

شركة ديل باعت أجهزة محمولة بنظام لينكس بأكثر من عشرات الملايين الدولارات

وادي التقنية

شركة ديل باعت أجهزة محمولة بنظام لينكس بأكثر من عشرات الملايين الدولارات

في أحد المقابلات المرئية قال  Barton George أحد مهندسي  شركة DELL ، أن  الشركة باعت أجهزة محمولة بقيمة عشرات الملايين دولارات محمل فيها نظام أوبنتو بشكل افتراضي.
ثم استطرد المهندس بالقول أن الاستثمار المبدئي كان فقط ٤٠ ألف دولار وخلال أربع سنوات وصلت المبيعات عشرات الملايين الدولارات.
وعندما سئل لماذا لا تثبتوا ردهات أو أوبن سوز  بشكل افتراضي؟ قال أن  الشركة  لا تريد أن  تشتت جهودها،  وأن  عملهم  في تعريفات الأجهزة سيرسل إلى  المنبع وبالتالي سيصل لتلك التوزيعات في النهاية.
لقد نمت مبيعات أجهزة ديل المخصصة للمطورين من جهاز واحد لتصبح الآن خط إنتاج يحمل الكثير من التنوعات تناسب معظم حاجيات المطورين.
يمكنك الاطلاع على خط إنتاج شركة ديل للمطورين من هنا.

Fahad الخميس, 2017/01/19 - 9:28ص
disqus

January 19th 2017, 12:58 am

كتاب تعلم JavaScript نظرة تفصيلية على الكائنات

وادي التقنية

كتاب تعلم JavaScript نظرة تفصيلية على الكائنات

بعد مفاوضات مع دار نشر O'Reilly وأخذ إذن المؤلف، وبعد جهدٍ استغرق عدِّة أشهر، انتهى العمل على كتاب «تعلم JavaScript» الذي ترجمه عبد اللطيف ايمش عن كتاب «JavaScript Enlightenment» لصاحبه Cody Lindley، والذي نَشَرتَه دار نشر O'Reilly لاحقًا بنفس الاسم.
يأتي هذا الكتاب ليشرح الكائنات في JavaScript وعلاقتها مع بعضها، ويوضِّح آلية الوراثة المُتّبَعة في JavaScript، مما يفيد مَن أراد التعمق في اللغة وفهم كيفية عملها.
يقع هذا الكتاب في 250 صفحة من المحتوى التقني المدعَّم بأمثلة عملية قابلة للتجربة فوريًا على المتصفح، وهو مقسَّمٌ إلى ستة عشر فصلًا تشرح مختلف أنواع الكائنات المتوافرة في JavaScript.
يستهدف هذا الكتاب فئة المبرمجين متوسطي المعرفة بلغة JavaScript، أي أنَّه يفترض معرفةً مسبقةً بهذه اللغة أو تعاملًا مع إحدى المكتبات المكتوبة بها.
مؤلف الكتاب Cody Lindley هو مطور واجهة أمامية front-end وجافا سكربت ولديه خبرة تزيد عن ١٦ سنة في تطوير HTML و CSS و جافا سكربت.
لتنزيل الكتاب اضغط هنا.
يجدر بالذكر أنَّ هذا الكتاب برعاية وادي التقنية، وستُنشَر كتبٌ أخرى من نفس السلسلة في وقتٍ لاحق على موقعنا.

Fahad الاثنين, 2017/01/16 - 8:13م
disqus

January 16th 2017, 11:25 am

صدور Synfig 1.2.0

وادي التقنية

صدور Synfig 1.2.0

أعلن مطورو  برنامج التحريك الرسومي ثنائي البعد Synfig Studio عن إطلاق الإصدارة ١.٢ وجاءت هذه الإصدارة كتتويجا لعم دام ١٦ شهرا. أهم مميزات هذه الإصدارة:
١- إعادة كتابة محرك التصيير بالكامل وذلك من أجل جعله أسرع ويستهلك ذاكرة أقل.
٢- إضافة ميزة مزامنة الصوت مع حركة الشفاه عبر برنامج Lipsync
٣- إعادة تصميم نافذة الخيارات .
٤- إضافة طبقة جديدة " الوقت الحر"
٥- إصلاح العديد من المشاكل البرمجية والانهيارات.
يمكنكم تنزيل هذه الإصدارة من هنا.

Fahad الأحد, 2017/01/15 - 9:16ص
disqus

January 15th 2017, 12:45 am

صدور إنكسكيب ٠.٩٢

وادي التقنية

صدور إنكسكيب ٠.٩٢

أعلن مطوروا برنامج الرسم المتجهي الحرة إنكسكيب عن إصدار النسخة ٠.٩٢ ، هذه الإصدارة جاءت بالعديد من المميزات الجديدة والمتقدمة، ولعل من أهمها:
- دعم ميزة التدرج اللوني المتشابك.
- دعم العديد من خصائص معايير SVG2 و CSS3
- تغيير الدقة الافتراضية من 90dpi إلى 96dpi  للتوافق مع معايير CSS.
- الانتقال من نظام البناء autotools إلى نظام cmake ( هذا خاص بالمطورين)
- دعم مميزات الخطوط المتقدمة
- تحسين دعم النصوص الرأسية.
والعديد والعديد من المميزات الجديدة التي يمك مشاهدتها بالتفاصيل من هذه الصفحة.
لتنزيل البرنامج من هنا ، و للبدء بتعلم هذا البرنامج الرائع تابع هذه الدروس بالعربية.

Fahad الأربعاء, 2017/01/11 - 9:39ص
disqus

January 11th 2017, 12:58 am

دروس إنكسكيب الرسمية تعلم انكسكيب باحتراف

وادي التقنية

دروس إنكسكيب الرسمية تعلم انكسكيب باحتراف

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

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

Fahad الأربعاء, 2017/01/04 - 2:08م
disqus

January 4th 2017, 5:44 am

دروس إنكسكيب : نصائح وخدع بصرية

وادي التقنية

دروس إنكسكيب : نصائح وخدع بصرية

في هذا الدرس التعليمي سوف أريكم مختلف النصائح والإرشادات والخدع التي تعلمها المستخدمون من خلال استخدام إنكسكيب، وبعض الخصائص المخفية التي يمكنها أن تساعدكم في تسريع مهام الإنتاج.

وضع أشكال شعاعية متكررة بالأداة Tile Clones

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

إذا كان نمطك الشعاعي يحتاج إلى 3، 4، 6، 8، 12 عنصر فقط. فيمكنك تجربة الخيارات: P3، P31M، P3M1، P4، P4M، P6، أو P6M ذو التماثل. وهذا سيعمل جيداً في أشكال كالأشكال الثلجية أو ما شابه ذلك. ولكن مع ذلك هناك طريقة أكثر عمومية، كما يلي:

اختر التماثل P1 ثم بالذهاب إلى علامة التبويب تحويل Shift وقم بوضع الخيارين Per row/Shift Y و Per column/Shift X إلى 100%. والآن ستصبح جميع القطع مستنسخة مجمّعة فوق النسخة الأصلية بالضبط. كل ما عليك القيام به الآن هو الذهاب إلى علامة التبويب الخاصة بالدوران Rotation، ونقوم بتعيين بعض الزوايا الخاصة بالدورات لكل عمود، ثم ننشأ ذلك النمط ذو الصف الواحد والعديد من الأعمدة. على سبيل المثال هنا، هذا النمط تم إنشاؤه بصف واحد أفقي وثلاثين عمود، ودرجة دوران كل عمود هي 6 درجات:

هناك شيء آخر رائع يمكنك القيام به باستخدام هذه الصفوف والأعمدة. هذا النمط هنا يتألف من عشرة أعمدة و8 صفوف، مع دوران 2 درجة في الصف الواحد، و 18 درجة لكل عمود. كل مجموعة من الخطوط هنا هي عمود، وبالتالي فالمجموعات هي 18 بين بعضها البعض. داخل كل عمود، الفرق بين الأجزاء الفردية هو 2 درجة:

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

كيفية القيام بالتقطيع (مناطق تصدير مستطيلة متعددة)

نقوم بإنشاء طبقة جديدة،وننشأ مستطيلات غير مرئية تغطي أجزاء من صورتك. نتأكد من أن المستند الذي نعمل عليه يستخدم وحدة قياس البكسل (وذلك يكون افتراضياً)، نقوم بتشغيل خيار الشبكة grid والإطباق snap على المستطيلات بحيث أن كل شبكة تمتد على عدد كامل من وحدات البكسل. نعطي كل مستطيل اسم تعريف ذو معنى ونقوم بتصديره إلى ملف خاص به (من القائمة: File > Export PNG Image أو بالاختصار Shift+Ctrl+E). ستكون المستطيلات قادرة هنا على تذكر أسماءها. بعد ذلك، من السهل جداً القيام بإعادة تصدير بعض المستطيلات التي نعمل عليها: نقوم بالتبديل إلى طبقة التصدير، نستخدم المفتاح Tap لتحديد المستطيلات التي تحتاجها (أو استخدم أسماءها للبحث)، وننقر على تصدير ضمن مربع الحوار Export. أو يمكنك كتابة أوامر ملف باتش أو سكريبت لتصدير جميع المناطق معاً، بواسطة أمر مثل:

inkscape -i area-id -t filename.svg

المجال t يخبر البرنامج باستخدام اسم الملف الذي يذكره، وإلا فإنه يمكنك استخدام اسم ملف التصدير مع الحرف e. وخيار بديل آخر، يمكنك استخدام اللاحقة مما يلي: Extensions > Web > Slicer أو Extensions > Export > Guillotine وستحصل على نتائج مماثلة.

التدرجات غير الخطية

النسخة 1.1 من SVG لا تدعم التدرجات الغير خطية (أي التدرجات التي لا تملك تحويل غير خطي بين الألوان). ولكن يمكنك محاكاة ذلك بالتدرجات ذات الوقوف المتعدد.

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

وهذه تدرجات متعددة غير خطية مختلفة:

التدرجات الشعاعية غير المركزية وغير المنتظمة

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

المحاذاة إلى وسط الصفحة

من أجل محاذاة شيء إلى المركز أو إلى جانب الصفحة، نقوم بتحديد الكائن أو المجموعة ومن ثم نختار Page من Relative to، ضمن مربع الحوار الخاص بالمحاذاة والتوزيع (والذي نفتحه بالضغط على (Ctrl+Shift+A).

تنظيف المستند

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

السمات المخفية ومحرر XML

محرر XML (Shift+Ctrl+X) يسمح لك بتغيير جميع جوانب المستند تقريباً من دون استخدام أي محرر نصوص خارجي. أيضاً، إنكسكيب يدعم عادةً الميزات الإضافية لـ SVG بشكل أكبر من الوصول إليها من خلال واجهة المستخدم الرسومية GUI. وبذلك يكون محرر XML هو الطريقة الوحيدة للوصول إلى هذه السمات (إذا كنت تعرف SVG جيداً).

تغيير وحدة قياس المسطرة

بشكل افتراضي، تكون وحدة القياس المستخدمة في المسطرة ضمن البرنامج هي البكسل (الوحدة المستخدمة في SVG، وتساوي 0.8 نقطة أو 90/1 بوصة). وهي أيضاً الوحدة المستخدمة في عرض الإحداثيات ضمن الزاوية اليسرى السفلي والمختارة مسبقاً ضمن جميع وحدات القياس. (يمكنك دائماً أن تحوم بمؤشر الماوس فوق المسطرة لرؤية التلميحات حول الوحدات المستخدمة). لتغيير هذا الخيار، يمكنك فتح تفضيلات المستند Document Preferences (Ctrl+Shift+D) وتغيير الوحدات الافتراضية ضمن علامة التبويب Page.

Stamping

لإنشاء عدة نسخ من الكائن عدة مرات، يمكنك استخدام الدمغ أو Stamping. فقط نقوم بسحب الكائن (أو تغيير حجمه أو تدويره)، وأثناء ضغطنا على زر الماوس، نضغط على المفتاح Space. وهذا سينشئ سمة مميزة لهذا الكائن، ويمكننا تكرار ذلك عدة مرات كما نريد.

أداة القلم

ضمن أداة القلم (منحنيات بيزيير)، يمكننا استخدام أي من الخيارات التالية لإنهاء الخط الحالي:

  • الضغط على المفتاح Enter

  • النقر مرتين على زر الماوس الأيسر

  • تحديد أداة القلم مرة أخرى

  • تحديد أداة أخرى

ننتبه إلى أنه عندما يكون المسار غير مكتمل (يظهر باللون الأخضر، مع تلوين القطعة الحالية بالأحمر) فإنه لا يوجد أي كائن حالي ضمن المستند حتى الآن. ولذلك، لإلغائه يمكنك الضغط على Esc (لحذف المسار بأكمله) أو المفتاح Backspace (للتخلص من القطعة الأخيرة فقط من المسار الحالي) وذلك بدلاً من استخدام أمر التراجع كون المسار غير مشكّل بعد.

لإضافة مسار فرعي جديد إلى المسار الموجود، نحدد المسار ونبدأ بالرسم من النقطة المطلوبة مع الضغط على مفتاح Shift. ولكن، إذا أردت إكمال المسار ببساطة، ليست هناك حاجة للضغط على Shift، فقط ابدأ بالرسم من إحدى نهايتي المسار المحدد.

إدخال قيم يونيكود (المحارف القياسية)

وأنت تقوم باستخدام أداة النصوص، يمكنك الضغط على Ctrl+U للتبديل بين نظام يونيكود والنظام العادي. ضمن نظام الينونيكود، تصبح كل 4 أرقام ست عشرية تقوم بكتابتها محرفاً واحداً من نظام اليونيكود، مما يسمح لك بإدخال أي رموز تريدها (طالما أنك تعرف ترميز اليونيكود والخطوط التي يدعمها). لإنهاء الإدخال لمحرف اليونيكود الذي تريده، يمكنك الضغط على المفتاح Enter. على سبيل المثال، نضغط على المفتاح Ctrl+ U 2 0 1 4 ثم على المفتاح Enter لإدخال المحرف، وبذلك ستحصل على الشرطة (-). يمكنك الضغط على المفتاح Esc لإنهاء عملية الإدخال بأكملها.

استخدام الشبكة لرسم الإيقونات

لنفترض أنك تريد إنشاء رمز ما ذو 24 × 24 بكسل. نقوم أولاً بإنشاء لوح رسم ذو أبعاد 24×24 بكسل (نستخدم تفضيلات المستند من أجل ذلك) ونعين قيمة الشبكة 0.5 بكسل (خطوط الشبكة 48×48). الآن، إذا قمت بمحاذاة الكائنات حتى خطوط الشبكة، وقمت بوضع علامة على الكائنات لمعرفة خطوط الشبكة الغريبة ذات العرض ذو العلامات بالبكسل ليصبح أرقاماً، وقمنا بتصدير ذلك بالقيم الافتراضية 90 نقطة في البوصة dpi (بحيث يصبح كل 1 بكسل هو 1 بكسل نقطي)، سنحصل على صورة نقطية واضحة بدون حواف لا لزوم لها.

تدوير الكائنات

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

أو يمكنك التدوير بواسطة لوحة المفاتيح عبر الضغط على المفاتيح [ و ] للتدوير 15 درجة، أو على Ctrl+[ و Ctrl+] للتدوير 90 درجة. نفس المفاتيح مع الضغط على Alt يؤدي إلى دوران بطيء بحسب حجم البكسل.

إسقاط ظل للكائن

يدعم برنامج إنكسكيب فلتر SVG للتمويه الضبابي، كيف يمكنك بسهولة إنشاء ظلال واضحة للكائنات. قم بتحديد الكائن، ثم قم بتكرير بالضغط على Ctrl+D، ثم اضغط على المفتاح PgDown لوضعه تحت الكائن الأصلي، ثم بتحريكه قليلاً إلى اليمين وإلى الأسفل من الكائن الأصلي. ثم قم الآن بفتح مربع الحوار للملء والخطوط الخارجية Fill And Stroke وقم بتغيير قيمة الضبابية Blur إلى 5.0 على سبيل المثال. وستحصل على المطلوب.

وضع النص على مسار

لوضع النص على طول منحني، نقوم بتحديد النص والمنحني معاً ونختار وضع على مسار (Put on Path) من القائمة نص (Text). سوف يبدأ النص من بداية المسار. بشكل عام من الأفضل القيام بإنشاء مسار محدد لتركيب النص عليه، بدلاً من وضع النص على بعض العناصر الرسومية الأخرى، وهذا سيعطيك المزيد من التحكم بالشكل من دون جعل النص مشدوداً.

تحديد الأصل

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

الشفافية، التدرجات، وتصدير بوستسكريبت

صيغة البوستسكريبت (PostScript أو EPS) لا تدعم الشفافية، لذلك يجب عليك أن لا تستخدمها أبداً إذا كنت تريد تصدير ملفات بهذه الصيغة. في حالة كان هناك شفافية مسطحة وتتراكب فوق اللون المسطح، فمن السهل إصلاح ذلك: نحدد إحدى الكائنات ذات الشفافية، ونبدل إلى أداة انتقاء اللون Dropper (F7)، نتأكد من أنها في نمط اختيار اللون المرئي دون ألفا (pick visible color without alpha). ثم نضغط على الكائن نفسه. سيؤدي ذلك إلى اختيار اللون المرئي وإسناده مرة أخرى إلى هذا الكائن، ولكن هذه المرة من دون شفافية. نكرر هذه العملية من أجل جميع الكائنات ذات الشفافية. إذا كان الكائن ذو الشفافية يتراكب فوق عدة مناطق ألوان مسطحة، ستحتاج إلى تقطيعه إلى أجزاء وتطبيق ذلك على كل قطعة.

Fahad الأربعاء, 2017/01/04 - 1:46م
disqus

January 4th 2017, 5:12 am

دروس إنكسكيب : الاستكمال

وادي التقنية

دروس إنكسكيب : الاستكمال

مقدمة

يقوم الاستكمال (Interpolate) باستكمال خطي بين اثنين أو أكثر من المسارات المحددة. وهذا يعني بشكل أساسي أنه يملأ الثغرات بين المسارات ويحولها وفقاً لعدد الخطوات المعطاة.

لاستخدام أداة الاستكمال، نقوم بتحديد المسارات التي نرغب بتحويلها، ثم نختار ما يلي من القائمة:

Extensions > Generate From Path > Interpolate

قبل استدعاء الاستكمال، يجب أن تكون الكائنات التي نرغب بتحويلها مسارات. ويمكن القيام بذلك عبر تحديد الكائنات المطلوبة واختيار Path > Object to Path أو الضغط على مفاتيح الاختصار (Shift+Ctrl+C). إذا لم تكن الكائنات عبارة عن مسارات، فلن تقوم الأداة بأي شيء.

الاستكمال بين مسارين متطابقين

أبسط استخدام للتمديد بالاستكمال هو استكمال الأشكال بين مسارين متطابقين. عند استدعاء خيار التمديد (الاستكمال)، فإن النتيجة ستكون هي ملء المساحة بين المسارين المتطابقين بنفس الشكل الأصلي. يحدد عدد الخطوات عدد مرات التكرار المطلوبة.

لنأخذ المسارين التاليين على سبيل المثال:

نقوم الآن بتحديد المسارين معاً، ونقوم بتشغيل أداة الاستكمال بحسب الإعدادات الموضحة في الصورة التالية:

وكما ترون في الصورة السابقة، فالنتيجة هي ملأ الفراغ بين المسارين بـ 6 (عدد الخطوات Steps) تكرارات للمسارات بنفس الشكل الأصلي. ونلاحظ أيضاً أن أداة الاستكمال تقوم بتجميع هذه الأشكال معاً.

الاستكمال بين مسارين مختلفين

عندما يتم تطبيق أداة الاستكمال بين مسارين مختلفين، فإن البرنامج يقوم يتحويل المسار من واحد إلى آخر بشكل تدريجي. والنتيجة التي ستحصل عليها هي تسلسل للتحويل بين المسارين، مع انتظام لا يزال محدداً من قِبل قيمة عدد خطوات الاستكمال (Interpolation Steps).

على سبيل المثال، لنأخذ المسارين التاليين:

نقوم الآن بتحديد المسارين وتشغيل أداة توسيع الاستكمال، والنتيجة يجب أن تكون كما يلي:

وكما يمكنكم أن تروا من النتيجة أعلاه، إن المسافة بين المسار الدائري والمسار ذو الشكل المثلث ملأت بستة مسارات تتدرج من إحداهماإلى الثاني.

عند استخدام الاستكمال بين مسارين مختلفين، فإن موضع عقدة البداية لكل مسار يكون مهماً. لإيجاد عقدة البداية للمسار، نقوم بتحديد المسار، ثم نختار أداة العقد (Node Tool) بحيث تظهر عقد المسار، ثم نضغط على المفتاح Tab. العقدة التي يتم تحديدها الآن، هي عقدة بداية المسار.

انظر إلى الصورة أدناه، والتي تتطابق المثال السابق، غير أن نقطة البداية معروضة هنا باللون الأخضر وتمثل عقدة البداية لكل مسار:

قمنا بتطبيق الاستكمال هنا مع عقدة البداية المحددة ضمن المسار.

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

نمط الاستكمال

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

في الأمثلة أعلاه استخدمنا نمط الاستكمال 2، وكانت النتيجة:

والآن لنقارن ذلك بنمط الاستكمال 1:

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

الأُس (Exponent)

يقوم معامل الأس بالتحكم بالتباعد بين خطوات الاستكمال. الأس 0 يجعل التباعد بين جميع النسخ متساوياً.

وهذه نتيجة لمثال آخر مع تحديد الأس = 0:

نفس المثال مع وضع الأس= 1:

مع وضع الأس= 2:

وضع الأس = -1 :

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

أدناه نتيجة تحديد الشكل المسدس أولاً ومن ثم النجمة. مع تعيين الأس في هذا المثال بالقيمة 1 :

تكرير المسار الأخير (Duplicate Endpaths)

يحدد هذا المعامل ما إذا كانت مجموعة المسارات التي تم إنشاؤها بواسطة الاستكمال تتضمن نسخة من المسار الأصلي أم لا.

تنسيق الاستكمال (Interpolate Style)

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

وهذا مثال على استخدام أداة تنسيق الاستكمال وتأثيرها على تعبئة المسارات بالألوان:

كما أن تنسيق الاستكمال يؤثر على الخطوط الخارجية للمسار:

وبالتأكيد فإنه ليس من الضروري أن يكون مسار البداية والنهاية متماثلان بالشكل:

استخدام الاستكمال من أجل تقليد تدرجات أشكال غير نظامية

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

ويمكننا هنا استخدام الاستكمال لإنشاء تدرج خاص بينهما:

الخلاصة

كما هو موضح أعلاه، أداة الاستكمال في إنكسكيب هي أداة قوية وفعالة. يغطي هذا الدرس التعليمي بعض أساسيات الاستكمال فقط، ولكن التجريب هو المفتاح الوحيد لاكتشاف جميع إمكانيات هذه الأداة.

Fahad الأربعاء, 2017/01/04 - 1:34م
disqus

January 4th 2017, 5:12 am

دروس إنكسكيب : عناصر التصميم

وادي التقنية

دروس إنكسكيب : عناصر التصميم

في هذا الدرس التعليمي سوف أريكم عناصر (elements) ومبادئ (principles) التصميم التي يتم تدريسها عادة لطلاب الفنون المبتدئين من أجل فهم الخصائص المختلفة المستخدمة في صناعة الفنون. هذه القائمة ليست شاملة، لذلك يمكنكم الإضافة عليها أو تعديلها لتصبح أكثر شمولاً.

عناصر التصميم:

العناصر التالية هي اللبنات الأساسية في عملية التصميم:

الخطوط

يُعرّف الخط بواسطة نقطة وطول واتجاه، ينشأ من النقطة ويتحرك عبر السطوح. يمكن أن تتفاوت الخطوط في طولها، عرضها، اتجاهها، انحناءها ولونها. يمكن للخط أن يكون ثنائي البعد (كخط بقلم الرصاص على ورقة)، أو ثلاثي البعد.

الأشكال

الأشكال المسطحة، ينشأ الشكل عندما تلتقي خطوط الفعلية أو الضمنية لتطويق مساحة ما. التغيّر في اللون أو التظليل يمكن أني يحدد الشكل. يمكن تقسيم الأشكال إلى عدة أنواع: هندسية (مربع، مثلث، دائرة) أو أساسي (أشكال غير منتظمة الخطوط).

الحجم

يشير الحجم إلى الاختلاف في نسب الكائنات أو الخطوط أو الأشكال. التغير في الأحجام يكون إما حقيقي أو وهمي.

المساحة

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

اللون

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

الملمس

الملمس Textureهو الطريقة التي تشعر بها بالسطح (السطح الفعلي) أو كيف يبدو (الملمس الضمني أو القوام). يتم وصف الملمس بكلمة مثل خشن، ناعم، حريري، مغطى بالحصى.

القيمة

القيمة هو كيف تبدو قتامة أو إضاءة الشيء. يمكننا تغيير قيمة اللون عبر إضافة اللون الأبيض أو الأسود إليه. توزيع الضوء في الصورة (Chiaroscuro) يستخدم قيمة اللون في الرسم عبر التناقض الكبير بين الضوء والقتامة ضمن تركيبة الشكل.

مبادئ التصميم:

تستخدم مبادئ التصميم العناصر من أجل إنشاء تكوين.

التوازن

هو الشعور بالتوازن البصري للعناصر في الشكل أو القيمة أو اللون ..الخ. يمكن للتوازن أن يكون متماثل أو متوازن بالتساوي أو غير متماثل أو غير متوازن. الكائنات، القيم، اللون، الملمس، الأشكال ..الخ يمكن أن تستخدم في إنشاء توازن للشكل.

التناقض

هو تجاور الكائنات المتعاكسة

التركيز أو التشديد

يستخدم من أجل جعل أجزاء معينة من الكائنات بارزة وواضحة وتجلب الانتباه. مركز الاهتمام أو النقطة المحورية هي المكان الذي يجعلك تنظر إليه أولاً.

التناسب

يصف التناسب الحجم أو الموقع أو كمية شيء ما مقارنةً بشيء آخر.

النمط

النمط أو النقش كما يسمى أحياناً ينشأ بتكرار عنصر ما مراراً وتكراراً (سواءً خط أو شكل أو لون).

التدرج

التدرج في الحجم أو الاتجاه ينشأ منظور خطي. تدرج اللون من الخفيف إلى القاتم أو من المضيء إلى الداكن، ينشأ منظور. يمكن للتدرج أن يضيف روعة أو حركة إلى الشكل. التدرج من المضيء إلى الداكن يجعل العين تتحرك على طول الشكل.

التركيب

الجمع بين الكائنات المختلفة لتشكيل شكل كلي.

مراجع

المراجع المستخدمة في إنشاء هذا الدرس:

• http://sanford-artedventures.com/study/study.html

• http://www.makart.com/resources/artclass/EPlist.html

• http://www.princetonol.com/groups/iad/Files/elements2.htm

• http://oswego.org/staff/bpeterso/web/elements_and_principles.htm

• http://www.johnlovett.com/test.htm

• http://digital-web.com/articles/elements_of_design/

• http://digital-web.com/articles/principles_of_design/

شكر خاص لليندا كيم لمساعدتي في إنشاء هذا الدرس التعليمي. والشكر أيضاً لـ Open Clip Art Library ولكل من ساهم في هذا المشروع.

Fahad الثلاثاء, 2017/01/03 - 2:04م
disqus

January 3rd 2017, 5:13 am

دروس إنكسكيب : فن الخطوط

وادي التقنية

دروس إنكسكيب : فن الخطوط

إحدى الأدوات الرائعة الموجودة في إنكسكيب هي أداة الخطوط أو فن الخط (Calligraphy). وسيساعدك هذا الدرس التعليمي على التعرف على كيفية عمل هذه الأداة، فضلاً عن إظهار بعض التقنيات الأساسية الموجودة في فنون الخطوط.

يمكنكم استخدام دولاب الماوس أو مفتاح Ctrl مع مفاتيح السحب لتمرير الصفحة إلى الأسفل والأعلى، كما يمكنكم مراجعة الأساسيات، إنشاء كائن، التحديد، التحويل والمزيد ضمن الدروس السابقة.

التاريخ والأنماط

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

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

هناك ثلاثة أنماط رئيسية لفن الخط:

  • الغربي أو الروماني

  • العربي

  • الصيني أو الشرقي

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

إحدى الميزات الرائعة التي نملكها الآن والتي تميزنا عن الخطاطين القدامى، هي أمر التراجع الموجود لدينا (Undo)، حيث أننا إذا أخطأنا بشيءٍ ما لن نكون مضطرين إلى خسارة الصفحة بأكملها. كما أن أداة الخطوط في إنكسكيب تملك بعض التقنيات الغير متاحة في القم والحبر التقليدي.

سوف تحصل على أفضل النتائج إذا استخدمت اللوح والقلم المخصص للكمبيوتر (Wacom). وبفضل مرونة أداة الرسم هذه، حتى باستخدام الماوس فقط يمكنك القيام ببعض الخطوط المعقدة إلى حدٍّ ما، على الرغم من صعوبة إنشاء الخطوط الخارجية بسرعة.

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

إذا كان لديك لوح رسم وكنت ترغب في الاستفادة من ميزات الحساسية، سيكون عليك تكوين جهاز الحساسية وتثبيته. وهذا التكوين يكون مرة واحدة، حيث يتم حفظ الإعدادات. ولتكوين اللوح، يجب عليك أن تصله أولاً بالكمبيوتر، ومن ثمّ تفتح برنامج إنكسكيب ونختار مربع الحوار الخاص بأجهزة الإدخال من القائمة Edit. ومن خلال مربع الحوار يمكنك اختيار الجهاز والإعدادات الخاصة به. وأخيراً، بعد اختيارات إعدادات اللوح، نقوم باختيار أداة الخطوط، ونقوم نبدل خيار الضغط والميل من شريط الأدوات الخاص بالضغط (pressure) والميل (tilt). ومن الآن فصاعداً، سوف يقوم إنكسكيب بتذكر هذه الإعدادات عند بدء التشغيل.

أداة الخطوط في إنكسكيب تملك حساسية اتجاه سرعة الرسم (من الخيار Thinning)، لذلك إذا كنت تستخدم الماوس، فربما يكون من الأفضل أن تجعل قيمة هذا المعامل صفر.

خيارات أداة الخطوط

قم بالتبديل إلى أداة الخطوط عبر الضغط على (Ctrl+F6)، أو الضغط على المفتاح C أو عبر النقر على الأداة من الزر الخاص بها في شريط الأدوات. ضمن شريط الأدوات العلوي، ستلاحظ أن هناك 8 خيارات: العرض والترقيق(Width & Thinning)، الزاوية والتثبيت (Angle & Fixation)، الأغطية (Caps)، الاهتزاز (Tremor)، التذبذب والتثبيت (Wiggle & Mass). وهناك أيضاً مفتاحي تبديل مخصصين لتفعيل أو إيقاف حساسيّ الضغط والميل (للرسم عبر اللوح).

العرض والترقيق (Width & Thinning)

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

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

قد يعتمد عرض الخط على السرعة أيضاً، وهذا يُتحكم به من معامل أداة الترقيق (thinning). يمكن لمعامل هذه الأداة أن يأخذ قيم بين -100 و 100. القيمة صفر تعني أن العرض مستقل عن السرعة، القيم الإيجابية تعني أن الخطوط تصبح أرق مع السرعة، القيم الصلبية تعني أن الخطوط تصبح أعرض مع السرعة. القيمة الافتراضية 0.1 تعني أن هناك ترقيق خفيف للخطوط مع السرعة. وفيما يلي بعض الأمثلة، وجميعها تم رسمه مع عرض = 20، وزاوية = 90:

للتسلية، يمكنك وضع هذا الخيار بأعلى قيمة (100)، وقم بالرسم بسرعة وبعشوائية لتحصل على أشكال تشبه الخلايا العصبية:

الزاوية والتثبيت (Angle & Fixation)

بعد تحديد العرض، الزوايا هي المعامل الثاني الأكثر أهمية. وهي زاوية ميل قلمك بالدرجات، وتتغير من 0 (أفقي) إلى 90 (عمودي عكس اتجاه عقارب الساعة) أو إلى – 90 (عمودي مع اتجاه عقارب الساعة). يجب الانتباه إلى أنه إذا قمت بتشغيل حساس الميل على اللوح، فإن خيار الزاوية هذا سيتم إيقافه وأخذ القيمة من زاوية ميل القلم.

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

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

يتم التحكم بمستوى التفاف القلم بين الأرق والأعرض عبر معامل التثبيت. القيمة 100 تعني أن الزوايا تبقى ثابتة دائماً، كما ذكرنا في قسم الزوايا. خفض مقدار التثبيت يعطي للقلم حرية الدوران قليلاً عكس الخطوط. عند جعل قيمة التثبيت 0 فالقلم يصبح يدور بحرية ليكون دائماً عمودياً على الخطوط، ولا يعود للزاوية أي تأثير بعد الآن:

طبوغرافياً، الحد الأقصى للتثبيت في الصورة اليسرى، يوحي بالمحارف الرقيقة العتيقة، كخطوط التايمز أو بودني (لأنها خطوط تاريخية وتشبه الخطوط ذات الأقلام الثابتة). جعل التثبيت بالقيمة 0 ، كالصورة اليمنى’ يوحي بالحداثة وبالمحارف الرقيقة، كخطوط هلفتيكا.

الاهتزاز (Tremor)

ما يقصد بالاهتزاز هو إعطاء مظهر طبيعي للخطوط التي نرسمها. يمكن تعديل عوامل الاهتزاز من شريط التحكم بقيم تتراوح بين 0 -100. وسيأثر ذلك على الخطوط التي ترسمها من عدم توازن بسيط بالخط إلى بقع واسعة واهتزاز كبير. وهذا يوسع النطاق الإبداعي لهذه الأداة بشكل كبير.

التذبذب والتكتل (wiggle & Mass)

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

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

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

أمثلة عن فنون الخط

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

نقوم الآن بتكبير الصورة، بحيث يكون الارتفاع الكلي بين السطرين على الشاشة، متوافقاً مع حركة يدك الطبيعية أثناء الكتابة. ثم نضبط الزاوية والعرض، وننطلق!

ربما سيكون أول شيء يمكنك القيام به كمبتدأ هو القيام بالتدرب على بعض العناصر الرئيسية للكتابة، بعض الخطوط القصيرة الأفقية والعمودية، خطوط مستديرة قليلاً او مائلة. وهذه بعض الخطوط المتعلقة بالخط Unical:

بعض النصائح المفيدة:

  • إذا كنت مرتاحاً بوضعية يدك على اللوح، لا تقم بتغييرها، بل قم بتحريك لوح الرسم على الشاشة بدلاً من ذلك، قم بتحريك الأسهم بواسطة يدك الأخيرة مع الضغط على Ctrl.

  • إذا كان آخر حرف قمت برسمه سيئاً، يمكنك ببساطة التراجع عن ذلك (Ctrl+Z). ولكن إذا كان جيداً، ولكن المشكلة كانت في مكانه أو حجمه فقط، فيمكنك التبديل إلى أداة التحديد والقيام بتحريكه أو تدويره أو تغيير حجمه باستخدام الماوس أو لوحة المفاتيح، والضغط على المفتاح Space للعودة إلى أداة الخطوط.

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

وهذه بعض الأمثلة عن حروف كاملة:

الخلاصة

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

Fahad الثلاثاء, 2017/01/03 - 1:56م
disqus

January 3rd 2017, 5:13 am

دروس إنكسكيب : إنشاء صورة تتبع للمسارات

وادي التقنية

دروس إنكسكيب : إنشاء صورة تتبع للمسارات

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

يعتمد إنكسكيب الآن على أداة Potrace من أجل تتبع المسار (potrace.sourceforge.net)، والمصممة من قِبل بيتير سلينجر. ونتوقع في المستقبل أن يكون هناك سماح لبرامج التحويل البديلة الأخرى. ولكن بالرغم من ذلك فهذه الأداة تعتبر أكثر من كافية لتلبي احتياجاتنا. يجب أن نضع في اعتبارانا أن الغرض من هذه الأمر ليس إعادة إنتاج نسخة مطابقة للصورة الأصلية، ولا إعطائنا منتج نهائي للاستخدام، ففي الواقع لا يمكن لأي أداة تتبع آلي أن تفعل ذلك. وإنما ما تقوم به هذه الأداة هو إعطائك مجموعة من المنحنيات التي يمكنك استخدامها كمورد لصورتك أو رسمك الذي تعمل عليه.

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

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

لاستخدام أداة تتبع المسار، نقوم بتحميل صورة إلى البرنامج، نحددها، ثم نختار من القائمة: Path > Trace Bitmap أو نضغط على Shift+Alt+B.

سوف نجد ثلاثة خيارات متاحة ضمن الفلتر:

  • حد السطوع:

يستخدم هذا المعامل حاصل جمع الأحمر والأخضر والأزرق (أو ظلال الرمادي) كمؤشر إذا ما كان ينبغي أن نعتبر ذلك أبيض أم أسود. يمكن تعيين العتبة من القيمة 0.0 (الأسود) إلى 1.0 (الأبيض).وكلما كانت العتبة أكبر، كلما قل عدد البكسلات التي سيتم اعتبارها بيضاء، وبذلك تصبح الصورة أكثر قتامة.

  • الكشف عن الحواف:

يستخدم هذا المعامل خوارزمية الكشف عن الحواف التي وضعها J. Canny كطريقة إيجاد سريعة للأطراف متساوية الميل للتباين المماثل. هذا الإجراء سوف ينتج نقطية وسطية التي تبدو أقل مما تفعله عتبة السطوع مع الصورة الأصلية، ولكنها تقدم معلومات عن المنحني لا يمكن تجاهلها. إعدادات هذا المعامل تتراوح بين 0.0 و 1.0، وهي تقوم بتحديد عتبة السطوع للبكسلات المجاورة للحواف والتي سيتم تضمينها ضمن الخرج النهائي. يمكن لهذا الإعداد أن يضبط قتامة أو سماكة حواف الخرج، كما نرى في الصورة أدناه.

  • تكميم الألوان:

نتيجة هذا المعامل هي صورة وسيطة تختلف كثيراً عن الخيارين الآخرين، ولكنها مفيدة جداً في الحقيقة. فبدلاً من عرض أطراف الميل المماثل للسطوع أو للتباين، هذا الخيار سوف يجد الحواف التي تتغير فيها الألوان، حتى لو كان السطوع أو التباين متماثلاً.الخيار هنا (Number of Colors) يحدد عدد الألوان الموجودة في الخرج. ومن ثم يقرر الأبيض والأسود ما إذا كان لدى اللون إدخال منتظم أو فردي.

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

بعد تتبع المسار، يمكنك أيضاً محاولة استخدام خيار التبسيط (Ctrl+L) على مسار الخرج الناتج للحد من عدد العقد. وهذا يمكن أن يسهّل عملية تحرير الخرج. على سبيل المثال لدينا هنا تتبع مسار لرجل يعزف على الجيتار:

نلاحظ العدد الهائل من العقد الموجودة في المسار. ولكن بعد استخدام خيار التبسيط (Ctrl+L)، سنحصل على نتيجة نموذجية ومقبولة:

عادة ما تكون الصور تقريبية وغير سلسة، في حين أن الرسومات تكون أبسط بكثير وأسهل للتعديل. علينا أن نضع في اعتبارنا دائماً، أن ما نريده هو ليس تقديم دقيق للصورة، ولكن مجموعة من المنحنيات التي يمكنك استخدامها في رسوماتك الخاصة.

Fahad الاثنين, 2017/01/02 - 2:10م
disqus

January 2nd 2017, 5:39 am

دروس إنكسكيب : أمور متقدمة

وادي التقنية

دروس إنكسكيب : أمور متقدمة

يغطي هذا الدرس التعليمي عمليات النسخ واللصق، تحرير العقد، الرسم الحر ورسم بيزيير، التحكم بالمسارات، العمليات المنطقية، الأوفسيت، التبسيط، وأدوات النصوص.

لرؤية الأساسيات يمكنك مراجعة الدرس السابق المتعلق بأساسيات الرسم.

تقنيات اللصق

بعد أن تقوم بنسخ بعض العناصر والكائنات (بالضغط على Ctrl+C) أو قصها (Ctrl+X)، فإن أمر اللصق الأساسي (Ctrl+V) يقوم بلصق هذه الكائنات الجديدة تحت مؤشر الماوس مباشرة، أو إذا كان المؤشر موجوداً خارج نافذة الرسم، فإنه يقوم بلصقها في مركز النافذة. ولكن الكائنات المنسوخة لا تزال تعرف المكان الذي نسخت منه، ولذلك يمكنك لصق هذه الكائنات في نفس المكان الأصلي بالضغط على (Ctrl+Alt+V).

الأمر الآخر هو لصق التنسيق أو النمط (بالضغط على Shift+Ctrl+V)، وهذا يعني تطبيق نفس النمط والتنسيق للكائن الأول الموجود في الحافظة على الكائن المحدد الحالي. وبالتالي فإن النمط يتضمن التعبئة والخطوط الخارجية وإعدادات الخط، ولكنه لا يتضمن الحجم والشكل، أو المعايير المحددة لهذا الشكل، كعدد رؤوس النجمة مثلاً.

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

لصق الحجم يقوم بتحجيم كل الكائن أو الكائنات المحددة كي تكون متناسبة مع الحجم الكلي للكائن الموجود في الحافظة. بينما لصق العرض والطول يقوم بتحجيم الشيء المحدد بأكمله أفقياً/عمودياً ليكون متوافقاً مع الموجود في الحافظة.

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

الحافظة المتعلقة بالنسخ واللصق ذات استخدام واسع، فيمكنك لصق الكائنات بين نوافذ إنكسكيب المختلفة أو حتى بين إنكسكيب وغيره من التطبيقات (التي يجب أن تكون قادرة على التعامل مع SVG لاستخدام هذه الكائنات).

الرسم الحر والمسارات المنتظمة

أسهل طريقة لرسم أشكال عشوائية هي استخدام أداة قلم الرصاص لرسمها (F6):

إذا أردت أشكالاً أكثر انتظاماً يمكنك استخدام أداة قلم بيزيير(Shift+F6):

باستخدام أداة القلم السابقة، فكل نقرة تنشأ لك عقدة حادة بدون أيّة مقابض للمنحنيات، وبذلك فسلسلة من النقرات سوف تنشأ لك سلسلة من مقاطع الخطوط المستقيمة. النقر والحسب ينشأ لنا عقدة بيزيير مع اثنين من المقابض المتعاكسة على خط واحد. يمكنك الضغط على مفتاح Shift وأنت تسحب المقبض لتدوير مقبض واحد فقط، وتثبيت الآخر. وكما هي العادة، فمفتاح Ctrl يقوم بحد اتجاه إما قطعة الخط الحالي أو مقابض بيزيير بزيادة 15 درجة فقط. الضغط على Enter يستكمل الخط الذي ترسمه، و Esc يقوم بإلغاء ذلك. لإلغاء الجزء الأخير فقط من عملك يمكنك الضغط على مفتاح Backspace.

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

تحرير المسارات

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

سوف ترى عدداً من العقد المربعة الرمادية على المسار. يمكنك تحديد هذه العقد عبر النقر عليها، أو عن الطريق السحب والتحديد أو بالضغط على (Shift+click)، كطريقة تحديد الكائنات بأداة التحديد تماماً. يمكنك أيضاً النقر على قطع المسار لتحديد العقد المجورة له تلقائياً. تصبح العقد المحددة مضاءة وتظهر مقابض العقد، دائرة أو دائرتين صغيرتين تتصل مع العقدة المحددة بخطوط مستقيمة. الضغط على المفتاح ! يقوم بقلب المسار أو المسارات الفرعية الحالية (أي المسارات الفرعية مع عقدة محددة على الأقل)، الضغط على (Alt+!) يقوم بقلب المسار بالكامل.

يتم تحرير المسارات عبر سحبها عقدها، أو مقابض العقد أو السحب المباشر لقطع المسار. (قم بتجربة سحب بعض العقد والمقابض والمسارات من الشكل أعلاه). يقوم المفتاح Ctrl كما هي العادة بتقييد الحركة والدوران. مفاتيح الأسهم، ومفتاح Tab و المفاتيح [، ]، <، >، بجميع خصائصها تعمل نفس العمل مع الكائنات المحددة ولكن على العقد بدلاً من الكائنات. يمكنك إضافة أي عقدة لأي مكان على المسار إما عبر النقر المزدوج أو بضغط مفتاحي Ctrl+Alt مع النقر على المكان المطلوب.

يمكنك حذف العقد إما بمفتاح Del بعد تحديدها أو بالضغط عليها مع (Ctrl+Alt). عند حذف العقد سيحاول البرنامج المحافظة على شكل المسار، ولكن إذا كنت ترغب في التراجع عن ذلك (عدم الاحتفاظ بالكشل)، فيمكنك حذفها بالضغط على (Shift+D) عند تحديد العقد المطلوبة. يمكن تقسيم المسار (Shift+B) عند العقد المحددة، وإذا قمت بتحديد عقدتين نهائيتين على مسار واحد، يمكنك إضافتهم بالضغط على (Shift+J).

يمكن أن ننشأ نتوء للعقدة (بالضغط على Shift+C)، وهذا يعني أن المقابض يمكنها أن تتحرك بكشل مستقل عن بعضها في أي نقطة. تسوية المقابض (Shift+S) يعني أن المقابض تبقى دائماً على نفس الخط المستقيم (خط واحد)، والتماثل (Shift+Y) وهو نفس العملية السابقة ولكن المقابض يكون لها نفس الطول. عندما تقوم بتبديل نوع العقدة، يمكنك الحفاظ على موضع واحد من المقابض الاثنين عن طريق وضع مؤشر الماوس فوقه، وهذا يجعل المقبض الآخر فقط هو الذي يتحرك أو يتغير حجمه ليكون متطابقاً.

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

المسارات الفرعية والتجميع

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

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

يمكن لإنكسكيب أن يجمع المسارات ضمن مسار مركب واحد (Ctrl+K) كما يمكنه الفصل بين المسار المركب إلى مركبات منفصلة (Shift+Ctrl+K). يمكنك تجربة هذه الأوامر على الأشكال أعلاه. وبما أن الكائن يمكنه أن يحصل على تنسيق واحد وعلى خطوط خارجية واحدة، فكذلك المسار المركب يحصل على تنسيق الكائن الأول الذي تمّ تجميعه. عندما تجمع بين مسارات متداخلة وتقوم بتعبئتها، فعادةً ما تختفي التعبئة في ا