Category: التطوير

Rust غير متزامن على وحدات تحكم Cortex-M: غوص عميق

2024-12-14

تتناول هذه المقالة عالم البرمجة غير المتزامنة بلغة Rust على وحدات تحكم Cortex-M. تشرح آلية Futures والجدولة التعاونية ومنفذي Rust غير المتزامنين، مع تسليط الضوء على كفاءتها في إدارة الموارد. يتم تقديم إطار عمل Embassy المبتكر، المصمم لتمكين البرمجة غير المتزامنة على وحدات التحكم الدقيقة. من خلال أمثلة عملية مثل برنامج Blinky وبرنامج الزر، يوضح المقال تطبيق Rust غير المتزامن في الأنظمة المضمنة، مقارنةً بمزاياه وعيوبه مقارنةً بأساليب RTOS التقليدية. يبرز الاستنتاج الفوائد الكبيرة لـ Rust غير المتزامن من حيث استخدام الموارد والتزامن.

Fern، وهي شركة ناشئة مدعومة من YC، توظف مهندس واجهة أمامية أول

2024-12-14

تبحث شركة Fern، وهي شركة ناشئة تدعمها Y Combinator، عن مهندس واجهة أمامية أول براتب يتراوح بين 168,000 و 192,000 دولار أمريكي بالإضافة إلى أسهم. يقع المقر في ويليامزبرغ، بروكلين، نيويورك، ويتطلب هذا المنصب حضورًا شخصيًا وخبرة 4 سنوات فأكثر في تطوير الواجهة الأمامية، وإتقان JavaScript/TypeScript وReact وNext.js. وتشمل المسؤوليات تبسيط تجربة المطور، وإدارة البنية التحتية للواجهة الأمامية، وإنشاء ميزات موجهة للمستخدم، وبناء علاقات قوية مع العملاء. تعمل Fern على تبسيط استخدام واجهات برمجة التطبيقات، وتضم بين عملائها Cohere وElevenLabs وWebflow وMerge.dev.

Svader: مكتبة Svelte للمكونات المُرسَّمة بواسطة وحدة معالجة الرسومات

2024-12-14

Svader هي مكتبة لإنشاء مكونات Svelte مُرسَّمة بواسطة وحدة معالجة الرسومات باستخدام ظلال التجزئة WebGL و WebGPU. يمكن للمطورين كتابة برامج في ظلال التجزئة لتخصيص ألوان وحدات البكسل والتحكم في تأثيرات العرض من خلال تمرير المعلمات. تدعم المكتبة Svelte 4 و 5، وتوفر أوضاع عرض WebGL و WebGPU مع معلمات مدمجة مثل الدقة، والمقياس، والوقت. تعمل Svader على تبسيط عرض وحدة معالجة الرسومات من خلال مكونات سهلة الاستخدام، وتوفر عرضًا احتياطيًا في البيئات التي لا تدعم WebGL أو WebGPU.

التطوير

علم توجيه طلبات الطباعة في Canva

2024-12-14

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

Go: متى يجب أن تقول لا

2024-12-14

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

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

نقاش الكتابة الثابتة في PHP: مرونة وكفاءة اللغات الديناميكية

2024-12-14

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

uv: أداة إدارة حزم ومشاريع بايثون فائقة السرعة

2024-12-14

uv هي أداة لإدارة حزم ومشاريع بايثون فائقة السرعة، مكتوبة بلغة Rust، تحل محل أدوات مثل pip و pip-tools و pipx و poetry و pyenv و twine و virtualenv. مع تحسين سرعة من 10 إلى 100 مرة، توفر uv إدارة المشاريع، وإدارة الأدوات، وإدارة إصدارات بايثون، ودعم البرامج النصية، وواجهة متوافقة مع pip. ميزات مثل ذاكرة التخزين المؤقت العالمية ودعم مساحات العمل تعمل على تبسيط سير العمل. من إنشاء المشاريع وإدارة التبعيات إلى تشغيل البرامج النصية وإنشاء التوزيعات، توفر uv حلولاً فعالة ومريحة لجميع احتياجات تطوير بايثون الخاصة بك.

من خريج جديد إلى مهندس فريق في ميتا خلال 3 سنوات: قصة نجاح إيفان كينغ

2024-12-14

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

معالجة الأخطاء في كلوجر: لا توجد حلول سحرية، فقط خيارات

2024-12-14

