Category: التطوير

اختبار الدالة القائم على اللياقة في لغة لِسب

2025-04-07

يقوم هذا الكود بتعريف دالة لِسب تُسمى `fitness` تقوم بتقييم مدى ملائمة دالة تم توليدها. تقارن هذه الدالة بين ناتج الدالة المُولدة (`form`) و ناتج الدالة المُستهدفة (`fitness-fn`)، محسِبةً قيمةً لملائمة تتراوح بين 0 و 1، حيث تشير القيمة الأعلى إلى ملائمة أفضل. تتضمن الدالة معالجة للأخطاء؛ فهي تُعيد `NIL` في حالة قيام الدالة المُولدة بتنفيذ شفرة غير قانونية. تقوم دالة `fitness` بالتكرار على قائمة من مدخلات الاختبار (`test-input`)، مُعيدًةً في النهاية حاصل ضرب جميع قيم الملائمة كقيمة ملائمة شاملة. تُظهر الأمثلة كيفية تطبيق الدالة على دوال مُولدة مُختلفة و حساب درجات ملائمتها.

التطوير القابل للتشكيل: إعادة تشكيل البرمجة باستخدام أدوات السياق

2025-04-07
التطوير القابل للتشكيل: إعادة تشكيل البرمجة باستخدام أدوات السياق

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

ريفي: تقنية الريش المتجهة الثورية - إنجاز في الأداء

2025-04-06
ريفي: تقنية الريش المتجهة الثورية - إنجاز في الأداء

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

التطوير محرك العرض

التأهيل الثابت لـ Literals السلسلة في لغة C: دراسة للتأثيرات المحتملة

2025-04-06
التأهيل الثابت لـ Literals السلسلة في لغة C: دراسة للتأثيرات المحتملة

اقترح مارتن أوكر تغيير نوع Literals السلسلة في لغة C إلى نوع أساسي مؤهل بثابت، على غرار لغة C++. وعلى الرغم من أن المُترجمين يدعمون هذا منذ فترة طويلة (بعضهم افتراضيًا)، إلا أن هذا التغيير المعياري قد يؤثر على الكود الحالي. لتقييم هذا التأثير، يطلب أوكر تقارير فعلية من المطورين حول خبراتهم مع خيارات المُترجم للتأهيل الثابت (مثل -Wwrite-strings من GCC). والهدف هو جمع البيانات حول سهولة التنفيذ، وكشف أخطاء التأهيل، والجدوى العامة قبل المضي قدمًا في الاقتراح، مع إعطاء الأولوية للحقائق على الآراء.

مكالمات الذكاء الاصطناعي الآمنة من خلال مكتبة OpenAI وواجهة برمجة تطبيقات Gemini

2025-04-06

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

macOS Sequoia يحل محل rsync بـ openrsync

2025-04-06
macOS Sequoia يحل محل rsync بـ openrsync

في نظام macOS Sequoia، استبدلت Apple أداة rsync 2.6.9، التي استخدمت لما يقرب من عقدين من الزمن، بأداة openrsync. ويعود سبب هذا التغيير إلى مشكلات الامتثال لرخصة GPLv3 المستخدمة في rsync 3.x. تستخدم openrsync رخصة ISC الأكثر تساهلاً، مما يمنح Apple مرونة أكبر في التحديث والصيانة. وعلى الرغم من أن openrsync متوافقة مع rsync، إلا أنها تدعم مجموعة فرعية فقط من وسيطات سطر الأوامر الخاصة بـ rsync، مما يعني فقدان بعض الوظائف القديمة. وينبغي على المستخدمين الرجوع إلى الوثائق الرسمية لمعرفة الميزات المدعومة.

التطوير

مونكيزباو: إطار عمل ويب قائم على LLM ومدفوع بالنوايا

2025-04-06
مونكيزباو: إطار عمل ويب قائم على LLM ومدفوع بالنوايا

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

مصائد الأمان في Rust: حتى Rust الآمن ليس مضمونًا

2025-04-06
مصائد الأمان في Rust: حتى Rust الآمن ليس مضمونًا

تكشف هذه المقالة عن المصائد الشائعة في شفرة Rust الآمنة والتي يفوتها المُجمِّع. تغطي المقالة تجاوزات الأعداد الصحيحة، وأخطاء تحويل الأنواع، ومشاكل تجاوز حدود المصفوفة، والحالات غير الصالحة، وكشف البيانات الحساسة، وأكثر من ذلك، مع توفير حلول مثل الحساب المُتحقق، وTryFrom، وطريقة `get`، وأنواع مخصصة. يُشدد الكاتب على أنه حتى مع ضمانات أمان الذاكرة في Rust، يحتاج المطورون إلى الانضباط، مع الجمع بين الاختبارات، والفحص، وFuzzing لبناء تطبيقات قوية.

