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

جريدة جناجيوم أول جريدة في العالم تعتمد على البرمجيات الحرة ١٠٠٪

وادي التقنية

جريدة جناجيوم أول جريدة في العالم تعتمد على البرمجيات الحرة ١٠٠٪

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


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


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

Fahad الثلاثاء, 2019/11/12 - 10:09ص
disqus

November 12th 2019, 1:56 am

صدور محرر Notepad++ v7.8.1 : حرروا الإيغور

وادي التقنية

صدور محرر Notepad++ v7.8.1 : حرروا الإيغور

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


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

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

Fahad الجمعة, 2019/11/01 - 11:02ص
disqus

November 1st 2019, 9:21 am

صدور جمب ٢.١٠.١٤

وادي التقنية

صدور جمب ٢.١٠.١٤

بعد أربعة أشهر من التطوير والتحسين، أعلن فريق تطوير برنامج جمب لتحرير الصور عن إصدار النسخة ٢.١٠.١٤ ، هذه الإصدارة حملت تحسينات مميزة على طريقة العمل مع برنامج جمب الشهير، ولعل أهم هذه المميزات:
١- القدرة على العرض والعمل خارج ساحة العمل المحددة. وهذه ميزة حاسمة لبعض المستخدمين.
٢- إضافة مرشح جديد لصنع الخرائط.


٣- نقل ٢٧ مرشح لتستخدم مكتبة GEGL
٤- تحسين العمل مع  HEIF و TIFF و PDF .
٥- تعامل أفضل عند فتح ملفات XCF المعطوبة
٦- أصبح التعامل مع نمط الرمادي سريع جدا.
٩- دعم نظام macOS Catalina
لتنزيل هذه الإصدارة من هنا

Fahad الجمعة, 2019/11/01 - 9:59ص
disqus

November 1st 2019, 3:17 am

صدور فيدورا ٣١

وادي التقنية

صدور فيدورا ٣١

أعلن مجتمع فيدورا عن إطلاق إصدارة ٣١ من توزيعة لينكس الشهيرة، هذه الإصدارة حوت على العديد من المميزات الجديدة بالإضافة إلى المكونات الاعتيادية آخر إصدارة من جنوم ٣.٣٤ ، الذي تحدثنا عنه سابقا. وفي ما يلي أهم المميزات الجديدة:
١- دعم الميزة الخطوط المتغيرة في حزمة خطوط Noto وهي تقنية جديدة في عالم الخطوط.
٢- استخدام تقنية zstd لضغط ملفات rpm حيث تفيد في سرعة فك ضغط الملفات.
٣- إضافة وحدات أمنية إضافية إلى مدير الإقلاع GRUB2  تهدف إلى زيادة الأمن أثناء إقلاع النظام.
٤- إضافة قرص تثبيت لسطح مكتب Xfce لعتاد ٦٤ بت ARM لدعم أجهزة رازبيري و Pine64.
يوفر مشروع فيدورا عدة نكهات من توزيعة فيدروا  مبنية على سطح مكتب كدي و Xfce . يمكنك تنزيل هذه الإصدارة من هنا.

Fahad الخميس, 2019/10/31 - 10:53ص
disqus

October 31st 2019, 3:29 am

صدور أوبنتو ١٩٫١٠

وادي التقنية

صدور أوبنتو ١٩٫١٠

أعلنت شركة كانونيكل عن إطلاق أوبنتو ١٩٫١٠ وهي حصيلة ٦ أشهر من التطوير والتحديث والتي تسبق نسخة ذات الدعم الطويل ٢٠٫٠٤ . هذه الإصدارة أطلق عليها اسم (Eoan Ermin) وقد أتت بتحسيات كبيرة في الأداء والموثوقية.
أهم مميزات هذه الإصدارة:
١- سطح مكتب جنوم ٣٫٣٤
٢- نواة لينكس ٥٫٣.
٣- تحسين أداء سطح المكتب بشكل ملحوظ
٣- دعم إظهار فلاشات في مرسى أوبنتو.


٤- توفير تعريفات بطاقات إنفيديا الرسومية أثناء التثبيت.
٥- إضافة دعم لتثبيت نظام ملفات ZFS.


٦- دعم WPA3
٧- تحديث التطبيقات إلى آخر الإصدارات ومنها ليبرأوفيس ٦٫٣.

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

Fahad الأحد, 2019/10/20 - 8:25ص
disqus

October 20th 2019, 1:01 am

صدور كدي بلازما ٥٫١٧

وادي التقنية

صدور كدي بلازما ٥٫١٧

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


- إضافة إعداد خاص لدعم أجهزة Thunderbolt.
- إضافة خيارات متقدمة في برنامج مراقبة النظام KSysGuard


- دعم الشاشات ذات الدقة العالية.

Fahad الأربعاء, 2019/10/16 - 11:41ص
disqus

October 16th 2019, 4:19 am

متاجر الكتب العربية الإلكترونية الواقع و الطموح

وادي التقنية

متاجر الكتب العربية الإلكترونية الواقع و الطموح

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

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

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

موقع النيل والفرات

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

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

أسعار الكتب مقبولة وهي مشابهه لأسعار المكتبات المحلية.

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

موقع جملون

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

مكتبة دار السلام

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

موقع فيلسوف

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

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

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

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

ولأن الشحن أصبح غير مجاني فلا أرى أي سبب يجعل من أي شخص يتعامل معهم ، و اللبيب من اتعظ  بغيره.

الطموح

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

 

 

 

زايد الثلاثاء, 2019/10/08 - 8:42م
disqus

October 8th 2019, 1:17 pm

صدور PostgreSQL 12

وادي التقنية

صدور PostgreSQL 12


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

تشتمل تحسينات PostgreSQL 12 على تحسينات ملحوظة في أداء الاستعلام ، خاصة عبر مجموعات البيانات الأكبر حجماً ، والاستفادة الكلية من المساحة حيث وأنقصت المساحة المستهلك بحوالي 40 بالمائة،  يوفر هذا الإصدار لمطوري التطبيقات إمكانيات جديدة مثل دعم التعبير عن مسار SQL / JSON ، وتحسينات لكيفية تنفيذ استعلامات تعبير  الجدوال (WITH)  والأعمدة المولدة. يواصل مجتمع PostgreSQL في هذه الإصدارة دعم القابلية للتوسعة والمتانة لـ PostgreSQL ، مع مزيد من الإضافات إلى التدويل والمصادقة وتوفير طرق أسهل لإدارة PostgreSQL. يقدم هذا الإصدار أيضًا واجهة تخزين الجدول القابلة للتوصيل ، والتي تتيح للمطورين إنشاء طرقهم الخاصة لتخزين البيانات.

