Category: التطوير

جعل QEMU أسرع بعشر مرات باستخدام هذه الحيلة الغريبة

2024-12-17

أثناء تصحيح أخطاء اختبارات NixOS ، اكتشف Linus Heckemann أوقات نسخ بيانات بطيئة للغاية (أكثر من ساعتين) على جهاز افتراضي QEMU. كشفت تحليلات الأداء باستخدام perf أن خادم 9p الخاص بـ QEMU استخدم قائمة مرتبطة غير فعالة (تعقيد O (n)) للبحث عن الملفات. من خلال التبديل إلى جدول هاش الذي يوفره glib (تعقيد O (1)) ، قلل وقت الاختبار إلى 7 دقائق وساهم بنجاح في تحسين مشروع QEMU.

التطوير بروتوكول 9p

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

2024-12-16

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

التطوير نينتندو دي إس

مبادئ تصميم لغات البرمجة التعليمية: لماذا عدم وجود توافق في الآراء؟

2024-12-16
مبادئ تصميم لغات البرمجة التعليمية: لماذا عدم وجود توافق في الآراء؟

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

انقطاع خدمة كبير في OpenAI: خدمة قياس عن بُعد جديدة تسبب تعطلاً رئيسيًا

2024-12-16
انقطاع خدمة كبير في OpenAI: خدمة قياس عن بُعد جديدة تسبب تعطلاً رئيسيًا

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

واجهة برمجة التطبيقات الجديدة غير الشفافة لـ Go Protobuf تُحسّن الأداء والأمان

2024-12-16

أصدر فريق Go واجهة برمجة تطبيقات جديدة غير شفافة لـ Go Protobuf، تعمل جنبًا إلى جنب مع واجهة برمجة التطبيقات الموجودة Open Struct. تُحسّن واجهة برمجة التطبيقات الجديدة هذه الأداء من خلال فصل التعليمات البرمجية المُولّدة عن تمثيل الذاكرة الأساسي، مما يؤدي إلى تحسين الأداء وتقليل عمليات تخصيص الذاكرة، كما تُمكّن عمليات تحسين مثل فك التشفير الكسول. ومن خلال إخفاء حقول الهياكل والوصول إليها فقط من خلال أساليب الوصول، تمنع هذه الواجهة الأخطاء المتعلقة بالشارات والعمليات المشتركة غير المقصودة. تتضمن عملية الترحيل تمكين واجهة برمجة التطبيقات الهجينة، واستخدام أداة `open2opaque`، ثم التبديل إلى واجهة برمجة التطبيقات غير الشفافة. تبقى واجهة برمجة التطبيقات Open Struct الموجودة مدعومة.

(go.dev)
التطوير

تغيير غير متوافق في GRUB2 يتسبب في حلقة تمهيد إعداد BIOS

2024-12-16
تغيير غير متوافق في GRUB2 يتسبب في حلقة تمهيد إعداد BIOS

عانى نظامي Debian و Kali Linux الخاصان بالكاتب من حلقات تمهيد بعد تحديث GRUB2 الذي أضاف الأمر `fwsetup --is-supported`. لم تتعرف إصدارات GRUB القديمة على هذه المعلمة. نشأت المشكلة من وجود وحدة `efifwsetup.mod` قديمة، متبقية من استعادة نسخة احتياطية للنظام، مما تسبب في تعارض بين تكوين GRUB الجديد والوحدة القديمة. تم حل المشكلة عن طريق تثبيت حزمة `grub-efi-amd64-bin`. يبرز هذا أهمية التوافق مع الإصدارات السابقة في تحديثات البرامج، وضرورة مراعاة الآثار الجانبية المحتملة عند إجراء تغييرات جزئية في برامج معقدة مثل GRUB2.

التطوير حلقة تمهيد

ملخص مؤتمرات روبي: نظرة عامة عالمية

2024-12-16

موقع Ruby Video Talks هو موقع يجمع معلومات عن مؤتمرات مطوري روبي في جميع أنحاء العالم. من الأحداث الكبرى مثل RubyConf 2024 (70 محاضرة) و Rails World 2024 (46 محاضرة) إلى الاجتماعات الإقليمية الأصغر، يوفر الموقع تقويماً شاملاً. يبرز المتحدثين الرئيسيين مثل Matz ويوفر وظائف بحث حسب التاريخ والموقع والموضوع، مما يسهل البحث عن الأحداث ذات الصلة. كما يتم سرد المؤتمرات القادمة في عام 2025، مثل Balkan Ruby و Friendly.rb، مما يعد بفرص أكثر لجمهور روبي.

إعادة كتابة جريئة لمحرر إيماكس باستخدام جويل

2024-12-16

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

