بايثون العرب
10.4K subscribers
872 photos
183 videos
772 links
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
انتم عارفين إن Microsoft Edge يخزّن كل كلمات المرور في الذاكرة بشكل مكشوف. 🤦‍♂️

لو كلمات المرور حقك محفوظة في مدير كلمات المرور المدمج، يتم فك تشفيرها وتنزل في الذاكرة بمجرد ما تشغّل Edge حتى لو ما كنت ناوي تدخل على المواقع هذي في الجلسة الحالية. يعني إن أي شخص عنده وصول لجهازك يقدر يطلّع البيانات هذي عن طريق dump للـ process memory وبدون ما يحتاج صلاحيات إضافية.

والمشكلة إن Microsoft ما تعتبر هذا الشيء ثغرة أصلاً.

خبراء الأمن السيبراني ينصحون بعدم استخدام Edge لتخزين البيانات الحساسة في مدير كلمات المرور المدمج إلى أن تتحل المشكلة.
💡 نصيحة بايثون سريعة: استخدام `enumerate` للحصول على الفهرس والقيمة معًا!

هل سئمت من كتابة عدادات يدوية عند المرور على قوائم بايثون؟ هناك طريقة أسهل وأكثر أناقة باستخدام `enumerate`!

my_list = ['تفاحة', 'موزة', 'كرز']

for index, value in enumerate(my_list):
print(f"الفهرس: {index}, القيمة: {value}")


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

['#بايثون', '#برمجة', '#نصائح_برمجية', '#enumerate', '#PythonTips']
صباح الخير
مابتكلم على موضوع تطبيق امس وهذي الأشياء لانه الكل تكلم بس شفت هذا الكلام وحبيت اعطي نصيحة لغير المبرمجين.
انت اذا ناوي تفتح مشروع وفيه بيانات وفيه صيانه ومتابعه واشياء مهمة لازم تعرف من توظف مثلا المبرمج لازم يكون عنده شركة ولازم توقع عقد فيه كل التفاصيل ومن بينها القانونية علشان لو صار لك مثل كذا على الاقل تعرف من تمسك ماينفع تسترخص المبرمج وانت دفعت كل فلوسك ووقت وجهدك بالمشروع بالنهاية المبرمج ماحد يعرفه غيرك وتتحمل انت كل شيء
Postgres 18 صار يدعم مصادقة المستخدمين عبر OAUTH 2.0
✨ تحسين أداء Python: استخدام List Comprehensions ✨

هل تريد كتابة كود Python أكثر إيجازًا وفعالية؟ دعنا نتعلم كيف تجعل List Comprehensions حياتك أسهل!

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

# مقارنة مع الحلقة التقليدية:
# squares_loop = []
# for x in numbers:
# squares_loop.append(x**2)
# print(squares_loop)


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

['#Python', '#برمجة', '#ListComprehensions', '#PythonTips', '#كود']
أول خميس في شهر مايو من كل سنة الناس تحتفل بـ World Password Day اليوم العالمي لكلمات المرور.
الفكرة طرحه مارك بيرنيت سنة 2005 كتذكير بأهمية كلمات المرور وتمنّى إن المستخدمين على الأقل في هذا اليوم يتذكّرون إنه لازم يحدّثونها بشكل دوري. وبناءً على اقتراح Intel Security من سنة 2013 صار له مكانه الرسمي في التقويم وفي سنة 2026 صادف يوم 7 مايو.

لكن مين أصلاً اللي فكّر في حماية المعلومات الرقمية بكلمات مرور وكيف ومتى صار هذا؟ أول نظام تشغيل قدّم تسجيل الدخول بالباسورد كان Compatible Time-Sharing System (CTSS)، اللي طوّروه في MIT. واحدة من أهم المشاكل اللي كانوا يحاولون يحلونها وقت تطويره هي توزيع مورد ثمين جداً وهو الوقت اللي يقدر فيه الناس يستخدمون النظام. بعد ما تدخل الباسورد يكون عندك 4 ساعات تخلّص فيها أكبر قدر ممكن من المهام.