يوفر كلوجر مجموعة متنوعة من أساليب معالجة الأخطاء، بدون أفضل ممارسة واحدة. تتناول المقالة عدة طرق: رمي الاستثناءات الأصلية، واستخدام `ex-info` لحمل البيانات مع الاستثناءات، وإرجاع خرائط الأخطاء، واستخدام مكتبات متنوعة لسير عمل معالجة الأخطاء الأكثر تعقيدًا، مثل مكتبة `anomalies` أو خيارات مثل `pact` و `failjure`. يشدد الكاتب على أن الاختيار يعتمد على السياق المحدد، وأن مزيجًا من الأساليب يمكن أن يتعايش في مشروع واحد. يتم تمكين المطورين لاختيار الحل الأنسب لاحتياجاتهم؛ يحتضن كلوجر هذه الحرية.

ملاحظات إصدار HTMX v2.0.4: إصلاحات الأخطاء والتحسينات

2024-12-14

تُفصّل ملاحظات إصدار HTMX v2.0.4 العديد من إصلاحات الأخطاء والتحسينات. يركز هذا الإصدار على تحسينات الاستقرار والتوافق، بما في ذلك إصلاحات لمشاكل Shadow DOM المتداخلة، وتحسين سلوك `hx-boost` في النماذج، ودعم أفضل لمكونات الويب وShadow DOM، وامتدادات مُحدّثة لتحسين الأداء والموثوقية. كما يتضمن ذلك تعديلات على دالة `htmx.ajax`، وتحسينات في معالجة أحداث `hx-trigger`.

أستاذ الدكتوراه يُحسّن الكتابة تلقائيًا باستخدام نصوص Shell

2024-12-14

لإصلاح أسلوب كتابة طلابه في الدكتوراه، أنشأ أستاذ ثلاثة نصوص Shell لاكتشاف الإفراط في استخدام الصيغة المبنية للمفعول، والكلمات الغامضة، والكلمات المكررة. وبدمجها في نظام بناء LaTeX الخاص بهم، تشجع هذه النصوص على اتخاذ خيارات واعية لتحقيق الوضوح والدقة، بدلاً من الالتزام الأعمى بقواعد النحو. يدعو الأستاذ المبرمجين إلى استخدام الأتمتة لمكافحة نقاط الضعف في الكتابة، ويُوصي بموارد مثل "Style: The Basics of Clarity and Grace".

تحديث macOS 15.2 يُعطّل ميزة نسخ النظام: المستخدمون يواجهون كابوسًا في نسخ البيانات الاحتياطي

2024-12-14

تسبب خطأ خطير في macOS 15.2 في تعطيل ميزة نسخ النظام، مما أدى إلى فشل عمليات نسخ البيانات الاحتياطي مع ظهور خطأ "المورد مشغول", خاصةً عند محاولة نسخ أقسام Preboot أو Recovery. يشرح المطور Dave Nanian أن المشكلة نابعة من تعليمات برمجية خاصة بشركة أبل، ولا يوجد حاليًا حل سهل لها. يضطر المستخدمون إلى الاعتماد على حلول نسخ احتياطي تابعة لجهات خارجية، باستخدام طريقة "نسخ احتياطي - جميع الملفات" مع تحديث ذكي لاستعادة بياناتهم بعد تثبيت نظيف للنظام. هذه المشكلة تسبب إحباطًا كبيرًا للمستخدمين، خاصةً مع اقتراب موسم العطلات.

Farebox: مشروع توجيه متعدد الوسائط في Rust

2024-12-14

Farebox هو تطبيق سريع لخوارزمية RAPTOR بلغة Rust، مصمم للآلات ذات الذاكرة المحدودة. يستخدم Valhalla للعمليات الانتقالية وتوجيه المسافات القصيرة، ويدعم التوجيه متعدد الوكالات والواعي بالمناطق الزمنية. يهدف المشروع إلى تكملة OpenTripPlanner، وتوفير خدمة إضافية للمناطق غير المغطاة بالمثيلات الحالية. يتم استخدام تعيين الذاكرة لجداول المواقيت للسماح بتغطية عالمية بمثيل واحد، وتقليل تكاليف الاستضافة. تشمل الخطط المستقبلية دعم GTFS-RT، وربما rRAPTOR لحساب مسارات متزامنة عبر أوقات مغادرة متنوعة.

التطوير التوجيه

لغة البرمجة لون: لغة لوا ثابتة النوع

2024-12-14

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

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

SCCS: فندق الشيفرة المصدرية بعد 50 عامًا

2024-12-13

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

الهندسة السداسية في روبي أون ريلز: مسار نحو الفصل

2024-12-13

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

إعادة استخدام الهواتف الذكية القديمة كعقد في مجموعة Kubernetes باستخدام postmarketOS

2024-12-13

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

تجاوز إجراءات التخفيف في نواة Windows: غوص عميق في Violet Phosphorus

2024-12-13

