Category: التطوير

Subtrace: وايرشارك لحاويات Docker الخاصة بك

2025-02-19
Subtrace: وايرشارك لحاويات Docker الخاصة بك

Subtrace يشبه Wireshark، لكن لحاويات Docker. يسمح للمطورين برؤية جميع طلبات الشبكة الداخلة والخارجة من خوادمهم الخلفية، مما يتيح حلًا أسرع لمشاكل الإنتاج. يعمل على الفور بدون الحاجة إلى تغييرات في التعليمات البرمجية، ويدعم جميع اللغات، ويعرض الأحمال الكاملة، والرؤوس، وأكواد الحالة، والوقت الكامن، ويتميز بانخفاض تكلفة الأداء تقل عن 100 µs. تم بناؤه على ClickHouse وهو مفتوح المصدر (على الرغم من أنه لا يقبل طلبات السحب حاليًا بسبب قيود الموارد)، Subtrace يرحب بطلبات الميزات وتقارير الأخطاء.

التطوير

أشجار راديكس المتوازنة المُرخّاة: متجهات ثابتة فعّالة

2025-02-19

تُقدّم هذه المقالة أشجار راديكس المُتوازنة المُرخّاة (RRB trees)، وهي بنية بيانات مُصمّمة لتنفيذ متجهات ثابتة بكفاءة. على عكس المتجهات المُستدامة، تُقدّم أشجار RRB مزايا أداء كبيرة في عمليات الدمج. تتناول المقالة آلية عمل أشجار RRB، مُفسّرة المفهوم الأساسي لتخفيف قيد الكثافة اليسرى، وكيف يُساعد جدول الأحجام والثابت M..M-1 في ضمان عمليات بحث ودمج فعّالة. يُقدّم مثال لتنفيذ باستخدام TypeScript، بالإضافة إلى شرح مُفصّل لخوارزمية الدمج، مُبرزةً كفاءة أشجار RRB في الممارسة العملية.

التطوير متجهات ثابتة

إتقان سير العمل المعقدة باستخدام Apache Airflow

2025-02-19
إتقان سير العمل المعقدة باستخدام Apache Airflow

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

من منطقة الراحة إلى منطقة النمو السريع: كيف تحصل على خبرة 5 سنوات في سنة أو سنتين

2025-02-19
من منطقة الراحة إلى منطقة النمو السريع: كيف تحصل على خبرة 5 سنوات في سنة أو سنتين

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

BleachBit: تنظيف النظام وإطلاق مساحة القرص

2025-02-19

هل نفدت مساحة القرص لديك؟ يقوم BleachBit بتحرير مساحة القرص بسرعة ويحمي خصوصيتك. يقوم بتنظيف ذاكرة التخزين المؤقت، وحذف ملفات تعريف الارتباط، ومسح سجل تصفح الإنترنت، وتقطيع الملفات المؤقتة، وإزالة السجلات، والتخلص من الملفات غير المرغوب فيها التي لم تكن تعلم بوجودها. يدعم نظامي Linux و Windows، ويعمل مع آلاف التطبيقات بما في ذلك Firefox و Adobe Flash و Google Chrome و Opera والمزيد. تشمل الميزات المتقدمة التقطيع الآمن للملفات، ومسح مساحة القرص الحرة، وتحسين Firefox لتحقيق سرعة أكبر. أفضل من المجاني، BleachBit مفتوح المصدر.

التطوير تنظيف القرص

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

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

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

التطوير

التكاليف الخفية لصيانة البرامج على المدى الطويل

2025-02-19
التكاليف الخفية لصيانة البرامج على المدى الطويل

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

التطوير صيانة البرامج

تحديات الاتصال في بيئة العمل عن بُعد اللامركزية وحل الذكاء الاصطناعي

2025-02-19

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

go-msquic: غلاف Go لمكتبة QUIC من مايكروسوفت

2025-02-19
go-msquic: غلاف Go لمكتبة QUIC من مايكروسوفت

go-msquic عبارة عن غلاف Go لمكتبة QUIC من مايكروسوفت، يوفر واجهة سهلة الاستخدام لمطوري Go للعمل مع بروتوكولات تعتمد على QUIC مثل HTTP/3. مستوحاة واجهته البرمجية من quic-go ويمكن استخدامها كبديل مباشر. ما لم تكن على دراية بالعمل مع مكتبات C، يُنصح عمومًا باستخدام quic-go بدلاً من go-msquic. يتطلب التثبيت إنشاء مكتبة MsQuic C المحلية أولاً، ثم التثبيت باستخدام `go get github.com/noboruma/go-msquic`. يوجد مثال على الكود في مجلد sample/.

