-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
إجابات الأسئلة
-
إجابة Wael Aljamal سؤال في ضعيف في تحليل البرمجيات كانت الإجابة المقبولة
سأتحدث عن تجربتي الشخصية,
أنا مهندس برمجيات خريج جامعي و حاليا أدرس ماجستير علوم الويب.
مع أن دراستي كانت أكاديمية و كانت تحوي على مواد لتعليم مختلف لغات البرمجة و الخوارزميات, أجد أن معظم زملائي لم يتمكنو من فهم سليم و تنفيذ ما تعلموه بسبب نقص التجربة اليدوية و الخبرة الناتجة عن حل مسائل برمجية (أي تجريب ما تعلمته).
شاركت في العديد من المسابقات في الجامعة نفسها و مسابقات online على مختلف المواقع التعليمية.
أستطيع أن أقدم لك موقع يحوي على مسائل برمجية متنوعة من حيث الصعوبة و اعتمادها على مختلف المهارات البرمجية التي تحتاجها مستقبلا (من ناحية حل المشكلات و التفكير البرمجي و اختيار أنسب بنى المعطيات لتعطي حل أمثلي يعمل بكفائة باستهلاك الموارد (ذاكرة + وقت تنفيذ و معالجة)
أشهر موقع للمستبقات البرمجية و مسائل البرمجة هو https://codeforces.com/
أتمنى لك التوفيق و أن تتعلم البرمجة بكفاءة عالية.
تحياتي.
-
إجابة Wael Aljamal سؤال في ماذا تسمى هذه العملية؟ كانت الإجابة المقبولة
Data augmentation: زيادة البيانات (Data Set) التي يتدرب عليها النموذج (MODEL) من نفس البيانات الأساسية.
"زيادة البيانات هي استراتيجية تمكّن الممارسين من زيادة تنوع البيانات المتاحة لنماذج التدريب بشكل كبير ، دون جمع بيانات جديدة فعليًا. تُستخدم تقنيات زيادة البيانات مثل الاقتصاص والحشو والتقليب الأفقي بشكل شائع لتدريب الشبكات العصبية الكبيرة."
مثال عليها: لديك قاعدة بيانات تحوي على مجموعة صور فإن معالجة الصور عن طريق إضافة قصاصات من كل صورة و تدوير الصور و التقليب هو ما يدعى زيادة بيانات (دون إضافة بيانات جديدة)
أما الطريقة التي تتحدث عنها فهي ليست (Data Mining) إنما أصبحت (Deep learning)
الصور المرفقة توضع كيفية تقليب و قص الصور لزيادة البيانات حسب (Data Augmentation)
مقالة مساعدة :
https://nanonets.com/blog/data-augmentation-how-to-use-deep-learning-when-you-have-limited-data-part-2/
-
إجابة Wael Aljamal سؤال في سؤال نظري: متى لا يصلح عمل cross validation مع البيانات؟ كانت الإجابة المقبولة
مرحبا,
إن تقنية Cross Validation لها العديد من طرق التطبيق (اي انواع جزئية منها)
1- Leave-one-out cross validation. 2- k-fold cross validation. 3- hold-out cross validation. وهذه التقنيات جميعها يتبع استخدامها لعدد ال Data Sets لديك حيث يتم الاختيار بينها لتعطى أداء جيد بالنسبة لكلفة العمليات الحسابية و زمن التنفيذ.
Let m be the number of samples in your dataset.// m بفرض لديك عدد من مجموعات البيانات عددهم // الحالة الأولى If m≤20 use Leave-one-out cross validation. // الحالة الثانية If 20<m≤100 use k-fold cross validation with a relatively large k≤m keeping in mind computational cost. // مع الإبقاء بالذهن كلفة العمليات الحسابية // الحالة الثالثة If 100<m≤1,000,000 use regular k-fold cross validation (k=5). Or, if there is not enough computational power and m>10,000, use hold-out cross validation. // الحالة الرابعة If m≥1,000,000 use hold-out cross validation, but if computational power is available you can use k-fold cross validation (k=5) if you want to squeeze that extra performance out of your model. مرفقات الملف : صور رسومية توضيحية لعمل Cross Validation.
Cross Validation: هي عملية تجزئة البيانات التي سنعتمد عليها لإجراء تدريب و اختبار للنموذج الذي سنعتمده لتصنيف البيانات.
تقوم بالاعتماد على عدد من البيانات الجزئية و التبديل بينها في طوري التدريب و الاختبار و لها عدة أنواع كما ذكرت سابقا.
لايوجد إجابة دقيقة لسؤالك وهو يحتاج لمختصين للإجابة عليه (مختصي التنقيب عن البيانات) و (خبراء نمذجة و تحليل البيانات)
و عملية اختيار نمط التدريب و الإختبار تتبع للحالة الخاصة التي لديك.
مصادر قرأتها يمكنك الاستفادة منها:
1- https://www.researchgate.net/post/What_is_the_purpose_of_performing_cross-validation
2- https://stats.stackexchange.com/questions/104713/hold-out-validation-vs-cross-validation/104750#104750
3- https://stats.stackexchange.com/questions/104713/hold-out-validation-vs-cross-validation
4- https://stats.stackexchange.com/questions/320154/when-not-to-use-cross-validation?fbclid=IwAR3qJQ8GDaRYka9g90MTSk0XCS5OoNQ8yXlLEaHEBlGTWAMrkhMNnXK81kI
-
إجابة Wael Aljamal سؤال في ماهي دالة اكسل المناسبة كانت الإجابة المقبولة
مرحبا,
لم افهم المشكلة بالضبط (تاريخ استحقاق الدفع) ألا يجب أن يحوي الجدول على حقول إضافية لتبين فيما إذا تم الدفع في ذلك الشهر أو لم يتم الدفع؟.
لدي حل حسب مافهمته من المشكلة.
سنقوم بتقسيم المشكلة الى اجزاء.
ترقيم الحقول : عمود الاسم A وعمود قيمة الاجار B وعمود تاريخ بداية العقد C
وعمود تاريخ نهاية العقد D و عدد أشهر الأجار E قيمة الأجار المستحق F
1- حساب فترة الأجار: هو ناتج طرح الحقلين عمود تاريخ نهاية العقد وعمود تاريخ بداية العقد و سوف نستتدم الدالة DATEDIFF
لحساب عدد الشهور بين التاريخين اي مدة العقد نكتب ("DATEDIF(C1,D1,"M= حيث يمثل C1 تاريخ بداية العقد و D1 يمثل تاريخ نهاية العقد و "M" نطلب من الدالة حساب عدد الأشهر (Months) نضع هذه الدالة في اول خلية للعمود E ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود.
2- لحساب قيمة الأجار المستحق بالعمود F وهو يمثل ناتج ضرب قيمة الأجار الشهرية بعدد أشهر العقد,
أي ناتج جداء الحقلين B*E نقوم بوضع B1*E1 في أول خلية للعمود F ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود.
النتيجة : خلايا العمود F ستحوي على القيمة الإجمالية لقيمة أجار العقد.
في حال وجود أي ملاحظة الرجاء التعليق مرة أخرى و كتابة التفاصيل الإضافية.
شرح آلية عمل الدالة DATEDIF من موقع مايكروسوفت
في حال وجود عمود يحوي مبلغ السلفة المدفوعة من قيمة الأجار لنفرض اسمه G يمكننا عمل تغيير بسيط في الدالة و تبديل تاريخ نهاية العقد لتاريخ اليوم (تاريخ بداية الشهر الجديد) بوضع =TODAY() مكان الخلية D1 في الدالة DATEDIF ثم
=> نقارن القيمة المدفوعة مع الحقل F (سيحوي عندها القيمة المستحقة من بداية تاريخ العقد حتى تاريخ اليوم أي بداية الشهر الجديد) ننتقل لعمود جديد ليكن H و نضع فيه (0,MAX(G1-F1= في الخلية H1 ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود حينها سيكون مقابل كل اسم من الجدول القيمة المستحدقة للدفع في الخلية H.
-
إجابة Wael Aljamal سؤال في ابي افكار حلو للتصميم لغة xml للتطبيق الاندرويد كانت الإجابة المقبولة
لقد بحثت لك عن تصميم جميل في أحد المواقع الرابط .
يحوي على تصميم واجهة لتسجيل الدخول تحوي عدة حقول مع صورة خلفية وألوان جميلة (الصورة ضمن المرفقات*).
(يحوي الرابط على الكود المصدري الذي يجب عليك تضمينه في مشروعك و إضافة جميع الملفات و الأوامر البرمجية
.. dependencies, activity, colors , styles).
لدينا اول قسم من التطبيق و هو ال main activity و الممثلة بملف ال xml التالي activity_main.xml:
سأضع الشروحات في تعليقات بجبانب الكود المرفق ..
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" // جعل العرض يطابق الأب اي عرض الشاشة android:layout_height="match_parent" // جعل الطول يطابق الأب اي طول الشاشة android:fitsSystemWindows="true" tools:context="com.appsnipp.formdesigns.MainActivity">MainActivity الربط مع ال <android.support.design.widget.AppBarLayout // تصميم شريط العنوان أعلى شاشة التطبيق android:id="@+id/app_bar" // المعرف الخاص بشريط العنوان android:layout_width="match_parent" // جعل العرض يطابق الأب android:layout_height="@dimen/form_app_bar_height" // الارتفاع هو قيمة من ملف اخر android:fitsSystemWindows="true" android:theme="@style/AppTheme.AppBarOverlay" // الثيمة التي يتبعها التصميم android:background="@drawable/centre_background"> // drawable صورة الخلفية من ملف <android.support.design.widget.CollapsingToolbarLayout // شريط عنوان قابل لتغيير الحجم android:id="@+id/toolbar_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary"// colors.xml جلب قيمة اللون من ملف app:layout_scrollFlags="scroll|exitUntilCollapsed"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/centre_background"> <ImageView // المكان الذي سنعرض فيه الخلفية _صورةالشاب و الفتاة android:layout_width="wrap_content" // كل القيم التالية لضبط الحجم و المحاذاة android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" android:layout_marginTop="10dp" // الهوامش من الاعلى اي فراغ عن الحافة العليا android:adjustViewBounds="true" // مراعاة حروف الشاشة المدورة android:cropToPadding="true" // قص الحواف الزائدة android:src="@drawable/enquiry_bk" /> // مصدر ملف الصورة </RelativeLayout> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" // actionBarSize جلب القيمة من المتحول app:layout_collapseMode="pin" app:popupTheme="@style/AppTheme.PopupOverlay" /> // تضمين تصميم </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_main" /> // تضمين التصميم الخاص بفورم التسجيل </android.support.design.widget.CoordinatorLayout> ذلك التصميم هو حاوية تحوي على الفورم الخاص بالتسجيل و الذي يمثل ب content_main عن طريق التعليمة في اخر الملف السابق <include layout="@layout/content_main" />
<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/scrollFeed" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.appsnipp.formdesigns.MainActivity" tools:showIn="@layout/activity_main" android:background="@drawable/centre_background" android:focusableInTouchMode="true"> <android.support.v7.widget.CardView // كارت يحوي على العناصر الأخرى android:id="@+id/personalDetailsCard" // المعرف الخاص بالكارت style="@style/centreLocatorCardDesign" // التصميم android:layout_marginTop="10dp" // هوامش من الأعلى app:cardCornerRadius="16dp" app:cardElevation="10dp"> <LinearLayout // تصميم يحوي على عدة عناصر بتنسيق خطي متتالي android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" // محاذاة للوسط android:focusableInTouchMode="false" android:orientation="vertical" // شعاع التوجيه عمودي ليعرض الأبناء فوق بعضهم البعض android:padding="20dp"> // هوامش داخيلية لتباعد الأبناء عن الحافة الخارجية للكارت <android.support.design.widget.TextInputLayout // العنصر الذي نكتب به الاسم اي حقل الادخال android:id="@+id/txtInputName" // المعرف الخاص بحقل ادخال الاسم android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/txtName" // المعرف الخاص بحقل ادخال الاسم style="@style/modifiedEditText" // تصميم مسبق android:hint="@string/name" // نص افتراضي مساعد android:singleLine="true" /> </android.support.design.widget.TextInputLayout> // الحقل التالي مثل السابق لكن خاص بادخال حقل الايميل (البريد الالكتروني) <android.support.design.widget.TextInputLayout android:id="@+id/txtInputEmail" // المعرف الخاص بحقل ادخال البريد android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/txtEmail" // المعرف الخاص بحقل ادخال الاسم style="@style/modifiedEditText" android:ems="10" android:hint="@string/email" // نص افتراضي مساعد android:inputType="textEmailAddress" /> </android.support.design.widget.TextInputLayout> // حقل الادخال المخصص لرقم الجوال <android.support.design.widget.TextInputLayout android:id="@+id/txtInputMob" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/txtMob" style="@style/modifiedEditText" android:hint="@string/mobno" android:inputType="phone" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/txtInputReg" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/txtReg" style="@style/modifiedEditText" android:hint="@string/reg_no" /> </android.support.design.widget.TextInputLayout> // ادخال نص كتوصيف للدعم الفني <android.support.design.widget.TextInputLayout android:id="@+id/txtInputFeedback" android:layout_width="match_parent" android:layout_height="wrap_content"> <EditText android:id="@+id/txtFeed" style="@style/modifiedEditText" android:hint="@string/message" android:inputType="textMultiLine" android:minLines="2" /> </android.support.design.widget.TextInputLayout> // الزر المسئول عن ارسال الفورمة <Button android:id="@+id/btnSend" // المعرف الخاص بحقل ادخال الاسم android:layout_width="100dp" android:layout_height="wrap_content" android:layout_gravity="right" android:background="@drawable/centre_button" android:text="@string/send" // النص الذي يظهر على الزر android:textColor="@color/whiteTextColor" /> </LinearLayout> </android.support.v7.widget.CardView> </android.support.v4.widget.NestedScrollView>
XML تقويم بتوصيف البنية للتصميم على شكل بنية شجرية اي كل عنصر يمكن أن يحتوي على عناصر أخرى
و يمكن أن يرث (يكسب صفات) الأب مثل خاصية الطول و العرض و التصميم و الألوان ..
الملف المسؤول عن قيم الألوان التي نستخدمها بالتطبيق
<!--colors for modern ui--> <color name="whiteTextColor">#fff</color> <color name="primaryTextColor">#00a5ff</color> مثال لجلب قيمة لونية محددة : color/whiteTextColor@
أرفقت بنية لمشروع أندرويد يحوي على الهرمية و مواضع وضع الملفات ..
قم بتجربة هذا التصميم و أخبرنا بالنتائج و سوف نجيب على أي أسئلة إضافية.
تحياتي
يوجد مواقع توفر تصاميم جميلة و مميزة يمكنك الاستغفادة منها:
تصاميم أندرويد
عمل مؤثرات بصرية جميلة
و أنصحك بالاطلاع على مكتبة التصميمات الشهيرة Material design الخاصة ب غوغل لتصميم الأندرويد
Material Design
-
إجابة Wael Aljamal سؤال في ظهور عدة أخطاء أثناء تنصيب برنامج sql كانت الإجابة المقبولة
يبدو أن برنامج التنصيب يتطلب إنشاء ملفات ضمن مسارات خاصة بنظام التشغيل, وهذا يمكن أن يسبب مشاكل و خطورة أمنية (تنصيب فايرس بين ملفات النظام او اي برامج خبيثة قد تسبب مشاكل).
عملية تنصيب سيرفر SQL تتطلب كتابة ملفات في مسارات نظام التشغيل.
لحل المشكلة و قبل بداية التنصيب عليك إعطاء صلاحية الأدمن (windows administrator) لبرنامج التنصيب.
حدد ملف التنصيب => ثم خيارات (الزر الأيمن للفأرة) => الخيار الثاني (تشغيل بصلاحيات الأدمن ) (Run as Administrator)
وتابع خطوات التنصيب بالشكل الافتراضي ..
-
إجابة Wael Aljamal سؤال في هل يمكن أن تكون مبرمج تطبيقات أندرويد محترف وأيضًا مبرمج مواقع ويب وبرامج سطح المكتب في نفس الوقت كانت الإجابة المقبولة
لقد تطور التكنولوجيا في السنوات الخمس الاخيرة بشكل كبير و خاصة تكنولوجيا أطر العمل البرمجية (Framework) و تطور عنها منصات برمجة تعمل على مختلف أنظمة التشغيل(Cross platforms) و برماز مصدري وحيد (تكتبه لمرة واحدة) ويعمل في بيئات مختلفة.
سأسرد لك عدة منصات عمل عليك تعلم واحدة منها و ستسمح لك باطلاق مشروعك بوقت اقصر و كلفة اقل (بسبب بناء تطبيق وحيد و تصديره لعدة منصات تشغيل بطريقة سهلة و فعالة ) و أداء يقارب التطبيقات التي تعمل بلغات البرمجة المبنية مخصصا لتلك النظم (امثلة نظام تشغيل: android, iOS, windows, Linux, …)
لغات البرمجة التي عليك تعلمها حسب كل منصة(نظام التشغيل) و بيئة عمل(محرر النصوص) و إطار عمل(لغة البرمجة و المكتبات):
programming language | Framework 1- java or kotlin => android native apps 2- Dart +flutter => cross platform app (android + ios + web) 3- javascripts + React Native => cross platform app (android + ios + web) 4- javascripts + ionic => cross platform app (android + ios + web) 5- c# + Xamarin => (Android, iOS, and Windows apps + .. ) لايوجد قيود على محرر النصوص انما ننصح باستخدام VS Code لانه خفيف على الحاسوب (قليل استخدام الموارد مثل الذاكرة)
ثم ثبت عليه الاضافات Extensions الموافقة لكل تقنية برمجة تود تعلمها و التطبيق عليها.
-
إجابة Wael Aljamal سؤال في حل مشكلة تنصيب ملفات رياكات كانت الإجابة المقبولة
هل تستطيع اضافة محتوى الملف packages.json؟
-
إجابة Wael Aljamal سؤال في ما هي أفضل منصة لإنشاء متجر الكتروني eCommerce كانت الإجابة المقبولة
يمكنك مراجعة هذا الدليل المنشور على موقع مستقل دليلك لاختيار أفضل منصات التجارة الإلكترونية
يوجد الكثير من المعايير لاتباعها في اختيار المنصة المناسبة حسب المشروع, يروي المقال ايجابيات و سلبيات مجموعة من المنصات الخاصة بالتجارة الالكترونية.
في حال وجود أسئلة اضافية تفضل بسؤالها.
-
إجابة Wael Aljamal سؤال في مشكله في تشغيل المحاكي الحل ارجوكم كانت الإجابة المقبولة
حذف المحاكي و اعادة تنصيب اللعة من جديد حصل عندي نفس المشاكل
-
إجابة Wael Aljamal سؤال في برنامج الاندرويد استيديو ظهو الصفحه سوداء كانت الإجابة المقبولة
هل يوجد صور توضيحية و مزيد من التفاصيل؟
-
إجابة Wael Aljamal سؤال في لا أستطيع إخراج العمل في اندرويد ستيديو كانت الإجابة المقبولة
هل يعرض التطبيق اي رسائل خطأ في لوحة ال Terminal بالاسفل؟
يبدو انه يوجد نقص في بعض المكتبات ولكن يجب تحديد نوع الخطأ بدقة
الرجاء اضافة المزيد من المعلومات
-
إجابة Wael Aljamal سؤال في ما هي اللغات التي يجب ان اتعلمها للتطبيقات اندرويد ؟ وهل يكفي برنامج فيجوال استديو؟ كانت الإجابة المقبولة
لغات البرمجة التي عليك تعلمها حسب كل منصة(نظام التشغيل) و بيئة عمل(محرر النصوص) و إطار عمل(لغة البرمجة و المكتبات):
programming language | Framework
1- java or kotlin => android native apps
2- Dart +flutter => cross platform app (android + ios + web)
3- javascripts + React Native => cross platform app (android + ios + web)
4- javascripts + ionic => cross platform app (android + ios + web)
5- c# + Xamarin => (Android, iOS, and Windows apps + .. )
لايوجد قيود على محرر النصوص انما ننصح باستخدام VS Code لانه خفيف على الحاسوب (قليل استخدام الموارد مثل الذاكرة)
ثم ثبت عليه الاضافات Extentions الموافقة لكل تقنية برمجة تود تعلمها و التطبيق عليها.
-
إجابة Wael Aljamal سؤال في افكار برمجية للمبتدئيين بلغة جافا كانت الإجابة المقبولة
للتدريب على حل المشاكل البرمجية يوجد موقع يحوي على مسائل متنوعة (رياضية, تعامل مع النصوص, بنية المعطيات, و الخوارزميات) codeforces سجل حسابك عليه و عند فتح مسألة برمجية يمكنك تقديم الحل بأكثر من لغة برمجة و طبعا تستطيع اخيار JAVA.
-
إجابة Wael Aljamal سؤال في استخدام الإذن في أندرويد ستديو كانت الإجابة المقبولة
الإذن الذي تطلبه (التعديل في إعدادات الجهاز)
android.permission.WRITE_SETTINGS هو حاليا في مجموعة signature|appop|pre23|preinstalled
و كمثال على هذا
android.permission.CHANGE_NETWORK_STATE وَ
android.permission.SYSTEM_ALERT_WINDOW هذا يعني أنك تحصل عليه على Android SDK 22ِِ وما دون. في الإصدار الأحدث ، يجب أن تكون مشغل تطبيق app operator.
حاول تغيير Android SDK 22ِِ
و جرب الكود المرفق لإعطاء الصلاحية أثناء تشغيل التطبيق (قم بتضمينه في ال Activity ) سيتم منح الصلاحية للتطبيق خلال تنفيذ البرنامج عن طريق المستخدم.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { boolean retVal = true; retVal = Settings.System.canWrite(this); if (retVal == false) { if (!Settings.System.canWrite(getApplicationContext())) { Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName())); Toast.makeText(getApplicationContext(), "Please, allow system settings for automatic logout ", Toast.LENGTH_LONG).show(); startActivityForResult(intent, 200); } }else { Toast.makeText(getApplicationContext(), "You are not allowed to wright ", Toast.LENGTH_LONG).show(); } } روابط إضافية
ACTION_MANAGE_WRITE_SETTINGS
canWrite android.content.Context