Category: التطوير

ميزانية التزامن: تقليل المكالمات المتزامنة في الأنظمة الموزعة

2025-03-27

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

تحسين زاحف محرك البحث: الذيل الطويل بنسبة 0.1%

2025-03-27

لطالما واجه زاحف محرك بحث صعوبة في إنهاء مهمته، حيث يقضي أيامًا على النطاقات الأخيرة. أدت الهجرة الأخيرة إلى بيانات الزحف المقلصة إلى تقليل استخدام الذاكرة بنسبة 80٪، مما زاد من مهام الزحف. وقد أدى ذلك إلى اكتمال 99.9٪ في 4 أيام، لكن الـ 0.1٪ المتبقية استغرقت أسبوعًا. تنبع المشكلة من حجم موقع الويب الذي يتبع توزيعًا باريتو، مع مواقع ويب كبيرة (خاصةً مواقع أكاديمية ذات العديد من النطاقات الفرعية والوثائق) وحدود الزاحف على المهام المتزامنة لكل نطاق. أدى الترتيب العشوائي الأولي إلى بدء المواقع الكبيرة متأخرة. أدى الفرز حسب عدد النطاقات الفرعية إلى زيادة الطلبات على مضيفات المدونات. أدى إضافة اهتزاز إلى تأخير الطلبات وضبط ترتيب الفرز لإعطاء الأولوية للمواقع التي تحتوي على أكثر من 8 نطاقات فرعية إلى حل المشكلة جزئيًا. ومع ذلك، فإن القيود المتأصلة في نموذج الزحف بالدفعات تتطلب تحسينًا إضافيًا.

التطوير تحسين الزاحف

ريفوليت: لغة برمجة بخيوط متدفقة

2025-03-27
ريفوليت: لغة برمجة بخيوط متدفقة

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

Modern C مُحدّث: الإصدار المجاني متوفر الآن مع دعم كامل لـ C23

2025-03-27

نسخة Modern C المُحدّثة متاحة الآن مجانًا! يركز هذا الإصدار على الدعم الكامل لمعيار C23 الجديد. تتضمن التحسينات الرئيسية تحسينات في أنواع الأعداد الصحيحة (نوع _BitInt(N) الجديد، ورؤوس `` و ``، ودعم أنواع 128 بت)، وثابت nullptr، وتفسيرات السمات، والبرمجة العامة للأنواع المحسّنة (استنتاج النوع باستخدام auto و typeof)، والتهيئة الافتراضية، و constexpr. وتغطي فصول جديدة التعبيرات المركبة، وlambda، والعولمة، ومعالجة الأخطاء المتينة. كما تم تضمين ملحق ورأس ملف تضمين مؤقت لتسهيل الانتقال إلى C23.

التطوير معيار C23

قانون بوستل: طريق مسدود في تطور البرمجيات مفتوحة المصدر

2025-03-27

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

اكتب برنامج Rust باللغة الألمانية: مقدمة لمشروع Rost

2025-03-27
اكتب برنامج Rust باللغة الألمانية: مقدمة لمشروع Rost

يسمح لك مشروع Rost بكتابة برامج Rust باللغة الألمانية، باستخدام الكلمات المفتاحية، وأسماء الدوال، والتعبيرات الاصطلاحية الألمانية. وهو متوافق تمامًا مع Rust باللغة الإنجليزية، مما يسمح لك بمزج كلتا اللغتين. هذا المشروع الممتع يدعو للمساهمة في توسيع قدراته.

التطوير الألمانية

كائنات سمات Rust مع حدود متعددة: قيد مفاجئ

2025-03-27
كائنات سمات Rust مع حدود متعددة: قيد مفاجئ

تتناول هذه المقالة أسباب القيود المفروضة على الحدود المتعددة للسمات في كائنات السمات في Rust. يكتشف الكاتب خطأً في الترجمة عند محاولة استخدام قيود سمات متعددة (مثل `Mammal + Clone`) في وقت واحد داخل كائن سمة. تستكشف المقالة الآليات الكامنة وراء الإرسال الديناميكي في Rust و C ++، وتقارن تنفيذاتها لجدول vtable. وتفحص استخدام ميراث السمات لتجاوز هذا القيد وقيوده المتأصلة. في النهاية، يقترح الكاتب أن السماح بحدود سمات متعددة يتطلب مؤشرات vtable متعددة، على الرغم من أن هذا يضيف بعض التكرار، إلا أنه يحل مشاكل تحويل الأنواع بكفاءة.

arXivLabs: مشاريع تجريبية مع متعاونين من المجتمع

