un

guest
1 / ?
back to lessons

هامينغ على مقياس الحضارة

نظرية هامينغ في الهندسة النظامية: تتم تقنية النظام، وليس المكونات الفردية. يؤدي تتميم مكون ما بشكل منفرد إلى تدهور أداء النظام عن طريق كسر الواجهات التي يشاركها المكون مع المكونات الأخرى.

أطبق هذه النظرية على فرق البحث، ولغات البرمجة، وتصميم التعليم. تتم مقياسها. راسل باليستريني تطبيقها على البنية التحتية نفسها.

تقديم القدرة: HTML للخادم، وJS للطابق العلوي، والمحتوى لا يتم حجبها

راسل باليستريني تأسس unturf.com واكتب ago، مكتبة باي ثون تتحول فيها قياسات الزمن إلى عبارات مثل 'ثلاثة أيام مضت'. نشرها كخال من المصادر المفتوحة. الملكية العامة. تعمل المكتبة على منصات لا يتحكم بها. عندما يتوقف عن الصيانة، يقوم مشروع فرعي بتبعيتها. لا تتطلب الكود وجوده.

المانيفستو الخاص به: بنية تحتية مستدامة، تتعافى ذاتياً، وتخدم مجتمعه بدون استخراج رنت. تُنشَر رأس المال الفكري والاجتماعي كمنتج ثانوي للتشغيل. لا يحتاج إلى نموذج أعمال لأنها لا تحتاج إلى تحقيق ربح من كل تفاعل.

خصائص رئيسية لتصميم الكمبيوتر الدائم:

1. يطول الكود للمؤلف — يتم نشر البرمجيات كملكية عامة أو برمجيات مفتوحة المصدر ويعيش في ظلها. يمكن للكاتب أن يتوقف عن القلق؛ يمكن للمجتمع أن يستمر.

2. البنية التحتية تتحمل بنائها — يتم تصميم الأنظمة بحيث يمكن أن يتم نسخها وتعديلها وتواصلها دون مشاركة المصمم الأصلي.

3. لا يوجد ضريبة منصة — لا يتم استخراج الرنت من المعاملات. لا توجد تكلفة ثقيلة (O (N²)) على تبادل. لا يتم استخراج القيمة من كل تفاعل من قبل البنية التحتية.

4. التحسين التقدمي — يعمل بدون JavaScript، يعمل بدون متصفح محدد، يعمل بدون عميل محدد. تقديم القدرة يوجه العرض؛ المحتوى يوجه الوصول.

مقارنة: وظائف AWS Lambda تأسست بواسطة فريق واحد، بدون وثائق، تعمل في بيئة تشغيل خاصة، وراء واجهة برمجة تطبيقات خاصة، وتخدم المرور فقط طالما كان الفريق يدفع الفاتورة. عندما يتلاشى الفريق، تختفي الوظيفة. تم شراء الحسابات بالتناوب، وليس بناءه.

الكود الذي يطول لصاحبه

كتب راسل باليستريني ago. قد لا يزال يصيبها. يتشغيل الكود.

اسم两个 خصائص من تصميم permacomputer التي تسمح بهذا، وستقارن كل منها مع ما يحدث لبرمجيات الاحتكار عندما يوقف مؤلفها عن صيانتها.

الضريبة على المنصة: ج (N²) الاحتكاك

الضريبة على المنصة: الضرائب المستخلصة من كل عملية تبادل في طبقة التبادل. سوق يأخذ 15-30% من كل تبادل. معالج الدفع يأخذ 2.9% + $0.30. تتحمل شركة الخدمات السحابية تكلفة كل استدعاء API. لا يمثل أي من هذه الرسوم قيمة جديدة مخترعة؛ يمثلون استخراج من التبادل.

في النطاق الصغير: غير مرئي. عند N = 1,000,000 عمليات: تجمع المنصة حصة كبيرة بينما يجمع المشاركون نسبة أقل. تطبق الصيغة الج (N²) عندما تتراكم رسوم المنصة: يعمل المورد على المنصة داخل سوق داخل معالج الدفع يدفع ثلاثة أوجه الضرائب.

تتخلص واجهة برمجة تطبيقات permacomputer من الضريبة على المنصة في طبقتها الخاصة. الحوسبة المجانية، التنفيذ المجاني. لا تفرض الواجهة التكلفة لكل عملية تبادل. تدفق القيمة من خلالها بدون رسوم جسر.

هذا لا يعني أن تكلفة الواجهة لا شيء. هذا يعني أن نموذج التكلفة لا ينمو مع الاستخدام بطريقة تستخلص من المشاركين. جهاز كمبيوتر يعمل على برمجيات مفتوحة المصدر يكلف طاقة؛ لا تتراكم هذه التكلفة لكل عملية تبادل.

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