وقت إدخال الباسورد، كان فيه شي شبيه بالـ نجوم اللي نشوفها اليوم لما يكون ممكن النظام يطفي آلية الطباعة عشان يحافظ على خصوصية المستخدم وقت الإدخال.

وطبعاً اسم صاحب الفكرة معروف اسمه فيرناندو كورباتو رئيس الفريق اللي طوّر CTSS. والشي المضحك إنه رغم إن الهدف كان توفير أمان المعلومات
إلا إنه ما كان فيه أي تخزين آمن للباسوردات نفسها.

وبالمناسبة في تلك الفترة (بداية الستينات) حدثت أول حوادث أمن معلومات أحد الموظفين اكتشف إنه يقدر يطبع الملف الرئيسي اللي فيه كل الباسوردات بأمر بسيط. طريقة سهلة وواضحة لتجاوز الحماية.

وفي سنة 1966 شخص ما خلط بين رسالة الترحيب الخاصة بالنظام والملف الرئيسي للباسوردات. يعني أي شخص يدخل النظام يحصل تلقائياً على بيانات كل الموظفين. وقتها الموظفين كانوا يدخلون لملفات زملائهم على سبيل المزح ويتركون لهم رسائل مختلفة. تخيّلوا ترولينغ على أجهزة الكمبيوتر العملاقة في الستينات. أما إمكانية تخزين الباسوردات بشكل مشفّر (hashed) في أنظمة Unix فما ظهرت إلا في السبعينات.
لو انت فاضي روح على قوقل واكتب
site:teddit.net"is there any app that"

يمكن تلاقي افكار تطبيقات حلوه تسويها
✨ تحسين أداء Python: استخدام List Comprehensions ✨

هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ تعلم كيف تجعل قوائمك تتشكل بلمح البصر باستخدام List Comprehensions!

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


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

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#نصائح_برمجية']
❤1
احتمال إن Cloudflare يقع قريب صار أعلى بكثير 😅

الشركة طردت في يوم واحد 20% من موظفيها يعني أكثر من 1000 موظف عبر الإيميل بحجة عصر الـ AI agents الجديد. وحسب كلام الإدارة استخدام الذكاء الاصطناعي داخل Cloudflare ارتفع بأكثر من 600% خلال الثلاثة أشهر الماضية بس.

وقبل يومين بس Coinbase كمان طردت 14% من فريقها بسبب الـ AI. والمضحك المبكي إن اليوم صار عندهم انقطاع كبير استمر ساعات.

ما نتمنى شي، بس نستعد 💀
💡 نصيحة بايثون: استخدام `enumerate` بكفاءة! 🐍

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

my_list = ['تفاحة', 'موز', 'كرز']

for index, value in enumerate(my_list):
print(f"الفهرس: {index}, القيمة: {value}")


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

['#بايثون', '#برمجة', '#نصائح_بايثون', '#enumerate', '#كود_نظيف']
لو لك شهور تطوّر تطبيقات وتدفع فلوس على:
البنية التحتية مثل AWS و Vercel (Pro) أو Supabase (Paid Tier).

الذكاء الاصطناعي مثل Cursor و Claude Pro و OpenAI.

وما عندك ولا عميل واحد، فالعميل هو أنت.
🚀 تحسين أداء Python باستخدام List Comprehensions!

هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ تعرف على قوة List Comprehensions في هذا الشرح السريع!

squares = []
for i in range(10):
squares.append(i**2)

# باستخدام List Comprehension
squares_comp = [i**2 for i in range(10)]

print(squares)
print(squares_comp)


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

['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#كود']
ما أدري ليش بس بتحديث Codex أضافوا للـ system prompt الخاص بنموذج 5.5 هذا السطر:

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