2025-03-27
arXivLabs: مشاريع تجريبية مع متعاونين من المجتمع

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

التطوير

eBPF-Go على Windows: دليل المطور

2025-03-27

يوضح هذا المستند كيفية تشغيل مكتبة eBPF-Go على Windows. نظرًا لأن eBPF على Windows غير مستقر بعد، تدعم المكتبة ثلاثة أوضاع: مُفسّر، وJIT، والترجمة إلى برنامج تشغيل Windows أصلي. يشرح المستند الاختلافات عن Linux، ومعالجة ملفات ELF الخاصة بالمنصة، وواجهة برمجة التطبيقات المُصدرة، وإعداد التطوير (باستخدام جهاز افتراضي يعمل بنظام Windows ونُسخ برمجية للبناء)، واستخدام الملفات الثنائية المُعدّة مسبقًا، وكيفية تصحيح الأخطاء وتفسير رموز الأخطاء. يتضمن تصحيح الأخطاء استخدام WinDbg وتفسير سجل التتبع. تتضمن معالجة الأخطاء فهم رموز أخطاء نظام Windows، وأخطاء RPC، وebpf_result_t، وerrno على نمط يونكس.

التطوير

خطأ فادح في جوجل دوكس: خلل غريب في Math.abs()

2025-03-27
خطأ فادح في جوجل دوكس: خلل غريب في Math.abs()

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

cregit: عرض مساهمات نواة لينكس بصريًا

2025-03-27

يعرض مشروع cregit مساهمات نواة لينكس من خلال ترميز ألوان ملفات المصدر لتحديد المساهمين الأفراد. عند تمرير مؤشر الماوس فوق أجزاء الكود، تظهر تفاصيل الالتزام، والنقر يفتح الالتزام المقابل على GitHub. على الرغم من أنه يعتمد على git blame ويستخدم srcML للتحليل، إلا أنه لديه قيود، مثل توسيع وحدات ماكرو والترجمة الحقيقية للغة C. cregit هو جهد تعاوني من باحثين في بوليتكنيك مونتريال، ومؤسسة لينكس، وجامعة فيكتوريا.

إعادة كتابة المُركّب: زيادة هائلة في الأداء لتركيب الصور

2025-03-27
إعادة كتابة المُركّب: زيادة هائلة في الأداء لتركيب الصور

تمت إعادة كتابة محرك تركيب الصور Compositor، مما أدى إلى تحسينات كبيرة في الأداء. تظهر مكاسب الأداء بشكل خاص في بعض تكوينات العقد؛ تم تحسين تخزين موارد ثابتة مثل الصور مؤقتًا، وتم تقليل استخدام الذاكرة في تكوينات العقد التي تحتوي على العديد من العقد التي تعمل على وحدات البكسل. العقد المُرشّحة أسرع بشكل كبير: العقدة Levels أسرع بعشر مرات، والعقدتان Filter وKuwahara أسرع مرتين، والعقد Blur أسرع أربع مرات، ومرشح Glare أكثر تقدمًا وأسرع بست مرات، والعقدة Pixelate أسرع تسع مرات. إن ضبط أشجار عقد المُركّب أسرع وأكثر تفاعلية بشكل ملحوظ، حيث يتجنب المُركّب الآن حساب المخرجات التي لا يشاهدها المستخدم عبر الخلفية أو محرر الصور. يجب أن تبدو تجربة التركيب العامة أكثر استجابة بكثير، سواء كنت تستخدم وحدة المعالجة المركزية أو وحدة معالجة الرسومات.

التطوير تركيب الصور

ستايرولايت: بيئة تشغيل حاويات منخفضة المستوى آمنة وفعالة

2025-03-26
ستايرولايت: بيئة تشغيل حاويات منخفضة المستوى آمنة وفعالة

ستايرولايت هي بيئة تشغيل حاويات منخفضة المستوى جديدة توفر واجهة برمجة تطبيقات Rust نظيفة لإنشاء الحاويات وإدارتها، مما يعالج تعقيد وسهولة حدوث أخطاء في الأدوات الموجودة مثل واجهة سطر الأوامر في Bubblewrap. مع إدراك القيود المتأصلة في مساحات أسماء لينكس، تتضمن ستايرولايت إعدادات افتراضية دقيقة وضوابط أمان صريحة لقاعدة أكثر قوة. تُستخدم في منصة إيديرا بروتيكت للخدمات الدقيقة الآمنة، وعزل التطبيقات، وبيئات CI/CD المخصصة، وتتميز أوقات بدء تشغيل الحاويات فيها بمقارنة أو سرعة أكبر من أساليب سطر الأوامر التقليدية.