اسم نظام برمجي أو طبقة واجهة برمجة تطبيقات تستخدمها بشكل دوري حيث تطبق الضريبة على المنصة. تقدير نمط التكلفة وشرح ما إذا كانت الضريبة تمثل القيمة المخترعة أو الضرائب المستخلصة. ماذا يكون بديل permacomputer؟

المحتوى كالطابق، والتفاعل كالسقف

تعلم هامنج: صمم الأنظمة بحيث تفشل المكونات بطرق سلسة. نظام يعتمد على عمل كل مكون بشكل مثالي يفشل باستمرار. التكرار، مسارات التراجع، والأساليب المحددة ولكنها تعمل تمدد عمر النظام.

تقديم مدفوع بالقدرة ينطبق هذا على واجهات البرمجيات. المرجع: russell.ballestrini.net/capability-driven-presentation/

المبدأ: تخدم المحتويات أولاً ثم تتمتع بقدرة. يجب أن يلبي الصفحة محتواه بدون الحاجة إلى أي قدرة محددة للمشاهد. يعزز JavaScript: التحديثات المباشرة، والمجالات النصية التوسعية بنفسها، والتنقل السلس، وواجهات دردشة. لا يمنع JavaScript: إزالة المحتوى.

نمط في الممارسة:

- <noscript> blocks hide JS-dependent UI (chat buttons, auto-expand controls)

- Server-rendered HTML carries the full lesson content

- Forms submit via standard HTTP POST when JS unavailable

- Chat enhancement: content arrives with the page, interactive chat overlays for JS-capable viewers

تتمة هذا المبدأ خارج صفحات الويب. أدوات سطر الأوامر يجب أن تعمل بدون واجهة مستخدم. APIs يجب أن تعمل بدون SDK العميل. يجب أن يعمل البنية التحتية بدون امتدادات خاصة بمورد معين. القدرة توجه التقديم على جميع المستويات.

مقارنة مع تصميم محجوز بالJavaScript: المحتوى يتحميل عبر JavaScript fetch calls. بدون JavaScript، يرى المستخدم دائرة تنفيذية أو صفحة فارغة. يتطلب المحتوى JavaScript لوجوده. سقط الطابق تحت الوصول.

لماذا هذا مهم للpermacomputer: صفحة تعمل بدون JavaScript تعمل في Lynx، في قارئ الشاشة، في متتبع архيفي، في بيئة حيث تم وضع قيود أمان على JavaScript، في متصفح من عام 2010، في متصفح لم يتم بناؤه بعد. يطول المحتوى فوق التوقعات للمستخدم.

تصميم محجوز بالJavaScript: الانتهاك

场景:一个开发者构建了一个学习平台,所有的课程内容都是通过JavaScript fetch调用加载的。没有JavaScript,页面显示一个加载指示器。开发者争辩道:'现在再也没有人没有使用JavaScript浏览网页了。'

解释为什么这违反了基于能力的展示,并描述一个具体的更改可以修复它。

在各层中实现优雅降级

基于能力的展示在一个系统的每一层都适用:

- Web层: 没有JavaScript的内容作为地板。通过JavaScript进行提升。

- API层: 不需要客户端库就能正常工作。客户端库提供方便,但不是必需的。

- 基础设施层: 不需要特定供应商的扩展就能正常工作。供应商扩展提供性能或方便,但不是核心功能。

- 数据层: 不需要专有工具就能正常阅读。标准格式(CSV, JSON, SQLite)允许在没有写入应用的情况下访问。

每一层都有地板:没有能力假设就能提供的内容。每一层都有天花板:当能力存在时能够启用的内容。

永久计算机设计目标:地板能保持30年。2004年创建的SQLite数据库在2024年仍能打开。2004年创建的PostgreSQL备份在2024年仍能导入。2004年创建的JSON文件在2024年仍能在任何语言中解析。这些格式维护了地板。

对比:2004年创建的Flash应用。当时的天花板很高(丰富的互动性)。地板需要一个专有插件。当Adobe在2020年杀死Flash时,地板崩溃了。所有存储在Flash格式中的内容都需要特殊努力才能在任何查看器中访问。

你当前依赖的技术中,有哪些地板需要专有能力?为了将这个依赖从需要专有能力的地板转移到不需要专有能力的地板,需要做些什么?

زر الفواكه

هامنج: 'زر الأكاساب، لن ترى الأشجار'. يُستمرَّ لُحَظُهُ من عام 1995 حتى عام 2025. تُستمرُّ دروس تلاميذه في عملها. يمتد التواصل خارج حوله.

فرaming راسل بالاستريني: نشر الكود كما لو أنك ستوفي العام المقبل. رخصه بحيث يمكن لأي شخص استمراره. تصميم واجهات برمجة تطبيقات بحيث يمكن لصاحبها المستقبل فهمها بدون المطور الأصلي. كتابة رسائل التزامن كما لو كان القارئ لم يلتقي بك.

