-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
نعم المتجر، أنا لم أجرب من قبل. (قرأت بعض المراجعات أنه لا يدفع ربما تتغير القوانين الخاصة بهم في أي وقت) إن كان التطبيق نفسه مدفوع تأخذ غوغل 30% من الأرباح أيضا.
- 6 اجابة
-
- 1
-
نعم لكنها قليلة مثلا Google Play Store يدفع 2 cents لكل تحميل
- 6 اجابة
-
- 1
-
عادةً يوجد ملف يحوي على مفتاح مقابل النص المعروض لكل لغة من لغات الموقع مثل: الانكليزية [ x=> Hello, y=> Bye ] العربية [ x=> مرحبا, y=> وداعاً ] ثم بعد تصفح الموقع، يتم برمجياً اختيار ملف الترجمة لهذه الرموز حيث يتم عرض النص الموافق للرمز المراد عرضه. عادةً تحتاج فقط لترجمة المحتوى الثابت و إنشاء ملف خاص لكل لغة تريد أن تدعهما أما المحتوى الذي يكتبه المستخدمون لا يترجم. احرص على أن يكون تطبيقك يدعم تعدد اللغات لسهولة إضافة وحذف اللغات في المستقبل. ربما تختلف الطريقة السابقة حسب التقنية التي يعمل بها المشروع.. إن كنت تريد توفير محتوى كامل بلغة أجنبية، تحتاج لمختص في كتابة المحتوى بتلك اللغة لكي يكون المحتوى جيد و مقروء و مفهوم و ليس ترجمة حرفية..
- 7 اجابة
-
- 1
-
يتم تحصيل أرباح من التطبيقات إما من الإعلانات مثل adMob أو أي جهة أخرى عمليات الشراء داخل التطبيق، مثل الألعاب العضوية المدفوعة دفع مبلغ مقابل استعراض محتوى
- 6 اجابة
-
- 1
-
بعد تثبيت تطبيق لارافل على الاستضافة يظهر لي هذا الخطأ بعد انشاء الحساب ومحاولة تسجيل الدخول. في التوثيق الرسمي، عند حدوث هذا الخطأ يتم طلب تنفيذ الخطوة: حذف ملف insalled في المجلد storage و اعادة انشاء قاعدة البيانات ولكن لم تحل المشكلة.. وفي قاعدة البيانات يتم تهجير ملف واحد.. custom table.. مثلا لايوجد حساب افتراضي كما هو الحال بالمثال التجريبي. Admin@demo.com :123456 فهو غير موجود في القاعدة بعد التهجير اصلا يتم تهجير ذلك الملف custom table وحده كما في DataBaseSeeder في الدالة call .. بدون جداول تحديد الصلاحيات Permission حاولت التعديل عدة مرات ولكن لم أنجح
- 2 اجابة
-
- 1
-
حاول عمل شرط ضمن foreach حسب قيمة عداد: <?php $i = 0; foreach($arr as $a) { $i++; if (i<=7) { // code 1 } elseif (i<= 14) { // code 2 }else{ // code 3 } } إن كنت تريد فصلهم بشكل نهائي، يمكن تقسم المصفوفة ل 3 أجزاء كالتالي: foreach(array_slice($arr, 0, 6) as $a): foreach(array_slice($arr, 6, 15) as $a): foreach(array_slice($arr, 15, 24) as $a): حيث استخدمنا دالة التقطيع array_slice
- 7 اجابة
-
- 2
-
بالنسبة لـ SASS لايوجد خطأ، إنما تحذير لكي لا تستخدم عملية القسمة " / " العادية إنما تستبدلها بدالة القسمة: $spacer / 2 => math.div($spacer, 2) لأن عملية القسمة لن تبقى مدعومة في الإصدارات اللاحقة. استبدل القسمة العادية بدالة القسمة. إقرأ التحذيرات بشكل دقيق. بالنسبة لجيكويري، قم بالتأكد من كل الخطوات وأسماء الملفات.. مشكلة file-loader تأكد من كتابة اسم الخاصية التي تحدد اسم المجلد مكان تصدير الصور..
- 4 اجابة
-
- 1
-
يجب أن تضع common name أو الاسم المشترك/العام لأي دومين من الموقع. Wildcard SSL certificate تسمح لك بعمل الرابط كالتالي: *.example.com حيث أن * تمثل أي دومين فرعي يمكنك استخدامه. بهذه الحالة ستتمكن من الوصول إلى: www.example.com, secure.example.com or private.example.com ابحث عن What is the SSL Certificate Common Name؟ على كل حال تأكد من الشهادة في الحقل التالي: commonName field in the X.509 certificate specification. ^^^^^^^^^^
-
Vector في ++C هي مصفوفة ديناميكية، أي متغيرة الطول، وبنية البيانات الموافقة لها في جافا هي ArrayList التضمين: import java.util.ArrayList لتعريف غرض من ArrayList: List<String> stringList = new ArrayList<String>(); في المثال السابق كان نمط بياناتها String مثال بسيط: import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<String> cars = new ArrayList<String>(); cars.add("BMW"); cars.add("Volvo"); cars.add("Ford"); cars.add("Mazda"); System.out.println(cars); } } الطريقة add تضيف عناصر. بعض الطرق المهمة: cars.get(0); //جلب العنصر الأول cars.set(0, "Opel"); // إسناد قيمة للعنصر الأول cars.remove(0); // حذف العنصر الأول cars.clear(); // حذف جميع العناصر
- 2 اجابة
-
- 1
-
ابحث في w3schools عن many to many SQL relationship. إن بناء قاعدة البيانات هو أهم مرحلة في المشروع فالبناء الصحيح يسهل عمل الاستعلامات وينظم الأمور.
- 9 اجابة
-
- 1
-
هذه علاقة "الكثير ل الكثير" أو many to many حيث يتم إسقاطها بجدول ثالث يحوي حقل لرقم للشركة و حقل لرقم المورد. بعد جلب بيانات هذا الجدول تقوم بتجميعهم عن طريق group by حسب رقم الشركة ثم تعرض النتائج.
- 9 اجابة
-
- 1
-
لاحظ هذا الجزء: <?php /// لا داع له $ro = mysqli_num_rows($result1); while ($ro = $result1->fetch_assoc()) { echo "<option value='". $ro['id'] ."'>" .$ro['name'] ."</option>" ; } ?> عند استخدام الدالة fetch_assoc ستقوم بالمرور على العناصر مرة واحدة. حاول كتابة استعلام بسيط، مثل التالي: <?php $mysqli = new mysqli('localhost', 'root', '', 'my_db'); if ($mysqli->connect_errno) { echo 'Failed to connect to MySQL: ' . $mysqli->connect_error; exit(); } $sql = 'SELECT Lastname, Age FROM Persons ORDER BY Lastname'; $result = $mysqli->query($sql); // Associative array while ($row = $result->fetch_assoc()) { printf("%s (%s)\n", $row['Lastname'], $row['Age']); } while ($row = $result->fetch_assoc()) { printf("%s (%s)\n", $row['Lastname'], $row['Age']); } // Free result set $result->free_result(); $mysqli->close(); ?> لجدول يحوي حقلين، اسم و عمر مثلا.. إن احتوى الجدول على 3 عناصر الحلقتين ستطبعان 3 عناصر فقط وهو نانج الحلقة الأولى. الحل: اجعل الاستعلام الثاني ديناميكي، أي يجب جلب بنود التوريد التي تتبع للشركة الأولى. في قاعدة البيانات، تضيف حقلا في جدول التوريدات يمثل رقم الشركة، ثم لكل شركة من الحلقة الأولى تقوم بعمل استعلام يجلب بنود التوريد حسب تساوي حقل id من الاستعلام الأول و company_id مثلا (الشركة التابعة للمورد وهو الحقل الذي ستضيفه). بهذا الشكل: result1 = select * company while ( row1 = fetch (resutl) { $id = row1 [id] result2 = select supplyer_data where company_id = $id while ( row2 = fetch (resut2) { // print your select } } تأكد أن الحلقة الثانية تقوم بطبعة القائمة المنسدلة في نفس الخلية من الجدول.
-
إن الدالة insert تأخذ وسيطين، الأول هو دليل العنصر في القائمة بالمكان الذي نريد الحشر فيه, و الثاني هو العنصر نفسه: x = [ ] x.insert([4,5,6]) print(x) الشيفرة السابقة تسبب خطأ: يجب تمرير وسيطين.. insert() takes exactly 2 arguments (1 given) وبشكل عام هي تضيف العنصر الثاني ككتلة واحدة في الدليل الهدف، (عنصر أو قائمة): x = [1 ,2 ,3] x.insert(1,[4,5,6]) print(x) الناتج: [1, [4, 5, 6], 2, 3]
- 3 اجابة
-
- 1
-
يمكننا اعتبار إطار العمل هو مزيج من عدة تقنيات، تستخدم سوية لتوحيد طريقة العمل في مشروع و توحيد بنية الملفات وليصبح التعامل مع التقنيات الفرعية أسهل بدون الاكتراث للتفاصيل الصغيرة. سأذكر أمثلة لأطر عمل: Bootstrap: يستخدم HTML + CSS + Javascript لعمل تنسيقات لواجهات المستخدم في Front End يقل الاعتماد على CSS ويعتمد على أصناف Bootstrap Laravel: يعتمد بمعظمة على PHP ويحوي أدوات للتعامل مع قواعد البيانات (يقلل الاعتماد على SQL) Elequent express.js: مخدم server للمشروع أي يعمل ضمن Back End ويعتمد على جافاسكربت وبيئة Node.js. يوجد غيرهم، أطلب منك البحث و الاستكشاف فهو مفيد جداَ. بشكل عام وجود إطار العمل (من كلمة إطار) ليقوم بجمع عدة تقنيات و تحسين العمل بها وهذا يقلل الأخطاء أثناء العمل على مشاريع كبيرة، مثلا يتعرض جميع المستخدمين لنفس المشكلة، ما يؤدي لسهولة إيجاد حل، أما لو قام كل مبرمج بابتكار طريقته الخاصة في الحل و البرمجة، سيتطلب وقتا كبيرا لشرح ماذا فعل و كيف حدث معه الخطأ. كما أضيف أن إطار العمل يجمع الممارسات البرمجية الجيدة و المناسبة و التي تحل المشاكل بأفضل صورة ممكنة.
- 1 جواب
-
- 3
-
السبب ربما عدم استدعاء الاستعلام الثاني: <?php $sql = "SELECT `supplying_items`.`id` AS idtotal, `supplying_items`.`name` AS nametotal, `supplier_id` AS sid , `supply_item`.`item` AS sitem, `suppliersdb`.`id` AS suppliersmainID FROM `supplying_items`, `supply_item`, `suppliersdb` WHERE `supply_item`.`item` = `supplying_items`.`id` && `suppliersdb`.`id` = $id"; while ($m = $result->fetch_assoc()) { $nametotal = $m['nametotal']; echo '<option selected>' . $m['nametotal'] . '</option>'; } ?> لاحظ لا يتم تنفيذ الاستعلام sql$. استخدم متغير آخر غير result للاستعلام الثاني. لأن الحلقتين متداختلين، فتخزين قيمة في متحول النتيجة الأولى يخرب القيم. عدم تنفيذ الاستعلام لا يقوم بتبديل العنصر وبالتالي يجلب عنصر وحيد.
- 9 اجابة
-
- 2
-
هذه مكتبة لإدارة الاتصال بقواعد البيانات في التطبيق حيث أنها الإصدار الخاص من SQLite ب Flutter فأصبح اسمها: sqflite ونعم صحيح، إن لم تستخدم أنت قاعدة البيانات في مشروعك ربما هي اعتمادية من مكتبة أخرى.. وفي بعض الحالات يتم تثبيت مكتبات بإصدارات غير متوافقة وتسبب مشاكل.
- 4 اجابة
-
- 1
-
يوجد طرق لذلك ابحث عن Vectorize image أو تحويل صورة إلى vector يوجد شروحات على يوتيوب مثلا..