التطوير إيماكس جويل ليس

إعادة كتابة SQLite بلغة Rust: يحقق Limbo انخفاضًا بنسبة 100 ضعف في زمن الوصول

2024-12-16

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

(avi.im)

Converge توظف مهندسًا كاملًا متقدمًا: بناء منصة قياس تسويقية بملايين الدولارات

2024-12-16
Converge توظف مهندسًا كاملًا متقدمًا: بناء منصة قياس تسويقية بملايين الدولارات

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

مكوّن تكامل Xiaomi Home Assistant مُطلق رسميًا

2024-12-16
مكوّن تكامل Xiaomi Home Assistant مُطلق رسميًا

أطلقت Xiaomi رسميًا مكوّن تكامل Xiaomi Home Assistant، مما يسمح للمستخدمين بدمج أجهزتهم الذكية Xiaomi IoT في Home Assistant. يدعم المكوّن طرق تثبيت متعددة، بما في ذلك استنساخ Git و HACS والتثبيت اليدوي. يحتاج المستخدمون إلى تسجيل الدخول باستخدام حساب Xiaomi الخاص بهم؛ ويتم دعم حسابات متعددة واختيار المنطقة. يدعم المكوّن معظم أجهزة Xiaomi المنزلية الذكية، لكنه يستثني حاليًا أجهزة Bluetooth والأشعة تحت الحمراء والأجهزة الظاهرية. تشمل طرق التحكم التحكم عبر السحابة والتحكم المحلي (يتطلب بوابة مركزية Xiaomi أو أجهزة مزودة ببوابة مدمجة). يقوم بتعيين MIoT-Spec-V2 إلى كيانات Home Assistant. يدعم المكوّن أيضًا لغات متعددة ووضع تصحيح الأخطاء، مع إعطاء الأولوية لخصوصية المستخدم وأمانه، ولكنه يتطلب تخزينًا دقيقًا لملفات التكوين.

خطأ المبرمج بمليون دولار: خلل برمجي مع تحول دراماتيكي

2024-12-16
خطأ المبرمج بمليون دولار: خلل برمجي مع تحول دراماتيكي

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

جمعية موديليكا: نمذجة النظم المعقدة بكفاءة

2024-12-16

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

نظام تخزين شبكي بسيط للغاية: frood، نظام Alpine initramfs

2024-12-16
نظام تخزين شبكي بسيط للغاية: frood، نظام Alpine initramfs

يقدم الكاتب نظام تخزين شبكي يسمى frood، وهو فريد من نوعه لأنه عبارة عن صورة initramfs كبيرة تحتوي على نظام Alpine Linux كامل. هذا التصميم يؤدي إلى سرعة تشغيل عالية وتقليل التآكل على أجهزة التخزين. الإعداد بسيط للغاية؛ توجد الملفات مباشرة في الصورة، مما يلغي الحاجة إلى لغات وصفية معقدة أو أدوات تكوين. يتم تتبع حالة النظام باستخدام Git، وكل عملية تشغيل هي بمثابة بداية جديدة، مما يمنع الفوضى في التكوين. تتضمن المقالة تفاصيل عملية بناء النظام، بما في ذلك استخدام برنامج نصي alpine-make-rootfs، وتثبيت الحزم الأساسية، وكتابة نصوص التشغيل. كما يتم وصف اختبارات QEMU وإجراء تحديث صورة النظام. باختصار، frood هو نظام تخزين شبكي خفيف الوزن، سهل الصيانة والنشر، وتستحق فلسفته التصميمية البسيطة أن يتم محاكاتها.

التطوير

حالة HTTP/3 الحالية: التحديات والفرص على طريق التبني

2024-12-16
حالة HTTP/3 الحالية: التحديات والفرص على طريق التبني

مواصفات HTTP/3 مكتملة ولكنها تنتظر النشر النهائي. دعم الخادم مرتفع بشكل مدهش، خاصة بين المواقع الإلكترونية الرائدة. قامت شركات كبرى مثل Cloudflare بتمكين HTTP/3، وتدعم المتصفحات ذلك على نطاق واسع. ومع ذلك، لا يزال دعم العميل، مثل curl، غير مكتمل، ويعود ذلك إلى حد كبير إلى تأخر تطوير مكتبات TLS التي تدعم QUIC. تم تأجيل دعم QUIC من OpenSSL، بينما تواجه البدائل مثل BoringSSL و quictls قيودًا. على الرغم من أن HTTP/3 يعد بتحسينات في السرعة، إلا أن الفوائد الفعلية تعتمد على ظروف الشبكة. يعتمد التبني الواسع النطاق على إصدار المواصفات ومكتبات TLS الناضجة.