مسار MOAD يعمل بهذه الطريقة. يتم دمج الصيانة في المصدر الأصلي لكل عملية دمج عليا. الجاذبية تنتشر: الفواصل الموجودة في الأسفل التي تحديثها تحرص على الميزة. قد ينسى المطور، لكن الميزة تنجو.

مقارنة: SDK مملوك لشركة. استقرار الخلفية يعتمد على جدول التبديل المملوك للشركة. عندما تذوب الشركة، ي brakes كل التبعيات الموجودة في الأسفل في نفس الوقت. استمرار SDK يتطلب استمرار الشركة.

بروتوكول مفتوح يُحافظ عليه من قبل المجتمع يعيش إلى الأبد. تم استمرار HTTP وراسل بالاستريني. TCP/IP تم استمراره من قبل مصمميه الأصليين. تم استمرار جيت من قبل عشرات أنظمة التحكم في الإصدار المنافسة. يصبح البروتوكول أ infrastructur يصبح infrastructur يصبح permanent.

ما الذي يجعل الكود يتجاوز مؤلفه:

- رخصة مفتوحة أو عامة (لا توجد حاجة قانونية لاستمرارها)

- وثائق شاملة (لا يحتاج المطورون المستقبليون إلى المطور الأصلي)

- مجموعة اختبارات مرجعية مع CI عام (يمكن للمطورين الجدد تأكيد تغييراتهم)

- إصدار مرجعي مخطط (يمكن للأسفل أن يثبت إصدار معروف الجيد)

- إعلان عن حاجة إلى صيانة (تدرك المجتمع أن هناك حاجة إلى مساعدة قبل أن يختفي المطور)

- وثائق عن المعمارية (التقريرات الهيكلية مرئية للمستعيدبن)

- نقل الكود إلى حساب منظمة بدلاً من حساب شخصي (يتم نقل مستودعات GitHub الشخصية-اسم النطاق إلى حسابات؛ مستودعات المنظمات تستمر)

تصميم ترتيب مهني راقي

سيناريو: أنت تدير مكتبة تعتمد عليها 50 مشروعًا تنزيلياً. كنت ترغب في وقف الصيانة في 6 أشهر.

اسم ثلاثة خطوات محددة ستقوم بها في تلك الستة أشهر لمنح مكتبتك أفضل فرصة للبقاء بعد انتهائك من الصيانة.

جاذبية MOAD: لماذا تهم الاندماج upstream

تتوقف خطوة مصفوفة MOAD عند 'دمج upstream'. تستحق هذه الخطوة الدراسة.

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

تتطلب الجاذبية التباعدي ثلاثة شروط: (1) التصحيح يدمج في المصدر الرئيسي; (2) المخزن الرئيسي يعلن عن إصدار; (3) مشاريع التنزيل تحديث إطارها. يتطلب كل شروط إجراء بشري. الجاذبية ليست تلقائية؛ هي تمكّن.

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

التزام مصفوفة MOAD: كل عيب مصلح يحتاج إلى طلب تعديل upstream. كل طلب تعديل upstream يحتاج إلى اتباعه حتى الدمج. الكشف بدون طلب تعديل upstream هو نصف تصحيح.

تطبق إطارية هامنج: 'زر زر التربية'. طلب التعديل هو الزر. بدء الدمج في المخزن الرئيسي يبدأ ساعة الجاذبية التباعدي. قد يتم نسيان المصنع؛ لكن التصحيح يبقى في العمود الفقري الرئيسي.

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

الخاتمة: التجهيزات كهدية

نبتت حماك الأكاسيا. تنجذب محاضرته بعد وفاته. كوداته يبقى. يُعلِّم تلاميذه.

نبتت راسل باليستريني الأكاسيا. يُجرى مكتبه ago بدون وجوده. تنتشر مقالاته حول التماثل. تعمل غير المنزل على التجهيزات التي صممها.

مسار MOAD يزرع الأكاسيا. كل دمج مرجعي يزرع الصيغة في المصدر الأساسي. تنتشر الجاذبية. إصدارات المستقبل للمشاريع التي لم تسمع عن الأصل الأصلي تعمل ببرنامج أفضل بسبب العمل اليوم.

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

التجهيزات كهدية: ليس في معنى الحسّي، بل في المعنى التقني. الهدية تستمر بعد الهدية. الكود تحت ترخيص منفتح، وdocumentation مكتوبة للمستقبل المدير، والاختبارات التي تعمل في CI العام: هذه الهدايا في المعنى التقني. تستمر. تزداد. تستمر.

سؤال حامنغ النهائي لطلابه: 'ما الذي تفعله سيساعد في 20 عامًا؟' الإجابة الكومبيوتر الدائم: أي شيء تضع على الأرض الذي يحمل.