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

طارق جهاد

الأعضاء
  • المساهمات

    188
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    17

كل منشورات العضو طارق جهاد

  1. وعليكم السلام اولا Xamarin ليست أداة وإنما منصة متكاملة لتطوير تطبيقات الموبايل على اكثر من نظام تشغيل ثانيا: لا علاقة ل Google Play بأي سيرفر، انت تستطيع رفع التطبيق على هذا المتجر، بدون أي متطلبات اخرى، لكن اذا كان تطبيقك يتعامل مع سيرفر او تطبيق اخر، فهذا شأن اخر، ليس لعملية الرفع اي علاقة به. ليس هناك اي شيء معين يفعله المبرمجون قبل الرفع، باستثناء اتباع الخطوات اللازمة لتوظيب التطبيق بالشكل الصحيح، حتى يصبح جاهز للرفع على المتجر. بإمكانك اتباع الخطوات على https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/publishing_an_application/ بالتوفيق،،،
  2. طبعاً، لا يمكن اسناد اكثر من قيمة للمتغير في نفس الوقت.
  3. انت قمت بتعريف متغير a بالقيمة 20 ثم قمت باستدعاء دالة تقوم بجمع عددين (5, 10) ناتج هذه الدالة هو 15 قمت باسناده للمتغير a. a = PlayerPoint(5, 10); بالتالي فإن القيمة الحالية للمتغير a هي 15 بالتوفيق،،،
  4. بداية، حاولي دائما اغلاق أي جملة قبل كتابة محتواها سواء كان المحتوى ضمن علامات تنصيص "" او أقواس () او {} استخدمي برامج متقدمة تساعدك في كتابة الكود. وتحوي على ميزات Auto Complete، اي بمعنى تقوم بإكمال او أغلاق الجملة تلقائيا. مثل Visual Studio حيث يملك محرر نصي متطور جدا، بإمكانك تحميله من هنا https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15 أو بإمكانك تنزيل Visual Studio Code وهو مخصص لكتابة الكود على جميع التشغيل، واعتقد انه مناسب اكثر لك حاليا. https://code.visualstudio.com/download بالتوفيق،،،
  5. في ملف html في سطر ملف css <link rel="stylesheet" href="1200.css" type="text/css" media="screen > انتبهي لإغلاق علامة التنصيص في النهاية عند screen
  6. يوجد العديد من البرامج المخصصة. استخدم Microsoft Visio خصوصا انه متوافق مع Office اي بإمكانك نسخ المخططات منه إلى MS Word مثلا. ويوجد ايضا Visual Paradigm و Rational Rose واذا كنت تستخدم Visual Studio يمكنك ايضا استخدام Modeling Template وهو مشروع مخصص لهذا الغرض. واخيرا، اي اداة رسم يمكنها مساعدتك في انشاء المخططات، ولتفاصيل اكثر يمكنك البحث عن UML Unified Modeling Language
  7. اولا يجب ان نفهم اهمية جملة return بعدها سنوضح متى يمكن ان نستخدمها ضمن الدالة main بشكل عام جملة return تعني بأن الدالة (دالة main او اي دالة اخرى) ستقوم بإرجاع متغير من نوع int (يمكن طبعا إرجاع اي نوع اخر من البيانات مثل bool, double وغيره) - كمثال، لو كان لدينا دالة تقوم بجمع عددين، بالتالي فإن السلوك المتوقع من هذه الدالة هو ان تقوم بحساب ناتج عملية الجمع. هذا الناتج يمكن طباعته للمستخدم مباشرة void add(int x, int b) { int sum = x + b; count<<sum; } كما يمكن ايضا استخدام ناتج العملية في اقسام اخرى من الكود، إذا كيف سنتمكن من الوصل للمتغير sum المعرف ضمن دالة الجمع؟ في الحقيقة لا يمكن الوصول له مباشرة، لكن وبما ان كل ما يهمني من دالة الجمع هو ناتج الجمع فقط، اذا يجب ان تقوم هذه الدالة بالعملية الحسابية ثم توصل الناتج لي (ولا يهمني الكود او التعقيد الموجود داخلها، كل ما يهمني هو الناتج). لذلك سنعيد كتابتها مرة اخرى int add(int x, int b) { int sum = x + b; return sum; } الآن اصبح لدي كود متكامل استطيع استخدامه في اي برنامج اقوم بتطبيقه، كل ما علي هو ان استدعي الدالة واعطيها المتغيريين x ، y. ثم ستقوم هي بالعمليات الحسابية نيابية عني. void main() { int number1; int number2; cout<<"Enter first number:"; cin>>number1; cout<<"Enter second number:"; cin>>number2; int sum = add(number1, number2); cout<<"Sum = "<<sum; } الأن اصبح مفهوم return واضحا، اي بمعنى نقوم بإرجاع قيمة (int, double float, bool) عندما نحتاج فعليا لهذه القيمة. السؤال الآن: متى نستخدم return مع الدالة main؟ الجواب: عندما نحتاج فعليا لهذه القيمة. السؤال الآخر: متى نحتاج لهذه القيمة؟ الجواب: عندما نريد توصيف اكثر عن سلوك هذه الدالة، بمعنى عند حدوث شرط معين يمكن لهذه الدالة ان ترجع القيمة 0، وعند حدوث شرط اخر يمكن ان ترجع القيمة 1 وهكذا. // This program will divide two number // if the first number or second number is less than 0, then do not complete the method. // if the second number is 0, do not complete the method int main() { int number1; int number2; cout<<"Enter first number:"; cin>>number1; cout<<"Enter second number:"; cin>>number2; if ( number1 < 0 ) return -1; // do not complete the method and return -1 to the user, so he know number1 < 0 if ( number2 < 0) return -2; // do not complete the method and return -2 to the user, so he know number2 < 0 if ( number2 == 0) return -3; // do not complete the method and return -3 to the user, so he know number2 == 0 return number1/number2; // data is correct, we can return the result } لنتخيل ان البرنامج الذي قمنا بتصميمه هو برنامج قابل لاعادة الاستخدام من قبل المبرمجين الاخرين، اذا كيف يمكن لبرنامجنا ان يكون سليماً وأن يقوم بالعمليات الحسابية فقط عندما تكون البيانات صحيحة، الجواب: هو بالطريقة الموضحة بالمثال. عندما يقوم شخص اخر باستخدام هذا الكود لاحقا، سوف يعرف بأنه اذا تم ارجاع القيمة -1 بالتالي فان العدد الاول سالب وهكذا. عند استخدامنا للغة سي او سي بلس بلس، سنقوم غالبا في التحقق من قيمة عملية معينة (مثل فتح ملف) اذا كانت تساوي 0، فإن العملية ناجحة بدون اخطاء، لكن اذا كانت -1 مثلا فتعني ان الملف مفتوح مسبقا او غير موجود الى ما هنالك من الاحتمالات. مما يمكننا من كتابة البرامج بالشكل السليم، ضمن تحقق جميع الشروط اللازمة لذلك. اخيراً: ستتضح جميع هذه المفاهيم مع كثرة الممارسة، لانه ضمن الامثلة البسيطة غالبا ستكون هذه المفاهيم عبىء علينا، لكن مع تقدمنا واستخدمنا لمفاهيم اعمق في البرمجة سنجد الحل في هذه المفاهيم التي كانت مزعجة يوماً ما. بالتوفيق،،،
  8. مرحباً أخي. بالفعل نقطة مهمة وهي التخطيط الصحيح للمشروع. الأفضل بعد جمع المتطلبات من العميل، هو إنشاء ملف توصيف، يحوي كامل تفاصيل المشروع، بما فيه 1. تقسيم المشروع إلى أقسام رئيسية Modules (مثلا: قسم العملاء، قسم الطلبات...) 2. شكل البيانات المطلوب (جداول مثلا) 3. ارتباط البيانات مع بعضها (العلاقات بين البيانات) 4. المخططات، مثل: Use-Case Diagram ويمثل علاقة المستخدمين مع النظام Activity Diagram ويمثل تسلسل آلية عمل النظام، هذا المخطط بالذات سيفيدك لاحقا في هيكلية الصفحات او الشاشات لديك، والية التنقل Navigation بين هذه الصفحات. 5. التسميات، وهنا يجب إعطاء إسم لكل شيء ممكن في النظام، مثل اسماء الجداول او Classes او المتغيرات، او المصطلحات المستخدمة وغيرها. ستفيدك هذه العملية لاحقاً في تخطي مشكلة التفكير بالإسم المناسب اثناء الكود. 6. إضافة كل ما تراه مناسبا لهذا الملف من بيانات قد تفيدك او تسهل عليك لاحقا فهم الية عمل النظام. بحيث عندما تبدأ بمرحلة التطوير، سيكون هذا الملف بمثابة مرجع لك، وللمطورين الآخرين. ملاحظة: هذا الملف هو شكل مختصر لمراحل تطوير التطبيقات كما تنص عليه معايير هندسة البرمجيات. بحيث يجب على المشروع ان يمر بمرحلة عمل متكاملة SDLC (System Development Life Cycle). لكن ضمن المشاريع الصغير والمتوسطة يمكن اعتبارة مرجع جيد. بالتوفيق،،،
  9. وعليكم السلام ورحمة الله. على اعتبار ان ملف السكربت موجود على القرص C، نقوم بتشغيله من سي شارب كأي تطبيق أخر بالشكل التالي: System.Diagnostics.Process.Start(@"cscript //B //Nologo c:\RebootRouter.vbs");
  10. وعليكم السلام ورحمة الله. لا علاقة بين css وبطىء الموقع، حتى لو كان css خاطىء. (اذا كان حجم css كبير ربما يؤثر لكن بشكل غير ملاحظ، بالنهاية هو ملف كأي ملف اخر). اذا البطىء في كود السي شاب، او الاتصال بقاعدة البيانات. لا تنسى ان ASP.NET Web Forms هي بطيئة نسبياً مقارنة بتقنيات اخرى. لكن هناك مجموعة ملاحظات من الصورة المرفقة، وبالتأكيد لم يتم تفعيل الخط: ١. حدد الملفات ضمن مجلد D_Fonts وبالزر الايمن، اضغط Include in Project ٢. إما قم بإعادة تسمية المجلد إلى fonts أو غير مسار ملف الخطوط في CSS ليشير لهذا المجلد، كونه يشير حاليا fonts/... (تجنب دائما الاسماء الغريبة للمجلدات والملفات وحاول استخدام العرف المتعارف عليه في التقنية التي تعمل بها، او ما يسمى ب Conventions، سيفيدك هذا لاحقا، خصوصا عندما يصبح لديك العديد من المشاريع) ٣. عند اسناد css class لاي عنصر تجنب المسافات البيضاء، لاحظ الجملة cssClass=" htmlFonts"
  11. اهلا اخي الكريم. اذا اردت عمل تطبيقات تتعامل مع قاعدة البيانات، فأنت بحاجة لتعلمها أولا، لكن ذلك لا يعني ان لغات السيرفر تعتمد على قاعدة البيانات! وإنما تدعمها وتستطيع التعامل معها. عندما تقوم بتعلم تطوير تطبيقات او مواقع الويب، يجب ان تركز على مفهوم Client-Server ومفاهيم http، بغض النظر عن قاعدة البيانات. فالمستخدم الذي سيستخدم موقعك لاحقاً لا يهتم من أي تأتي البيانات، من قاعدة بيانات، من ملفات على السيرفر، او حتى من موقع اخر. اذا في البداية حاول تعلم الية عمل السيرفر ومعالجة طلبات المستخدم، ثم تصبح لديك القدرة على التعامل مع مفاهيم اعمق مثل قاعدة البيانات، وخدمات الويب او RESTful وغيرها. بالتوفيق،،،
  12. وعليكم السلام ورحمة الله. يجب ان يكون هناك شرط لعدم التكرار! في الجملة السابقة اذا كان ادخال حقل Id معرف ك Primary Key وموجود مسبقاً فإن حلقة التكرار سوف تصدر خطأ بذلك، يمكنك وضع الكود الموجود داخل حقلة التكرار ضمن try catch وتسجيل السجلات التي تكرر ضمن جملة catch لكن اذا اعتمدت على رقم الجوال مثلا في عدم التكرار، فأنت بحاجة للتأكد من عدم وجود هذا الحقل مسبقاً في قاعدة البيانات، وذلك بعمل جملة select لجلب البيانات بنفس رقم الجوال الحالي، وفي حال عدم وجوده تقوم بإدخال لقاعدة البيانات، او تظهر رسالة للمستخدم تفيد بوجود هذا السجل مسبقاً. ذكرت لك التفاصيل السابقة، لان حقل IdSijelMadni اذا كان حقل تلقائي يأخذ قيمة عشوائية، فانه لن يفيدك بتتبع عملية التكرار، لكن لو كان هذا الرقم هو الرقم الشخصي او رقم البطاقة مثلا، يمكنك عمل الخطوة الثانية (وهي التأكد من وجود السجل برقم الجوال) واستبدال رقم الجوال بهذا الرقم الشخصي. بالتوفيق،،،
  13. يوجد بعض الادوات مثل تطبيق AIDE لكن لا انصحك بهكذا طريقة، الا بهدف التجربة فقط! أما بناء تطبيقات حقيقية، يحتاج إلى بيئة عمل مناسبة، وجهاز حاسوب بمواصفات قوية نوعاً ما، واخر اصدارات بيئات العمل. بالتوفيق،،،
  14. مرحبا اخي. انت بحاجة لجهاز حاسوب. يعمل بنظام تشغيل ويندوز او ماك او لينكس. مع Android SDK قم بتثبيت برنامج Android Studio والذي يعطيك جميع الخيارات لتطوير تطبيقات اندرويد بلغتي الجافا وكوتلن، وبالاصدار الذي تم طرحه اليوم Android Studio 3، تم دعم لغة الكوتلن بشكل كامل ضمن اندرويد ستوديو. اذا لكي تطور تطبيقات اندرويد عليك بتثبيت اندرويد ستوديو، https://developer.android.com/studio/index.html وبالطبع Java JDK www.oracle.com/technetwork/java/javase/downloads/index.html
  15. اذا تعمقت في لغة C او ++C بهدف زيادة الخبرة البرمجية، ستجد نفسك في لحظة ما تسأل نفسك السؤال التالي: يوجد الكثير من المفاهيم في هذه اللغات يمكن اختصارها، أو تركها لنظام التشغيل ليقوم بها بالنيابة عني (مثل إدارة الذاكرة) وغيرها. وستجد أن هناك الكثير من المكتبات المخصصة لأغراض معينة مثل الرسوميات، او Networking وغيرها، هذا عدا عن Syntax الاضافي المطلوب لأمر معين. اذا ستجد نفسك بحاجة لإطار عمل ينظم العديد من هذه الامور، وهذا ما مر به من قبلنا مطورو لغة الجافا (اطار عمل الجافا) او اطار عمل دوت نت وغيره الكثير. اذا انت امام خيارين: 1. اذا كنت تعمل في مجال علوم الحاسوب او تهدف لكتابه برامج بأعلى درجات الأداء وسيطرة كاملة على كل الهاردوير ف سي و سي بلس بلس هما الأنسب. 2. اذا كنت ترغب بتطوير تطبيقات الويب والموبايل والخدمات السحابية، وانترنت الاشياء وغيرها فانت بغنى عن سي وسي بلس بلس. دوت نت على سبيل المثال توفر لك لغة سي شارب التي تمكنك من كتابة: 1. تطبيقات الويب ASP.NET ( Web Forms, Web Pages, MVC) 2. خدمات الويب Web API, SignalR 3. خدمات الحوسبة السحابية Microsoft Azure, Office 365, SharePoint 4. تطبيقات سطح المكتب Windows Forms, WPF, UWP 5. تطبيقات الموبايل Xamarin (Xamarin.Android, Xamarin.iOS, Xamarin Forms) وغيرها مثل الواقع الافتراضي HoloLense وانترنت الاشياء Internet of Things نصيحتي لك، نظم التشغيل والمنصات والادوات وحتى مواصفات الهاردويير والشبكات، اصبحت بكفاءة عالية حالياً، التركيز اصبح منصباً على الأفكارة الابداعية. تكنولوجيا التطوير ولغات البرمجة اصبح خيار برسم الشركة، حتى ان بعض الشركات قامت بتطوير لغات اسهل للاستخدام، مثلا أبل طرحت لغة Swift، وجوجل اعتمدت لغة Kotlin، وتكنولوجيا مايكروسوفت اصبحت متعددة المنصات تقريبا، فالتركيز اصبح على المستخدم (المطور) وليس على الهاردوير. وتأكد بأن لا احد سيسألك عن او يهتم بنوع التقنية المستخدمة او عدد الساعات الذي امضيته في تطوير نظامك، اكسب وقتك، هناك الكثير والكثير من المواضيع المثيرة في عالم التكنولوجيا والبرمجيات. بالتوفيق،،،
  16. وعليكم السلام ورحمة الله. المشكلة بعدم توافق نسخة Prolog مع Java! قومي بتثبيت احدث نسخة من اصدار prolog. لنظام Window 64 يمكنك تحميلها مباشرة من هنا http://www.swi-prolog.org/download/stable/bin/swipl-w64-760.exe عند التثبيت فقط تأكدي من أن خيار JPL -- Java <-> Prolog محدد. وهنا http://www.swi-prolog.org/download/stable ستجدين جميع نسخ Prolog الأخرى. بالتوفيق،،،
  17. وعليكم السلام. ما تقوم بتعلمه حالياً هو المنطق البرمجي اكثر من كونك تتعلم لغة معينة، وهو الذي يمكنك من كتابة الخوارزميات بشكل منطقي متسلسل. وهو مشترك بين جميع لغات البرمجة. ستعرف انك بإمكانك الانتقال لتقنية اخرى، عندما تقوم بكتابة العديد من الأمثلة والبرامج، وتتقن نوعا ما هذا التسلسل والمنطق البرمجي.
  18. باختصار، هي اللغات التي يمكنك كتابة سطر كود واحد (او اكثر طبعا) وتنفيذه بدون Compile. مثلا: لطباعة جملة في لغة الجافا او سي شارب او سي بلس بلس أو...، انت بحاجة لمجموعة ملفات و بعض الجمل التي تحضّر بيئة العمل مثل import, #include, using لاستدعاء المكتبات، وايضا بحاجة لدالة رئيسية Main، وثم انت بحاجة ل Compiler ليقوم بترجمة هذه الملفات وانشاء ملف تنفيذي يمكن بعده تنفيذه! في لغات السكربت كما قلت، يمكنك من سطر واحد تنفيذ الأمر بدون Compile أو Header files أو Classes أو غيرها. لذلك قد تلاحظ البعض يقارن مثلا بين لغة Python ولغة جافا، وان طباعة جملة في Python تحتاج لسطر واحد بينما في جافا قد تحتاج لعشرين سطر! وهذا ليس مقياس اطلاقاً. فلغة الجافا مثلا هي Pure Object-Oriented Language، يعني لا يمكنك الا ان تستخدم Classes، بينما Python هي ايضا OOP ولكن ليس بشكل نقى او اساسي، لغة ++C هي OOP ولكن ايضا ليس بشكل نقى، اي يمكنك كتابة برنامج دون الحاجة ل Class. طبعا يمكن استخدام لغات مثل #C، كلغة سكربت. كما نستخدمها مع Views ضمن ASP.NET بالتوفيق،،،
  19. You don't have the MySQL installed correctly on your machine, try to re-install it, you can watch this video for more help (without its noising music!) https://www.youtube.com/watch?v=1B9YnFsVfdY
  20. طريقة انشاء Object خاطئة. new تأتي بعد اشارة = F_company obj1 = new F_company(); أنصحك بالتعمق اكثر في مفاهيم البرمجة كائنية التوجه OOP، قبل العمل على مشاريع حقيقية، لانك ستواجه الكثير من المشاكل. بالتوفيق،،،
  21. وعليكم السلام ورحمة الله اخي الكريم كما يتضح لي، هذا ليس خطأ ولكن Debug بمعنى ان تنفيذ البرنامج يتوقف عند هذه النقطة (تفيد هذه العملية في اكتشاف الاخطاء وتتبع مراحل تنفيذ الكود) لديك خياران: 1. اضغط على الدائرة الحمراء بجانب السطر لتختفي (تسمى هذه ب Break Point) 2. عندما تقوم بتشغيل البرنامج اختر Start Without Debugging او اضغط Ctrl+F5 عندها سيقوم visual studio بتفادي هذه العلامات، كما انصحك بعدم تشغيل البرنامج باستخدام F5 الا في حال اردت استخدام خاصية الـ Debugging لان التشغيل بهذه الطريقة مرهق قليلا. بالتوفيق،،،
  22. سؤال مهم اخي الكريم، وهو من اساسيات عمل انظمة التشغيل قبل ان يكون في التطبيقات. تعرف انظمة التشغيل بانها Multi-threaded او Multi-tasking اي تقوم بأكثر من مهمة بنفس الوقت، لذلك بإمكانك تشغيل اكثر من برنامج او تطبيق بنفس اللحظة على نظام التشغيل، هذا لم يكن متاح سابقا. في التطبيقات (منها الويب) يوجد نفس المفهوم ولكن الأمر يعتمد على المطور الذي سيقوم بعمل تطبيقه Multi-threaded أو يمكن ان يتعامل مع اكثر من طلب بنفس الوقت. بحيث يكون هناك Thread (يمكنك تشبيها بنادل في مطعم) يقوم باستقبال الطلبات فقط، ويحولها ل Thread اخرى لتقوم بمعالجتها ويذهب النادل لاستقبال طلبات اخرى، وفي حال تم تجهيز طلب معين يقوم النادل بتوصيلة بالشكل المناسب. ليس لدي خبرة في PHP، لكن ضمن بيئة ASP.NET يوجد هذا المفهوم بشكل مفصل ويوجد اليات حديثة لاستخدامه، وقد تم اجراء اختبار استطاع السيرفر استقبال 20,000 طلب في الثانية الواحدة. مثال صغير من ASP.NET MVC، لنفرض ان الدالة المسؤولة عن معالجة طلب صفحة اخر الاخبار بالشكل التالي: public ActionResult Posts() { var model= database.GetRecentPosts(); return View(model); } هذا يسمى بالوضع العادي او Single-thread، يعنى عملية طلب الاخبار من قاعدة البيانات ربما يتطلب زمن معين (كمثال العمليات الحسابية الطويلة نوعا ما) هنا ستضظر ال Thread المسوؤلة عن الطلب (النادل) الانتظار حتى يتم جلب الاخبار من قاعدة البيانات، ثم تقوم بعرض الصفحة للمستخدم return View(model); لكن يمكن تطوير هذا النموذج الى الشكل التالي: public async Task<ActionResult> Posts() { var model= await database.GetRecentPosts(); return View(model); } بهذه الطريقة السهلة والمعبرة ضمن #C يمكن ل Thread الان الانتقال لمعالجة طلبات اخرى بينما يتم جلب البيانات او اجراء العمليات الحسابية (لاحظ كلمة await بجانب عملية طلب البيانات)، وعند الانتهاء من هذه العملية ترجع thread لتوصيل النتيجة للمستخدم. طبعا ليس شرط نفس thread هي التي تعمل كل هذا، هناك ما يسمى ب Thread pool، (يشبه مجموعة من العمال بانتظار عمل معين) يقوم نظام التشغيل تلقائيا بتنظيم الية عملهم لذلك يطلق على نظام التشغيل اسم Scheduler، كما يقوم باسناد المهام المختلفة لهم وتحويلهم من حالة لاخرى لذلك يطلق عليه ايضا اسم Dispatcher. بالتوفيق،،،
  23. يمكنك تجريب أي موقع، فقط ابحث عن: Download Mac Osx iso وستجد الكثير من نتائج البحث...
  24. حجم الملف كبير حوالي 5 جيجا بايت، والأمر يعتمد على سرعة الانترنت لديك! وليس الموقع جميع النسخ بنفس الحجم تقريبا، اذا لم يكن لديك انترنت سريع، حاول تنزيله من أي مكان فيه انترنت سريع كمقاهي الانترنت. او استخدم Torrent واتركته ليحمل طوال الليل.
×
×
  • أضف...