Category: التطوير

قائمة مراجعة خصوصية Firefox: تعزيز خصوصيتك

2025-08-30
قائمة مراجعة خصوصية Firefox: تعزيز خصوصيتك

يوفر هذا الدليل خطوات لتحسين إعدادات الخصوصية في متصفح Firefox. يفضل الكاتب Firefox على المتصفحات القائمة على Chromium مثل Brave نظرًا لكون Mozilla مؤسسة غير ربحية وملتزمة بالمصدر المفتوح. يوضح هذا الدليل كيفية تحسين الخصوصية من خلال الإعدادات والامتدادات، بما في ذلك الوصول إلى الإعدادات واستخدام about:config (مع ملاحظة تحذيرية). يرحب الكاتب باقتراحات التحسين.

التطوير

Vlang: عرض لغة متعددة الأوجه

2025-08-30

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

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

Amazon SQS Queues العادلة: التخفيف من تأثير الجيران الصاخبين في الأنظمة متعددة المستأجرين

2025-08-30
Amazon SQS Queues العادلة: التخفيف من تأثير الجيران الصاخبين في الأنظمة متعددة المستأجرين

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

التطوير Queues العادلة

تحسين خوارزميات تبسيط المضلعات الجغرافية

2025-08-30

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

التطوير تبسيط الهندسة

العبء الإدراكي: القاتل الصامت في تطوير البرمجيات

2025-08-30
العبء الإدراكي: القاتل الصامت في تطوير البرمجيات

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

التطوير

فشل dlclose: تفاعل غريب بين مكتبات Rust و C++

2025-08-30

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

F-Stack: إطار عمل شبكي مفتوح المصدر عالي الأداء قائم على DPDK

2025-08-30

مع التطور السريع لبطاقات واجهة الشبكة (NICs)، أصبح الأداء الضعيف لمعالجة حزم البيانات باستخدام نواة لينكس عنق زجاجة. لتلبية احتياجات الإنترنت لمعالجة الشبكات عالية الأداء، اكتسبت تقنيات تجاوز النواة مثل DPDK و NETMAP و PF_RING المزيد من الاهتمام. يُعد F-Stack إطار عمل شبكي مفتوح المصدر عالي الأداء قائم على DPDK. يستخدم نواة لينكس فقط لمعالجة تدفق التحكم، حيث تتم معالجة جميع تدفقات البيانات في مساحة المستخدم. هذا يتجنب الاختناقات في الأداء الناجمة عن نسخ حزم النواة، وجدولة الخيوط، ونداءات النظام، والانقطاعات. يتضمن F-Stack مجموعة TCP/IP لمساحة المستخدم (بناءً على FreeBSD 11.0 stable)، وواجهات برمجة التطبيقات POSIX (Socket، Epoll، Kqueue)، ومجموعة تطوير برمجيات (Coroutine)، وواجهات للتطبيقات مثل Nginx و Redis، بهدف تحقيق أداء متفوق لمعالجة الشبكات.

التطوير تجاوز النواة

أتمتة تعداد مكافآت الأخطاء باستخدام n8n وبوت ديسكورد

2025-08-30
أتمتة تعداد مكافآت الأخطاء باستخدام n8n وبوت ديسكورد

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

التطوير

كتابة الأوراق البحثية الرياضية: تجنب الأخطاء الشائعة في التعريفات والتعابير

2025-08-30

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

تيلور أوتويل من لارافيل: 14 عامًا من بناء أسطورة إطار عمل الويب

2025-08-30

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

التطوير

أبسط شيء يمكن أن يعمل: فلسفة تصميم البرمجيات

2025-08-30

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

التطوير

XSLT 3.0: ترقية رئيسية لتحويلات XML

2025-08-30

