الاثنين، 15 سبتمبر 2025

السنن الكونية (1): عن التحدي الإنساني الصعب والهروب للحل السهل

 قرأت كثيراً تعبير "السنن الكونية"، لكني دائماً اقرأه في سياق موضوع آخر يدافع عنه الكاتب، ولم اجد من كتب عن هذه السنن نفسها او حاول أن يصنع كتالوجاً من السنن المختلفة. (لو كنت تعرف عمن فعل شيئاً مثل هذا فأخبرني!). في هذه السلسلة سأحاول ان احكي عن امثلة مما اراه يندرج تحت هذه السنن. كل ما اكتبه هنا هو رأيي الشخصي لا أكثر.

 سوف نتحدث اليوم عن أمر يتكرر في حياة كل إنسان فرد، وفي كل مجتمع، وفي كل ثقافة، وهو أمر كبير منسوج في تاريخ البشرية كلها، وفي رأيي من أهم جوانب الحياة الإنسانية. اتكلم عن الموقف الآتي:

 1- الإنسان أو المجموعة لديهم هدف كبير، أو هم في خطر ما لابد أن يتصدوا له

2- لكن الأمر صعب جداً، سوف تحتاج أن تبذل مجهودا كبيرا، مع احتمالات نجاح ضعيفة جدا

3- في هذه اللحظة يأتي شيطان (حقيقي أو مجازي) ويعرض عليك حلا سهلاً ومضموناً. هذا الحل ليس بحقيقيّ، إنه انهزام مزيّن بمكياج وليس انتصاراً، لكنه سهل ومضمون

4- ماذا يفعل الإنسان هنا؟ يمكنه أن يقول "سوف استمر في الحل الصعب، حتى لو كان احتمال نجاحه ضئيلا"، لكن تبدو له هذه الفكرة، نفسياً، غبية. هذا هو دور الحل السهل: ان ينفّرك من الحل الحقيقي

5- الكفاح البشري الفردي، وكفاح الأمم، ملخصه هو "ماذا سيفعل الإنسان إزاء هذا الاختيار؟"

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

- هناك دول تعيش على الديون والمنح والمعونات لأن قادتها ليسوا مؤمنين بقدرتهم على بناء اقتصاد حقيقي ويسمونه أمراً مستحيلاً. (احيانا ينفون اللوم عن أنفسهم ويقولون أن الشعب هو الذي يفتقد هذه القدرة، لكننا جميعاً نعرف الحقيقة)

 - للذين دخلوا كليات صعبة: كم من اقربائك قالوا لك ان تبتعد عن هذه البهدلة التي لن تحتملها، وأنه ينبغي أن تدخل كلية سهلة تتفوق فيها مرتاحاً؟

- حين يخطيء الإنسان في حق شخص، هل سيعتذر ويتحمل الغصّة التي تأتي مع الاعتراف بالخطأ، أم سيتظاهر للأبد أنه لم يخطيء؟

 - هناك جماعة من الناس مُنعوا أن يعيشوا في دولة أو حتى دُويلة، بل مجبرون أن يعيشوا في شظية من دولة، لكنهم يخوضون حرباً عسكرية ضد عدو يخيف كل الدول التي تحيط به، التي هي اختارت الحل السهل

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

- حين يتصل بك صديقك ويسألك لماذا تأخرت، هل ستقول "أنا في السيارة عند ناصية الشارع الذي سنتقابل فيه" أم ستقول "أنا أمام باب المنزل وسأركب السيارة الآن"؟

- اقرأ قصة حياة أي عالم أو مصلح اجتماعي، هل ستتفاجأ لو وجدت جملة على غرار "وتجاهله المجتمع، وسخر منه الناس، وحاربه الكثير"؟

- هل نصنّع سيارة/الكترونيات/ai محلياً، أم نأتي بمنتج أجنبي، نقوم بتجميعه ووضعه في كرتونة محلية، ونقدمه على أنه من إنتاجنا؟

 - هناك عدد هائل من الافلام الأمريكية (وغير الامريكية أيضا) قصتهم لها نفس التركيب: البطل يعيش حياة بسيطة، تأتي مهمة كبرى تناديه، يحقق انتصاراً مبدئيا، تأتي الصعوبة الحقيقية وتحطم ما أنجزه، يأتيه الإغراء أن يترك كل شيء ويعود لحياته القديمة لأنه غير مؤهل/لا يستحق الانتصار والفوز بالحياة الجديدة، يأتي موقف جاد عن القرار: أتوقف أم أستمر؟

 - ماذا افعل اللحظة القادمة؟ هل اقوم بذلك العمل المقرف المتأخر عليّ، أم أفتح السوشال ميديا؟

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

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

الأحد، 24 أغسطس 2025

نتفلسف عشان احنا فاضيين وكدة

توجد فزورة شهيرة كالتالي:

What happens when the unstoppable force meets the immovable object?

ماذا يحدث حين تتقابل القوة التي لا توقَف مع الجسم الذي لا يُحرَّك؟

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

فلنطرح إجابات اخرى ممكنة (بعض هذه الإجابات حصلت عليها من الحوار مع الAI)

1- سوف يمرّ احدهما خلال الآخر، وبالتالي يمرّ الأمر بسلام بدون أن تتوقف القوة او يتحرك الجسم

2- من المستحيل أن يوجد عالم يجمع بين هذين الشيئين لأن وجودهما في نفس العالم يؤدي لتناقض منطقي

3- من الممكن ان يجتمعا في نفس العالم، لكن من المستحيل ان يلتقيا لأن لقائهما سيؤدي لتناقض

 