تستفيد قاعدة بيانات بوستجريسكل من أكثر من 20 عامًا من التطوير مفتوح المصدر ، وقد أصبحت  قاعدة البيانات العلائقية مفتوحة المصدر المفضلة للمؤسسات من جميع الأحجام. ويستمر المشروع في الحصول على التقدير في جميع مجالات تطوير التطبيقات ، بما في ذلك ظهوره للعام الثاني على التوالي باعتباره "DBMS of the Year" في عام 2018 من قبل DB-Engines والحصول على جائزة "Lifetime Achievement" مفتوحة المصدر في OSCON 2019.

زايد الأحد, 2019/10/06 - 9:35م
disqus

October 6th 2019, 1:57 pm

بدء شحن أول هاتف مفتوح المصدر Librem 5

وادي التقنية

بدء شحن أول هاتف مفتوح المصدر Librem 5

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

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

أما عن مواصفات الهاتف فهو يعتمد على شريحة i.MX8 رباعية النواة ، و ذاكرة عشوائية 3 جيجابايت و ذاكرة داخلية 32 جيجا وشاشة بدقة 720 ، و بتكلفة تبلغ 700 دولار أمريكي.

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

زايد الخميس, 2019/09/26 - 12:44م
disqus

September 26th 2019, 5:14 am

صدور CentOS Linux 8 وإطلاق مشروع CentOS Streams

وادي التقنية

صدور CentOS Linux 8 وإطلاق مشروع CentOS Streams

أعلن مطورو توزيعة سنت أوأس عن صدور CentOS Linux 8 المبنية على توزيعة ردهات لينكس ٨ التجارية، هذه الإصدارة تحوي على كل المميزات الجديدة التي صدرت في RHEL8. أهم المميزات في هذه الإصدارة:
١- دعم طرفية الوب للتحكم بالنظام.
٢- تضمين YUM v4 لإدارة حزم النظام وأهم مميزات هذه الإصدارة زيادة السرعة.
٣- جعل بايثون ٣ هي الافتراضية في النظام
٤- تضمين PHP 7.2 و Ruby 2.5 و Perl 5.26.
٥- إضافة Node.js
٦- تحديث قواعد البيانات بحيث تضمن MySQL 8.0 و MariaDB 10.3 و PostgreSQL 10 وRedis 5
٧- إضافة Varnish Cache
٨-  سطح المكتب جنوم 3.28 مع مخدم العرض ويلاند بشكل افتراضي
وغيرها الكثير من المميزات الموجهة لقطاع الأعمال والخوادم يمكن الاطلاع عليها من هذه الصفحة
لتنزيل CentOS linux 8 من هذا الرابط.

إطلاق مشروع CentOS Streams

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

Fahad الأربعاء, 2019/09/25 - 10:57ص
disqus

September 25th 2019, 3:26 am

كتاب التحريك عبر CSS 1.0.0

وادي التقنية

كتاب التحريك عبر CSS 1.0.0

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

لا يخفى على أي مطور ويب خصوصًا مطوري واجهة المستخدم الأمامية (front end developers) أهمية إضفاء بعض الحيوية على المواقع التي يصممونها عبر الحركات، إذ هنالك عدة فوائد يمكن تحصليها من إضافة الحركات إلى صفحات الموقع أهمها الابتعاد عن السكون الممل، ولفت الانتباه، وتحسين التواصل مع الزائر أو المستخدم وغيرها؛ لذلك، أصبحت الحركات أمرًا جوهريًا في مواقع الويب لا يمكن الاستغناء عنها جاء هذا الكتاب لشرح مفهوم الحركة وكيفية تحريك العناصر باستخدام CSS فقط بدءًا من الحركات البسيطة وحتى الحركات المعقَّدة المُتقدِّمة بالإضافة إلى التَطرُّق إلى مناقشة مسألة متى يجب إضافة الحركات ومتى يجب الابتعاد عنها هذا الكتاب مترجم عن كتاب «CSS Animation 101» لصاحبه Donovan Hutchinson، ونأمل أن يكون إضافةً نافعةً للمكتبة العربيَّة وأن يفيد القارئ العربي في الإلمام بموضوع التحريك عبر CSS.

هذا الكتاب مرخص بموجب رخصة المشاع الإبداعي Creative Commons «نسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0».

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

لتنزيل الكتاب من هنا ، رابط إضافي هنا.

Fahad الأحد, 2019/09/22 - 9:29ص
disqus

September 22nd 2019, 1:58 am

صدور جنوم ٣.٣٤ (مرحبا بالعربية في الطرفية)

وادي التقنية

صدور جنوم ٣.٣٤ (مرحبا بالعربية في الطرفية)

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


٢- تحسين طريقة اختيار خلفيات سطح المكتب وتسهيلها والقدرة على معاينة صورة الخلفية.


٣- تطوير تجربة تصفح الانترنت بحيث أصبحت كل عمليات التصفح معزولة وأضيفت ميزة تثبيت التبويبات.


٤- تطوير الأداء بشكل عام.
٥- تطوير لوحة إعدادات النظام بحيث تتكيف مع مختلف أحجام الشاشات.
٦- دعم العربية في الطرفية بشكل رسمي. مرحى !


وغيرها الكثير من المميزات الجديدة حيث أسهم ٧٧٧ شخص في صنع أكثر من ٢٣ ألف تغيير في هذه الدورة التطويرية. للاطلاع على كل التغييرات من هذه الصفحة.

Fahad الجمعة, 2019/09/13 - 3:24م
disqus

September 13th 2019, 8:06 pm

مايكروسوفت تحرر نظام ملفات exFAT

وادي التقنية

مايكروسوفت تحرر نظام ملفات exFAT

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

في البداية ما هو exFAT؟

إكس فات هو نظام الملفات  قدمته مايكروسوفت في عام 2006 كبديل مطور لنظام FAT القديم وهو مصمم للعمل على بطاقات الذاكرة المحمولة. وقد اعتمدته جمعية بطاقة الأس دي باعتباره نظام الملفات الافتراضي لبطاقات SDXC الأكبر من 32 جيجابيات.

ألا تعمل بطاقات الذاكرة من دون مشاكل مع لينكس؟