التطوير

إخفاء عناصر الويب التي تعتمد على جافا سكريبت بأناقة

2025-04-06
إخفاء عناصر الويب التي تعتمد على جافا سكريبت بأناقة

يستكشف هذا المقال ثلاث طرق أنيقة لإخفاء عناصر الويب التي تعتمد على جافا سكريبت. الطريقة الأولى تضيف اسم فئة ديناميكيًا باستخدام جافا سكريبت، لكنها ليست موجزة بما فيه الكفاية. الطريقة الثانية تستخدم علامتي `` و `` لإخفاء العناصر مباشرة في CSS، لكنها تحمل تكاليف صيانة أعلى. الطريقة الثالثة، وهي النهج الموصى به، تستخدم اسم فئة عام `d-js-required` مع علامتي `<noscript>` و `<style>`. هذا يتطلب فقط تعديل قاعدة CSS واحدة لإخفاء جميع عناصر جافا سكريبت، مما يوفر حلاً نظيفًا وفعالًا.

التطوير

من الفضول إلى الكود: تأملات مهندس برمجيات في عامه الثلاثين

2025-04-06
من الفضول إلى الكود: تأملات مهندس برمجيات في عامه الثلاثين

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

التطوير نمو شخصي

mem-isolate: تشغيل التعليمات البرمجية غير الآمنة بأمان

2025-04-06
mem-isolate: تشغيل التعليمات البرمجية غير الآمنة بأمان

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

LocalScore: قيّم نماذج اللغات الكبيرة المحلية الخاصة بك بسهولة

2025-04-06
LocalScore: قيّم نماذج اللغات الكبيرة المحلية الخاصة بك بسهولة

LocalScore أداة لقياس أداء نماذج اللغات الكبيرة المحلية. يوفر طريقتين للتشغيل: تنزيل نماذج رسمية أو استخدام نماذج .gguf الخاصة بك. اختر نموذجًا مرجعيًا (Tiny، Small، Medium) بناءً على نظام التشغيل لديك (macOS/Linux أو Windows) والذاكرة المتوفرة. يستخدم أوامر سطر أوامر بسيطة ويوفر دليلًا لاستكشاف الأخطاء وإصلاحها والوثائق.

أداء WASM في المتصفح: DuckDB و Apache Arrow و Web Workers قيد التشغيل

2025-04-06
أداء WASM في المتصفح: DuckDB و Apache Arrow و Web Workers قيد التشغيل

بنت Motif Analytics أداة تحليلات تفاعلية عالية في المتصفح باستخدام DuckDB WASM و Apache Arrow و Web Workers، مما يتيح للمستخدمين تجربة الأداة دون أي التزام. وتفصل المقالة جوانب القوة والضعف في هذه المجموعة من التقنيات، بما في ذلك أداء DuckDB WASM (أبطأ من الإصدار الأصلي، لكن التحسينات تساعد)، وعدم التوافق في المخططات الذي تم اكتشافه عند التوازي مع Web Workers (مثل، فشل إدراج البيانات بسبب عدم تطابق المخططات). ويتم مشاركة الأخطاء والقيود، مع تسليط الضوء على التطوير السريع لـ DuckDB WASM والتحسينات الواعدة في المستقبل.

التطوير

ImgFiber: ضغط الصور بدون فقدان مع وفورات كبيرة

2025-04-06
ImgFiber: ضغط الصور بدون فقدان مع وفورات كبيرة

يُثني مطورو تطبيق خلفيات Zeel Walls وتطبيقات أخرى على ImgFiber، وهي أداة ضغط صور سريعة وفعالة بدون فقدان. لقد خفضت بشكل كبير تكاليف الخادم وأوقات التحميل مع الحفاظ على جودة الصورة. بفضل معدل ضغط أعلى بنسبة 25% تقريبًا من المنافسين، يتطلع المطورون بفارغ الصبر إلى إصدار تطبيق Mac لتحسين سير العمل بشكل أكبر.

التطوير تكاليف الخادم

أخطاء الترطيب في React في عرض الخادم: الأسباب والحلول

2025-04-06
أخطاء الترطيب في React في عرض الخادم: الأسباب والحلول

