مع سي شارب 6 ممكن نقول ان لغة #C نضجت لأن اللغة (الكومبايلر) انكتب كلياً ب#C بطريقة تسمى Bootstrapping. سي شارب ذهبت ابعد, جعلت الComplier نفسه مجرد مكتبة من مكتبات اللغة. بمعنى انك تقدر تبني برنامج يكتب يولد كود اثناء التشغيل و تشغله في الRuntime.
- يتبع
هنا يوجد خطر لانه مافي Tool لفحص الكود حسب علمي ممكن تتعرف على برمجيات خبيثة ان كانت تتولد من كود في الاصل مسالم. و اتوقع انه السبب ان بعض مزودي الخدمة لا يدعمون سي شارب مباشرة مثل Digital Ocean الا اذا وضعتها بداخل Container مقفل. فهي ممكن تدخل كـBruce و تتحول تتحول لHulk.
يتبع
بناء سي شارب من سي شارب يفترض ان يجعلها بطيئة لكن بالعكس اصبحت اسرع. لكن هل يمكن لسي شارب ان تصل للمعالج او الBare Metal و تتخطى حتى الOS؟ نعم. في الجهة الاخرى ممكن تبني بها WebAssembly للويب و حتى برامج للموبايل بواسطة MAUI و حتى لانظمة مثل لينكس و ماك.
انتهى.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
لما تحوّل Object الى Json يسمون العملية Serialize و العكس Deserialize. التسمية غير دقيقة لانه الSerialization تكون قبل ارسال الJson عبر الشبكة بشكل Binary. في الثمانينات كان في شي اسمه XDR و هذا كان حقيقي Serialized format و كان يستخدم لنقل البيانات من نظام لآخر عبر الشبكة
يتبع.
هذا الXDR كان فورمات من ابتكار شركة Sun ( ام الجافا ) و كان مصمم كستاندر للRPC. الRPC هو مغامرة الFunctions الاولى للخروج من داخل صندوق الكمبيوتر لتصبح متاحة لكمبيوترات اخرى انها تناديها. حقيقة مو هذا موضوعي. لكن شي يتعلق بChatGPT
يتبع.
لو مسكنا الChatGPT Model و سوينا له Serialization بحيث عرضنا كل محتوياته كنصوص Plain Text ضخمه فلن نجد معلومة واحدة من المعلومات التي يكتبها الان. بمعنى لو ذكر كلمة Network او Computer في احد ردوده فلن نجدها فيه. فليس لديه Database يخزن فيها معلوماته و يقرأ منها ليجيبك.
يتبع
هذه محتويات دورة لVernon احد رواد الDDD او يعتبر ثاني شخص بعد Eric Evan في هذا المجال. هذه ليست دعاية للدورة لكن شدني تضمينه لCynefin Framework في دورته. الكلمة تنطق كينيفن وعادة اربطها بكلمة "كنف" العربية لأن كلاهما تدلان على الموضع او المكان و كينفين اطار اتخاذ قرارات.
يتبع ..
من الفوارق المهمة بين الWaterfall و الAgile هو نظرتها للسوفتوير. الWaterfall تتعامل معه كأنه Simple او Complicated حسب تصنيفات كينيفن. فالأول لا يحتاج لتحليل كما في البرمجيات البسيطة جداً و الثاني يحتاج تحليل لذا هي مرحلة اساسية من مراحل الWaterfall.
يتبع.
حالة كون النظام Simple نحتاج فقط الى Sense بسيط نفهم به المطلوب ثم تصنيف Categorizing ثم استجابة Respond لما فهمناه مباشرة. اما في حالة الComplicated فبدل التصنيف نحتاج هنا الى تحليل اما بسيط او عميق كما ذكرت في التغريدة السابقة.
كثير شركات بنت انظمتها او نسخها الاولى على انظمة مثل Wordpress او drupal او Joomla اللي في الاصل هي CMS اي Content Management System لكن بنت عليها انظمة تجارة الكترونية و شحن و فواتير او تعليم و ارشفة وغيرها . التعليم و الارشفة هنا اوكي , لكن البقية هناك وجهة نظر اخرى ..
(سلسلة)
دروبال او اووردبرس في اصل بنائه يبدأ بنظام بسيط جداً يسمى الKernel او الCore و كون ان النظام في الاصل CMS فعادة يبدأون بشيء مثل Document يكون جداً بسيط Abstract و تكون عليه عمليات اساسية مثل الحفظ و الاسترجاع و التعديل بالاضافة الى الStorage المخصص له .
بعدها يبدأون باضافة الsubsystems او بلغة الddd ( الSub domain ) مثل ادارة المستخدمين و الصلاحيات , ادارة النماذج او الTemplating , الTheming و تكون على هيئة Modules او ممكن نسميها هنا core modules. طبعاً كل منتج من هذه المنتجات له الاركيتكشر الخاصه فيه.
عادة اصحاب الاعمال يعرفون "ماذا" يريدون فيتجهون لاشخاص محترفين يعرفون "كيف" ينفذونه. انتقال المعلومة يبدأ من لغة طبيعية يخاطب بها صاحب العمل المبرمج , ليحولها الاخير الى تراكيب لغوية برمجية يفهمها الكمبيوتر.
( سلسلة عن الNo/Low Code في ظل الAi)
في الشركات العادية , يطلب المدير او مدير المنتج من المبرمج بلغة بسيطة شيء معين. مثلاً : اعمل تقرير لمبيعات المنتج الفلاني خلال الربع الاول هذي السنة و حط جنبه نفس الارقام من السنة الماضية. هذا الجملة طبيعي قد يفهمها مبرمج بشكل صحيح و قد يخطيء في فهمها اخر و يستوضح اكثر.
هذا التحدي سينتقل ايضاً الى معالج اللغات NLP عند ترجمته لما كتب الى صيغة رياضية Formula يفهمها الPlatform .. فهنا نحتاج إلى المام كامل من معالج اللغة بالFeatures الخاصة بالPlatform مع اخضاع ما ينتج عنه الى الSyntax checker او الFilters
هذه مقولة عميقة للدكتور فيمان ابتدأها بقوله ان "الطبيعة ليست كلاسيكية" وانما كوانتمية و لتمثيلها او محاكاتها نحتاج لفيزياء الكوانتم. لتمثيل الطبيعة علينا استبعاد الabstraction تماماً في تمثيل ال objects حيث نحتاج لتمثيلها كماهو بأدق تفاصيله. مثال بسيط على هذا
- يتبع
تمثيل الObject هنا اقصد به ان يكون لدينا نسخة رقمية مطابقة له تماماً يمكننا استخدامها في المعامل الرقمية و كأننا نستخدم المادة نفسها في المعامل المختبرية. لن نحتاج في المستقبل لمختبرات كيميائية او فيزيائية؟ هذا ما يوعدنا به الكوانتم كمبيوتر.
يتبع -
الجيجا بايت هو ١٠ قوة ٩ بايت و التيرا بايت هو ١٠ قوة ١٢ بايت. المعلومات التي يحتويها جزيء كافيين واحد تحتاج ل١٠ قوة ٤٨ بت. لا اتوقع ان امازون او قوقل لديه تلك المساحة. فيما انه في الكوانتم نحتاج ل١٦٠ كيوبت فقط. لكن طبعا سنحتاج لأكثر من جزىء لعمل اختبارات كيميائية.
- يتبع
من المهارات البرمجية الممتعة و التي لا تتعلق بمشروع معين و تفتح آفاق لمستوى اخر لبناء التقنيات : هي مهارة برمجة الشبكات Networking. اغلب لغات البرمجة لديها مكتبات لذلك. الDB الMessages Hub الالعاب و التشات الLoad Balancers الFirewalls كلها تعتمد على برمجة الشبكات.
سلسلة
اذا كنت تعتقد ان الشبكات هي مجال Hardware اخر بعيد عن البرمجة فهذا اعتقاد خاطيء. اجهزة الشبكات المختلفة مثل الRouters و الSwitches ماهي الا كمبيوترات عادية بانظمة معروفة مثل Linux و الجزء الأهم فيها و الأكبر هو السوفتوير. لكنها كهاردوير هي Optimized لهذا الغرض.
لاحظ مثلا انه بتقنيات مثل Docker او بالVMs ممكن تبني شبكة متكاملة داخل جهاز كمبيوتر عادي وفيها كل خصائص الشبكات مثل الRouting و غيره. ممكن تسمي الNetwork programming بأم التقنيات. الNetwork جزء مهم من انظمة التشغيل.