وجدت عدة حلول للالتفاف حول براءات الاختراعات المتعلقة بنظام إكس فات أشهرها مشروع fuse-exfat الذي استخدم تقنية نظام الملفات خارج نواة لينكس وقد ضمن هذا الحل في عديد من التوزيعات من مثل أوبنتو لذا تجد بطاقات الذاكرة تعمل من دون مشكلة.
كذلك في عام ٢٠١٣م أجبرت سامسونج بأن تنشر تعريف إكس فات الذي تستخدمه في نواة لينكس ونظام أندرويد كمتطلب أساسي لمتطلبات رخصة جنو العامة GPL.
لكن كل هذه المحاولات لم تجد طريقها إلى نواة لينكس بسبب مشكلة براءات الاختراعات، ومع هذه الحركة الجديدة من مايكروسوفت فإن دعم نظام إكس فات سيصبح من ضمن نواة لينكس بشكل رسمي ويستطيع الجميع الاستفادة منه.

Fahad الخميس, 2019/08/29 - 9:04ص
disqus

August 29th 2019, 1:23 am

أفضل الحواسيب المصغرة التي تعمل بنظام تشغيل لينكس مثبت مسبقاً

وادي التقنية

أفضل الحواسيب المصغرة التي تعمل بنظام تشغيل لينكس مثبت مسبقاً

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

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


1 - جهاز Intel NUC :
من الجدير بالذكر أن معظم أجهزة الكمبيوتر صغيرة الحجم تعتمد في صناعتها على NUC من Intel وبالتالي وجب ذكرها في البداية ، كما أن هذا الجهاز وهو جهاز Intel NUC قد لا يأتي بنظام تشغيل لينكس مدمجاً بداخله ولكن يمكنك تثبيت النظام بعد شرائه بكل سهولة ، ويعوضك هذا الجهاز عن الكمبيوتر المكتبي التقليدي ويمكنك شراؤه بشكل كامل ليصبح معك جهاز كمبيوتر مصغر كامل يعمل بنظام لينكس أو يمكنك شراء لوحة NUC فقط بسعر أقل وأرخص .
المواصفات بشكل عام :
• معالج من نوع Intel 8th Gen.
• معالج رسوميات من نوع Radeon Vega.
• ذاكرة من نوع Intel Optane وبسعة 16 جيجا بايت .
• منفذ HDMI .
• منفذ USB من نوع C .
• عدد 2 منفذ LAN .
• سعة تخزينية 1 تيرا بايت HDD .
• يدعم واي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 300 دولار أمريكي وذلك يعتمد على ما يمكنك اختياره الجهاز المصغر كاملاً أم لوحة NUC فقط وبالتالي ستكون لديك خيارات في حدود 1000 دولار أمريكي .

 


2 - جهاز Meerkat by System76 :
من المعروف أن شركة System76 هي شركة متخصصة في تصنيع الكمبيوتر وفي الوقت الحالي تتعامل مع أجهزة الكمبيوتر المحمولة والخوادم التي تعمل بنظام Ubuntu كما أن الشركة قد أعلنت مؤخراً وتحديداً الأسبوع الماضي عن تصنيعها لجهاز كمبيوتر مصغر يعمل بنظام تشغيل Ubuntu .
المواصفات بشكل عام :
• معالج من نوع Intel i3 / i5 / i7.
• معالج رسوميات من نوع Intel HD 5500 - Intel HD 6000 لنظامي i3 و i5.
• ذاكرة وصول عشوائي بسعة 32 جيجا بايت .
• 1 جيجا بايت NIC .
• 2 × منفذ USB 3.0 .
• الحجم 4 × 4 .
• سعة تخزينية 2 تيرا بايت.
• يدعم واي فاي .
السعر :
يبدأ سعر هذا الجهاز من 599 دولار أمريكي.

 


3 - جهاز  MintBox Mini 2 و Mini 2 Pro :
تعتبر مجموعة MintBox Mini الأجهزة الرسمية التي تعمل على توفير أنظمة تشغيل Linux Mint وتشتمل هذه المجموعة على جهاز MintBox Mini 2 وجهاز Mini 2 Pro بمعالج Intel Celeron J3455 وبذاكرة  بسعة 8 جيجا بايت وسعة تخزين داخلية 120 جيجا بايت ، بالإضافة إلى معالج رسوميات Intel HD Graphics 500 يدعم HDMI + miniDP كما أن هذا الجهاز يأتي دون مروحة وبالتالي فلن يكون هناك أي إزعاج لأنه صامت تماماً كما أنه مقاوم للغبار والرطوبة ويأتي بضمان خمس سنوات ويمكن تثبيت أي نظام تشغيل عليه بخلاف نظام لينكس مثل ويندوز 10 .
المواصفات بشكل عام :
• معالج من نوع Intel Celeron J3455.
• معالج رسوميات من نوع Intel HD Graphics 500.
• ذاكرة بسعة 8 جيجا بايت .
• سعة تخزينية حجم 64 جيجا بايت لجهاز Mini 2 و120 جيجا بايت لجهاز Mini 2 Pro .
• نظام التشغيل : Linux Mint .
السعر :
يبدأ سعر هذا الجهاز من 299 دولار أمريكي لجهاز MintBox Mini 2 وبسعر349 دولار أمريكي لجهاز MintBox Mini 2 Pro ويمكنك شراؤه من أمازون .

 


4 - جهاز Utilite 2 :
وهذا الجهاز يعتبر جهاز كمبيوتر صغير الحجم يعمل بنظام تشغيل Ubuntu وهو تابع لنفس الشركة المصنعة لجهاز MintBox ويأتي هذا الجهاز بحجم 3.4 × 2.3 ، Utilite2 ويعتبر جهاز كمبيوتر مصغر بمواصفات متواضعة وسعر متواضع .
المواصفات بشكل عام :
• معالج من نوع Qualcomm Snapdragon 600.
• وحدة معالجة مركزية رباعية النواة 1.7 جيجا هرتز .
• معالج رسوميات من نوع Qualcomm Adreno ™.
• ذاكرة بسعة 2جيجا بايت .
• 4 O منفذ USB 2  و USB OTG.
• دعم المودم الخلوي.
• سعة تخزينية حجم 32 جيجا بايت .
• يدعم واي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 192 دولار أمريكي للطراز العادي و 229 دولار أمريكي مع تخزين SSD بالإضافة إلى رسوم الشحن .

 