التطوير

تنفيذ نموذج LLaMA3 في 100 سطر من كود Jax الخالص

2025-02-19

تُظهر هذه المقالة كيفية تنفيذ نموذج LLaMA3 من الصفر باستخدام 100 سطر فقط من كود Jax الخالص. اختار الكاتب Jax لجمالياته البسيطة وميزاته القوية مثل تسريع XLA، والترجمة العاجلة JIT، والمتجه vmap. تُفصّل المقالة كل مكوّن من مكوّنات النموذج، بما في ذلك تهيئة الأوزان، وترسيم BPE، والانغماس الديناميكي، وتشفير الموقع الدوراني، والانتباه للاستعلامات المجمعة، والمرور الأمامي. كما يتم شرح ميزات Jax الفريدة مثل إدارة مفاتيح PRNG والترجمة العاجلة JIT. وأخيراً، يُظهر الكاتب كيفية تدريب النموذج على مجموعة بيانات شكسبير، مع توفير رمز حلقة التدريب.

التطوير

Augment: إكمال التعليمات البرمجية والدردشة المدعومة بالذكاء الاصطناعي لـ Vim/Neovim

2025-02-19
Augment: إكمال التعليمات البرمجية والدردشة المدعومة بالذكاء الاصطناعي لـ Vim/Neovim

أصدرت Augment مُلحِقها لـ Vim/Neovim والذي يوفر إكمالًا سلسًا للرموز البرمجية ومحادثات دردشة متعددة الأدوار مُصممة خصيصًا لقاعدة بياناتك البرمجية. بعد التثبيت (يتطلب Node.js 22.0.0+ وإصدارات متوافقة من Vim/Neovim)، أضف مجلدات مساحة العمل وقم بتسجيل الدخول إلى خدمة Augment. ستظهر إكمالات الرموز البرمجية المعتمدة على السياق أثناء الكتابة؛ استخدم الأمر `:Augment chat` لإجراء محادثات مع الذكاء الاصطناعي حول الرموز البرمجية. يوفر المُلحِق أوامر لإدارة الحالة، وتسجيل الدخول/الخروج، وتمكين/تعطيل الاقتراحات، وعرض السجلات، وبدء محادثات دردشة جديدة. تساعد `.augmentignore` في إدارة المشاريع الكبيرة. قم بتخصيص اختصارات المفاتيح بسهولة لقبول الاقتراحات.

محلل JSON بلغة Rust: مشروع جانبي مكون من 800 سطر

2025-02-19
محلل JSON بلغة Rust: مشروع جانبي مكون من 800 سطر

بإلهام من دورة جامعية في مجال المترجمين، قام الكاتب بإنشاء محلل JSON بلغة Rust كمشروع جانبي. تتناول المقالة تفاصيل التصميم والتنفيذ، بما في ذلك معالجة أنواع بيانات JSON المختلفة (السلاسل النصية، والأرقام، والمصفوفات، والكائنات)، ومعالجة الأخطاء، واختبارات الأداء. يحتوي المحلل النهائي على حوالي 800 سطر، بما في ذلك رسائل أخطاء محسّنة لتسهيل عملية تصحيح الأخطاء. أظهرت اختبارات الأداء، على الرغم من عدم تحسينها، سرعات تحليل لائقة.

التطوير محلل JSON

uv: حل باريتو لإدارة مشاريع Python

2025-02-18
uv: حل باريتو لإدارة مشاريع Python

بعد عام من استخدام uv، أداة إدارة مشاريع Python من Astral، خلص الكاتب إلى أنها حل باريتو فعال للغاية. uv مستقلة عن Python نفسه، وسهلة التثبيت والاستخدام، وتوفر واجهة pip و venv. توفر طريقة موحدة لتثبيت وتشغيل Python عبر الأنظمة الأساسية، وحل مشاكل التوافق. يتميز uv بمحلّل تبعيات قوي، وقدرات بناء، وأدوات سطر أوامر سهلة الاستخدام، مما يزيد من كفاءة المطور بشكل كبير. على الرغم من وجود بعض القيود في المشاريع القديمة أو بيئات الشركات المقيدة، يوصي الكاتب بشدة بتجربة uv أولاً نظرًا لتبسيطها لإدارة وتطوير مشاريع Python.

التطوير

