Quantcast
Channel: وادي التقنية - أخبار تقنية المعلومات أولا بأول
Viewing all 580 articles
Browse latest View live

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

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

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

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

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

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

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

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

إطلاق OpenToonz 1.3

$
0
0
إطلاق OpenToonz 1.3

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

https://opentoonz.github.io/img/2018_1_ninjabatman_2.jpg

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

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

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

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

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

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

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

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

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

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

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

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

تعلم البرمجة

$
0
0
تعلم البرمجة

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

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

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

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

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

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

شعارات لغات البرمجة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

الخوارزميات

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

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

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

مخطط Flowchat يبين خورازمية حساب العمر

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

مخطط Flowchat يبين خورازمية حساب العمر المصححة

إطارات العمل

كلمة أخرى شائعة جدًا في عالم البرمجة هي "إطارات العمل" 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;}

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

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

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

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

مخطط Flowchat لخوارزمية فيها حلقة تكرار وتجلب البيانات من قاعدة البيانات

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

الدوال

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

مخطط Flowchat لتمثيل دالة تقسم العدد الكبير على الصغير

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

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

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

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

قناة أكاديمية حسوب على يوتيوب

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

لقطة شاشة من موسوعة حسوب

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

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

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

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

تتألف صفحة الويب من مجموعة من المكونات، وتُكتَب هذه المكونات باستخدام لغة 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

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

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

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

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

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

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

صدور Kdenlive 19.04

$
0
0
صدور Kdenlive 19.04

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


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


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


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


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

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

 

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

صدور FreeCAD 0.18

$
0
0
صدور 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

صدرو Krita 4.2.0

$
0
0
صدرو Krita 4.2.0

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

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

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

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

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

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

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

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

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

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

أطلقت النسخة الرابعةمن الحاسوب الكفي رازبيري، هذه الإصدارة جاءت بمعالج  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

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

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

بعد ٢٥ شهرا من التطوير، أعلن مجتمع دبيان عن إطلاق النسخة  العاشرةمن توزيعة لينكس دبيان الشهيرة، هذه الإصدارة تعتبر نسخة مستقرة وسوف تدعم لخمس سنوات من التحديثات الأمنية. أطلق على هذه الإصدارة اسم باستر وهو اسم شخصية كلب أليف من فلم (حكاية لعبة 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

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

$
0
0
إصدار نواة لينكس 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

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

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

أعلنت شركة 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$
0
0
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

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

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

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

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


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

منضدة النحت

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

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


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


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


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


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


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


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

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

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

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

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


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


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


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


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


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

Fahadالجمعة, 2019/08/16 - 9:39ص
disqus
Viewing all 580 articles
Browse latest View live