5 - جهاز Endless Mini :
تعتبر شركة Endless من الشركات المصنعة  لأجهزة الكمبيوتر التي تعمل بنظام تشغيل لينكس وتوزيعات لينكس وأيضاً التوزيعات الخاصة بالاستخدام المنزلي مثل Endless OS وتقدم هذه الشركة مجموعة متنوعة من أجهزة الكمبيوتر المصغرة والتي تعمل بنظام تشغيل Endless وهذا الجهاز عبارة عن آلة صغيرة ذات تكلفة منخفضة يمكن استخدامه في أعمال الحواسيب خفيفة الوزن .
المواصفات بشكل عام :
• معالج من نوع Amlogic® S805 رباعي النواة .
• معالج رسوميات من نوع Mali®-450 GPU .
• ذاكرة من نوع  Cortex A5 وبسعة 1 -2 جيجا بايت .
• سعة تخزينية حجم 24 جيجا بايت و 32 جيجا بايت.
السعر :
يبدأ سعر هذا الجهاز من 79 دولار أمريكي وحتى 99 دولار أمريكي .

 


6 - جهاز Endless Mission One :
وهذا الجهاز مصمم باستخدام وحدة المعالجة المركزية Intel Celeron والتي تعد من أقوى وحدات المعالجة المركزية حيث يبلغ ترددها 2.17 جيجا هرتز وهذا الجهاز مفيد لإنجاز المهام الأكثر تطلباً ويأتي الجهاز بتصميم جديد ورائع مع مساحة تخزين جيدة وسعر مناسب .
المواصفات بشكل عام :
• معالج من نوع إنتل سيليرون N2807.
• ذاكرة بسعة 2جيجا بايت .
• سعة تخزينية حجم 500 جيجا بايت.
السعر :
يبدأ سعر هذا الجهاز من 249 دولار أمريكي .

 


7 - جهاز Logic Supply CL100:
وهذا الجهاز عبارة عن كمبيوتر صغير بدون مروحة يتميز بكونه مقاوم للغبار يصنع من قبل شركة Logic Supply ويمكنك تهيئة الجهاز لكل متطلباتك ولكن سيكون ذلك مقابل زيادة في السعر وهذا يعني ببساطة أنه يمكنك ترقية هذا الجهاز للأحدث بسعر أعلى كما أنه يأتي بضمان لمدة عامين .
المواصفات بشكل عام :
• معالج من نوع Intel Celeron N3160 أو Pentium N3710.
• نظام التشغيل: أوبونتو.
• ذاكرة بسعة 2 جيجا بايت .
• سعة تخزينية بحجم 32 جيجا بايت.
السعر :
يبدأ سعر هذا الجهاز من 357 دولار أمريكي .

 


8 - جهاز TUXEDO Nano V8 :
من الجدير بالذكر أن أجهزة TUXEDO تساعدك في إنشاء أجهزة كمبيوتر مخصصة وأجهزة كمبيوتر محمولة وبالنسبة لهذا الجهاز فهو كمبيوتر شخصي مصغر يعمل بنظام تشغيل لينكس ويمكنه العمل على أنظمة التشغيل التالية  Ubuntu Budgie – Ubuntu وذلك كله يرجع لاحتواء الجهاز على معالج من نوع Intel وذاكرة وصول عشوائية بسعة 32 فضلاً عن الأداء الرائع ويمكنك توصيله بشاشتين بتقنية 4k .
المواصفات بشكل عام :
• معالج من نوع (core i7 , i3 ) .
• معالج رسوميات من نوع Intel HD المدمجة.
• ذاكرة  بسعة 32 جيجا بايت .
• 4منفذ USB 3.0 .
• يدعم الواي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 445 يورو .

 

9 - جهاز Slimbook ONE v2 :
ويعد هذا الجهاز من أجهزة الكمبيوتر المصغرة والتي تعمل بنظام تشغيل لينكس كما أنه مزود بكميات كبيرة من الطاقة ويأتي بمعالج من نوع Intel الجيل الثامن بالإضافة إلى سعة تخزين داخلية 500 جيجا بايت مع إمكانية رفعها حتى 2 تيرا بايت فضلاً عن سعة ذاكرة الوصول العشوائي والتي تصل إلى 16 جيجا بايت ويدعم تقنية الـ 4k ومنفذ HDMI وبالنسبة لنظام التشغيل فيمكنك العمل على نظام Linux OS و Ubuntuو OpenSUSE و Manjaro وغيرهم كما يمكنك استخدامه كمركز للوسائط المتعددة .
المواصفات بشكل عام :
• معالج من نوع core i5 أو i7 (الجيل الثامن) .
• معالج رسوميات من نوع Intel UHD 620 يدعم 4k.
• ذاكرة بسعة 16 جيجا بايت .
• منفذ HDMI .
• سعة تخزينية حجم 2 تيرا بايت و500 جيجا بايت .
• يدعم واي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 449 يورو .

 


10 - جهاز Entroware Aura :
إذا كنت تبحث عن جهاز كمبيوتر يمتلك الكثير من القوة في الأداء والحوسبة فإن هذا الجهاز مناسب لك تماماً حيث يأتي بمعالجات 8th Intel - i3 أو i5 أو i7 كما يمكنك رفع ذاكرة الوصول العشوائية إلى 32 جيجا بايت وبسرعة 2400 جيجا هرتز بالإضافة إلى سعة نخزين داخلية تصل إلى 2 تيرا بايت ويمكنه العمل على أنظمة التشغيل Ubuntu 18.04 LTS أو Ubuntu MATE .
المواصفات بشكل عام :
• معالج من نوع (core i7 , i3 ) .
• معالج رسوميات من نوع Intel Iris Plus Graphics 655.
• ذاكرة من نوع DDR4 وبسعة 32 جيجا بايت وبسرعة 2700 ميجا هرتز.
• منفذ HDMI .
• USB 3.1 Gen 2  .
• سعة تخزينية حجم 2 تيرا بايت.
• يدعم واي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 499.99 جنية إسترليني .

 


11 - جهاز Olympia by Juno Computers :
يعد هذا الجهاز من أكثر أجهزة الكمبيوتر المثيرة للإعجاب وذلك لأنه يعمل بنظام تشغيل لينكس ولكنه يأتي بسعر رخيص إلى حد ما ، يمكنه العمل على أنظمة التشغيل التالية Elementary OS أو Ubuntu 18.04 أو Ubuntu 19.04 ويأتي الجهاز بمعالج Intel 8th Gen وذاكرة وصول عشوائية بسعة 16 جيجا بايت وسعة تخزين داخلية تصل إلى 1 تيرا بايت مع إمكانية الاتصال ببطاقة ذاكرة من خلال فتحة SD .
المواصفات بشكل عام :
• معالج من نوع (core i7 , i3 ) .
• ذاكرة بسعة 16 جيجا بايت وبسرعة 2133 ميجا هرتز.
• منفذ HDMI .
• قارئ بطاقة SD ,
• سعة تخزينية حجم 1 تيرا بايت.
• يدعم واي فاي والبلوتوث .
السعر :
يبدأ سعر هذا الجهاز من 403 جنية إسترليني.

