Category: التطوير

تيتانيا: لغة برمجة لتعليم تطوير المُترجمين

2025-09-15
تيتانيا: لغة برمجة لتعليم تطوير المُترجمين

تم تصميم لغة تيتانيا، القائمة على لغة أوبيرون-07 من تصميم نيكلاوس ويرث، كأداة تعليمية لتعلم تطوير المُترجمين. تتميز قواعدها النحوية الواضحة بتغطيتها للمفاهيم الأساسية مثل الوحدات والإجراءات وأنواع البيانات، وتتضمن دوالًا مدمجة للعمليات العددية، ومعالجة البتات، وإدارة الذاكرة. يُتيح تعلم تيتانيا فهمًا عميقًا لمبادئ المُترجمين وتصميم اللغات.

كائنات الصفحة: جعل اختبارات واجهة المستخدم لديك أقل هشاشة

2025-09-15
كائنات الصفحة: جعل اختبارات واجهة المستخدم لديك أقل هشاشة

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

الموت للتصنيفات النمطية: استكشاف نظام الوحدات النقالة في Haskell

2025-09-15

تتناول هذه المقالة استبدال التصنيفات النمطية بنظام الوحدات النقالة في Haskell. يوضح الكاتب من خلال مثال يسمى "Death" كيفية تعريف توقيعات لأنواع مثل Functor وتنفيذ حالات مختلفة (مثل Maybe و IO). تسمح تهيئة Cabal باختيار مرن للتنفيذات، مثل استخدام موناد الحالة لمحاكاة IO أثناء الاختبار. هذا النهج، على الرغم من أنه يتطلب المزيد من تهيئة Cabal، إلا أنه يوفر رسائل خطأ أوضح، وتحكمًا أكثر مرونة، ومزايا أداء محتملة. تختتم المقالة بفلسفة برمجة بسيطة، حيث تجادل بأن التبسيط يؤدي إلى قابلية قراءة وصيانة أفضل.

التطوير

تركيب مبسّط لـ Omarchy على CachyOS

2025-09-15
تركيب مبسّط لـ Omarchy على CachyOS

يقدم هذا المشروع برنامجًا نصيًا لتركيب تكوين سطح مكتب Omarchy من DHH على CachyOS، وهو توزيع Arch Linux مُحسّن للأداء. يُعطي Omarchy، وهو إعداد قائم على Hyprland، الأولوية للبساطة والإنتاجية. يُبسط البرنامج النصي عملية التركيب، ولكنه يتطلب معرفة مسبقة بـ Arch Linux. لا يُركّب البرنامج النصي CachyOS أو يُعالِج التقسيم أو التنسيق أو التشفير؛ يجب على المستخدمين القيام بذلك مسبقًا. يختار البرنامج النصي Yay (مساعد AUR) و Fish (قشرة)، مع الاحتفاظ بـ Tealdeer من CachyOS و Mise من Omarchy. من المهم ملاحظة أنه لا يُركّب البرنامج النصي مدير عرض تسجيل الدخول أو يُشغّل Hyprland تلقائيًا إلا إذا تم تثبيته بالفعل بواسطة CachyOS. لا توجد أي ضمانات مقدمة؛ استخدمه على مسؤوليتك الخاصة.

التطوير

تحليل أرقام إصدارات حزم npm باستخدام برنامج نصي Bun

2025-09-15

يقوم هذا البرنامج النصي Bun بتحليل أرقام إصدارات حزم npm. فهو يسترد جميع معرفات الحزم من واجهة برمجة التطبيقات npm replicate، ثم يسترد معلومات الإصدار لكل حزمة من واجهة برمجة التطبيقات npm registry. يحسب البرنامج النصي العدد الإجمالي للإصدارات وأكبر رقم ضمن أرقام الإصدار لكل حزمة، مع تصفية الحزم المعروفة بوجود مشاكل بها. ثم يعرض قوائم بالحزم التي تحتوي على معظم الإصدارات وأكبر الأرقام في إصداراتها. يساعد هذا في تحديد الأنماط والمشكلات المحتملة في إدارة إصدارات حزم npm.