لا يُعد XSLT 3.0 مجرد تحديث تدريجي، بل إنه يرفع XSLT من أداة تحويل XML إلى لغة تحويل شاملة لأنماط البيانات الشائعة مثل JSON و XML. وهو يقدم دعمًا لـ JSON من خلال وظائف `json-to-xml()` و `xml-to-json()` للتحويل السلس. تشمل التحسينات الأخرى بناء جملة مبسّط مع قوالب قيمة النص (TVTs)، وتقييم تعبيرات XPath ديناميكيًا، ووظائف، ومتغيرات مُحدّدة الأنواع، وحزم الوظائف، ومعالجة الاستثناءات، مما يعزز قابلية قراءة التعليمات البرمجية وصيانتها. كما يدعم XSLT 3.0 معالجة البث وتحسينات الأداء، مما يجعله مثاليًا لتدفقات البيانات واسعة النطاق.

التطوير

متانة SQLite: الوثائق مقابل الواقع

2025-08-30

إعدادات متانة SQLite مُربكة. تتناقض الوثائق والتصريحات من مُنشئها ريتشارد هيب حول المتانة الافتراضية. ينبع ذلك من التفاعل المعقد بين خيارات التكوين `journal_mode` و `synchronous`، والمتطلبات المختلفة في الأوضاع المختلفة. تحلّل المقالة متطلبات المتانة في أوضاع DELETE و WAL، مُخلصاً إلى أن تعيين خيار `synchronous` بشكلٍ صريحٍ أمرٌ بالغ الأهمية لضمان استمرار البيانات، وتجنب الغموض والتغييرات المستقبلية في الإعدادات الافتراضية. كما يحذر من المشاكل المحتملة التي تُسببها مكتبات الجهات الخارجية ومواصفات macOS.

التطوير

معالجة الأخطاء في Rust: نهج هجين مع Snafu

2025-08-30
معالجة الأخطاء في Rust: نهج هجين مع Snafu

تُعد معالجة الأخطاء في Rust موضوعًا مثيرًا للجدل. توفر `anyhow` نوع خطأ عامًا لتسهيل تصحيح الأخطاء، بينما توفر `thiserror` أنواعًا دقيقة من القوائم لتوفير تصميم واجهة برمجة تطبيقات أفضل. تُفصّل هذه المقالة النهج الهجين الذي تتبعه Iroh باستخدام Snafu، والذي يجمع بين دقة `thiserror` وسهولة استخدام `anyhow`، مع التغلب على قيود تتبع المسار في Rust. يحافظ بذكاء على السياق المفصل ومسارات التتبع في سلاسل الأخطاء. يُبسّط كرت `n0-snafu` استخدام Snafu أكثر، خاصةً في الاختبارات. إن اختيار Iroh لـ Snafu يوازن بين الدقة وسهولة الاستخدام من أجل معالجة فعالة للأخطاء.

التطوير

تسريع اختبارات رمز بايثون: مجموعة قوية من importlib و pickle

2025-08-30
تسريع اختبارات رمز بايثون: مجموعة قوية من importlib و pickle

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

Nginx-CGI: إضافة دعم CGI إلى Nginx وAngie

2025-08-30
Nginx-CGI: إضافة دعم CGI إلى Nginx وAngie

تضيف إضافة Nginx-CGI دعم CGI إلى خوادم الويب Nginx وAngie ، مما يسهل إنشاء تطبيقات منخفضة التردد ، وأنظمة محدودة الموارد ، ونماذج أولية. يدعم أنظمة تشغيل متعددة ، بما في ذلك Linux و macOS و BSD. توضح المقالة بالتفصيل عملية التثبيت والتكوين والاستخدام ، مع عرض طرق متعددة لتشغيل نصوص CGI: chroot و Docker و FreeBSD jails. كما يغطي اتفاقيات كتابة نصوص CGI ومعالجة طلبات HTTP واستجاباتها.

التطوير

بابا ياجا: لغة برمجة وظيفية بسيطة للغاية

