بايثون العرب
10.4K subscribers
871 photos
183 videos
770 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
مطورين الألعاب حدثوا Epic Games أطلقت Unreal Engine 5.8

أهم شي المحرك انضاف له دعم MCP. الحين Claude و Gemini وغيرهم من الـ AI agents يقدرون يشتغلون مباشرة مع Unreal ويحصلون على وصول للمشروع وينفّذون مهام. وعشان تتضح الصورة في الفيديو الـ agent ببساطة ينشئ حي مدينة كامل مباشرة داخل المحرر.

ننتظر الذكاء الاصطناعي في الألعاب 🔥unrealengine.com/news/unreal…
واحد من أقوى وأشهر علماء Google DeepMind نعوم شازير انتقل إلى OpenAI.

نعوم خبير حقيقي في Google انضم للشركة سنة 2000 واشتغل على محركات البحث الأولى بما فيها AdSense. في 2017 صار واحد من المؤلفين المشاركين للورقة البحثية الأسطورية Attention Is All You Need اللي تم فيها اكتشاف الـ transformers.

كمان يُنسب له أفكار multi-head attention، و MoE، و T5. باختصار، بدون الشخص هذا الصناعة الحين كانت بتكون متأخرة خطوتين.

في 2021 ترك Google وأسس CharacterAI اللي صار له هايب كبير. لكن بعدها، في 2024 Google اشترته مرة ثانية مع الستارت أب حقه ودفعت 2.7 مليار دولار. الهدف الأساسي من الصفقة كان بالذات إرجاع شازير للشركة ووقتها على طول خلوه يقود Gemini.

وبعد كذا بدأ العصر الذهبي لنماذج Google. لكن ما عدّت سنتين، والمهندس فجأة يترك Google ويروح لـ OpenAI. هذا انتقال تاريخي وبدون مبالغة ضربة ضخمة لـ Google سواء على مستوى السمعة أو الاستراتيجية.

في OpenAI نعوم بيشغل منصب قائد أبحاث الـ AI architecture يعني راح يشتغل في اللي يتقنه أكثر من أي شي البحث عن architectures جديدة للنماذج.

ألتمان نقدر نهنيه والباقي نعزّيهم.
⚡️ إدارة الملفات بكفاءة في بايثون! ⚡️

هل تحتاج إلى التعامل مع الملفات والمجلدات في بايثون؟ إليك طريقة سهلة وفعالة باستخدام وحدة `os`.

import os

# الحصول على المسار الحالي
current_directory = os.getcwd()
print(f"المسار الحالي: {current_directory}")

# إنشاء مجلد جديد
new_folder_name = "my_new_folder"
os.makedirs(new_folder_name, exist_ok=True)
print(f"تم إنشاء المجلد: {new_folder_name}")

# قائمة بجميع الملفات والمجلدات في المسار الحالي
all_items = os.listdir(current_directory)
print(f"محتويات المسار الحالي: {all_items}")

# التحقق مما إذا كان المسار ملفاً أو مجلداً
if os.path.isdir(new_folder_name):
print(f"'{new_folder_name}' هو مجلد.")
elif os.path.isfile(new_folder_name):
print(f"'{new_folder_name}' هو ملف.")

# حذف مجلد (يجب أن يكون فارغاً)
# os.rmdir(new_folder_name)
# print(f"تم حذف المجلد: {new_folder_name}")

# حذف ملف (مثال)
# file_to_delete = "my_file.txt"
# if os.path.exists(file_to_delete):
# os.remove(file_to_delete)
# print(f"تم حذف الملف: {file_to_delete}")


تسمح لك وحدة `os` في بايثون بالتفاعل مع نظام التشغيل، بما في ذلك إدارة الملفات والمجلدات. يمكنك الحصول على المسار الحالي، إنشاء مجلدات جديدة، سرد محتويات المجلدات، والتحقق من أنواع المسارات. استخدم `os.makedirs` لإنشاء مجلدات (بما في ذلك المجلدات الأصلية إذا لزم الأمر) مع `exist_ok=True` لتجنب الأخطاء إذا كان المجلد موجوداً بالفعل. `os.listdir` يعطيك قائمة بجميع العناصر داخل المسار المحدد. `os.path.isdir` و `os.path.isfile` للتحقق من نوع المسار. تذكر أن `os.rmdir` يحذف المجلدات الفارغة فقط، بينما `os.remove` يحذف الملفات.

