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

كل الأنشطة

تحدث تلقائيًا

  1. الساعة الماضية
  2. عند رفع مشروع بايثون على استضافة، هناك أمر لبناءالمشروع Build Command يتم تنفيذه وهو: pip install -r requirements.txt ومن خلاله يتم تثبيت جميع الحزم للازمة للمشروع من خلال ملف requirements.txt، ولا تقوم برفعها مع المشروع بل يتم تثبيتها على الاستضافة. ستجد توضيح مُفصل هنا:
  3. اخي مصطفي ممكن تعمل لي مثال كيفية عمل dashboard تكون علي اليمين بحيث اضغط علي صفحة معينه يرفعنا اليه
  4. اليوم
  5. لدي مشروع بلغة بايثون أو أي لغة برمجية اخرئ وأقوم باستدعاء المكتبات المطلوبه وتثبيتها في بيئة العمل وعند استكمال المشروع وترتيب ملفات المشروع واريد ارفع ملفات المشروع إلى الاستضافة (الخادم ) السوال المهم هل ارفع المكتبات المطلوبه مع الملفات (السكربت)الى الاستضافة داخل مجلدوستتم إدارتها ومعالجتها بشكل مرتب ومنظم.من قبل الخادم ؟؟ ام كل مكتبه داخل ملف منفصل ؟؟
  6. السلام عليكم احتاج الى شخص يستطيع برمجة روبوت بشري اضافة تطبيق اضافه لغات تعلم الحركة والاوامر والتنقل الروبوت ذكي جدا ومدعوم ai ولكنه خام
  7. تُعد صيغة جافاسكريبت لترميز الكائنات JavaScript Object Notation واختصارًا JSON صيغة نصية لتمثيل البيانات المهيكلة وفقًا للصياغة الكائنية في جافاسكريبت، وهي شائعة الاستخدام لتمثيل وتبادل المعطيات عبر الويب (مثل إرسال البيانات من الخادم إلى العميل لتُعرض على صفحة الويب). ستصادف هذه الصيغة كثيرًا لهذا سنشرح لك في هذا المقال ما تحتاج معرفته عن عمل JSON في جافاسكربت بما في ذلك تفسير صياغتها للوصول إلى البيانات التي تضمها وكتابة بياناتك الخاصة بهذه الصياغة. ننصحك قبل أن تبدأ العمل معنا في هذه السلسلة أن تطلع على: أساسيات HTML. أساسيات عمل CSS أساسيات جافاسكربت كما شرحناها في سلسلة المقالات السابقة. أساسيات البرمجة كائنية التوجه كما شرحناها في مقال أساسيات العمل مع الكائنات في جافا سكريبت. ماهي صيغة JSON؟ JSON هو تنسيق نصي لتمثيل البيانات يتبع الصياغة القواعدية للغة جافا سكريبت، نشره وزاد شعبيته دوغلاس كروكفورد. وعلى الرغم من الشبه الكبير بين هذا التنسيق والصياغة القواعدية لكائنات جافا سكريبت الحرفية، يمكن استخدامه بشكل مستقل عن جافا سكريبت، وتتمتع الكثير من بيئات البرمجة بالقدرة على قراءة (تفسير) البيانات بتنسيق JSON وتوليدها. لتنسيق JSON طبيعة نصية، وهو أمر مفيد لنقل البيانات عبر الشبكات. وتحتاج إلى تحويل تنسيق JSON إلى كائن جافا سكريبت أصلي إن أردت الوصول إلى محتوياته. وبالطبع، لن يكون اﻷمر صعبًا لوجود كائن JSON عام في جافا سكريبت يقدّم توابع للتحويل بين الصيغتين (JSON - كائن جافا سكريبت). ملاحظة: تُدعى عملية تحويل كائن إلى نص بغية إرساله عبر شبكة بالسَلسَلة serialization، وعملية تحويل سلسلة نصية إلى كائن أصلي إلغاء السَلسَلة deserialization. يمكن تخزين نص JSON في ملف خاص، وسيكون على شكل ملف نصي نمطي يحمل اللاحقة json.، وله نمط MIME التالي: application/json. هيكلية JSON قلنا سابقًا أن نص JSON هو سلسلة نصية منسقة بطريقة تحاكي كائن جافا سكريبت حرفي. وباﻹمكان إضافة نفس اﻷنواع اﻷساسية للبيانات ضمن تنسيق JSON كما تفعل تمامًا عند التعامل مع كائن جافا سكريبت، مثل النصوص واﻷرقام والمصفوفات والقيم المنطقية وكائنات حرفية أخرى. يتيح لك هذا التنسيق بناء البيانات بشكل هرمي كالتالي: { "squadName": "Super hero squad", "homeTown": "Metro City", "formed": 2016, "secretBase": "Super tower", "active": true, "members": [ { "name": "Molecule Man", "age": 29, "secretIdentity": "Dan Jukes", "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"] }, { "name": "Madame Uppercut", "age": 39, "secretIdentity": "Jane Wilson", "powers": [ "Million tonne punch", "Damage resistance", "Superhuman reflexes" ] }, { "name": "Eternal Flame", "age": 1000000, "secretIdentity": "Unknown", "powers": [ "Immortality", "Heat Immunity", "Inferno", "Teleportation", "Interdimensional travel" ] } ] } ولو حملّنا النص السابق في برنامج جافا سكريبت وفسرناه إلى كائن يدعى superHeroes مثلًا، سنتمكن من الوصول إلى البيانات التي يضمها وفق أسلوب الوصول إلى أعضاء الكائنات (نقطة أو قوس مربع). إليك مثالًا: superHeroes.homeTown; superHeroes["active"]; وللوصول إلى بيانات أعمق في التسلسل الهرمي، عليك كتابة سلسلة بأسماء الخاصيات وأدلة المصفوفات وصولًا إلى الخاصية المطلوبة. فلو أردت الوصول إلى القوة الخارقة الثالثة للبطل الخارق الثاني الموجود في قائمة البيانات، عليك تنفيذ ما يلي: superHeroes["members"][1]["powers"][2]; نستخدم اولًا اسم المتغير superHeroes.. ندخل بعدها إلى الخاصية members ضمنه، لهذا نستخدم التعليمة ["members"]. تضم الخاصية members مصفوفة كائنات، وعلينا الوصول إلى الكائن الثاني منها لهذا نستخدم الأمر [1]. وضمن الكائن الثاني من المصفوفة، نريد الوصول إلى الخاصية powers، لهذا نستخدم التعليمة ["powers"]. تضم الخاصية powers مصفوفة تحتوي على القوى الخارقة للأبطال، ونريد من بينها الثالثة [2]. ملاحظة: يمكنك الوصول إلى البيانات السابقة بتنسيق JSON ضمن الملف JSONTest.html (ألق نظرة على الشيفرة المصدرية). جرّب أن تحمّل الملف ثم الوصول إلى البيانات ضمن المتغيّر عبر طرفية جافا سكريبت في متصفحك. المصفوفات وتنسيق JSON أشرنا سابقًا أن نص JSON يبدو مشابهًا لكائن جافا سكريبت ضمن سلسلة نصية. ويمكننا أيضًا تحويل المصفوفات من وإلى تنسيق JSON. إليك مثالًا عن استخدام صحيح لتنسيق JSON: [ { "name": "Molecule Man", "age": 29, "secretIdentity": "Dan Jukes", "powers": ["Radiation resistance", "Turning tiny", "Radiation blast"] }, { "name": "Madame Uppercut", "age": 39, "secretIdentity": "Jane Wilson", "powers": [ "Million tonne punch", "Damage resistance", "Superhuman reflexes" ] } ] هذه الشيفرة نص JSON صحيح تمامًا، وعليك فقط الوصول إلى أعضاء المصفوفة (في النسخة المفسّرة منه) بأن تبدأ بدليل العنصر الذي تريده من المصفوفة مثل [0]["powers"][0]. ملاحظات أخرى إن JSON هو نص نمطي تنسق فيه البيانات بشكل محدد، ويتضمن خاصيات فقط ولا يضم توابع. لا بد من استخدام علامات اقتباس مزدوجة حول القيم النصية وأسماء الخاصيات، ولا يمكن استخدام علامة الاقتباس المفردة إلا لإحاطة نص JSON بأكمله. ستسبب أية أخطاء في وضع الفواصل أو النقطتين المتعامدتين في ملف JSON بوقوع مشاكل، ولن يعمل عندها الملف. انتبه إلى ضرورة التحقق من أية بيانات تحاول استخدامها (على الرغم من ضآلة احتمال وجود أخطاء في بيانات JSON التي يولدها الحاسوب، إن كان البرنامج الذي يولدها صحيحًا). بإمكانك التحقق من صحة بيانات JSON باستخدام تطبيقات مخصصة لذلك يمكنك البحث عنها في اﻹنترنت. يمكن لملف JSON شكل أي نوع من أنواع البيانات الصالحة للاستخدام في JSON وليست فقط الكائنات والمصفوفات، فسلسلة نصية مفردة أو رقم مفرد هي بيانات JSON صحيحة. على عكس شيفرة جافا سكريبت التي لا تتطلب وضع علامات اقتباس حول الخاصيات، لا بد من إحاطة أسماء الخاصيات في JSON بعلامتي اقتباس مزدوجتين. تطبيق عملي: العمل مع JSON سنعمل في هذا التمرين على استعراض طريقة الاستفادة من بيانات منسقة وفق تنسيق JSON في صفحة ويب. نقطة الانطلاق أنشئ بداية نسخة عن الملفين heroes.html و style.css على حاسوبك. ويتضمن الملف الثاني بعض تنسيقات CSS البسيطة لتنسيق الصفحة، بينما يضم اﻷول شيفرة HTML بسيطة لجسم الصفحة، إضافة إلى العنصر <script> الذي يضم شيفرة جافا سكريبت التي سنكتبها خلال عملنا على هذا التمرين. <header> ... </header> <section> ... </section> <script> ... </script> تتوفر بيانات JSON للتمرين ضمن ملف مخصص على جيت-هب، وسنحمّل هذا الملف باستخدام الشيفرة ونستخدم بعض دوال شجرة DOM لعرض البيانات: دوال المستوى اﻷعلى وهي كالتالي: async function populate() { const requestURL = "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json"; const request = new Request(requestURL); const response = await fetch(request); const superHeroes = await response.json(); populateHeader(superHeroes); populateHeroes(superHeroes); } نستخدم للحصول على بيانات JSON واجهة برمجية تُدعى Fetch تسمح لنا بإرسال طلبات عبر اﻹنترنت للحصول على موارد من الخادم من خلال جافا سكريبت (مثل الصور والنصوص وملفات JSON وحتى مقتطفات من شيفرة HTML). أي بإمكاننا تحديث جزء صغير من محتوى الصفحة بدلًا من اعادة تحميل الصفحة بالكامل. تستخدم اﻷسطر اﻷربعة اﻷولى من الدالة الواجهة البرمجية Fetch ﻹحضار ملف JSON من الخادم: صرحنا عن المتغير requestURL لتخزين عنوان الملف على جيت-هب. استخدمنا عنوان URL لتهيئة كائن الطلب Request الجديد. أرسلنا طلب عبر اﻹنترنت باستخدام الدالة ()fetch وسيعيد ذلك كائن استجابة Response. نحصل على الاستجابة بتنسيق JSON عن طريق استخدام الدالة ()json العائدة للكائن Response. ملاحظة: الواجهة البرمجية غير متزامنة asynchronous، لهذا لابد من إضافة الكلمة المحجوزة async قبل اسم الدالة التي تستخدم الواجهة والكلمة المحجوزة await قبل استدعاء أية دوال غير متزامنة. بعد كل ذلك، سيضم المتغير superHeroes كان جافا سكريبت المبني وفق بيانات JSON. ثم نمرر بعد ذلك الكائن إلى استدعاء دالتين الأولى لتملأ العنصر <header> بالبيانات الصحيحة، والثانية لتنشئ بطاقة معلومات لكل بطل في الفريق ووضعها ضمن العنصر <section>. ترتيب المعلومات في الترويسة بعد أن حصلنا على البيانات من الخادم وفق تنسيق JSON وحولناها إلى كائن جافا سكريبت، سنستخدمها عن طريق الدالتين اللتين أشرنا إليهما سابقًا. لهذا أضف الشيفرة التالية التي تمثّل تصريحًا عن دالة تحت الشيفرة الموجودة: function populateHeader(obj) { const header = document.querySelector("header"); const myH1 = document.createElement("h1"); myH1.textContent = obj.squadName; header.appendChild(myH1); const myPara = document.createElement("p"); myPara.textContent = `Hometown: ${obj.homeTown} // Formed: ${obj.formed}`; header.appendChild(myPara); } تنشئ الشيفرة السابقة بداية عنصر <h1> باستخدام التابع ()createElement، وأسندنا إلى محتواه قيمة الخاصية squadName التي تعود إلى كائن جافا سكريبت، ثم ألحقنا العنصر ومحتواه بالترويسة مستخدمين التابع ()appendChild. كررنا بعد ذلك نفس الخطوات مع الفقرة النصية، إذ أنشأناها بداية ثم وضعنا فيها المحتوى المناسب وألحقناها بالترويسة. والفرق الوحيد بين الحالتين هو أننا ضبطنا المحتوى النصي للفقرة ليكون مساويًا لقالب مفسّر (أو حرفي) template literal يضم قيمتي الخاصيتين homeTown و formed. إنشاء بطاقة معلومات البطل الخارق أضف اﻵن شيفرة الدالة التي تُنشئ وتعرض بطاقة البطل إلى نهاية الشيفرة السابقة كالتالي: function populateHeroes(obj) { const section = document.querySelector("section"); const heroes = obj.members; for (const hero of heroes) { const myArticle = document.createElement("article"); const myH2 = document.createElement("h2"); const myPara1 = document.createElement("p"); const myPara2 = document.createElement("p"); const myPara3 = document.createElement("p"); const myList = document.createElement("ul"); myH2.textContent = hero.name; myPara1.textContent = `Secret identity: ${hero.secretIdentity}`; myPara2.textContent = `Age: ${hero.age}`; myPara3.textContent = "Superpowers:"; const superPowers = hero.powers; for (const power of superPowers) { const listItem = document.createElement("li"); listItem.textContent = power; myList.appendChild(listItem); } myArticle.appendChild(myH2); myArticle.appendChild(myPara1); myArticle.appendChild(myPara2); myArticle.appendChild(myPara3); myArticle.appendChild(myList); section.appendChild(myArticle); } } بدأنا بتخزين قيمة الخاصية members لكائن جافا سكريبت في متغير جديد. وهذه الخاصية هي مصفوفة تضم عدة كائنات تضم معلومات عن كل بطل. ثم تنقلنا بين كائنات الخاصية باستخدام حلقة for...of لـِ: إنشاء عدة عناصر HTML جديدة وهي: <article> و <h2> وثلاث فقرات نصية <p> و <ul>. ضبط محتوى <h2> ليضم اسم البطل name. ملئ الفقرات النصية الثلاث بقيم الخاصيتين secretIdentity و age وبعبارة "Superpowers" لتقديم المعلومات الموجودة في القائمة. تخزين قيمة الخاصية powers في متغير آخر جديد يُدعى superPowers وتضم الخاصية مصفوفة تضم القوى الخارقة التي يتمتع بها البطل. استخدام حلقة for...of من جديد للتنقل بين القوى التي يمتلكها البطل وإنشاء عنصر <li> لوضع القوة ضمنه ثم نلحق عنصر القائمة listItem بالقائمة غير المرتبة <ul> (التس تُسمى <myList). إلحاق العنصر <h2> والفقرات النصية الثلاث <p> والقائمة <ul> بالعنصر <article> (الذي يُسمى myArticle) وإلحاقه بالعنصر <section>. وانتبه إلى إلحاق العناصر وفق الترتيب السابق تمامًا، فسيعكس ذلك ترتيب الملعومات التي ستُعرض في صفحة HTML. ملاحظة: إن واجهت صعوبة في تنفيذ التمرين، عُد إلى الشيفرة المصدرية له أو اطلع على النسخة الجاهزة منه. ملاحظة: إن واجهت صعوبة في استيعاب استخدام ترميز (النقطة والأقواس المربعة) في الوصول إلى كائنات جافا سكريبت، سيساعدك فتح الملف superheroes.json في نافذة أخرى لمحررك النصي والرجوع إليه عند متابعة شيفرة جافا سكريبت. كما يمكنك العودة إلى مقال أساسيات العمل مع الكائنات في جافا سكريبت لمعلومات أوضح عن طريقة الترميز هذه. استدعاء توابع المستوى اﻷعلى علينا أخيرًا استدعاء الدالة الأعلى مستوى ()populate populate(); التحويل بين الكائنات والنصوص يبدو التمرين السابق بسيطًا من ناحية الوصول إلى كائنات جافا سكريبت، لأننا حولنا الاستجابة التي أرسلها الخادم مباشرة إلى كائن جافا سكريبت باستخدام response.json. لكن في أحيان أخرى، قد تكون الاستجابة سلسلة JSON خام (غير منسّقة)، وعلينا حينها تحويلها إلى كائن جافا سكريبت بأنفسنا. وعندما نريد إرسال كائن جافا سكريبت إلى الخادم عبر اﻹنترنت، لا بد من تحويله إلى تنسيق JSON قبل اﻹرسال. ونظرًا لشيوع الحالتين السابقتين في تطوير الويب، تضم المتصفحات كائن JSON مضمن يمتلك التابعين التاليين: ()parse: يقبل نص JSON كمعامل ويعيد كائن جافا سكريبت الموافق. ()stringify: يقبل كائنًا كمعامل له، ويعيد نص JSON الموافق. بإمكانك رؤية عمل التابع الأول في النسخة الجاهزة من التمرين السابق (انظر أيضًا إلى شيفرته المصدرية) وهو يفعل تمامًا ما تفعله النسخة التي بنيناها باستثناء أننا: حصلنا على الاستجابة على شكل سلسلة نصية بدلًا من تنسيق JSON لاستخدامنا التابع ()text للحصول على الاستجابة. استخدمنا التابع ()parse لتحويل النص إلى كائن جافا سكريبت. إليك مقطع الشيفرة الموافق لما ذكرنا: async function populate() { const requestURL = "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json"; const request = new Request(requestURL); const response = await fetch(request); const superHeroesText = await response.text(); const superHeroes = JSON.parse(superHeroesText); populateHeader(superHeroes); populateHeroes(superHeroes); } وكما ترى، يعمل التابع ()stringify بطريقة معكوسة. جرّب اﻵن إدخال اﻷسطر التالية إلى طرفية جافا سكريبت في متصفحك سطرًا تلو اﻵخر: let myObj = { name: "Chris", age: 38 }; myObj; let myString = JSON.stringify(myObj); myString; ننشئ هنا كائن جافا سكريبت ثم نتحقق من محتواه ونحوّله بعدها إلى نص JSON باستخدام التابع ()stringify. نخزّن القيمة المعادة في متغيّر جيد ثم نتحقق منه مجددًا. الخلاصة قدمنا في هذا المقال دليلًا بسيطًا لاستخدام تنسيق JSON في برامجك بما في ذلك إنشاء وتفسير نصوص JSON وكيفية الوصول إلى البيانات التي يضمها. ترجمة -وبتصرف- لمقال Working with JSON اقرأ أيضًا تعلم JSON صيغة JSON وتوابعها في جافاسكربت ما عليك معرفته عن حقول JSON في قواعد بيانات MySQL كيفية استخدام صيغة JSON في لغة Go
  8. لأنك تستخدم قاعدة بيانات SQLite عليك تفعيل الإضافات التالية في ملف php.ini: extension=pdo_sqlite extension=sqlite3 ستجد بجانبهم فاصلة ; منقوطة قم بحذفها لتفعيل الإضافة ثم قم بالضغط على CTRL + S للحفظ. وإذا كنت لا تستخدم SQLite في لارافل 11، فقم بتعديل المتغيرات التالية في ملف .env: SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null إلى: SESSION_DRIVER=cookie SESSION_LIFETIME=120 SESSION_ENCRYPT=false SESSION_PATH=/ SESSION_DOMAIN=null
  9. إذا كان برنامجك لن يحفظ شيئا يدخله المستخدم، فهنا لا حاجة إلى قاعدة بيانات. وبما أن البيانات عندك هي صور وسوف تستخدم فقط لتعليم النموذج، أي أنها للاستخدام الداخلي فقط، فهذا يؤكد الأمر. لكن سوف تحتاج إلى قاعدة بيانات بمجرد أن تريد إنشاء شيء إضافي، مثل نظام تسجيل للمستخدمين مثلا. أمّا بخصوص إضافة API أو لا، فهذا يعتمد على شكل مشروعك. هل سيكون مشروعك على شكل موقع إلكتروني بحيث يقوم المستخدم بزيارته وإدخال البيانات عليه؟إذا كان كذلك فلا حاجة لأن أن ننشئ API، لأنه في مشاريع Flask يمكن إنشاء قوالب لصفحات HTML، وهذه الصفحات يتم عرضها على المستخدم، بحيث منها يتمكن من إرسال البيانات اللازمة للبرنامج. إذا أردت مثالا، فهذا موقع أنشأته لأحد العملاء باستخدام Flask وهو يستخدم إحدى تقنيات تعلم آلة للتحقق من URL يدخله المستخدم. هذا الموقع لا يملك أي API لكنه يقوم بالمطلوب. أمّا إذا كان مشروعك يتضمن تطبيق Android مثلا أو أي تطبيق مختلف عن صفحات HTML، فهنا أنت بحاجة لطريقة لإرسال البيانات من واجهة التطبيق إلى مشروعك المبني على Flask. في هذه الحالة سيكون عليك إنشاء API لاستقبال البيانات الضرورية. للمزيد من المعلومات حول استخدامات API: وهذا درس لكيفية استخدام قوالب HTML في Flask (مثل التي يستخدمها الموقع المعروض أعلاه):
  10. السلام عليكم جمعة مباركه على الجميع اثناء تشغيل مشروع لارافيل تظهر صفحة تالية
  11. I plan to use computer vision project deep fake technology with images, and I'm not sure if using a flask is convenient for a big project. Based on my understanding, API is good when I don't want someone to have access to my database. suppose project is big , what is plan if I want use flask is there project in this course that show api with database
  12. ومن أين سيحصل الـ ِAPI على البيانات؟ تقصد من ملف JSON مثلاً؟ الأمر يتوقف على حجم البيانات ونوعها، لكن عامًة الأفضل وجود قاعدة بيانات بسيطة على الأقل مثل SQLite وطالما أنك تستخدم فلاسك فالمشروع بسيط ولن يحتاج قاعدة بيانات معقدة عن SQLite.
  13. sorry for using English as a communication language because I don't have an Arabic keyboard. I have a plan to create a project using Flask, and MySQL database. I have a question : What do you think, should I use API instead of a database or use API ,and Mysql together?
  14. يجب توفير مسار الواجهة الخلفية قبل اسم الصورة حتى يتم استرجاعها من الواجهة الخلفية حيث اذا لم تقم بوضع المسار كما فعلت انت فسيتم ارجاعه من الواجهة الامامية وحيث ان الصورة ليست موجودة فى سيرفر الواجهة الامامية فلن تظهر . قم باستبدال سطر رقم 62 بهذا السطر src={`${API_URL}/public/images/${nav.image}`} وقم باستبدال API_URL بعنوان الواجهة الخلفية . والافضل هو انشاء ثابت لديك فى ملفات البيئة "env" فى الواجهة الامامية يحتوى على مسار الصور فى الواجهة الخلفية مباشرة . هكذا مثلا IMAGE_PATH="localhost:8000/public/images" واستخدام هذا الثابت ووضعه فى خاصية src مباشرة فى الصورة قبل اسم الصورة هكذا src={`${IMAGE_PATH}/${nav.image}`}
  15. { "name": " باقات الرحلات البحرية", "desc": [ "" ], "image": "1715322534151.jpg", "createdAt": { "$date": "2024-04-06T05:53:45.899Z" }, "updatedAt": { "$date": "2024-04-06T06:25:35.921Z" }, "__v": 0, "pathname": "cruise" } في هذا النموذج الخاص يوجد اسم الصورة المخزنه في المسار public/images في الواجهة الخلفية باستخدام NODE كيف اقوم باستيراد الصورة الى الواجهة الامامية الموجودة في هذا الملف MainCard.rar
  16. أهلا، أوَلا أهنئك على هدفك السامي، الفكرة من الدورات عموما بما في ذلك هذه الدورة هي تخريج طالب قادر إلى الدخول إلى سوق العمل والمنافسة فيه بناء على معارفه الذي يتعلمها خلال الدورة وكذلك من خلال توسعه بعد ذلك، لأن هناك الكثير من الأمور التي لم تكن قد سمعت بها من قبل، والدورة تفتح لك بابا إليها وتعطيك الأساسيات فيها، ثم تجد نفسك صرت قادرا على التوسع في دراستها بعد ذلك. هذا يعتمد على كيفية تشغيله. إذا كان داخل المتصفح أو كتطبيق هاتف ذكي، فهنا Python ليست الخيار الأمثل وستحتاج إلى لغة برمجة أخرى مثل JavaScript. إذا كان تطبيقا على الحاسوب فهنا Python ستكون كافية في معظم الأمور. بصراحة، هذا البرنامج الذي تريد إنشاؤه ضخم ومعقد وفيه الكثير من التفاصيل، وكثير من هذه التفاصيل ليست متعلقة أصلا بالذكاء الاصطناعي. كونه يفحص الجهاز هذا يعني أنه عليه أن يتصفح محتوى الملفات. يعني أن البرنامج يجب أن يكون قادرا على قراءة الصور والفيديوهات، ثم بعد ذلك يجب تمريرها إلى نماذج الذكاء الاصطناعي، والتي بدورها يجب أن تكون قادرة على معالجة الصور والفيديو. إذا كان المطلوب فقط عرض تنبيه فهذا هو أبسط شيء في هذا المشروع. هذا يعني أن البرنامج يجب أن يعمل كجدار ناري Firewall أو مانع إعلانات Ad blocker. هنا يجب أن تكون لديك خبرة في الشبكات وكيفية عمل الإتصالات، خصوصا المشفرة منها مثل بروتوكول HTTPS والذي جميع المواقع والتطبيقات تقريبا تستخدمه. إذا كان البرنامج يجب أن يعمل خارج المتصفح، فسوف يحتاج إلى إلغاء تشفير HTTPS، وهذا ليس أمرا بسيطا، إذ أنه يجب على البرنامج تعديل إعدادات الجهاز وأن يقوم بإنشاء وإدخال شهادة HTTPS مزورة في الجهاز ويتم استخدامها للتشفير وإلغاء التشفير، لكي تسمح له (معظم) البرامج بأن يقرأ محتوى اتصالها. ما تقوم به هنا معقد لأن هذا في حقيقته "محاولة اختراق" و "تنصت" على بيانات المستخدم! لذلك لن يكون هذا التصرف مرحبا به. في الواقع، معظم الجدران النارية ومانعي الإعلانات لا تتصرف بهذه الطريقة ولا تحاول قراءة محتوى الاتصال لأن هذا شيء غير طبيعي كما ترى، بل تكتفي بمعرفة مصدر الاتصال أو وجهته فقط وتحكم بناء على ذلك. هنا أيضا البرنامج يحتاج صلاحيات كبيرة لكي يستطيع القيام بهذه الأمور. بالنسبة لتصوير الشاشة فهذا شيء عادي على أنظمة الحاسوب. لكن محاولة إيقاف برنامج (فضلا عن محاولة حذفه) تحتاج صلاحية تشغيل البرنامج كمدير للنظام. وكذلك الأمر بالنسبة لإقفال الشاشة، إذ أنه توجد لا توجد طريقة واحدة تسمى "إقفال الشاشة"، فربما تريد تسجيل الخروج من الجلسة الحالية، أو حجب ظهور البرنامج عن طريق فتح نافذة فوقه، أو حتى إطفاء تشغيل النظام. الأمر يختلف باختلاف الفكرة. أما إرسال بلاغات للموقع، فهذا يعتمد على API الخاصة بكل موقع ولا توجد طريقة موحدة. هنا تحتاج إلى دراسة كل موقع مستهدف على حدة وبرمجة طريقة الإبلاغ لكل واحد منهم. طبعا منذ أن بدأت وأنا أتحدث في جوانب النظام والشبكة وما إلى ذلك، لكن إلى الآن لم أتحدّث أصلا عن جانب اكتشاف هل الصورة أو الفيديو إباحي أم لا! لأن هذا بحد ذاته مشروع كبير آخر! بل إن هذا الموضوع تحديدا من أكثر المواضيع ضبابية ولا توجد فيه أجوبة واضحة. فقبل أن تبدأ العمل أصلا، ما المقصود بالصورة أو الفيديو الإباحي؟ هل مجرد ظهور امرأة فيه؟ هل إذا ظهر شعرها ورقبتها؟ هل إذا ظهرت بلباس الإدارة أو لباس المذيعات؟ هل إذا ظهرت بلباس النزهة الصيفي الخفيف؟ ماذا عن التي تضع مستحضرات التجميل؟ ماذا عن اللباس التقليدي الذي يحوي الكثير من الألوان؟... طيب وماذا عن الرجال؟ ماذا لو أظهر الرجل صدره؟ ماذا لو ظهر فخذه؟ ماذا لو وضع مستحضرات التجميل أو صبغ شعره؟ ما هي المحددات التي تشملهم أيضا؟ وماذا لو ظهرت امرأة أو رجل توافق هذه المحددات مرة واحدة في فيديو طويل، هل الفيديو صار إباحيا؟ وماذا عن الحركات أو أوضاع الجسد في الصورة أو الفيديو؟ هناك عشرات أو مئات الأمور التي تجعلنا نحن البشر لا نتفق على تصنيف المشهد فيما إذا كان إباحيا أم لا. فكيف نعلم البرنامج شيئا نحن لا ندري ما هو؟ والآن بافتراض أننا تجاوزنا كل هذه الأسئلة وحددنا موقفنا، الآن علينا البحث عن هذه البيانات التي توافق هذا المطلوب وكذلك تلك التي لا توافقه، حتى يتم إنشاء مجموعتين، واحدة خاصة بالإباحية والأخرى لا. في هذه الأثناء، الشخص الذي يقوم بهذه العملية عليه أن يشاهد هذه البيانات (وزيادة) بعينية حتى يتم فرزها. يعني أن هناك شخصا (بل ربما أكثر) سوف نعرضه لقدر هائل من الإباحية ونضحي به من أجل أن نجمع البيانات! طبعا حتى الآن لم نتحدث عن شيء في كيفية إنجاز نماذج ذكاء اصطناعي تفهم محتوى الصور وكيفية تدريبها والمشاكل التي تحصل أثناء وبعد ذلك، فهذه دروس طويلة أخرى، نحن إلى الآن لا زلنا في دراسة مقدمات العمل! لكن ما يجب أن تعرفه حتى بعد إنجاز العمل، أن الذكاء الاصطناعي في التعامل مع الصور (خاصة في موضوع غير مفهوم مثل هذا) غير دقيق. فقد يتم اعتبار أن صورة ذراع رجل أبيض مشهد إباحي لأن لون الجلد فيه ظاهر جدا، بينما قد لا ينتبه إلى صورة امرأة ترتدي ملابس ضيقة سوداء. لذلك، من المستحسن عدم المغامرة ببداية مشروع كهذا من الصفر، فهذه ليست فكرة جديدة بل هي موجودة من سنوات، وسوف تجد تطبيقات لها سابقة لك. قد لا تكون بالتعقيد الذي تريده، لكن يمكنك استخدام الأدوات الموجودة ودمجها مع بعضها حتى تصل إلى أحسن نتيجة ممكنة. يمكنك البحث في الأنترنت مثلا عن Adult content blocking tools وانظر ماذا يمكن أن تجد وكيف يمكن أن تستفيد منها. بالتوفيق.
  17. كيفية إنشاء روبوت محادثة على واتساب باستخدام واجهة API الخاصة بواتساب للأعمال: 1) واتساب للأعمال API الخطوة المنطقية الأولى هي الوصول إلى واجهات برمجة تطبيقات WhatsApp للأعمال. هناك طريقتان للقيام بذلك: أ) بناء الروبوت بنفسك عن طريق طلب الوصول إلى واجهات برمجة تطبيقات الأعمال. ب) العمل مع الشريك الذي سيقوم بالرفع الثقيل من حيث تطوير الروبوت نيابة عنك. ولكن من الواضح أن هذا سيكلفك ذلك. حيث سنركز على الأول ، حيث سنتطلع إلى إنشاء روبوت أعمال WhatsApp الخاص بنا. توجه إلى link ، املأ هذا النموذج عادة ما يستغرق WhatsApp ما بين 4 إلى 7 أسابيع من الوقت للموافقة على طلبك. يمكن اتخاذ الخطوات القليلة التالية خلال هذه الفترة للمساعدة في الحصول على واجهات برمجة التطبيقات. 2) حساب فيسبوك للأعمال إنشاء حساب أعمال على مدير أعمال فيسبوكbusiness.facebook. ستحتاج إلى ملف تعريف Facebook لإنشاء حساب تجاري. هذه الخطوة مهمة نظرا لأن فريق Facebook يبحث عن معلومات حول مؤسستك على مدير أعمال Facebook وموقعك على الويب. 3) بيئة Twilio Sandbox أثناء انتظار الموافقة ، من الأفضل صقل مهاراتك في بيئة رمل والتي لحسن الحظ يتم توفيرها بواسطة Twilio وفقا ل Twilio ، "يتيح لك إرسال واستقبال رسائل معتمدة مسبقا إلى الأرقام التي تنضم إلى Sandbox الخاص بك ، باستخدام رقم اختبار Twilio". أ) يعطي Twilio رقم Twilio اختبارا لنا لاختبار رسائل القالب. يوفر رقم هاتف Twilio وجودا محاكيا على شبكة الهاتف. ب) تسمح لنا واجهة المستخدم بتكوين رسائل الرد على بعض الكلمات ك hi وغيرها. سيتعين عليك إنشاء نظام خلفي باستخدام Node JS أو Django (أو أي إطار عمل خلفي لهذه المسألة) لتقديم طلبات النشر إلى واجهات برمجة التطبيقات الخاصة ب Twilio. إذا كنت مهتما بتعلم مكتبة Twilio مع بايثون الرابط التالي سيكون بداية جيدة link، 4) متطلبات البنية التحتية لتطبيق WhatsApp متطلبات البنية التحتية لتشغيل واجهة برمجة تطبيقات WhatsApp Business ، يعتمد ذلك على تحميل الرسائل ، يوصي فريق WhatsApp بما لا يقل عن 250 جيجابايت SSD مع ذاكرة وصول عشوائي (RAM) بسعة 16 جيجابايت وإعداد رباعي النواة. أيضا
  18. يمكن اختصاره بالشكل التالي الى سطر واحد حيث قمنا بالاستغناء عن المتغيرات ووضعناهم بشكل مباشر حيث تعطي نفس النتيجة لكن ينصح بكتابة المتغيرات كي يكون الكود قابل للقراءة اكثر import random print( ["_" for _ in random.choice(["good", "bada"])]) يكون الخرج ['_', '_', '_', '_'] مثلما قال صديقي مصطفى ويمكنك تبديب "_ " بتغير اخر مثل char لان حلقة ال for يقوم بالمرور على احرف الكلمة المختارة حرف حرف
  19. مرحبا اعلم ان الكثير يريد التوقف عن مشاهدة الاباحية وتوبة ولاكن سؤالي هو هل بامكان دورة اكاديمية حسوب للذكاء اصطناعي ان تحقق لي هدفي اريد انشاء برنامج يعمل في المتصفح والاجهزة وحتى راوتر ويقوم بتالي اولا : يقوم بفحص جهاز بحيث اذا وجد اي مواد يقوم بحذفها بأذن من المستخدم ثانيا : يذكر المستخدم بديننا ثالثا : يقوم بفحص المعلومات المستقبلة للجهاز وحذف اي شي قد يكون اباحية او منحرفا رابعا : يقوم بفحص شاشة كل 10 ثوان بحيث ان وجد ان مستخدم يشاهد المواد هذه والبرنامج لم يتمكن من حذفها بسبب انها كانت مشفرة بقوم البرنامج : بفعل احدى الأمور التالية : 1 - حذف البرنامج او ايقافه 2 - اضافته للقائمة السوداء 3 - ايقاف الشاشة واعطاء ابلاغ او عدم العرض للمادة (فيسبوك او يوتيوب الخ) سؤالي الأخير مثل هذا البرنامج الى ماذا سأحتاج هل سأحتاج الى فريق او يمكنني فعله وحدي هل احتاج لغة برمجة غير بايثون او تكفي وحدها
  20. البارحة
  21. هل المقصود هو إنشاء list بها underscoresبطول يمثل طول الكلمة؟ سيكون الكود كالتالي: import random word = ["good", "bada"] chosen_word = random.choice(word) array = ["_" for _ in chosen_word] print(array) حيث أنّ "_" يمثل العنصر الذي سيتم إضافته مرارًا وتكرارًا إلى قائمة array من خلال for _ in. والرمز "_" بعد for هو متغير حامل لعلامة مكان لا يحمل أي قيمة فعلية ونستخدمه ببساطة للتكرار على التسلسل المقدم بعد ذلك، وتستطيعي استخدام i لا مشكلة.
  22. word=["good","bada"] array=[ ] (nada=random.choice(word كيف ممكن اختصر هذه الثلاثة الأسطر إلى سطر واحد يعطي نفس النتيجه،،👇 For i in nada: array.append("_") (array)print
  23. طيب هل دوره جافا سكربت هل سوفا نتعلم كل تفاصيل اللغه من مشاريع وواجهات وصلاحيت و اذونات وكم مشروع وما هي المشاريع وهل يجب ان اكون محترف في html و css عندي خلفيه بسيطه عنها لاكن عندي اساس قوي في اساسيات البرمجة
  24. ما تقصده هو أدوات Low code أو No Code، وتلك الأدوات ستظل موجودة دائمًا، فليس جميع المشاريع بحاجة إلى برمجة من الصفر وتخصيص المشروع بناءًا على احتياجاته. فهناك مشاريع بسيطة بحاجة إلى أدوات جاهزة، لذا تلك المنصات موجهة لذلك، وهي مفيدة أيضًا لتنفيذ نماذج تجريبية Demos أو تصاميم أولية بشكل سريع لفكرة مشروع معين تريد تفنيذها لتجربتها أو عرضها على الفريق الذي تعمل معه أو العميل. عليك الإهتمام بتعلم الأساسيات بشكل جيد أثناء البرمجة وهي HTML, CSS, JS وعدم الإهتمام بشكل كبير بالتقنيات وبتلك المنصات، فهي متغيرة وليست ثابتة ومجرد أداة مساعدة. وستجد تفصيل أكثر هنا:
  25. انا اعرف هذه المعلومة واستخدم اطار العملlangchain لكن الادوات الخاصة بالتقسيم لا تعطي نتائج مرضية وخاصة اي عند وجود فقرة مادة من قانون معين مثلا مادة 43: تنص على حقوق العامل 1.يحق للعامل 15 يوم اجازة من كل سنة خدمة 2.يحق للعمال تعويض نهاية الخدمة في حال كان قد اتم 30 سنة خدمة اوتوقف العمل من جهة مشغلي العمل ولم يرتكب جرم 3............ 4.............. 5................. 6..........................................20 لنفرض انها فقرة طويلة فاذا قسمت تقسيم دلالي يقوم بالنقسيم تعداد تعداد اي القسم الاول : مثلا مادة 43: تنص على حقوق العامل 1.يحق للعامل 15 يوم اجازة من كل سنة خدمة القسم الثاني 2.يحق للعمال تعويض نهاية الخدمة في حال كان قد اتم 30 سنة خدمة اوتوقف العمل من جهة مشغلي العمل ولم يرتكب جرم وهكذا فاذا سالت على ماذا تنص المادة 43 لن يعيد سوا القسم الاول وستكون الاجابة ناقصة واذا قمت بتقسيم مل مادة تعبر قسم فعند السئؤال عن متى يستحق العامل تعويض نهاية الخدمة لا يجلب المدة 43 كاولوية وذلك بسبب كبر القسم الخاص بها مقارنة بالاستعلام فما حل هذه المشكلة او يوجد اداة تساعد على تحليل الملف بشكل افضل من انواع المقسمات
  1. عرض المزيد
×
×
  • أضف...