Fahad الأحد, 2019/08/25 - 8:28ص
disqus

August 25th 2019, 1:14 am

شاهد أوبنتو تعمل على سامسونج جلاكسي 10

وادي التقنية

شاهد أوبنتو تعمل على سامسونج جلاكسي 10

أطلقت سامسونج منذ فترة مشروع DeX وهو مشروع يهدف تشغيل نظام أندرويد العامل على أجهزة سامسونج ليعطي تجربة استخدام تشبه جهاز الحاسوب العادي حيث يتصل بشاشة خارجية ولوحة مفاتيح وفأرة.
ومن ضمن  هذا المشروع أطلقت سامسونج مشروع Linux on Dex حيث تستطيع تشغيل نظام لينكس متكامل (أوبنتو) على هاتفك المحمول. أحد فوائد وجود نظام لينكس على هاتفك هو قدرتك على إدارة مشاريعك على git و إدارة خوادم ومراقبتها عن طريق سطر الأوامر و البرمجة بلغات سي وسي بلس بلس و جافا.
الفيديو التالي يستعرض مشروع DeX على هاتف جلاكسي 10 وفي توقيت 8:56 يبدأ في استعراض أوبنتو بشكل جميل جدا.

Fahad الخميس, 2019/08/22 - 10:31ص
disqus

August 22nd 2019, 2:54 am

إطلاق Xfce ٤.١٤

وادي التقنية

إطلاق Xfce ٤.١٤

بعد أربع سنوات طويلة من التطوير المستمر، صدرت النسخة المستقرة ٤.١٤ من سطح المكتب Xfce ، كان الهدف الرئيس لهذه الإصدارة هو الانتقال من GTK2  إلى GTK3  وهو عمل صعب وممل يعرفه من لديه خبرة في البرمجة، هذا الانتقال يجلب إمكانيات GTK3 المتقدمة في السمات والتخصيص إلى سطح مكتب إكس اف سي إي.
بالإضافة إلى عملية الانتقال هناك مميزات جديدة من أهمها:
١- حصل مدير النوافذ على دعم لميزة VSync و دعم HiDPI
٢- إضافة دعم لإدارة ملفات الألوان مما يحسن من جودة الطباعة والمسح الضوئي.
٣- تحسين وتطوير دعم الشاشات المتعددة بحيث يمكن الآن من حفظ واستعادة الاعدادات بشكل تلقائي.
٤- إضافة تخصيصات متقدمة في إدارة النوافذ


٥- إضافة دعم لميزة حفظ الشاشة.

٦- إضافة تحسينات كثيرة في برنامج متصفح الملفات.


٧- تضمين برنامج Catfish للبحث عن الملفات بطريقة سريعة وسهلة في سطح مكتب Xfce.


٨- دعم ميزة عدم الإزعاج
وقائمة طويلة جدا من المميزات الصغيرة شملت كامل سطح المكتب للاطلاع عليها من هنا.

نبذة تعريفية عن Xfce

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

بدأ أوليفير فوردان هذا المشروع في عام 1996، المقصود بالاسم Xfce هو اختصار ل‍ "XForms Common Environment"، وXForms هي المكتبات البرمجية التي استُخدمت لبناء واجهة المستخدم الرسومية في إكس إف سي إي، ولكن أُعيد كتابة إكس إف سي إي وإلغاء استخدام مكتبات XForms وعلى الرغم من ذلك ظل الاسم باقيًا، ولا يتم كتابة اسمه الآن باستخدام الأحرف الإنجليزية الكبيرة بهذا الشكل "XFce" بل يتم كتابته بالشكل التالي: "Xfce".

Fahad السبت, 2019/08/17 - 10:57ص
disqus

August 17th 2019, 3:28 am

صدور ليبرأوفيس ٦.٣، أسرع ٩٧٪ في فتح الملفات

وادي التقنية

صدور ليبرأوفيس ٦.٣، أسرع ٩٧٪ في فتح الملفات

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


٢- توفر نمط واجهة التبويب المضغوط للاستخدام العام بعد أن أضيفت كميزة تجريبية في الإصدار ٦.٢ .


٣- استبدال قائمة منسدلة بأيقونة الجمع القديمة مما يعطي المستخدم وصولا سريعا بأكثر الدوال استخداما.


٤- دعم هيئة الملفات PDF/A-2 المعيارية عند تصدير الملفات إلى PDF.
٥- أصبح الآن بالإمكان إخفاء بالمعلومات الحساسة قبل  تصدير الملفات ومشاركتها.


٦- أضيف نمط سطر الأوامر في نظام ويندوز حتى يسهل العمليات بالدفعات من مثل الطباعة والتحويل بين صيغ الملفات.
٧- تحسين التوافقية مع ملفات حزمة مايكروسوفت المكتبية المملوكة، حيث أضيف دعم القوالب لملفات وورد وإكسل و دعم المخططات في DOCX و استيراد وتصدير  SmartArt في ملفات pptx.


الجدير بالذكر أن ٦٥٪ من هذه المميزات عمل عليها مطورون داعمة لليبرأوفيس و ٣٥٪ من متطوعين. ومنذ إصدار ليبرأوفيس ٦.٣ الجمعة الماضية، نزلت أكثر من ٢٥٠ ألف نسخة منه حتى الآن.
هذه الإصدارة لا ينصح بها لمن يبحث عن الثبات والاستقرار بل هي موجهة للذين يحبون تجربة المميزات الجديدة أول بأول.
لتنزيل هذه الإصدارة من هنا.

Fahad الجمعة, 2019/08/16 - 9:39ص
disqus

August 16th 2019, 2:13 am

إصدار بلندر ٢.٨ الثورية

وادي التقنية

إصدار بلندر ٢.٨ الثورية

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

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


٢- منضدات عمل مخصصة وجديدة تسمح لك بالبدء سريعا في المهام من مثل النحت والتلوين وتتبع التحركات، كذلك يمكن تخصيص منضدة عمل خاصة بكل لتلائم احتياجاتك.

منضدة النحت

منضدة التحريك

منضدة الإضاءة