['#بايثون', '#برمجة', '#تطوير', '#ملفات', '#نصائح_برمجية', '#Python', '#Programming', '#FileManagement']
قوقل تختبر reCAPTCHA مع تحقق عبر الكاميرا 😱

الذكاء الاصطناعي صار يتجاوز الاختبارات الكلاسيكية بمهارة عالية جداً فعشان كذا Google تختبر طريقة جديدة تفرّق فيها بين البشر والبوتات. بدل ما تدوّر على إشارات المرور بعض المستخدمين الحين يُطلب منهم يطلّعون بإيدهم إشارة بسيطة مباشرة قدام الكاميرا.

طبعاً Google يأكدون إنهم يحللون بس حركات اليد والنقاط الأساسية وإن الفيديو نفسه يتحذف فوراً بعد التحقق. لكن مع ذلك فيه شوية علامات استفهام حول الخصوصية.

قريب بنكون كلنا قدام الكمبيوتر كذا🫡
ليش يحسسوك انهم يتفضلوا عليك لو بيدي اي لعبه او تطبيق مايدعم العربي بحظرها مش فضل من المطورين
تابعوا حسابي هذا بنزل لكم شيء يعجبكم 🔥nitter.net/Ghurarapp
أتراجع عن كلامي متى يجي الشتاء 💔
🚀 تحسين أداء Python: فهم GIL

هل تساءلت يومًا لماذا قد لا تستفيد برامج Python المتعددة الخيوط (multithreaded) بشكل كامل من المعالجات متعددة النوى؟ 🤔 دعنا نتعمق في Global Interpreter Lock (GIL) وكيف يؤثر على أداء Python.

import threading
import time

def count_down(n):
while n > 0:
n -= 1

start_time = time.time()

# بدون GIL (نظريًا، في CPython هو موجود)
# يمكن تشغيل هذه المهام بالتوازي الحقيقي على نوى مختلفة

thread1 = threading.Thread(target=count_down, args=(10000000,))
thread2 = threading.Thread(target=count_down, args=(10000000,))

thread1.start()
thread2.start()

thread1.join()
thread2.join()

end_time = time.time()
print(f"الوقت المستغرق: {end_time - start_time:.4f} ثانية")

# ملاحظة: في CPython، بسبب GIL، ستعمل هذه الخيوط بشكل تسلسلي غالبًا،
# مما يحد من الاستفادة من المعالجات متعددة النوى للمهام التي تستهلك وحدة المعالجة المركزية.


Global Interpreter Lock (GIL) هو آلية في CPython (التنفيذ الأكثر شيوعًا لبايثون) تمنع أكثر من خيط واحد (thread) من تنفيذ بايت كود Python في نفس الوقت داخل عملية واحدة. هذا يعني أنه حتى لو كان لديك معالج متعدد النوى، فإن خيوط Python التي تستهلك وحدة المعالجة المركزية (CPU-bound) لن تعمل بالتوازي الحقيقي. بالنسبة للمهام التي تعتمد على الإدخال/الإخراج (I/O-bound)، مثل قراءة الملفات أو طلبات الشبكة، يكون GIL أقل تأثيرًا لأنه يحرر القفل أثناء انتظار عمليات الإدخال/الإخراج.

['#Python', '#GIL', '#Programming', '#Performance', '#Multithreading', '#CPython', '#Tips', '#Tutorial']
فترة انتقالات

مدير DeepMind Technologies انتقل للعمل في Anthropic.

من Google رحل ثاني أسطورة خلال يومين جون جامبر.

هذا الشخص اللي ابتكر AlphaFold وفي 2024 حصل عليه على جائزة نوبل مع ديميس هاسابيس وديفيد بيكر. وعلى فكرة عمره 39 سنة بس يعني واحد من أصغر الحاصلين على جائزة نوبل.

