اليوم Microsoft بيمنعون موظفيهم من استخدام Claude Code لأنهم ما يقدرون يتحمّلون التكاليف ويوظفون موظفين لإنهم أرخص😂
في ديسمبر الشركة وقّعت صفقة مع Anthropic وبشكل نشط شجّعوا مهندسيهم على استخدام Claude Code. طبعآ مايحتاج كلام الأداة بسرعة صارت لها شعبية بين الموظفين.
غالبا كانت شعبية أكثر من اللازم. لأن الان Microsoft أعلنوا إنهم ينوون إلغاء رخصتهم والانتقال إلى Copilot CLI عشان يخفّضون المصاريف. وبالتحديد، طلبوا من مطوّري كل المنتجات الرئيسية للشركة (يعني Windows و Microsoft 365 و Outlook، وغيرها) إنهم ينقلون كل بياناتهم من Claude قبل نهاية يونيو.
المبرمجين بيستبدلون الذكاء الاصطناعي 🔥
في ديسمبر الشركة وقّعت صفقة مع Anthropic وبشكل نشط شجّعوا مهندسيهم على استخدام Claude Code. طبعآ مايحتاج كلام الأداة بسرعة صارت لها شعبية بين الموظفين.
غالبا كانت شعبية أكثر من اللازم. لأن الان Microsoft أعلنوا إنهم ينوون إلغاء رخصتهم والانتقال إلى Copilot CLI عشان يخفّضون المصاريف. وبالتحديد، طلبوا من مطوّري كل المنتجات الرئيسية للشركة (يعني Windows و Microsoft 365 و Outlook، وغيرها) إنهم ينقلون كل بياناتهم من Claude قبل نهاية يونيو.
المبرمجين بيستبدلون الذكاء الاصطناعي 🔥
صراحة لازم اعتذر لكل واحد كنت اقول له انت مطبل للماك بوك احس اني اول مرة استخدم لابتوب . جالس اجرب نماذج محلية على بيانات كبيرة وشغال من 3 ساعات صح طلع صوت المرواح بس روعة وسلاسه وكل شيء 🔥
💡 تحسين أداء Python: استخدام list comprehensions! 💡
هل تريد كتابة كود Python أكثر إيجازًا وأداءً؟ تعلم كيف يمكن لـ list comprehensions أن تحدث فرقًا كبيرًا!
الكود الأول يستخدم حلقة `for` تقليدية لإنشاء قائمة بمربعات الأرقام. الكود الثاني يستخدم `list comprehension`، وهي طريقة مختصرة وأكثر كفاءة لإنشاء القوائم. غالبًا ما تكون أسرع وأسهل في القراءة للكثير من المهام.
['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#نصائح_برمجة']
هل تريد كتابة كود Python أكثر إيجازًا وأداءً؟ تعلم كيف يمكن لـ list comprehensions أن تحدث فرقًا كبيرًا!
numbers = [1, 2, 3, 4, 5]
squares_loop = []
for num in numbers:
squares_loop.append(num ** 2)
squares_comprehension = [num ** 2 for num in numbers]
print(f"Using loop: {squares_loop}")
print(f"Using comprehension: {squares_comprehension}")
الكود الأول يستخدم حلقة `for` تقليدية لإنشاء قائمة بمربعات الأرقام. الكود الثاني يستخدم `list comprehension`، وهي طريقة مختصرة وأكثر كفاءة لإنشاء القوائم. غالبًا ما تكون أسرع وأسهل في القراءة للكثير من المهام.
['#Python', '#برمجة', '#ListComprehensions', '#تطوير', '#نصائح_برمجة']
واحد تقني يكسب 300 ألف دولار سنوياً ويعيش كصعلوك فقير 😂
نشرت Business Insider قصة مطوّر عمره 24 سنة في وادي السيليكون يعيش كأنه راهب ما عنده سيارة ولا تلفزيون ولا كنبة يقتصد على كل شي حرفياً وتقريباً ما ياكل خارج المكتب ويعيش لحاله مثل طالب جامعي مسكين. السبب إن هدفه يتقاعد وعمره 30 سنة ومعه 2 مليون دولار في الحساب. علشان كذا يدّخر ويستثمر تقريباً كل اللي يكسبه.
طبعا مش الوحيد اللي كذا ظهرت فرقة كاملة اسمه FIRE اختصار لـ Financial Independence, Retire Early (الاستقلال المالي، التقاعد المبكر)، يتبعها كثير من المشتغلين في وادي السيليكون.
فكروا فيها 😅
نشرت Business Insider قصة مطوّر عمره 24 سنة في وادي السيليكون يعيش كأنه راهب ما عنده سيارة ولا تلفزيون ولا كنبة يقتصد على كل شي حرفياً وتقريباً ما ياكل خارج المكتب ويعيش لحاله مثل طالب جامعي مسكين. السبب إن هدفه يتقاعد وعمره 30 سنة ومعه 2 مليون دولار في الحساب. علشان كذا يدّخر ويستثمر تقريباً كل اللي يكسبه.
طبعا مش الوحيد اللي كذا ظهرت فرقة كاملة اسمه FIRE اختصار لـ Financial Independence, Retire Early (الاستقلال المالي، التقاعد المبكر)، يتبعها كثير من المشتغلين في وادي السيليكون.
فكروا فيها 😅
🚀 تحسين أداء Python: استخدام List Comprehensions!
هل تريد كتابة كود Python أكثر إيجازًا وكفاءة؟ دعنا نستكشف قوة List Comprehensions!
List Comprehensions توفر طريقة أنيقة لإنشاء قوائم. بدلًا من كتابة حلقة `for` تقليدية، يمكنك كتابة نفس المنطق في سطر واحد. الكود أعلاه ينشئ قائمة `squares` تحتوي على مربعات كل رقم في القائمة `numbers`.
['#Python', '#برمجة', '#ListComprehensions', '#كود', '#تطوير']
هل تريد كتابة كود 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', '#كود', '#تطوير']
من ناحية أخلاقية ايش رأيكم باللي يعمل scraping لبيانات تاريخية يعني صاحب الموقع مش مؤلفها هز جمعها ورتبتها وانت تعمل scraping من موقعه لهذي البيانات؟
تخيلوا في كوريا الجنوبية ممكن ما يوظّفونك بسبب وزنك 👖
بنت شاركت قصتها تقول الـ HR قال لها بشكل مباشر: "لو حتى دهونك ما تقدرين تتحكمين فيها، كيف بتعملي أمور الشغل؟"
في التعليقات اغلب الناس قالوا إن في كوريا الوزن الزائد فعلاً يتم اعتباره علامة على ضعف الانضباط الذاتي.
بس يا رب ما توصل الفكرة هذي إلى الـ HRs عندنا 😂
بنت شاركت قصتها تقول الـ HR قال لها بشكل مباشر: "لو حتى دهونك ما تقدرين تتحكمين فيها، كيف بتعملي أمور الشغل؟"
في التعليقات اغلب الناس قالوا إن في كوريا الوزن الزائد فعلاً يتم اعتباره علامة على ضعف الانضباط الذاتي.
بس يا رب ما توصل الفكرة هذي إلى الـ HRs عندنا 😂
مستودع يعلّمك الذكاء الاصطناعي من الصفر
435 درس
320 ساعة محتوى
لغات Python و TypeScript و Rust..
البرومبتات، والـ skills، والـ agents، وسيرفرات الـ MCP
تمارين عملية في كل درسgithub.com/rohitg00/ai-engin…
435 درس
320 ساعة محتوى
لغات Python و TypeScript و Rust..
البرومبتات، والـ skills، والـ agents، وسيرفرات الـ MCP
تمارين عملية في كل درسgithub.com/rohitg00/ai-engin…
💡 نصيحة بايثون: التعامل مع الأخطاء بذكاء! 🐍
هل سئمت من توقف برنامجك عند أول خطأ؟ تعلم كيف تستخدم try-except لجعل أكوادك أكثر قوة ومرونة.
نستخدم كتلة `try` لتجربة الكود الذي قد يسبب خطأ. إذا حدث خطأ معين (مثل `ZeroDivisionError` أو `TypeError`)، يتم تنفيذ كتلة `except` المناسبة. كتلة `finally` تُنفذ دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.
['#بايثون', '#برمجة', '#تعلم_البرمجة', '#نصائح_بايثون', '#TryExcept']
هل سئمت من توقف برنامجك عند أول خطأ؟ تعلم كيف تستخدم try-except لجعل أكوادك أكثر قوة ومرونة.
def divide(a, b):
try:
result = a / b
print(f"النتيجة: {result}")
except ZeroDivisionError:
print("خطأ: لا يمكن القسمة على صفر!")
except TypeError:
print("خطأ: يجب أن تكون المدخلات أرقامًا!")
finally:
print("انتهت عملية القسمة.")
divide(10, 2)
divide(10, 0)
divide(10, 'a')
نستخدم كتلة `try` لتجربة الكود الذي قد يسبب خطأ. إذا حدث خطأ معين (مثل `ZeroDivisionError` أو `TypeError`)، يتم تنفيذ كتلة `except` المناسبة. كتلة `finally` تُنفذ دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.
['#بايثون', '#برمجة', '#تعلم_البرمجة', '#نصائح_بايثون', '#TryExcept']
الثاني؟
واحد من عملاء Anthropic من الشركات الكبرى، بالخطأ 500 مليون دولار على التوكنز في شهر واحد.
أيوه تخيلوا نصف مليار دولار.
نشر القصة موقع Axios نقلاً عن مستشار الشركة (واسم الشركة ما تم الكشف عنه). الموضوع إن الموظفين ما كانت محطوط لهم حدود لاستخدام التوكنز، فحرقوا توكنز إضافية بقيمة ملايين الدولارات حرفياً.
كذا فهمنا من وين Anthropic عندها كل هذا الـ ARR.
واحد من عملاء Anthropic من الشركات الكبرى، بالخطأ 500 مليون دولار على التوكنز في شهر واحد.
أيوه تخيلوا نصف مليار دولار.
نشر القصة موقع Axios نقلاً عن مستشار الشركة (واسم الشركة ما تم الكشف عنه). الموضوع إن الموظفين ما كانت محطوط لهم حدود لاستخدام التوكنز، فحرقوا توكنز إضافية بقيمة ملايين الدولارات حرفياً.
كذا فهمنا من وين Anthropic عندها كل هذا الـ ARR.
✨ تبسيط قوائم بايثون: فهم List Comprehensions! ✨
هل سئمت من كتابة حلقات `for` طويلة لإنشاء قوائم جديدة؟ دعنا نتعلم اختصارًا أنيقًا وفعالًا في بايثون: List Comprehensions!
List Comprehensions توفر طريقة موجزة لإنشاء قوائم. الصيغة الأساسية هي `[expression for item in iterable]`. يمكنك أيضًا إضافة شرط `if` لتصفية العناصر. إنها تجعل الكود أكثر قابلية للقراءة وأقصر.
['#بايثون', '#برمجة', '#ListComprehensions', '#PythonTips', '#تعلم_البرمجة']
هل سئمت من كتابة حلقات `for` طويلة لإنشاء قوائم جديدة؟ دعنا نتعلم اختصارًا أنيقًا وفعالًا في بايثون: List Comprehensions!
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)
# مثال مع شرط:
even_squares = [x**2 for x in numbers if x % 2 == 0]
print(even_squares)
List Comprehensions توفر طريقة موجزة لإنشاء قوائم. الصيغة الأساسية هي `[expression for item in iterable]`. يمكنك أيضًا إضافة شرط `if` لتصفية العناصر. إنها تجعل الكود أكثر قابلية للقراءة وأقصر.
['#بايثون', '#برمجة', '#ListComprehensions', '#PythonTips', '#تعلم_البرمجة']
أَكُلَّما سنحت ذِكرى طَربتَ لَها
مَجَّت دُموعكَ في خدّيكَ طوفانا
أَما سَمِعتَ بِسُلطانِ شبيهكَ قَد
بَزَّتهُ سودُ خُطوب الدَهر سُلطانا
وَطِّن عَلى الكُرهِ وَاِرقُب إِثرَهُ فَرجاً
وَاِستَغفِر اللَهَ تَغنَم مِنهُ غُفرانا
مَجَّت دُموعكَ في خدّيكَ طوفانا
أَما سَمِعتَ بِسُلطانِ شبيهكَ قَد
بَزَّتهُ سودُ خُطوب الدَهر سُلطانا
وَطِّن عَلى الكُرهِ وَاِرقُب إِثرَهُ فَرجاً
وَاِستَغفِر اللَهَ تَغنَم مِنهُ غُفرانا
تخيلوا الصين بدأت تطوّر منظومة كاميرات المراقبة الخاصة بمواطنيها، عن طريق دمج الذكاء الاصطناعي فيها. الآن الكاميرات ما بتكتفي بتسجيل اللي يصير، بتفسّر سلوك الناس، تكشف المخاطر بشكل لحظي، وتنبّه الشرطة، وتمنع الحوادث قبل ما تصير.
بالاعتماد على الذكاء الاصطناعي النظام بيتعرف على أي سلوك غير طبيعي: قيادة خطيرة، تجمعات للناس، محاولة دخول غير مصرّح به، أو علامات تشير إلى تحضير محتمل لانتحار (مثلاً، لو واحد وقف عند جسر فترة طويلة). طبعا قادر يحدّد جنس الشخص، وضعيته، وملابسه.
البحث في الأرشيف كمان تغيّر. الحين الموظفين ما يحتاجون يجلسون ساعات يراجعون التسجيلات أو يحتاجون صورة مرجعية أصلاً. يكفي طلب نصي زي بنت بقبعة حمراء والنظام بنفسه يلقى المقاطع المطلوبة.
اقتربنا أكثر من جرائم الأفكار
بالاعتماد على الذكاء الاصطناعي النظام بيتعرف على أي سلوك غير طبيعي: قيادة خطيرة، تجمعات للناس، محاولة دخول غير مصرّح به، أو علامات تشير إلى تحضير محتمل لانتحار (مثلاً، لو واحد وقف عند جسر فترة طويلة). طبعا قادر يحدّد جنس الشخص، وضعيته، وملابسه.
البحث في الأرشيف كمان تغيّر. الحين الموظفين ما يحتاجون يجلسون ساعات يراجعون التسجيلات أو يحتاجون صورة مرجعية أصلاً. يكفي طلب نصي زي بنت بقبعة حمراء والنظام بنفسه يلقى المقاطع المطلوبة.
اقتربنا أكثر من جرائم الأفكار
💡 استدعاء الدوال بشكل ديناميكي في بايثون 🐍
هل تحتاج إلى استدعاء دالة بناءً على اسمها كسلسلة نصية؟ إليك طريقة سهلة وفعالة في بايثون!
نستخدم `globals().get(function_name)` للحصول على مرجع للدالة من خلال اسمها كسلسلة نصية. `globals()` يعيد قاموساً بجميع المتغيرات والدوال المعرفة على المستوى العام. `.get()` آمن لأنه يعيد `None` إذا لم يتم العثور على المفتاح (اسم الدالة) بدلاً من إطلاق استثناء.
['#بايثون', '#برمجة', '#PythonTips', '#DynamicCalls', '#Coding']
هل تحتاج إلى استدعاء دالة بناءً على اسمها كسلسلة نصية؟ إليك طريقة سهلة وفعالة في بايثون!
def greet(name):
return f"Hello, {name}!"
def say_goodbye(name):
return f"Goodbye, {name}!"
function_name = "greet"
argument = "World"
# الحصول على الدالة من خلال اسمها
func = globals().get(function_name)
if func:
result = func(argument)
print(result)
else:
print(f"Function '{function_name}' not found.")
function_name_2 = "say_goodbye"
func_2 = globals().get(function_name_2)
if func_2:
result_2 = func_2("Alice")
print(result_2)
else:
print(f"Function '{function_name_2}' not found.")
نستخدم `globals().get(function_name)` للحصول على مرجع للدالة من خلال اسمها كسلسلة نصية. `globals()` يعيد قاموساً بجميع المتغيرات والدوال المعرفة على المستوى العام. `.get()` آمن لأنه يعيد `None` إذا لم يتم العثور على المفتاح (اسم الدالة) بدلاً من إطلاق استثناء.
['#بايثون', '#برمجة', '#PythonTips', '#DynamicCalls', '#Coding']