Category: التطوير

أتمتة الردود على رسائل البريد العشوائي العقاري باستخدام نماذج اللغات الكبيرة

2025-01-24

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

التطوير

من نيوفي إلى زيد: هجرة محرر من قبل مخضرم في فيم بعد 15 عامًا

2025-01-24

بعد 15 عامًا من استخدام Vim/Neovim، انتقل مطور متمرس إلى محرر Zed الجديد بسبب إحباطه من الإعدادات المعقدة وإدارة الإضافات، ورغبته في دمج LLM الأصلي. لقد أثار وضع Vim القوي في Zed، وتكوينه JSON البسيط، ودمج LLM القوي (المسمى "المساعد")، وسرعته العالية إعجابه، مما دفعه إلى وداع مؤقت لرفيقه Neovim القديم. على الرغم من أنه تجربة، إلا أن انطباعاته الأولية إيجابية للغاية، مما يشير إلى عصر جديد محتمل لمحرري التعليمات البرمجية.

التطوير

واجهة مستخدم جيثب: الماضي، والحاضر، وتكلفة واجهة المستخدم الأمامية تبلغ 10 أضعاف

2025-01-24

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

الدروس المستفادة من توسيع نطاق WebSockets في Compose

2025-01-24

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

تبسيط الخلفية Haskell باستخدام GADTs: قصة هدفين Lambda Box

2025-01-24
تبسيط الخلفية Haskell باستخدام GADTs: قصة هدفين Lambda Box

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

التطوير

C++26: فهرسة الحزم تبسّط استخراج العناصر

2025-01-24

على الرغم من أن C++11 قدّم حزم المعلمات، إلا أن استخراج عناصر محددة ظلّ عملية شاقة. يُدخِل C++26، بفضل الاقتراح P2662R3، فهرسة الحزم، مما يسمح بالوصول المباشر إلى عناصر الحزمة باستخدام عامل التشغيل الخاص بالفهرس، مثلًا `T...[0]` للعنصر الأول. يؤدي هذا إلى رمز أنظف وأكثر قابلية للقراءة وأداء أفضل في وقت التجميع. على الرغم من عدم دعم الفهرسة السالبة والتشريح بعد، إلا أن الميزة عملية للغاية بالفعل، وتحسّن تطوير C++ بشكل ملحوظ.

مولد مُتَنبِّئَاتِ النوع: إعادة تعريف السرعة وسلامة النوع

2025-01-24
مولد مُتَنبِّئَاتِ النوع: إعادة تعريف السرعة وسلامة النوع

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

مشغل KubeStatus: إضافة صفحة حالة بسهولة إلى مجموعة Kubernetes الخاصة بك

2025-01-24
مشغل KubeStatus: إضافة صفحة حالة بسهولة إلى مجموعة Kubernetes الخاصة بك

مشغل KubeStatus هو أداة مجانية مفتوحة المصدر تتيح لك بسهولة إضافة صفحة حالة إلى مجموعة Kubernetes الخاصة بك، تعرض الحالة التشغيلية (قيد التشغيل، أو منخفضة، أو معطلة) للخدمات. مكتوب بلغة Go ويستخدم واجهة برمجة تطبيقات Kubernetes لاستخراج معلومات حول المجموعات والموارد، يوفر KubeStatus طريقة بسيطة ومريحة لعرض الحالة الحالية لمجموعتك ومواردك دون الحاجة إلى استخدام أداة سطر الأوامر kubectl أو لوحة معلومات Kubernetes. كما يوفر صفحة سهلة الاستخدام يمكن أن تعمل كصفحة الحالة الرئيسية الخاصة بك.

التطوير مراقبة الحالة

التحقق الرسمي لإثبات الجبر الخطي باستخدام Lean

2025-01-24
التحقق الرسمي لإثبات الجبر الخطي باستخدام Lean

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

إيكي برايت: دعوة لتخطيط المسار بنفسك

2025-01-24
إيكي برايت: دعوة لتخطيط المسار بنفسك

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

مُجمِّع WebAssembly بحجم 192 بايت: إنجازٌ في مجال تقليص حجم الكود

2025-01-24
مُجمِّع WebAssembly بحجم 192 بايت: إنجازٌ في مجال تقليص حجم الكود

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

التطوير

سلاح Little Snitch السري: التحكم الدقيق في مساعد بحث سفاري

2025-01-24

أثناء تهيئة Little Snitch على جهاز ماك جديد، اكتشف الكاتب أن عملية مساعد البحث في سفاري تتصل بصمت بـ ssl.gstatic.com من جوجل. لقد نجح تغيير محرك البحث أو حظر الاتصال، لكن الأخير تداخل مع مصادقة Gmail. الحل؟ قاعدة ذكية من Little Snitch باستخدام وظيفة "via"، حيث يتم حظر اتصال مساعد البحث فقط بينما يُسمح لسفاري نفسه، مما يُظهر ميزة قوية وغير معروفة. هذا يبرز جانبًا دقيقًا ولكنه مهم من الاتصال الخلفي بين المتصفح ومحرك البحث.