٣- محرك Eevee الجديد كليا أضيف محرك جديد لتصيير مباشرة أثناء التصميم بحيث تعاين تصميماتك مباشرة مما يسهل عملية التصميم كثيرا. وكذلك يستخدم لتصدير المشاهد بالشكل النهائي.


٤- أدوات تفاعلية جديدة لنافذة عرض 3D مع شريط أدوات جديد. كل هذا لتسهيل البدء في استخدام بلندر للمستخدمين الجديد واستكشاف قدرات بلندر المخفية بالنسبة للمستخدمين الحاليين.


٤- إعادة كتابة نافذة عرض 3D بالكامل لتحسينها والاستفادة من بطاقات الرسومية الحديثة. بحيث أصبح يدعم مبدأ: ( إن الذي تراه هو الذي تحتاج إليه).


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


٦-مميزات جديدة في محرك Cycles ، حيث أصبح يدعم مميزات تجارية قياسية من مثل Cryptomatte و الشعر BSDF، بالإضافة دعم التصيير عن طريق GPU و CPU


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

Fahad الأربعاء, 2019/08/14 - 8:13م
disqus

August 14th 2019, 1:16 pm

10 نصائح لإخراج مميز للكتب والوثائق

وادي التقنية

10 نصائح لإخراج مميز للكتب والوثائق

حسناً، كان مخططاً لهذا المقال من فترة طويلة نوعاً ما، وكل مرة يحدث أمر ما ويتأخر كتابة المقال! لذا قررت كتابته بشكل مختلف قليلاً هذه المرة، وهو نشر التحديثات أولاً بأول (نسبة الاكتمال حالياً حوالي 70%، أيضاً ستضاف الصور لاحقاً)

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

في الأساس هذا المقال عام لكنه بشكل رئيسي يتناول إخراج الكتب عن طريق برامج التحرير مثل LibreOffice Writer. فكل نقطة من هذه النقاط غالباً لها خاصية في محرر النصوص للقيام بها بشكل تلقائي ومؤتمت.

 

١. الأساسيات تأتي أولاً

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

 

٢. الغلاف

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

 

٣. الفهرس

  • اجعل العناوين في الفهرس في شكل روابط قابلة للضغط عليها Clickable حيث تصلك بصفحة العنوان مباشرةً.
  • في المقابل، اربط الصفحات بالفهرس لسهولة الرجوع إليه إلكترونياً بحيث يكون في كل صفحة علامة للرجوع إليه.

 

٤. التنسيق العام

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

 

٥. المقروئية

  • اختر خطاً مناسباً للعناوين والمتن سواء للنصوص العربية أو اللاتينية. تأكد أن الخط مقروء إلكترونياً وورقياً.
  • يفضل استخدام خطين فقط في كل لغة، أحدهما للعناوين والآخر للمتن. وشخصياً أنصح باستخدام:
    •  للمتن: خط "Droid Arabic Naskh" أو الخط الأميري.
    • للعناوين: خط "Droid Arabic Kufi" أو الخط الأميري السميك.
  • اختر تناسباً بين حجم الخط العربي والخط اللاتيني في الملف، حيث أن بعض الخطوط تكون أكبر من غيرها. فعلى سبيل المثال قد يكون خطاً عربياً مقاس 10 يتناسب مع خطاً لاتينياً مقاس 9 … ف ليس بالضرورة أن يكونا نفس المقاس. (هذا شيء تحدده أنت بالنظر حينما تقرر أياً من الخطوط ستختار)
  • أيضاً هناك نقطة أخرى تعتمد على الخطوط التي ستختارها، وهي تباعد السطور والفقرات! فبعض الخطوط سطورها متباعدة بشكل واضح  والأخرى متقاربة للغاية! قد تحتاج أن تقوم بضبط هذه القيمة للحصول على أفضل نتيجة للمقروئية.
  • من الأشياء التي تساعد على تحسين المقروئية هو تلوين التنقيط والترقيم.
  • المحاذاة Alignment يجب أن تكون في اتجاه اللغة (على سبيل المثال اللغة العربية تكتب من اليمين لليسار، لذا المحاذاة تكون على اليمين) أو ملء السطر Justified. ﻷ تقم نهائياً بمحاذاة النص في المنتصف.

 

٦. الترويسة والتذييل

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

 

٧. تنسيق المحتوى

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

 

٨. تصدير PDF

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

 

٩. المراجعة

(هذا القسم سيضاف لاحقاً).

 

١٠. أخرى

(هذا القسم سيضاف لاحقاً).

أحمد أبوزيد السبت, 2019/08/03 - 11:45م
disqus

August 3rd 2019, 4:53 pm

شركة الألعاب Ubisoft تدعم بلندر

وادي التقنية

شركة الألعاب Ubisoft تدعم بلندر

أعلنت مؤسسة بلندر عن إنضمام شركة الألعاب Ubisoft لقائمة الداعمين الذهبيين لتطوير برنامج الرسم الثلاثي بلندر.

هذا الإعلان يأتي بعدما منحت شركة  Epic Games مؤسسة بلندر ١.٢ مليون دولار نقدا من أجل تطوير برنامج بلندر .

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

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

زايد الثلاثاء, 2019/07/23 - 2:01م
disqus

July 23rd 2019, 6:10 am

مؤسسة بلندر تتلقى ١.٢ مليون دولار منحة من Epic Games

وادي التقنية

مؤسسة بلندر تتلقى ١.٢ مليون دولار منحة من Epic Games

منحت شركة  Epic Games مؤسسة بلندر ١.٢ مليون دولار نقدا من أجل تطوير برنامج بلندر وتحسينه وتسهيله للمصمين الرقميين ولمطوري الألعاب.
وقد أطلقت شركة Epic Games مشروع المنحات العظيمة بقيمة ١٠٠ مليون دولار  لدعم كل أنواع الإبداع التكنولوجي  من مطوري الألعاب والمحترفين ومنشئ الوسائط الترفيهية وطلاب ومدرسين ذات علاقة بمحرك  Unreal أو تحسين برامج تصميم الثلاثي الأبعاد مفتوحة المصدر.
وقد أوضح  رئيس مؤسسة بلندر تون روسندال في تغريدة له أنه اتفق مع شركة Epic Games في استثمار هذا المبلغ في تحسين جودة مشاريع المؤسسة التطويرية بشكل عام.
تعتبر هذه خطوة كبيرة في مسيرة تطوير برنامج بلندر وتثبت مكانه بين برامج ثلاثية الأبعاد الاحترافية.

Fahad الاثنين, 2019/07/15 - 9:00م
disqus

July 15th 2019, 1:20 pm