تتناول هذه المقالة بالتفصيل كيفية تجاوز إجراءات التخفيف الحديثة في نواة Windows 10 و 11، مثل SMEP و VBS. يصف الكاتب تقنية Violet Phosphorus العالمية لتجاوز VBS/SMEP، مع توفير رمز PoC وسلسلة ROP. يشرح آلية عمل SMEP و VBS، ويُظهر كيفية استغلال ثغرة أمنية في برنامج تشغيل HackSysExtremeVulnerableDriver لاستخدام أدوات ROP ووظيفة MiGetPteAddress لتعديل إدخالات جدول الصفحات، مما يسمح بتنفيذ التعليمات البرمجية في النواة. كما يوضح الكاتب كيفية استخدام shellcode SYSRET من Kristal-G للعودة إلى وضع المستخدم. هذه مورد قيّم لمطوري استغلال النواة وباحثي الأمن، مصنف ضمن فئة التطوير.

إصدار مكتبة Node.js EPUB @smoores/epub

2024-12-13

تم إصدار مكتبة Node.js جديدة، وهي @smoores/epub، والتي تتيح للمطورين فحص وتعديل وإنشاء منشورات EPUB 3. توفر المكتبة واجهات برمجة تطبيقات عالية المستوى تبسط التفاعل مع مواصفات EPUB، مثل تعيين العنوان واسترجاع معلومات المؤلف. كما توفر واجهات برمجة تطبيقات منخفضة المستوى تحكمًا دقيقًا في بنية EPUB، مما يتيح مهامًا مثل إضافة فصول وبيانات وصفية. تعتمد مكتبة @smoores/epub على fast-xml-parser، وتوفر إمكانيات قوية لتحليل XML ومعالجته، مما يسهل التعامل بكفاءة مع محتوى XML في ملفات EPUB.

التطوير مكتبة

إعادة التشغيل المجدولة: نهج وقائي

2024-12-13

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

مايكروسوفت تطلق مشروع MarkItDown مفتوح المصدر: أداة لتحويل الملفات إلى Markdown

2024-12-13

أصدرت مايكروسوفت مشروع MarkItDown مفتوح المصدر، وهو أداة بايثون لتحويل أنواع مختلفة من الملفات (بما في ذلك PDF وPowerPoint وWord وExcel والصور والصوت وHTML) إلى تنسيق Markdown. تتميز الأداة بواجهة برمجة تطبيقات بسيطة، وتدعم مجموعة واسعة من أنواع الملفات، وتتضمن ميزات OCR والنسخ الصوتي لتحسين الوظائف، مما يجعلها مثالية لتحليل النصوص أو الفهرسة. الاستخدامات مفتوحة للمساهمات، والمشروع ملتزم بقواعد سلوك المصدر المفتوح لمايكروسوفت.

جمع الدورات المتزامن: مؤشرات ذكية مع جمع القمامة في Rust لـ Scheme

2024-12-13

تشرح هذه المقالة بالتفصيل تنفيذ جامع دورات متزامن في Rust للمؤشرات الذكية مع جمع القمامة (Gc) داخل مُفسّر Scheme. يعمل Gc بشكل مشابه لـ Arc>، مع دعم قابلية التعديل الداخلية، والنسخ، والإرسال عبر مؤشرات الترابط. تشرح المقالة بالتفصيل تنفيذ Gc، بما في ذلك قابلية التعديل الداخلية الآمنة للخيوط باستخدام الإشارات الضوئية وأقفال القراءة/الكتابة، وتفاصيل تنفيذ جمع الدورات المتزامن بناءً على خوارزمية Bacon وRajan. وهذا يشمل سمة Trace، وكشف الدورات، وآليات التعامل مع التعديلات المتزامنة.

HyperDX توظف مهندسين متخصصين في التطبيقات الكاملة، والواجهة الأمامية، والواجهة الخلفية

2024-12-13

تعلن شركة HyperDX، المدعومة من Y Combinator، عن وظائف شاغرة لتوظيف مهندسين متخصصين في التطبيقات الكاملة، والواجهة الأمامية، والواجهة الخلفية. تبني HyperDX منصة مراقبة مفتوحة المصدر وسهلة الاستخدام للمطورين، بهدف استبدال أدوات مثل Datadog و New Relic، لمساعدة المهندسين على تحديد مشاكل الإنتاج بسرعة أكبر. توفر الشركة رواتب تنافسية وخيارات العمل عن بُعد، وتستهدف المهندسين ذوي الخبرة.

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

صانع ألعاب يبني لعبة إطلاق نار بالليزر: من لعبة ليغولاند إلى متعة الهالوين مع ESP32

2024-12-13

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

التطوير صانع

