Category: التطوير

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 مشروع على جيثب باستخدام بيانات عامة. يستخدم المشروع مقياس تشابه جاكارد لحساب العلاقات بين المشاريع وخوارزمية لايدن للتصنيف العنقودي. والنتيجة هي تمثيل مرئي مبهر لنظام جيثب البيئي، مما يسمح للمستخدمين بالبحث واستكشاف الروابط بين المشاريع، وكشف تعقيدها وثرائها.

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

2024-12-15

أطلقت 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 تجاوز قيد دليل 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 المبرمجين وزيادة الكفاءة، فإن حدودها المتأصلة تمنعها من استبدال المبرمجين البشريين تمامًا. يظل جوهر البرمجة هو حل المشكلات وتصميم النظم، مما يتطلب براعة وإبداعًا بشريًا.

الحوسبة المتفائلة: مسار نحو برمجيات أفضل

2024-12-15

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

مقارنة أداء Spark وDuckDB وPolars: أفضل خيار لأحمال العمل الصغيرة والمتوسطة

2024-12-15

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

محرك استنتاج LLM سريع تم إنشاؤه من الصفر

2024-12-15

تتناول هذه المقالة رحلة الكاتب في بناء محرك استنتاج LLM من الصفر باستخدام C++ و CUDA، دون الاعتماد على أي مكتبات. وقد أتاحت هذه العملية غوصًا عميقًا في مجموعة استنتاج LLM الكاملة، من نواة CUDA إلى بنية النموذج، مما يُظهر كيف تؤثر عمليات التحسين على سرعة الاستنتاج. كان الهدف هو إنشاء برنامج قادر على تحميل أوزان النماذج مفتوحة المصدر الشائعة وإجراء استنتاج دفعة واحدة على خادم CPU + GPU واحد، مع تحسين معدل بيانات الرموز بشكل متكرر لتجاوز llama.cpp. وتوضح المقالة بعناية خطوات التحسين على كل من وحدة المعالجة المركزية ووحدة معالجة الرسومات، بما في ذلك تعدد الخيوط، وكمية الأوزان، و SIMD، ودمج النواة، وكمية ذاكرة التخزين المؤقت KV، مع تحليل الاختناقات والتحديات. وتحقق النتيجة النهائية أداءً قريبًا من الأداء الأمثل للاستنتاج المحلي لـ LLM.

التطوير استنتاج LLM

تفضيل الكود القابل للتصرف على وثائق التصميم: نهج أكثر كفاءة لتنمية البرمجيات

2024-12-15

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

سر فرق العمل عالية الأداء: أنظمة الذاكرة التفاعلية

2024-12-15

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

مكونات ويب متماثلة: التقديم من جانب الخادم أصبح أسهل

2024-12-15

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

SVC16: أبسط جهاز كمبيوتر افتراضي يتحدى المبرمجين

2024-12-15

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

مختبرات Railgun تكشف النقاب عن مكتبة خوارزميات Unicode عالية الأداء: Unicorn

2024-12-15

أصدرت مختبرات Railgun مكتبة خوارزميات Unicode عالية السرعة تسمى Unicorn، والمعروفة بسرعتها، وإمكانية تضمينها، وتوافقها متعدد المنصات، وأمانها. تدعم Unicorn العديد من خوارزميات Unicode، بما في ذلك التطبيع، وتحويل الأحرف الكبيرة والصغيرة، والفرز، والتقسيم، وتوفر مُشفرات وفك تشفير ومُصدقين لترميزات UTF-8 وUTF-16 وUTF-32. المكتبة قابلة للتخصيص بالكامل وتم اختبارها على نطاق واسع من أجل الدقة والموثوقية. وهي متوافقة مع معيار MISRA C:2012، وهي آمنة للخيوط بشكل كبير.

ثغرة أمنية في إمكانية الوصول إلى الإنترنت من Home Assistant

2024-12-15

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

إصدار XFCE 4.20: دعم تجريبي لـ Wayland والعديد من التحسينات

2024-12-15

بعد ما يقرب من عامين من التطوير، تم إصدار XFCE 4.20 رسميًا! تركز هذه النسخة على إعداد قاعدة التعليمات البرمجية لـ Wayland، حيث توفر الآن دعمًا تجريبيًا لـ Wayland لمعظم المكونات، على الرغم من أنها لا تزال في مراحلها الأولى، موصى بها للمستخدمين المتقدمين. كما يضم XFCE 4.20 العديد من الميزات الجديدة، وإصلاحات الأخطاء، والتحسينات، بما في ذلك تحسين مقياس الرموز، وعرض الرموز المحسّن من حيث الأداء، ومدير الملفات Thunar المُحدّث. من المهم ملاحظة أن دعم Wayland لا يزال غير مكتمل، حيث لم يتم نقل بعض المكونات والوظائف بعد.

بناء نظام كائنات بسيط من الصفر في روبي

2024-12-15

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

إصدار TeaVM 0.11.0: واجهة خلفية جديدة لـ WebAssembly

2024-12-15

تم إصدار TeaVM 0.11.0، والذي يتميز بواجهة خلفية جديدة لـ WebAssembly. الواجهة الخلفية القديمة لـ WebAssembly، على الرغم من كونها وظيفية، إلا أنها لم تحظَ باعتماد واسع النطاق بسبب مكاسب الأداء غير المهمة وتجربة مطور سيئة. الواجهة الخلفية الجديدة، مستفيدة من اقتراح WebAssembly GC، تعالج هذه المشكلات، وتحسن التفاعل مع واجهات برمجة تطبيقات JS للمتصفح وتقلل من حجم الملف الثنائي. على الرغم من أنها حاليًا أقل ثراءً من حيث الميزات مقارنة بالواجهة الخلفية لـ JS، إلا أنها تدعم بالفعل JSO (واجهة برمجة تطبيقات التفاعل بين Java و JS)، بهدف تحقيق التكافؤ في الإصدار التالي. يتضمن هذا الإصدار أيضًا إصلاحات للأخطاء في تنفيذ BitSet ويضيف دعمًا لواجهات برمجة تطبيقات JS متعددة، مثل قراءة الملفات، وأحداث اللمس، وواجهة برمجة التطبيقات Popover، و Navigator.sendBeacon.