تتناول هذه المقالة الأخطاء الشائعة في الترطيب التي تم اكتشافها في عرض الخادم (SSR) لـ React. باستخدام مثال بسيط لتطبيق React/Express، تُظهر هذه المقالة كيف تحدث أخطاء الترطيب: عندما لا يتطابق HTML الذي تم عرضه مبدئيًا بواسطة الخادم مع بنية المكونات التي يتوقعها React أثناء ترطيب العميل. تشرح المقالة بالتفصيل الفرق بين `hydrateRoot` و `createRoot`، وتقدم العديد من الحلول، بما في ذلك التحقق من الاتساق بين عمليات العرض من جانب الخادم والعميل، ومعالجة واجهات برمجة التطبيقات الخاصة بالمتصفح، واستخدام `useEffect` لمنع العرض قبل اكتمال الترطيب. كما تسلط الضوء على أهمية تجنب HTML غير صالح ومعالجة جوانب بيئة المتصفح مثل localStorage. والهدف النهائي هو ضمان عمليات عرض متسقة من جانب الخادم والعميل لتجنب أخطاء الترطيب وتحسين تجربة المستخدم.

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

لغز الفاصلة: لماذا تحتاج بناء جملة JSON إلى إعادة النظر

2025-04-06

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

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

مقارنة أداء: ستة خوادم بلاطات متجهة مفتوحة المصدر من PostGIS

2025-04-06
مقارنة أداء: ستة خوادم بلاطات متجهة مفتوحة المصدر من PostGIS

تقارن أطروحة الماجستير الخاصة بـ Fabian Rechsteiner ستة خوادم بلاطات متجهة مفتوحة المصدر من PostGIS (BBOX، ldproxy، Martin، pg_tileserv، Tegola، TiPg) من حيث السرعة. يتم تقديم النتائج من خلال مقارنة تفاعلية للخرائط على vectormap.ch ومستودع GitHub مع رمز قابل للتكرار. على الرغم من أن السرعة ليست العامل الوحيد، إلا أن هذا المعيار يوفر رؤى قيّمة لاختيار خادم بلاطات متجهة.

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

خطأ غامض في تعطيل كلمة مرور SSH على Ubuntu 24.04

2025-04-06

يبدو تعطيل الوصول بكلمة مرور SSH عبر الإنترنت مع السماح به على الشبكة المحلية على خادم Ubuntu 24.04 أمرًا بسيطًا باستخدام sshd_config. ومع ذلك، تم تجاهل ملف التكوين المخصص في /etc/ssh/sshd_config.d/ بعد إعادة تشغيل شيطون SSH. كان السبب هو قاعدة تكوين "من يصل أولاً يخدم أولاً" لـ sshd_config، وملف "50-cloud-init.conf" الذي تم إنشاؤه بواسطة النظام والذي يحتوي على "PasswordAuthentication yes"، والذي تم تحميله قبل الملف المخصص. أدى إعادة تسمية ملف التكوين المخصص إلى "10-no-passwords.conf" إلى حل المشكلة، مما يضمن تحميله أولاً.

التطوير تهيئة الخادم

Owl: التكرار المتباعد لتحسين الذاكرة والإبداع

2025-04-06

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

مضاعفة الجسم لعلاج اضطراب نقص الانتباه وفرط النشاط: خدعة إنتاجية فعالة بشكل مدهش

2025-04-06
مضاعفة الجسم لعلاج اضطراب نقص الانتباه وفرط النشاط: خدعة إنتاجية فعالة بشكل مدهش

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

التطوير

حل خطأ غامض في قفل التشغيل التلقائي بنظام Windows

2025-04-06
حل خطأ غامض في قفل التشغيل التلقائي بنظام Windows

ميزة جديدة في أحد البرامج منعت أجهزة Windows من القفل التلقائي، بل وحتى من الدخول في وضع السكون. كشف التصحيح عن الجاني: تم استخدام وظائف `PowerCreateRequest` و `PowerSetRequest` لإبقاء الشاشة قيد التشغيل بواسطة مربع حوار "ما هو الجديد" الذي يبدو غير ضار. حتى إغلاق مربع الحوار لم يحل المشكلة. أظهر تحقيق أعمق باستخدام Spy++ أن مربع الحوار كان مخفيًا فقط، وليس مغلقًا، مما ترك طلبًا مستمرًا للطاقة. قام الفريق المسؤول عن الميزة الجديدة بإصلاح الخطأ. وتفصل المقالة أيضًا أدوات تشخيص بديلة مثل `powercfg` و `pwrtest`، بالإضافة إلى طريقة تتبع ETW القوية.

التطوير مشكلة الأداء

هندسة عكسية: فك شيفرة جهاز تعليمي للأطفال

2025-04-06
هندسة عكسية: فك شيفرة جهاز تعليمي للأطفال