التطوير

Vec::drain في Rust: الاستفادة من Drop لضمان الأمان

2024-12-16
Vec::drain في Rust: الاستفادة من Drop لضمان الأمان

تتناول هذه المقالة بالتفصيل طريقة Vec::drain في Rust وتطبيق Drop الخاص بها، حيث تُظهر كيف تمنع آلية الملكية الأخطاء الدقيقة المتعلقة بالذاكرة وغيرها. تعمل Vec::drain على تحسين الأداء من خلال الاحتفاظ بإشارة قابلة للتعديل إلى المتجه الأصلي وقراءة/تحديث التخزين الأصلي فقط. يكمن المفتاح في تطبيق Drop الخاص بهيكل Drain، والذي يستخدم DropGuard لضمان أنه حتى إذا تم إسقاط المُكرر قبل الأوان، فسيتم نقل العناصر المتبقية بأمان إلى المتجه الأصلي، مما يضمن سلامة الذاكرة. تشرح المقالة بالتفصيل تفاصيل تنفيذ Drain و DropGuard، مع معالجة حالات خاصة مثل الأنواع ذات الحجم الصفري ومنشأ المؤشرات.

التطوير

الوضع الجديد --shuffle في GNU Make: اكتشاف أخطاء خفية في عمليات البناء المتوازية

2024-12-16

لمدة أحد عشر عامًا ، عانت عمليات البناء المتوازية في GNU Make من أخطاء يصعب إعادة إنتاجها. بناءً على ذلك ، تم تطوير وضع جديد `--shuffle` لإعادة ترتيب أهداف Makefile بشكل عشوائي ، محاكياً ترتيب بناء غير حتمي. كشف هذا بشكل فعال عن أخطاء خفية في أكثر من 30 حزمة ، بما في ذلك gcc و vim و ghc. يُعد الآن جزءًا من GNU Make 4.4 ، ويمكن الوصول إلى هذا الوضع عبر `make --shuffle` أو متغير البيئة `GNUMAKEFLAGS=--shuffle`. تساعد هذه الميزة القوية المطورين على تحديد حلول مشكلات بناء متوازية ، مع إبراز التحسين المستمر لأدوات تطوير البرمجيات.

معادل تحميل جديد من جوجل، PReQuaL: ما هو أبعد من معادلة تحميل وحدة المعالجة المركزية

2024-12-16

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

رحلة مهندس برمجيات في تصميم بمساعدة الحاسوب والطباعة ثلاثية الأبعاد: رافع كاميرا ويب مُفرط التصميم

2024-12-16

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

إصدار Adélie Linux 1.0-BETA6: تحسين التوافق والميزات الغنية

2024-12-16
إصدار Adélie Linux 1.0-BETA6: تحسين التوافق والميزات الغنية

أصدرت Adélie Linux إصدارها التجريبي 1.0-BETA6، والذي يدعم أنظمة ARM و POWER و x86 32 بت و 64 بت، بما في ذلك الهواتف الذكية، وأجهزة ألعاب الفيديو، والكمبيوترات العملاقة. يتضمن هذا الإصدار أكثر من 35 حزمة جديدة، وتحديثات لـ GCC 13 و LLVM 18 و Rust 1.80 ونواة لينكس 6.6 LTS، بالإضافة إلى دعم محسّن لـ GRUB و Wayland. تم إصلاح العديد من الأخطاء، وتم تحسين تجربة المستخدم. على الرغم من وجود بعض المشاكل المعروفة، إلا أن فريق Adélie يعمل بنشاط على حلولها، ويرحب بتقارير الأخطاء والتعليقات.

التطوير توزيع لينكس

Cyphernetes: أتمتة إدارة عناقيد Kubernetes الأصلية في السحابة

2024-12-16

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

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

متصفح ديلو: 25 عامًا من التاريخ، قصة القيامة

2024-12-16

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

Hyperbola GNU/Linux-libre: نظام تشغيل خفيف الوزن ملتزم بالحرية والدعم طويل الأمد

2024-12-15

Hyperbola GNU/Linux-libre هو مشروع نظام تشغيل مدعوم من المجتمع يهدف إلى توفير توزيع دعم طويل الأمد مجاني تمامًا، مستقر، آمن، بسيط، وخفيف الوزن. يستخدم إدارة الحزم من Arch Linux و تصحيحات الأمان من Debian، والالتزام بمبادئ توزيع أنظمة GNU الحرة. يدعم Hyperbola العمارتين i686 و x86_64، ويخطط لإصدار نظام قائم على BSD، HyperbolaBSD. وتشمل الأخبار الأخيرة الاستمرار في دعم أنظمة 32 بت، ووقف استخدام مجموعات التصحيحات من Debian بعد الإصدار 12، ومخاوف معرب عنها بشأن بيان مؤسسة البرمجيات الحرة بشأن التعلم الآلي.