arXivLabs: بناء ميزات arXiv الجديدة من خلال التعاون مع المجتمع

2025-09-15
arXivLabs: بناء ميزات arXiv الجديدة من خلال التعاون مع المجتمع

arXivLabs هو إطار عمل يسمح للمطورين بالتعاون مع مجتمع arXiv لبناء ومشاركة ميزات جديدة مباشرة على موقع arXiv الإلكتروني. يجب على المشاركين تبني قيم arXiv المتمثلة في الانفتاح والمجتمع والتميز وخصوصية بيانات المستخدم. هل لديك فكرة لتحسين مجتمع arXiv؟ تعرف على المزيد حول arXivLabs!

التطوير

GrapheneOS: نظام تشغيل أندرويد يركز على الأمان

2025-09-14
GrapheneOS: نظام تشغيل أندرويد يركز على الأمان

GrapheneOS (GOS) هو نظام تشغيل قائم على نظام أندرويد يركز على الأمان، وهو متوافق فقط مع أجهزة Google Pixel. يستخدم ملفات تعريف متعددة للمستخدمين لتوفير خصوصية قوية، حيث يتمتع كل ملف تعريف بتشفير و أذونات مستقلة، مما يخلق أنظمة معزولة فعليًا داخل هاتفك. يمكن للمستخدمين التحكم الدقيق في أذونات كل ملف تعريف، بل وحتى إيقاف تشغيل العمليات الخلفية تمامًا. عملية التثبيت سهلة، والتحديثات سلسة، وإدارة أذونات التطبيقات قوية. على الرغم من أنه أقل سهولة في الاستخدام من نظام أندرويد القياسي، إلا أن GOS يوفر تحكمًا غير مسبوق للمستخدمين المهتمين بالأمان والخصوصية، مما يجعله بديلاً جذابًا.

التطوير

نواة نظام تشغيل بسيطة لتقاسم الوقت على RISC-V بلغة Zig

2025-09-14
نواة نظام تشغيل بسيطة لتقاسم الوقت على RISC-V بلغة Zig

يشرح هذا المنشور نواة نظام تشغيل لتقاسم الوقت تم تطويرها على RISC-V باستخدام لغة البرمجة Zig. يُعد هذا المشروع إعادة تصميم لمهمة جامعية في أنظمة التشغيل، ويستفيد من الأدوات الحديثة وهندسة RISC-V. يدعم هذا النظام إنشاء خيوط ثابتة، واستدعاءات النظام بين الخيوط، وجدولة دورية باستخدام مقاطعات المؤقت. تم تنفيذ افتراضية الخيوط الأساسية، حيث يمتلك كل خيط مُكدسًا وسجلات خاصة به. الشيفرة مفتوحة المصدر، ويقدم المؤلف شرحًا تفصيليًا للتنفيذ وتفسيرات للشيفرة، مما يجعلها موردًا قيّمًا لطلاب أنظمة التشغيل وهندسة الحاسوب.

التطوير

ذاكرة التخزين المؤقت المضمنة في SpiderMonkey: ما هو أبعد من التخزين المؤقت البسيط

2025-09-14

يتناول هذا المنشور بالتفصيل تطبيق ذاكرة التخزين المؤقت المضمنة (IC) داخل محرك JavaScript SpiderMonkey. على عكس ذاكرة التخزين المؤقت التقليدية، فإن IC في SpiderMonkey هي تقنية رمز ذاتية التعديل. يقوم بإدراج سلسلة من الـ stubs في مواقع النداء، واختيار مسارات التنفيذ الفعالة ديناميكيًا بناءً على أنواع الإدخال. تنفذ أول نداء مسارًا احتياطيًا، وتولد stubsًا مقابلة بناءً على النتيجة. تصل النداءات اللاحقة من نفس النوع إلى ذاكرة التخزين المؤقت، مما يحسن الكفاءة بشكل كبير. يستخدم المقال الجمع في JavaScript كمثال لشرح كيفية عمل IC، ويذكر أحدث بنية CacheIR من SpiderMonkey، والتي تُجرد تفاصيل ICs للسماح بالمشاركة بين المُجمِّعات المختلفة.