جدل حول استخدام لغة Rust في نواة لينكس: مُدير النظام يرفض ضغط Linus

2025-02-18

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

التطوير

عدم عدالة كافكا: لماذا تعدّ نظامًا سيئًا لانتظام المهام عند منخفضة الإنتاجية

2025-02-18

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

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

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

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

التطوير

من جافا/كوتلن إلى جو: تحول فعال

2025-02-18
من جافا/كوتلن إلى جو: تحول فعال

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

التطوير

مدير ملفات سريع للغاية: لوحات قابلة للتخصيص، علامات تبويب، و بحث قوي

2025-02-18
مدير ملفات سريع للغاية: لوحات قابلة للتخصيص، علامات تبويب، و بحث قوي

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

استكشاف أخطاء Amazon EKS وإصلاحها: "يجب عليك تسجيل الدخول إلى الخادم (غير مصرح به)"

2025-02-18
استكشاف أخطاء  Amazon EKS  وإصلاحها:

هل تواجه خطأ "يجب عليك تسجيل الدخول إلى الخادم (غير مصرح به)" عند الاتصال بخادم واجهة برمجة التطبيقات Amazon EKS؟ يحدث هذا عادةً لأن كيان IAM المُهيأ في kubectl لم يتم التحقق من صحته بواسطة Amazon EKS. يوضح هذا الدليل حلولًا لاثنين من السيناريوهات: أنت منشئ العنقود أو لست كذلك. إذا كنت منشئ العنقود، فتأكد من أن كيان IAM المُهيأ لـ AWS CLI يتطابق مع الكيان المستخدم لإنشاء العنقود وقم بتحديث ملف kubeconfig الخاص بك باستخدام `aws eks update-kubeconfig`. وإلا، فقم بتعيين كيان IAM الخاص بك إلى aws-auth ConfigMap باستخدام `eksctl create iamidentitymapping` أو عن طريق تحرير ConfigMap يدويًا. أخيرًا، لا تنس التحقق من سجلات CloudWatch لاستكشاف الأخطاء وإصلاحها.

التطوير

اختراق تطوير البرمجيات باستخدام نماذج اللغات الكبيرة (LLMs): سير عمل للسرعة والكفاءة

2025-02-18
اختراق تطوير البرمجيات باستخدام نماذج اللغات الكبيرة (LLMs): سير عمل للسرعة والكفاءة

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

التطوير

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

2025-02-18
صعود بيوت البحيرات المفتوحة متعددة المحركات للبيانات: تطبيق باستخدام S3 و Python

تشهد صناعة البيانات ارتفاعًا في تبني بيوت البحيرات المفتوحة متعددة المحركات. توضح هذه السلسلة المكونة من ستة أجزاء كيفية بناء بيت بحيرة مفتوح باستخدام S3 و Python، مع دعم محركات متعددة. يدير Open Catalog من Snowflake البيانات الوصفية، بينما يسمح PyArrow وPolars بمعالجة البيانات وتحليلها. والنتيجة؟ قدرات قراءة/كتابة متزامنة عبر Spark وSnowflake وPolars، مما يلغي عمليات ETL المكلفة ويمثل تطورًا كبيرًا في مجموعة بيانات.

كليين: مدير حاويات يشبه دوكر لنظام FreeBSD

2025-02-18
كليين: مدير حاويات يشبه دوكر لنظام FreeBSD

كليين هو نظام لإدارة الحاويات تم تصميمه خصيصًا لنظام FreeBSD، حيث يجلب المفاهيم المألوفة من دوكر مع الاستفادة من أدوات FreeBSD الأصلية وفلسفتها. باتباع مبدأ KISS، يستخدم أدوات FreeBSD الأصلية مثل السجون وZFS وPF لتبسيط نشر التطبيقات وصيانتها وترقيتها. يتميز بنظام عميل-خادم حيث يتواصل العميل Klee (بايثون) مع الخادم Kleened (إيليكسير). يوفر كليين طريقة مبسطة لإنشاء وتشغيل وإدارة التطبيقات المحاوية مع الشفافية والتحكم. إنه مألوف لمستخدمي دوكر، كما أنه يقلل من عتبة الدخول للمستخدمين الجدد في FreeBSD.

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

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

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

التطوير

غطسة عميقة في XOR: من المنطق البولياني إلى التشفير

2025-02-18