خوارزمية أنيقة لمكدس التراجع في واجهة المستخدم: تجنب أخطاء الفهرسة

2025-03-26

تقدم هذه المقالة تطبيقًا ذكيًا لخوارزمية مكدس التراجع في واجهة المستخدم. بدلاً من النهج التقليدي القائم على الفهرسة، تستخدم هذه الخوارزمية مكدسين (undoStack و redoStack) لإدارة عمليات التراجع والإعادة، مما يتجنب أخطاء الفهرسة ومشاكل الإزاحة الشائعة. الشفرة موجزة وسهلة الفهم. يتناول الكاتب مشكلة المرور بالإشارة في جافا سكريبت باستخدام structuredClone()، مما يضمن القدرة على التكرار. يتم تقديم مثال كامل للرمز.

جوجل تُغير تطوير نظام أندرويد داخليًا، مع انخفاض مستوى الشفافية في المستقبل

2025-03-26
جوجل تُغير تطوير نظام أندرويد داخليًا، مع انخفاض مستوى الشفافية في المستقبل

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

التطوير

بناء مختبرات iximiuz: منصة تعليمية عملية لعمليات DevOps

2025-03-26
بناء مختبرات iximiuz: منصة تعليمية عملية لعمليات DevOps

تتناول هذه المقالة إنشاء مختبرات iximiuz، وهي منصة تعليمية مخصصة لمهندسي DevOps وSRE ومهندسي النظام الأساسي. وتتميز هذه المنصة بنهج تعليمي عملي فريد، يجمع بين التعلم النظري والتطبيق العملي التفاعلي باستخدام أجهزة افتراضية صغيرة تعتمد على Firecracker. يستعرض الكاتب أهداف التصميم، والهندسة المعمارية، واختيارات التكنولوجيا (بما في ذلك إطار عمل الواجهة الأمامية، ولغة الخلفية، وحاويات البرمجيات، والبنية التحتية)، والتحديات التي واجهها. المنصة الناتجة فعالة من حيث التكلفة، وموثوقة، وآمنة، وقابلة للتطوير، مع خطط مستقبلية تتضمن دمج بيئة تطوير متكاملة، وملعبًا متعدد العقد، ومُرَجِّع مرئي لـ Kubernetes.

التطوير منصة تعليمية

ثغرة أمان تجاوز سعة الكومة: كارثة نظام محتملة

2025-03-26

تم اكتشاف ثغرة أمان خطيرة تتعلق بتجاوز سعة الكومة، والتي قد تؤدي إلى تعطل النظام أو السيطرة عليه عن بُعد. يمكن للمهاجم استخدام أداة تسمى 'random-tool' للتسبب في تلف الذاكرة في برنامج 'atop' على النظام المستهدف، مما يؤدي إلى 'Segmentation fault' أو أخطاء قاتلة أخرى. والأسوأ من ذلك، إذا كان المستخدم المستهدف يتمتع بامتيازات المسؤول (root)، فسيحصل المهاجم على السيطرة الكاملة. يحث الكاتب المستخدمين على التوقف عن تشغيل الأداة لتجنب المخاطر المحتملة.

التطوير

Ruby Ractors و YJIT: غوص عميق في أداء التزامن

2025-03-26

تستكشف هذه المشاركة إمكانيات التزامن الحقيقية لـ Ruby Ractors في الإصدار 3.4.2، وتكتشف بشكل غير متوقع مكاسب الأداء المذهلة التي يوفرها YJIT. تُظهر اختبارات الأداء باستخدام دوال فيبوناتشي و Tarai أن Ractors تستخدم العديد من النوى بكفاءة في بيئة macOS الأصلية، لكنها تعمل بشكل أقل كفاءة في Docker. ومع ذلك، فإن تمكين YJIT يحسّن الأداء بشكل كبير في كلا البيئتين، متجاوزًا التوقعات. يستنتج الكاتب أن Ractors ليست جاهزة للإنتاج بعد، لكن YJIT جاهز للإنتاج ويوفر تحسينات كبيرة في الأداء.

التطوير

Playwright MCP: أتمتة متصفح بدون رأس لـ LLMs

2025-03-26
Playwright MCP: أتمتة متصفح بدون رأس لـ LLMs

