Category: التطوير

C++ Ranges: نقاط الضعف في الأداء واستراتيجيات التحسين

2025-04-08

تتناول هذه المقالة مشاكل الأداء في محولات C++ Ranges مثل `views::filter` و `views::take_while`. هذه المحولات تُدخل مقارنات مُكررة للمُكررات، مما يؤثر على الكفاءة. يحلل الكاتب الأسباب الجذرية ويقترح حلين: استخدام مكتبة Flux من Tristan Brindle، والتي تُحسّن الأداء من خلال التكرار الداخلي وإدارة الذاكرة المُحسّنة؛ ونهجًا أكثر جذرية يستخدم ميزات تسلسل الرموز المحتملة في C++ لإنشاء رمز حلقة مُحسّن، مُتجاوزًا قيود Ranges. كلا الحلّين يُحسّنان الكفاءة بشكل كبير، خاصةً لعمليات النطاقات المعقدة التي تتضمن `views::reverse`.

التطوير

حل لغز لايتون بأناقة باستخدام برولوج

2025-04-08
حل لغز لايتون بأناقة باستخدام برولوج

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

التطوير حل الألغاز

text-wrap: pretty في سفاري: عصر جديد في طباعة الويب

2025-04-08
text-wrap: pretty في سفاري: عصر جديد في طباعة الويب

يقدم سفاري تكنولوجي بريفو 216 خاصية `text-wrap: pretty`، مما يحدث ثورة في تصميم النصوص على الويب. باستخدام خوارزميات تعتمد على الفقرات، فهي تعالج مشاكل الطباعة طويلة الأمد مثل السطور الأخيرة القصيرة جدًا، والحواف غير المتساوية، ونهر الكلمات المشتت للانتباه. على عكس الخوارزميات التقليدية سطرًا بسطر، تقيم خاصية `pretty` الفقرة بأكملها، مما يُحسّن التصميم من أجل قابلية قراءة أفضل وجمالية أفضل. على الرغم من أن كروم وغيره من المتصفحات تدعم خاصية `pretty`، إلا أن تنفيذها في سفاري أكثر شمولية، حيث يُعدّل الفقرة بأكملها بدلاً من السطور الأخيرة فقط. تركّز خاصية `text-wrap: balance` على جعل جميع الأسطر بنفس الطول تقريبًا، وهي مثالية للعناوين والنصوص الأقصر. يجب على المطورين اختيار القيمة المناسبة لـ`text-wrap` وفقًا لاحتياجاتهم وأن يكونوا على دراية بتأثيرات الأداء.

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

كوروت: قابليّة مراقبة قابلة للتنفيذ بدون تعديل الاكواد

2025-04-08
كوروت: قابليّة مراقبة قابلة للتنفيذ بدون تعديل الاكواد

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

التطوير

Sculptor: بيئة وكلاء ترميز تعمل بالذكاء الاصطناعي لأفضل ممارسات هندسة البرمجيات

2025-04-08
Sculptor: بيئة وكلاء ترميز تعمل بالذكاء الاصطناعي لأفضل ممارسات هندسة البرمجيات

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

التطوير وكيل الكود

HNSW: عالم صغير قابل للملاحة هرميًا للبحث الفعال عن أقرب الجيران

2025-04-08
HNSW: عالم صغير قابل للملاحة هرميًا للبحث الفعال عن أقرب الجيران

HNSW هي خوارزمية تعتمد على رسم بياني للعالم الصغير القابل للملاحة هرميًا للبحث عن أقرب الجيران لدمج المتجهات. تستخدم هيكلًا هرميًا لتسريع عملية البحث. تبني الخوارزمية هياكل رسم بياني متفرقة وكثيفة على مستويات مختلفة وتبحث بكفاءة من أعلى إلى أسفل. الكود مختصر، يستخدم C++ الحديث و Eigen لتسريع SIMD، ولا يحتاج إلا إلى حوالي 500 سطر من التعليمات البرمجية.

أشجار ثلاثية الجذور غير مرتبة: مغامرة تركيبية باستخدام Sage

2025-04-08
أشجار ثلاثية الجذور غير مرتبة: مغامرة تركيبية باستخدام Sage