دوالت التجزئة الجديدة Rain Hashes: السرعة والأمان مجتمعين

2024-12-13

أصدرت DOSAYGO Research مجموعة جديدة من دوال التجزئة تسمى Rain Hashes، والتي تتضمن خوارزميتي Rainbow وRainstorm. تتميز Rainbow بسرعتها الاستثنائية، مما يجعلها مثالية للتجزئة العامة. وقد اجتازت تنفيذها بلغة C++ جميع اختبارات SMHasher3، وتتميز بكودها المختصر والكفؤ. أما Rainstorm، فتُعطي الأولوية للأمان؛ على الرغم من عدم مراجعتها رسميًا، إلا أن تصميمها يدمج عناصر من دوال التجزئة المشفرة، ويقدم أحجامًا للإخراج من 64 إلى 512 بت. يوفر المشروع تنفيذات بلغات C++ وWASM وNode.js، بالإضافة إلى أداة سطر أوامر واختبارات قياسية لتسهيل التقييم والاستخدام.

التطوير دالة التجزئة

ويب أوريجامي: لغة برمجة جديدة لتبسيط إنشاء مواقع الويب

2024-12-13

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

ثغرات أمنية ناتجة عن مُولِّد الأعداد العشوائية الضعيف في Dart/Flutter

2024-12-13

كشف بحث Zellic عن العديد من الثغرات الأمنية التي تسببها مُولِّد الأعداد العشوائية (PRNG) الضعيف في Dart/Flutter. أدى عيب في تهيئة دالة `Random()` داخل مجموعة أدوات تطوير Dart إلى عدم كفاية الانتروبيا في المفاتيح المُولَّدة، مما جعلها عرضة لهجمات القوة الغاشمة. سمح هذا للمهاجمين بالوصول بسهولة إلى Dart Tooling Daemon، مما مكنهم من قراءة أو كتابة ملفات مساحة العمل، بل وحتى تنفيذ تعليمات برمجية عشوائية. علاوة على ذلك، تأثرت مشاريع Proton Wallet وSelfPrivacy أيضًا بهذا المُولِّد الضعيف، حيث واجهت ثغرات تشفير ومشاكل تتعلق بكلمات مرور قابلة للتنبؤ. على الرغم من إصلاح الثغرة الأمنية، يُحث المطورون على توخي الحذر عند استخدام دالة `Random()`، واستخدام `Random.secure()` عندما تكون هناك حاجة إلى أعداد عشوائية آمنة تشفيرياً.

التطوير

فكرة ثورية: تطبيق مبادئ Magit على نظام التحكم في الإصدارات jj

2024-12-13

يقترح الكاتب نهجًا مبتكرًا: تطبيق واجهة التحكم في الإصدارات Magit من Emacs (التي تستخدم ملفات نصية كواجهة مستخدم) على نظام التحكم في الإصدارات jj الناشئ. تشير المقالة إلى أن واجهة المستخدم النصية لـ Magit توفر الكفاءة والقدرة على النقل. من خلال الاستفادة من بروتوكول LSP، يمكن تنفيذ تجربة مشابهة لـ Magit في محررات متعددة، مما يتجنب التطوير المتكرر. يتوقع الكاتب إنشاء ملفات نصية محددة (مثل .jj/status.jj) واستخدام ميزات LSP مثل الرموز الدلالية، ونطاقات الطي، والانتقال إلى التعريف، لتحقيق عمليات تحكم في الإصدارات مشابهة لـ Magit. والهدف النهائي هو إنشاء واجهة مستخدم فعالة ومتعددة المنصات للتحكم في الإصدارات jj.

التطوير

الاتساق النهائي: التحديات والأنماط في الأنظمة الموزعة

2024-12-13

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

إتقان تصحيح أخطاء Ruby: من puts إلى الأدوات الاحترافية

2024-12-13

تتناول هذه المدونة من JetBrains RubyMine مختلف الأساليب المتبعة في تصحيح أخطاء كود Ruby، بدءًا من عبارات puts البسيطة وصولًا إلى وحدات التحكم التفاعلية (IRB و Pry) و أداة تصحيح الأخطاء القوية (byebug، debug، و أداة تصحيح أخطاء RubyMine). باستخدام مثال خطأ في العالم الحقيقي، تبرز هذه المدونة نقاط القوة والضعف لكل أداة، وتوجه المطورين لاختيار أداة التصحيح المناسبة لتحسين الكفاءة. وتؤكد المقالة على أن تصحيح الأخطاء الفعال لا يقتصر فقط على إصلاح الأخطاء، بل يتضمن فهم الكود بشكل أساسي لكتابة تطبيقات Ruby أكثر قوة.

1 2 3 4 5 7