وش بالضبط راح يشتغل عليه في Anthropic ومين راح ياخذ مكانه في DeepMind لين الحين مو واضح لكن هذي بدون شك أكبر خسارة لـ Google.
❤1
✨ تلميح بايثون: استخدام `enumerate` للحصول على الفهرس والقيمة معًا! 🚀

هل سئمت من تتبع الفهرس يدويًا أثناء التكرار على القوائم في بايثون؟ استخدم `enumerate` لجعل الكود الخاص بك أكثر نظافة وكفاءة!

my_list = ['apple', 'banana', 'cherry']

for index, value in enumerate(my_list):
print(f"Index: {index}, Value: {value}")


الدالة `enumerate()` تأخذ كائنًا قابلًا للتكرار (مثل القائمة) وتعيد كائن `enumerate` الذي ينتج أزواجًا من الفهرس والعنصر. هذا يبسط الوصول إلى كليهما في حلقة `for`.

['#Python', '#Programming', '#CodingTips', '#LearnToCode', '#PythonTips', '#enumerate']
تخيلوا الهاكرز الحين حتى ما يعرفون يبرمجون باحثين كشفوا مهاجم اخترق على الأقل 14 شركة باستخدام الذكاء الاصطناعي.

حسب بيانات Open Analysis المهاجم استخدم Claude Code (opus-4.5) و Codex (gpt-5.2-codex) للاستطلاع، والبحث عن الثغرات وكتابة الـ exploits وسرقة البيانات. وتخيلوا إن البرومبتات كانت عادية. الولد بكل بساطة يكتب أنت سينيور pentester عندك 15 سنة خبرة وكان يشغل Claude يهاجم ويجمّع البيانات عن الثغرات بدقة في تقرير.

وكشفوا اسم المهاجم بأتفه طريقة ممكنة الباحثين لقوا الـ logs حقه على سيرفر مخترق. في وحدة من الجلسات الولد طلب من Claude يساعده يعدّل سيرته الذاتية اللي كان فيها اسمه الكامل وموقعه وتاريخه التعليمي وبروفايله في LinkedIn + سرّب كمان عنوان الـ IP حقّه.
لقيت بديل مجاني لـ Crunchbase فيه كل المعلومات عن المشاريع الناشئة StartupWiki

داخل الموقع تقدر تشوف المشروع ايش يسوي وكم جمع تمويل وايش آخر جولة تمويلية والفريق والمستثمرين وكمان الأخبار والمصادر والمخاطر المحتملة.
مفيد، لو تحب تعمل بحث للسوق أو للمنافسين أو بس تلقى أفكار لمشروعك.startupwiki.tech/
🚀 تحسين سرعة قراءة الملفات الكبيرة في بايثون

هل تواجه بطئًا عند قراءة ملفات نصية ضخمة في بايثون؟ إليك طريقة سريعة وفعالة لمعالجة البيانات دون تحميل الملف بأكمله في الذاكرة.

def read_large_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
# قم بمعالجة كل سطر هنا
# مثال: طباعة السطر
print(line.strip())

# استدعاء الدالة
# read_large_file('your_large_file.txt')


بدلاً من استخدام `file.read()` الذي يقرأ الملف بأكمله، نستخدم حلقة `for line in file:`. هذا يسمح لبايثون بقراءة الملف سطرًا بسطر، مما يقلل بشكل كبير من استهلاك الذاكرة ويحسن الأداء للملفات الكبيرة.

['#بايثون', '#برمجة', '#ملفات', '#تحسين_الأداء', '#PythonTips', '#LargeFiles']
كم تقييمكم للتصميم بالنسبة للجوال والايباد
🚀 تحسين أداء Python باستخدام List Comprehensions! 🚀

هل تبحث عن طريقة لجعل أكواد Python الخاصة بك أقصر وأكثر كفاءة؟ تعلم كيف تستخدم List Comprehensions لتحسين أداء وكتابة الكود الخاص بك.

numbers = [1, 2, 3, 4, 5]
squares = [n**2 for n in numbers]
print(squares)


List comprehension هي طريقة موجزة لإنشاء قوائم. إنها توفر طريقة أنيقة لإنشاء قوائم جديدة بناءً على قوائم موجودة، وغالبًا ما تكون أسرع وأكثر قابلية للقراءة من استخدام حلقات for التقليدية.

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']