يوفر خادم Playwright Model Context Protocol (MCP) إمكانيات أتمتة المتصفح لـ LLMs باستخدام Playwright. يسمح هذا للـ LLMs بالتفاعل مع صفحات الويب من خلال لقطات وصول قابلة للبناء، مما يلغي الحاجة إلى لقطات شاشة أو نماذج مُحسّنة بصريًا. إنه سريع وخفيف الوزن وصديق لـ LLM، ويستخدم شجرة إمكانية الوصول من Playwright بدلاً من الإدخال القائم على وحدات البكسل. تتضمن الميزات التنقل على الويب، وملء النماذج، واستخراج البيانات، والاختبارات الآلية. يدعم الوضع بدون رأس وذو رأس. التثبيت سهل من خلال VS Code CLI.

التطوير

NCURSES: البطل الصامت لبرمجة محطات يونكس

2025-03-26

يقدم هذا المستند مكتبة NCURSES، وهي مكتبة قوية ومستقلة عن المحطة الطرفية لرسم الشاشة ومعالجة أحداث الإدخال. نشأت من روتينات معالجة الشاشة الخاصة بمحرر vi، وقد تطورت عبر قواعد بيانات termcap و terminfo. تدعم NCURSES العديد من الإبرازات، والألوان، والتفاعل مع الماوس، وامتدادات للوحات، والقوائم، والنماذج، مما يبسط تطوير تطبيقات المحطة الطرفية بشكل كبير.

حملة برامج ضارة متطورة على npm تستخدم تقنيات التهرب الذكية

2025-03-26
حملة برامج ضارة متطورة على npm تستخدم تقنيات التهرب الذكية

استخدمت حملة برامج ضارة متطورة مؤخراً باقتين npm تبدوان حميدتين، ethers-provider2 و ethers-providerz، لحقن رمز ضار في حزم ethers المثبتة محلياً. تخفي هذه الحزم الحمولة الضارة الخاصة بها بذكاء، مما يؤدي في النهاية إلى إنشاء اتصال reverse shell بخادم المهاجم. حتى بعد إزالة الحزم الضارة، قد تستمر الوظائف الضارة بسبب طريقة الحقن الذكية للمهاجمين. هذا يبرز الخطر المستمر للحزم الضارة في مستودعات المصدر المفتوح والحاجة إلى تدابير أمنية محسّنة.

التطوير أمان npm

جوجل تنقل كل تطوير أندرويد إلى الداخل

2025-03-26
جوجل تنقل كل تطوير أندرويد إلى الداخل

أكدت جوجل أنها تنقل كل تطوير أندرويد إلى فروعها الداخلية، مما يعني أن مشروع أندرويد مفتوح المصدر (AOSP) لن يعكس العمل الكامل لجوجل بعد الآن. ويهدف هذا إلى تبسيط عملية التطوير وتجنب تعارضات الدمج، لكنه لا يغير طبيعة أندرويد مفتوحة المصدر. سيتم إرسال الإصدارات الجديدة وإصدارات الصيانة إلى AOSP. من المحتمل أن يرى المستخدمون النهائيون ومطوري التطبيقات تأثيرًا ضئيلًا؛ التغيير الرئيسي هو انخفاض التعرض المبكر للمعلومات الداخلية غير المؤكدة عبر تسريبات AOSP.

التطوير

ghidraMCP: خادم MCP للهندسة العكسية الآلية باستخدام نماذج اللغات الكبيرة

2025-03-26
ghidraMCP: خادم MCP للهندسة العكسية الآلية باستخدام نماذج اللغات الكبيرة

ghidraMCP هو خادم بروتوكول سياق النموذج (MCP) الذي يسمح لنماذج اللغات الكبيرة (LLMs) بإجراء هندسة عكسية للتطبيقات بشكل مستقل. يعرض العديد من الأدوات من وظائف Ghidra الأساسية إلى عملاء MCP. تشمل الميزات الرئيسية فك التجميع وتحليل الملفات الثنائية داخل Ghidra ، وإعادة تسمية الأساليب والبيانات تلقائيًا ، وقائمة الأساليب ، والطبقات ، والاستيراد ، والتصدير. التثبيت سهل ، ويتضمن تنزيل البرنامج المساعد واستيراده إلى Ghidra. يُقدم دعم لعملاء MCP متعددين ، بما في ذلك Claude Desktop و 5ire.

التطوير

Windows 7 SP2 المحسّن: تجربة متجددة، لكن بحذر

2025-03-26
Windows 7 SP2 المحسّن: تجربة متجددة، لكن بحذر

