اذهب إلى المحتوى

لوحة المتصدرين

  1. محمد فواز عرابي

    • نقاط

      1

    • المساهمات

      71


  2. حسام برهان

    حسام برهان

    الأعضاء


    • نقاط

      1

    • المساهمات

      215


  3. zahershullar

    zahershullar

    الأعضاء


    • نقاط

      1

    • المساهمات

      625


  4. هبة محمد سعيد

    هبة محمد سعيد

    الأعضاء


    • نقاط

      1

    • المساهمات

      135


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 12/06/16 في كل الموقع

  1. تعتبر المصفوفات من بنى المعطيات المهمّة في أيّ لغة برمجة. سيفترض هذا الدرس أنّه لديك خبرة مسبقة عن مفهوم المصفوفة. المصفوفات في سي شارب هي عبارة عن نوع مرجعيّ reference type، وهي ترث من الصنف الأب System.Array. تقدّم لنا سي شارب المصفوفات بأسلوب مبسّط وواضح. فلتعريف مصفوفة يمكنها استيعاب 10 عناصر من النوع int مثلًا يكفي أن نكتب ما يلي: int[] arrIntegers = new int[10]; للعبارة السابقة في الواقع وظيفتان: الأولى هي التصريح عن المتغيّر arrIntegers على أنّه مصفوفة عناصرها من النوع int وذلك عن طريق كتابة []int أوّل العبارة. والثانية هي إنشاء كائن المصفوفة وحجز 10 أماكن في الذاكرة بحيث يستطيع كلّ مكان منها استيعاب قيمة من النوع int وذلك عن طريق التعبير [new int[10 ومن ثمّ إسناد المرجع لهذا الكائن إلى المتغير arrIntegers. ويمكن كما نعلم أن نجري هذه العمليّة على شكل عبارتين منفصلتين. يمكننا إنشاء أيّ نوع من المصفوفات نرغبه. فيمكننا إنشاء مصفوفات عناصرها نصوص []string، ومصفوفات عناصرها أعداد ذوات فاصلة عائمة مثل []float، وحتى يمكننا إنشاء مصفوفات عناصرها كائنات من أصناف ننشئها نحن بأنفسنا. فمثلًا إذا أنشأنا الصنف Car فيمكننا إنشاء مصفوفة من العناصر التي يقبل كل عنصر منها أن يخزّن مرجع لكائن من الصنف Car وذلك على الشكل التالي: Car[] arrCars = new Car[5]; تُنشئ العبارة السابقة المصفوفة arrCars والتي تحوي 5 عناصر يمكنها تخزين مراجع لكائنات من الصنف Car. دورة تطوير التطبيقات باستخدام لغة Python احترف تطوير التطبيقات مع أكاديمية حسوب والتحق بسوق العمل فور انتهائك من الدورة اشترك الآن استخدام المصفوفات مع أنواع مضمنة لكلّ عنصر في مصفوفة دليل index، ويُعبّر عن ترتيب هذا العنصر ضمن المصفوفة. يبدأ ترقيم الأدلّة في أيّ مصفوفة بالصفر. أي أنّ دليل العنصر الأوّل هو الصفر. فالمصفوفة arrCars التي صرّحنا عنها قبل قليل تحتوي على خمسة عناصر، دليل العنصر الأوّل هو 0، أمّا دليل العنصر الأخير فهو 4 كما هو واضح. يمكن المرور على عناصر أيّ مصفوفة باستخدام الدليل. فمثلًا يمكننا الوصول إلى العنصر الثاني في المصفوفة arrCars عن طريق كتابة [arrCars[1. يطلب البرنامج Lesson09_01 التالي من المستخدم إدخال درجات 5 طلاب في إحدى المواد الدراسيّة ومن ثمّ يحسب معدّل هؤلاء الطلبة في هذه المادّة، على افتراض أنّ الدرجة العظمى هي 100. ومن ثمّ يطبع المعدّل مع أسماء الطلاب ودرجاتهم على الشاشة: 1 using System; 2 3 namespace Lesson09_01 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 int[] arrMarks = new int[5]; 10 string[] arrNames = new string[5]; 11 int sum = 0; 12 13 Console.WriteLine("Input Students Marks"); 14 Console.WriteLine("====================="); 15 16 //input loop. 17 for(int i = 0; i < arrMarks.Length; i++) 18 { 19 Console.Write("Input student {0} th name: ", i + 1); 20 arrNames[i] = Console.ReadLine(); 21 22 Console.Write("Input student {0} th mark: ", i + 1); 23 string tmpMark = Console.ReadLine(); 24 arrMarks[i] = int.Parse(tmpMark); 25 26 Console.WriteLine(); 27 } 28 29 Console.WriteLine(); 30 Console.WriteLine("Students Marks Table"); 31 Console.WriteLine("===================="); 32 Console.WriteLine("No\tName\tMark"); 33 34 //calculating sum and display output loop. 35 for (int i = 0; i < arrMarks.Length; i++) 36 { 37 sum += arrMarks[i]; 38 Console.WriteLine("{0}\t{1}\t{2}", i + 1, arrNames[i], arrMarks[i]); 39 } 40 41 Console.WriteLine("-------------------"); 42 Console.WriteLine("Sum\t\t{0}", sum); 43 Console.WriteLine("Average\t\t{0}", sum/(double)arrMarks.Length); 44 Console.WriteLine(); 45 } 46 } 47 } يبدأ البرنامج السابق بالتصريح عن المصفوفتين arrMarks لتخزين علامات الطلّاب و arrNames لتخزين أسمائهم. كما يصرّح عن المتغيّر sum لتخزين مجموع الدرجات. يعرض البرنامج عبارتين توضيحيّتين في السطرين 13 و 14، ثمّ تبدأ حلقة for في السطر 17 بجمع أسماء ودرجات الطلّاب في هذه المادّة. لاحظ كيف أنّنا وضعنا شرط استمرار الحلقة i < arrMarks.Length (السطر 17). تعطينا الخاصيّة Length للمصفوفة arrMarks عدد العناصر ضمن هذه المصفوفة (عددها 5 في مثالنا). سيضمن ذلك تنفيذ حلقة for لخمسة مرّات فقط. نبدأ اعتبارًا من السطر 29 بالتجهيز لعرض النتائج، حيث سنظهرها على شكل جدول يضم ثلاثة أعمدة الرقم المتسلسل للطالب No والاسم Name والدرجة Mark. يطبع السطر 32 ترويسة هذا الجدول من خلال النص "No\tName\tMark" نستخدم المحرف t\ في النص السابق لترك مسافة جدولة tab تفصل بين كل عمودين. يدخل البرنامج بعد ذلك إلى حلقة إظهار النتائج اعتبارًا من السطر 35. لاحظ النص التنسيقيّ "{0}\t{1}\t{2}" في السطر 38، وظيفته أيضًا ترك مسافة جدولة بين كل عمودين. بعد الانتهاء من الحلقة نُظهر المجموع Sum والمعدّل Average بقسمة المجموع Sum على عدد الطلاب. أمر أخير تجدر ملاحظته، في السطر 43 عند حساب المعدّل استخدمنا التعبير التالي: sum/(double)arrMarks.Length، ويعود سبب وجود عامل التحويل (double) أمام arrMarks.Length إلى جعل القسمة تجري بين قيمة من نوع int (قيمة sum) وقيمة من نوع double لكي يصبح الناتج من نوع double. لأنّه بدون عامل التحويل هذا، ستجري عمليّة القسمة بين قيمتين من نوع int (الخاصيّة Length هي من نوع int) وبالتالي سيكون الناتج من نوع int وتُهمل أي أجزاء عشريّة وهذا أمر غير مرغوب. لقد نفّذت البرنامج وقمت بتزويده ببعض البيانات، وحصلت عل الخرج التالي: استخدام المصفوفات مع أنواع من إنشاءنا لا تختلف طريقة التعامل مع المصفوفات عناصرها من أنواع مضمّنة مع مصفوفات عناصرها من أصناف موجودة في مكتبة FCL أو حتى من أصناف ننشئها نحن، باستثناء أمرٍ مهمٍ واحد سنتعرّض له. سننشئ لهذا الغرض صنف جديد اسمه Student، يحتوي هذا الصنف على خاصّتين: الاسم Name والدرجة Mark. سنصرّح بعد ذلك عن المتغيّر arrStudents ليكون مصفوفة من النوع []Student. سيسلك هذا البرنامج نفس سلوك البرنامج Lesson09_01 تمامًا، أي سيطلب درجات خمسة طلاب ليعرضهم ويحسب مجموع درجاتهم ومعدّلهم. انظر البرنامج Lesson09_02: 1 using System; 2 3 namespace Lesson09_02 4 { 5 class Student 6 { 7 public string Name { get; set; } 8 public int Mark { get; set; } 9 } 10 11 class Program 12 { 13 static void Main(string[] args) 14 { 15 Student[] arrStudents = new Student[5]; 16 int sum = 0; 17 18 Console.WriteLine("Input Students Marks"); 19 Console.WriteLine("====================="); 20 21 //input loop. 22 for (int i = 0; i < arrStudents.Length; i++) 23 { 24 arrStudents[i] = new Student(); 25 26 Console.Write("Input student {0} th name: ", i + 1); 27 arrStudents[i].Name = Console.ReadLine(); 28 29 Console.Write("Input student {0} th mark: ", i + 1); 30 string tmpMark = Console.ReadLine(); 31 arrStudents[i].Mark = int.Parse(tmpMark); 32 33 Console.WriteLine(); 34 } 35 36 Console.WriteLine(); 37 Console.WriteLine("Students Marks Table"); 38 Console.WriteLine("===================="); 39 Console.WriteLine("No\tName\tMark"); 40 41 //calculating sum and display output loop. 42 for (int i = 0; i < arrStudents.Length; i++) 43 { 44 sum += arrStudents[i].Mark; 45 Console.WriteLine("{0}\t{1}\t{2}", i + 1, arrStudents[i].Name, arrStudents[i].Mark); 46 } 47 48 Console.WriteLine("-------------------"); 49 Console.WriteLine("Sum\t\t{0}", sum); 50 Console.WriteLine("Average\t\t{0}", sum / (double)arrStudents.Length); 51 Console.WriteLine(); 52 } 53 } 54 } كلّ من البرنامجين Lesson09_01 و Lesson09_02 متشابهان من حيث الخرج. ولكن يتعامل البرنامج Lesson09_02 مع المصفوفة arrStudents التي عناصرها من النوع Student. الصنف Student مصرّح عنه في الأسطر من 5 إلى 9. والمصفوفة arrStudents مصرّح عنها في السطر 15. يُعتبر السطر 24 مهمًا جدًا وفيه يتم إنشاء كائن جديد من الصنف Student وإسناده إلى كل عنصر من عناصر المصفوفة arrStudents في كل دورة من دورات حلقة for. إذا حاولت إزالة عبارة إنشاء الكائن من الصنف Student في السطر 24 فسيعمل البرنامج ولكنّه سيتوقّف عن التنفيذ ويصدر خطأ عندما يصل التنفيذ إلى السطر 27. لأنّه عندما نصرّح عن مصفوفة عناصرها من أنواع ليست مضمّنة، فنحن في الحقيقة نصرّح عن متغيّرات فقط دون إنشاء كائنات ضمن هذه العناصر (المتغيّرات). وبالتالي لا يحق لنا الوصول إلى أعضاء كائن غير مُنشَأ أصلًا، فالتعبير arrStudents.Name سيولّد خطأً مالم يكن هناك كائن فعلي ضمن العنصر [arrStudents[i (أي عنصر المصفوفة ذو الدليل i). حلقة foreach التكرارية حلقة foreach من الحلقات التكراريّة المفيدة والتي تتسم بأسلوب عمل أقرب إلى المألوف. يمكن استخدام حلقة foreach على المصفوفات والمجموعات كما سنرى لاحقًا. طريقة استخدام foreach بسيطة سنتناولها من خلال البرنامج Lesson09_03 التالي: 1 using System; 2 3 namespace Lesson09_03 4 { 5 class Program 6 { 7 static void Main(string[] args) 8 { 9 int[] arrNumbers = new int[10]; 10 Random random = new Random(); 11 12 for(int i = 0; i < arrNumbers.Length; i++) 13 { 14 arrNumbers[i] = random.Next(100); 15 } 16 17 foreach(int n in arrNumbers) 18 { 19 Console.WriteLine(n); 20 } 21 } 22 } 23 } ملاحظة: البرنامج السابق بسيط، حيث يصرّح عن المصفوفة arrNumbers بعشرة عناصر، ويعمل على تعبئة عناصرها بقيم عشوائيّة يحصل عليها من كائن من النوع Random. صرّحنا عن المتغيّر random وأسندنا إليه مرجع لكائن من الصنف Random وذلك في السطر 10. في حلقة for (الأسطر من 12 إلى 15) قمنا بتوليد أرقام عشوائيّة عن الطريق التابع (Next(100 من الكائن random والذي يولّد أرقامًا عشوائيّة صحيحة غير سالبة أقل من 100. بعد ذلك سنطبع هذه الأرقام العشوائيّة على الشاشة عن طريق حلقة foreach. مبدأ هذه الحلقة بسيط، منطق عملها يتلخّص على النحو التالي: "من أجل كل عنصر n موجود ضمن المصفوفة arrNumbers نفّذ الشيفرة الموجودة في حاضنة foreach". في مثالنا هذا تحتوي الحاضنة على عبارة برمجيّة واحدة (السطر 19). في البرنامج Lesson09_03 السابق المتغيّر n المصرّح عنه في السطر 17 والذي سيحمل قيمة مختلفة من عناصر المصفوفة arrNumbers في كل دورة للحلقة، هو متغيّر للقراءة فقط read-only لا يمكن تغيير قيمته ضمن حاضنة foreach. تمارين داعمة تمرين 1 اكتب برنامجًا يعرّف مصفوفة من نوع int بعشرة عناصر. ثم يطلب من المستخدم إدخال قيم لهذه العناصر. بعد ذلك يعمل البرنامج على ترتيب عناصر هذه المصفوفة تصاعديًّا. تلميح: تمتلك سي شارب أساليب جاهزة وسريعة لمثل عمليّات الترتيب هذه، ولكنّنا نريد في هذا المثال التدرُّب على الحلقات والمصفوفات. تمرين 2 عدّل البرنامج Lesson09_02 السابق لكي يسمح للمستخدم بإدخال بيانات عدد كيفي من الطلّاب. تلميح: ستحتاج لأن تطلب من المستخدم إدخال عدد الطلاب المراد إدخال بياناتهم أولًا، ومن ثمّ تصرّح عن المصفوفة arrStudents بالعدد المطلوب. الخلاصة تعرّفنا في هذا الدرس على المصفوفات وطرق استخدامها. توجد في الحقيقة مزايا أخرى تتمتّع بها المصفوفات مثل إمكانيّة نسخ مصفوفة إلى مصفوفة أخرى، وغيرها من المزايا الأخرى التي سنتناولها في الدروس والسلاسل القادمة. كما تعرّفنا أيضًا على الحلقة التكراريّة foreach التي يُعتبر أسلوب عملها مألوفًا، وهي مفيدة جدًا عند استخدامها مع المجموعات كما سنرى لاحقًا.
    1 نقطة
  2. سنشرح اليوم خامس مبادئ التّصميم المرئي وآخرها، والمتعلّقَ بكيفيّة تنظيم عناصر التّصميم ومنحها معنى، دون إضافة عناصر جديدة. الفكرة بسيطة لكنّها تؤثّر في كلّ ما تراه من حولك يوميًّا. سنودّع اليوم بطّاتنا المطاطيّة الّتي رافقتنا في دروسنا السّابقة، ولكنّ ليس قبل أن تشرح لنا اثنين من أهمّ مبادئ التّصميم المرئيّ. فهرس سلسلة مدخل إلى تجربة المستخدم: مدخل إلى تجربة المستخدم User Experience فهم ودراسة المستخدمين في مجال تجربة المستخدم دراسة الشريحة المستهدفة في مجال تجربة المستخدم كيفية التصميم للأجهزة المختلفة هندسة المعلومات في تجربة المستخدم تعرف على أنماط التصميم في مجال تجربة المستخدم أشياء لا يمكن اعتبارها رسوما تخطيطية (Wireframes) في مجال تجربة المستخدم تعرف على الرسوم التخطيطية (Wireframes) في مجال تجربة المستخدم مفهوم الثقل المرئي (Visual Weight) والألوان في مجال تجربة المستخدم التكرار ومخالفة الأنماط في مجال تجربة المستخدم المحاذاة والقرب في مجال تجربة المستخدم (هذا الدرس) تعرف على أساليب مسح الواجهة والتراتب المرئي في مجال تجربة المستخدم أساليب الإطلاع في مجال تجربة المستخدم: التصفح، البحث والاكتشاف تصميم هيكل صفحة الويب والعناصر الأساسية في مجال تجربة المستخدم الأزرار، النماذج والدعوات إلى الإجراء في مجال تجربة المستخدم استخدام علم النفس في مجال تجربة المستخدم لتكييف المستخدم وإقناعه كيف تغير الخبرة من تجربة المستخدم؟ تصميم تجربة المستخدم من خلال بيانات وإحصائيات المستخدمين تعرف على أنواع المخططات الإحصائية في مجال تجربة المستخدم اختبارات أ/ب (A/B Test) في مجال تجربة المستخدم المحاذاة (Alignment) تبدو البطّات القريبة مرتبطة ببعضها. نرى في الصّورة السابقة مجموعة من 6 بطّات جميلة، ونرى كذلك الكثير من العلاقات فيما بينها، وذلك بسبب كيفيّة مُحاذاتها: نرى صفّين نرى البطّتين في أقصى اليمين وأقصى اليسار على أنّهما "منفصلتان" تبدو البطّتان في الوسط أكثرها "انتظامًا" تبدو كلّ البطّات متّجهة باتّجاه واحد إن كنت ترى حركةً، فإن البطّة في أقصى اليسار تبدو متأخّرة عن رفيقاتها إن كنت ترى حركةً، فإن البطّة في أقصى اليمين تبدو وكأنّها تقود رفيقاتها جميع البطّات متطابقة، والاختلاف في إدراكنا يعود إلى أسلوب مُحاذاتها. يمكن مُحاذاة الأزرار المتشابهة الوظيفة، كما يمكن مُحاذاة مستويات مُختلفة من المستوى، أو تنظيم المعلومات في شبكة من الصّفوف والأعمدة لإيصال معنىً مُعقّد. القرب (Proximity) كلّما كانت البطّات أقرب إلى بعضها، بدت أكثر ارتباطًا. قرب الشيء أو بُعده عن شيء آخر يعطي انطباعًا عن مدى ارتباط هذين الشيئين. في الصّورة الثّانية نُشاهد 6 بطّات متماثلة ولكنّها لم تُحاذَ أفُقيًّا أو شاقوليًّا، ولكنّنا نُدرك وجود مجموعتين، إذ تبدو البطّات في كلّ مجموعة مرتبطة معًا كفريق أو عائلة، ولا شيء يُسبّب هذا الإحساس سوى قربها. في تصميماتك، اجعل العناصر المرتبطة فيما بينها أقرب بعضها من بعض، وأبعدها عن العناصر غير المرتبطة. مثلًا: عنوان وشرح مُختصر وزرّ (كدعوة لشراء أو تنزيل تطبيق)، هذه العناصر يجب أن تكون مُتقارَبة بحيث ينظر لها المستخدم على أنّها مجموعة، وهذا يُعفي المُستخدم من عناء قراءة كامل النّص لكي يدرك ارتباطه بالزّرّ. سنتعرّف في الدّروس القادمة على أنواع أنماط التّصميم والتّراتب المرئي (Visual Hierarchy). ترجمة بتصرّف للدّرس Alignment & Proximity من سلسلة Daily UX Crash Course لصاحبها Joel Marsh. اقرأ أيضًا النسخة العربية الكاملة من كتاب مدخل إلى تجربة المستخدم (User Experience - UX) 1.0.0 أنواع وطرق محاذاة النماذج (Forms) كيف تنشئ منزلِقًا Slider مناسبًا للواجهة الرسومية عند التصميم للجوال عشرة أمور أساسية يجب أخذها في الحسبان لدى تصميم النوافذ المنبثقة أهمية الفراغات البيضاء في تصميم الويب
    1 نقطة
  3. مرحبًا أيها الكُتّاب هل لنا أن نتحدث ببعض الجدّية عن مهنتنا؟ لا يخفى على أحد بأنه -وفي مجال العمل الحر- يتفوّق المصمّمون (وغيرهم الكثير) من المستقلين على نظرائهم من الكتّاب، وخاصة من حيث الأسعار التي يحدّدونها ومن المبالغ التي يستلمونها ولقد شعرت أنّ الوقت قد حان لنشرح السبب، فبالرّغم من أننا نعيش حاليًا أحد أفضل الأوقات (إن لم يكن الأفضل على الإطلاق) للعمل ككاتب؛ إلا أن هناك تفاوت كبير في قدرة الكُتّاب على الربح عبر شبكة الإنترنت، لأنّ أغلبيتهم يميلون للتنافس على القاع وهذا لا يعود بطبيعة الحال بأية فائدة على مستوى الإبداع في الكتابة أوحتى الإنجازات الشخصية، بينما تكتسح مجموعة صغيرة من الكتاب بكتاباتهم أغلب الفرص ،ويحصلون على مردود أكبر بإمكانك أن تُلاحظ كم هي الأمور سيئة للعديد من الكُتّاب هذه الأيام. بالطبع هناك سبب لهذه المشكلة وأنا آسف لقول أن الكُتّاب أنفسهم يتحمّلون جزئيًا مسؤولية هذا الوضع،فمُصمّمو ومطوّرو الويب لا يواجهونها والسبب هو أن الكُتّاب يُعرّفون أنفسهم بـ"كُتّاب مُستقليَّن". ولماذا تُعتبر هذه مشكلة؟ لأنه لا أحد يوّد توظيف "كاتبًا مستقلًا”. حقيقةً لا يوجد أي عميل تحدث إلي مسبقًا -من الذين يدفعون الكثير لِمُوظفِيهم - كان مهتمًا بتوظيف "كاتب مسّتقل"، على الإطلاق. هل تعلم ماذا يريدون حقًا؟ كُتّاب تسوّيق مُحتوى. كُتّاب مُحتويات المواقع كُتّاب بالمجال التّقني. ما يريده رجال الأعمال هو توظيف أُشخاص قادرين على بناء استراتيجية تسويق محتوى ناجحة تجلب زبائن جُدد عن طريق مقالات مكتوبة بإتقان. يرغبون في توظيف كتّاب قادرين على التأثير على الزّبائن المُحتملين ودفعهم إلى اتّخاذ قرار ، يريدون كُتّابًا يملكون القدرة على تسهيل المفاهيم الصّعبة وتسبيط المصطلحات التقنية وكتابة مقالات ودروس سهل الفهم. فالعملاء الذين يدفعون الكثير من المال لا يهتمون لطريقتك ونهجك بالكتابة وإنّما بأهدافهم، وبما أن تسويق المحتوى هو تخصّصي، دعوني أعرض عليكم الرسالة التي وصلتني مؤخرًا من عميل يدفع الكثير لقاء تنفيذ أعماله، ويبحث فيها عن شخص يملك مهارات كتابية: صديقي Clarck هو المدير التنفيذي لشركة Invision وهي شركة مذهلة وناجحة. أخبرني كلارك أنه يريد توظيف شخص لتوفير استراتيجية محتوى، لكن تمعّن في الكلمات التي استخدمها حينما قال ‘هل التوصيف الوظيفي الأفضل لهذا الشخص هو "مسوّق محتوى" أم "مدير تسويق" أم ماذا؟’ إنّه ليس العميل الوحيد الذي يعاني من هذه المشكلة، ففي الشهر الماضي وصَلني ما يقارب 14 طلبًا عن كيفية إيجاد كاتب محتوى، استلمتُ هذه الرسائل من شريحة واسعة من الشركات الناجحة التي تبحث عن شخص ما تدفع له، هل تعرفون مالذي لم يسألوا عنه أبدًا؟ لم يسألوني إطلاقًا إذا كنت أعرف كُتّابًا مُستقليّن. الفكرة أنّنا -أنا وأنت- نعلم تمامًا أن المهارة التي تُميّز كاتب المحتوى المُمتاز عن كاتب المُحتوى الجيد هو قدرته على كتابة مقالات مميزة، بعبارة أخرى هذه الشركات تبحث عن كاتب ولكنهم لا يعلمون ذلك ولن يستخدموا أبدًا هذا المُسّمى خلال بحثهم عن شخص للعمل بمعنى آخر، الكُتّاب المستقلون يقضون تمامًا على أية فرصة ممكنة لهم للربح من خلال تصنيف أنفسهم ككُتّاب مستقليّن. وفي عالم حيث تُوَزع منشورات تدعو الناس للمشاركة والكتابة بالمجان؛ فإن الكُتّاب المستقلين يُقاتلون في معركة غير رابحة ضد مبتدئين قد يكتبون مجانًا. هل تعلم من الذي لا يعاني من هذه المشكلة؟ الكتّاب الذين يستهدفون العملاء الذين لديهم استعداد للدفع، بعبارة أخرى العملاء الذين لا يبحثون عن رفع عداد الزيارات فحسب pageviews؛ وإنّما يبحثون عن شخص يستطيع التعامل مع حملة تسويق محتوى كاملة أو كتابة مقال مُقنع. يأتيك كاتب ليقول ولكنني لا أملك خلفية تقنية هذه العبارة التي يقولها معظم الكُتّاب ليَنقضوا بها كلامي وليعودوا للعمل بنفس الأسلوب وكسب القليل. هناك تزايد كبير في الطلب على كُتّاب محتوى مبدعين عبر الإنترنت، لكن بطبيعة الحال تحتاج لصقل مهاراتك. ولكن بالمقابل يجب أن تعلم أن قدرتك على كتابة محتوى مُميّز وسط مستنقع الكتابات السيئة هو حقيقة من أصعب المهارات التي يجب أن تمتلكها؛ وهي نقطة مهمة لصالحك أمام الكتاب المبتدئين. مجدّدًا أكرر: لا أحد يريد توظيف كاتب إطلاقَا. ماذا عن مصممي الويب رُبما يتساءل مُصمّمو الويب لماذا ذكرتهم في العنوان بالأعلى، السبب وباختصار لأن مُصّممي الويب لا يحملون الكره نفسه الذي يحمله الكُتّاب المستقليّن تجاه مهنتهم؛ ولأن هناك عملاء يرغبون بالدفع لمصممي الويب على الرغم من أنّهم يتعاملون مع وسط سيء أيضًا. وهذا لا يعني أنَهم خارج الشرك تمامًا؛ لقد رأيت الكثير من المصمَمين يعانون من مشاكل مُماثلة. لكن وعوضًا عن توصيف أنفسهم كخبراء في التجارة الإلكترونية؛ واجهات المواقع أو مواقع التجارة المحلية؛ يُركزّ مصممو الويب فقط على الخدمة التي سيحصل عليها العميل ويظهرون بذلك كمن يقدم مُنتجًا، ويجنون مقابل ذلك الكثير. مثال جيّد يوضح الفكرة قام به فريق Marketit الذي يقدم خدمة تصميم صفحات الهبوط. بوضع لوحات مكتوبة بالخط العريض"نحن نُصمّم من أجل النتيجة وكل ماعدا ذلك فهو ثانوي". هذا النوع من المصمّمين يستبعد الناس الذين يهتمون بتصميم مواقع جميلة وحسب (مثل رسام يستخدم صفحته كمعرض) ويجذب الناس الذين يدفعون الكثير مقابل تصميم صفحات الهبوط التي تحوّل الزّوار إلى زبائن. ومن أجل عدم السقوط في فخ محاولة جذب أوسع قاعدة عملاء ممكنة -كما يفعل الكُتّاب المُسّتقلون- يقوم مصمّمو الويب باستهداف شريحة أضيق من العملاء المحتملين عبر تقديم خدمات أقل، لكن يستهدفون عملاء يحتاجون فعلًا ما يقدّمونه ومستعدّين للدّفع مقابل ذلك. لكل قاعدة استثناء الطريقة الأفضل لأي شخص لنقد مثل هذه المقالات هو أن يجد خللًا ما في قصة من القصص التي ذكرتُها والتي يعرِفها مسبقًا ويبدأ بنشرها والتباهي في ذلك وكأنه يدحض بها كل ماقلته. لكن دعني أسبقك، أعرف بعض الكُتّاب المستقليّن الناجحين شخصيًّا، وهم يُسّمون أنفسهم "كُتّاب مستقليّن"، ولكنهم حقًا يجيدون عملهم، وهم أقرب لاستثناء منه إلى القاعدة؛ وفي العموم يقومون بتوفير "استراتيجية مُحتوى" لمعظم الشركات التجارية التي يعملون معها بغض النظر كيف يُفَضّلون تسمية ذلك. لذلك كلامي ليس عنهم وإنّما لعموم المُسّتقلين الذين يعانون من أجل الحصول على مردود مرتفع، والذين يتخبطون بسهولة، لأنّهم لا يعرفون كيف يُسوقون خَدماتهم في السياق الصحيح وللزبائن المُحتملين المناسبين. والآن حان دورك أنا لا أتوقع ردك فقط بل أنا متحمس جدًا لمعرفة رأيك -في التعليقات- حتى لوكنت ترى أنّني مخطئ تمامًا. لقد كتبت هذه المقالة لأعرض المشكلة الكبيرة التي تحدث في مجال العمل الذي أهتم به وكل ما أريده لك هو أن تحصل على دخل مناسب، ولكن إذا كنت مُصّرًا على فكرتك وترفض أن تختص؛ وتريد الاستمرار في العمل التقليدي مع عموم الكُتّاب المُستقليّن منخفضي الدخل، وإن لم تحصل على دخل أعلى فأتمنى أن يدفعك هذا المقال لإعادة النّظر في الأمر. ترجمة -وبتصّرف- للمقال: Why Freelance Writers Get paid Less Than Web Designers لصاحبه: Gregory Ciotti.
    1 نقطة
  4. إن المشاريع الشخصية للمصممين والرسامين مثل مشروع 36 Days of Type أو تحقيق تحدّيات مثل Daily Drop Cap حيث الفنانون ينتجون بأسلوبهم الخاص حرفًا جديدًا أو رقمًا جديدًا كل يوم، هي ما حفزني لكتابة درس اليوم. إن زخرفة الحروف الاستهلالية قديم عبر التاريخ مع أمثلة كثيرة في النصوص المبكرة. في درس اليوم سنقوم بزخرفة حرف باستخدام برنامج أدوبي إليستريتور مع مجموعة متنوعة من زخارف الفكتور. سنستخدم تقنيات مفيدة ستحتاجها في جميع مشاريعك المستقبلية. اخترت في الدرس حرف S ولكن من الممتع العمل على باقي الحروف لمشاهدة كيفية اختلاف مساحات العمل التي سنعمل عليها. باستخدام بعض التقنيات وأدوات بناء الأشكال القوية في الإليستريتور سنضيف مجموعة متنوعة من النقوش التي تتبع الحرف وسنصمم بعض الزخرفة لتزيين المساحات الداخلية. افتح برنامج أدوبي إليستريتور وأنشئ مستندًا جديدًا. استخدم أداة النص Type tool لإدخال حرف من اختيارك ثم اختر نوع الخط الذي سيمنحك مساحة جيدة لإبداعاتك. أنا اخترت حرف S بخط أنيق حديث اسمه Goku. من أجل العمل على الحرف كشكل مادي سنحتاج إلى تحويله إلى خطوط خارجية. انقر عليه بالزر الأيمن واختر Create Outlines أو استخدم الاختصار CMD+Shift+O. سنقوم باستخدام أداة Offset Path مرّات كثيرة في هذا الدرس. اذهب إلى القائمة Object > Path > Offset Path وأدخل القيمة 3px. لوّن هذا الشكل باللون الأبيض. عُد مجدّدًا إلى القائمة Object > Path > Offset Path لإضافة خطٍ محاذٍ جديد ولكن هذه المرة أدخل القيمة 2px. ولوّنه بالأسود. انقر بالزر الأيمن واختر Ungroup لفصل الأجزاء الثلاثة عن بعضها (الحرف الأصلي والمسارين الإضافيين). اختر الشكل الخارجي ثم انسخ CMD+C وألصق في الخلف CMD+B نسخةً عنه. حرّك الشكل قُطريًّا نحو الأسفل واليسار ثم اضغط على Shift واختر الشكل الأساسي مجدّدًا. اذهب إلى القائمة Object > Blend > Make اذهب إلى القائمة Object > Blend > Blend Options وغيّر المسافات إلى خطوات محدّدة Specified Steps برقم كبير مثل 100 لتشكيل انتقال سلس بين الشكلين. طبّق هذا التأثير بشكل دائم عبرالذهاب إلى القائمة Object > Expand وبذلك سيتحوّل التأثير إلى سلسلة من الأشكال الفردية. أدمج جميع هذه الأشكال الفردية في شكل واحد عبر اختيار Unite من لوحة Pathfinder. حدّد شكل الحرف الأساسي ثم اذهب إلى القائمة Object > Path > Offset Path أدخل القيمة السلبية -16px لإنشاء خط داخلي محاذٍ لحدود الشكل الأساسية. لوّن الشكل الجديد باللون الأبيض. انسخ CMD+C وألصق في المقدمة CMD+F نسخة عن هذه الأشكال. امسح لون التعبئة ثم اجعل الحدود بلون أسود. زِد سماكة الحدود إلى 11PT ثم فعّل خيار Round Cap. فعّل خيار الخط المنقّط Dashed Line ثم حدّد الخط بالقيمة صفر والفجوة بالقيمة 11pt. هذا الأمر سيُولِّد سلسلة من النقاط الدائرية ما يمنح الحدود الداخلية للشكل نقشًا مميزًا وجميلًا. ألصق نسخة أخرى عن هذه الأشكال واجعل اللون الأبيض للحدود. اضبط سماكة هذه الحدود بحيث تجعلها لمسة إضافية زخرفية رائعة. حدّد شكل الحرف الأساسي مجدّدًا وأضف مسارًا إضافيًّا موازيًا جديدًا Offset Path. أدخِل نصف القيمة الأخيرة هذه المرة لإنشاء حدود تقع في وسط المسافة بين الحدود السابقة والتي قبلها. اجعل لون الحدود أبيض واجعلها خطًّا منقطًّا بالإعدادات Round Cap وحجم النقطة 0pt ما سيُنتِج نقاطًا فحسب. اضبط حجم الحدود للتحكم بحجم النقاط بينما يتم تحديد الفجوة بينها. كبّر منظور العرض وارسم دائرة مثالية باستخدام أداة Ellipse tool في الفجوة في جوانب الحرف. استخدم تقنيات الحدود لإنتاج نقاط سوداء صغيرة. انسخ وألصق في المقدمة نسخة عن الدائرة الأخيرة واستبدل الحدود بلون تعبئة أسود. صغّر الحجم قليلًا مع الضغط على Alt وShift وذلك لتغيير الحجم مع المحافظة على مركزية الدائرة وموقعها ومثالية الاستدارة ثم اضغط CMD+F للصق نسخة أخرى. صغّر حجم النسخة الجديدة مع منحها لونًا أبيض. أضِف شكلًا ثالثًا وغيّر حجمه أيضًا وذلك لإنتاج حلقات بيضاء وسوداء. حدّد واجمع Group جميع عناصر هذه الزخرفة ثم انسخها وضع النُّسخ في أماكن أخرى من الحرف. في مكان آخر على لوح الرسم استخدام أداة رسم الدائرة لرسم دائرة صغيرة. ثم استخدم أداة التحديد المباشر Direct Selection tool لسحب النقطة من أحد جوانب الدائرة للخارج أثناء الضغط على مفتاح Shift. اختر أداة القلم واضغط على Alt أثناء النقر على النقطة البعيدة لإزالة مقابض وانحناءات البيزير تاركًا نقطة ذات زاوية حادّة. أضِف دائرة صغيرة بيضاء كلمسة زخرفية بسيطة. انسخ وألصق هذه الأشكال ثم دوّرها بزاوية 45 درجة ثم صغّرها قليلًا وضعها بجانب النسخة الأصلية. انسخ النسخة الأخيرة وألصقها في المقدمة ثم اذهب إلى القائمة Object > Transform > Reflect لعكسها على طول المحور الأفقي وضعها في الجهة المقابلة. اصنع نسخة عن شكل الدمعة ومدّد النقطة البعيدة منها أبعد لصنع ما يشبه زخرفة جذع زهرة. عدّل حجم ودوّر وضع شكلًا أصغر سيشكّل ورقة ثم اصنع ثلاث نسخ إضافية منها على طول الجذع. صغّر حجم الشكل الثاني قليلًا ثم حدّد الشكل الثالث واضغط على CMD+D لتكرار العملية الأخيرة (عملية التصغير) مع الضغط على هذا الاختصار مرّتين. استخدم هذا الاختصار ثلاث مرّات على الشكل الأخير ما يجعل التغيير في الحجم بين الأشكال تدريجي. حدّد جميع أشكال الأوراق ثم اختر خيار Horizontal Distribute Spacing من لوحة Align لتوزيعها بين بعضها بالتساوي. اصنع نسخة عن أشكال الأوراق واعكسها أفقيًا مستخدمًا قائمة Reflect. حرّكها للجهة المقابلة من الجذع. حدّد جميع الأشكال التي تُشكّل هذا العنصر وأدمجها من خيار Unite من لوحة Pathfinder في شكل واحد. اذهب إلى القائمة Object > Envelope Distort > Make وعدّل خيارات القوس إلى -35%. ثم اذهب إلى القائمة Object > Expand لتطبيق هذا الانحراف بشكل دائم. انسخ ،عدّل حجم ،دوّر وضع أشكال الزخرفة الأخيرة هذه في أماكن الفراغ المتبقية داخل الحرف بشكل متناظر. أشكال بسيطة كالدوائر يمكن أن تُستخدم لملء الفجوات الصغيرة لإضافة التفاصيل الدقيقة لهذا العمل الفني. وكخطوة أخيرة، ارسم تحديدًا حول كل شيء ثم اذهب إلى القائمة Object > Expand لتحويل جميع الحدود إلى أشكال جامدة. الحرف بحاجة إلى رشّة ألوان ليصبح مكتملًا. بعض العناصر بحاجة إلى إلغاء تجمّعها Ungrouped للوصول إلى القطع الفردية. استبدل لون التعبئة الأسود بألوان من اختيارك. فن الفكتور المسطّح شعبيٌّ جدًّا هذه الأيام ولكن إضافة بعض التدرجات اللونية سيمنح التصميم لمسة إضافية. حدّد جميع الأشكال ثم اضغط CMD+C وCMD+F لصنع نسخة. انقر على الخيار Unite من لوحة Pathfinder لإنتاج شكل واحد ثم طبّق عليه تدرّجًا من الأسود إلى الأبيض. غيّر خصائص المزج إلى Soft Light من لوحة الشفافية Transparency للسماح للتدرج بالتفاعل مع الألوان الأصلية. الشكل النهائي للحرف يبدو عظيمًا. إنّ تقنيات الإليستريتور البسيطة من المسارات الإضافية والنقوش المنقطّة تجعل من السهل زخرفة الحرف. تمت إضافة المزيد من التفاصيل الدقيقة التي أضافت زخرفة منمقة وجعلت النتيجة النهائية أكثر أناقة بالرغم من أن هذه التفاصيل مجرد أشكال أساسية بسيطة. بإمكانك إنشاء المزيد من الحروف المزخرفة والأرقام باتباع ذات النمط في هذا الدرس. ترجمة -وبتصرّف- للمقال: How To Create a Decorative Drop Cap in Adobe Illustrator لصاحبه: Chris Spooner
    1 نقطة
  5. حسوب في الأساس أكاديمية تقدم مقالات مفيدة للقاريء تعبر عن خبرات أصحابها و تعد مرجعا للآخرين. يجب أن تكون المقالات حصرية، ذات جودة عالية وسليمة من الناحية اللغوية، غير منشورة في مواقع أو مدوّنات أخرى. وهي مقالات أشبه بالدروس للقراء في مجالات التقنية والتسويق والمبيعات وريادة الأعمال وغيرها من الأقسام الأخرى. إذن هي ليست بالمقالات الاجتماعية أو الفنية أو الرياضية أو ما يشابهها . عموما أنصحك بزيارة اكتب معنا لتتعرف على الشروط والمعايير التي يتم على أساسها قبول أو رفض المقالات، وتتعرف على الحساب الخاص بحسوب على منصة مستقل والذي تتابع من خلاله المشاريع التي تعرضها الأكاديمية وتبحث عن مستقلين لترجمتها أو الكتابة فيها. دورك هو أن تقدم عروضا مناسبة على هذه المشاريع وتنتظر الرد، من المهم أن يكون لك ملف شخصي وحساب على موقع مستقل و أيضا معرض أعمال قيّم تعرض فيه أعمالك السابقة حتى يمكن تقييمك من خلالها وإمكانية قبول عرضك.
    1 نقطة
×
×
  • أضف...