زعلت على الحمام 😂github.com/openai/codex/blob…
فان يبل الشباب فكل شيء
سمعت به سوى الرحمن بال
أَلا ان الشباب ثياب لبس
وَما الاموال الا كالظلال
مطور من Cursor شارك عدة نصائح حول طريقة كتابة السيرة الذاتية

اول شيء السيرة الذاتية لازم تكون في صفحة وحدة. لو محتاج تحط أكثر، حط رابط لموقعك الشخصي. وهذي بحد ذاتها تميّزك عن أكثر من 90% من المتقدمين.

حساب GitHub ضروري الشركات تبي تشوف كودك ومشاريعك الفعلية. 3 مشاريع قوية أفضل من 27 مشروع زبالة سريع مولّد بـ vibe coding.

لو حطيت رابط حساباتك على السوشل ميديا راجعها ونظّف أي منشورات مشكوك فيها.

والنصيحة هذي تتكرر دايماً: اكتب سيرة ذاتيه لكل شركة ووظيفة على بشكل منفصل. هذا الشي يفرق كثير.

لو سيرتك الذاتية لين الحين ما فيها AI أو agents فهذي علامة سيئة. هذي المهارة صارت متوقعة مثل ما إن استخدام الكمبيوتر متوقع.

بس في نفس الوقت استخدام الذكاء الاصطناعي لكتابة السيرة الذاتية نفسها = علامه سيئة. خصوصاً في شركات الـ AI.

اعرض اهتماماتك وذوقك الشخصي: كتب مشاريع وغيره. الناس يهمها مع من بتشتغل.

وأخيراً: كل ما عرفت توصل الفكرة بأقل عدد من الكلمات كل ما زاد احتمال إن السيرة تقرأ كاملة أصلاً.
🤯1
💡 Python: التعامل مع الأخطاء بذكاء! 💥

هل سئمت من توقف برنامجك فجأة بسبب خطأ غير متوقع؟ تعلم كيف تجعل كودك أكثر قوة ومرونة باستخدام 'try-except' في بايثون!

def divide_numbers(a, b):
try:
result = a / b
print(f"النتيجة هي: {result}")
except ZeroDivisionError:
print("خطأ: لا يمكن القسمة على صفر!")
except TypeError:
print("خطأ: المدخلات يجب أن تكون أرقامًا!")
except Exception as e:
print(f"حدث خطأ غير متوقع: {e}")

divide_numbers(10, 2)
divide_numbers(10, 0)
divide_numbers(10, 'a')


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

['#Python', '#برمجة', '#تعلم_بايثون', '#أخطاء_بايثون', '#TryExcept', '#كود']
كم لايك وانزل لكم كود موقعrawad.io/arكامل
❤1
مستخدمين ويندوز كارثة طلع ريبو مزيف لـ OpenAI في Hugging Face داخله فايروس 💀

المشروع كان نسخة طبق الأصل من Privacy Filter الرسمي حق OpenAI اللي هو الأداة المحلية اللي تشيل البيانات الشخصية من النص قبل ما تعطيه للذكاء الاصطناعي. لكن في الريبو المزيف كانت فيه مفاجأة بالداخل: سكربت بايثون يحمّل ويشغّل infostealer على أنظمة Windows.

المشكلة إن الريبو طلع ترند وحصل مئات الآلاف من التحميلات.
💡 نصيحة بايثون سريعة: استخدام `enumerate` لتتبع الفهرس 💡

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

fruits = ['تفاح', 'موز', 'كرز']

for index, fruit in enumerate(fruits):
print(f'الفهرس: {index}, الفاكهة: {fruit}')

# يمكنك أيضًا تحديد نقطة البداية للفهرس
for index, fruit in enumerate(fruits, start=1):
print(f'الرقم: {index}, الفاكهة: {fruit}')


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

['#بايثون', '#برمجة', '#نصائح_بايثون', '#enumerate', '#تعلم_البرمجة', '#PythonTips']