لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 08/25/24 في كل الموقع
-
السلام عليكم اول شيء انا ادرس بايثون وكنت اريد ادخل في دوره الذكاء الأصطناعي شفت في اليوتيوب ان الذكاء الأصطناعي افضل من باثيون من ناحيه التطوير والفهم والخورزميات والتطور الفهمي وتطور الروبوتات وصراحه انا حلمي في الذكاء الأصطناعي ,فهل تنصحوني ادخل في الذكاء الأصطناعي وانا سوف اجمع مصاري بعدين ادخل بينما ذالك ما هي اهم شيء في تعليم الذكاء الأصطناعي وهل اذا كملت في باثيون سوف يفيد في تعلم الذكاء الأصطناعي انا اعرف في باثيون الى مدير الحزم اعرف في الرياضيات اعرف مفهوم الخروزميات عمري 15 اذا عندكم نصيحه وشكرا2 نقاط
-
السلام عليكم هي اي هي maintainability index المدعوم من مايكروسفت ؟2 نقاط
-
could you help me find a job as data analysis I studied this field before the certification, since I hear that you help in this type of services I know that you will say that I am still young but it nice to have a side job that give me some money for my needs and have more practical experience1 نقطة
-
السلام عليكم عندي صفحة نموذج فيها 4 انواع اسئلة ما اعرف كيف اعرفهم 1 - (قائمة منسدله) كيف اعرفها 2- اختيارات نعم او لا 3- رفع مرفق 4- هل تعريفي للرقم الهاتف صحيح ؟ مرفق لكم ملف قاعدة البيانات + صوره للنموذج <?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('articales', function (Blueprint $table) { $table->id(); $table->string('firstname'); $table->string('lastname'); $table->string('email'); $table->string('areacode','phone'); $table->string('category'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('articales'); } };1 نقطة
-
السلام عليكم. أرجو توضيح سبب طباعة النتيجة في الدالتين التالييتين 1. const sayHello = () => { return "Hello" } console.log(sayHello.prototype) /* النتيجة undefined */ 2. function sayHello() { return "Hello" } console.log(sayHello.prototype) /** النتيجة: constructor : ƒ sayHello() [[Prototype]] : Object */ أو بطرقة أخرى لماذا تمت طباعة undefined في الدالة السهمية شكرا1 نقطة
-
ايه اسهل طريقة اخد بيها لوكيشن اليوزرز واسجله عندي بعد ما اخد الاذن منهم طبعا1 نقطة
-
your video card drivers seem not to support the required openGL 3.3 veresion if possible, consider updating your video card drivers. if you have recently updated your video card drivers, try rebooting1 نقطة
-
# ========================================================= # =========== Python OOP - Bank Account Project =========== # ========================================================= # Custom exception for handling balance-related issues. class BalanceException(Exception): pass # Define the BankAccount class. class BankAccount: # Constant Values min_balance = 200 min_transaction = 20 max_transaction = 100000 def __init__(self, acc_name, initial_amount): # Validate account name if not isinstance(acc_name, str) or len(acc_name.strip()) == 0: raise ValueError("Account name must be a non-empty string.") # Validate initial amount if not isinstance(initial_amount, (int, float)) or initial_amount < self.min_balance: raise ValueError("Initial amount must be a number and at least $200.") # Initialize account with a name and initial balance. self.name = acc_name self.balance = initial_amount print( f"\nAccount Created Successfully ✔💸\nAccount Name = {self.name} ==> Account Balance = ${self.balance:.2f}") # String representation of the account (User Friendly) def __str__(self): return f"\n[Account Name = {self.name} , Account Balance = ${self.balance:.2f}]" # Official representation of the account. (Developers) def __repr__(self): return f"\nBank Account (Account Name = {self.name} , Account Balance = ${self.balance:.2f} )" # Property to get the account balance. @property def acc_balance(self): return f"'{self.name}'s Account Balance = ${self.balance:.2f}" # Setter for account balance with validation. @acc_balance.setter def acc_balance(self, value): if not isinstance(value, (int, float)): raise ValueError("Balance amount must be a number.") self.balance = value # Private method to validate or check transaction amounts. def _validate_transaction(self, amount): if not isinstance(amount, (int, float)): raise TypeError(f"Only numbers allowed! .. you can't enter a {type(amount).__name__}.") if amount > 100000: raise BalanceException(f"{self.name}, the maximum deposit or withdrawal amount is ${self.max_transaction}.") if self.balance < amount: raise BalanceException(f"Sorry, {self.name} .. You only have ${self.balance:.2f} in your balance.") if amount < 20: raise BalanceException(f"{self.name}, the minimum deposit or withdrawal amount is ${self.min_transaction}.") # Method to handle deposits. def deposit(self, amount): try: self._validate_transaction(amount) self.balance += amount print("\nDeposit Completed Successfully ✅") print(self.acc_balance) except (BalanceException, ValueError, TypeError) as error: print(f"\nDeposit Interrupted ❌ : {error}") except Exception as error: print(f"\nAn unexpected error occurred ! : {error}") # Method to handle withdrawals. def withdraw(self, amount): try: self._validate_transaction(amount) self.balance -= amount print("\nWithdraw Completed Successfully ✅") print(self.acc_balance) except (BalanceException, ValueError, TypeError) as error: print(f"\nWithdraw Interrupted ❌ : {error}") except Exception as error: print(f"\nAn unexpected error occurred ! : {error}") # Method to handle transfers between accounts. def transfer(self, amount, account): try: print("========== Beginning Transfer... 🚀 ==========") self._validate_transaction(amount) self.withdraw(amount) # Withdraw from account (a) account.deposit(amount) # Deposit withdraw into account (b) except (BalanceException, ValueError, TypeError) as error: print(f"\nTransfer Interrupted ❌ : {error}") except Exception as error: print(f"\nAn unexpected error occurred ! : {error}") else: # If no exceptions happened. print(f"\nTransfer Completed Successfully 🔄✅") finally: # Always show the final balances after a transfer. print(f"\nFinal Balances:\n{self.acc_balance}\n{account.acc_balance}") # Subclass for an interest-bearing account (Riba Account). class InterestRewardsAcc(BankAccount): interest_rate = 0.05 # Fixed 5% interest for deposits. # Overriding Deposit method to add interest. def deposit(self, amount): try: self._validate_transaction(amount) self.balance += (amount * (1 + self.interest_rate)) print("\nDeposit Completed Successfully ✅") print(self.acc_balance) except (BalanceException, ValueError, TypeError) as error: print(f"\nDeposit Interrupted ❌ : {error}") except Exception as error: print(f"\nAn unexpected error occurred ! : {error}") # Subclass for a savings account with a withdrawal fee. class SavingsAccount(InterestRewardsAcc): fee = 5 # Fixed fee for withdrawals. # Overriding Withdraw method to include the fee. def withdraw(self, amount): try: self._validate_transaction(amount) self.balance -= (amount + self.fee) print("\nWithdraw Completed Successfully ✅") print(f"{self.acc_balance}\n- A ${self.fee} fee was deducted from your balance.") except (BalanceException, ValueError, TypeError) as error: print(f"\nWithdraw Interrupted ❌ : {error}") except Exception as error: print(f"\nAn unexpected error occurred ! : {error}") السلام عليكم ورحمة الله قمت بعمل هذا المشروع بعد الانتهاء من دروس الOOP في بايثون وأخذ مني وقت طويل والكثير من البحث والتعديل، فما رأيكم بالنسبة لمبتدئ وما نصائحكم مستقبلاً جزاكم الله خيرا1 نقطة
-
وعليكم السلام احسنت عملا. برافو استخدمت ال OOP كويس و عرفت تظبط ال inheritance بشكل كويس و ال exceptions. و من الرائع ايضا استخدامك للرموز و العبارات الموضحة لل errors. و لكن لدى بعض النصائح: من الافضل انك توضح ال comments فى اجزاء الكود أكثر ليسهل على باقى المطوريين فهمه بشكل اسرع. لازم تجرب الكود عن طريق انك تعمل فايل تانى وتجرب تستخدم فيه ال objects من كل ال classes اللى عملته و هذا ما نطلق عليه ال Unit test: و هو تجربه الكود الخاص بك من الافضل ايضا ان لا تجعل الكود كله فى نفس الملف ففى المشاريع الكبيرة سوف يصعب عليك فهم و تعديل الكود بعد ذلك. استمر في التطوير، والبحث، واستكشاف مفاهيم جديدة. ما شاء الله، بدايتك ممتازة! و نعتذر بشدة عما حدث سلام عليكم1 نقطة
-
هو حضراتكم مبتردوش عليا ليه لا على الgmail ولا هنا ولا في أي حتة ؟ لا حول ولا قوة إلا بالله امال فين سرعة الرد اللي كنتوا بتقولوا عليها في الاعلانات ؟! والله أنا خصم كل واحد على هذه الأكاديمية قدام ربنا لو لم أحصل الخدمة الموعود بيها.1 نقطة
-
بما أنك ما زلت في عمر 15 عاما، لديك الوقت لتطوير مهاراتك تدريجيا، فالذكاء الإصطناعي يعتمد بشكل كبير على بايثون و بالتالي يجب عليك تعلمه أولا و من ثم الإنتقال لهذا المجال، و بما أنك تعرف في الرياضيات، هذا جيد جدا، فالذكاء الاصطناعي يعتمد بشكل كبير على الرياضيات، خصوصا في مجال التعلم الآلي، فاستمر في تطوير مهاراتك الرياضية. بعد إنتهائك من دورة البايثون يمكنك الإنتقال إلى دورة الذكاء الإصطناعي و التي بدورها أيضا تحتوي على مسار خاص بالبيثون الذي سيساعدك على التقدم أكثر في هذا المجال، و ستتعلم بأسلوب عملي وشيق الخوارزميات والمفاهيم البرمجية وراء تحليل البيانات Data Analysis وتمثيلها مرئيا، وتعلم الآلة Machine Learning والتعلم العميق Deep Learning وغيرها، وستكون تجربتك التعليمية مرتكزة على ممارسة ما تتعلمه على مشاريع حقيقية تستخدم في سوق العمل؛ مما يؤهلك للمنافسة بقوة في هذا المجال.1 نقطة
-
أعتقد أنك تتحدث عن الدورات، و من الرائع أنك مهتم بالذكاء الاصطناعي في هذا العمر، نصيحتي لك هي الاستمرار في تعلم Python لأنها واحدة من أهم وأشهر لغات البرمجة المستخدمة في الذكاء الاصطناعي، فإذا واصلت تعلمها، فهذا سيمنحك قاعدة قوية جدا للتقدم في الذكاء الاصطناعي، حيث أن العديد من الأدوات والمكتبات الخاصة بالذكاء الاصطناعي مثل TensorFlow و PyTorch تعتمد على Python. بعد الإنتهاء من دورة البايثون يمكنك الإنتقال إلى دورة الذكاء الإصطناعي حيث ستتعلم فيها معالجة البيانات بمختلف أنواعها، وستتعامل مع مختلف LLMs مثل GPT من OpenAI و LLaMA 2 من Meta وكيفية دمجها مع تطبيقاتك العملية، و كل هذا الأمر سيكون بواسطة بايثون لذا أن تكون لديك قاعدة معرفية بايثون سيمنحك سهولة أكبر في التعلم.1 نقطة
-
هل يوجد مواقع وتصميمات جاهزة لعمل عروض تقديمية أو توضيحية وتكون مجانية ؟ وهل يمكن كتابة كود بلغة بايثون لانشاء عرض تقديمي او باي لغة برمجة اخرى او برامج متخصصة في ذلك ؟1 نقطة
-
مرحبا جميعا ارجوكم احتاج الى المساعدة لدي شيفرة برمجية لصفحة بحث عن المنتجات لسبب ما تظهر ايقونة المفضلة الخاصة ببطاقة المنتج فوق قائمة الفلترة رغم ان قائمة الفلترة لها z-index اعلى كما ان القائمة تغلق تلقائيا بمجر النقر على احد خيارات الادخال بحثت عن حل لهذه المشكلة كثيرا دون جدوى كما جربت الاستعانة بادوات الذكاء الاصطناعي لكن لم اجد حل فعال ايضا, ارفقت مقطع فديو للمشكلتين للتوضيح اكثر , اتمنى مم من لديه الخبرة مساعدتي شاكراً لكم ذلك. (تعديل)😅 مرحبا جميعا لقد حللت مشكلة ظهور الايقونة المفضلة فوق القائمة تبقت المشكلة الثانية الخاصة بمربعات الادخال فقط ارجو مساعدتي بها من فضلكم.. Screen Recording 2024-08-24 175134.mp4 pr.zip1 نقطة
-
إذا كان هذا السؤال خاصة بأحد دروس الأكاديمية، ستجد أسفل فيديو الدرس في نهاية الصفحة صندوق تعليقات كما هنا، أرجو طرح الأسئلة أسفل الدرس وليس هنا في قسم الأسئلة البرمجة حيث نطرح الأسئلة العامة الغير متعلقة بمحتوى الدورة أو الدرس، وذلك لمساعدتك بشكل أفضل. ولكن سأحاول توضيح ل المشكلة لك أو بسبب أن العنصر filter-options تأخذ الخاصية position:absolute فإنها لا تعمل مع ال z-index لذلك لحل المشكلة احذف ال z-index للعنصر .add-to-fav وبالنسبة للمشكلة الثانية فهي سلوك طبيعي للكود الموجود حيث أن الكود التالي filterContent.addEventListener('click', function (event) { const filterGroup = event.target.closest('.filter-group'); if (filterGroup) { filterGroup.remove(); const filterTab = Array.from(filterTabs).find(tab => tab.dataset.target === filterGroup.id.replace('active-', '')); if (filterTab) { filterTab.classList.remove('selected'); } } }); مسؤل عن حذف ال filterGroup عن الضغط عليها ولكن حاول التعديل على هذا الكود ليجعل حذف ال filterGroup عند تغيير قيمة ال select مثلاً كالتالي filterContent.addEventListener('change', function (event) { // التحقق من أن العنصر الذي تم التفاعل معه هو select if (event.target.matches('select')) { const filterGroup = event.target.closest('.filter-group'); if (filterGroup) { filterGroup.remove(); // العثور على التبويب المرتبط بمجموعة الفلترة هذه const filterTab = Array.from(filterTabs).find(tab => tab.dataset.target === filterGroup.id.replace('active-', '')); if (filterTab) { filterTab.classList.remove('selected'); } } } });1 نقطة
-
ابحث عن طريقه لتجربه تطبيقي علي ios قمت بتجربه odevio ولكنها كانت متاحه ل 10 ايام فقط ومن ثم انتهت المده فهل من طرق اخري1 نقطة
-
السلام عليكم ورحمة الله وبركاته , انا الان سني يعتبر صغير فانا 14 سنة واتعلم البرمجة من حوالي عام ونصف الي عامين ولكن سؤالي هو هل يجب ان ادخل جامعة حاسبات ومعلومات او هندسة حاسبات ومعلومات لاجد عمل في شركة كبيرة او عمل كبير في المستقبل ام ماذا وهل اذا انتهيت من دورة تطوير الواجهات الامامية ساستطيع ان اعمل في سوق العمل الحر ولو بدخل بسيط ؟ واريد ان استفسر عن الخطة التعليمية التي وضعتها لنفسي هل هي جيدة ام ماذا اولا تطوير الواجهات الامامية من اكاديمية حسوب ثانيا كورس جافاسكريبت من اكاديمية حسوب لاصبح full stack developer ثالثا اريد بعد كل هذا ان اتعلم كورس مفصل عن مكتبة three.js لاستطيع ان انشئ مواقع وانميشن 3D وهو ما احببته جدا فهل هكذا اسير علي الطريق الصحيح ؟ وان كان لا فما هي نصائحكم؟ وجزاكم الله خيرا1 نقطة
-
و عليكم السلام Maintainability Index :هو مقياس طورته مايكروسوفت لقياس سهولة صيانة الكود البرمجي. يتم حساب هذا المؤشر بناءً على مجموعة من العوامل التي تشمل: 1. التعقيد الحلقي (Cyclomatic Complexity): وهو مقياس لتعقيد الشيفرة البرمجية ويشير إلى عدد المسارات المختلفة التي يمكن أن يتخذها البرنامج. 2. طول الكود (Lines of Code): يشير إلى عدد الأسطر البرمجية المكتوبة. 3. مؤشر هالستيد (Halstead Volume): وهو مقياس يستند إلى عدد المشغلين والمعاملات في الكود، ويقيس مقدار المعلومات المطلوبة لفهم الشيفرة. والمؤشر يعطي نتيجة على مقياس من 0 إلى 100: - 100: يشير إلى أن الكود سهل الصيانة جدًا. - 0: يشير إلى أن الكود صعب الصيانة. فكلما كان المؤشر قريب من ال 100 فيعتبر الكود سهل الصيانة. وغالبًا، يتم استخدام هذا المؤشر في أدوات تحليل الكود الساكن (Static Code Analysis) لتقديم تقديرات حول مدى جودة الكود من حيث الصيانة وتسهيل تحديد النقاط التي قد تتطلب إعادة صياغة أو تحسينات.1 نقطة
-
بالنسبة ل VS Code، هذه الميزة ليست متاحة بشكل افتراضي، لكن يمكنك تثبيت ملحق SonarLint، وهو أداة تحليل ثابتة للكود تساعد في اكتشاف المشكلات المتعلقة بالجودة والأمان، ولكنها لا تعرض مباشرة مؤشر Maintainability Index، إلا أنه يوفر تحليلا شاملا لجودة الكود والذي يمكن أن يشمل قابلية الصيانة.1 نقطة
-
الف شكرااا لحضرتك حدا طيب و VScode موجود الميزه ده1 نقطة
-
يعتبر مقياس طورته مايكروسوفت نستخدمه لتقييم قابلية صيانة الكود البرمجي،و يتم حساب هذا المؤشر بناء على مجموعة من العوامل مثل عدد الأسطر في الكود، تعقيد الكود، استخدام التعليقات، وغيرها من العوامل التي تؤثر على مدى سهولة فهم الكود وتعديله بمرور الوقت، و المؤشر يعطي درجة تتراوح من 0 إلى 100، حيث تشير الدرجة الأعلى إلى أن الكود أكثر سهولة في الصيانة والتطوير، و يتم استخدامه كأداة لمطوري البرمجيات لقياس وتحسين جودة الكود، فإذا كان المؤشر 20 أو أقل، فإنه يشير إلى أن الكود صعب الصيانة، و إذا كان المؤشر بين 20 و40، فهذا يشير إلى أن الكود متوسط الصعوبة، أما إذا كان المؤشر أعلى من 40، فيعتبر الكود سهل الصيانة. ويمكنك إستخدام Visual Studio لحساب هذا المؤشر تلقائيا للمشاريع البرمجية، مما يساعد المطورين في التعرف على الأماكن التي تحتاج إلى تحسين.1 نقطة
-
دخولك جامعة متخصصة في مجال البرمجة يزيد من فرصك بالطبع، لكن الجامعة هي ميزة إضافية ولا يتوقف عليها الأمر في مجال البرمجة، فستجد الكثيرين لم يحصلوا على شهادة جامعية في البرمجة ويعملون في ذلك المجال بشركات كبيرة. وطالما أنك مهتم بذلك المجال وتريد العمل به، فمن باب أولى دخول جامعة خاصة به مثل حاسبات ومعلومات أو أيًا يكن المسمى، ولا مشكلة لو قمت بدخول كلية أخرى فكما ذكرت الأمر لا يتعلق بالجامعة حيث أتفهم أحيانًا رغبة الأهل. بخصوص العمل الحر، ففي الوقت الحالي لن تتمكن من ذلك حيث أنّ مواقع العمل الحر تشترط أن يكون سنك 18 عام على الأقل، فلا تستعجل على ذلك لو استمريت في تطوير مستواك فبحلول 18 عام ستصبح قادر على اكتساب مبالغ كبيرة أضعاف ما كنت ستعمل به حاليًا. وبخصوص الـ Roadmap فأشيد بما قمت به حقًا، فأنت في سن صغير وقد وضعت خارطة طريق صحيحة وأيضًا على علم بتقنية مثل Three.js ونعم تستطيع تعلمها وستضيف لك الكثير كمطور واجهة أمامية وأنت حاليًا تستطيع تعلم ما تريد استمتع بذلك حقًا، فمستقبلاً لن تجد الوقت الذي بين يديك حاليًا.1 نقطة
-
عندما اظغط Run تضهر لي القيم بتاع الكلاس 1 والمفترض تضهر القيمة Hello1 نقطة
-
إحدى الطرق تتمّ عبر إنشاء قاعدة بيانات SQL جديدة ثم إنشاء جدول جديد مطابق لتركيب بيانات ملف CSV الخاص بك مع التأكد من تحديد أنواع البيانات المناسبة لكل عمود عبر استيراد ملف CSV إلى جدول SQL: يمكنك استخدام أداة واجهة المستخدم الرسومية في قاعدة البيانات. استخدام أداة مثل phpMyAdmin أو SQLWorkbench. كتابة استعلام SQL لتحميل البيانات من ملف CSV إلى الجدول. ومن فوائد تحويل البيانات من CSV إلى SQL أنّ معالجة البيانات ستكون بكفاءة فقواعد البيانات SQL توفر إمكانيات أكبر في تخزين وإدارة البيانات مقارنة بملفات CSV، مما يسهل إجراء استعلامات واستخراج بيانات بحيث يمكّن من تعريف قيود وتأكيدات على البيانات لضمان سلامتها وصحتها وقواعد البيانات مصممة للتعامل مع كميات كبيرة من البيانات بكفاءة، بينما ملفات CSV لها قيود في هذا الجانب. بالنسبة للمشاريع الحقيقية، غالبا ما يتم استخدام قواعد البيانات SQL كمخزن رئيسي للبيانات، بينما قد تستخدم ملفات CSV لأغراض معينة كنقل البيانات أو التحليل الأولي وهذا كله يعتمد على طبيعة المشروع ومتطلباته. أما في مجال تعلم الآلة والتعلم العميق، يمكن استخدام ملفات CSV كمصدر أولي للبيانات لإجراء التحليلات والتجارب الأولية ومن ثم يمكن استيراد هذه البيانات إلى قواعد بيانات SQL لمزيد من المعالجة والتحليل المتقدم.1 نقطة
-
تتوفر طرق مختلفة، أولها يدويًا بإنشاء سكربت SQL لاستيراد بيانات CSV إلى قاعدة البيانات، يتضمن ذلك إنشاء جدول بنفس بنية ملف CSV ثم استخدام عبارة INSERT INTO لملء الجدول بالبيانات من ملف CSV. أو استخدام أداة تحويل من CSV إلى SQL، وهنالك العديد من الأدوات والبرامج المتاحة عبر الإنترنت والتي يمكنها تحويل ملفات CSV إلى صيغة SQL، وعلى سبيل الذكر أدوات CSV to SQL و Convert CSV to SQL و CSV2SQL. أو الأفضل استخدام بايثون لقراءة ملف CSV وإنشاء سكربت SQL لاستيراد البيانات إلى قاعدة البيانات. import csv import sqlite3 conn = sqlite3.connect('database.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS mytable ( column1 TEXT, column2 INTEGER, column3 REAL ); ''') with open('data.csv', 'r') as csvfile: reader = csv.reader(csvfile) for row in reader: cursor.execute(''' INSERT INTO mytable (column1, column2, column3) VALUES (?, ?, ?); ''', row) conn.commit() conn.close() في المشاريع الواقعية، ستجد أنه يتم الإعتماد على قواعد بيانات SQL لتخزين وإدارة مجموعات البيانات الكبيرة، بينما ملفات CSV لتصدير البيانات واستيرادها، ولكن ليس كحل أساسي لتخزين البيانات. للتوضيح، في مشروع نظام التوصية، تستخدم قاعدة بيانات SQL لتخزين بيانات سلوك المستخدم وبيانات تعريف العنصر ونماذج التوصية، وملفات CSV لتصدير البيانات للتحليل أو لاستيراد بيانات جديدة إلى النظام. وفي مشروع معالجة اللغة الطبيعية، تستخدم قاعدة بيانات SQL لتخزين البيانات النصية والتعليقات التوضيحية ومخرجات النموذج، وملفات CSV لتصدير البيانات للتحليل أو لاستيراد بيانات جديدة إلى النظام. حيث توفر قواعد بيانات SQL طريقة ملائمة لإعداد البيانات ومعالجتها مسبقًا لنماذج تعلم الآلة والتعلم العميق، وقيودًا على سلامة البيانات، مثل المفاتيح الأساسية والمفاتيح الخارجية، لضمان اتساق البيانات ودقتها بجانب أنّ SQL لغة استعلام قوية تسمح لك بإجراء تحليلات وتصفية معقدة للبيانات. أيضًا توف طريقة لمراجعة البيانات، وهو أمر ضروري في تعلم الآلة والتعلم العميق حيث تكون جودة البيانات أمرًا بالغ الأهمية، وتسمح لك بإنشاء إصدارات من البيانات، وهو أمر ضروري في تعلم الآلة والتعلم العميق حيث تتغير البيانات باستمرار.1 نقطة
-
وعليكم السلام يمكنك تحويل ملفات CSV إلى قاعدة بيانات SQL بسهولة باستخدام مكتبة مثل: pandas sqlite3 SQLAlchemy إليك كود باستخدام sqlite3: import pandas as pd import sqlite3 # تحميل ملف CSV df = pd.read_csv("data.csv") # إنشاء اتصال بقاعدة البيانات conn = sqlite3.connect("database.db") # تحويل البيانات إلى SQL df.to_sql("table_name", conn, if_exists="replace", index=False) # إغلاق الاتصال بقاعدة البيانات conn.close() اما الفائدة من تحويل CSV إلى SQL في مجال تعلم الآلة والتعلم العميق: إذا كنت تعمل مع بيانات ضخمة، فوجود البيانات في قاعدة بيانات SQL يسهل التعامل مع ال complex queries وأكثر كفاءة مقارنةً بـ CSV الذي يعاني من مشاكل عندما تكون البيانات كبيرة. و ال SQL يقدم هيكلًا منظمًا للبيانات، حيث يمكنك الربط بين الجداول والاستعلام عن البيانات بطريقة أكثر تماسكًا من مجرد ملفات CSV . اما في المشاريع الحقيقية فغالبًا ما تحتاج إلى إجراء تعديلات متكررة على البيانات، سواء بإضافة بيانات جديدة أو تعديل الموجودة، وهو ما يتم بسهولة باستخدام SQL. و ذلك يتم استخدام ال SQL بشكل رئيسي. اما ال CSV: يتم استخدامه بشكل مؤقت أو لنقل البيانات بين الأنظمة المختلفة، ولكنه ليس مثاليًا لتخزين البيانات بشكل دائم بسبب محدودياته في الأداء والتنظيم. بايثون يوفر لك الأدوات للتعامل مع كليهما، مما يسهل التنقل بينهما حسب الحاجة في مشروعك.1 نقطة
-
توفر معظم الأنظمة الشبيهة بيونكس آلية مركزية لإيجاد وتثبيت البرمجيات. تُوزَع البرمجيات عادة في شكل حزم، مُخزنة في مستودعات. التعامل مع الحزم يُعرَف بإدارة الحزم. توفر الحزم المكونات الأساسية لنظام التشغيل، مع المكتبات المشتركة، التطبيقات، الخدمات والوثائق. يقوم نظام إدارة الحزم بأكثر من تثبيت البرمجيات لمرة واحدة. فهو يوفر أيضًا أدوات لترقية الحزم المثبتة حاليًا. تُساعد مستودعات الحزم على التأكد من أن الشيفرة فُحِصَت للاستخدام على نظامك، وأن المطورين والمشرفين وافقوا على نُسخ البرمجيات المُثبتة. عند ضبط الخواديم أو بيئات التطوير، غالبًا ما يكون النظر لما وراء المستودعات الرسمية ضروريًا. فقد تكون الحزم في الإصدار المُستقر من التوزيعة قديمة، خصوصًا عندما تكون البرمجيات المعنية سريعة التغيُر. وبالرغم من هذا، فإن إدارة الحزم هي مهارة حيوية لمدراء الأنظمة والمطورين، ووفرة البرمجيات المُحزّمة للتوزيعات الرئيسية هي مورد هائل. اُعد هذا الدّليل ليكون مرجعًا سريعًا لأساسيات إيجاد، تثبيت وترقية الحزم على مجموعة متنوعة من التوزيعات، وينبغي أن يساعدك على ترجمة هذه المعرفة بين الأنظمة. أنظمة إدارة الحزم: لمحة موجزة معظم أنظمة الحزم تُبنَى من مجموعات من ملفات الحزم. ملف الحزمة هو أرشيف يحتوي على ملفات ثُنائية مُترجمة ومصادر أخرى تُشكل البرنامج، مع سكربتات التثبيت. تحتوي الحزم أيضًا على بيانات وصفية قيّمة، تتضمن اعتمادياتها وقائمة من الحزم الأخرى المطلوبة لتثبيتها وتشغيلها. على الرغم من تشابه وظائف وفوائد تنسيقات وأدوات التحزيم إلى حد بعيد، إلا أنها تختلف باختلاف المنصات: نظام التشغيل التنسيق الأدوات Debian .deb apt, apt-cache, apt-get, dpkg Ubuntu .deb apt, apt-cache, apt-get, dpkg CentOS .rpm yum Fedora .rpm dnf FreeBSD Ports, .txz make, pkg تنسيق الحزم في دبيان والأنظمة المبنية عليها مثل أوبنتو، لينكس منت وراسبيان يكون كملف .deb. تُوفر أداة الحزم المُتقدمة APT أوامر لمعظم العمليات الشائعة: البحث بالمستودعات، تثبيت مجموعات من الحزم واعتمادياتها وإدارة الترقيات. تعمل أوامر APT كواجهة أمامية للأداة منخفضة المستوى dpkg، والتي تقوم بتثبيت ملفات .deb الفردية على النظام محليًا، وأحيانًا تُستدعى مباشرةً. تَستخدم CentOS، فيدورا والتوّزيعات الأخرى في عائلة Red Hat ملفات بتنسيق RPM. يُستخدم yum في CentOS للتفاعل مع ملفات الحزم الفردية والمستودعات. في النُسخ الحديثة من فيدورا حل dnf محل yum، وهو مُشتق حديث يحتفظ بمعظم خصائص واجهة yum النصية. يُدار نظام الحزم الثنائية في FreeBSD بالأمر pkg. ويوفر FreeBSD كذلك ما يُطلق عليه اسم Ports Collection، وهو هيكل مُجلدات محلية وأدوات تسمح للمُستَخدِم بجلب، تجميع وتثبيت الحزم مباشرة من المصدر باستخدام ملفاتMakefile. استخدام pkg مُريح غالبًا، ولكن أحيانًا لا تتوافر حزم مُترجمة مسبقًا، أو قد تُريد تغيير الخيارات بوقت الترجمة. تحديث قوائم الحزم تحتفظ معظم الأنظمة بقاعدة بيانات محلية للحزم المتوافرة بالمستودعات البعيدة. من الأفضل تحديث قاعدة البيانات قبل ترقية الحزم. وكاستثناء جزئي لهذا النمط، سيتحقق yum و dnf من وجود تحديثات قبل القيام ببعض العمليات، لكن يمكنك سؤالها عن توافر التحديثات بأي وقت. النظام الأمر Debian / Ubuntu sudo apt-get update CentOS yum check-update Fedora dnf check-update FreeBSD Packages sudo pkg update FreeBSD Ports sudo portsnap fetch update ترقية الحزم المثبتة التأكد من حداثة البرمجيات المُثبتة على النظام ستكون مهمة ضخمة بدون نظام حزم. ستضطر أن تتتبع تغييرات المنبع والتنبيهات الأمنية لمئات من الحزم المختلفة. على الرغم من أن مدير الحزم لن يحل كل مشكلة ستقابلها عند ترقية البرمجيات، إلا أنه يُمَكِنُك من صيانة معظم مكونات النظام بأوامر قليلة. ترقية الـ port المُثبتة على FreeBSD يمكن أن تُؤدي إلى إدخال أعطال أو تتطلب خطوات ضبط يدوية. من الأفضل أن تقرأ usr/ports/UPDATING/ قبل الترقية باستخدام portmaster. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get upgrade يُرقي الحزم الجديدة فقط، إن كان بالإمكان. sudo apt-get dist-upgrade قد يُضيف أو يحذف حزم لتلبية الاعتماديات الجديدة. CentOS sudo yum update Fedora sudo dnf upgrade FreeBSD Packages sudo pkg upgrade FreeBSD Ports less /usr/ports/UPDATING يُستخدم الأمر less لعرض ملاحظات التحديث للمنافذ. استخدم مفاتيح الأسهم للانتقال، اضغط q للخروج. cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a يُثبت portmaster ويستخدمه لتحديث المنافذ المُثبتة. إيجاد حزمة توفر معظم التوزيعات واجهة رسومية لمجموعات الحزم. هذه طريقة جيدة للتصفح بالفئة واكتشاف برمجيات جديدة. على الرغم من أنه غالبًا تكون الطريقة الأسرع والأكثر كفاءة لإيجاد حزمة هي البحث باستخدام أدوات سطر الأوامر. النظام الأوامر ملاحظات Debian / Ubuntu apt-cache search search_string CentOS yum search search_string yum search all search_string يبحث بجميع الحقول، من ضمنها الوصف. Fedora dnf search search_string dnf search all search_string يبحث بجميع الحقول، من ضمنها الوصف. FreeBSD Packages pkg search search_string يبحث بالاسم. pkg search -f search_string يبحث بالاسم، ويُعيد وصف كامل. pkg search -D search_string يبحث بالوصف. FreeBSD Ports cd /usr/ports && make search name=package يبحث بالاسم. cd /usr/ports && make search key=search_string يبحث في الأسماء، الأوصاف والاعتماديات. عرض معلومات عن حزمة محددة من المفيد قراءة أوصاف تفصيلية عن الحزم التي قررت تثبيتها. إلى جانب نص قابل للقراءة، يتضمن غالبًا بيانات وصفية مثل أرقام النُسخ وقائمة من اعتماديات الحزم. النظام الأمر ملاحظات Debian / Ubuntu apt-cache show package يعرض المعلومات المُخزنة محليًا عن الحزمة package. dpkg -s package يعرض حالة التثبيت الحالية للحزمة package. CentOS yum info package yum deplist package يسرد اعتماديات الحزمة package. Fedora dnf info package dnf repoquery –requires package يسرد اعتماديات الحزمة package. FreeBSD Packages pkg info package يعرض معلومات عن الحزمة المُثبتة package. FreeBSD Ports cd /usr/ports/category/port && cat pkg-descr تثبيت حزمة من المستودعات بمجرد معرفة اسم الحزمة، يمكن تثبيت الحزمة واعتمادياتها بأمر واحد. عمومًا، يمكنك طلب تثبيت حزم عديدة ببساطة عن طريق ذكرها جميعًا. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get install package sudo apt-get install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo apt-get install -y package يُجيب بنعم عندما يطلب apt الاستمرار. CentOS sudo yum install package sudo yum install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo yum install -y package يُجيب بنعم عندما يطلب yum الاستمرار. Fedora sudo dnf install package sudo dnf install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … sudo dnf install -y package يُجيب بنعم عندما يطلب dnf الاستمرار. FreeBSD Packages sudo pkg install package sudo pkg install package1 package2 … يُثبت كل الحزم المذكورة package1 package2 … FreeBSD Ports cd /usr/ports/category/port && sudo make install يبني ويُثبت منفذ من المصدر. تثبيت حزمة من نظام الملفات المحلي أحيانًا، بالرغم من عدم تحزيم البرمجيات رسميًا لنظام معين، سيوفر المطور أو البائع ملفات الحزم للتحميل. يمكنك الحصول عليهم عبر المتصفح، أو من خلال curl على سطر الأوامر. بمجرد وجود الحزمة على النظام، يمكن عادة تثبيتها بأمر واحد. يتعامل dpkg مع ملفات الحزم الفردية على الأنظمة الدبيانية. إذا كان هناك اعتماديات ناقصة لحزمة، فيمكن استخدام gdebi لجلب هذه الاعتماديات من المستودعات الرسمية. يُستخدم yum و dnf على أنظمة فيدورا و CentOS لتثبيت ملفات الحزم الفردية، ومُعالجة الاعتماديات المطلوبة أيضًا. النظام الأمر ملاحظات Debian / Ubuntu sudo dpkg -i package.deb sudo apt-get install -y gdebi && sudo gdebi package.deb يُثبت ويستخدم gdebi لتثبيت الحزمة package.deb ويَحصُل على أي اعتماديات ناقصة. CentOS sudo yum install package.rpm Fedora sudo dnf install package.rpm FreeBSD Packages sudo pkg add package.txz sudo pkg add -f package.txz يُثبت الحزمة package حتى وإن كانت مُثبتة. إزالة حزمة واحدة أو أكثر بما أن مدير الحزم يعرف الملفات التي تأتي مع حزمة مُعينة، فيمكن إزالة هذه الملفات بشكل نظيف من النظام إذا لم يعد هناك حاجة لهذه الحزمة. النظام الأمر ملاحظات Debian / Ubuntu sudo apt-get remove package sudo apt-get autoremove يُزيل الحزم غير الضرورية. CentOS sudo yum remove package Fedora sudo dnf erase package FreeBSD Packages sudo pkg delete package sudo pkg autoremove يُزيل الحزم غير الضرورية. FreeBSD Ports sudo pkg delete package cd /usr/ports/path_to_port && make deinstall يلغي تثبيت منفذ مُثبت. الحصول على المساعدة بالإضافة إلى التوثيقات المتوافرة على الشبكة، ضع في اعتبارك أن صفحات دليل يونكس (يُشار إليها بصفحات الدليل) متوافرة لمعظم الأوامر من الصدفة. استخدم man لقراءة صفحة page على النّحو التّالي: $ man page يمكنك الانتقال بمفاتيح الأسهم في man. اضغط / للبحث عن نص في الصفحة، و q للخروج. النظام الأمر ملاحظات Debian / Ubuntu man apt-get تحديث قاعدة البيانات المحلية والتعامل مع الحزم. man apt-cache الاستعلام في قاعدة بيانات الحزم المحلية. man dpkg التعامل مع ملفات الحزم الفردية والاستعلام عن الحزم المُثبتة. CentOS man yum Fedora man dnf FreeBSD Packages man pkg التعامل مع الحزم الثنائية المُترجمة مُسبقًا. FreeBSD Ports man ports التعامل مع مجموعات المنافذ. خاتمة ولمزيد من القراءة عرضنا العمليات الأساسية التي يمكن استخدامها كمرجع بين الأنظمة، لكننا لم نتطرّق سوى إلى أساسيات الأمر. للحصول على مزيد من التفاصيل لنظام معين، راجع المصادر التالية: يُغطي هذا الدليل إدارة حزم دبيان وأوبنتو بالتفصيل. هناك دليل CentOS الرسمي لإدارة البرمجيات باستخدام yum. هناك صفحة wiki فيدورا عن dnf، ودليل dnf الرسمي. يُغطي هذا الدليل إدارة حزم FreeBSD باستخدام pkg. يحتوي دفتر FreeBSD على قسم لاستخدام مجموعات المنافذ. ترجمة -وبتصرّف- للمقال Package Management Basics: apt, yum, dnf, pkg لصاحبه Brennen Bearnes.1 نقطة