التطوير سفاري

التفرع في البيانات لأنظمة معالجة الدُفعات: نهج شبيه بنظام جيت

2025-01-24

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

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

2025-01-24
Lightpanda: متصفح خفيف بدون واجهة رسومية للذكاء الاصطناعي والأتمتة

Lightpanda هو متصفح مفتوح المصدر بدون واجهة رسومية مصمم لمهام الذكاء الاصطناعي والأتمتة. مكتوب بلغة Zig، يتميز باستهلاك منخفض للغاية للذاكرة وسرعة تنفيذ استثنائية - أسرع 11 مرة وأقل استهلاكًا للذاكرة بنسبة 9 مرات من Chrome. يدعم تنفيذ Javascript وبعض واجهات برمجة تطبيقات الويب، وهو متوافق مع Playwright وPuppeteer، مثالي لوكلاء الذكاء الاصطناعي، وتدريب نماذج اللغة الكبيرة، والجمع، والاختبار. في مرحلة تجريبية حاليًا، ولكنه يوفر بالفعل محمّل HTTP، ومحلل HTML، وشجرة DOM، ودعم Javascript (v8)، وواجهات برمجة تطبيقات DOM الأساسية، وAjax، وAPI XHR، وAPI Fetch، ونسخ DOM.

Wild: برنامج ربط سريع للغاية لنظام Linux

2025-01-24
Wild: برنامج ربط سريع للغاية لنظام Linux

Wild هو برنامج ربط مصمم للسرعة في التطوير المتكرر. على الرغم من عدم تنفيذ الربط التزايدي حتى الآن، إلا أنه سريع بشكل مثير للإعجاب بالفعل. بالنسبة إلى عمليات البناء الإنتاجية، يُنصح باستخدام برامج ربط أكثر نضجًا مثل GNU ld أو LLD. ومع ذلك، بالنسبة للتطوير، يُسرّع Wild أوقات البناء بشكل كبير، خاصة على أنظمة Linux x86-64. وهو يدعم الملفات التنفيذية والأشياء المشتركة المرتبطة ثابتًا وديناميكيًا، وقد تم اختباره مع العديد من المكتبات الشائعة من crates.io. حاليًا، يتم تطوير ميزات مثل الربط التزايدي، ودعم أنظمة هندسة أخرى، وأعلام برامج الربط الإضافية.

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

خوارزمية فرز الكتب شبه المثالية

2025-01-24
خوارزمية فرز الكتب شبه المثالية

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

التطوير هيكل البيانات

إصدار Threlte 8: تحديث رئيسي لإطار عمل Svelte ثلاثي الأبعاد

2025-01-24
إصدار Threlte 8: تحديث رئيسي لإطار عمل Svelte ثلاثي الأبعاد

أصدر فريق Threlte إصدار Threlte 8، وهو إنجاز كبير يحقق تحسينات كبيرة في الأداء والمرونة وتجربة المطور. يُدمج هذا الإصدار ميزات Svelte 5 الجديدة ويستفيد من أحدث التطورات في Three.js. تشمل التحديثات الرئيسية مكون `` جديدًا كليًا، وواجهة برمجة تطبيقات محسّنة للإضافات، ودعم WebGPU، وإصدار ألفا من Threlte Studio. على الرغم من وجود تغييرات جوهرية، إلا أن دليل الهجرة متوفر لمساعدة المستخدمين.

التطوير

رحلتي مع مساعد المنزل في عام 2025

2025-01-24
رحلتي مع مساعد المنزل في عام 2025

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

التطوير

magenta.nvim: إضافة LLM لـ Neovim تركز على استخدام الأدوات

2025-01-24
magenta.nvim: إضافة LLM لـ Neovim تركز على استخدام الأدوات

magenta.nvim عبارة عن إضافة قوية لـ Neovim تستخدم نماذج اللغات الكبيرة (LLM) لتعزيز كفاءة البرمجة. توفر نافذة دردشة للتفاعل مع مساعد ترميز ذكاء اصطناعي، بالإضافة إلى أدوات لملء السياق وإجراء عمليات تحرير سطرية. وعلى عكس الإضافات الأخرى، تعتمد magenta.nvim على LLM لاختيار سياقه الخاص، باستخدام أدوات متنوعة (مثل سرد المجلدات، والحصول على محتويات الملفات، واستخدام ميزات LSP، إلخ) لإنجاز المهام. تتميز بواجهة نظيفة، واختبارات شاملة، ودعم لمقدمي الخدمات المتعددين مثل OpenAI و Anthropic، مما يجعلها قابلة للتوسيع وقوية للغاية.

الذكاء الاصطناعي يخلق جيلاً من المبرمجين الأميين

2025-01-24

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

(nmn.gl)
التطوير المبرمجين

وداعًا للتنسيق الموزع: كيف يبسط Restate التطبيقات الموزعة باستخدام سجل واحد

2025-01-24
وداعًا للتنسيق الموزع: كيف يبسط Restate التطبيقات الموزعة باستخدام سجل واحد

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