تتناول هذه المدونة مشكلة تحديّة تتمثل في عدّ الأشجار الثلاثية الجذور غير المرتبة باستخدام علم التوليفات التحليلي، وتحديدًا طريقة Flajolet-Sedgewick. يبدأ الكاتب بحل الحالة الأبسط للأشجار المرتبة، مستنتجًا تقريبًا مقاربًا من خلال دوال التوليد وتحليل التفرد، وكل ذلك مُنفّذ ومُتحقّق في Sage. ثم يتم تناول الحالة الأكثر تعقيدًا للأشجار غير المرتبة باستخدام عدّ Pólya-Redfield، مما يؤدي إلى حلّ رقمي وصيغة مقاربة، يتم التحقق منها مرة أخرى باستخدام Sage. توفر المدونة شرحًا واضحًا وجذابًا لمفاهيم التحليل المعقّد، مثل متسلسلات Puiseux، وتقدم كود Sage جاهز للاستخدام، مما يجعلها موردًا قيّمًا لأولئك المهتمين بتقاطع الخوارزميات والرياضيات.

إضافة LLM: تلخيص موضوعات Hacker News بسهولة

2025-04-08
إضافة LLM: تلخيص موضوعات Hacker News بسهولة

تتيح لك إضافة LLM الجديدة، `llm-hacker-news`، تلخيص موضوعات المحادثات على Hacker News بسهولة. ما عليك سوى تثبيت الإضافة واستخدام الأمر `llm -f hn:ID 'تعليماتك'` (مثلًا، `llm -f hn:43615912 'ملخص مع اقتباسات مباشرة توضيحية'`) للحصول على ملخص لموضوع المحادثة برقم التعريف المحدد (الموجود في عنوان URL للموضوع). تتوفر تعليمات التثبيت والإعداد المحلي في ملف README.

التطوير

htmx أقل، HTML أكثر: بناء مواقع ويب أفضل

2025-04-08

يتناول هذا المقال تجربة المؤلف على مدار عامين في بناء خدمات الويب باستخدام htmx، ويدافع عن نهج الحد الأدنى: إعطاء الأولوية لـ HTML البسيط بدلاً من الاعتماد بشكل كبير على تحسينات htmx مثل `hx-boost`. على الرغم من أن `hx-boost` يوفر تحديثات صفحات سلسة، إلا أنه يسبب مشاكل مثل تعارضات مع زر الرجوع في المتصفح واضطرابات في المكتبات الأخرى. يدافع الكاتب عن استخدام الروابط والنماذج HTML القياسية، والاستفادة من آليات التخزين المؤقت للمتصفح (ETags ورؤوس Cache-Control) من أجل تحديثات فعالة وتجربة مستخدم أفضل. تمتلك المتصفحات الحديثة بالفعل قدرات ممتازة لتحسين الأداء، مما يلغي الحاجة إلى الاعتماد المفرط على أطر عمل JavaScript لتقليد SPAs. فقط عندما يكون هناك حاجة إلى حالة صفحة ثابتة (مثل مشغل موسيقى)، يجب النظر في ميزات متقدمة مثل `hx-boost`. في النهاية، يدافع الكاتب عن بساطة و موثوقية HTML و HTTP لبناء مواقع ويب أسهل في الصيانة وصديقة للمستخدم.

التطوير

بارادايم: توظيف مهندسين مؤسسين لمنطقة عمل تعتمد على الذكاء الاصطناعي

2025-04-08
بارادايم: توظيف مهندسين مؤسسين لمنطقة عمل تعتمد على الذكاء الاصطناعي

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

زيادة استهلاك الذاكرة في وضع تعدد اللاعبين في محرك Unreal Engine: مفاجأة في تحسين استخدام الذاكرة

2025-04-08
زيادة استهلاك الذاكرة في وضع تعدد اللاعبين في محرك Unreal Engine: مفاجأة في تحسين استخدام الذاكرة

اكتشف مطور في محرك Unreal Engine، أثناء استخدام أداة تصور تخطيط الذاكرة، أن بعض هياكل البيانات المضافة لدعم وضع تعدد اللاعبين في Unreal Engine زائدة عن الحاجة في ألعاب اللاعب الواحد. هذه الهياكل تستهلك كمية كبيرة من الذاكرة؛ على سبيل المثال، الهياكل المخصصة المستخدمة لنسخ مرفقات المكونات وحركة الممثل تشغل 120 و 216 بايت على التوالي. من خلال التعليق على هذه المتغيرات غير المستخدمة والرمز ذي الصلة في وضع اللاعب الواحد، تم تحقيق توفير في الذاكرة يبلغ حوالي 392 بايت لكل ممثل. على الرغم من أن هذا ليس ذا أهمية كبيرة بالنسبة لمعظم المشاريع، إلا أن هذا التحسين قد يؤدي إلى وفورات كبيرة (ربما تصل إلى 100 ميجابايت) للمشاريع التي تحتوي على عدد كبير من الممثلين (مثل أكثر من 100000).