مقالة مميزة: كارثة متوقعة في عالم الإنترنت

وادي التقنية

مقالة مميزة: كارثة متوقعة في عالم الإنترنت

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

Fahad الاثنين, 2019/07/15 - 8:37ص
disqus

July 15th 2019, 12:53 am

مايكروسفت أفيس ٣٦٥: أصبح غير قانوني في عديد من مدارس ألمانيا

وادي التقنية

مايكروسفت أفيس ٣٦٥: أصبح غير قانوني في عديد من مدارس ألمانيا

في تطور مثير من أجل حماية الخصوصية في ألمانيا، أصبح استخدام مايكروسفت أفيس ٣٦٥ غير قانوني في مدارس ولاية هسن الألمانية (تعداد سكانها ستة ملايين نسمة)، يأتي ذلك بعد أن قرر مفوض الولاية لحماية البيانات أن استخدام منصة مايكروسفت أوفيس السحابية بإعدادتها الافتراضية يكشف المعلومات الشخصية للطلاب والمعلمين ويمكن أن يصل إليها المسؤولون في الولايات المتحدة الأمريكية. يأتي هذا القرار بعد عدة سنوات من النقاش المحلي حول مسألة هل يمكن للمدارس الألمانية ومؤسسات الدولة الأخرى استخدام برامج مايكروسفت من أساسه.
وقد استثمرت مايكروسفت سابقا ملايين دولارات في خدمة السحاب الألمانية، وقد سمحت السلطات في هسن للمدارس باستخدام مايكروسفت عام ٢٠١٧م، لكن في أغسطس ٢٠١٨م قررت مايكروسفت إغلاق خدمة السحاب الألمانية ، مما يعني حفظ بيانات مستخدمي أوفيس ٣٦٥ الألمان في الولايات المتحدة، وهذا ما يثير قلق سلطات الولاية خصوصا أن قانون Cloud Act الأمريكي وقانون  USA Freedom Act يعطي صلاحيات واسعة للحكومة الأمريكية في طلب البيانات من شركات التقنية.
بينما في الوطن العربي تتسابق كثير من الجامعات في اعتماد خدمات مايكروسفت السحابية وخدمات جوجل وخدمات أمزون من دون اعتبار لخصوصية بيانات المستخدمين أو مراعاة سيادة الدولة وهذا يجب التنبه له وعدم إغفاله.

Fahad الأحد, 2019/07/14 - 8:03م
disqus

July 14th 2019, 12:16 pm

صدور لينكس كالي لحاسوب رازبيري ٤

وادي التقنية

صدور لينكس كالي لحاسوب رازبيري ٤

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

    معالج   64-bit BCM2711 quad-core A72 CPU @ 1.5GHz
    بطاقة عرض VideoCore VI GPU
    منفد Gigabit Ethernet
    ذاكرة بعدة خيارات: 1GB أو 2GB أو  4GB من نوعية LPDDR4
    منفذان لـ  Micro-HDMI
     منفذان لـ USB3
     منفذان لـ USB2
    بطاقة Dual-band (2.4GHz and 5GHz) WiFi
    Bluetooth 5.0
    منفذ لـ USB Type C power
    واجهة لكاميرة CSI
    واجهة لعارض DSI
    منفذ لبطاقة MicroSD  
أصبحت توزيعة لينكس كالي الأمنية متوفرة لتجربتها وتشغليها على هذا الحاسوب الصغير . يمكن تنزيل كالي لينكس لحاسوب رازبيري من هنا.

Fahad الخميس, 2019/07/11 - 10:21ص
disqus

July 11th 2019, 2:47 am

إصدار نواة لينكس 5.2

وادي التقنية

إصدار نواة لينكس 5.2

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

وهنا نجمل أكثر ما يهم المستخدم النهائي وهو دعم الأجهزة:
1- تحسين دعم أجهزة Logitech  الاسلكية مثل لوحة مفاتيح MX5500 و جهاز التحكم عن بعد Logitech S510،  و إضافة إلى دعم إظهار حالة البطارية في الأجهزة التي تعمل تحت تردد 2.4GHz من شركة Logitech .
2- أضيف معرف جديد لأجهزة Realtek اللاسلكية تحت اسم RTW88 ، حيث سيدعم بطاقات RTL8822BE  و RTL8822CE.
3- أصبح منفذ USB نوع سي يدعم النمط ا لمتغير لـ DisplayPort و دعم تحديث الإصدار الثابتة للأجهزة المتصلة بهذا المنفذ.
4- دعم عدة أجهزة ذات شريحة واحدة مثل Orange Pi 3 و Orange Pi RK3399 و Nvidia Jetson Nano.
5- إضافة دعم لتعريف أجهز التسريع الرسومية من شركة ARM Mali المستخدمة على نطاق واسع في الهواتف و أجهزة الشريحة الواحدة.
6- دعم Thunderbolt  لأجهزة أبل القديمة.
7- دعم الإسبات المتكرر لأجهزة انتل Baytrail و Cherrytrail.
8- دعم الجيل القادم من معالجات اي ام دي المسماة  EPYC.
9- دعم معالج الرسوميات انفيدا GeForce GTX 1650 في التعريف الحر.

هذا أهم ما شد إنتباهنا ، و يمكنكم الإطلاع على قائمة أكثر عمقا على   Kernel Newbies   .

زايد الأربعاء, 2019/07/10 - 11:21ص
disqus

July 10th 2019, 3:30 am

صدور دبيان ١٠ (باستر)

وادي التقنية

صدور دبيان ١٠ (باستر)

بعد ٢٥ شهرا من التطوير، أعلن مجتمع دبيان عن إطلاق النسخة  العاشرة من توزيعة لينكس دبيان الشهيرة، هذه الإصدارة تعتبر نسخة مستقرة وسوف تدعم لخمس سنوات من التحديثات الأمنية. أطلق على هذه الإصدارة اسم باستر وهو اسم شخصية كلب أليف من فلم (حكاية لعبة Toy Story ).
توزيعة دبيان تدعم  عشر منصات وأسطح مكتب متعددة، هذه الإصدارة تأتي بأسطح المكتب التالية:
    Cinnamon 3.8,
    GNOME 3.30 حيث يستخدم خادم ويلاند بشكل بافتراضي
    KDE Plasma 5.14,
    LXDE 0.99.2,
    LXQt 0.14,
    MATE 1.20,
    Xfce 4.12.