الإجابتان 2 و 3 تطرحان تساؤلاً شيقاً جدا: هل مجرد وجود هذين الشيئين تناقض؟ يمكن ان نقول انه نعم، لأن وجودهما يطرح إمكانية أن يلتقيا في أي وقت، والتقاؤهما تناقض. بمعنى آخر: (أ) لو وجد هذان الشيئان في نفس العالم فيمكن لشخص شقي أن يوجه القوة التي لا توقف ناحية الجسم الذي لا يُحرّك (ب) لا شيء في قواعد الكون المعروفة يمنع هذا التوجيه (ج) لكن هذا التصرف سيؤدي لتناقض منطقي (د) إذاً الحل الوحيد هو استحالة اجتماعهما في عالم واحد. 

  هذه إجابة ممكنة، لكن بما اننا متفلسفون فإننا لابد أن نبحث في الأمر أكثر..لماذا لا نجرب أن نتحدى النقطة (ب) في الاستدلال السابق؟ بمعنى انه يمكن اجتماعهما في عالم واحد، لكن هناك شيء في طبيعة هذا العالم يمنع منعاً باتاً أن يلتقيا..

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

 

s = initialState()
while(true) {
    s = nextState(s)
}

لكن من قال ان الكون لديه حالة تالية واحدة ينتقل إليها؟ ألا تقول نظرية الكوانتم انه هناك حالات عديدة ممكنة؟ في تلك الحالة (؟!) تكون الكود كالآتي

s = initialState()
while(true) {
    ss = possibleNextStates(s)
    s = selectOneFrom(ss)
}

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

- ربما يظل الكون في نفس الحالة للأبد: الـشيئان أوشكا أن يتصادما، لكن الزمن توقف وكل شيء توقف فلن يتصادما أبداً، لقد هربنا من التناقض المنطقي لكن انتهى مرور الزمن.

- او ربما هناك شيء مثل transaction unroll، بمعنى أن البرنامج/الكون لديه سجل من الحالات السابقة (مثلا آخر ن من الحالات السابقة)، ويمكنه أن يتراجع إلى آخر state سليمة لا تؤدي بالضرورة إلى مسار التناقض، ثم يختار مساراً مختلفا عما حدث المرة السابقة.

- او ربما يحدث شيء مثل unhandled exception leading to process restart، أن يصل الكون إلى وضع يؤدي لاستحالة منطقية، فينتهي كل شيء ويبدأ الكون منذ البداية. ستكون خسارة اننا سنفقد كل ما حدث من قبل لكن على الأقل لن يتوقف الزمن مطلقا (هذا هو الفرق بين hanging و crashing في الحوسبة)

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

 الم أقل لكم أننا سنتفلسف؟ 

 إعلان: لغة كلمات لديها الآن قناة على يوتيوب تجدوها هنا: https://youtube.com/@KalimatLang 

الثلاثاء، 25 مارس 2025

ما الجديد في كلمات، إصدارة فبراير 2025؟

 رسومات بطريقة Double buffering

 كانت الاطياف sprites هي الوسيلة الوحيدة للحركة والالعاب في كلمات، لكن الآن اضفنا وسيلة اخرى شبيهة بمكتبات الالعاب المعروفة عن طريق روتينات جهز.الرسم،() ابدأ.الرسم()،  انه.الرسم() ، ويستخدمون كالآتي:

جهز.الرسم()
كرر :
    ت = ابدأ.الرسم()
    -- ارسم ما تريد هنا على شاشة خاوية
    -- ت هو الوقت من الكادر السابق (time since past frame/ delta_t)

    انه.الرسم()
تابع 

هناك مثال لهذا الاسلوب مرفق مع كلمات هو cat chasing mouse


 

ألطف على الCPU

  جاءني قديما شكاوى من المستخدمين ان تنفيذ برامج كلمات يرفع جدا من صوت مروحة الCPU في اجهزتهم، وقد احتجت لتفتيش الكود الخاصة بالvirtual machine سطرا سطرا حتى عرفت سبب المشكلة (وقمت بحله).

 أمر ارسم.نص

 الطريقة الوحيدة لعرض النصوص في كلمات كانت دوماً أمر اطبع ، الآن نضيف امر ارسم.نص الذي يتيح امكانيات اكثر بكثير. صيغته كالآتي:

ارسم.نص النص في (س، ص)، اللون، الحجم، الخط

مثلاً

ارسم.نص "مرحبا" في (100، 100)، 7، 12،  "Tahoma"

 

كالعادة اللون والحجم والخط اختياريون 

 


(غالبا) اخطاء جديدة
 
لم انشر اصدارات لهذا المشروع منذ 2013 (عشر سنوات متوقفة عن النشر ولاتزال لا مثيل لها!)، لذلك اتوقع bugs يمينا ويساراً. سوف يسعدني قراءة تقارير بالأخطاء من المستخدمين لو كان هناك من لا يزال يقرأ هذه المدونة.
 
هل هذا كل شيء؟ أليس هذا بقليل؟

انا فقط انفض التراب عن هذا المشروع، لم أبدأ التطوير الحقيقي بعد. 
 
ولكي أكون صريحا معكم، المشاكل التي جعلتني اوقف مشاريعي لم تحل بعد، وقد تجدوني بعد اسبوع مثلا عدت للانغلاق من جديد.
 
لو فعلت هذا سيكون بالرغم مني. انا احب النهضة :(
 
هذا هو موقع اللغة: https://kalimat-lang.com