دردشة، وتطور Bun والمزيد!
MMaximilian Schwarzmüller
Computing/SoftwareBusiness NewsInternet Technology
Transcript
00:00:00[صمت]
00:00:21حسناً.
00:00:22[صمت]
00:00:27عدنا.
00:00:28لنرى كيف هي الجودة الآن.
00:00:33[صمت]
00:00:43أنتظر اتصال الأشخاص لأرى كيف هي الجودة.
00:00:48[صمت]
00:00:57لذا آمل.
00:00:58حسناً.
00:00:59جيد، جيد.
00:01:01إذاً، نعم.
00:01:02أهلاً بعودتكم جميعاً.
00:01:03آسف بشأن ذلك.
00:01:04لست متأكداً مما حدث.
00:01:06آمل أن يظل الاتصال مستقراً الآن.
00:01:11من المثير للاهتمام أن معدل الإطارات سيء.
00:01:15لا يزال كذلك.
00:01:16أوه، حسناً.
00:01:17واو.
00:01:18هذا أمر مخيب للآمال.
00:01:21نعم، يمكنني تجربة هاتفي.
00:01:24[صمت]
00:01:28أوه، حسناً.
00:01:30لا يزال هناك بطء (lag).
00:01:31انتظروا لحظة.
00:01:33[صمت]
00:01:39لنرى.
00:01:40[صمت]
00:01:51هذا كله مزعج.
00:01:54[صمت]
00:02:13حسناً.
00:02:14دعونا نرى.
00:02:18هذا مزعج.
00:02:25لذا إذا كنتم ترونني أو تسمعونني، أخبروني.
00:02:31إذا كان الوضع أفضل الآن.
00:02:34قد لا يكون كذلك.
00:02:53سؤالي هو: هل أنا في بث مباشر؟
00:03:04حسناً.
00:03:05يمكنكم سماعي.
00:03:06الفيديو لا يزال بطيئاً.
00:03:08حسناً.
00:03:09لقد انتقلت إلى هاتفي الآن.
00:03:11لذا فهي شبكة مختلفة تماماً.
00:03:15نعم، من الغريب إذا كان السبب هو بث الكاميرا لأنني في الواقع... هل هذا أيضاً بطيء؟
00:03:24الفيديو بطيء.
00:03:25هل وجهي فقط أم الجزء الآخر أيضاً؟
00:03:30الشاشة.
00:03:35غريب جداً.
00:03:36إنه نفس الإعداد دائماً.
00:03:39لذا يبدو أن المشكلة ليست في اتصال الإنترنت.
00:03:43إنه أفضل.
00:03:44إنه أفضل.
00:03:45حسناً.
00:03:46حسناً.
00:03:47شكراً لكم.
00:03:48نعم.
00:03:49شكراً لصبركم.
00:03:50هذا مزعج.
00:03:51نعم.
00:03:52لنأمل أن يكون جيداً الآن.
00:03:57نعم.
00:03:58حسناً.
00:03:59نعم.
00:04:00أخبروني إذا ساء الأمر أو إذا كان لا يزال سيئاً بالنسبة للبعض.
00:04:04الصوت جيد.
00:04:05الفيديو لا يزال بطيئاً.
00:04:07حسناً.
00:04:08بالنسبة للبعض هو جيد.
00:04:09وبالنسبة للبعض الآخر بطيء.
00:04:11أنا الآن على شبكة مختلفة.
00:04:13لقد انتقلت إلى هاتفي.
00:04:16من الناحية النظرية، لا ينبغي أن تكون مشكلة شبكة بعد الآن.
00:04:21وبث الشاشة، أقصد، نعم، نظرياً يمكن أن يكون من OBS أو شيء من هذا القبيل،
00:04:28لكنني لم أغير أي شيء هناك.
00:04:34بث الفيديو بالكامل بطيء، لكن لا يبدو أن الشبكة هي السبب.
00:04:42الاتصال.
00:04:44يوتيوب يظهر أن اتصالي جيد.
00:04:47أياً كانت قيمة ذلك.
00:04:49جيد بما يكفي، على ما أظن.
00:04:51في بعض اللحظات يكون بطيئاً، لكنه غالباً بخير.
00:04:53نعم.
00:04:54أنا آسف جداً بشأن ذلك.
00:04:58نعم.
00:04:59سأستمر هكذا في الوقت الحالي.
00:05:01آسف جداً.
00:05:02سأتحقق من هذا بعد البث.
00:05:05غريب حقاً.
00:05:06غيرت الشبكة ولا يزال سيئاً.
00:05:09سأقوم غالباً بتحديث OBS وأراجع إعداداتي، رغم أنها نفس الإعدادات التي استخدمتها لأكثر من عام.
00:05:15حسناً.
00:05:17لنأمل الأفضل.
00:05:18شكراً جزيلاً لبقائكم معي.
00:05:21وأخبروني إذا ساء الأمر مرة أخرى.
00:05:24إذاً، نعم.
00:05:26أردت التحدث عن BUN.
00:05:29لا أريد تكرار كل شيء وإصابتكم بالملل.
00:05:32لكن BUN، بالطبع، هو بديل لـ Node.js وقد تم تمويلهم من قبل رأس مال مغامر.
00:05:39وكانت إحدى المشاكل التي واجهت BUN هي حاجتهم لكسب المال، بالطبع.
00:05:44فكيف تكسب المال؟
00:05:47حسناً، إحدى الأفكار التي كانت لدى العديد من هذه الشركات هي إطلاق منتج استضافة.
00:05:55وقد جربوا ذلك أيضاً، أو أعتقد أنهم أرادوا تجربته.
00:06:00لست متأكداً.
00:06:01ولكن بعد ذلك استحوذت Anthropic على BUN.
00:06:03واستحوذت Anthropic على BUN، في الغالب، على ما أظن، بسبب ميزة الملف التنفيذي الموحد،
00:06:08لأنه باستخدام BUN يمكنك تحويل برنامج TypeScript الخاص بك إلى ملف تنفيذي واحد يمكنك تشغيله في الجهاز الطرفي (terminal)، مثلاً.
00:06:16وClaude Code هو مجرد برنامج من هذا النوع.
00:06:19Claude Code هو ملف تنفيذي واحد أو هو برنامج BUN، برنامج TypeScript في النهاية،
00:06:25لكنه يستخدم واجهات برمجة تطبيقات BUN على الأرجح، وتم تحويله بالتأكيد إلى أداة سطر أوامر باستخدام ميزة الملف التنفيذي الواحد تلك.
00:06:35إذاً، Anthropic استحوذت على BUN.
00:06:39وهذا نوعاً ما بدأ نوعاً مختلفاً من التطوير في BUN.
00:06:45وهذا ما أجده مثيراً للاهتمام لأنك قد تقول، حسناً، BUN، إنه بيئة تشغيل جافا سكريبت، أليس كذلك؟
00:06:50إنه بديل لـ Node.js وهذا كله جيد ورائع وجودته مطلوبة.
00:06:56ولكن ماذا تتوقع من بديل Node.js كهذا؟
00:06:59حسناً، تتوقع التوافق مع Node.js وتتوقع منه مواكبة تطورات Node.js
00:07:07وبعض التحسينات، مثل أداء أفضل، وهو ما قدمته BUN دائماً.
00:07:14وهذا رائع.
00:07:15وفي معظم الأجزاء، BUN متوافق تماماً.
00:07:22هل لديهم جدول هنا؟
00:07:25توافق BUN مع Node.js.
00:07:29لديهم توافق جيد جداً، فقط بعض الميزات المتخصصة التي لا تحظى بدعم كامل.
00:07:37لكن بشكل عام، الأمر لائق جداً.
00:07:40ولكن هنا الجزء المثير للاهتمام.
00:07:42إذا نظرت إلى التوثيق هذه الأيام، ستجد أولاً أن BUN لديه أشياء مثل عملاء SQLite مدمجين،
00:07:51وعميل SQL مدمج، وعميل S3 مدمج، وعميل Redis مدمج، وهو ما أجده شخصياً مفيداً جداً.
00:07:59وهي تتوفر على هذه الميزات منذ فترة طويلة الآن.
00:08:03والفكرة هنا، بالطبع، هي أن ذلك يسهل عليك بناء برنامج، بناء خادم ويب، مثلاً،
00:08:10يستخدم SQLite أو S3.
00:08:12وأنا أستخدم ذلك كثيراً في العديد من خدماتي.
00:08:15أجد ذلك مريحاً حقاً.
00:08:17ولكنك ستجد أيضاً أشياء مثل، أين هي؟
00:08:22WebView.
00:08:24الـ WebView هنا.
00:08:25وهذا مثير للاهتمام، في رأيي، لأن WebView هذا هو ميزة، واجهة برمجة تطبيقات من BUN،
00:08:34يمكنك استخدامها في كود جافا سكريبت أو TypeScript الخاص بك إذا كنت تشغله باستخدام BUN.
00:08:39وهذا يسمح لك بفتح متصفح خفي (headless) ثم النقر والقيام بأشياء بداخله.
00:08:46بشكل أساسي ما يمكنك القيام به باستخدام Playwright.
00:08:49الآن، Playwright بالطبع هي أداة اختبار من البداية إلى النهاية (end-to-end).
00:08:54الفكرة الرئيسية وراء Playwright هي، أو كانت، يجب أن أقول، هي أنه يمكنك استخدامها للاختبار الشامل.
00:09:04بحيث يمكنك أساساً كتابة اختبارات لاختبار موقع الويب الخاص بك وتدفقات مستخدم معينة وما إلى ذلك.
00:09:13الآن مع الذكاء الاصطناعي، تغير هذا نوعاً ما.
00:09:15الآن يتم استخدام Playwright كثيراً من خلال خادم MCP الخاص بهم، على سبيل المثال،
00:09:22حتى تتمكن أدوات مثل Claude Code أو Codex وما إلى ذلك من اختبار الكود الذي كتبته.
00:09:29إذاً، يقوم تطبيق ببناء... ليس تطبيقاً، بل Claude Code يبني شيئاً مثل تطبيق React.
00:09:40ومن أجل اختباره، يمكنه استخدام شيء مثل Playwright MCP لفتح متصفح،
00:09:47والنقر حوله ورؤية ما إذا كانت الأشياء تعمل وتظهر بالطريقة التي يريدها، حتى يغلق الحلقة، إذا جاز التعبير.
00:09:54يمكن للوكيل (agent) التحقق من مخرجاته.
00:09:56هذه هي الفكرة وراء أشياء مثل Playwright MCP.
00:09:59لذا فإن أدوات مثل Playwright قد تحولت بالفعل قليلاً من كونها مجرد أدوات اختبار شاملة،
00:10:05والتي لا يزال بإمكانك القيام بها، إلى كونها أدوات يمكن لوكلاء الذكاء الاصطناعي الاستفادة منها للتحقق من تغييراتهم.
00:10:15وهذا هو الجزء المثير للاهتمام حول BUN.
00:10:17وفي الدردشة، يقول كيفن أوري، في رأيي، شيء مثل WebView هذا لا ينتمي إلى بيئة تشغيل (runtime).
00:10:22وهذه نقطة جيدة جداً لأن هذا هو الجزء المثير للاهتمام الذي أراه أيضاً مع BUN.
00:10:29لقد كانت بيئة تشغيل جافا سكريبت.
00:10:32كانت مفيدة في المقام الأول لبناء... حسناً، ليست مفيدة في المقام الأول، ولكن أحد التطبيقات الرئيسية كان ولا يزال هو أنه يمكنك استخدامها لبناء خوادم ويب.
00:10:43ولكن الآن فجأة يمكنك بناء تطبيقات معقدة أو أدوات سطر أوامر يمكنها، على سبيل المثال، تشغيل خادم ويب.
00:10:52وكما قلت للتو، أحد حالات الاستخدام هو أن وكلاء الذكاء الاصطناعي يمكنهم التحقق من عملهم وقد يفعلون ذلك من خلال MCP.
00:11:01ولكن خمن ماذا؟
00:11:02كما قلت، Anthropic هي التي استحوذت على BUN.
00:11:05وAnthropic تمتلك Claude Code، لذا فمن المنطقي أن يتوفر Claude Code فجأة على WebView مدمج
00:11:13حتى يتمكن Claude Code من فتح متصفح والنقر حوله دون الحاجة إلى Playwright MCP أو أي MCP آخر يمنحه إمكانية استخدام المتصفح.
00:11:24قد تظل هناك فوائد معينة لاستخدام أدوات مخصصة.
00:11:29قد تحتوي على ميزات أكثر وأشياء أخرى، ولكن بالطبع، هناك أيضاً حافز قوي لـ Anthropic لدمج ميزات كهذه في BUN
00:11:40لأسباب واضحة، كما أقول، لأن ذلك يسهل عليهم بناء Claude Code.
00:11:45وبالتالي، فمن المنصف أن نفترض أن المزيد والمزيد من الميزات سينتهي بها المطاف في BUN والتي يمكنك استخدامها في تطبيقاتك أيضاً،
00:11:59ولكنها مصممة لغرض معين أو محسنة خصيصاً لمتطلبات Anthropic ووكلاء الذكاء الاصطناعي مثل Claude Code.
00:12:08الآن، لست متأكداً ما إذا كان ذلك سيئاً بالضرورة أو يمثل مشكلة لأنك لست مضطراً لاستخدامها، ولكن بالطبع، هذا يضخم واجهة برمجة التطبيقات نوعاً ما.
00:12:19كما أنه يستهلك بالطبع بعض الموارد، وبعض المطورين الذين يمكنهم العمل على الأجزاء التقليدية التي تشكل BUN،
00:12:32على الرغم من أنه يمكنك بالطبع القول بأنه مع الذكاء الاصطناعي هناك قدرة أكبر، لذا يمكنك العمل على أشياء أكثر في نفس الوقت،
00:12:39ولكنه اتجاه مثير للاهتمام على أي حال. وهو أيضاً شيء يمكنك رؤيته في مجالات أخرى أيضاً.
00:12:45إذا نظرت إلى حساب BUN على X، ستجد أنهم لا يزالون يرسلون تحسينات في الأداء وأشياء أخرى،
00:12:58ولكن لديهم الآن أيضاً هذا الشيء القادم، واجهة برمجة تطبيقات تسمح لـ BUN بمعالجة الصور.
00:13:09يمكنك القيام بذلك بالطبع باستخدام أدوات مثل ImageMagick. وهي أداة يمكنك استدعاؤها من خلال سطر الأوامر.
00:13:21مرحباً. لذا يمكنك تثبيت أداة كهذه واستخدامها لتحويل الصور برمجياً أو في سطر الأوامر في النهاية.
00:13:31والآن، فجأة سيتم دمج شيء كهذا في BUN.
00:13:37مرة أخرى، لا أعتقد بالضرورة أن هذا سيء أو يمثل مشكلة، وأنا أقرأ التعليقات في الدردشة وسأعود إليها، ولكن مرة أخرى، هذا مثير للاهتمام.
00:13:49الآن، ربما تكون هذه الميزة شيئاً يمكنك استخدامه لتطبيقات ويب معينة أو أدوات سطر أوامر،
00:13:56ولكنها بالطبع، مرة أخرى، ميزة قد تكون مثيرة للاهتمام لـ Claude Code،
00:14:01لأن هؤلاء الوكلاء، يمكنهم أيضاً إنشاء صور ويمكنهم أيضاً تحليل الصور.
00:14:08لذا فإن قدرة Claude Code على تغيير حجم الصور أو قصها بشكل أصلي قد تكون مثيرة للاهتمام.
00:14:15وهناك المزيد من الأشياء من هذا القبيل. أعني، كان هناك أيضاً شيء يتعلق بمعالجة لغة Markdown، إذا تذكرت بشكل صحيح.
00:14:25ولا يزال هناك الكثير من الأشياء التي يتم إضافتها والتي من المحتمل جداً ألا تكون مصممة لـ Claude Code، أريد أن أكون واضحاً.
00:14:33وأنا في الواقع أحب BUN. أريد أيضاً أن أكون واضحاً بشأن ذلك، ولكن لا يزال هذا الاتجاه الذي يسلكونه مثيراً للاهتمام.
00:14:40نعم، لم أجدها، ولكن منذ وقت ليس ببعيد كان هناك أيضاً شيء حول عرض Markdown في الجهاز الطرفي وكيف أن BUN يدمج ذلك.
00:14:51أشياء من هذا القبيل.
00:14:55وبالتالي، قصة قصيرة طويلة، أعتقد أننا يمكننا أن نرى بوضوح أنه بعد استحواذ Anthropic على BUN، أصبح أداة لـ Anthropic.
00:15:06لم يعد، بشكل بديهي، لم يعد بيئة تشغيل مستقلة.
00:15:13بدلاً من ذلك، هو مجرد، نعم، لا يزال بيئة التشغيل تلك.
00:15:18وأعتقد، وأيضاً مما ترونه، أنهم لا يزالون يأخذون ذلك على محمل الجد، ولكنه بالتأكيد أداة لـ Anthropic أيضاً.
00:15:26ونعم، يؤسفني سماع أن الفيديو يبدو وكأنه يتباطأ مرة أخرى.
00:15:30لقد مررنا بذلك من قبل، وللأسف قمت بتغيير الشبكات بالفعل، لست متأكداً من السبب.
00:15:36سأتحقق بعد هذا البث المباشر. آمل أن يصبح أكثر استقراراً قريباً.
00:15:43كان أفضل من قبل.
00:15:46إذاً، نعم، الآن أقرأ في الدردشة، السبب الوحيد الذي يجعلني واضحاً،
00:15:53أوه، رؤيتك على نظام Mac OS ذكرتني بتباطؤ مكالمات الفيديو مع زميلي في كل مرة يتبين أن ذاكرته منخفضة، فيغلق بعض تبويبات المتصفح.
00:16:01أوه، قد يكون هذا هو السبب.
00:16:05نعم، دعوني أغلق بعض تبويبات المتصفح. ربما تكون هذه هي الخدعة السحرية.
00:16:11لذا أغلقوا بعض التبويبات، ربما سيحسن ذلك الوضع. شكراً جزيلاً. إذا ساعد هذا، فهذا مذهل.
00:16:19السبب الوحيد الذي يجعلني سعيداً بوجود BUN هو أنه يجعل Node تتحرك بشكل أسرع. نقطة منصفة.
00:16:26يسعدني رؤيتك آمل أنك تقوم بعمل رائع شكراً جزيلاً لعملك.
00:16:33نعم، ولكن هذا في النهاية ببساطة ما أردت مشاركته حول BUN وجدت ذلك مثيراً للاهتمام وأعتقد أنه سيكون من المثير رؤية الاتجاه الذي ستتحرك فيه BUN في المستقبل.
00:16:44لأنني شخصياً أعتقد أنها بيئة تشغيل رائعة وبديل رائع لـ Node.js لقد بنيت أساساً جميع مشاريعي باستخدام BUN، ببساطة بسبب تعزيز السرعة وبسبب الأشياء المدمجة المفيدة مثل عميل SQLite أو عميل S3 مما يعني تبعيات إضافية أقل، وهو شيء أجده قيماً للغاية خاصة الآن في وقت هجمات سلاسل التوريد.
00:17:13الآن هو إطار واحد في الثانية (1 FPS). حسناً، لقد أغلقت الآن مجموعة من التبويبات وأغلقت مجموعة من الأدوات. لم يتبق الكثير مما يمكنني إغلاقه لأكون صادقاً.
00:17:34ولكن الآن أغلقت كل شيء تقريباً باستثناء OBS.
00:17:43لذا ربما سيساعد هذا. مزعج جداً.
00:17:50جودة اتصال ضعيفة مرة أخرى.
00:18:00لنرى ما إذا كان ذلك سيتحسن.
00:18:03ما نوع قاعدة البيانات ومكتبات المصادقة (auth) التي يجب أن يتعلمها المبتدئون؟ Postgres وBetter Auth؟
00:18:09نعم، أعتقد أن Postgres وBetter Auth خيارات جيدة هناك.
00:18:14لماذا لا يتم تفريعه (forking) ودمج الأدوات التي يحتاجونها؟
00:18:18تقصد تفريع BUN؟ Anthropic؟ لماذا لا يفرعون BUN؟ أعتقد أنهم استحوذوا أيضاً على BUN لأنهم لم يرغبوا في إفلاس BUN وربما يكون من القيمة بالنسبة لهم الحصول على خبرة فريق BUN.
00:18:34لذا فإن الأشخاص الذين بنوا BUN يواصلون تطويره لأنه حتى مع الذكاء الاصطناعي، من القيمة بالطبع وجود شخص يعرف خبايا تلك الأداة.
00:18:50نعم، لقد أغلقت جميع تطبيقات Electron تقريباً الآن. ليس لدي أي شيء يعمل بعد الآن.
00:19:02لذا لا ينبغي أن يكون هناك الكثير على نظامي الآن مما يستهلك الذاكرة. دعوني ألقي نظرة على مراقب النشاط (Activity Monitor).
00:19:13نعم، أعني أن لدي الكثير من الذاكرة الخالية.
00:19:37يجب أن يكون ذلك جيداً. ليس لدي أي وكلاء يعملون الآن.
00:19:47عندما تتنقل كثيراً يبدأ الفيديو في التباطؤ والتجمد. أعني أن نقطة مشكلة الذاكرة منطقية حقاً. ولكنني أغلقت كل شيء بالفعل.
00:20:05لم يتبق الكثير مما يستهلك أي ذاكرة على نظامي هنا.
00:20:15لذا هذا هو الجزء الغريب.
00:20:22هذا هو الجزء الغريب.
00:20:31حسناً، نعم، أود... أعني يمكن أن يكون OBS نفسه بالطبع. على الرغم من أن الوضع ليس بهذا السوء في مراقب النشاط.
00:20:49لا، كل شيء يبدو جيداً. لا أعرف. لا أعرف ما هي المشكلة.
00:21:01ولدى OBS نفس الإعدادات دائماً. هل يستحق الأمر تعلم BUN من أجل العثور على وظيفة؟ لا أعتقد أنه الموقع الإلكتروني.
00:21:11سيكون من الفظيع لو كان موقع BUN الإلكتروني.
00:21:17حسناً، دعوني أغلقه. أعني أن هذا الموقع كان مفتوحاً في بثوث أخرى أيضاً نأمل ألا يكون هو المشكلة.
00:21:26أعني، يمكنني القيام ببث دون إظهار أي شيء.
00:21:29ولكن نعم، لقد أغلقت كل هذه التبويبات الآن. لذا دعونا نرى.
00:21:38ولكن مع ذلك. دعوني أغلق التبويبات على شاشتي الثانية، ولكن ليس هناك الكثير مفتوح هناك أيضاً.
00:21:57حسناً. لم يسبق لي في حياتي أن كان لدي عدد قليل جداً من التبويبات المفتوحة. لا، ليس هناك أي تنزيلات في الخلفية.
00:22:08لا. هل Starlink متوفر في ألمانيا؟ أعتقد أنه كذلك. أعتقد أنه كذلك.
00:22:13لكن الشبكة تبدو جيدة. الشبكة تبدو جيدة في الواقع.
00:22:17لقد قمت بتغيير الشبكات على أي حال. انتقلت من الشبكة المحلية إلى شبكة هاتفي وواجهت نفس المشاكل.
00:22:29يبدو أن هذا جيد. من المثير للاهتمام، بالمناسبة، أن OBS لا يظهر لي أي مشاكل على الإطلاق، لا توجد إطارات مفقودة، لا شيء.
00:22:39لذا لدي إحصائيات مثالية هنا في OBS. لكن يمكنني أن أرى على يوتيوب أنه يظهر اتصالاً ضعيفاً.
00:22:50وهو أمر مثير للاهتمام بما يكفي.
00:22:54لكنني نفدت من الأفكار لأنني حقاً لم أغير أي شيء في إعداداتي هنا. يمكنك محاولة سؤال الذكاء الاصطناعي عن سبب التباطؤ.
00:23:10أظن أنني أستطيع ذلك. دعونا نفعل ذلك. بثي عبر OBS يتباطأ.
00:23:26لماذا؟ لنرَ ما إذا كان الذكاء الاصطناعي مفيداً.
00:23:33لا، لا ينبغي أن تكون الشاشة الثانية هي المشكلة. لدي ذلك دائماً وأحتاج إليه. لا يمكنني حقاً رؤية الدردشة إذا أغلقت ذلك.
00:23:41إنه مجرد حاسوبي المحمول. ثم هناك الشاشة الأخرى التي أسجل عليها.
00:23:48لأن جزءاً واحداً. إطارات مفقودة. لا، ليس لدي إطارات مفقودة. صفر إطارات تم تخطيها.
00:24:01نعم، لا أعرف.
00:24:09هل المشكلة هي نفسها على Twitch بالمناسبة؟
00:24:22يبدو أن فريق يوتيوب قد قام بتغيير كود شيء ما.
00:24:28إذاً، نعم، لقد أغلقت كل شيء حقاً.
00:24:32إنه يظهر لي وضعاً مثالياً.