لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 05/23/16 في كل الموقع
-
لتفادي مثل هذه المشاكل البسيطة اثناء كتابة الأكودا البرمجية أدعوك إلى استعمال: Sublime Text 3: محرر نص مخصص لكتابة الأكواد البرمجية، وهو جيد جداُ، حيث يتيح لك التكويد بيسر مع إظهار الكود بشكل ملوّن، مفرقاً بين الوسوم، الخصائص، المتغيرات... لتسهيل عملية المراجعة عند حدوث الخطأ. sublime text 3 emmet : إضافة على subblimetext ومحررات نص أخرى، يتيح لك اختصارات مدهشة لكتابة كود برمجي بسرعة جيدة، مثلا عوض كتابتك لـ: <div> <ul> <li></li> </ul> </div> ستكتفي بكتابة: div>ul>li مع الضغط على رز Tab لينتج عنه الكود الأول، وهذا فقط مثال بسيط، كما يمكنك الاطلاع على لائحة بأهم الاختصارات الأكثر استعمالاً من هنا. كيفية تنصيب Sublime Text:2 نقاط
-
نواصل في هذا المقال استعراض أساسيات لغة جافا التي يحتاج كل مُطوّر أندرويد الإلمام بها. إذا لم تطّلع على الجزء الأول فأنصحك بقراءته أوّلا قبل مواصلة قراءة هذا المقال. المصفوفات في بعض الأحيان نحتاج إلى تخزين عدة بيانات من نفس النوع والتعامل معها، في هذه الحالة لا يتم استخدام عدة متغيرات للتعامل معها ولكن يتم استخدام المصفوفات Arrays. فالمصفوفات مجموعة متغيرات من نفس النوع وتربطها علاقة ببعضها فيتم تخزينها داخل متغير واحد من النوع مصفوفة، ويتم تعريف المصفوفة بالشكل التالي DataType [] arrayName = new DataType [arraySize]; فمثلا لتعريف مصفوفة من النوع int وتحتوي على 6 عناصر: int [] numArr = new int [6]; هكذا تم حجز 6 أماكن في الذاكرة للمصفوفة numArr، وللوصول لهذه الأماكن للتخزين فيها أو التعامل مع قيمها. numArr[0] = 10; numArr[1] = 5; ... numArr[5] = 3; والعنصر الأول يبدأ من صفر وتنتهي العناصر عند الرقم 5 لتصبح ست عناصر، ويتم التعامل بعد ذلك مع عناصر المصفوفة مثل المتغيرات فمثلًا لجمع رقم ما على إحدى قيمها numArr[3] = numArr[0] + 4; ويتم احتساب خطأ إذا تم الوصول إلى عنصر خارج حدود المصفوفة التي تم تعريفها مثل: numArr[7] = 2 ; //Error وتصنف النوع السابق من المصفوفات على أنه من المصفوفات الساكنة التي عند تحديد عدد عناصرها عند تعريفها فلا يمكن زيادة هذا العدد أو إزالة عناصر من المصفوفة. الدوال الدالة هي مجموعة من الأوامر التي تنفذ فقط عندما نقوم باستدعائها وتستخدم للقيام بالأوامر التي يتكرر استخدامها في مواضع مختلفة في البرنامج بسهولة دون إعادة كتابة الأسطر البرمجية مجددًا مما يجعل البرنامج أكثر وضوحًا. تتميز جافا باحتوائها على مجموعة كبيرة من الدوال الجاهزة التي يمكنك استعمالها مباشرة، كما يمكننا من إنشاء دوال خاصة تؤدي وظائف محددة. تعريف الدوال يتم على النحو التالي AccessModifier ReturnType methodName ( parameters List){ //Do some Actions here } ويحدد AccessModifier طريقة الوصول لهذه الدالة. ونوع البيانات التي سترجعه الدالة يتم تحديده في ReturnType. ثم يتم تحديد الاسم الخاص بالدالة، والـ parameters هي البيانات التي يتم تمريرها للدالة. public int add( int a , int b ) { int sum = a + b; return sum; } في المثال السابق كلمة public تعني أن هذه الدالة يمكن استدعاؤها من أي مكان في البرنامج وهي عكس private والتي تعني أن هذه الدالة لا يمكن استدعاؤها إلا من داخل الصّنف class الذي قام بتعريفها. بعد ذلك تم تحديد النوع الذي ستعيده الدالة عند استدعائها وهو int، والاسم الخاص بهذه الدالة add وتأخذ هذه الدالة قيمتين من النوع int لتعيد ناتج جمعهما. لاستدعاء هذه الدالة من أي مكان داخل البرنامج يتم كتابة اسم الدالة كما بالشكل: int result = add (10 , 15); الأصناف وهو الوحدة الأساسية المبني عليها باقي مفاهيم البرمجة كائنية التّوجّه، وهو عبارة عن وعاء كبير يحتوي على متغيرات ودوال وكائنات. وعند تعريف صنف Class جديد يصبح لديك نوع بيانات جديد يمكنك استخدامه مع باق الأنواع الموجودة بالفعل. لتعريف صنف يتم كتابة كلمة class واختيار اسم له، ثم فتح أقواس تحدد بدايته ونهايته. class ClassName { } تسمى المتغيرات التي يتم تعريفها داخل الصّنف بالخصائص attributes، وتسمى الدوال بالتّوابع methods (يعني سنستعمل "دالة" و "تابع" للدّلالة على نفس المفهوم). وتسمى المتغيرات من الأصناف بالكائنات Objects، فلا يمكن إنشاء كائن دون وجود صنف له. إذا أردنا أن نكتب برنامجًا يعبر عن مكتبة وما تحتويه من كتب فيمكن اعتبار الكتاب على أنه كائن ولإنشاء هذا الكائن ينبغي وجود Class له يحتوي على الخصائص الأساسية لجميع الكتب. class Book{ private String bookName; private String authorName; private int bookCode; public void setBookName(String name){ bookName = name; } public String getBookName(){ return bookName; } public void setAuthorName(String name){ authorName = name; } public String getAuthorName(){ return authorName; } public void setBookCode(int code){ bookCode= code } public int getBookCode(){ return bookCode; } } هكذا قمنا بصنع الصّنف الأساسي لجميع الكتب ويحتوي على خصائص مثل اسم الكتاب واسم الكاتب وهذه البيانات معرّفة private أي كما ذكرنا سابقًا لا يمكن الوصول لها أو تغييرها إلا داخل الصّنف المعرّفة بداخله فقط، وهناك عدة توابع فمنها ما يقوم بتخزين قيم في المتغيرات الخاصة بصنف ومنها ما يعيد القيم المخزنة. لاحظ أننا قمنا بتعريف التوابع كـ public وذلك حتى نستطيع الوصول لها واستدعائها من أي مكان في البرنامج. هناك بعض الدوال التي تم تعريف نوع المُخرجات returnType لها من النوع void وتعني أنها لا تعيد شيئًا. ولإنشاء كائن من هذا الصّنف نكتب: Book b1 = new Book(); Book book2 = new Book(); النصف الأيسر كما اعتدنا سابقًا عند إنشاء متغير جديد، أما النصف الأيمن فيتكون من شقين كلمة new وتعني إنشاء هذا المتغير وحجز مساحة له في الذاكرة واسم الصّنف وبعده أقواس وهو ما يسمى بالـ Constructor. ولأي من هذه الكائنات إذا أردنا وضع قيم للخصائص التي بداخلها يتم على النحو التالي: b1.setBookName(“Learn Java”); book2.setBookName(“Intro to programming Language”); book2.setBookCode(101); String name = b1.getBookName(); وهذه بعض الأمثلة لكيفية استدعاء التّوابع المختلفة من داخل class وباستخدام الكائن، لكل كائن خصائصه الخاصة لا يتشارك فيها مع باق الكائنات التي من نفس Class فلكل منها اسم كتاب يتم تخزين فيه نص معين لا يتشاركان فيه. ولاستدعاء التوابع يتم استخدام (.) بعد اسم الكائن ثم كتابة اسم التابع وتمرير المتغيرات التي تتعامل معها إن وجدت حسب تعريفنا للتّابع داخل الصّنف. لاحظ أن عند إنشاء صنف جديد نبدأ اسمه بحرف كبير دائمًا، ويمكنك إنشاء أي عدد من الكائنات من الصّنف كما ذكرنا في المثال السابق. تابع البناء Constructor تتواجد داخل كل صنف تابع خاص يُدعى Constructor يتم استدعاؤه أثناء إنشاء كائن جديد فهو تابع مهم جدًا لإنشاء الكائنات ويقوم المترجم بإنشاء هذا تابع بناء فارغ بشكل افتراضي إذا لم يتم تعريفها من قبل المطوّر. وتكتب كالتالي: public ClassName(parameter List){ //Do some Actions here } يجب أن يكون اسم تابع البناءconstructor نفس اسم الصنف ومن النوع public ويمكنك تعريف أكثر من constructor داخل نفس الصّنف ولا يوجد نوع إرجاع returnType لـلـ constructor. يمكننا من خلال constructor إدخال قيم مباشرة في الخصائص الموجودة في الكائن بدلًا من استدعاء دالة لكل خاصية. class Book{ private String bookName; private String authorName; private int bookCode; public Book(String name,String author,int code){ bookName = name; authorName = author; bookCode = code; } public String getBookName(){ return bookName; } public String getAuthorName(){ return authorName; } public int getBookCode(){ return bookCode; } } في كل مرة يتم إنشاء كائن جديد، يجب استدعاء تابع البناء constructor حتى يتم إنشاء هذا الكائن. لإنشاء كائنات بعد هذا التعديل: Book b1 = new Book (“Learn Java”,”M.K Dave”, 150); هنا تم تعريف كافة الخصائص لحظة إنشاء الكائن، ويتم التعامل مع هذا الكائن بشكل طبيعي كما تعاملنا معه مسبقًا. الوراثة يعتبر مفهوم الوراثة من أهم المفاهيم في البرمجة كائنية التّوجّه ويعني يمكننا إنشاء أصناف ترث من صنف آخر الخصائص والتّوابع المتواجدة به دون تعريفها من جديد، مما يسمح بالتركيز على الخصائص والتّوابع التي يتميز بها الصّنف الجديد. وتستخدم الكلمة extends لتطبيق مفهوم الوراثة: class Shape{ protected int width; protected int height; public void setWidth(int a){ width = a; } public void setHeight(int b){ height = b; } } إذا كان لدينا هذا الصّنف وهو يُمثل شكلًا عامًا له طول وعرض وأردنا أن ننشئ شكلًا آخر (مربع) يرث من هذا الصّنف ويضيف خصائص أكثر: class Square extends Shape{ public int getArea(){ return width * height; } } وبذلك أصبح Square يحتوي على الدالتين setWidth و setHeight بالإضافة للدالة الجديدة التي قام بتعريفها getArea، وبذلك استطعنا أن نعطي المزيد من الخصائص للشكل الجديد. وإذا أردنا أن نصنع شكلًا آخر (مثلث): class Triangle extends Shape{ public int getArea(){ return 0.5*width * height; } } لا يمكن للصّنف أن يرث من أكثر من أب. وبتطبيق هذا المفهوم على الدرس السابق نجد أن أندرويد يحتوي على صنف اسمه View وهو الأب لكل العناصر الخاصة بواجهة المستخدم ويحدد الخصائص الأساسية والمشتركة بينهم جميعًا ويرث منه العناصر الخاصة مثل TextView وهو View ولكن يعرض نصًا فقط أو Button وأيًضا View قابل للضغط ويقوم بمهمة محددة عند الضغط عليه. وإذا قمنا بالتعديل على المثال السابق واستخدمنا في Shape تابع البناء لتعريف الطول والعرض: class Shape{ protected int width; protected int height; public Shape(int a ,int b){ width = a; height = b; } } ينبغي علينا أن نعرف دالة بناء للصّنف التي ترث منه: class Square extends Shape{ public Shape(int w ,int h){ super(w,h); } public int getArea(){ return width * height; } } وتستخدم super لاستدعاء Constructor الخاص بالأب وتمرير له القيم التي يحتاجها، وذلك لأن عند إنشاء كائن من Square والذي يرث من Shape: Sqaure s = new Square(10,10); يتم بناء الأب أولًا Shape ثم الابن Square حتى يكتمل بناء الكائن s بشكل صحيح. لذا يتم تمرير في دالة البناء الخاصة بالابن ما تحتاجه دالة البناء الخاصة بالأب، ولم نقوم بذلك قبل التعديل لأننا كنا نستعمل دالة بناء فارغة في الأب. التحويل من نوع بيانات إلى آخر تمكننا لغات البرمجة من التحويل من نوع بيانات إلى آخر باستخدام مفهوم Casting، فمثلًا إذا كان لدينا متغير من النوع double: double d = 12.5478; ونريد تحويله إلى رقم صحيح: int x = (int) d; نفعل ذلك عن طريق كتابة نوع المتغير بين القوسين وبعدها اسم المتغير الذي نريد تحويله كما في المثال. وهناك بعض الشروط على التحويل بين الأنواع بهذه الطريقة فلا يمكن تحويل String إلى int مثلًا لاختلاف النوعين عن بعضهما. ويمكن تحويل من صنف إلى آخر شريطة أن يكون بينهما علاقة الوراثة. Shape sh = new Shape(15,15); Square s = (Square) sh; بهذا نكون قد وصلنا إلى نهاية هذا الدّرس، في انتظار تجربتكم وآرائكم. إن كانت لديك أيّة أسئلة فلا تتردّد في طرحها.1 نقطة
-
1 نقطة
-
هناك أكثر من طريقة لتطبيق تأثير القماش أو ما يسمى في برنامج 3DS MAX بتأثير الملابس Cloth، يوجد مُعدِّل جاهز لتطبيق هذا التأثير كما يوجد طريقة أخرى باستخدام أحد الإضافات في البرنامج وهو MassFX، فهذه الإضافة تُعدّ بديلًا عن Reactor الشهير الذي تم إيقاف العمل به في إصدار 2012 من البرنامج. ولكي نفهم أكثر كيفية تطبيق هذا التأثير، سنقوم بتصميم غطاء قماشي لطاولة، هذا المثال أسهل من تطبيق لباس كامل لشخصية مثالية حيث تحتاج هذه العملية إلى الكثير من العمل والجهد لتحقيقها، أمّا في مثال غطاء الطاولة فالأمر أسهل وأبسط للفهم. سنقوم بتجربة الطريقتين ولكن أولًا افتح برنامج 3DS Studio MAX ثم سنبدأ أولًا برسم الطاولة، وبما أننا نبحث عن البساطة فلن نصمم طاولة مزخرفة أو معقّدة، بل سنرسم طاولة أساسية بسيطة مؤلفة من قاعدة سفلية أرضية وعمود حامل لجسم الطاولة الرئيسي وأخيرًا جسم الطاولة الرئيسي. تصميم الطاولة انقر على زر رسم الأسطوانة Cylinder من لوحة Geometry الموجودة عادة يمين الشاشة (ستكون هناك ما لم تقم أنت بتعديلات على مظهر شاشة البرنامج) ثم انقر على Keyboard Entry حتى تفتح هذه الخيارات ونستطيع إدخال القيم التي نريدها بدون رسم الشكل يدويًّا، ثم أدخل القيمة 20 لنصف القطر والقيمة 5 للارتفاع مع الإبقاء على الاحداثيات على 0 ثم انقر على زر Create وسيتم إنشاء أسطوانة نصف قطرها 20 وارتفاعها 5 تقع في مركز موقع العمل عند النقاط 0 لجميع المحاور. والآن سنرسم العمود الحامل لجسم الطاولة الرئيسي. وحتى نرسم بدقة متناهية سنقوم باستخدام الطريقة السابقة ذاتها، انقر على زر الأسطوانة Cylinder ثم على Keyboard Entry ثم أدخل القيمة 5 للمحور Z وبهذا يتم رسم الأسطوانة الجديدة ابتداء من ارتفاع 5 على المحور الشاقولي لأن الأسطوانة السابقة كان ارتفاعها 5 وسنُبقي بقية المحاور عند 0 للمحافظة على المحاذاة عند مركز الاحداثيات الأفقية ثم ضع القيمة 10 لنصف القطر وأخيرًا ضع القيمة 100 للارتفاع ثم اضغط Create والنتيجة كما في الصورة. ولرسم جسم الطاولة الرئيسي والذي سيوضع عليه الغطاء القماشي، مجدّدًا انقر على Cylinder ثم Keyboard Entry وهذه المرة أدخل القيمة 105 للمحور Z (من المفترض أن طريقة احتساب قيم المحاور أصبحت معلومة) والمحاور الأخرى عند 0 وسنضع القيمة 100 لنصف القطر و5 للارتفاع وأخيرًا Create. أطلق على هذا العنصر اسم “Table” حتى يكون من السهل التعامل معه فيما بعد. لابد من أنك لاحظت أن حواف جسم الطاولة الرئيسي ليست دائرية كما يجب والسبب يعود إلى قلة عدد الجوانب Sides لهذه الأسطوانة ولتعديل ذلك حدّد عنصر الأسطوانة (Table) ثم اذهب إلى لوحة المُعدّلات Modify وهناك ستجد أن عدد جوانب هذه الأسطوانة هو 18 وللحصول على استدارة مثالية وناعمة زِد هذا الرقم إلى 30. ولنضفي بعض الجمالية على جسم الطاولة سنقوم بجعل الحافة العلوية ناعمة ولكن أولًا خفّف عدد Height Segments إلى 3 بدلًا من 5 ثم حدّد هذه الأسطوانة واضغط بالزر الأيمن عليها واختر Convert To > Convert to Editable Poly من القائمة المنبثقة لتحويل هذه الأسطوانة إلى عنصر Poly. والآن انقر على زر Vertex الموجود في لوحة Modify على الجهة اليمنى ثم استخدم المنظور الأمامي Front لتحديد الصفّين العلويين من النقاط في الأسطوانة. اختر أداة تغيير الحجم ومن خلال المنظور من الأعلى Top ضع المؤشر على المحاور حتى يصبح المحورين X وY باللون الأصفر ثم اضغط بزر الفأرة واسحب للداخل قليلًا حتى تصغّر حجم الأجزاء المحدّدة. والآن حدّد الصف الأول من الأعلى فقط من نقاط الأسطوانة ثم صغّر حجمها قليلًا بنفس النسبة التي صغّرنا بها في الخطوة السابقة. سنكتفي بهذا القدر من تصميم الطاولة. طبعًا هناك ملايين الطرق لتصميم طاولات رائعة ومذهلة وبطرق احترافية، ولكننا هنا لسنا في صدد درس تصميم طاولة بطريقة احترافية إنما صممنا الطاولة لتطبيق تأثير القماش عليها وهو محور درسنا اليوم. وأخيرًا سنضع العنصر الذي سيكون الغطاء الذي سيغطي الطاولة. اذهب إلى لوحة Geometry واختر منها العنصر Plane ثم انقر على Keyboard Entry وأدخل القيمة 120 للمحور Z وبقية المحاور 0 وأدخل القيمة 250 للطول والعرض. أطلق على هذا العنصر اسم "Cover". وللحصول على نتائج جيدة يجب أن نزيد من عدد قطاعات الطول والعرض لذلك حدّد هذا الغطاء واذهب إلى لوحة Modify ثم زِد كل من Length Segs وWidth Segs إلى القيمة 25 ثم أضف مُعدل TurboSmooth لزيادة نعومة العنصر. الطريقة الأولى سنقوم أولًا بتجربة الطريقة الأولى التي تعتمد على المُعدِّل Cloth لذلك حدّد عنصر الغطاء واذهب إلى لوحة Modify واختر المُعدّل Cloth ثم انقر على Object Properties لتفتح لك نافذة خيارات العناصر المشاركة في عملية تمثيل تأثير الملابس. ستلاحظ أن العنصر Cover وهو الغطاء موجود في القائمة والآن أضِف عنصر الطاولة Table من زر Add Object، الغطاء هنا سيسقط بفعل الجاذبية نحو الأسفل ولذلك سنقوم بتحديد عنصر الطاولة حتى يسقط الغطاء عليه ويتوقف عنده وإلا فإن الغطاء سيعبر من خلال الطاولة ويسقط وكأن الطاولة غير موجودة، الأمر ذاته ينطبق على ملابس الشخصيات حيث يجب تحديد جسم الشخصية حتى تسقط الملابس عليه وإلا فإن التأثير سيفشل والملابس ستسقط أرضًا وكأن الشخصية غير موجودة. ثم اختر العنصر Cover من القائمة وفعّل الخيار Cloth من اللوحة اليمنى واختر Cotton من قائمة Presets وذلك حتى يحاكي الغطاء قماش القطن، الآن حدّد عنصر Table من القائمة وفعّل الخيار Collision Object ثم انقر OK. ولاختبار التأثير انقر على الزر Simulate وبعد الانتهاء من العمل ستكون النتيجة بهذا الشكل. الطريقة الثانية طبعًا يجب أن نبدأ من عنصر غطاء جديد لم يُطبّق عليه أي تأثير، انقر في مكان فارغ في شريط الأدوات العلوي بالزر الأيمن للفأرة واختر من القائمة MassFX ليظهر شريط أدوات MassFX الذي سنعمل عليه لتطبيق التأثير. حدّد العنصر Table الطاولة ثم انقر مطولًا على رمز الكرة في شريط أدوات MassFX لتنبثق قائمة مؤلفة من ثلاثة خيارات واختر الخيار الأخير Set Selected as Static Rigid Body ليصبح هو العنصر المُؤثّر على الغطاء. حدّد عنصر الغطاء Cover ثم انقر على شكل القميص من شريط أدوات MassFX ليتم تطبيق تأثير الملابس على عنصر الغطاء. أبقِ الغطاء محدّدًا ومن لوحة Modify نجد المعدّل الجديد mCloth، ابحث في خصائصه في الأسفل عن Physical Fabric Properties واضغط على الزر Load واختر بعدها من النافذة التي ستفتح الخيار Cotton ثم اضغط Load ثم عُد إلى نفس الخصائص وفعّل الخيار Use Orhto Bending بدون تغيير أي قيم موجودة. الآن اضغط على الزر Start Simulation من شريط أدوات MassFX والذي يشبه شكل زر التشغيل Play لتبدأ عملية المحاكاة ويتم تطبيق التأثير. الخاتمة هذه خارطة الطريق لتطبيق هذا التأثير، ويوجد العديد من التعديلات التي يمكن أن نطبّقها على هذا التأثير كنوعية القماش ومدى تأثّره بالجاذبية أو بالرياح ويمكن استخدامه لصنع الأغطية والأعلام والملابس و....الخ. ومع وضع اللمسات الأخيرة من الخامات والمواد والاضاءة والموقع المحيط وغيرها من الأمور سنحصل على نتائج مثالية ومذهلة. هذا فيديو يظهر عملية المحاكاة وتطبيق التأثير. وهذه بعض التطبيقات العملية الاحترافية لهذا التأثير.1 نقطة
-
أرجو إعطار المزيد من التفاصيل. كلّما كانت التفصيلات أكبر، ازدادت فرصتك للحصول على إجابة جيّدة.1 نقطة
-
1 نقطة
-
بالنّسبة للطرق المُتبعة للحصول على عناوين البريد الإلكتروني بغرض التّرويج فأكثر طريقة شائعة هي بتقديم مُحتوى مُفيد حصري لمن اشترك بقائمتك البريديّة، مثلا اكتب كتابا صغيرًا أو وظّف كاتبا مُستقلا ليكتبه لك، وأرسله لزوار موقعك مجّانا عبر البريد الإلكتروني، كل ما عليك فعله هو طلب العنوان من الزّائر، وفور الحصول على العنوان يُمكنك إرسال الكتاب إليه عبر أحد خدمات البريد مثل mailerlite أو MailChimp وغيرها. صمّم صفحة هبوط لكتابك وركّز على أن تكون أنيقة ومراعيّة لشروط الجودة، وهذه سلسلة من المقالات المُفيدة في هذا الموضوع. يُمكن كذلك إنشاء مُدونة مُتعلّقة بالمشروع وعرض إرسال خلاصتها إلى الزوار عبر البريد في كل أسبوع. انظر أيضا الجواب على هذا السؤال: أمّا بالنّسبة لكيفيّة الحصول على أرقام الهواتف فلا أعلم بطريقة مُحدّدة، لكنّني أقترح اعتماد مبدأ الهدايا، بحيث تُرسل هديّة لكل من يضع رقم هاتفه.1 نقطة
-
أهلًا بك صديقي لا يوجد لغة أفضل من لغة برأيي، لأنّ كل لغة لها سلبيات وإيجابيات والمزايا تأتي من إطار العمل وليس من اللغة. لأنّ لغات البرمجة منها الصعب والإحترافية ومنها السهلة غير احترافية، ويجب البدء بلغة البرمجة السهلة كبداية بعدها يتم الإنتقال إلى لغات برمجية أكثر صعوبة. ومن أجل التمرُس في برمجة الويب يجب تعلُم: لغة الترمز HTML ولغة التنسيق CSS. وبخصوص (CSS) أنصح بمتابعة قسم CSS في أكاديمية حسوب. تعلم إحدى اللغتين PHP أو ASP. وبخصوص لغة PHP يُفضل قراءة الأجوبة في هذا السؤال: أيهما أفضل، php أم ruby؟، وهُنا قسم PHP في الأكاديمية سوف يُفيدك تعلم الجافا سكريبت. أنصح بمتابعة قسم الجافاسكريبت في أكاديمية حسوب. يُنصح بمُتابعة قسم البرمجة في أكاديمية حسوب. بالإضافة إلى لغات البرمجة يجب تعلُم وفهم أساسيات برنامج الفوتوشوب من أجل تصميم شكل وألوان الموقع. هذا هو الحدّ الأدنى من المعرفة اللازمة لتطوير مواقع الوِب، بعد ذلك قد تحتاج إلى لغة برمجة من طرف الخادم، مثل بايثون أو روبي، وغيرها من التقنيات الأخرى.1 نقطة
-
مرحبًا شكرا على حرصكم على الردّ والتفاعل أبدًا، أبدًا لم أُرسِل أيّ موضوعٍ بخصوص هواتف موتورولا أو أيّ هاتف من بريدي الذي سجلت به أو أيّ بريد آخر، تقنية الهواتف ليست تخصصي ولا أفهم بها وأعرف أنّكم تنشرون فقط المقالات النوعيّة لم أقصد أن أتحدّث عن نفسي شخصيّا في ردّي أعلاه.. كما أنّني لا أقصد أن أنتقدكم أو أقلّل من جُهدك بل تمنّيت أن يحصل الكتاب الجادّون الذين بذلوا جهدًا في الكتابة، على توجيهات منكم حتى يتحسّن أداءهم ، وإن لم يُنشر لهم على الأكاديميّة. وأعرف أنكم تستقبلون الكثير من الرسائل ويصعب الردّ عليها جميعًا ولكن قد تجدون بعض الوقت في الردّ على تلك المقالات التي تعتقدون أنه قد بُذل فيها جهدٌ واضح(البعض يصاب فعليّا بالإحباط إذا لم يتلقّ أيّ ردّ) آمل أن تعتبروا ردي إضافة وليس انتقاصًا من جهدكم شكرا1 نقطة
-
أهلًا بك حصلت معي هذه المشكلة ومن أجل حلها يجب الدخول أولًا إلى موقع wajihah ثم كتابة الكلمات العربية المُراد كتابتها في برنامج سوني فيجاس في الخانة الأولى من الموقع ثم الضغط على كلمة تحويل التي في الزر البرتقالي بعد ذلك يجب نسخ الكلمات التي ظهرت في الخانة الثانية الخاصة بالموقع ولصقها في مربع الكتابة في برنامج سوني فيجاس وبعد تطبيق الخطوات السابقة ستظهر الكلمات العربية في البرنامج بشكل مُنسق ومُرتب بدون اي اخطاء.1 نقطة
-
أهلًا بك يُمكن تشغيل ملفات الوورد على الهوتف التي تعمل بنظام التشغيل أندرويد من خلال تحميل تطبيق Microsoft Word من على متجر قوقل بلاي، حيث يُعتبر هذا التطبيق من أفضل التطبيقات لعام 2015 حسب متجر قوقل بلاي. برنامج مايكروسوفت ورد Microsoft Word هو تطبيق لمعالجة النصوص من شركة مايكروسوفت والذي يعمل على هواتف الأندرويد والتابلت، حيث أنّ التطبيق يمتلك نفس الخيارات والميزات التي يتمتع بها على أجهزة الكمبيوتر وهو يحتوي على واجهة سهلة التعامل وبسيطة، ومن خلاله يُمكن تشغيل ملفات الوورد على الهاتف. إضافةً لما سبق، يمكنك تجربة النسخة المجانية من التطبيق الرائع OfficeSuite + PDF Editor والذي يُقدّم حزمة كاملة من الخدمات والإمكانيات: - التعامل مع ملفات مايكروسوفت أوفيس بكل أنواعها وليس فقط الوورد (DOC, DOCX, DOCM, XLS, XLSX, XLSM, PPT, PPTX, PPS, PPSX, PPTM, PPSM) - التعامل مع ملفات pdf - التعامل مع ملفات RTF, TXT, LOG, CSV, EML, ZIP - النسخة المدفوعة تدعم أيضًا ملفات Open Office - ODT, ODS and ODP - التكامل مع خدمات التخزين السحابي مثل دروب بوكس وغوغل درايف - متوفر باللغة العربية1 نقطة
-
تسمح الاستضافة الافتراضيّة بتوفير العديد من أسماء النّطاقات Domain names على خادوم واحد، يُمكن استعمال خوادم الويب لإنشاء مثل هذه الإستضافات، وهي حل جيد لاستضافة العديد من تطبيقات الويب في نفس الخادوم لكنّها قد تكون عائقا في حالة كان عدد الزوار كبيرا. يُمكن مثلا أن تقوم باستضافة موقعين على نفس الخادوم بهذه الطّريقة. بحيث يكون لكل موقع اسم نطاق مُختلف. مثلا الموقع الأول عبارة عن مُدونة بسيطة تعتمد على سكربت ووردبريس ونطاقها كالتّالي blog.example.com، بعدها يُمكنك استضافة موقع آخر باسم نطاق مُختلف وليكن موقعا مُعتمدا على سكربت Opencart للمتاجر الإلكترونيّة وليكن اسم نطاقه كالتّالي store.example.com. الاختلاف الجوهري هو أنّ ملفات سكربت ووردبريس متواجدة في مسار مُختلف عن مسار ملفات المتجر. مثلا ملفّات سكربت الووردبريس ستكون في المسار التّالي: /var/www/site/wordpress أمّا ملفّات سكربت Opencart فستكون في مسار آخر: /var/www/site/opencart تُمكّن هذه التّقنية من تقسيم موارد الخادوم على أكثر من تطبيق، ما يعني أنّك قد تجد بعض المشاكل في حالة استعمل أحد التّطبيقات الموارد بشكل كبير. مُلاحظة: يُمكن لاسم النّطاق أن لا يكون فرعيا، أي أنّ blog.example.com يُمكن أن يكون blogexample.com كذلك.1 نقطة
-
السلام عليكم ورحمة الله وبركاته أهلًا بك أخي المُبرمج العربي . يُعتبر هذا السؤال صعب وسهل في نفس الوقت لأنّه لا يُمكنك كتابة أي برنامج بدون استخدام فاصلة منقوطة، ولكنّ يُمكنك استخدام شرط print من أجل طباعة " Hello, World " بدون استخدام الفاصلة المنقوطة. ويُمكنك فعل ذلك بلغة سي أو سي بلس وذلك عبر الكود التالي: #include <stdio.h> void main() { if(printf("Hello World!\n")) {} } 1. شرح الكود: #include <stdio.h> سوف نقوم بتقسيم شرح هذا الكود إلى جُزئين الأول وهو " include# " وهو من أجل ضم الملفات الرأسية. أما الجُزء الثاني وهو " Stdio " وهذه الكلمة اختصار إلى ( Standard Input Output ) ولو تُلاحظ قُمنا بوضع حرف (h) وهو من أجل أنّ يُبين نوع الملف وهذا الحرف هو اختصار لكلمة ( Header ) . 2. شرح الكود: void main() { ويُعتبر هذا الكود هو الدالة الرئيسية في أي مشروع نقوم بانشائه ولا يُمكن الاستغنا عنه. 3. شرح الكود: if(printf("Hello World!\n")) {} } كلمة (printf) وهي اختصار لكلمة " print format " وتُستخدم من أجل طباعة ما هو داخل الأقواس ويجب دائمًا أنّ تكون الكلمات بين علامات التنصيص " ". أما حرف n\ يرمُز إلى سطر جديد وهو اختصار لكلمة New Line. أتمنى أنّ أكون أفدتك صديقي. ولا تتردد في طرح أي سؤال تُريده. بالتوفيق1 نقطة
-
يمكنك اللجوء إلى استخدام شرط الجملة الشرطية حتى تتجاوز استخدام الفاصلة المنقوطة حيث ستكون الشيفرة البرمجية المكتوبة بلغة سي مشابهة لهذه: #include <stdio.h> int main() { if(printf("Hello World !\n")) {} } لاحظ أيضا أننا لم نكتب return 0 حتى نتفادى استخدام الفاصلة المنقوطة. ويمكن استخدام نفس الطريقة بلغة سي بلس بلس كما في المثال التالي: #include <iostream> int main() { if (std::cout<<"Hello World\n"){} } لاحظ أننا لم نستخدم using namespace std وreturn 0 حتى نتفادى استخدام الفاصلة المنقوطة.1 نقطة
-
هذا الدرس الثاني من سلسلة نصائح وحيل فوتوشوب، التي سنتعلم من خلالها العديد من الحيل والأدوات عند التصميم ببرنامج فوتوشوب بالإضافة إلى مجموعة من النصائح حول الإستخدام الأمثل للبرنامج. سنقوم في هذا الدرس بتحويل صورة فوتوغرافية إلى مخطط مرسوم بقلم الرصاص باستخدام برنامج فوتوشوب. افتح الصورة ببرنامج فوتوشوب: حوّلها إلى أبيض وأسود بالضغط على Ctrl+Shift+U: ضاعف الطبقة بالضغط على Ctrl+J ثم غيّر خصائص المزج للطبقة الجديدة إلى Color Dodge. اعكس الصورة بالضغط على Ctrl+I. اذهب إلى القائمة: Filter > Other > Minimum وضع القيمة 3. فإن كان هناك بعض الفراغات في التصميم فسنحدد الطبقة الأصلية ثم نضيف طبقة تعديلات Curves ثم نعدل الزاوية السفلية قليلًا فقط. وهذه هي النتيجة النهائية لدرس اليوم:1 نقطة