SV2TTS في الوقت الفعلي: التعلم الانتقالي لتوليد الكلام متعدد المتحدثين

2025-09-14
SV2TTS في الوقت الفعلي: التعلم الانتقالي لتوليد الكلام متعدد المتحدثين

هذا مشروع مفتوح المصدر ينفذ توليد الكلام من النص (SV2TTS) متعدد المتحدثين في الوقت الفعلي باستخدام التعلم الانتقالي من التحقق من المتحدث، بناءً على أطروحة الماجستير الخاصة بالمؤلف. إنه إطار عمل للتعلم العميق من ثلاث مراحل: إنشاء تمثيل رقمي للصوت من مقاطع صوتية قصيرة، ثم استخدام هذا التمثيل لإنشاء كلام من نص تعسفي. على الرغم من أن المشروع قديم وقد تكون جودته أقل من البدائل التجارية، إلا أنه يدعم أنظمة التشغيل Windows وLinux، مع التوصية باستخدام معالجة رسومات (GPU) للتسريع. تتوفر تعليمات التثبيت والاستخدام التفصيلية، بالإضافة إلى دعم مجموعات بيانات متنوعة.

فك شيفرة الدوال والإغلاقات في Rust: غوص عميق

2025-09-14
فك شيفرة الدوال والإغلاقات في Rust: غوص عميق

تُعد الدوال والإغلاقات في Rust مصدرًا للارتباك للعديد من المبتدئين. يتعمق هذا المنشور في الآليات الكامنة وراء نظام الدوال والإغلاقات في Rust، موضحًا العلاقات بين عناصر الدالة، ومؤشرات الدالة، والسمات الثلاث للإغلاق: Fn و FnMut و FnOnce. يكشف عن كيفية تحويل المُترجم للإغلاقات إلى هياكل بيانات مجهولة، وتحسينات المُترجم خلف استدعاءات الدوال البسيطة على ما يبدو. إن فهم هذه الآليات الكامنة يُمكّن المطورين من كتابة رمز Rust أكثر كفاءة وخالٍ من الأخطاء، من خلال فهم كيفية تأثير أوضاع التقاط الإغلاق المختلفة على السلوك.

التطوير

الانتشار العكسي الفعال: تبسيط اشتقاقات التحويلات الخطية باستخدام آينسوم

2025-09-14

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

مُنشئ استعلامات الملاحظة: أربع سنوات من التكرار مع التركيز على تجربة المستخدم

2025-09-14
مُنشئ استعلامات الملاحظة: أربع سنوات من التكرار مع التركيز على تجربة المستخدم

قامت شركة ما بتكرار مُنشئ الاستعلامات الخاص بها ثلاث مرات على مدار أربع سنوات. استندت الإصدارات الأولية إلى افتراضات خاطئة، مما أدى إلى مشكلات في قابلية الاستخدام حتى بالنسبة للمهندسين ذوي الخبرة. كانت الإصدارات V3 و V4 مبسطة للغاية، ونقصت التعبيرات البولية المعقدة والدعم الفعال للسجلات. من خلال دعم المستخدم المكثف والتعليقات الواردة، أدركوا أهمية تجربة المستخدم وأصدروا الإصدار V5. المبدأ الأساسي للإصدار V5: "التوقف عن اتخاذ القرارات نيابة عن المستخدمين." يُمكّن هذا الإصدار المستخدمين من مزيد من التحكم وواجهة مستخدم أكثر سهولة، مع وظائف قوية مثل التعشيش التعسفي، وقواعد الأولوية، والاستعلامات عبر أنواع البيانات. حظي الإصدار V5 بتعليقات إيجابية للغاية؛ حتى أن المستخدمين تخلفوا عن استخدام SQL الخام لصالح المُنشئ. تشمل الخطط المستقبلية تحديثات تدريجية تضيف الاستعلامات الفرعية والانضمامات، لتحسين تجربة المستخدم باستمرار.

