✨ تحسين قراءة الملفات الكبيرة في بايثون
هل تواجه صعوبة في قراءة ملفات نصية ضخمة في بايثون؟ إليك طريقة فعالة لتجنب استهلاك ذاكرة كبير.
بدلاً من قراءة الملف بأكمله في الذاكرة دفعة واحدة باستخدام file.read()، نقوم بالمرور على الملف سطراً بسطر. هذا يستهلك ذاكرة أقل بكثير، خاصة مع الملفات الكبيرة جدًا.
['#بايثون', '#برمجة', '#ملفات', '#نصائح_برمجية', '#PythonTips']
هل تواجه صعوبة في قراءة ملفات نصية ضخمة في بايثون؟ إليك طريقة فعالة لتجنب استهلاك ذاكرة كبير.
def read_large_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
# قم بمعالجة كل سطر هنا
print(line.strip())
بدلاً من قراءة الملف بأكمله في الذاكرة دفعة واحدة باستخدام file.read()، نقوم بالمرور على الملف سطراً بسطر. هذا يستهلك ذاكرة أقل بكثير، خاصة مع الملفات الكبيرة جدًا.
['#بايثون', '#برمجة', '#ملفات', '#نصائح_برمجية', '#PythonTips']
This media is not supported in your browser
VIEW IN TELEGRAM
طلعت نسخة مفتوحة المصدر بديله لـ Claude Design اسمها Open Design
مشروع مفتوح بنفس فكرة Claude Design ويشتغل مع أي وكيل برمجة تحبه.
داخله أكثر من 70 قالب واجهات بصيغة DESIGN.md و19 مهارة و5 انماط. بس تختار المهمة وتكتب ملخص بسيط والوكيل يطلب منك السياق والتفاصيل ويقترح أفكار وبعدين خطوة بخطوة يولد لك التصميم اللي تبيه. وكل هذا محليgithub.com/nexu-io/open-desi…
مشروع مفتوح بنفس فكرة Claude Design ويشتغل مع أي وكيل برمجة تحبه.
داخله أكثر من 70 قالب واجهات بصيغة DESIGN.md و19 مهارة و5 انماط. بس تختار المهمة وتكتب ملخص بسيط والوكيل يطلب منك السياق والتفاصيل ويقترح أفكار وبعدين خطوة بخطوة يولد لك التصميم اللي تبيه. وكل هذا محليgithub.com/nexu-io/open-desi…
💡 نصيحة بايثون سريعة: استخدام `enumerate` لسهولة الوصول للفهرس والقيمة!
هل سئمت من تتبع الفهرس يدويًا عند المرور على قائمة في بايثون؟ هناك طريقة أسهل وأكثر أناقة!
الدالة `enumerate()` في بايثون تسمح لك بالمرور على أي تسلسل (مثل القوائم أو السلاسل النصية) مع الحصول على كل من الفهرس (index) والعنصر (value) في كل خطوة. هذا يجعل الكود أكثر وضوحًا ويقلل من الأخطاء.
['#بايثون', '#برمجة', '#نصائح_بايثون', '#enumerate', '#PythonTips']
هل سئمت من تتبع الفهرس يدويًا عند المرور على قائمة في بايثون؟ هناك طريقة أسهل وأكثر أناقة!
my_list = ['تفاحة', 'موز', 'كرز']
for index, value in enumerate(my_list):
print(f"الفهرس: {index}, القيمة: {value}")
الدالة `enumerate()` في بايثون تسمح لك بالمرور على أي تسلسل (مثل القوائم أو السلاسل النصية) مع الحصول على كل من الفهرس (index) والعنصر (value) في كل خطوة. هذا يجعل الكود أكثر وضوحًا ويقلل من الأخطاء.
['#بايثون', '#برمجة', '#نصائح_بايثون', '#enumerate', '#PythonTips']
💡 نصيحة بايثون: استخدام `enumerate` بسهولة! 🐍
هل سئمت من تتبع الفهارس يدويًا في حلقات التكرار؟ دائمًا ما يكون `enumerate` هو الحل الأمثل!
الدالة `enumerate()` تأخذ أي كائن قابل للتكرار (مثل القوائم) وتعيد كائن `enumerate` الذي ينتج أزواجًا تحتوي على الفهرس والقيمة المقابلة لكل عنصر أثناء التكرار. هذا يجعل الكود أكثر وضوحًا ويقلل من الأخطاء.
['#بايثون', '#برمجة', '#نصائح_برمجة', '#enumerate', '#PythonTips']
هل سئمت من تتبع الفهارس يدويًا في حلقات التكرار؟ دائمًا ما يكون `enumerate` هو الحل الأمثل!
my_list = ['تفاحة', 'موز', 'كرز']
for index, value in enumerate(my_list):
print(f'الفهرس: {index}, القيمة: {value}')
الدالة `enumerate()` تأخذ أي كائن قابل للتكرار (مثل القوائم) وتعيد كائن `enumerate` الذي ينتج أزواجًا تحتوي على الفهرس والقيمة المقابلة لكل عنصر أثناء التكرار. هذا يجعل الكود أكثر وضوحًا ويقلل من الأخطاء.
['#بايثون', '#برمجة', '#نصائح_برمجة', '#enumerate', '#PythonTips']
أصحاب الماك احتفلوا 😍
بعد 23 سنة تخيلوا أخيراً Notepad++ نزل على macOS 😎
مطوّري المشروع يقولون إن المحرر صار له إصدار أصلي كامل على macOS يعني خلاص ما يحتاج تشغله عن طريق Wine أو CrossOver.
الإصدار فيه كل المميزات الأساسية ويدعم أكثر من 130 لغة للواجهة. وطبعاً مجاني ومفتوح المصدر!notepad-plus-plus-mac.org/do…
بعد 23 سنة تخيلوا أخيراً Notepad++ نزل على macOS 😎
مطوّري المشروع يقولون إن المحرر صار له إصدار أصلي كامل على macOS يعني خلاص ما يحتاج تشغله عن طريق Wine أو CrossOver.
الإصدار فيه كل المميزات الأساسية ويدعم أكثر من 130 لغة للواجهة. وطبعاً مجاني ومفتوح المصدر!notepad-plus-plus-mac.org/do…
تخيلوا Apple بالغلط سرّبت ملفات CLAUDE.md 😂
أحد المطورين في تويتر اكتشفها بالصدفة داخل تحديث تطبيق Apple Support v5.13. الملفات كان فيها أشياء مثل قواعد تنسيق الكود، ملاحظات معمارية، وقيود تخص طريقة عمل Claude Code.
التغريدة جابت ملايين المشاهدات:
والظاهر إن Apple شافوها لأنهم بعدها بفترة بسيطة نزلوا تحديث v5.13.1 والملفات ممسوحة أو مخفية.
أحد المطورين في تويتر اكتشفها بالصدفة داخل تحديث تطبيق Apple Support v5.13. الملفات كان فيها أشياء مثل قواعد تنسيق الكود، ملاحظات معمارية، وقيود تخص طريقة عمل Claude Code.
التغريدة جابت ملايين المشاهدات:
والظاهر إن Apple شافوها لأنهم بعدها بفترة بسيطة نزلوا تحديث v5.13.1 والملفات ممسوحة أو مخفية.
✨ تحسين أداء Python: استخدام `enumerate` بذكاء!
هل تبحث عن طريقة أكثر أناقة وفعالية للتكرار على القوائم مع الحصول على الفهرس؟ دعنا نستكشف `enumerate`!
الدالة `enumerate()` في بايثون تسمح لك بالتكرار على أي تسلسل (مثل القوائم أو السلاسل النصية) مع الحصول على كل من الفهرس والعنصر في كل تكرار. هذا يجعل الكود أكثر قابلية للقراءة ويجنبك الحاجة إلى تتبع الفهرس يدوياً.
['#Python', '#برمجة', '#تعلم_بايثون', '#enumerate', '#نصائح_برمجية']
هل تبحث عن طريقة أكثر أناقة وفعالية للتكرار على القوائم مع الحصول على الفهرس؟ دعنا نستكشف `enumerate`!
my_list = ['تفاحة', 'موز', 'كرز']
for index, item in enumerate(my_list):
print(f'الفهرس: {index}, العنصر: {item}')
الدالة `enumerate()` في بايثون تسمح لك بالتكرار على أي تسلسل (مثل القوائم أو السلاسل النصية) مع الحصول على كل من الفهرس والعنصر في كل تكرار. هذا يجعل الكود أكثر قابلية للقراءة ويجنبك الحاجة إلى تتبع الفهرس يدوياً.
['#Python', '#برمجة', '#تعلم_بايثون', '#enumerate', '#نصائح_برمجية']
✨ تحسين أداء Python باستخدام List Comprehensions ✨
هل تبحث عن طريقة لكتابة كود Python أكثر إيجازًا وفعالية؟ دعنا نتعرف على List Comprehensions!
List Comprehensions توفر طريقة مختصرة لإنشاء القوائم. بدلاً من استخدام حلقة `for` تقليدية، يمكنك إنشاء قائمة جديدة في سطر واحد. الكود أعلاه ينشئ قائمة `squared_numbers` تحتوي على مربعات الأرقام الموجودة في القائمة `numbers`.
['#Python', '#برمجة', '#ListComprehensions', '#كود', '#نصائح_برمجة']
هل تبحث عن طريقة لكتابة كود Python أكثر إيجازًا وفعالية؟ دعنا نتعرف على List Comprehensions!
numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in numbers]
print(squared_numbers)
List Comprehensions توفر طريقة مختصرة لإنشاء القوائم. بدلاً من استخدام حلقة `for` تقليدية، يمكنك إنشاء قائمة جديدة في سطر واحد. الكود أعلاه ينشئ قائمة `squared_numbers` تحتوي على مربعات الأرقام الموجودة في القائمة `numbers`.
['#Python', '#برمجة', '#ListComprehensions', '#كود', '#نصائح_برمجة']
تنكَّرتْ أن رأت شيبي وقد حسبت
أيَّام عمري فصدت أمُّ عمّارِ
أما تريني ذَوى غصني وناحلَني
ظلِّي وراب الهوى صبري وإقصاري
وقُوربت خُطُواتي من هُنا وهُنا
فبُدِّلتْ أذرعٌ منها بأشبارِ
فما خضعتُ ولكن خانني زمني
ولا ذللتُ ولكن غاب أنصاري
أيَّام عمري فصدت أمُّ عمّارِ
أما تريني ذَوى غصني وناحلَني
ظلِّي وراب الهوى صبري وإقصاري
وقُوربت خُطُواتي من هُنا وهُنا
فبُدِّلتْ أذرعٌ منها بأشبارِ
فما خضعتُ ولكن خانني زمني
ولا ذللتُ ولكن غاب أنصاري
فيه مبرمجين من ألمانيا أخذوا النموذج اللي بالتغريده المقتبسة وعلى سبيل التجربة سوّوا له fine-tune. والمفاجأة انه اخذ 4.5% على SWE bench!
تخيلوا هذا نموذج ما شاف ولا سطر برمجة واحد في مرحلة الـ pretrain. وبعد 250 مثال تدريب فقط من الصفر، قدر يحل أول مهمة في الـ benchmark بشكل صحيح.
وبعد ما عرضوا عليه ~75 ألف مثال إضافي طلّع 4.5% من الحلول في first pass.
وللمقارنة Claude Opus 3 لما نزل أول مرة، اخذ تقريباً نفس النسبة على SWE bench.
يعني نموذج صغير بدون أي معرفة بعد 1930 ومع fine-tune بسيط تجاوز SOTA بداية 2024.
والمشكلة المطورين سوّوا تجربة ثانية أخذوا نفس النموذج أعادوا تدريبه على بيانات الويب الحديث وبعدها سوّوا له fine-tune على الكود. النتيجة ماتتوقعوها زيادة متواضعة جداً 1% بس تخيلوا.
يعني لو اختفى الإنترنت كامل اللي بنخسره قليل بشكل غريب. الشي الوحيد اللي يقيد نموذج 1930 هو إنه undertrained بشكل واضح 260B توكن فقط مش البيانات اللي تدرّب عليها.
اللي يحب جرب البرمجة مع نموذج عمره 90 سنة يقدر ياخذه من هناhuggingface.co/collections/r…github.com/RicardoDominguez/…
تخيلوا هذا نموذج ما شاف ولا سطر برمجة واحد في مرحلة الـ pretrain. وبعد 250 مثال تدريب فقط من الصفر، قدر يحل أول مهمة في الـ benchmark بشكل صحيح.
وبعد ما عرضوا عليه ~75 ألف مثال إضافي طلّع 4.5% من الحلول في first pass.
وللمقارنة Claude Opus 3 لما نزل أول مرة، اخذ تقريباً نفس النسبة على SWE bench.
يعني نموذج صغير بدون أي معرفة بعد 1930 ومع fine-tune بسيط تجاوز SOTA بداية 2024.
والمشكلة المطورين سوّوا تجربة ثانية أخذوا نفس النموذج أعادوا تدريبه على بيانات الويب الحديث وبعدها سوّوا له fine-tune على الكود. النتيجة ماتتوقعوها زيادة متواضعة جداً 1% بس تخيلوا.
يعني لو اختفى الإنترنت كامل اللي بنخسره قليل بشكل غريب. الشي الوحيد اللي يقيد نموذج 1930 هو إنه undertrained بشكل واضح 260B توكن فقط مش البيانات اللي تدرّب عليها.
اللي يحب جرب البرمجة مع نموذج عمره 90 سنة يقدر ياخذه من هناhuggingface.co/collections/r…github.com/RicardoDominguez/…
✨ تحسين أداء Python: استخدام Walrus Operator 🐍
هل سئمت من تكرار نفس المتغيرات في Python؟ تعرف على عامل التعيين المُقوّس (Walrus Operator) الذي يسمح لك بتعيين قيمة لمتغير كجزء من تعبير!
في هذا المثال، نقوم بتعيين طول الاسم للمتغير `n` باستخدام `:=` داخل جملة `if`. هذا يجعل الكود أقصر وأكثر قابلية للقراءة لأنه يتجنب حساب الطول مرتين.
['#Python', '#Programming', '#WalrusOperator', '#CodeTips', '#PythonTricks']
هل سئمت من تكرار نفس المتغيرات في Python؟ تعرف على عامل التعيين المُقوّس (Walrus Operator) الذي يسمح لك بتعيين قيمة لمتغير كجزء من تعبير!
def greet(name):
if (n := len(name)) > 3:
print(f"Hello, {name}! Your name is long ({n} characters).")
greet('Alice')
greet('Bob')
في هذا المثال، نقوم بتعيين طول الاسم للمتغير `n` باستخدام `:=` داخل جملة `if`. هذا يجعل الكود أقصر وأكثر قابلية للقراءة لأنه يتجنب حساب الطول مرتين.
['#Python', '#Programming', '#WalrusOperator', '#CodeTips', '#PythonTricks']
شركة Oracle طردت 30 ألف موظف في يوم واحد، واستبدلتهم بنموذج ذكاء اصطناعي.
والمشكلة إن الموظفين نفسهم هم اللي درّبوا بدائلهم. الإدارة اجبرتهم يوثّقون شغلهم بالتفصيل عشان بعدين يستبدلوهم بالنماذج.
طبعآ في الصين المحكمة هذا الأسبوع أصدرت حكم بإن الشركات ما يحق لها تطرد موظفين ولا حتى تخفّض رواتبهم بسبب الذكاء الاصطناعي.
والمشكلة إن الموظفين نفسهم هم اللي درّبوا بدائلهم. الإدارة اجبرتهم يوثّقون شغلهم بالتفصيل عشان بعدين يستبدلوهم بالنماذج.
طبعآ في الصين المحكمة هذا الأسبوع أصدرت حكم بإن الشركات ما يحق لها تطرد موظفين ولا حتى تخفّض رواتبهم بسبب الذكاء الاصطناعي.
🚀 استكشاف قوائم بايثون: الشرائح (Slicing) 🚀
هل تريد استخراج أجزاء معينة من القوائم في بايثون بكفاءة؟ تعلم فن الشرائح (Slicing) مع هذا المثال السريع!
تسمح لك الشرائح (Slicing) في بايثون بإنشاء قوائم فرعية جديدة من قائمة موجودة عن طريق تحديد نقاط البداية والنهاية والخطوة. الصيغة العامة هي `[start:stop:step]`. إذا تم حذف `start`، يبدأ من البداية. إذا تم حذف `stop`، يستمر حتى النهاية. `step` يحدد مقدار التقدم. استخدام `[::-1]` يعكس القائمة.
['#بايثون', '#برمجة', '#تعلم_بايثون', '#قوائم_بايثون', '#شرائح_بايثون', '#Python', '#Programming', '#PythonTips']
هل تريد استخراج أجزاء معينة من القوائم في بايثون بكفاءة؟ تعلم فن الشرائح (Slicing) مع هذا المثال السريع!
my_list = [10, 20, 30, 40, 50, 60, 70, 80]
# استخراج العناصر من الفهرس 2 إلى 5 (غير شامل)
sub_list1 = my_list[2:5]
print(f"العناصر من 2 إلى 5: {sub_list1}")
# استخراج العناصر من البداية حتى الفهرس 3 (غير شامل)
sub_list2 = my_list[:3]
print(f"العناصر حتى الفهرس 3: {sub_list2}")
# استخراج العناصر من الفهرس 4 حتى النهاية
sub_list3 = my_list[4:]
print(f"العناصر من الفهرس 4: {sub_list3}")
# استخراج العناصر بخطوة 2
sub_list4 = my_list[::2]
print(f"العناصر بخطوة 2: {sub_list4}")
# عكس القائمة باستخدام الشرائح
reversed_list = my_list[::-1]
print(f"القائمة المعكوسة: {reversed_list}")
تسمح لك الشرائح (Slicing) في بايثون بإنشاء قوائم فرعية جديدة من قائمة موجودة عن طريق تحديد نقاط البداية والنهاية والخطوة. الصيغة العامة هي `[start:stop:step]`. إذا تم حذف `start`، يبدأ من البداية. إذا تم حذف `stop`، يستمر حتى النهاية. `step` يحدد مقدار التقدم. استخدام `[::-1]` يعكس القائمة.
['#بايثون', '#برمجة', '#تعلم_بايثون', '#قوائم_بايثون', '#شرائح_بايثون', '#Python', '#Programming', '#PythonTips']
اليوم Coinbase فصلت 14% من موظفيها في يوم واحد بسبب الذكاء الاصطناعي
الـ CEO برايان أرمسترونغ أرسل للموظفين رسالة يوضح فيها الموضوع.
أهم النقاط:
المهندسين مع الذكاء الاصطناعي صاروا ينجزون خلال أيام أشياء كانت تاخذ أسابيع وحتى الفرق غير التقنية صارت تكتب كود يدخل الإنتاج. الوضع غريب شوي. بالنهاية الشركة قررت تغيّر توجهها عشان تصير أسرع أخف وأكثر تركيزاً على الذكاء الاصطناعي.
عشان كذا بيقللون عدد المستويات الإدارية وبيستغنون عن ناس. وفوق هذا ما عاد فيه شيء اسمه مدير فقط في Coinbase الكل لازم يساهم وينتج بشكل مباشر.
حتى بيكون عندهم فرق من شخص واحد يعني مهندس ومصمم ومدير منتج في نفس الوقت. والسبب إنهم مؤمنين إن المستقبل للفرق الصغيرة عالية الكفاءة.
الـ CEO يشوف إن طريقة العمل الجديدة والوحيدة هي استخدام الذكاء الاصطناعي في كل شيء.
كنا نحسب إن الذكاء الاصطناعي بيخفف الضغط عن الموظفين بس واضح إن الموضوع طلع عكس.
الـ CEO برايان أرمسترونغ أرسل للموظفين رسالة يوضح فيها الموضوع.
أهم النقاط:
المهندسين مع الذكاء الاصطناعي صاروا ينجزون خلال أيام أشياء كانت تاخذ أسابيع وحتى الفرق غير التقنية صارت تكتب كود يدخل الإنتاج. الوضع غريب شوي. بالنهاية الشركة قررت تغيّر توجهها عشان تصير أسرع أخف وأكثر تركيزاً على الذكاء الاصطناعي.
عشان كذا بيقللون عدد المستويات الإدارية وبيستغنون عن ناس. وفوق هذا ما عاد فيه شيء اسمه مدير فقط في Coinbase الكل لازم يساهم وينتج بشكل مباشر.
حتى بيكون عندهم فرق من شخص واحد يعني مهندس ومصمم ومدير منتج في نفس الوقت. والسبب إنهم مؤمنين إن المستقبل للفرق الصغيرة عالية الكفاءة.
الـ CEO يشوف إن طريقة العمل الجديدة والوحيدة هي استخدام الذكاء الاصطناعي في كل شيء.
كنا نحسب إن الذكاء الاصطناعي بيخفف الضغط عن الموظفين بس واضح إن الموضوع طلع عكس.
نصيحة اليوم لو ناوي تطلق مشروع يدوم معك ماتحاول تربط البراند بالتعاطف او اي انتماء خارج جودة المنتج لان هذا الأسلوب ممكن يدوم معك اسبوع اسبوعين وينتهي.
لازم جودة منتجك هي اللي تتكلم عنك وتسوق الميزات ماتبيع كلمات رنانه للبسطاء
لازم جودة منتجك هي اللي تتكلم عنك وتسوق الميزات ماتبيع كلمات رنانه للبسطاء