بحيث يستطيع المستخدم اختيار سطح المكتب الذي يعجبه أو حتى استخدام دبيان الأساسي من دون واجهة مستخدم.
تأتي هذه الإصدارة بآلية للتحقق من حزم البرامج حيث غطت هذه الآلية أكثر من ٩١٪ من الحزم  تعتبر هذه الميزة مهمة لزيادة آمان الحزم وعدم تزييفها.
أيضا لزيادة الأمن أصبحت تقنية الجدار الناري AppArmor مفعلة بشكل افتراضي. أيضا أضيفت ميزة ترشيح الشبكة بحيث أصبحت تعتمد على برنامج nftables بشكل افتراضي في دبيان ١٠.
من ناحية إقلاع النظام فقد دعمت دبيان ٧ نظام UEFI ومع دبيان ١٠ أضافت دعم الإقلاع الآمن لمعماريات: amd64 و i386 و arm64  وسيعمل بشكل جيد مع أي جهاز يفعل خيار الإقلاع الآمن و لن يحتاج  المستخدم إلى تعطيل الإقلاع الآمن من خيارات بيوس.
تأتي دبيان ١٠ بحزم  cups و  cups-filters مثبتة بشكل افتراضي حتى توفر ميزة الطباعة من دون تعريف  للمستخدم.
تأتي دبيان ١٠ بآخر نسخ البرامج محدثة ومستقرة  حيث غطى التحديث أكثر ٦٢٪  من كل حزم النسخة السابقة، وتأتي دبيان ١٠ بأكثر من ٥٩ ألف حزمة جاهزة للتثبيت.
لتجربة هذا الإصدار أو تثبيته من هذه الوصلة.

Fahad الاثنين, 2019/07/08 - 10:21ص
disqus

July 8th 2019, 2:54 am

إطلاق رازبيري ٤

وادي التقنية

إطلاق رازبيري ٤

أطلقت النسخة الرابعة من الحاسوب الكفي رازبيري، هذه الإصدارة جاءت بمعالج  ARM سرعة ١.٥ جيجاهرتز ودعم منفذين HDMI بقدرة عرض 4K وبطاقة شبكة بسعة جيجا ومنافذ USB3 السريعة، وخيارات ذاكرة متعددة تصل إلى ٤ جيجا.
تعتبر هذه الإصدارة من رازبيري حاسوب قوي على شريحة واحدة وتبدأ الأسعار من ٣٥ دولار لذاكرة بسعة ١ جيجا وبسعر ٤٥ دولار لنسخة ٢ جيجا و٥٥ دولار لنسخة ٤ جيجا.


المواصفات الكاملة لهذه الإصدارة هي:
  معالج   64-bit BCM2711 quad-core A72 CPU @ 1.5GHz
    بطاقة عرض VideoCore VI GPU
    منفد Gigabit Ethernet
    ذاكرة بعدة خيارات: 1GB أو 2GB أو  4GB من نوعية LPDDR4
    منفذان لـ  Micro-HDMI
     منفذان لـ USB3
     منفذان لـ USB2
    بطاقة Dual-band (2.4GHz and 5GHz) WiFi
    Bluetooth 5.0
    منفذ لـ USB Type C power
    واجهة لكاميرة CSI
    واجهة لعارض DSI
    منفذ لبطاقة MicroSD  
تكامل مع الإصدارات السابقة من رازبيري


الشبكات و منافذ USB
تتميز الإصدارة الرابعة هذه بوجود منفذين  USB3 مما يعطيك سرعة أكبر عندما تصل بهما شريحة القرص الصلب.
أيضا ما يميز هذه الإصدارة بتخصيص منفذ للشبكات Gigabit بخلاف الإصدارات السابقة مما يجعل سرعة التشبيك لا تقارن مع الإصدارات السابقة.
كذلك تمتاز هذه الإصدارة بميزة وايفاي المزدوجة بحيث يمكنك التشبيك مع شبكات 2.4GHz و 5GHz.


العرض
مع هذه الإصدارة أعطت بطاقة العرض VideoCore VI GPU المدمجة في رازبيري القدرة على عرض فيديو من نوع 4K بالإضافة إلى إمكانية توصيل شاشتين معا حيث توفر منافذ Micro-HDMI. وتجدر الإشارة إلى أن بحاجة لمحول أو كبل Micro-to-full HDMI .


إصدارة جديدة من نظام التشغيل Raspbian Buster
جاء إصدار رازبيري ٤ مع إصدارة جديدة من نظام دبيان المسمى Buster  هذه الإصدارة جاءت بدعم OpenGL ES 3 وتحديث شامل للحزم ومن بينها بايثون ٣.٧.


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

Fahad الثلاثاء, 2019/06/25 - 8:30ص
disqus

June 25th 2019, 12:48 am

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

وادي التقنية

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

أعلن مجتمع كدي عن إطلاق نسخة ٥٫١٦ من سطح مكتب كدي، في هذه الإصدار كان التركيز على تحسين سطح مكتب كدي وتطوير وتوحيد تجربة الاستخدام في جميع أجزاء النظام. ففي مبادرة بدأت منذ عامين ركز مطورو كدى على قابلية الاستخدام وزيادة اإانتاجية، وأصبح سطح مكتب كدى يتميز بالخفة والسهولة والانسجام.
من المميزات الجديدة في هذه الإصدارة  إعادة كتابة نظام التنبيهات بالكامل وإضافة نمط عدم الإزعاج وتصنيف التنبيهات على حسب التاريخ بشكل ذكي.
تحسين نظام الثيمات وإضافة إمكانية للمطورين تتيح لهم التحكم بالمزيد من الويدجات على سطح المكتب.
تحسين الخصوصية بحيث تظهر لك أيقونة مايكروفن إذا كان أحد التطبيقات يسجل الصوت.
تحسين مظهر شاشات الدخول والخروج
تحسين دعم مخدم عرض ويلاند الجديد بإضافة دعم بطاقات Nvidia ودعم ميزة السحب والإفلات بين برامج ويلاند وبرامج التي تعمل تحت XWayland ll

لاستعراض كل التغييرات في هذه الإصدارة تابع هذه الصفحة.

Fahad الخميس, 2019/06/13 - 1:13م
disqus

June 13th 2019, 5:46 am

صدرو Krita 4.2.0

وادي التقنية

صدرو Krita 4.2.0

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

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

Fahad الأحد, 2019/06/02 - 1:12م
disqus

June 2nd 2019, 5:43 am

صدور 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".

أظنُّ أنَّك تفكِّر في ما ذُكر عن "التطبيقات المحتكرة" وأدواتها التصميمية الرهيبة. لا تق