صندوق أدواتي ed(1): غوص عميق في عالم تنفيذات ed(1)

2025-09-24

يشارك أرتيوم بولوجوف، وهو من عشاق ed(1) كما يدعي بنفسه، مجموعته من تنفيذات ed(1) ونصوصه البرمجية. يستخدم ed(1) على نطاق واسع كمحرر جيت، ومحرر sudo، وحتى كمنشئ مواقع ثابتة. وتشمل صندوق أدواته GNU ed، وOpenBSD ed (oed)، وإصدارًا مُحدّثًا يُدعى wed(1)، وaed(1) أكثر سهولة في الاستخدام، وxed(1) لكتابة النصوص البرمجية. تعالج هذه الأدوات قيود ed(1)، مثل نقص دعم النصوص البرمجية وصعوبة الاستخدام، مع الحفاظ على قابلية النقل عبر أنظمة متعددة. حتى أنه أنشأ تنفيذات ed(1) بلغات Brainfuck وBASIC وModal - دليل على تفانيه. يختتم بولوجوف بتشجيع القراء على تبني ed(1) وحبه.

اقرأ المزيد
التطوير

ضد REPLs Lisp المخصصة: تبني REPLs الأصلية والأدوات العملية

2025-08-20

ينتقد الكاتب REPLs Lisp المخصصة (مثل CIEL)، بحجة أنها تضحي بقدرة وقابلية تخصيص REPLs الأصلية، مثل أوامر REPL الأصلية، و أداة تصحيح الأخطاء الخاصة بالتنفيذ، وإمكانية التخصيص باستخدام واجهات برمجة التطبيقات الخاصة بالتنفيذ. وتفصل المقالة كيفية تحسين REPLs الأصلية باستخدام أدوات مثل مكتبة Trivial Toplevel و rlwrap، بما في ذلك المطالبات المخصصة، والأوامر، وماكرو القارئ، وإدارة التبعيات باستخدام ASDF. ويدعو الكاتب إلى استخدام REPLs الأصلية مع الأدوات العملية من أجل بيئة تطوير Lisp عالية الكفاءة وشخصية، بدلاً من الاعتماد على REPLs المخصصة "المتكاملة".

اقرأ المزيد
التطوير

استخدام ed(1) كـمُولِّد موقع ثابت: تجربة غريبة

2025-05-31

يتشارك أرتيوم بولوجوف رحلته غير العادية في إنشاء موقع ويب ثابت باستخدام محرر النصوص القديم ed(1). لقد جرب العديد من الطرق، من لغة Lisp إلى مُعالج ما قبل المعالجة بلغة C، ليقرر في النهاية استخدام ed(1) كمُولِّد موقعه الثابت. على الرغم من قيود ed(1)، مثل عدم وجود وظيفة تضمين الملفات، إلا أن مرونته تسمح باستخدام بناء جملة مخصص ومعالجة تنسيقات مُعالج ما قبل المعالجة القديمة. يستخدم نصوص ed(1) للنماذج الأولية وتحويل التنسيقات، مدعماً العديد من تنسيقات الإخراج (txt، gmi، 7، tex، إلخ). على الرغم من أنها ليست أفضل الممارسات، إلا أن المقالة تُظهر الإمكانات غير المتوقعة لـ ed(1) والنهج الفريد للمؤلف في معالجة النصوص.

اقرأ المزيد

الحقيقة القبيحة حول مسافات التباعد في لغة Lisp

2025-01-19

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

اقرأ المزيد