عودة بيرل المفاجئة إلى قائمة أفضل 10 لغات برمجة في مؤشر تيوبي: عودة لغة برمجة كلاسيكية

2025-09-14

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

التطوير

UltraPlot: غلاف مختصر لـ Matplotlib لإنشاء رسومات مذهلة

2025-09-14
UltraPlot: غلاف مختصر لـ Matplotlib لإنشاء رسومات مذهلة

UltraPlot هو غلاف مختصر لـ Matplotlib مصمم لإنشاء رسومات جميلة وجودة للنشر. بناءً على ProPlot ومُحدّث لـ Matplotlib الحديث (3.9.0 +)، فإنه يُبسّط إنشاء تخطيطات متعددة الألواح المعقدة، والرسوم البيانية الديكارتية، والإسقاطات والخرائط، وأشرطة الألوان والأساطير، والملحقات والألواح، وخرائط الألوان الجذابة بصريًا. سهل التركيب عبر pip أو conda، مع توثيق شامل متوفر.

التطوير

مستقبل البرمجة المرئية: ما وراء العقد والأسلاك

2025-09-14
مستقبل البرمجة المرئية: ما وراء العقد والأسلاك

يتناول هذا المقال قيود البرمجة المرئية، ويجادل بأنها ظلت عالقة لفترة طويلة في نموذج العقد والأسلاك، متجاهلة مبدأ "الشكل يتبع الوظيفة". باستخدام CellPond كمثال، يبرز الكاتب أن نجاحه يكمن في تعريف الوظيفة الأساسية أولاً (أربع عمليات فقط)، مع ظهور الشكل بشكل طبيعي. ثم يفصل الكاتب في المعنى الثلاثي لـ "الوظيفة": الطبيعة الجوهرية، والعقلانية، والجبر، ويجادل بأن البرمجة المرئية يجب أن تركز على الاستفادة من قدرات التعرف على الأنماط في القشرة البصرية البشرية لنمذجة المشاكل، بدلاً من مجرد تقليد البرمجة النصية. يقترح المقال نمذجة المشاكل ككيانات وعلاقات، واستخدام عناصر بصرية (اللون، والتجميع، والحركة) لتمثيل تغييرات الحالة، وبالتالي كسر قيود البرمجة المرئية الحالية وخلق أدوات برمجة أكثر قوة.

التطوير

اقتراح Safe C++ تم التخلي عنه: لجنة C++ تعطي الأولوية للمقاطع الشخصية

2025-09-14

قبل عام، كان اقتراح Safe C++ يهدف إلى إضافة مجموعة فرعية آمنة إلى C++، مما يوفر ضمانات قوية مثل Rust، دون كسر الكود C++ الموجود. ومع ذلك، فقد رفضت لجنة C++ الاقتراح لصالح نهج المقاطع الشخصية. تحدد المقاطع الشخصية أوضاعًا مقيدة من C++ لضمان خصائص الأمان. إنه حل أكثر عملية وسهولة في الاستخدام من Safe C++، على الرغم من أنه قد يوفر ضمانات أمان أقل شمولية. في النهاية، يُعتبر مسارًا أكثر واقعية للمضي قدمًا.

Lexy: مكتبة محلل C++ تتنافس مع محللات PEG

2025-09-14
Lexy: مكتبة محلل C++ تتنافس مع محللات PEG

Lexy هي مكتبة محلل C++ عالية الأداء تحقق التوازن بين الأداء والتحكم. بالمقارنة مع محللات PEG الأخرى مثل Boost.Spirit وPEGTL، تتجنب Lexy التراجع الضمني من خلال التحكم في شروط التفرع، مما يحسن الأداء ويبسط معالجة الأخطاء. تدعم Lexy ميزات متقدمة مثل استعادة الأخطاء، وتحليل أولوية المشغلات، وتسمح بالتحليل بدون نسخ مباشرة في هياكل البيانات الخاصة بك. على الرغم من أن قواعد Lexy أكثر تفصيلاً من قواعد Boost.Spirit، إلا أنها أكثر ملاءمة للقواعد الأكبر حجمًا. أوقات التجميع معقولة، والتصميم النمطي يساعد في تحسين سرعة التجميع.

