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

samer_jabal

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

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

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

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

    3

أجوبة بواسطة samer_jabal

  1. إنَّ kivy عبارة عن لغة وسوميَّة tagged حيثُ يمكنك إنشاء تطبيقات للجوال(باختلاف أنظمة التشغيل) وأيضًا للحاسِب، عن طريق ملف "كيفي" kivy ذي الامتداد .kv .. لكن الهدف الأساسي من هذا الملف هو فصل الواجهة الرُسوميَّة عن مَنطِق تطبيقك(منطق التطبيق هو شِفرات ملف البايثون .py كَمثال) وَيمكنك أيضًا القيام بعمل واجهة رسومية وَكتابة منطق التطبيق(البرنامج) في نفس ملف البايثون .py(كمثال).

    ما تمتاز به:
    * سهولتها؛ كونها استخدمت بايثون كمنصة لها.
    * عابرة للمنصات؛ فهي تعمل على ويندوز، لينُكس، أندرويد، آيفون/آيباد،...إلخ (ليس لدي معلومات عن فيما إذا كانت تعمل على ويندوز فون -أرجو ممن لديه هذه المعلومة والمزيد أن يكتبها-).

    ما يعيبها:
    * حجم التطبيق الكبير الناشِىء، مهما بلغت بساطته؛ نظرًا لإرفاق مفسر بايثون مع ملفات التطبيق.
    * تنظيم التوثيق الرسمي السيء؛ حيثُ أحيانًا تجد ما تبحث عنه في غير قسمه.
    * عدد مُستخدميها عربيًّا وعالميًّا قليل؛ فالتعلم الذاتي عندئذٍ خير مُعين.

  2. بتاريخ 14 ساعات قال هشام رزق الله:

    لا أملك الكثير من التفاصيل لكن أغلب محركات الألعاب (أكثر من 90%) مكتوبة بلغات سي شارب وسي بلس بلس كما أن أغلب الألعاب مكتوبة بهاتين اللغتين.

    السبب يعود لسرعة سي وَ سي++ بالمقارنة مع جافا. وبحسب تجربتي مع البايثون ومشروع *نوكيا*: PyS60 فقد كانت التطبيقات المعمولة بالـ سي وَ سي++ أسرع التطبيقات للسمبيان وحتى أن التطبيقات المعمولة بالـبايثون أسرع من تلك المعمولة بالجافا!. فالسبب هو البطء.

  3. بتاريخ On 7/8/2016 at 12:51 قال alilodz:

    أذكر لك :

    QT:صُممت QT أساسا لـ C++ لكن لم يمنعها هذا من التوسع إلى

    لغات أخرى مثل Python, PHP, Ruby, C, Perl, C#, Java

    WX: مكتبة wxWidgets لا تعتمد فقط على ++C ، ولكنها أيضا تملك جسورا إلى بايثون و بيرل و جافا و إيفيل و سي شارب (الدوت نت ) و البيسك و روبي و lua و حتى جافا سكربت. مما يسهل عملية البرمجة بها لمن لا يعرفون لغة ++C

    لكن كيف بنيت لِـ C++ أساسًا؟ ما  السبيل؟ @alilodz

  4. منذ أول درس لك مع بايثون، أنت تتعامل مع الأصناف دون أن تشعر!.

    فباستخدامك للسلاسل النصيَّة في طباعة "Hello World" أنت استخدمت الصنف: str.

    والأصناف هي أداة تغليف لإزالة التعقيد في برنامجك وجعله أكثر مرونة وسلاسة. ولجعل فضاء الأسماء العام لبرنامجك أنظف. وأيضًا لجعل برنامجك سهل القراءة والفَهم ولاحقًا سهل التطوير.

    • أعجبني 1
  5. هذه نصائحي عادةً:

    بدايتك مع البايثون

    مدخل إلى لغة بايثون

    الصفحة العربية في الموقع الرسمي لبايثون

    مجموعة من الكتب العربية حول لغة بايثون (موقع كتب)

    وأيضاً في نفس الموقع

    كتاب تعلم البرمجة مع بايثون 3 (موقع وادي التقنية)

    رابط: مصدر هذا الكتاب العربي (مجتمع لينكس العربي)

    دورة تعلمك طريقة التفكير في بايثون (للأستاذ: إيهاب رجب)

    ولا تنس دائما تفقد توثيق بايثون في الموقع الرسمي

    واستعمل الدالتين المدمجتين للحصول على مساعدة سريعة

    help() و dir()

    المزيد تجده هنا:
    "مصادر عربية مميزة لتغلم بايثون"

    • أعجبني 2
  6. بتاريخ 23 دقائق مضت قال msh97:

    ممكن توضيح اكثر من فضلك

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

    وأظن أن جافا سكرِبت أفضل في هذه الحالة.

  7. بتاريخ 1 ساعة قال حسام برهان:

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

    
    (y - a) = m (x - b)

    حيث m هو ميل المستقيم الذي تتحرّك عليه الكرة (لاحظ أنّ حركتها تكون بشكل مستقيم دومًا)، و (a, b) هما إحداثيي نقطة ثابتة من المستوي (قد تكون مثلًا نقطة تقاطع المستقيم حامل الكرة مع المستقيم الأفقي السفلي للشاشة). أمّا (x, y) فهما الإحداثيين الحاليين للكرة باعتبارها نقطة. 

    بمعرفة الاحداثيين (a,b) و (x,y) يمكن حساب ميل المستقيم بسهولة وبالتالي معرفة زاوية الورود، وبالتالي زاوية الانعكاس لها، وهذا يعطينا بدوره معادلة مستقيم الانعكاس الذي ينبغي على الكرة أن تسير وفقه عند ارتطامها بالعارضة الصغيرة.

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

    في هذه الحالة تكون a وَ b إحداثيتي نقطة متغيرة حسب موقع الكرة(x, y)، وهذا يستلزم مقارنة إحداثيتي الكرة مع تلك الحُدود(الحدود هي a وَ b) عند كل حركة للكرة. هل كلامي دقيق؟

  8. @يحيى

    @هشام رزق الله

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

    * هل هناك مصادر عربية مقترحة كبداية؟

  9. لقد نسيته وقرأته الآن أعتذر عن التأخير..

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

  10. السَّبب أنَّ المولِّدات generators أسرع من القوائم العاديَّة فهي تعطيك القيمة بالوقت المُحدَّد لإستخدامها بعكس القائمة التي تعود لك بالقيم كاملة ممَّا يضع عبئًا إضافيَّا على برنامجك؛ ولهذا السبب يتم تفضيل إستخدام xrange في بايثون ٢ على range.

    والجدير بالذكر أن الدالة xrange قد أُزيلت في بايثون ٣ دون وضع بديل وهذا برأيي أمر خاطئ من قبلهم.

    • أعجبني 1
  11. هذه العملية معقدة رغم ما يبدوا عليها من بساطة.

    فمثلًا ليس كائن الملف الذي تنشئه بإستخدام الدالة المدمجة ()open الوحيد الذي يملك وسائل مثل ()read وغيرها.

    لتوضيح مقصدي أكثر تفقد التالي:

    from StringIO import StringIO

    #إنشاء كائن شبيه-بالملف file-like

    fl=StringIO()

    #الكتابة على الكائن

    fl.write("Hello, I'm Samer and this is a Test.\n")

    #العودة لبداية الملف

    fl.seek(0)

     

    #قراءة الملف

    print fl.read()

    #إغلاق الملف

    fl.close()

    * الجدير بالذكر أنني إستخدمت بايثون 2.7.x في مثالي.

  12. كتبت عن الأمر منذ عدة أشهر في مدونتي الشخصية، يمكنك تفقده من هنا: الحصول على نطاق Domain رابط ما

    وتجد بالمرفقات الملف الذي يحوي محتوى ما نشرته على مدونتي..

    بتاريخ 20 ساعات قال هشام رزق الله:

    أو يمكنك استخدام دالة urlparse من مكتبة urlparse مع دالة format لاستخرج اسم النطاق كما في المثال التالي:

    
    from urlparse import urlparse
    parsed_uri = urlparse( 'https://academy.hsoub.com/freelance/productivity/%D9%83%D9%8A%D9%81-%D8%AA%D8%B3%D8%AA%D8%BA%D9%84-%D8%A7%D9%84%D8%B3%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D9%8A%D8%A7%D9%85-%D8%A7%D9%84%D8%AA%D9%8A-%D9%84%D8%A7-%D8%AA%D8%AC%D8%AF-%D9%81%D9%8A%D9%87%D8%A7-%D9%85%D8%B4%D8%A7%D8%B1%D9%8A%D8%B9-%D9%84%D9%84%D8%B9%D9%85%D9%84-%D8%B9%D9%84%D9%8A%D9%87%D8%A7-%D9%84%D8%A8%D9%86%D8%A7%D8%A1-%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%A7%D9%84%D8%AC%D8%A7%D9%86%D8%A8%D9%8A%D8%9F-r115/' )
    domain = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri)
    print domain
    
    # gives
    'http://academy.hsoub.com/'

     

    بخصوص هذه النقطة أفضل إستخدام التالي:

    domain = urlparse.urlsplit(url)[1].split(':')[0]

    وهذا ملف أشرح به شفرتي.

    شفرة وشرحها.txt

    الحصول على نطاق Domain رابط ما.txt

    • أعجبني 1
  13. هناك عدة طرق في بايثون، أفضلها إستخدام الدالة المدمجة map فمثلًا لديك القائمة التالية:
    var=['12', '5', '58', '90']
    عندئذٍ سيكون الحل:
    NEWvar=map(var, int)

    ملاحظة: إن كان هناك خلل بتنسيق الجواب فذلك لكتابتي إياه من الجوال، تجد الجواب بهذا الملف النصي أيضًا.

    الرد - نص2.txt

×
×
  • أضف...