2025-08-30
بابا ياجا: لغة برمجة وظيفية بسيطة للغاية

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

(eli.li)
التطوير بابا ياجا

محاكي JIT لـ aarch64 بلغة Rust: مرحباً بالعالم!

2025-08-30

قام الكاتب بإنشاء محاكي لمعمارية مجموعة تعليمات aarch64 باستخدام لغة Rust ومُجمِّع JIT Cranelift. وتُفصّل المقالة العملية، من تعليمات الجهاز الظاهري إلى تنفيذ التعليمات الأصلية، شاملةً فك تشفير التعليمات، والترجمة JIT، وإدارة الذاكرة، ومحاكاة الأجهزة. وقد تم تنفيذ محاكاة PL011 UART، ويُتيح gdbstub عملية التصحيح. يُشغّل المحاكي حاليًا برامج بسيطة منخفضة المستوى، مع أهداف مستقبلية تشمل دعم بدء تشغيل Linux. وسيركّز التطوير في المستقبل على معالجة الاستثناءات، ودعم المؤقّت، وتنفيذ وحدة إدارة الذاكرة الظاهرية (MMU)، ووحدة تحكم المقاطعات.

التطوير

حان الوقت لحذف بعض الاختبارات

2025-08-30

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

التطوير

arXivLabs: التعاون المجتمعي في تطوير ميزات arXiv

2025-08-30
arXivLabs: التعاون المجتمعي في تطوير ميزات arXiv

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

التطوير

تطور بنية تطبيق البريد الإلكتروني Marco التي تعمل في وضع عدم الاتصال أولاً

2025-08-29
تطور بنية تطبيق البريد الإلكتروني Marco التي تعمل في وضع عدم الاتصال أولاً

شرع فريق تطبيق البريد الإلكتروني Marco في رحلة طويلة لبناء تطبيق قائم على IMAP، ومتعدد المنصات، ويعمل في وضع عدم الاتصال أولاً. قاموا بتجربة العديد من الحلول، بما في ذلك WatermelonDB و Triplit و InstantDB، لكنهم تخلوا عنها بسبب اختناقات الأداء أو القيود الوظيفية. في النهاية، اختاروا Replicache لأدائه العالي ومرونته، وقاموا بدمجه مع Orama من أجل الفهرسة والبحث القويين. تبرز هذه القصة التحديات والفرص المتعلقة ببناء تطبيقات عالية الأداء تعمل في وضع عدم الاتصال أولاً، وتنبئ بمستقبل مزامنة البيانات: من نقاط النهاية المشتركة إلى قواعد البيانات المشتركة.

SeedBox Lite: بثّ ملفات التورنت على الفور

2025-08-29
SeedBox Lite: بثّ ملفات التورنت على الفور

SeedBox Lite هي منصة بثّ ملفات التورنت الثورية التي تتيح لك مشاهدة الأفلام والبرامج التلفزيونية على الفور، دون انتظار عمليات التنزيل الكاملة. تم بناؤها باستخدام تقنيات الويب الحديثة، وتقدم تجربة مشابهة لـ Netflix مع إمكانيات قوية لملفات التورنت. يدعم SeedBox Lite تنسيقات متعددة، ويتميز بالذاكرة التخزينية المؤقتة الذكية، ودعم الترجمة، وتصميم سريع الاستجابة، ويعمل بسلاسة على أنظمة التشغيل Windows وmacOS وLinux. الاستخدام سهل، حيث يتم التثبيت في دقائق معدودة باستخدام Docker أو PM2.

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

ترميز الذكاء الاصطناعي: ما مدى قربنا من البرمجة الذاتية الكاملة؟

2025-08-29
ترميز الذكاء الاصطناعي: ما مدى قربنا من البرمجة الذاتية الكاملة؟

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

التطوير

صياغة الرسائل النصية من لوحة مفاتيح الكمبيوتر

2025-08-29
صياغة الرسائل النصية من لوحة مفاتيح الكمبيوتر

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