خريطة مشاريع جيثب: عرض مرئي لأكثر من 400,000 مشروع

2024-12-15
خريطة مشاريع جيثب: عرض مرئي لأكثر من 400,000 مشروع

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

Vercel تطلق ƒun: بيئة تشغيل محلية لوظائف Serverless

2024-12-15
Vercel تطلق ƒun: بيئة تشغيل محلية لوظائف Serverless

أطلقت Vercel بيئة تشغيل محلية ƒun لتطوير وظائف Serverless، مما يسمح للمطورين بمحاكاة بيئة AWS Lambda محليًا. يدعم ƒun عدة بيئات تشغيل مثل Node.js و Python، مما يسمح باختبار و تصحيح أخطاء وظائف Serverless بسرعة دون نشرها على السحابة. على الرغم من أن ƒun يسعى إلى تقريب بيئة Lambda الحقيقية، إلا أن هناك بعض الاختلافات الرئيسية، خاصةً في حماية عمليات sandbox و أذونات المستخدم.

سحب وإفلات الصور في Bevy 0.15 على الويب

2024-12-15

تشرح هذه المقالة كيفية دمج واجهات برمجة التطبيقات الأصلية للويب عبر WASM مع Bevy 0.15 لتمكين وظيفة سحب وإفلات الصور في متصفح الويب. وتفصل في استخدام wasm-bindgen و gloo و bevy_channel_trigger للتعامل مع أحداث DOM في Rust، واستخراج بيانات الملفات، وإرسالها إلى محرك Bevy لتحميل الصور وعرضها. تتشابه العملية مع تنفيذ JavaScript، لكنها تستغل إمكانيات Rust، مع معالجة أخطاء تسرب الذاكرة الخاصة بمعالجات الأحداث. والنتيجة هي تطبيق ويب Bevy قادر على تحميل وعرض صور PNG تم إسقاطها.

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

مؤشر التركيز للمبرمجين: ميلاد FlowLight

2024-12-15

بإلهام من ورقة بحثية حول تأثير المقاطعات على العمل، قام المبرمج شا إيريسون بصنع نظام يدوي يسمى FlowLight للإشارة إلى ما إذا كان المبرمج في حالة تركيز "سيلان". يقوم النظام بمراقبة وقت الخمول في محرر Emacs؛ عندما يكون المبرمج غير نشط لفترة، يتغير لون مصباح LED في لوحة Adafruit MagTag (أخضر للخمول، أحمر للانشغال). كما قام إيريسون بكتابة خادم HTTP في CircuitPython للتحكم عن بُعد بلون LED وعرض الحالة. على الرغم من أن النظام يحتاج إلى تحسينات، مثل مراقبة وقت الخمول بشكل أكثر دقة وعرض أكثر جاذبية، إلا أنه يساعد المبرمجين بشكل فعال على تجنب المقاطعات وتحسين الإنتاجية.

برنامج WASM يتجاوز صندوق رمل نظام الملفات node:wasi

2024-12-15
برنامج WASM يتجاوز صندوق رمل نظام الملفات node:wasi

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

التطوير أمان

تحسين أداء وحدة معالجة الرسومات في نظام التشغيل MacOS: إهدار الموارد من أجل السرعة

2024-12-15

واجه مطور Anukari اختناقًا عند تحسين أداء وحدة معالجة الرسومات (GPU) في نظام تشغيل MacOS. نظرًا للتحكم المحدود للنظام في أداء وحدة معالجة الرسومات، أظهرت آلية تنظيم أداء وحدة معالجة الرسومات من Apple أداءً ضعيفًا في حالة استخدام Anukari، مما أدى إلى حدوث خلل في الصوت. قام المطور بتنفيذ حل بديل: تكريس مجموعة خيوط (warp) من وحدة معالجة الرسومات لحسابات غير مجدية لـ"خداع" النظام وزيادة سرعة ساعة وحدة معالجة الرسومات، مما أدى إلى تقليل زمن الوصول للصوت بشكل كبير وتحسين الأداء. وعلى الرغم من بساطة هذه الطريقة، إلا أنها أثبتت فعاليتها في حل مشاكل الأداء في نظام تشغيل MacOS. ومع ذلك، اختلفت تحسينات الأداء بشكل كبير بين برامج DAW المختلفة (Ableton و GarageBand)، مما يتطلب مزيدًا من التحسين.

هل ستنهي نماذج اللغات الكبيرة البرمجة؟

2024-12-15

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

1 2 206 207 208 209 211 213 214