التطوير

pass: مدير كلمات مرور سطر الأوامر بسيط وآمن وقابل للتوسيع

2025-09-14

pass هو مدير كلمات مرور لسطر الأوامر يستخدم تشفير GPG ويتبع فلسفة يونكس. يتم تخزين كل كلمة مرور في ملف مشفر باستخدام GPG يحمل اسم موقع الويب أو المورد. يمكن تنظيم هذه الملفات في مجلدات، ونسخها بسهولة بين أجهزة الكمبيوتر، وإدارتها باستخدام أدوات سطر الأوامر القياسية. يوفر pass أوامر بسيطة لإضافة، وتحرير، وإنشاء، واسترداد كلمات المرور، مع دعم النسخ إلى الحافظة وتتبع التغييرات القائمة على Git. يدير المستخدمون مخزن كلمات المرور باستخدام أوامر shell يونكس القياسية جنبًا إلى جنب مع pass، دون الحاجة إلى تعلم تنسيقات ملفات أو نماذج جديدة. وهو يدعم الإضافات ويمتلك مجتمعًا نشطًا مع العديد من العملاء وواجهات المستخدم الرسومية.

التطوير

عواقب كارثية لـ pthread_cancel في cURL 8.16.0 وإزالته

2025-09-13

أدخلت النسخة 8.16.0 من cURL استخدام pthread_cancel لتعطيل getaddrinfo()، بهدف تحسين الأداء. ومع ذلك، تسبب هذا التغيير في حدوث تسرب خطير للذاكرة. وذلك لأن getaddrinfo() يمكن إلغاؤه أثناء قراءة ملف /etc/gai.conf، مما يؤدي إلى عدم إطلاق الذاكرة المخصصة. نظرًا لصعوبة حل هذه المشكلة وإمكانية حدوث مشكلات خطيرة في الاستقرار، قرر فريق cURL إزالة هذه الوظيفة في #18540، ونصح المستخدمين باستخدام مكتبة c-ares كبديل، على الرغم من بعض القيود الوظيفية.

التطوير

في أعماق مُجمّعات JIT في روبي

2025-09-13
في أعماق مُجمّعات JIT في روبي

تتناول هذه المقالة عمق آلية عمل مُجمّعات JIT في لغة البرمجة روبي، مثل YJIT و ZJIT. تشرح المقالة كيف يتعايش الرمز المُجمّع بواسطة JIT مع بايت كود، وكيفية تبديل روبي بين أوضاع التنفيذ. كما تُوضح المقالة كيفية تحديد روبي للطرق التي سيتم تجميعها (بناءً على عدد مرات الاستدعاء)، ومتى يعود الرمز المُجمّع بواسطة JIT إلى المُفسّر (مثلًا، عند تفعيل TracePoint أو إعادة تعريف طرق أساسية). باختصار، يُحقق مُجمّع JIT في روبي توازنًا بين الأداء والدقة من خلال آلية مُبتكرة.

التطوير مُجمّع JIT

تشغيل آلة افتراضية 486 على Sipeed Tang: إنجاز هاوٍ

2025-09-13

نجح الكاتب في نقل نواة الكمبيوتر ao486 من MiSTer إلى FPGA Sipeed Tang 138K، مما أوجد مشروعًا يُدعى 486Tang. يمثل هذا أول مرة يتم فيها نقل ao486 بنجاح إلى FPGA غير Altera. واجهت عملية النقل العديد من التحديات، بما في ذلك إدارة الذاكرة (باستخدام SDRAM للذاكرة الرئيسية، وDDR3 كذاكرة مؤقتة للإطار)، وتخزين البيانات على القرص (الوصول المباشر إلى بطاقة SD)، وعملية تصحيح الأخطاء المعقدة. لتجاوز صعوبات تصحيح أخطاء الأجهزة، استخدم الكاتب بذكاء Verilator لمحاكاة النظام الفرعي والنظام بأكمله، مستخدمًا رسائل تصحيح أخطاء BIOS Bochs وعلامات التتبع المخصصة لتحديد المشكلات. في النهاية، من خلال سلسلة من تحسينات الأداء مثل تقليل شجرة إعادة الضبط وعدد المخرجات، وتحسين استرجاع التعليمات، وتحسين TLB، حقق 486Tang مستويات أداء تقارب 486SX-20. يُظهر هذا المشروع مهارات الكاتب الرائعة في تطوير FPGA وقدرته على حل المشكلات.