تتناول هذه المقالة بالتفصيل عامل التشغيل XOR (أو الحصري) البسيط للوهلة الأولى في علوم الكمبيوتر. تبدأ من XOR في المنطق البولياني، وتتقدم إلى العمليات المنطقية بتّية على الأعداد الصحيحة، وتستكشف تطبيقات XOR في التشفير، ورسومات البكسل، ونظرية الألعاب، والمجالات المحدودة. يستخدم الكاتب سردًا شيقًا والعديد من الأمثلة لشرح خصائص XOR واستخداماته، مثل دوره كطريقة تشفير بسيطة في التشفير، والرسم والمسح القابل للعكس في رسومات البكسل، وتحديد الاستراتيجيات المثلى في لعبة Nim. أخيرًا، تربط المقالة XOR بمفاهيم رياضية مثل الفرق المتماثل للمجموعات، والمجموعات ذات الأس 2، ومجموع Nim، والمجال المحدود GF(2)، ومجاميع التحقق CRC، وكشف الأساسيات الرياضية العميقة والتطبيقات الواسعة لعامل التشغيل XOR.

إساءة استخدام خوارزميات البحث العامة في مشكلات التحسين الديناميكي

2025-02-18

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

جعل عملية بناء التصحيح الخاصة بي أسرع بمقدار 100 مرة: SIMD والسيليكون المخصص لإنقاذ الموقف

2025-02-18

أثناء تطوير تطبيق تورنت قائم على لغة البرمجة سي، واجه المؤلف مشكلة في بطء وقت بدء تشغيل بناء التصحيح (20-30 ثانية). كان هذا يرجع أساسًا إلى التحقق من قيم هاش SHA1 لكل جزء من الملف الذي تم تنزيله عند بدء تشغيل البرنامج، مما تباطأ بشكل كبير بسبب Address Sanitizer في وضع التصحيح. يستكشف المقال عدة تقنيات لتحسين الأداء، بما في ذلك استخدام تعليمات SIMD وأجهزة تسريع SHA المخصصة لوحدة المعالجة المركزية. في النهاية، باستخدام مجموعة تعليمات توسيع SHA من إنتل، تم تقليل وقت بدء التشغيل إلى 866.9 مللي ثانية، مما حقق تحسنًا في الأداء بمقدار 100 مرة. يفصل المقال تفاصيل تنفيذ ومقارنة الأداء للعديد من أساليب التحسين، ويناقش تحسين المُجمِّع وتأثير مدخلات/مخرجات القرص.

التطوير

إصدار Pi-hole v6: تعزيز الأداء وتحديث واجهة المستخدم

2025-02-18

صدر إصدار Pi-hole v6! يشتمل هذا الإصدار على عملية إعادة تصميم شاملة، حيث تم دمج خادم ويب مضمن وواجهة برمجة تطبيقات REST، وتم التخلص من lighttpd وPHP لتحسين الأداء وتقليل حجم التثبيت. وتشمل الميزات الجديدة دعم قوائم السماح بالاشتراك، وملف تكوين موحد، وواجهة مستخدم مُعاد تصميمها مع أوضاع أساسية وخبير، ودعم HTTPS أصلي، وصورة Docker تستند إلى Alpine لتقليل الحجم. تقوم الترقية بترحيل التكوينات تلقائيًا، ولكن يُنصح بعمل نسخة احتياطية.

التطوير فلترة الشبكة

الحوسبة الحفازة: إنجاز في الحوسبة المقيدة بالذاكرة

2025-02-18
الحوسبة الحفازة: إنجاز في الحوسبة المقيدة بالذاكرة

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

هجرة Svelte 5: مكاسب الأداء، وزيادة العبء المعرفي

2025-02-18
هجرة Svelte 5: مكاسب الأداء، وزيادة العبء المعرفي

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

FFmpegKit متقاعد رسميًا: قيود زمنية وتحديات قانونية تجبر على الإغلاق

2025-02-18

بعد سنوات من التطوير، تم تقاعد مكتبة معالجة الفيديو FFmpegKit رسميًا. ذكر المؤلف قيودًا زمنية وتعقيدات قانونية تتعلق بتراخيص FFmpeg كأسباب لعدم قدرته على مواصلة صيانة المشروع. سيتم إزالة الإصدار 6.0، وهو الإصدار الأخير، من التنزيل بعد 1 أبريل 2025. يُنصح المستخدمون بتجميع FFmpegKit محليًا أو إيجاد حلول بديلة. يبرز هذا التحديات المتعلقة بصيانة مشاريع المصدر المفتوح وأهمية التنقل في عقود الترخيص المعقدة.

التطوير
1 2 156 157 158 160 162 163 164 213 214