يسرد هذا المنشور مدونة مشروع هندسة عكسية أول لأحد المؤلفين: وهو جهاز تعليمي للأطفال (LeapFrog LeapStart/VTech MagiBook). تبدأ الرحلة بالحصول على البرامج الثابتة من ملفات ذاكرة التخزين المؤقت لبرنامج VTech. الملفات الرئيسية التي تم تحديدها تشمل 'System' و 'FileSys'. 'FileSys' هي صورة لنظام ملفات FAT32 تحتوي على بيانات التطبيقات والصوت والكتب. يبدو أن 'System' عبارة عن ملف ثنائي ARM، يحتوي على معلومات C++، وسجلات، ومعلومات نواة (uC/OS-II). تتضمن الخطوات المستقبلية تحليلًا أعمق لهذه الملفات، بهدف فهم رمز التعرف على النقاط ورمز تشغيل الصوت، وإضافة صوت مخصص.

نواة XNU: أساس النظام البيئي لشركة أبل

2025-04-06
نواة XNU: أساس النظام البيئي لشركة أبل

يستكشف هذا البحث المتعمق بنية نواة XNU وتطورها، وهي النواة الأساسية التي تعمل على تشغيل أنظمة تشغيل أبل (macOS و iOS وما إلى ذلك). XNU هي نواة هجينة فريدة تجمع بين نقاط القوة لنواة Mach الصغيرة ونظام BSD Unix، مما يوازن بين الوحدات والوظائف والأداء. من خلال تتبع تاريخ XNU من أصولها في نواة Mach الصغيرة، يغطي المقال التحولات المعمارية من PowerPC إلى Intel إلى Apple Silicon، والتحسينات في دعم المعالجات المتعددة، والقدرات 64 بت، وآليات الأمان المحسّنة (SIP و Secure Enclave و Exclaves). يكمن نجاح XNU في مرونته وقابلية توسّعه، حيث يتكيف مع الأجهزة التي تتراوح من iPhones إلى Mac Pros، ويوفر أساسًا قويًا لنظام أبل البيئي.

الاختبار ليس تكلفة غارقة: كيف يُسرّع فريقك

2025-04-05
الاختبار ليس تكلفة غارقة: كيف يُسرّع فريقك

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

التطوير

أتمتة إخراج QEMU والتحكم فيه باستخدام نصوص Shell

2025-04-05
أتمتة إخراج QEMU والتحكم فيه باستخدام نصوص Shell

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

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

Landrun: بيئة رملية خفيفة وآمنة على مستوى النواة لنظام لينكس

2025-04-05
Landrun: بيئة رملية خفيفة وآمنة على مستوى النواة لنظام لينكس

Landrun أداة خفيفة الوزن وآمنة لتشغيل عمليات لينكس، مستخدمة وحدة الأمان Landlock الأصلية في النواة. توفر تحكمًا دقيقًا في الوصول إلى نظام الملفات والشبكة، دون الحاجة إلى امتيازات المسؤول، أو الحاويات، أو تكوينات SELinux/AppArmor المعقدة. يوفر Landrun أذونات القراءة والكتابة والتنفيذ للملفات والدلائل، بالإضافة إلى التحكم في الوصول إلى شبكة TCP. إنه قابل للتكوين بدرجة عالية ويدعم أنظمة لينكس 5.13 وما فوق (تتطلب قيود الشبكة 6.7 وما فوق). مع أمثلة واضحة ودمج systemd، يسهّل Landrun تشغيل الأوامر والخدمات بأمان محسّن.

تحسين بروتوكولات قواعد البيانات: منظور تجربة المطور

2025-04-05

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

التطوير

نص غني، نص فقير: ألم الترميز المخفي للحروف

2025-04-05

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

التطوير النص الغني

مُفَسِّرات Go أسرع: اللحاق بـ C++

2025-04-05
مُفَسِّرات Go أسرع: اللحاق بـ C++

تم تنفيذ محرك تقييم SQL المضمّن في Vitess، وهو قاعدة البيانات مفتوحة المصدر التي تُشغّل PlanetScale، في الأصل كمحوّل AST كان يعمل مباشرةً على AST SQL المُولَّدة بواسطة مُحلِّلنا. خلال العام الماضي، استبدلناه تدريجيًا بآلة افتراضية، والتي على الرغم من كتابتها بلغة Go بشكلٍ أصلي، إلا أنها تُقدّم أداءً مُشابهاً لرمز التقييم الأصلي بلغة C++ في MySQL. والأكثر لفتًا للنظر، أن الآلة الافتراضية الجديدة أثبتت مرارًا وتكرارًا أنها أسهل في الصيانة من مُفَسِّر Go الأصلي، على الرغم من أنها أسرع بمقدار أوامر حجمية. دعونا نراجع خيارات التنفيذ التي اتخذناها للحصول على هذه النتائج المُذهلة.

التطوير

الدوال القابلة للتطبيق في Haskell: معالجة القيم في السياقات بشكل أنيق

2025-04-05

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

التطوير
1 2 119 120 121 123 125 126 127 213 214