التطوير

Vicinae: مشغل سطح مكتب عالي الأداء يتحدى Raycast

2025-09-13
Vicinae: مشغل سطح مكتب عالي الأداء يتحدى Raycast

Vicinae هو مشغل سطح مكتب أصلي عالي الأداء تم إنشاؤه باستخدام C++ و Qt، مستوحى من Raycast. يتميز بواجهة برمجة تطبيقات إضافية متوافقة إلى حد كبير، باستخدام React/TypeScript من جانب الخادم، مما يلغي الحاجة إلى متصفح أو Electron. تشمل الميزات فهرسة الملفات مع بحث نص كامل، واختيار رموز تعبيرية ذكي، وآلة حاسبة، ومتتبع تاريخ لوحة المفاتيح المشفرة، واختصارات، وتكامل مع مدير النوافذ، ونظام سمات قابل للتخصيص. على الرغم من أن بعض الميزات قد يكون دعمها محدودًا على بعض الأنظمة الأساسية، إلا أن Vicinae يهدف إلى تزويد المطورين والمستخدمين المتقدمين بالوصول السريع والمركز على لوحة المفاتيح إلى إجراءات النظام الشائعة.

Mago: أداة فحص وتهيئة وتحليل ثابتة لـ PHP فائقة السرعة مكتوبة بلغة Rust

2025-09-13
Mago: أداة فحص وتهيئة وتحليل ثابتة لـ PHP فائقة السرعة مكتوبة بلغة Rust

Mago هي أداة فائقة السرعة لفحص وتهيئة وتحليل PHP الثابت، مكتوبة بلغة Rust. مستوحاة من نظام Rust البيئي، فهي توفر السرعة والموثوقية وتجربة مطور استثنائية لمشاريع PHP من جميع الأحجام. تشمل الميزات الفحص والتحليل الثابت والإصلاحات التلقائية والتهيئة والتحقق الدلالي وتصور AST. تهدف Mago إلى أن تكون بديلاً موحدًا وأسرع للأدوات الموجودة مثل PHP-CS-Fixer و Psalm و PHPStan و PHP_CodeSniffer.

التطوير

انطباعات أولية عن لغة جليم: تحليل سجلات AIM القديمة

2025-09-13

يستخدم الكاتب لغة البرمجة الوظيفية الحديثة نسبياً جليم لتحليل سجلات AOL Instant Messenger القديمة التي تعود إلى عقدين من الزمن. تُفصّل المقالة عملية تعلّمه، شاملةً معالجة وسيطات سطر الأوامر، والترجمة، والاختبار، وتقنيات البرمجة الوظيفية مثل مطابقة الأنماط وعوامل التشغيل في خطوط الأنابيب. يشارك الكاتب تجاربه الإيجابية مع بناء جملة خطوط الأنابيب الأنيقة في جليم، لكنه يُشير أيضاً إلى بعض العيوب مثل مكتبة جليم القياسية المحدودة ومعالجة الأخطاء التي تبدو غير مريحة بعض الشيء.

التطوير جليم

OpenJDK 25 يضيف مُحسّنًا تجريبيًا لمعالج CPU

2025-09-13
OpenJDK 25 يضيف مُحسّنًا تجريبيًا لمعالج CPU

بعد أكثر من ثلاث سنوات من التطوير، تم إضافة مُحسّن تجريبي لوقت وحدة المعالجة المركزية (CPU) إلى OpenJDK 25. يعتمد هذا المُحسّن الجديد على JFR، ويوفر قياسات أكثر دقة لاستهلاك دورات وحدة المعالجة المركزية، ويعالج أوجه القصور في مُحسّن وقت التنفيذ الحالي، خاصةً أخذ العينات غير الكافية في الأنظمة متعددة النواة ومعالجته الأقل من المثالية للتطبيقات المقيدة بعمليات الإدخال/الإخراج. على الرغم من أنه يقتصر حاليًا على نظام Linux، إلا أنه يوفر للمطورين أداة قوية لتحليل الأداء، مما يسمح بتحسين استخدام وحدة المعالجة المركزية وتحسين الإنتاجية.

