-
المساهمات
4306 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
11
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
أجوبة بواسطة عبدالباسط ابراهيم
-
-
إذا كنت تقصد ال tooltip كما وضح وائل في التعليق السابق فبالطبع يمكنك عمل ذلك من خلال الخاصية title
ولكن لن تتمكن من تعديل التنسيق حيث يبقى لل title نفس الشكل ولن تستطيع التعديل عليه حيث يبدو من الصورة أنك تحتاج شكل معين يأخذ بعض التنسيقات وهناك العديد من الطرق
- عن طريق ال javascript
- عن طريق ال css فقط بدون الحاجة لل javascript
- أو يمكنك البحث عن الأشياء الجاهزة فقط أبحث عن ال tooltip
تطبيق ذلك عن طريق ال css سيكون كالتالي
<div data-tooltip="hello"> <!-- لم نستخدم ال title --> something here </div>
ال css
[data-tooltip]:before { position : absolute; content : attr(data-tooltip); opacity : 0; /* يمكنك تنسيقه كما تريد عن طريق إضافة التنسيقات هنا */ } [data-tooltip]:hover:before { /*title الجزء المسؤل عن ظهور ال */ opacity : 1; }
- 2
-
يمكننا إنشاء كائن بلغة python عن طريق التالي قم بقراءة الشرح المرفق
class Person: #لإنشائه ويمكنك ملاحظة أنن ا نجعل أول حرف كبير class نستخدم كلمة def __init__(self, first_name, last_name): #self تعود على الكلاس self.first_name = first_name#من خصائص الكائن first_name هنا تصبح الخاصية self.last_name = last_name #من خصائص الكائن first_name هنا تصبح الخاصية def full_name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.first_name} {self.last_name}' def name(self):#من دوال الكائن first_name هنا تصبح الخاصية return f'{self.last_name}, {self.first_name}'
-
كما أخبرك محمد في التعليق السابق أن المشكلة في استدعاء المكتبة ويمكنك حلها بواسطة webpack.ProvidePlugin كما وضح
ولكن أرى أنك تستخدم ال expose-loader لذلك الحل بالنسبة لك فقط جرب استدعاء المكتبة كالتالي
import $ from "jquery"; //بدلاً من import 'jquery/dist/jquery.min';
-
في حالة أن ال keys أكثر من ال values يمكنك استخدام ال itertools.zip_longest حتى يمكنك استخدام ال fillvalue لتحديد قيمة لل values المتبقية كالتالي
from itertools import zip_longest x =[1, 2, 3, 4, 5, 6, 7] y =[8, 9, 10] z = list(zip_longest(x, y, fillvalue ='_' )) print(z) #output #[(1, 8), (2, 9), (3, 10), (4, '-'), (5, '-'), (6, '-'), (7, '-' )]
- 1
-
يمكنك أيضاً استخدام ال multiprocessing.Process لعمل المطلوب كالتالي
import multiprocessing import time # bar def bar(): for i in range(100): print "Tick" time.sleep(1) if __name__ == '__main__': # process نقوم بتنفيذ الدالة ك p = multiprocessing.Process(target=bar) p.start() # الإنتظار ل 10 ثواني p.join(10) # مازالت تعمل process التحقق إذا كانت ال if p.is_alive(): print "running... let's kill it..." # إيقاف الدالة p.terminate() #أيضاً kill يمكن إيقاف الدالةعن طريق # p.kill() p.join()
-
بالطبع يمكنك تحديد الإصدار من خلال الأمر --python أو -p وذلك في حالة أنك غالباً تقوم بالتبديل بين الإصدارات ولكن يمكنك تثبيت الإصدار المستخدم من خلال ال virtualenv يمكنك عمل ذلك من خلال الملف .bashrc قم بإضافة السطر التالي له
export VIRTUALENV_PYTHON=/مسار/الإصدار/الذي/تريده
- 1
-
بالإضافة للمميزات في التعليق السابق يعتبر ASP.NET CORE وهو النسخة الحديثة من ال ASP.NET وتعتبر هذه النسخة open source مما يساهم في تطورها بشكل سريع وأفضل وبالنسبة لسؤالك هل هذه التقنية مدفوعة ؟ فتعتبر هذه التقنية مجانية تماماً ولكن مثلاً لو قمت باستخدام بيئة التطوير visual studio النسخة الأعلى أو التجارية ستجد أنه غير مجاني ولكن هناك بديل جيد له visual studio code لذلك يمكنك تطوير التطبيقات بهذه التقنية بشكل مجاني
-
أيضاً بالإضافة لاستخدام الدالة .decode بهذا الشكل
.decode("utf-8")
في الإصدار الثالث من python ال encoding الإفتراضي أصبح "utf-8" لذلك يمكنك استخدام الدالة بالشكل التالي في الإصدار الثالث
print(b"Ahmed".decode())
- 1
-
من خلال ال html يمكن إضافتها من خلال الوسم link ويجب وضعه في ال head كالتالي
<head > <link rel="icon" type="image/png" href="/favicon.png"/> </head>
- 1
-
يتم إضافة object إلى list عن طريق الدالة append كالتالي
my_list = [2, 3, 1, -4, -1, -4] my_list.append(8) print(my_list) #list لطباعة محتويات ال
وسيكون الناتج
[2, 3, 1, -4, -1, -4, 8]
ويمكنك أيضاً استخدام الدوال extend أو insert
- 1
-
يمكنك أن تجد العديد من الملخصات للغة c أو العديد من اللغات الأخرى عن طريق البحث عن اللغة التي تريدها ثم إضافة sheet cheat وسيظهر معك العديد من الملخصات المفيدة للغة أو أي شيء آخر
ويمكنك أن تجد العديد من المقالات الرائعة من خلال البحث في الموقع من مربع البحث في الأعلى
- 1
-
بالإضافة للإستخدام في التعليق السابق يوجد أيضاً عدة استخدامات منها
-
تنسيق الأرقام الكبيرة بشكل يسهل قرائته كالتالي
num = 1_000_000
وهو نفس الرقم بدون الفاصلة
num = 1000000
ولكن لتسهيل قرائته
-
يقوم المترجم بحفظ آخر قيمة في المتغير " _ " كالتالي
>>> 10 10 >>> _ 10 >>> _ * 3 30 >>> _ * 20 600
-
تستخدم لتدل على أن الالخاصية أو الدالة private عندما تسبق اسم الدالة أو الخاصية ولكن هذا convention أو من التقاليد المتبعة بين المبرمجين وليس خاصية في اللغة
class _Base: # private class _hidden_factor = 2 # private variable
- 1
-
تنسيق الأرقام الكبيرة بشكل يسهل قرائته كالتالي
-
توجد عدة طرق لإيقاف ال output buffering منها يمكنك استخدام flush للدالة print كمثال
import time for buffer in range(20): print(buffer, end=" ", flush=True) time.sleep(2)
أو يمكنك استخدام ()sys.stdout.flush وتوجد عدة طرق أخرى قم بالبحث عنها لإختيار الطريقة الأفضل لك
- 1
-
يمكنك استخدام ال regular expression التالي
'(\$[0-9]+(.[0-9]+)?)'
وسيقوم باستخراج الأعداد التي تتبعها علامة ال $ ليصبح الكود
import re text = input() result = [x[0] for x in re.findall('(\$[0-9]+(\.[0-9]+)?)', text)]
- 1
-
تقوم محددات الوصول بتحديد إمكانية الوصول للدوال أو خصائص الكائن والفرق بين المحددات كالتالي
-
private يمكن الوصول لخصائص الكائن من داخل الكائن نفسه فقط كمثال
class A{ private int data=40; private void msg(){System.out.println("Hello java");} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//يتم توليد خطأ obj.msg();//يتم توليد خطأ } }
-
Protected يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها ولكن من خلال الكائنات التي ترث الكائن الأب
-
Public يمكن الوصول لخصائص الكائن سواء داخل ال package أو خارجها من أي مكان في البرنامج
-
Default وهي القيمة الإفتراضية في حالة لم تضع محدد وصول يمكن الوصول لخصائص الكائن داخل ال package فقط من أي مكان في البرنامج
- 1
-
private يمكن الوصول لخصائص الكائن من داخل الكائن نفسه فقط كمثال
-
قم بتجربة تمرير ال data كالتالي asyncData.movies حتى تحصل على المصفوفة لذلك سيكون التعديل كالتالي
<FlatList data={asyncData.movies}// لاحظ هذا التعديل // data={data} keyExtractor={item => item.id.toString()} renderItem={({item}) => ( <Text> {item.title}, {item.price} </Text> )} />
دائماً قم ب console.log للبيانات للتأكد من الوصول للبيانات التي تريدها
-
صحيح أن التابع move يقوم بنقل الملف لمكان آخر ولكن يمكن إعادة تسمية الملف من خلاله كما في توثيق laravel من هنا ولكن عند التسمية يجب أن يكون اسم المجلد متطابق في الحالتين كالتالي
Storage::move('foldername/oldfile-name.jpg', 'foldername/newfile-name.jpg'); //foldername يجب أن يكون الأسم متطابق للمجلد
-
هل تقصد أكادمية حسوب ؟
إذا كان كذلك فإنه لا توجد حالياً دورات لتعليم للغة البرمجة ++c ولكن بدلاً عند ذلك توجد العديد من المقالات المتوفرة في في أكاديمية حسوب عن ال ++c يمكنك أن تجدها في هذا الرابط
-
بتاريخ 16 دقائق مضت قال Ahmed Sawy:
اعلم هذا الامر ولكنه سوف يأتينى ب ملفات الريبو كاملة .. انا اريد فولدر git. فقط
يمكنك بدلاً من عمل clone تنفيذ الأمر pull كالتالي
git init git remote add origin <repo_address> git pull origin main
أو يمكنك عمل clone في مجلد آخر ثم نقل مجلد ال .git فقط للمجلد الأساسي لتجنب خسارة التغييرات التي لم تقم بعمل push لها
-
سأحاول شرح الخطوات بدلاً من حل السؤال مباشرة وبعد ذلك يمكنك كتابة البرنامج
أولاً نحتاج لإنشاء الكلاس student ويقوم بوراثة الكلاس person مع إضافة خصائص أخرى مثل gpa كالتالي
class Student(Person): def __init__(self, gpa):
عند هذه الخطوة لن تتم الوراثة حيث يحدث تخطي لخصائص الكلاس الأب لذلك نستخدم ال construct الخاصة بالكلاس الأب كالتالي
class Student(Person): def __init__(self, name, age, year): super().__init__(name, age) self.graduationyear = year
ويمكن إضافة أي دالة ببساطة مثالاً
def welcome(self): print("Welcome", self.name, self.age, "to the class of", self.graduationyear)
قم بكتابة البرنامج الخاص بك بالإستعانة بهذه الخطوات
- 1
-
هل تقصد الجداول التي تحتوي على شرح لل tags ؟
يمكنك أن تجد ذلك في موسوعة حسوب وبالإضافة للمزيد من المعلومات حيث يوجد توثيق لل html كامل مع العديد من اللغات الأخرى من خلال هذا الرابط
أو يمكنك البحث عن المقال الذي تقصده من خلال مربع البحث في الموقع أعلى يسار الموقع
- 1
-
بدلاً من استخدام ال input value مباشرة يمكنك التعديل على ال value قبل تنفيذ ال ajax لذلك سنحتاج للجافاسكربت عن طريق الأمر التالي
var text="this is my text."; var lowercase=text.toLowerCase(); //لاحظ هذه الدالة
لذلك لتنفيذ المطلوب سنحتاج لعمل دالة تقوم بالسابق عند حدث معين مثل input كالتالي
<input oninput="this.value=this.value.toLowerCase()"/>
أو يمكنك من خلال الجافاسكربت
element.addEventListener('input',function(){this.value=this.value.toLowerCase()});
-
بتاريخ 1 دقيقة مضت قال Ahmed Khaled18:
السلام عليكم اخي الحمدلله انا خلصت الأساس كله واتمت دورة تطوير الواجهات وحاليا انا ابتديت علي مستقل
ولكن أحيانا العملاء يريدون مصمم واجهات ويكون أيضا يكون لديه الصور والمحتوي
يعني مثلا يقول انا عايز عمل موقع عن أدارة الاعمال من غير مايعطيني تفاصيل او صور عن المشروع
فالمحتوي والصور دايما بتكون موجودة في القوالب عشان كده عايز اتعلم في الwordpress ولكن ينقصني الPHP للأسف
وعليكم السلام
بما أنك مطور واجهات أمامية فليس مطلوب منك التعامل مع جزء ال backend أما بالنسبة للعمل على مستقل فالطبع يكون بالإتفاق في حالة إن كان يريد wordpress أو برمجة خاصة وبالنسبة للمحتوى والصور فبالأساس يجب أن يوفره لك العميل وليس بالضروري أن يكون في قوالب wordpress فقط لذلك يكون كل شئ حسب الإتفاق
- 1
-
للمنافسة على المشاريع في مواقع العمل الحر يجب أن تضع عدة أمور في الحسبان
- ال profile الخاص بما يحتوي من الأعمال السابقة
- طريقة تقديم العرض على أي مشروع
- طريقة تعريف نفسك في ال profile
في البداية يكون الأمر صعب ولكن متى قمت بعمل عدة مشاريع ربما يوظفك العديد من العملاء بدون تقديم أي عروض
في هذا السؤال ستجد عدة إجابات ستفيدك في ال 3 نقاط التي وضحتها بالأعلى للمساعدة في العمل الحر
- 1
مواصفات جهاز كمبيوتر للجرافيك والبرامج الثقيلة
في أسئلة العمل الحر
نشر
في ميزانية ال 5000 جنيه مصري لا يمكن تجميع جهاز بكارت شاشة منفصل وذلك في حالة أن القطع جديدة ولكن البديل عن ذلك يمكن تجميع جهاز ب APU وهو معالج بكارت شاشة مدمج ويعتبر في نفس هذه الفئة (Ryzen 3 3200g أفضل إختيار متوفر) ولكن الأداء جيد جداً لهذه الفئة (يفضل إضافة قطعتين من الرام بدلاً من واحدة لأداء أفضل) ويمكنك تجميع باقي القطع بناء على هذا ال APU وستكون في حدود ال 5000
بالنسبة لأداء هذه التجميعة فيمكنها تشغيل معظم البرامج والألعاب الموجودة بدون مشكلة ولن تواجه مشكلة سواء في التصميم أو البرمجة