كلمة المفتاح `shell` في GitHub Actions: مرونة غير متوقعة وتداعيات أمنية

2025-04-08

تتيح لك كلمة المفتاح `shell` في GitHub Actions تحديد shell لوحدة التشغيل المعينة. ومع ذلك، فإن هذا أكثر مرونة بكثير مما توحي به الوثائق. فهو لا يدعم فقط shells المحددة مسبقًا مثل bash و pwsh، بل أي ملف قابل للتنفيذ في `$PATH` للنظام. وهذا يعني أنه يمكنك تشغيل كود C باستخدام مُجمِّع C، أو حتى تعديل `$GITHUB_PATH` ديناميكيًا لتغيير سلوك shell. وعلى الرغم من أن هذا يوفر مرونة، إلا أنه يُدخِل أيضًا مخاطر أمنية، حيث أن عمليات كتابة الملفات قد تُشير إلى التنفيذ. وهذا يتناقض مع ممارسة GitHub غير المتوقعة في إجراء عمليات بحث في `$PATH` حتى بالنسبة لقيم shell "المعروفة".

التطوير

هل سجون FreeBSD حاويات؟ جدال حول التعريفات

2025-04-08
هل سجون FreeBSD حاويات؟ جدال حول التعريفات

تتناول هذه المقالة الجدل الدائر حول ما إذا كانت سجون FreeBSD تعتبر حاويات. يجادل المؤيدون بأن سجون FreeBSD سبقت Docker و Podman، ويعتبرها مطورو FreeBSD مثل Allan Jude حاويات. ويقولون إن حصر تعريف "الحاوية" على نظام Docker/Podman في لينكس يتجاهل تقنية افتراضيّة مستوى نظام التشغيل طويلة الأمد في بيئة BSD. ويجادل المعارضون بأن سجون FreeBSD تفتقر إلى ميزات حاويات OCI، مثل تجريد الصورة ونماذج النشر، وأن تسميتها حاويات قد تضلل المستخدمين وتعيق اعتماد FreeBSD. تكمن المشكلة الأساسية في اختلاف فهم مصطلح "الحاوية": كمصطلح عام لافتراضيّة مستوى نظام التشغيل، أو كمصطلح محدد للتكنولوجيا التي تتوافق مع معايير OCI.

التطوير سجون

ما هو أبعد من إكمال الكود التلقائي: كيف تجعل الذكاء الاصطناعي يفهم قاعدة بياناتك البرمجية بالفعل

2025-04-08

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

(nmn.gl)

Tailwind CSS 4 وفخ FOMO: قصة تحذيرية لمطور

2025-04-07

تروي هذه المقالة تجربة المؤلف المحبطة مع Tailwind CSS 4، الذي يعتمد على Bun.js، والذي تعطل على جهاز Mac Pro القديم بسبب عدم وجود تعليمات AVX2. استغرق تصحيح هذا الخطأ عدة أيام، مما أجبر المؤلف على شراء جهاز كمبيوتر جديد والتخلي عن Tailwind CSS 4. يعكس المؤلف حول ظاهرة "الخوف من تفويت الفرصة" (FOMO) في صناعة التكنولوجيا، ومخاطر السعي الأعمى وراء التقنيات الجديدة. أبرزت التجربة أهمية الاختيار الدقيق للتكنولوجيا، مع إعطاء الأولوية للاحتياجات الشخصية والواقعية للمشروع، بدلاً من الانجراف وراء الاتجاهات.

التطوير

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

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

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

التطوير

خادم MCP خفيف الوزن: بيانات الطقس في الوقت الفعلي لـ Claude

2025-04-07
خادم MCP خفيف الوزن: بيانات الطقس في الوقت الفعلي لـ Claude

يقوم هذا المشروع بإنشاء خادم خفيف الوزن لبروتوكول سياق النموذج (MCP) والذي يسمح لمساعدي الذكاء الاصطناعي مثل Claude بالوصول إلى بيانات الطقس في الوقت الفعلي وتفسيرها. يكفي أن يضيف المستخدمون الخادم إلى تكوين Claude الخاص بهم، ويقومون بتجميع الملف الثنائي باستخدام `go build`، ويقومون بتكوين مفتاح API للطقس، ثم يمكنهم الاستعلام عن معلومات الطقس لمدن محددة داخل Claude. يتميز المشروع بتصميم وحدوي يشمل معالجة الخادم، والمنطق التجاري، وخدمات وهمية للاختبار، وقوالب العرض، وهو مرخص بموجب ترخيص MIT.