محول غير رسمي لوثائق مطوري أبل إلى ماركدون

2025-08-29

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

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

محرك المصالحة المالية المدعوم بالذكاء الاصطناعي من ميدداي: أتمتة المهام المملة

2025-08-29
محرك المصالحة المالية المدعوم بالذكاء الاصطناعي من ميدداي: أتمتة المهام المملة

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

مصائد أنواع القيم القابلة للـ null في C#: عندما لا يكون T? ما تعتقد

2025-08-29

يؤدي إعادة استخدام بناء الجملة `T?` في C# لكلا النوعين القابل للـ null من أنواع القيم والمرجعية إلى حدوث ارتباك. بالنسبة لأنواع القيم، فإن `T?` هو سكر نحوي لـ `Nullable`، ويمثل أنواعًا متميزة. ومع ذلك، بالنسبة لأنواع المرجع، فإن `T?` هو مجرد علامة على النية؛ بعد التجميع، يكون `T?` و `T` من نفس النوع. هذه الاختلافات تؤدي إلى أخطاء في التجميع عند كتابة طرق عامة. توضح المقالة هذه المشكلة باستخدام طريقة `SelectNotNull` التي تحاكي `List.choose` من F#. الحل يتضمن تحميل طرق زائد باستخدام قيود النوع (`where TR : class` و `where TR : struct`) لإزالة الغموض بين أنواع القيم والمرجع. على الرغم من حل المشكلة، إلا أن التصميم لا يزال غير أنيق.

مشاريع تدريب صيفي من جين ستريت: JSQL أسرع، وتحسينات في روابط Torch، وإدارة الذاكرة بين العمليات

2025-08-29
مشاريع تدريب صيفي من جين ستريت: JSQL أسرع، وتحسينات في روابط Torch، وإدارة الذاكرة بين العمليات

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

التطوير

ماوس هوائي Wear OS: محاكي جهاز Bluetooth HID

2025-08-29
ماوس هوائي Wear OS: محاكي جهاز Bluetooth HID

يُظهر هذا المشروع واجهة برمجة التطبيقات الجديدة لجهاز Bluetooth HID في Android P، حيث يُنفذ محاكيًا بسيطًا لماوس هوائي ومفاتيح مؤشر على جهاز Wear OS. اتصل بأجهزة الكمبيوتر المحمولة وأجهزة سطح المكتب التي تعمل بنظام Windows أو Linux أو Chrome OS أو macOS أو Android TV بدون برامج إضافية - كل ما تحتاجه هو جهاز استقبال Bluetooth. إن استخدام مكتبة Google VR لتتبع الاتجاه يضمن تجربة ماوس هوائي مستقرة وموثوقة.

التطوير ماوس هوائي

Envoy: أداة تسجيل أوامر طرفية خفيفة الوزن

2025-08-29
Envoy: أداة تسجيل أوامر طرفية خفيفة الوزن

Envoy هي أداة خلفية خفيفة الوزن تقوم بتسجيل أوامر محطة العمل الخاصة بك. وهي مصممة لتكون طريقة بسيطة وغير مزعجة للحفاظ على سجل لاستخدام shell الخاص بك، وهو ما قد يكون مفيدًا في تصحيح الأخطاء، أو تتبع العمل، أو ببساطة لتذكر ما قمت به. يبدأ Envoy ويتوقف عند الطلب، ويحفظ في ملف مخصص، ويعمل على كل من Linux و macOS باستخدام bash أو zsh. التثبيت بسيط: استنسخ المستودع، وابني الملف القابل للتنفيذ، ثم أضف خطاف shell إلى ملف التكوين الخاص بك (.zshrc أو .bashrc). يتم تخزين ملفات السجل وملفات الحالة مع الملف القابل للتنفيذ.

التطوير تسجيل المحطة
1 2 14 15 16 18 20 21 22 213 214