ترميز الذكاء الاصطناعي: ضجة إعلامية أم أداة؟

2025-09-13

يُجادل الكاتب بأن أدوات ترميز الذكاء الاصطناعي الحالية هي في الأساس مُجمعات متقدمة، وقد تم المبالغة في تقدير فعاليتها. فهي تعتمد على قواعد البيانات البرمجية والأنماط الموجودة، وليس على "ترميز الذكاء الاصطناعي" الحقيقي. وفي حين أن الذكاء الاصطناعي قد يُعزز الإنتاجية، إلا أن المكاسب الفعلية محدودة، وتوجد العديد من القيود، مثل عدم دقة إدخال اللغة الطبيعية وسير العمل غير الحتمي. وينتقد الكاتب الاستثمارات المفرطة في ترميز الذكاء الاصطناعي، ويدعو إلى التركيز على تحسين البنية التحتية الأساسية مثل لغات البرمجة والمُجمعات والمكتبات، بدلاً من السعي وراء الضجة الإعلامية.

التطوير أدوات برمجة

تحديث مكتبة `image` في Rust: إضافة دعم اتجاه EXIF لتغيير حجم الصور

2025-09-13
تحديث مكتبة `image` في Rust: إضافة دعم اتجاه EXIF لتغيير حجم الصور

أصدرت مكتبة معالجة الصور `image` في Rust الإصدار v0.25.8، والذي يضيف دعمًا لبيانات اتجاه EXIF. هذا يحل مشكلة شائعة حيث كان تغيير حجم الصور يتجاهل الاتجاه، مما ينتج عنه صور مصغرة مُدارة أو مقلوبة. تقوم الوظيفة الجديدة `apply_orientation` بتصحيح اتجاه الصورة قبل تغيير حجمها، مما يضمن تطابق الصورة المصغرة مع الصورة الأصلية. هذا مفيد بشكل خاص عند العمل مع صور من الكاميرات والهواتف، مما يلغي مشكلة الصور غير المُحاذية.

التطوير

compile_flagz: تعزيز دعم IDE لـ C/C++ في أنظمة بناء Zig

2025-09-13

يوفر نظام بناء Zig إمكانيات قوية للترجمة المتقاطعة لمشاريع C/C++، لكن دعم المحرر غالبًا ما يكون متأخرًا بسبب عدم وجود مسارات التضمين. يعالج compile_flagz هذه المشكلة من خلال إنشاء ملف `compile_flags.txt`، وهو تنسيق قياسي يستخدمه خوادم اللغات مثل clangd. يوفر هذا الملف إعدادات الترجمة اللازمة، مما يسمح بوظائف مثل إكمال الكود وتمييز الأخطاء. يوضح المؤلف استخدامه وتطبيقه، مع عرض فعاليته في مشروع فك تشفير لعبة (ROLLER). كما يتم توفير دليل بدء سريع.

التطوير

قيادة الهندسة: فحص صحة النظام الشهري/الفصلي

2025-09-13

تقترح هذه المشاركة فحص صحة النظام لمدة 2-4 ساعات لفِرق الهندسة، يُجرى شهريًا أو ربع سنويًا. يُقيّم الفحص جودة النظام عبر أبعاد مثل الموثوقية، والأداء، والتكلفة، والتسليم، والأمان، والبساطة، والهيكل التنظيمي. تُوجّه الأسئلة المُحفّزة التفكير في الوضع الحالي للنظام، متجاوزةً المقاييس البسيطة لتحديد ومعالجة المشكلات الكامنة. والهدف هو تحسين جودة النظام العامة وفعالية الفريق.

1 2 3 4 5 6 8 10 11 12 213 214