ما هذا الموقع
abox.tools مجموعة من الأدوات الصغيرة، تؤدي كل واحدة منها مهمة واحدة: تغيير مقاس صورة، أو قص مقطع فيديو، أو دمج ملفَّي PDF، أو قراءة ما يحتويه رمز QR فعلاً. عددها الآن 44، وإلى جانبها مكتبة من الأدلة تشرح المهام التي وُجدت من أجلها.
وغير المعتاد هنا ليس ما تفعله هذه الأدوات، بل أين تفعله. كل واحدة منها تعمل بالكامل داخل متصفحك، على عتادك أنت، مستخدمةً برامج فك الترميز والترميز التي يأتي بها المتصفح أصلاً. لا يُنقل أي ملف تفتحه إلى أي مكان، ولا يوجد خلف هذه الصفحات خادم يمكن أن يُنقل إليه أصلاً: الموقع كله ملفات ساكنة، والأدوات وحدات JavaScript عادية تُقدَّم إلى جانبها.
هذا هو المنتج. وكل ما تبقى في هذه الصفحة يشرح لماذا يستحق الأمر أن يُبنى على هذا النحو، ومن الذي يبنيه.
من يصنعه
شخص واحد، يعمل وحده، في أونتاريو بكندا. هذه ليست شركة. لا فريق، ولا مستثمر، ولا جهة أمّ، ولا نية للبيع لأي منها. تصل الرسائل إلى [email protected] ويقرأها من كتب الشيفرة؛ وتوضح صفحة التواصل ما يصلح له هذا العنوان وما لا يصلح له.
ويُنشر الموقع عمداً دون توقيع شخصي. فهذا مشروع صغير لا علامة شخصية، وما يستحق الثقة هنا ليس اسماً في أسفل صفحة، بل الشيفرة التي يستطيع أي أحد قراءتها، وسلوك الصفحات نفسه الذي يستطيع أي أحد التحقق منه في نحو ثلاثين ثانية وأدوات المطوّر مفتوحة. هذان أمران قابلان للتحقق، أما التوقيع فلا.
لماذا بُني على هذا النحو
الطريقة المعتادة لبناء أدوات كهذه هي رفع الملف، وإنجاز العمل على خادم، ثم إعادة النتيجة. وهي أسهل، وتعمل على أي جهاز، وهي ما يفعله تقريباً كل «محوِّل مجاني على الإنترنت».
وهي تعني أيضاً تسليم ملفك إلى غريب. هذا أمر هيّن مع صورة طريفة، وجادّ جداً مع صورة ممسوحة لجواز سفر، أو صورة طبية، أو عقد يحمل توقيعاً، أو صورة تحمل عنوان بيتك في بياناتها الوصفية. وبمجرد أن يصير الملف على جهاز شخص آخر، فإن ما يجري له يتوقف على سياسته وعلى كفاءته، ولا سبيل لديك لتدقيق أي منهما. سياسة الخصوصية في موقع كهذا وعد، وليست قيداً.
وقد صارت المتصفحات جيدة بما يكفي لتجعل ذلك الوعد غير ضروري. فهي تقرأ JPEG وPNG وWebP وتكتبها، وتفكّ حاويات الفيديو وتفكّ ترميزه، وتحسب بصمة ملف، وتقرأ رمز QR، وتكتب ملف PDF. وإذا كان بالإمكان إنجاز العمل على جهازك أنت، فإن سؤال «هل سيحتفظون بملفي؟» يكفّ عن كونه سؤالاً عن نوايا أحد ويصير سؤالاً عمّا تستطيع الشيفرة فعله ماديّاً، وهذا سؤال يمكنك أنت أن تجيب عنه.
هذه هي الحجة كاملة، ولها دليل يعرضها كما ينبغي: هل رفع الملفات إلى موقع آمن؟
التحقق بدل الثقة
كل ما سبق مكتوب ليُختبر. وهذه أربع طرق، مرتبة من الأقل جهداً إلى الأكثر:
- افصل الإنترنت. افتح صفحة أي أداة، ثم اقطع الاتصال، واستعملها رغم ذلك. ستستمر في العمل، لأنه لم تكن فيها قط خطوة شبكية. أما الأداة التي ترسل ملفك إلى الخارج لمعالجته فكانت ستتوقف.
- راقب الشبكة. افتح أدوات المطوّر، وانتقل إلى تبويب الشبكة، ثم عالج ملفاً. لن يحمل أي طلب ملفك، ولا صورة مصغّرة له، ولا اسمه، ولا بايتاً واحداً من محتواه. ما ستراه هو الصفحة، وبرامجها النصية، والإعلانات، وعدّاد الزيارات.
- اقرأ القاعدة التي تفرضها الصفحة على نفسها. تحمل كل صفحة
Content-Security-Policyتسمّي كل عنوان يُسمح لها بالاتصال به، وليس بينها عنوان واحد يخص هذا الموقع. وحتى لو وقع خطأ في الشيفرة لما استطاعت إرسال ملف إلى أي مكان، لأن المتصفح سيرفض الاتصال. - اقرأ الشيفرة. فهي معلنة بالكامل، بلا خطوة بناء وبلا مُجمِّع حزم: ما في المستودع هو بايتاً ببايت ما ينفّذه متصفحك. ولكل أداة ملف README يشرح كيف تعمل، وكل صفحة أداة تسمّي الملفات التي يستحق قراءتها أولاً.
وهناك استثناء واحد فقط ومقصود من قاعدة «لا شبكة»، وهو مشروح بإسهاب في صفحته الخاصة: مشاركة النص تنقل نصاً بين جهازين من أجهزتك أنت، وهذا لا يمكن إنجازه بغير شبكة. تفتح الأداة اتصالاً واحداً بوسيط لا يخزّن شيئاً، ولا يُقال له سوى أن متصفحين يريدان التعارف.
كيف تُبنى الأدوات وكيف تُفحص
تُنشر الأداة حين تعمل على ملفات حقيقية، لا حين تعمل على الملف الذي كُتبت في مواجهته. وهذا يعني عملياً تشغيلها باليد في متصفح على مدخلات عسيرة: الفيديو الذي لا إطار مفتاحياً فيه عند الموضع الذي تريد القص عنده، وملف HEIC من هاتف يكتب الحاوية بشكل خاطئ قليلاً، وملف PDF فيه خط مضمَّن جزئياً. فهذا ما بين أيدي الناس فعلاً، وهذا بالضبط ما لن يجده اختبار كتبه الشخص نفسه الذي كتب الخلل.
وتحت ذلك مجموعة اختبارات آلية تغطي الشقّين: المولّد الذي يبني الموقع، والوحدات التي ينفّذها المتصفح. تعمل هذه المجموعة عند كل تغيير، ولا يُنشر شيء بعد إخفاق. وحيث يتكرر العمل نفسه في أكثر من أداة، فعدد منها يقرأ ملفات MP4، يتحقق اختبار من أن النسخ ما زالت متوافقة، حتى لا يترك إصلاحُ إحداها الأخريات خاطئة في صمت.
وتُكتب الأدلة بالمقياس نفسه. فلقطات شاشتها يلتقطها برنامج نصي من الموقع بعد بنائه، لا تُرسم ولا تُمثَّل، فالصورة في الدليل هي صورة الصفحة كما هي اليوم.
كيف تُغطّى التكاليف
بالإعلانات، وبتبرعات من يجدون الأدوات نافعة. هذا هو نموذج العمل كله، ويجدر التدقيق في ما يشمله وما لا يشمله.
لا شيء هنا للبيع. لا حساب، ولا تسجيل، ولا نسخة مجانية فوقها نسخة مدفوعة، ولا علامة مائية تُشترى إزالتها، ولا حد لحجم الملف، ولا حد يومي، ولا ميزة محجوبة. ما على الموقع هو كل ما فيه.
ملفاتك ليست جزءاً من الصفقة. الإعلانات من Google وعدّ الزيارات بـGoogle Analytics، ولا يُخبَر أي منهما بما تفتحه، ولا بما تنتجه، ولا باسمه، ولا بحجمه، لأن أياً من البرنامجين لا يُسلَّم ذلك أصلاً، ولأن سياسة أمان الصفحة سترفض الإرسال لو حاول أحدهما. أما ما يجمعانه فعلاً وكيفية إيقاف كل منهما فمشروح في صفحة الخصوصية. وكل أداة تستمر في العمل مع حجب الاثنين معاً.
ولا تُكتب الأدوات من أجل الإعلانات. فما وُجدت أداة هنا لأن كلمة مفتاحية كانت تساوي مالاً، ولا جُعلت واحدة منها أبطأ أو أعقد أو موزعة على صفحات أكثر لبيع مزيد من الظهور. وما سيُبنى تالياً يُناقَش على الملأ، في ROADMAP.md، فقرة لكل فكرة، بما في ذلك أسباب رفض عدة اقتراحات تبدو بديهية.
اللغات
يُنشر الموقع بخمس عشرة لغة، وكل واحدة منها ترجمة حقيقية لا مخرَج آلة تُرك حيث وقع: أسماء الأدوات، والشروح، والأدلة، بل والعناوين نفسها كلها مترجمة، ولا تُدرَج صفحة في لغة إلا بعد أن تُكتب تلك اللغة فعلاً. واللغة التي ما زال العمل عليها جارياً تبقى قابلة للقراءة، لكنها تُستبعد من خريطة الموقع ومن مبدّل اللغات، حتى لا يُدعى أحد إلى صفحة نصفها بالإنجليزية.
ويُرَدّ على الرسائل بالإنجليزية، وهو الشيء الصادق الوحيد الذي يمكن قوله عن مشروع بهذا الحجم.
ما لن يفعله هذا الموقع
- أن يطلب منك إنشاء حساب، أو أن يطلب بريدك الإلكتروني.
- أن يرفع ملفاً تفتحه هنا، أو يخزّنه، أو يفحصه، أو يحتفظ به.
- أن يضع علامة مائية على نتيجة، أو يحجب ميزة لنسخة مدفوعة.
- أن يضيف خطوة شبكية إلى أداة لا تحتاج إليها.
- أن يدّعي في صفحة أداة شيئاً لا تفعله الشيفرة في المستودع.
وإن وجدت أياً من ذلك يحدث، فهو خلل ووعد منقوض في آنٍ واحد، ويستحق أن تخبرني به. وصفحة التواصل هي أسرع طريق.