مهندسو برمجيات يقدمون مكافأة قدرها 10000 دولار مقابل وظيفة بستة أرقام

2025-04-07
مهندسو برمجيات يقدمون مكافأة قدرها 10000 دولار مقابل وظيفة بستة أرقام

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

شجرة مكونات React كآلات حالات: فهم التحديثات غير المتزامنة والميزات المتزامنة

2025-04-07
شجرة مكونات React كآلات حالات: فهم التحديثات غير المتزامنة والميزات المتزامنة

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

ذكرى Git العشرين: من البدايات المتواضعة إلى هيمنة التحكم في الإصدارات

2025-04-07
ذكرى Git العشرين: من البدايات المتواضعة إلى هيمنة التحكم في الإصدارات

قبل عشرين عامًا، قام لينوس تورفالدز بأول عملية إرسال (commit) على Git. ومنذ ذلك الحين، أصبح النظام الرائد للتحكم في الإصدارات. تستعرض هذه المقالة تاريخ Git المبكر، من أصوله كأداة لمعالجة تحديات التحكم في الإصدارات والتعاون في مجتمع نواة لينكس، إلى تطوره إلى النظام القوي الذي نعرفه اليوم. يشارك الكاتب سكوت تشاكون رحلته الشخصية مع Git، موضحًا كيف تحول من أداة تتبع محتوى "غبية" بسيطة إلى نظام VCS غني بالمميزات أعاد تشكيل تطوير البرمجيات. كما تتعمق القصة في أصول بعض الأوامر الأساسية لـ Git وولادة Octocat الشهير في GitHub.

التطوير

Lux: مدير حزم حديث للغة Lua، أخيرًا!

2025-04-07

Lux هو مدير حزم جديد للغة Lua مصمم لمعالجة أوجه القصور في Luarocks، مما يوفر تجربة حديثة وبديهية. يتميز بواجهة سطر أوامر بسيطة، ودعم قوي لملفات القفل، وإنشاءات متوازية، وتكامل سلس مع Neovim وNix. يستخدم Lux تكوين TOML، ويفرض SemVer، ويحافظ على التوافق مع نظام Luarocks البيئي الحالي. يعد بتحسينات كبيرة في سرعة البناء، وإدارة التبعيات، وإمكانية التكرار لمشاريع Lua، مما يفيد بشكل خاص مطوري إضافات Neovim من خلال زيادة السرعة والثبات.

التطوير

Kahuna: مدير قواعد بيانات IndexedDB

2025-04-07
Kahuna: مدير قواعد بيانات IndexedDB

Kahuna عبارة عن إضافة متصفح لمتصفحي Firefox ومتصفحات تعتمد على Chromium، تعمل على تبسيط إدارة قواعد بيانات IndexedDB. تتيح لك إنشاء، وتعديل، وعرض، والاستعلام، وتحرير، واستيراد، وتصدير بيانات IndexedDB. تشمل الميزات تصفية البيانات، والترقيم، وتنفيذ أكواد JavaScript، واستيراد/تصدير بالعديد من التنسيقات (Dexie، JSON، CSV). على الرغم من أن الوثائق لا تزال قيد الإعداد، إلا أن Kahuna أداة قوية للمطورين الذين يعملون مع IndexedDB.

التطوير

متصفح MCP: أتمتة المتصفح المحلية

2025-04-07

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

التطوير

OpenPrompt: دمج سلس للرمز في نماذج اللغات الكبيرة

2025-04-07
OpenPrompt: دمج سلس للرمز في نماذج اللغات الكبيرة

يبسط OpenPrompt عملية إدخال الرموز في نماذج اللغات الكبيرة مثل Claude و GPT-4 و Grok. تقوم هذه الأداة بتسلسل الملفات والمجلدات بسرعة إلى تنسيق XML، مما يسهل تحميل قاعدة بيانات الرمز الخاصة بك. تتوفر هذه الأداة لأنظمة التشغيل Windows و macOS و Linux (مع توفير ملفات قابلة للتنفيذ)، حيث تسمح لك OpenPrompt بتحديد الدلائل، وفلترة الملفات، وإضافة التعليمات، وإنشاء مطالبة XML جاهزة للنسخ واللصق في نموذج اللغة الكبير الذي تختاره. تشمل حالات الاستخدام مراجعات الرمز، وتوليد الوثائق، ومساعدة إعادة الهيكلة، وصيد الأخطاء، وتعلم قواعد بيانات الرمز الجديدة، وتحليل الهيكلة.