يهدف مشروع يسمى Windows 7 Service Pack 2 إلى إحياء أنظمة Windows 7 القديمة من خلال التحديثات والتحسينات. لا يزال المشروع قيد الإنشاء، وهو يدعم أنظمة 64 بت فقط، ويستثني تحديثات ESU وبرامج تشغيل GPU المخصصة. تتطلب عملية التثبيت عناية فائقة؛ فقد تؤدي الخطوات غير الصحيحة إلى تلف نظامك. تتوفر حاليًا صور ISO للتركيبات الجديدة، مع تخطيط لإصدار برنامج تثبيت في الموقع لاحقًا. يؤكد الفريق على الدعم المحدود لـ RAID/Intel RST وعدم وجود دعم لأنظمة 32 بت.

التطوير نظام 64 بت

أرويو: مُحلل JSON فائق السرعة مبني على أرو

2025-03-26
أرويو: مُحلل JSON فائق السرعة مبني على أرو

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

التطوير فك تشفير JSON أرو

مشفر وفك تشفير PNG عالي الأداء من Blend2D: يتفوق على C/C++

2025-03-26
مشفر وفك تشفير PNG عالي الأداء من Blend2D: يتفوق على C/C++

تقدم مكتبة Blend2D مشفر وفك تشفير PNG عالي الأداء يتفوق بشكل ملحوظ على التنفيذات الأخرى بلغات C/C++. تم تحسين المشفر هذا للحدود الكامنة في خوارزمية DEFLATE، حيث حقق تحسينات في السرعة من خلال بناء جداول فك تشفير سريعة، وحلقات فك تشفير مُحسّنة، واستخدام ذكي لتقنيات أزواج الحروف. تُظهر الاختبارات أداءً متفوقًا في فك تشفير صور PNG، حتى أنه يتجاوز سرعة بعض مُشفرات وفكات تشفير QOI في بعض الحالات. المشروع مفتوح المصدر بالكامل ويرحب بالمساهمات.

التطوير مشفر

Go 1.25 يزيل أنواع النواة، مما يبسط مواصفات اللغة

2025-03-26

أدخل Go 1.18 أنواعًا عامة، ومعها مفهوم "أنواع النواة" لتبسيط التعامل مع العناصر العملية العامة. ومع ذلك، فقد أضاف هذا تعقيدًا إلى مواصفات اللغة وحدّ من مرونة بعض العمليات. يزيل Go 1.25 أنواع النواة، ويستبدلها بقواعد أوضح وأكثر إيجازًا، مما يبسط مواصفات اللغة ويمهد الطريق لتحسينات لغوية مستقبلية، مثل عمليات الشرائح الأكثر قوة واستنتاج الأنواع المحسّن. هذا التغيير لا يؤثر على سلوك برامج Go الحالية.

(go.dev)
التطوير مواصفات اللغة

PgDog: مشروع مفتوح المصدر للتقسيم المتعدد في pgvector

2025-03-26
PgDog: مشروع مفتوح المصدر للتقسيم المتعدد في pgvector

يصبح توسيع نطاق pgvector لما يتجاوز مليون دمج أمرًا صعبًا بسبب بطء إنشاء الفهرس. تُقدم هذه المقالة PgDog، وهو مشروع مفتوح المصدر يقوم بتقسيم فهرس pgvector. من خلال الاستفادة من قدرات التجميع المتأصلة في IVFFlat، يوزع PgDog أقسام مساحة المتجهات على أجهزة متعددة. يتم توجيه متجهات الاستعلام إلى أجزاء مناسبة بناءً على قربها من مراكز الكتلة، المحسوبة باستخدام scikit-learn، مما يحسن بشكل كبير سرعة البحث ومعدل الاستدعاء. تتضمن تفاصيل التنفيذ حساب مراكز الكتلة، ودالة التقسيم المخصصة، وتحليل SQL باستخدام pg_query. تُظهر التجارب فعالية PgDog، حيث تقدم تحسينات مثل الاستعلامات المتوازية عبر الأجزاء وتخصيص مراكز الكتلة المُحسّن. يشمل العمل المستقبلي دعم المزيد من خوارزميات المسافة وتعليمات SIMD لحسابات أسرع.

سيرفو ضد ليدي بيرد: معركة محركات متصفحات جديدة

2025-03-26
سيرفو ضد ليدي بيرد: معركة محركات متصفحات جديدة

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

التطوير محرك متصفح

فايرفوكس يضيف أخيرًا دعمًا (تجريبيًا) لتطبيقات الويب

2025-03-26
فايرفوكس يضيف أخيرًا دعمًا (تجريبيًا) لتطبيقات الويب

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

التطوير
1 2 128 129 130 132 134 135 136 213 214