التطوير

وداعًا للاجتماعات التي لا تنتهي: نهج جديد لتطوير البرمجيات عالي السرعة

2024-12-15

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

Vim: لغة برمجة تتجاوز محرر النصوص

2024-12-15

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

التطوير محرر

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

2024-12-15

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

إدارة التبعيات في بايثون: حريق هائل

2024-12-15

تتناول هذه المقالة بعمق تعقيدات إدارة التبعيات في بايثون، وتشبهها بإشعال نار في غابة جافة. يقول الكاتب أن تبعيات بايثون ليست مجرد أمر `pip install`، بل تشمل حزم المشروع، وحزم النظام، ونظام التشغيل، والأجهزة، والبيئة نفسها. إدارة التبعيات الجيدة أمر بالغ الأهمية للتكرار – لضمان نتائج متسقة في بيئات مختلفة. تفصّل المقالة التحكم في الإصدار، وعزل البيئة، وملفات التعريف، وملفات القفل، ومفاهيم رئيسية أخرى. ثم تقدم مقارنة شاملة للعديد من الأدوات، بما في ذلك pip و venv و virtualenv و pip-tools و Pipenv و Poetry و PDM و pyenv و pipx و uv و Conda و Mamba و conda-lock و Pixi، وتحليل نقاط القوة والضعف وحالات الاستخدام. أخيرًا، يقدم الكاتب توصيات للأدوات بناءً على سيناريوهات مختلفة (امتيازات المسؤول، وأنواع التبعيات، وأنظمة التشغيل، إلخ) ويتطلع إلى الاتجاهات المستقبلية في إدارة التبعيات في بايثون.

مكتبة LLVM C تسرّع من سرعة وحدات معالجة الرسومات: تشغيل رمز C على وحدات معالجة الرسومات

2024-12-14

أصدر مشروع LLVM مكتبة C لوحدات معالجة الرسومات مثيرة للاهتمام تتيح للمطورين تشغيل دوال libc و libm مباشرة على وحدة معالجة الرسومات ضمن رمز C/C++. تدعم المكتبة وضعين رئيسيين: كمكتبة تكميلية للغات نقل مثل OpenMP و CUDA أو HIP؛ وعن طريق تجميع رمز C/C++ مباشرة لوحدة معالجة الرسومات. وتفصل المقالة كيفية استخدام كلا الوضعين، بما في ذلك خيارات التجميع والربط والإصدارات الخاصة بوحدات معالجة رسومات AMD و NVIDIA. تتيح هذه المكتبة للمطورين الاستفادة من قوة المعالجة المتوازية لوحدات معالجة الرسومات، مما يحسن الأداء بشكل كبير دون الحاجة إلى معرفة متعمقة بنماذج برمجة وحدات معالجة الرسومات المعقدة.

Buzee: تطبيق بحث نصوص كامل مفتوح المصدر تم إصداره

2024-12-14

Buzee هو تطبيق بحث نصوص كامل متعدد المنصات تم إنشاؤه باستخدام Rust و Svelte. يسمح بالبحث السريع عن الملفات المحلية والمجلدات وسجل متصفح الويب وأكثر من ذلك، حتى أنه يستخرج النص من ملفات PDF والصور باستخدام OCR. تم تطوير هذا المشروع على مدار عامين، وهو يعرض بنية قوية باستخدام Tauri لتحسين الأداء، و SQLite و Tantivy للفهارس، وواجهة أمامية نظيفة من Svelte. على الرغم من أنه غني بالمميزات، إلا أنه لا يزال هناك بعض المجالات للتطوير في المستقبل، ويقوم المؤلف بإصداره كمصدر مفتوح حتى يتمكن الآخرون من المساهمة.

التطوير بحث نصوص كامل

موجهات الشبكات الفرعية Tailscale: حل بسيط للاتصالات الشبكية المعقدة

2024-12-14

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

هجوم سلسلة التوريد يستهدف Ultralytics: تحليل لحادث أمني في PyPI

2024-12-14

تعرض مشروع Python Ultralytics مؤخرًا لهجوم سلسلة توريد. قام المُهاجمون باختراق سير عمل GitHub Actions الخاصة بالمشروع وسرقة رمز API الخاص بـ PyPI، مما أدى إلى تلويث الإصدارات 8.3.41 و 8.3.42 و 8.3.45 و 8.3.46. لم يستغل الهجوم ثغرة أمنية في PyPI، بل استهدف ذاكرة التخزين المؤقت لـ GitHub Actions. استخدم PyPI النشر الموثوق وسجلات الشفافية Sigstore لتحديد وإزالة البرامج الضارة بسرعة. سلط الحادث الضوء على أوجه القصور في تكوين رموز API وبيئات GitHub. تؤكد المقالة على أهمية تأمين منصات البرمجيات وسير عمل البناء/النشر، وتقدم توصيات أمنية للمطورين: استخدام الناشرين الموثوقين، وقفل التبعيات، وتجنب الأنماط غير الآمنة، وتمكين المصادقة متعددة العوامل.

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

2024-12-14

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

1 2 3 4 6 8