التطوير سجل

حالة تقليل التبعيات في Rust

2025-01-24
حالة تقليل التبعيات في Rust

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

التطوير

أزمة ثقة في Docker Hub: مأزق LinuxServer.io

2025-01-24
أزمة ثقة في Docker Hub: مأزق LinuxServer.io

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

التطوير

Oracle Linux: أفضل بيئة افتراضية محلية غير متوقعة لأجهزة MacBook

2025-01-24

احتاج الكاتب إلى بيئة لينكس محلية لتطوير Kubernetes على جهاز MacBook الخاص به. بعد معاناته من استهلاك الطاقة العالي ومشاكل السكون في Docker Desktop ، اكتشف حلاً غير متوقع: Oracle Linux. يوفر Oracle Linux ، وهو مشتق من Red Hat Enterprise Linux ، قالب UTM سهل الاستخدام. يصف الكاتب بالتفصيل إعداد k3s و cert-manager ، مع تسليط الضوء على انخفاض استهلاك الطاقة المدهش لـ Oracle Linux في UTM ، مما يحل المشكلات التي تم مواجهتها مع Docker Desktop. هذا يجعله خيارًا متفوقًا للتنمية المحلية.

التطوير

Nix@NGI: تبسيط برمجيات المصدر المفتوح

2025-01-24
Nix@NGI: تبسيط برمجيات المصدر المفتوح

تهدف مجموعة Nix@NGI إلى تسهيل تشغيل برمجيات المصدر المفتوح، سواء الآن أو على المدى الطويل. بالشراكة مع اتحاد NGI Zero، يهدفون إلى دمج أكثر من 1200 مشروع ممول من قبل NLnet في نظام Nix البيئي. يتمتع الفريق بمجموعة متنوعة من المهارات، بما في ذلك الإدارة والعمليات والتنمية والصيانة، ويرحب بالمتطوعين والمتدربين بنشاط. يعود عملهم بالفائدة على المساهمين في NixOS ويحسن إمكانية الوصول إلى برمجيات المصدر المفتوح. تشمل الخطط المستقبلية تحسين الأدوات والعمليات وتجربة المستخدم، مما يدفع تطوير برمجيات المصدر المفتوح إلى الأمام.

TB Tilde: بديل ثوري لـ LLVM؟

2025-01-24

يهدف TB Tilde، الذي طوره ياسر، إلى استبدال LLVM، حيث يوفر سرعة تجميع أعلى وحجمًا أصغر. تُظهر الاختبارات الأولية أن مُعالج ما قبل المعالجة الخاص به أسرع مرتين من معالج Clang. يستخدم TB Tilde نظام IR "بحر العُقد"، ويتميز بنظام أنواع بسيط ووحدات آمنة للخيوط، ويدعم التجميع JIT و AOT، ويمكنه حتى إنشاء ملفات قابلة للتنفيذ مرتبطة مباشرة. المشروع قيد التطوير النشط، بهدف تحقيق الاستضافة الذاتية لمُجمِّع Cuik على نظام Windows في مارس 2024، تليها تحسينات مُحسِّن.

التطوير

التغلب على قضاة بحث LLM الغير دقيقين باستخدام التعلم الآلي الكلاسيكي

2025-01-24
التغلب على قضاة بحث LLM الغير دقيقين باستخدام التعلم الآلي الكلاسيكي

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

التطوير

بناء Bolt: رحلتي نحو مُجمِّع جاهز للإنتاج

2025-01-24
بناء Bolt: رحلتي نحو مُجمِّع جاهز للإنتاج

هذه المقالة، وهي الأولى في سلسلة، تُفصّل تجربة الكاتب في بناء Bolt، وهي لغة برمجة كائنية التوجه متزامنة على غرار Java. تشرح المقالة الدافع وراء إنشاء مُجمِّع، مستخدمةً تشبيهًا بمشغل التلغراف الذي يُترجم الكلام إلى شفرة مورس. يغطي الكاتب مراحل المُجمِّع الرئيسية، مثل التحليل المعجمي والنحوي، والتحقق من النوع، وتوليد التعليمات البرمجية، مع تسليط الضوء على ميزات Bolt المتقدمة، مثل الكائنات، والطبقات، والوراثة، وإعادة كتابة الأساليب، والتزامن، والعاميات. وتناقش المقالة الكتابة الثابتة مقابل الكتابة الديناميكية، ودور LLVM، مُفسرةً كيف يُجمِّع Bolt إلى LLVM IR من أجل التحسين وتوليد شفرة الآلة. ومن المميزات الفريدة لـ Bolt مرحلة التحقق من النوع المزدوجة التي تضمن السلامة المتزامنة. وتَعِد السلسلة بتقديم درس عملي حول بناء مُجمِّع يتجاوز لغات الألعاب البسيطة.

التطوير

محرك بحث نصوص كامل في 150 سطرًا من بايثون

2025-01-24

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

التطوير
1 2 177 178 179 181 183 184 185 213 214