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

Talaat Magdy

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

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

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

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

    1

كل منشورات العضو Talaat Magdy

  1. يمكن برمجة API تقريبا باستخدام كل لغات البرمجة التي تدعم ويب مثلا JAVA Python Ruby C# JavaScript والكثير من لغات برمجة . يمكنك استخدام api وربطه ب Android عن طريق استخدام أى مكتبة HTTP client for Android مثلا Retrofit 2 لابد من إضافة صلاحيات اﻷنترنت عن طريق <uses-permission android:name="aandroid.permission.INTERNET" /> إضافة مكتبة إلى ملف build.gradle implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.retrofit2:converter-gson:2.4.0' لاحظ تم إضافة مكتبة gson هي تقوم بإضافة بتحويل json إلى java object سوف نستخدم ذلك لينك عباره عن get api -- لجلب مقالات https://jsonplaceholder.typicode.com/posts شكل داتا [{ "userId": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" }, { "userId": 1, "id": 2, "title": "qui est esse", "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla" }, { "userId": 1, "id": 3, "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut", "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut" } نقوم بإنشاء كلاس لمساعدة في جلب هذه البيانات public class PlaceholderPost { private int userID; private int id; private String title; private String body; public int getUserId() { return userID; } public int getId() { return id; } public String getTitle() { return title; } public String getBody() { return body; } } ثم نقوم بإضافة كلاس جديد لجلب معلومات من API import java.util.List; import retrofit2.Call; import retrofit2.http.GET; public interface PlaceholderAPI { @GET("posts") Call<List> getPosts(); } كيفية استدام مكتبة في اتصال ب API Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://jsonplaceholder.typicode.com/") .build(); ثم نربطه ب interface خاص بينا Call<List> call = placeholderAPI.getPosts(); نقوم بجلب داتا وربطه بالتصميم call.enqueue(new Callback<List>() { @Override public void onResponse(Call<List> call, Response<List> response) { if (response.isSuccessful()) { // للتأكد من كل شئ يقوم بجلب داتا List posts = response.body(); Log.d("Success", posts.get(3).getBody().toString()); TextView textView = findViewById(R.id.text); textView.setText(posts.get(3).getBody().toString()); } else { Log.d("Yo", "Boo!"); return; } } @Override public void onFailure(Call<List> call, Throwable t) { Log.d("Yo", "Errror!"); } }); Log.d("Yo","Hello!"); } }
  2. نعم يوجد بعض مكتبات قديمة ولكن ما تزال تعمل بشكل جيد . يمكنك بالبحث باسم مكتبة التى تريدها على github سيظهر لك الكثير أو يمكنك مشاركة فى تحديث بعض المكتبات المهمه للمساعدة نفسك وغيرك . أيضا أنت قمت بعمل fork منذ مدة يوجد بعض تحديثات على مكتبات يمكن مشاهدة تحيثات من هنا awesome-android-ui أيضا يمكنك تعلم material design سوف يساعدك كثير فى كيفية التفكير و إنشاء الأشكال بشكل رائع يمكنك استخدام موقع https://material.io/design فهو يحتوي علي الكثير من اﻷموار المهمة . مشاهدة بعض تطيبقات وإيجاد التصممات وتقليدها ذلك يجعلك تتحسن بشكل كبير.
  3. for num in range(6): # range --> تقوم بجلب الأرقام من ٠ الي رقم متاح هو ٦ ٦ ليست معنا if num == 3: continue # إذا كان الرقم = ٣ يكمل ولا يقوم بطباعة الرقم print(num) # المصفوفه numbers = [10, 21, 31, 32, 1, 2, 3, 5, 6, 7, 8, 9, 7, 4, 3, 6] for num in numbers: if num % 2 == 0: # عدد الذي يقبل القسمة علي ٢ الباقي 0 print(f" {num} عدد زوجي ") else: print(f" {num} عدد فردي ") print('ادخل الرقم ') num = int(input()) for i in range(13): print(f" {num} X {i} = {num * i}")
  4. تعتبر أشهر مكتبة في python هي matplotlib . هي مكتبة تساعدك علي تمثيل داتا بأشكال محتلفه منتوعه . مثلا نريد تمثيل two list x = [2, 4, 6] y = [1, 3, 5] plt.plot(x, y) plt.show() سوف يظهر بهذا الشكل تدعم مكتبة الكثير من أشكال فمثلا
  5. مشكلة Rails framework ليست في MVC لانهم عبارة عن كود روبي في النهائية لكن لابد من معرفة ماذا يفعل كل جزء في الكود الخاص بك معرفة أشياء بشكل صحيح . مثلا في controller كلهم عبارة عن دوال مثل أي كود روبي class ArticlesController < ApplicationController def new end end و لكن يوجد بعض أشياء خاص ب controller وجاهزه تعرفه عندما تقوم بعمل شئ جديد أو عندم تقع في مشكلة مثلا تريد حماية API خاصة بك في rails يعطيك خيار يمكن اضافته في controller عن طريق class ApplicationController < ActionController::Base protect_from_forgery end class FooController < ApplicationController protect_from_forgery except: :index end ليس مطلوب منك في اول أسبوع أن تعرف ذلك ولكن مع مرور الوقت سوف تتعلم ذلك . مثلا في view يوجد العديد من الدوال المساعدة التي يجب عليكي معرفته جيد وكذلك model . في البداية يعتبر تعلم rails صعب لكنها في البداية فقط وتذكر دائما تعلم أي شئ في البداية صعب حتي اللعب بالكورة مثلا . نصحيتي لك لابد من أنك تعلم لغة Ruby بشكل جيد قبل دخول في Rails لكي لاتجد صعوبة في تعلم Rails . اذا وجدت بعض صعوبة في تعلم RAILS يمكنك تعلم Sinatra هو framework صغير مستخدم من قبل العديد لعمل ما يسمي بـ micro service باستخدام لغة روبي سوف يسعدك في تعلم أشياء قبل دخول في Rails . إذا تري أي جزء في الكود لم تعرفها أو صعب فهمه يمكن سؤال دائما و البحث بنفسك علي نت هذا سوف يحسنك دائما . هل طبيعي أن تجد صعوبة في تعلم شئ جديد ؟ نعم بكل تأكيد شئ جديد عليك وتعلمه يأخذ وقت بالتأكيد ولكن بممارسة و تصحيح الخطأ دائما سوف تجد الحل . تذكر دائما دائما اجعل جوجل صديقك المفضل
  6. لابد ان ميثود مسئواله عن اتصال ب view مثلindex , edit أن تكون من نوع public ليست private . class ArticlesController < ApplicationController def index @articles = Article.all end def show @article = Article.find(params[:id]) end def new @article = Article.new end def create #render plain: params[:article].inspect @article = Article.new(article_params) if @article.save redirect_to @article else render 'new' end end # public تحويل الميثود الي def edit @article = Article.find(params[:id]) if @article.update(article_params) redirect_to @article else render 'edit' end end private def article_params params.require(:article).permit(:title, :text) end end
  7. أولا يجب علينا أن نعرف كيف نقوم بالتعرف علي اﻷعداد الزوجية . اﻷعداد الزوجية هي التي تقبل القسمة علي ٢ ولا يوجد باقي أما اﻷعداد فرديه يكون باقي ١ عند قسمة علي ٢ . طريقة باستخدام If // program to check if the number is even or odd // take input from the user const number = prompt("Enter a number: "); //check if the number is even if(number % 2 == 0) { console.log("The number is even."); } // if the number is odd else { console.log("The number is odd."); } باستخدام Ternary Operator // program to check if the number is even or odd // take input from the user const number = prompt("Enter a number: "); // ternary operator const result = (number % 2 == 0) ? "even" : "odd"; // display the result console.log(`The number is ${result}.`);
  8. هذا عباره عن التوثيق الرسمي ل Rails هذا لينك عبارة عن جوالة بسيطة في تجوال مع Rails حيث يقوم بعمل مشروع عباره عن مدونه بسيطة باستخدام rails واستعراض اساسيات هذا framework الرائع . يجب ايضا تعلم لغة روبي و عمل بعض البرامج بسيطة باستخدام لغة روبي لفهم اللغة جيد قبل دخول الي framework . لغة روبي من أمتع لغات وأكثر حبا لدي متعلميها . يمكنك تعلم لغة روبي و rails عن طريق أكاديمية حاسوب . دورة تشرح لك مع تطيبق و تطيبق أكثر من مشروع وستجد نفسك تلقائيا تذهب إلي Guide لتعليم وبحث عن شئ أو حل مشكلة . يمكنك أيضا استخدام بعض مواقع التي سوف تفيدك بالتأكيد خلال تعلم لغة روبي و rails https://api.rubyonrails.org/ مرجع خاص ب rails https://docs.ruby-lang.org/en/2.7.0/ مرجع خاص ب لغة روبي https://apidock.com/rails/ActiveRecord/Base/find/class مرجع لغة روبي و rails و rspec ( عبارة عن testing framework ) أحيانا يكون بطئ ولكن مفيد جدا
  9. سنذهب في جولة في الفهرس! ما هو الفهرس؟ لو أردنا مثلا أن نبحث عن اسم شخص في جدول الأشخاص Persons عبر استخدام الجملة التالية: SELECT * FROM Persons WHERE First_Name = "أحمد"; فإن نظام إدارة قاعدة البيانات سيمرّ على كل السجلات الموجودة في الجدول لترشيح السجلات وإرجاع تلك التي توافق الشرط في جملة where. ستظهر لنا مشكلة الوقت اللازم لتنفيذ جملة الاستعلام – وتزداد -كلما زاد عدد السجلات في الجدول، فلو كان لدينا مثلا مليون سجل في الجدول Persons، ولنفترض جدلاً أن النظام باستطاعته المرور على 10 آلاف سجل في الثانية، فإننا بحاجة إلى 100 ثانية لتنفيذ جملة الاستعلام السابقة. لحل المشكلة السابقة، فإن نُظم إدارة قواعد البيانات تقدم خاصية الفَهْرَسة. الفَهْرَسة هي ببساطة عبارة عن مؤشر يحتوي على نسخة من جزء من البيانات في الجدول، بحيث تقوم هذه النسخة من البيانات بمهمة “الدليل” أو “المُؤَشّر” الذي يسرع الوصول إلى البيانات الأصلية الكاملة الموجودة في الجدول، بحيث لا تحتاج المرور الكامل على كل الجدول (No Full Table Scan) عند البحث عن البيانات. يكون الفهرس في أغلب أنظمة إدارة قواعد البيانات من نوع “B-Tree” ويأتي هذا الاسم من بنية البيانات Data structure التي تحمل نفس الاسم، وهو المفضل لأن تُطبقه على العمود الذي يحتوي قيمًا متنوعة وكثيرة مثل الرقم القومي للشخص، وليس من المفضل أن تطبق فهرس “B-Tree” على العمود الذي يحتوي عددًا قليلًا من القيم.
  10. يمكنك استخدام برنامج (IDE) خاصة بـ CS50 اون لاين من خلال هذا الرابط CS 50 IDE . يوجد IDE أو Editor يمكنك كتابة برنامج خاص بـلغة C أقرب برنامج لـ CS 50 هو CLion . كما يمكنك تجربة Code::Blocks ، NetBeans ،Eclipse . أو يمكنك استخدام Editors لكتابة بطريقة أسهل Sublime Text أو Atom .
  11. لقد قمت باﻷجابة هنا عن طريق for أيضا
  12. نعم يمكنك استخدام for using System; public class Program { public static string Reverse(string str){ string reversestring = ""; int Length = str.Length - 1; for(int i = Length; i >=0; i--) { reversestring = reversestring + str[i]; } return reversestring; } public static void Main() { Console.WriteLine(Program.Reverse("hello")); // olleh } }
  13. هذه صورة تستخدم encoding algorithm يسمي Base64 . للتأكد من أن encoding صحيح أم لا يمكنك استخدام https://www.opinionatedgeek.com/codecs/base64decoder هذا مثال لطريقة استخدام <div> <p>Taken from wikpedia</p> <img src="data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" /> </div> إذا كنت تستخدم php في backend $image = 'http://images.itracki.com/2011/06/favicon.png'; // Read image path, convert to base64 encoding $imageData = base64_encode(file_get_contents($image)); // Format the image SRC: data:{mime};base64,{data}; $src = 'data: '.mime_content_type($image).';base64,'.$imageData; // Echo out a sample image echo '<img src="'.$src.'">';
  14. public class Program { public static string Reverse(string str){ string reversestring = ""; int Length = str.Length - 1; while (Length >= 0) { reversestring = reversestring + str[Length]; Length--; } return reversestring; } public static void Main() { Console.WriteLine(Program.Reverse("hello")); // olleh } } // another way using built-in method in c# public static string Reverse( string s ) { char[] charArray = s.ToCharArray(); Array.Reverse( charArray ); return new string( charArray ); } نثوم بإنشاء ميثود جديدة اسمها Reverse ونوعه string نقوم بإنشاء متغير جديد واعطاءه قيمه ابتدائية "" نجلب حجم جملة النصية لاستخدامها في تكرار والخروج من التكرار إذا كان حجم أصبح أقل من صفر داخل التكرار نقوم باضافة الحرف تلو الأخر للمتغير reversestring ونقوم بإنقصاء حجم الجملة النصية مثال جملة نصية = hello حجم جملة نصية هو 5 ولكن لان index في لغة c# يبدا من ٠ سنقوم بإنقصاء حجم الي ٤ لجب عناصر بعد ذلك length يساوي ٤ هل ٤ اكبر من او يساوي صفر نعم نقوم بجلب هذا الحرف من جملة نصية str[4] + reversestring ثم نقوم بإنقصاء حجم length وهكذا الي ان يكون length -١ هنا نقوم بالخروج من loop
  15. بالأضافة الي التعليقات السابقة التي قامت بشرح اساسيات لغة البرمجة لكني اتحدث الي اساسيات وطريقة تفكير ومعرفة اساسيات . لابد من معرفة بعض أشياء قبل تعلم اي لغة برمجة . اذا كنت تريد اساسيات قبل دخول الي اي لغة برمجيى افضل ان تتعلم : • كيف يمثل الجهاز الأرقام ، والسلاسل ، وهياكل البيانات عالية المستوى ، حتى تعرف التكلفة الكامنة لاستخدامها. • كيفية تنظيم بياناتك ، حتى يتمكن الجهاز من الوصول إليها بكفاءة. • كيف تعمل وحدة المعالجة المركزية ، بحيث يمكنك كتابة التعليمات البرمجية التي تعمل بالطريقة التي يعمل بها الجهاز. • كيف تعمل أجهزة الإدخال / الإخراج ، حتى تتمكن من زيادة أداء تطبيقك عند الوصول إلى هذه الأجهزة. • أفضل طريقة لاستخدام التسلسل الهرمي للذاكرة لإنتاج أسرع البرامج الممكنة. • نبذة عن اللغات low level programming هي لغات تسمي لغات الاله مثل لغة Assembly language . معرفة تنفيذ الكود من لغة مثل JavaScript الي لغة الاله تساعدك في كتابة كود افضل اسرع واقل مساحة من memory . هذا يميز مبرومج عن اخر . الكثير من اﻷمور لابد من معرفته للتعلم أفضل و أسرع يمكنك قراءة كتاب Write Great Code, Volume 1, 2nd Edition: Understanding the Machine 2nd Edition سوف يساعدك كثير في اعطاء الخليفة اللازمة قبل البدء في البرمجة او يمكنك قراءة بعد تعلم اي لغة برمجة . يمكنك تعلم javascript عن طريق اكاديمة حسوب من ضمن أهداف الدورة --> الأسس البرمجية السليمة للغة JavaScript https://academy.hsoub.com/store/5-دورة-تطوير-التطبيقات-باستخدام-لغة-javascript/
  16. تريد ذلك من خلال react Native ؟ يمكننك اخباري ماذا تستخدم ؟
  17. لابد من تحديد المجال اولا ثم تختار اللغه المناسبه للذلك علي سبيل المثال اذا كنت تريد تعليم تطيبقات الهاتف لديك نوعين android و IOS اذا كنت تريد android يمكن تعلم جافا او كوتلن اما اذا كنت تريد بناء تطيبق يعمل علي الاتنين يمكن استخدم xamarin وتعليم C# و يوجد العديد من امثله يمكن زياره ذلك موقع http://www.bestprogramminglanguagefor.me/q يسالك بعض اسئله ثم يختار اللغه مناسبه لك
×
×
  • أضف...