إعادة إنشاء أصوات لعبة Game Boy باستخدام واجهة برمجة تطبيقات الصوت على الويب: سلسلة فورييه مقابل مُشكِّل الموجات

2025-04-07

أثناء إنشاء مُتتبِّع موسيقى على غرار لعبة Game Boy قائم على الويب، واجه الكاتب تحدي إعادة إنشاء أصوات الموجة المربعة الأيقونية للعبة Game Boy بأمانة. كانت قنوات النبض في لعبة Game Boy تدعم دورات العمل المتغيرة، لكن عقدة مُولِّد التذبذبات في واجهة برمجة تطبيقات الصوت على الويب توفر فقط موجة مربعة بدورة عمل بنسبة 50٪. تستكشف المقالة حلين: إنشاء شكل موجة مخصص باستخدام سلسلة فورييه وتشكيل موجة منشار باستخدام عقدة مُشكِّل الموجات. يوفر نهج سلسلة فورييه دقة أعلى ولكنه مكلف من حيث الحساب؛ طريقة عقدة مُشكِّل الموجات أبسط، لكنها قد تُدخِل بعض الضوضاء. يفضِّل الكاتب في النهاية نهج عقدة مُشكِّل الموجات لسهولته وقدرته على إنتاج صوت أكثر أصالة من لعبة Game Boy.

GitMCP: الوصول بسهولة إلى وثائق مشروع GitHub باستخدام الذكاء الاصطناعي

2025-04-07
GitMCP: الوصول بسهولة إلى وثائق مشروع GitHub باستخدام الذكاء الاصطناعي

GitMCP هي خدمة مجانية مفتوحة المصدر تحول أي مشروع GitHub بسلاسة إلى نقطة نهاية عن بُعد لبروتوكول سياق النموذج (MCP)، مما يسمح لمساعدي الذكاء الاصطناعي بالوصول إلى وثائق المشروع وفهمها بسهولة. لا حاجة لأي إعداد؛ يعمل GitMCP مباشرةً وهو مجاني وخاص تمامًا، ولا يجمع أي معلومات تعريفية شخصية أو استفسارات. يمكن للمستخدمين الوصول إلى مستودعات GitHub أو مواقع GitHub Pages عبر تنسيقات عنوان URL بسيطة. يمكن لمساعدي الذكاء الاصطناعي الوصول إلى وثائق المشروع من خلال GitMCP، باستخدام البحث الدلالي لتحسين استخدام الرموز. يعمل GitMCP كجسر بين وثائق مستودع GitHub ومساعدي الذكاء الاصطناعي من خلال تنفيذ MCP، مما يضمن توصيل المعلومات بكفاءة ودقة.

التطوير

هندسة عكسية لمعالج نصوص عبري-إنجليزي من تسعينيات القرن الماضي

2025-04-07
هندسة عكسية لمعالج نصوص عبري-إنجليزي من تسعينيات القرن الماضي

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

التطوير

تحليل التواريخ في إكسل: خلل عمره 400 عام؟

2025-04-07
تحليل التواريخ في إكسل: خلل عمره 400 عام؟

أثناء بناء برنامج Quadratic، وهو برنامج جدول بيانات قائم على الذكاء الاصطناعي، اكتشف الفريق أخطاء غريبة في تحليل التواريخ في برنامج إكسل. إدخال "1/2" وإضافة 1 يعطي 45660؛ و "10:75" يصبح 0.46875. هذا ينبع من نظام التواريخ التسلسلي في إكسل، الذي يعد الأيام منذ 1 يناير 1900. ومع ذلك، فإن عدم الدقة التاريخية (اعتبار عام 1900 سنة كبيسة، وتغيير التقويم الغريغوري) يخلق اختلافات. يستخدم برنامج Quadratic مكتبة chrono في لغة Rust، متجنباً هذه المشاكل، وبتكامل سلس مع بايثون، و SQL، وأدوات حديثة أخرى. قام الفريق بتصحيح خطأ السنة الكبيسة لعام 1900، واستعاد التوازن للكون.

Curl آمن: بناء رمز C موثوق لمليارات التثبيتات

2025-04-07
Curl آمن: بناء رمز C موثوق لمليارات التثبيتات

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

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

توقف عن إضاعة وقتك في العمل غير المربح!

2025-04-07

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

← Previous 1 3 4 5 6 7 8 9 92 93