[{"content":"تتم حماية أمن المعلومات في مجتمع الإنترنت الحديث بواسطة التشفير بالمفتاح العام، مثل تشفير RSA. يعتمد أساس أمان تشفير RSA على حقيقة أن \u0026ldquo;التحليل إلى العوامل الأولية للأرقام المركبة الضخمة يمثل صعوبة بالغة من الناحية الحسابية\u0026rdquo; .\nفي هذا المقال، سنكشف عن الآلية الرياضية لـ \u0026ldquo;منخل حقل الأعداد العام\u0026rdquo; (GNFS)، وهو أقوى خوارزمية تحليل للعوامل الأولية للكمبيوتر الكلاسيكي، ونتعمق في سبب هزيمتها تمامًا بواسطة \u0026ldquo;خوارزمية شور\u0026rdquo; التي اكتشفها بيتر شور. سوف نستكشف هذه النقلة النوعية بعمق باستخدام المعادلات الرياضية والرسوم التوضيحية المفاهيمية.\n1. نهج التحليل إلى العوامل في الحوسبة الكلاسيكية: التطور من طريقة فيرما للتحليل إلى العوامل مشكلة التحليل إلى العوامل الأولية هي مشكلة إيجاد الأعداد الأولية $p, q$ بحيث يكون $N = p \\times q$ لعدد مركب $N$ محدد.\nتتلخص الفكرة الأساسية في إيجاد $x, y$ غير بديهية تلبي معادلة التطابق التالية:\n$$ x^2 \\equiv y^2 \\pmod N $$ إذا قمنا بتعديل ذلك، نحصل على:\n$$ x^2 - y^2 \\equiv 0 \\pmod N $$ $$ (x - y)(x + y) \\equiv 0 \\pmod N $$ هنا، إذا كان $x \\not\\equiv \\pm y \\pmod N$، يمكننا الحصول على عامل غير بديهي لـ $N$ عن طريق حساب $\\gcd(x-y, N)$ أو $\\gcd(x+y, N)$. هذه الحقيقة هي أساس خوارزميات التحليل الحديثة مثل GNFS.\n2. أقوى الخوارزميات الكلاسيكية: أعماق \u0026ldquo;منخل حقل الأعداد العام\u0026rdquo; (GNFS) يعد \u0026ldquo;GNFS\u0026rdquo; أسرع خوارزمية تحليل للعوامل الأولية معروفة لأجهزة الكمبيوتر الكلاسيكية اليوم. يستغرق تعقيد الوقت الخاص بها وقتًا شبه أسي (Sub-exponential).\nتعقيد GNFS بافتراض أن عدد أرقام $N$ هو $b = \\log_2 N$، يمكن التعبير عن تعقيد GNFS على النحو التالي:\n$$ O\\left( \\exp \\left( \\left(\\frac{64}{9} b\\right)^{1/3} (\\log b)^{2/3} \\right) \\right) $$ كما يتضح من هذه المعادلة، التعقيد ليس وقتًا كثير الحدود، بل \u0026ldquo;وقت شبه أسي\u0026rdquo; أبطأ قليلاً من الدالة الأسية. ومع ذلك، مع زيادة عدد الخانات، سيزداد وقت الحساب بشكل فلكي.\nالآلية الرياضية لـ GNFS تتكون GNFS بشكل رئيسي من 4 خطوات:\nاختيار كثيرات الحدود (Polynomial Selection) الغربلة (Sieving) تقليل المصفوفة (Matrix Reduction) حساب الجذر التربيعي (Square Root) 2.1. اختيار كثيرات الحدود والحقل الجبري أولاً، نختار كثيرات الحدود غير القابلة للاختزال $f(x)$ و $g(x)$ بمعاملات صحيحة. يتم تعيينها ليكون لها جذر مشترك $m$ مقياس $N$. أي:\n$$ f(m) \\equiv 0 \\pmod N $$ $$ g(m) \\equiv 0 \\pmod N $$ عادة، يتم اختيار $g(x)$ ككثيرة حدود من الدرجة الأولى $g(x) = x - m$. إذا جعلنا جذر $f(x)$ هو $\\alpha$, يتشكل \u0026ldquo;حقل جبري\u0026rdquo; (Number Field) يسمى $\\mathbb{Q}(\\alpha)$. نقارن العمليات في حلقة $\\mathbb{Q}(\\alpha)$ مع العمليات في حلقة الأعداد الصحيحة العادية $\\mathbb{Z}$ من خلال تشاكل $\\phi: \\alpha \\mapsto m$.\n2.2. الغربلة (Sieving) بعد ذلك، نبحث عن عدد كبير من أزواج الأعداد الصحيحة الأولية نسبياً $(a, b)$. الهدف هو إيجاد أزواج بحيث تكون كلتا القيمتين التاليتين \u0026ldquo;B-smooth\u0026rdquo; (تتكون فقط من عوامل أولية صغيرة نسبياً):\n$a - bm$ (القيمة على حلقة الأعداد الصحيحة) $b^d f(a/b)$ (يتوافق مع المعيار $N(a - b\\alpha)$ في الحقل الجبري) هنا، يتم استخدام طريقة بحث سريعة تسمى \u0026ldquo;المنخل\u0026rdquo; (Sieve). يتيح ذلك استخراج أزواج $(a, b)$ بكفاءة والتي تلبي الشروط من بين عدد هائل من المرشحين.\n2.3. تقليل المصفوفة (Linear Algebra over GF(2)) من الأزواج المُجمَّعة $(a, b)$، نقوم بتشكيل متجهات أسية وإيجاد الفضاء الصفري الأيسر لمصفوفة متفرقة ضخمة على $\\mathbb{F}_2$ (حقل بعناصر 0 و 1 فقط).\nنجد متجهاً للحل $v$ بحيث تصبح العلاقات $ \\prod (a_i - b_i m) $ و $ \\prod (a_i - b_i \\alpha) $ كل منها مربعاً كاملاً. هذا ليس سوى حل لنظام من المعادلات الخطية:\n$$ M \\mathbf{x} \\equiv \\mathbf{0} \\pmod 2 $$ هنا، يتم استخدام خوارزميات الحساب العددي المتقدمة مثل خوارزمية Block Lanczos أو Block Wiedemann.\n2.4. حساب الجذر التربيعي أخيراً، نأخذ الجذر التربيعي من كل من الحقل الجبري وحلقة الأعداد الصحيحة، ونستنتج العلاقة $x^2 \\equiv y^2 \\pmod N$. ثم، نحسب $\\gcd(x-y, N)$ ونحصل على العامل.\n3. اختراق الحوسبة الكمية: \u0026ldquo;خوارزمية شور\u0026rdquo; بينما يتطلب GNFS وقتاً شبه أسي، فإن \u0026ldquo;خوارزمية شور\u0026rdquo; التي نشرها بيتر شور في عام 1994 يمكن أن تحل هذه المشكلة في \u0026ldquo;وقت كثير الحدود\u0026rdquo; باستخدام كمبيوتر كمي.\nتعقيد خوارزمية شور إذا افترضنا أن عدد الكيوبت هو $O(\\log N)$، فإن تعقيد الوقت يكون:\n$$ O((\\log N)^3) $$ هذا يعني أنه لا يوجد انفجار أسي بالنسبة لعدد البتات. إنها نتيجة مذهلة حيث يمكن للأعداد المركبة الضخمة التي يتجاوز وقت حسابها في \u0026ldquo;الحوسبة الكلاسيكية\u0026rdquo; عمر الكون، أن يتم حلها في غضون ساعات إلى أيام باستخدام \u0026ldquo;الحوسبة الكمية\u0026rdquo; .\nنظرة عامة على خوارزمية شور: الاختزال إلى مشكلة إيجاد الدورة تختزل خوارزمية شور مشكلة التحليل إلى العوامل الأولية ببراعة إلى \u0026ldquo;مشكلة إيجاد الدورة\u0026rdquo; .\nاختر عدداً صحيحاً عشوائياً $a$ أولي نسبياً مع $N$ (حيث $1 \u003c a \u003c N$). عرّف الدالة $f(x) = a^x \\bmod N$. أوجد الدورة $r$ للدالة $f(x)$، أي أصغر عدد صحيح موجب $r$ بحيث $a^r \\equiv 1 \\pmod N$. إذا كان $r$ عدداً زوجياً، تحقق مما إذا كان $a^{r/2} \\not\\equiv -1 \\pmod N$， واحسب $\\gcd(a^{r/2} \\pm 1, N)$ للحصول على العامل الأولي. هذه الخطوة 3، أي \u0026ldquo;اكتشاف الدورة $r$\u0026rdquo; ، هي عنق الزجاجة الذي يتطلب وقتاً أسياً على الكمبيوتر الكلاسيكي، لكن الكمبيوتر الكمي يحلها في لحظة باستخدام \u0026ldquo;التراكب الكمي\u0026rdquo; و \u0026ldquo;تحويل فورييه الكمي\u0026rdquo; (QFT).\n4. تحويل فورييه الكمي (QFT) واستخراج الدورة دعونا نلقي نظرة فاحصة على العمليات الرياضية للحالات الكمية التي هي جوهر خوارزمية شور.\n4.1. توليد التراكب الكمي أولاً، قم بإعداد سجلي كم (Registers). يحتفظ السجل 1 بحالة التراكب للمدخل $x$، ويحتفظ السجل 2 بنتيجة الحساب للدالة $f(x)$. قم بتطبيق تحويل هادامار (Hadamard Transform) على الحالة الأولية $|0\\rangle |0\\rangle$ لإنشاء تراكب لجميع قيم $x$ الممكنة.\n$$ |\\psi_1\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{x=0}^{Q-1} |x\\rangle |0\\rangle $$ (حيث $Q$ هو قوة للعدد 2 تلبي $N^2 \\le Q \u003c 2N^2$)\nبعد ذلك، استخدم وسيط كمي (Quantum Oracle) $U_f$ لحساب $f(x) = a^x \\bmod N$ وتخزينه في السجل 2.\n$$ |\\psi_2\\rangle = U_f |\\psi_1\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{x=0}^{Q-1} |x\\rangle |a^x \\bmod N\\rangle $$ لنفترض الآن أنه تم قياس السجل 2 (من الناحية النظرية، حتى لو لم يتم قياسه، فإن البنية الرياضية هي نفسها). إذا تم ملاحظة قيمة معينة $y = a^{x_0} \\bmod N$، فإن حالة السجل 1 ستنهار إلى تراكب لجميع $x$ التي تجعل $f(x) = y$. إذا افترضنا أن الدورة هي $r$، فإن مثل هذه الـ $x$ ستكون $x_0, x_0 + r, x_0 + 2r, \\dots$\n$$ |\\psi_3\\rangle = \\frac{1}{\\sqrt{M}} \\sum_{k=0}^{M-1} |x_0 + kr\\rangle $$ (حيث $M \\approx Q/r$ هو عدد الحدود)\nتحتوي هذه الحالة على معلومات الدورة $r$، لكن القياس المباشر سينتج فقط $x_0 + kr$ عشوائية، ولن تُعرف الدورة $r$. هنا يأتي دور QFT.\n4.2. تطبيق تحويل فورييه الكمي (QFT) QFT هي عملية تطبق تحويل فورييه المتقطع على السعات للحالات الكمية. يُعرَّف تأثير QFT على الحالة $|x\\rangle$ على النحو التالي:\n$$ \\text{QFT} |x\\rangle = \\frac{1}{\\sqrt{Q}} \\sum_{y=0}^{Q-1} e^{2\\pi i \\frac{xy}{Q}} |y\\rangle $$ عند تطبيق ذلك على $|\\psi_3\\rangle$، يحدث تداخل الطور (تداخل كمي).\n$$ |\\psi_4\\rangle = \\text{QFT} |\\psi_3\\rangle = \\frac{1}{\\sqrt{MQ}} \\sum_{y=0}^{Q-1} \\sum_{k=0}^{M-1} e^{2\\pi i \\frac{(x_0 + kr)y}{Q}} |y\\rangle $$ إذا قمنا بتوسيع المجموع في هذه المعادلة، يظهر الجزء التالي:\n$$ \\sum_{k=0}^{M-1} e^{2\\pi i \\frac{kry}{Q}} $$ مجموع المتسلسلة الهندسية هذا يعزز بعضه البعض (تداخل بنّاء Constructive Interference) فقط عندما يكون $ry/Q$ قريباً من عدد صحيح، ويلغي بعضه البعض (تداخل هدّام Destructive Interference) في أوقات أخرى.\nلذلك، ستكون الحالة $|y\\rangle$ المقاسة باحتمالية عالية عبارة عن عدد صحيح $y$ يلبي:\n$$ \\frac{y}{Q} \\approx \\frac{c}{r} $$ (حيث $c$ هو أي عدد صحيح).\n4.3. تحديد الدورة عن طريق توسيع الكسر المستمر بعد الحصول على $y$ من خلال القياس، استخدم كمبيوتراً كلاسيكياً لإجراء \u0026ldquo;توسيع الكسر المستمر\u0026rdquo; (Continued Fraction Expansion) على $y/Q$. يتيح ذلك حساب الكسر التقريبي $c/r$ للـ $y/Q$ واستخراج الدورة المحتملة $r$ من المقام بكفاءة عالية.\n5. مقارنة النماذج المفاهيمية والنقلة النوعية لفهم الاختلاف بين GNFS وخوارزمية شور بشكل بديهي، يوضح الرسم المفاهيمي باستخدام تدوين Mermaid.\nرسم مفاهيمي لخوارزمية شور باستخدام دارة كمية 1 2 3 4 5 6 7 8 9 10 11 12 13 graph TD A[الحالة الأولية: 0...0] --\u0026gt; B[تراكب جميع الحالات بتحويل هادامار] B --\u0026gt; C[عملية الأس المعياري a^x mod N] C --\u0026gt;|التشابك الكمي| D[الانهيار إلى حالة ذات دورية] D --\u0026gt; E[تحويل فورييه الكمي QFT] E --\u0026gt;|تضخيم الاحتمالية عبر التداخل| F[القياس: الحصول على y] F --\u0026gt; G[المعالجة الكلاسيكية: الكسر المستمر] G --\u0026gt; H[اكتشاف الدورة r] H --\u0026gt; I[حساب العامل الأولي لـ N] style A fill:#f9f,stroke:#333,stroke-width:2px style E fill:#bbf,stroke:#333,stroke-width:2px style I fill:#bfb,stroke:#333,stroke-width:2px جوهر النقلة النوعية يتخذ GNFS نهج \u0026ldquo;البحث عن علاقات داخل الفضاء الرياضي (الحقل الجبري)\u0026rdquo; . ومع ذلك، نظراً لأن مساحة البحث تتسع أسيًا مع عدد الأرقام، يصبح فك التشفير مستحيلاً تقريباً لطول مفتاح يتجاوز 2048 بتاً باستخدام قدرة الحوسبة الكلاسيكية (حتى مع المعالجة المتوازية).\nمن ناحية أخرى، تستفيد خوارزمية شور من \u0026ldquo;الطبيعة الموجية للتداخل الكمي\u0026rdquo; . فهي تقيّم جميع مسارات الحساب في حالة التراكب في وقت واحد، وتلغي (تُضعف) الإجابات غير الضرورية باستخدام QFT، وتضخم فقط سعة الاحتمال للدورة الصحيحة. بذلك، لا يبحث هذا النهج في المساحة، بل يتبنى بعداً مختلفاً تماماً: \u0026ldquo;جعل الإجابة الصحيحة تطفو على السطح\u0026rdquo; .\n6. الخلاصة في هذا المقال، قارنا بعمق الخلفية الرياضية وهيكل الخوارزمية بين \u0026ldquo;GNFS\u0026rdquo; الذي يمثل أقصى حدود الحوسبة الكلاسيكية، و \u0026ldquo;خوارزمية شور\u0026rdquo; التي تُظهر قوة الحوسبة الكمية.\nفي حين استخدم GNFS تقنيات رياضية مثل اختيار كثيرات الحدود وحسابات المصفوفات الضخمة لدفع التعقيد نحو وقت شبه أسي، حققت خوارزمية شور اختراقاً مباشراً إلى وقت كثير الحدود من خلال الجمع بين المبادئ الأساسية لميكانيكا الكم من التراكب والتداخل مع أداة رياضية (QFT).\nفي الوقت الحالي، لا يوجد كمبيوتر كمي متسامح مع الأخطاء (FTQC) على نطاق عملي (آلاف الكيوبتات) قادر على تشغيل خوارزمية شور. ومع ذلك، فإن وجود هذه النقلة النوعية النظرية والرياضية هو بالتحديد السبب الأكبر وراء تسريع الانتقال إلى التشفير ما بعد الكمي (PQC: Post-Quantum Cryptography) في جميع أنحاء العالم اليوم.\n","date":"2026-09-06T12:00:00+09:00","image":"http://kenji.blog/p/gnfs-to-shors-algorithm-math-deepdive/quantum_vs_gnfs_eyecatch_1788616101508_hud95a00206aa1dcf32de9cdc0ccb17972_1096815_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/gnfs-to-shors-algorithm-math-deepdive/","title":"【فهم كامل بالمعادلات】 لماذا يُهزم «GNFS» الكلاسيكي الأقوى أمام الخوارزميات الكمية؟ نقلة نوعية في تحليل العوامل الأولية"},{"content":"مقدمة: \u0026ldquo;نقلة نوعية في الحوسبة\u0026rdquo; بفضل أجهزة الكمبيوتر الكمومية في السنوات الأخيرة، لا يمر يوم دون أن نرى مصطلح \u0026ldquo;الكمبيوتر الكمي\u0026rdquo; في الأخبار أو المقالات التقنية. قصص أشبه بالخيال العلمي، مثل \u0026ldquo;إنهاء عمليات حسابية قد تستغرق آلاف السنين على أجهزة الكمبيوتر الخارقة الحالية في دقائق معدودة\u0026rdquo; أو \u0026ldquo;قد يتم اختراق جميع تقنيات التشفير الحالية\u0026rdquo;، تُروى وكأنها حقيقة. تتنافس شركات تكنولوجيا المعلومات العملاقة مثل جوجل وآي بي إم ومايكروسوفت، بالإضافة إلى الجامعات والشركات الناشئة في جميع أنحاء العالم، بشراسة نحو تسويق تقنية الأحلام هذه.\nومع ذلك، إذا سُئل شخص \u0026ldquo;ما هو الكمبيوتر الكمي حقًا؟\u0026quot;، فقلة من الناس سيتمكنون من الإجابة بدقة. يمتلك الكثيرون صورة غامضة مثل \u0026ldquo;صندوق سحري يمكنه حساب جميع الاحتمالات في نفس الوقت\u0026rdquo;، ولكن بالمعنى الدقيق للكلمة، هذا ليس صحيحًا.\nفي هذه المقالة، سنشرح بالتفصيل وبشكل مفهوم ولكنه تقني من الأساسيات، كيف يختلف الكمبيوتر الكمي جوهريًا عن الكمبيوتر الكلاسيكي (أجهزة الكمبيوتر الشخصية والهواتف الذكية التي نستخدمها عادةً)، وكيف يتم استخدام الظواهر الغريبة لميكانيكا الكم مثل \u0026ldquo;التراكب (Superposition)\u0026rdquo; و\u0026quot;التشابك الكمي (Entanglement)\u0026rdquo; و\u0026quot;البوابات الكمومية (Quantum gates)\u0026quot; في الحوسبة. بحلول الوقت الذي تنتهي فيه من قراءة هذه المقالة، يجب أن تكون قادرًا على فهم العظمة الجوهرية لأجهزة الكمبيوتر الكمومية والتحديات الحالية بوضوح.\nالفصل الأول: الاختلاف الجذري بين أجهزة الكمبيوتر الكلاسيكية وأجهزة الكمبيوتر الكمومية لفهم كيفية عمل أجهزة الكمبيوتر الكمومية، نحتاج أولاً إلى مراجعة كيفية عمل \u0026ldquo;أجهزة الكمبيوتر الكلاسيكية\u0026rdquo; التي نستخدمها حاليًا.\nجدول مقارنة: الكمبيوتر الكلاسيكي مقابل الكمبيوتر الكمي العنصر الكمبيوتر الكلاسيكي الكمبيوتر الكمي الوحدة الأساسية بت (0 أو 1) كيوبت (تراكب 0 و 1) تمثيل الحالة حتمي احتمالي (غير محدد حتى يتم ملاحظته) طريقة الحساب معالجة متسلسلة (يتطلب نوى مادية للتوازي) التوازي الكمي (معالجة حالات أسية في وقت واحد) العمليات المفضلة العمليات الحسابية، معالجة البيانات اليومية تحليل العوامل الأولية، حسابات الكيمياء الكمومية تحمل الأخطاء قوي جدا ضعيف جدا (يتطلب بيئة شديدة البرودة أو تصحيح الأخطاء) عالم الكمبيوتر الكلاسيكي: \u0026ldquo;بت (Bit)\u0026rdquo; إما 0 أو 1 تمثل أجهزة الكمبيوتر الكلاسيكية جميع المعلومات إما بالحالة \u0026ldquo;0\u0026rdquo; أو \u0026ldquo;1\u0026rdquo;. يسمى هذا بت (Bit) . ماديًا، يتم تمثيل ذلك بجهد عالٍ (1) أو منخفض (0) في الترانزستور الموجود على شريحة شبه موصلة. الصور عالية الدقة على هاتفك الذكي، وهذا النص الذي تقرأه الآن، ومقاطع فيديو يوتيوب المفضلة لديك، يتم اختزالها في النهاية إلى عدد هائل من \u0026ldquo;سلاسل الأصفار والآحاد\u0026rdquo;. الحساب ليس سوى عملية معالجة لسلاسل الأصفار والآحاد هذه من خلال دمج الدوائر المنطقية الأساسية مثل AND و OR و NOT. هذا عالم مؤكد وحتمي للغاية. إذا كانت المدخلات هي نفسها، فستحصل دائمًا على نفس المخرجات.\nعالم الكمبيوتر الكمي: \u0026ldquo;كيوبت (Qubit)\u0026rdquo; الذي يمثل 0 و 1 في نفس الوقت من ناحية أخرى، تسمى أصغر وحدة معلومات في الكمبيوتر الكمي الكيوبت (Qubit: Quantum bit) . الميزة الكبرى للكيوبت هي أنه لا يقتصر على الوجود في حالة واحدة فقط إما \u0026ldquo;0\u0026rdquo; أو \u0026ldquo;1\u0026rdquo; مثل البت الكلاسيكي، بل يمكن أن يأخذ \u0026ldquo;حالة يختلط فيها 0 و 1 باحتمالية معينة\u0026rdquo;. يسمى هذا \u0026ldquo;التراكب (Superposition)\u0026rdquo; .\nعلى سبيل المثال، إذا كان البت الكلاسيكي هو عملة معدنية موضوعة بحيث يكون وجهها إما \u0026ldquo;ملك\u0026rdquo; أو \u0026ldquo;كتابة\u0026rdquo;، فغالبًا ما يُقارن الكيوبت بـ \u0026ldquo;عملة معدنية تستمر في الدوران في الهواء\u0026rdquo;. لا يمكن القول إن العملة التي تدور هي ملك أو كتابة، وكلا الحالتين تتداخلان. فقط في اللحظة التي تسقط فيها العملة على الأرض وتتوقف عن الحركة (في ميكانيكا الكم، يسمى هذا \u0026ldquo;الملاحظة\u0026rdquo; أو \u0026ldquo;القياس\u0026rdquo;)، يتم تحديد ما إذا كانت \u0026ldquo;ملكًا\u0026rdquo; أو \u0026ldquo;كتابة\u0026rdquo;.\nتدمج أجهزة الكمبيوتر الكمومية هذه الخاصية الفريدة للعالم المجهري (ميكانيكا الكم)، حيث \u0026ldquo;لا يتم تحديد الحالة حتى تتم ملاحظتها\u0026rdquo;، مباشرة في عملية معالجة المعلومات.\nالفصل الثاني: ثلاث خصائص كمومية تغير الحوسبة من جذورها لا يكمن مصدر القدرة الحسابية المذهلة لأجهزة الكمبيوتر الكمومية في مجرد ارتفاع تردد الساعة أو صغر حجم المكونات. بل في استخدام قوانين الفيزياء نفسها كموارد حوسبة. الظواهر الكمومية الثلاث التالية هي المفتاح.\n1. التراكب (Superposition) والكمية الأسية للمعلومات كما ذكرنا سابقًا، يمكن للكيوبت الاحتفاظ بكل من حالتي 0 و 1 في نفس الوقت. كيوبت واحد هو \u0026ldquo;تراكب لـ 0 و 1\u0026rdquo;، ولكن ماذا يحدث إذا قمنا بزيادة عدد الكيوبتات؟\n1 كيوبت: تراكب لحالتين (0, 1) 2 كيوبت: تراكب لـ 4 حالات (00, 01, 10, 11) 3 كيوبت: تراكب لـ 8 حالات N كيوبت: تراكب لـ $2^N$ من الأنماط مع وجود 50 كيوبت فقط، يمكن الاحتفاظ بـ $2^{50}$ (حوالي 1.1 كوادريليون) حالة في نفس الوقت. ومع وجود 300 كيوبت فقط، يمكن الاحتفاظ بـ $2^{300}$ من الأنماط (رقم يفوق عدد جميع الذرات في الكون!) دفعة واحدة. قدرة الاحتفاظ بالمعلومات الأسية هذه هي أساس إمكانات أجهزة الكمبيوتر الكمومية. من المستحيل فيزيائيًا على جهاز كمبيوتر كلاسيكي تخزين عدد من الحالات يفوق عدد الذرات في الكون في ذاكرته.\n2. التشابك الكمي (Entanglement): فعل مخيف عن بعد التشابك الكمي هو ظاهرة غامضة تتحدى الحدس البشري لدرجة أن أينشتاين أطلق عليها اسم \u0026ldquo;الفعل المخيف عن بعد\u0026rdquo; ولم يتقبلها طوال حياته.\nعندما تدخل عدة كيوبتات في حالة \u0026ldquo;تشابك كمي\u0026rdquo;، فإنها ترتبط ببعضها البعض بقوة، لتشكل علاقة مصير مشترك حيث \u0026ldquo;بمجرد تحديد حالة أحدهما، مهما بلغت المسافة بينهما، يتم تحديد حالة الآخر لحظيًا\u0026rdquo; .\nعلى سبيل المثال، لنفترض أن هناك كيوبتين أ و ب في حالة تشابك (كلاهما في حالة تراكب بين 0 و 1). إذا لاحظنا أ ووجدناه \u0026ldquo;0\u0026rdquo;، فإن حالة ب سيتم تحديدها لحظيًا (لتصبح \u0026ldquo;1\u0026rdquo; دائمًا، على سبيل المثال)، متجاوزة سرعة الضوء التي هي الحد الأقصى لسرعة نقل المعلومات. في أجهزة الكمبيوتر الكمومية، يتم استخدام هذا التشابك الكمي لتمثيل الارتباطات المعقدة بين عدة كيوبتات وإجراء معالجة متوازية فائقة للمعلومات. بدون التشابك، لن تختلف القدرة الحسابية للكمبيوتر الكمي كثيرًا عن الكمبيوتر الكلاسيكي.\n3. التداخل الكمي (Quantum Interference): السحر الذي يبرز الإجابة الصحيحة قد تفكر: \u0026ldquo;إذا كان بإمكانه الاحتفاظ بجميع الأنماط في نفس الوقت، ألا يمكنه فقط حسابها جميعًا دفعة واحدة وإعطاء الإجابة في لحظة؟\u0026rdquo; هذا هو سوء الفهم الأكثر شيوعًا حول أجهزة الكمبيوتر الكمومية. حتى إذا قمت بالحساب في حالة تراكب، يجب عليك في النهاية \u0026ldquo;الملاحظة\u0026rdquo; لمعرفة الإجابة. ولكن في لحظة الملاحظة، تنهار الحالة عشوائياً إلى واحد من الـ $2^N$ نمط. هذا سينتج ببساطة إجابة عشوائية تمامًا.\nهنا يأتي دور \u0026ldquo;التداخل الكمي (Interference)\u0026rdquo; . عندما تصطدم الموجات، فإن الأجزاء التي تتوافق فيها أطوالها الموجية تقوي بعضها البعض، والأجزاء غير المتوافقة تلغي بعضها البعض (وهو نفس المبدأ الذي تعمل به سماعات إلغاء الضوضاء أساسًا).\nيقوم \u0026ldquo;الخوارزمية الكمومية\u0026rdquo; الممتازة بمعالجة الحالة الكمومية بمهارة أثناء عملية الحساب بحيث \u0026ldquo;تعزز (تقوي) السعات الاحتمالية للحالات (الموجات) التي تؤدي إلى الإجابة الصحيحة بعضها البعض\u0026rdquo; و \u0026ldquo;تلغي السعات الاحتمالية للحالات التي تؤدي إلى إجابات خاطئة بعضها البعض\u0026rdquo; . في النهاية، يتم تصميمه بحيث عندما تلاحظه في النهاية، فإن \u0026ldquo;الإجابة الصحيحة\u0026rdquo; ستخرج باحتمال يقترب من 100%. إن تصميم عملية التداخل هذه ببراعة هو جوهر البرمجة الكمومية.\nالفصل الثالث: كيف يتم الحساب؟ \u0026ldquo;البوابات الكمومية\u0026rdquo; و\u0026quot;الدوائر الكمومية\u0026quot; تماما كما تستخدم أجهزة الكمبيوتر الكلاسيكية البوابات المنطقية (AND، OR، NOT، إلخ) لإجراء العمليات الحسابية، فإن أجهزة الكمبيوتر الكمومية تطبق عمليات تسمى \u0026ldquo;البوابات الكمومية (Quantum Gates)\u0026rdquo; على الكيوبتات لتقدم الحساب. يسمى الجمع بين عدة بوابات كمومية بالدائرة الكمومية (Quantum Circuit) .\nيتم تمثيل حالة الكيوبت رياضيًا كنقطة على سطح كرة ثلاثية الأبعاد تسمى \u0026ldquo;كرة بلوخ\u0026rdquo;. القطب الشمالي هو \u0026ldquo;0\u0026rdquo;، والقطب الجنوبي هو \u0026ldquo;1\u0026rdquo;، وخط الاستواء هو \u0026ldquo;حالة يتداخل فيها 0 و 1 بالتساوي\u0026rdquo;. البوابات الكمومية ليست سوى عمليات لتدوير الحالة (المتجه) على سطح هذه الكرة.\nدعونا نقدم بعض البوابات الكمومية التمثيلية.\n1. بوابة هادامارد (H gate) هذه هي البوابة الأساسية والأكثر تميزًا لأجهزة الكمبيوتر الكمومية، والتي لا توجد في أجهزة الكمبيوتر الكلاسيكية. عندما يمر كيوبت حالته \u0026ldquo;0\u0026rdquo; تمامًا عبر بوابة H، فإنه ينشئ \u0026ldquo;حالة تراكب مثالية\u0026rdquo; (نقطة على خط استواء كرة بلوخ) حيث تتم ملاحظة 0 و 1 باحتمال نصف ونصف بالضبط. كخطوة تهيئة للحوسبة الكمومية، تبدأ العديد من الخوارزميات بتطبيق بوابة H هذه على جميع الكيوبتات أولاً.\n2. بوابات باولي (بوابات X و Y و Z) هذه بوابات تتضمن عمليات تعادل بوابة NOT الكلاسيكية (قلب 0 إلى 1، و 1 إلى 0). على كرة بلوخ، تتوافق مع عمليات الدوران بمقدار 180 درجة حول محاور X و Y و Z. على وجه الخصوص، تقلب بوابة X القطب الشمالي (0) إلى القطب الجنوبي (1)، وتعمل تمامًا مثل بوابة NOT الكلاسيكية. تلعب بوابة Z دور قلب \u0026ldquo;الطور (مثل توقيت الموجة)\u0026rdquo; للتراكب، وهي مهمة للغاية لإحداث التداخل الكمي.\n3. بوابة CNOT (بوابة NOT المتحكم بها) هذه بوابة فائقة الأهمية لخلق التشابك الكمي. وتستخدم كيوبتين (بت تحكم وبت هدف). طريقة عملها هي: \u0026ldquo;إذا كان بت التحكم 1، فاقلب حالة بت الهدف (بوابة X). وإذا كان بت التحكم 0، فلا تفعل شيئًا\u0026rdquo;. للوهلة الأولى تبدو وكأنها شرط IF بسيط، ولكن ماذا يحدث إذا كان بت التحكم في \u0026ldquo;حالة تراكب لـ 0 و 1\u0026rdquo;؟ سيصبح بت الهدف في \u0026ldquo;حالة تتداخل فيها الحالة المقلوبة وغير المقلوبة\u0026rdquo;، وسيتم ربط مصير البتين معًا بالكامل. هكذا \u0026ldquo;يتشابك\u0026rdquo; الكيوبتان بشكل مذهل.\nمن خلال ترتيب وتطبيق هذه البوابات بالترتيب من اليسار إلى اليمين مثل نوتة موسيقية، يتم تنفيذ خوارزميات معقدة.\nالفصل الرابع: ما هي نقاط قوة وضعف أجهزة الكمبيوتر الكمومية؟ دعونا نخبركم بحقيقة مهمة هنا. الكمبيوتر الكمي ليس آلة قادرة على كل شيء. في المهام اليومية مثل تصفح الويب، وتصيير الفيديو، ومعالجة ماكرو إكسل، أو تشغيل تطبيقات الهواتف الذكية العادية، فمن المحتمل ألا تتفوق أجهزة الكمبيوتر الكمومية على الكلاسيكية أبدًا. هذه المعالجات المتسلسلة تناسبها أكثر أجهزة الكمبيوتر الكلاسيكية، التي تم تحسينها بالفعل بدرجة عالية وتتميز بسرعات هائلة وأسعار منخفضة.\nتُظهر أجهزة الكمبيوتر الكمومية قيمتها الحقيقية فقط في \u0026ldquo;المشكلات المحددة التي تنفجر فيها مجموعات الحساب أسيًا على أجهزة الكمبيوتر الكلاسيكية وقد تستغرق وقتًا يعادل عمر الكون لحلها\u0026rdquo; . يُطلق على هذا اسم \u0026ldquo;التفوق الكمي (Quantum Supremacy)\u0026rdquo; أو \u0026ldquo;الميزة الكمومية (Quantum Advantage)\u0026rdquo;.\nالأشياء التي تبرع فيها أجهزة الكمبيوتر الكمومية (التطبيقات القاتلة) 1. تحليل العوامل الأولية وفك التشفير (خوارزمية شور) حاليًا، الاتصالات الآمنة على الإنترنت (مثل مدفوعات بطاقات الائتمان ونقل المعلومات الشخصية) محمية بواسطة \u0026ldquo;تشفير RSA\u0026rdquo;، الذي يعتمد على فرضية أن \u0026ldquo;تحليل الأعداد الضخمة إلى عوامل أولية أمر مستحيل عمليًا (يستغرق وقتًا هائلاً) لأجهزة الكمبيوتر الكلاسيكية\u0026rdquo;. ومع ذلك، باستخدام \u0026ldquo;خوارزمية شور\u0026rdquo; التي اكتشفها عالم الرياضيات بيتر شور عام 1994، يمكن للكمبيوتر الكمي استخدام التداخل بمهارة لحل ذلك بسرعة هائلة (وقت متعدد الحدود). نتيجة لذلك، هناك خطر من انهيار أنظمة التشفير الحالية في المستقبل، وتتسابق البنوك المركزية والوكالات الحكومية حول العالم للانتقال إلى \u0026ldquo;التشفير ما بعد الكمي (Post-Quantum Cryptography)\u0026rdquo;.\n2. حسابات الكيمياء الكمومية وتطوير مواد وأدوية جديدة يخضع سلوك الجزيئات والذرات في الطبيعة أصلاً لقوانين ميكانيكا الكم. إذا حاولنا محاكاة سلوك الجزيئات المعقدة بجهاز كمبيوتر كلاسيكي، فإن مجموعات تفاعلات الإلكترونات ستنفجر، وسنصل إلى حدود الحساب حتى بالنسبة للجزيئات الصغيرة نسبيًا. وكما قال الحائز على جائزة نوبل في الفيزياء ريتشارد فاينمان، \u0026ldquo;إذا كنت ترغب في محاكاة الطبيعة، فمن الأفضل أن تصنعها من ميكانيكا الكم\u0026rdquo;، تُظهر أجهزة الكمبيوتر الكمومية قوة أصلية ساحقة في محاكاة المواد. من المتوقع حدوث اختراقات ستحل مشاكل البشرية، مثل تصميم أدوية مبتكرة، واكتشاف مواد فائقة التوصيل في درجة حرارة الغرفة، وتطوير مواد للخلايا الشمسية والبطاريات عالية الكفاءة، وتصنيع أسمدة موفرة للطاقة.\n3. مشاكل التحسين التوافقي والبحث (خوارزمية غروفر) الخوارزميات الكمومية فعالة أيضًا في المشكلات التي تتطلب العثور على أفضل خيار من بين عدد هائل من الخيارات (مثل طرق الخدمات اللوجستية المثلى، وتحسين المحافظ المالية، وما إلى ذلك). باستخدام \u0026ldquo;خوارزمية غروفر\u0026rdquo;، يمكن العثور على البيانات في قاعدة بيانات غير مرتبة بعدد عمليات يمثل الجذر التربيعي لما تحتاجه أجهزة الكمبيوتر الكلاسيكية. على سبيل المثال، إذا كان هناك 100 مليون جزء من البيانات، فإن البحث الذي قد يستغرق ما يصل إلى 100 مليون مرة كلاسيكيًا يمكن إكماله في حوالي 10000 مرة فقط.\nالفصل الخامس: الجدار الصلب للأجهزة \u0026ldquo;فك الترابط\u0026rdquo; و\u0026quot;تصحيح الأخطاء الكمومية\u0026quot; على الرغم من أنها قوية كالسحر من الناحية النظرية، إلا أن الطريق نحو الاستخدام العملي لأجهزة الكمبيوتر الكمومية تسده عقبات فيزيائية عالية وشديدة الانحدار. العدو الأكبر هو \u0026ldquo;الضوضاء (Noise)\u0026rdquo; .\nتعتبر حالات \u0026ldquo;التراكب\u0026rdquo; و\u0026quot;التشابك الكمي\u0026quot; للكيوبتات هشة وضعيفة للغاية. فبمجرد تعرضها للقليل من حرارة البيئة، أو تذبذب الموجات الكهرومغناطيسية، أو الأشعة الكونية، ينهار هذا الوضع السحري في لحظة ويصبح مجرد بت كلاسيكي عادي. تسمى هذه الظاهرة \u0026ldquo;فك الترابط (Decoherence)\u0026rdquo; .\nمنافسة شرسة في طرق الإدراك المادي حاليًا، يتم إجراء أبحاث على طرق مختلفة حول العالم حول كيفية صنع هذه الكيوبتات الحساسة ماديًا، وهناك صراع من أجل الهيمنة.\nطريقة الموصلية الفائقة (Superconducting) : تعتمدها شركات مثل Google و IBM و Amazon. تستخدم دوائر فائقة التوصيل على شكل حلقة، ويتم التحكم فيها عن طريق تبريدها إلى درجة حرارة شديدة الانخفاض قريبة من الصفر المطلق (حوالي -273 درجة مئوية) باستخدام ثلاجات عملاقة. إنها الطريقة الرائدة حاليًا والأسهل في زيادة عدد الكيوبتات، ولكن أجهزة التبريد ضخمة ومكلفة. طريقة الأيونات المحاصرة (Trapped Ion) : تعتمدها شركات مثل IonQ و Quantinuum. تحبس الأيونات (الذرات) في فراغ باستخدام مجالات كهرومغناطيسية ويتم التحكم فيها بالليزر الدقيق. نقطة القوة هي أن جميع الكيوبتات متماثلة ويمكنها الحفاظ على حالتها لفترة طويلة (وقت تماسك طويل)، لكن سرعة تشغيلها أبطأ مقارنة بالموصلات الفائقة. طريقة الضوئيات الكمومية (Photonic) : تركز عليها شركات مثل PsiQuantum. تستخدم جزيئات الضوء (الفوتونات). وتتميز بميزة كبيرة تتمثل في أن أجزاء كثيرة منها تعمل في درجة حرارة الغرفة دون الحاجة إلى بيئة شديدة البرودة، وهي متوافقة للغاية مع تقنيات تصنيع شرائح السيليكون وتقنيات اتصالات الألياف الضوئية الحالية. الطريقة الطوبولوجية (Topological) : تبحث فيها Microsoft منذ سنوات. وهو نهج طموح يستخدم الخصائص الطوبولوجية لجسيمات خاصة تسمى \u0026ldquo;الأنيونات\u0026rdquo; لإنشاء كيوبتات تقاوم ضوضاء البيئة بشكل أساسي (أقل عرضة للأخطاء). وهي الأقوى نظريًا، ولكن يُقال إن إدراكها المادي هو الأصعب. الطريق إلى الهدف النهائي \u0026ldquo;الكمبيوتر الكمي المتسامح مع الأخطاء (FTQC)\u0026rdquo; حتى في عالم أجهزة الكمبيوتر الكلاسيكية الحالية، توجد أخطاء حسابية (مثل انقلاب البتات بسبب الأشعة الكونية)، ولكن نظرًا لأنه يتم تصحيحها بشكل مثالي بواسطة \u0026ldquo;أكواد تصحيح الأخطاء\u0026rdquo;، يمكننا استخدام هواتفنا الذكية دون الانتباه إلى أي أخطاء. لإجراء حسابات عملية واسعة النطاق على أجهزة الكمبيوتر الكمومية، فإن \u0026ldquo;تصحيح الأخطاء الكمومية (Quantum Error Correction: QEC)\u0026rdquo; المماثل أمر ضروري.\nومع ذلك، تمتلك الحالة الكمومية خاصية \u0026ldquo;الانهيار عند الملاحظة\u0026rdquo;، لذلك هناك معضلة قاتلة تتمثل في أنك لا تستطيع النظر مباشرة في الداخل (الملاحظة) للتحقق من الأخطاء. لتجنب ذلك، تم إنشاء نظرية للجمع بمهارة بين عدد كبير من \u0026ldquo;الكيوبتات المادية\u0026rdquo; غير المستقرة لبناء \u0026ldquo;كيوبت منطقي\u0026rdquo; واحد مستقر يمكنه اكتشاف الأخطاء وتصحيحها (مثل الرموز السطحية). ومع ذلك، يُقال إن الأمر يتطلب ما بين 1000 إلى 10000 كيوبت مادي لإنشاء كيوبت منطقي واحد. ولتشغيل خوارزمية شور باستخدام آلاف الكيوبتات المنطقية، يلزم وجود نظام ضخم يضم ملايين إلى عشرات الملايين من الكيوبتات المادية بشكل عام.\nالعصر الذي نعيش فيه الآن يسمى عصر أجهزة NISQ (الكم ذو النطاق المتوسط والضوضاء) . وهي أجهزة انتقالية تعمل بعشرات إلى مئات الكيوبتات دون تصحيح للأخطاء. يتوقع الخبراء أن الهدف النهائي، وهو تحقيق \u0026ldquo;كمبيوتر كمي متسامح مع الأخطاء (FTQC)\u0026rdquo; قادر على تصحيح الأخطاء تمامًا، سيستغرق أبحاثًا وتطويرًا على المدى الطويل من 10 سنوات إلى عدة عقود.\nالفصل السادس: تاريخ وآفاق المستقبل لأجهزة الكمبيوتر الكمومية أخيرًا، دعونا نلقي نظرة عامة على كيفية نشأة أجهزة الكمبيوتر الكمومية وإلى أين تتجه.\nمن ولادة النظرية إلى إثبات \u0026ldquo;التفوق الكمي\u0026rdquo; الثمانينيات : اقترح الفيزيائيان بول بينيوف وريتشارد فاينمان مفهوم الحواسيب التي تستخدم مبادئ ميكانيكا الكم. كانت عبارة \u0026ldquo;إذا كنت تريد محاكاة الطبيعة، فاستخدم ميكانيكا الكم\u0026rdquo; هي نقطة الانطلاق. عام 1994 : أعلن بيتر شور عن خوارزمية كمومية لتحليل العوامل (خوارزمية شور). صدم هذا العالم وأصبح حافزًا لتدفق تمويل بحثي هائل. عام 1996 : أعلن لوف غروفر عن خوارزمية غروفر التي تسرع البحث عن البيانات. عام 2019 : معلم تاريخي. أعلنت جوجل أنها استخدمت معالج \u0026ldquo;Sycamore\u0026rdquo; فائق التوصيل بـ 53 كيوبت لإكمال عملية حسابية للتحقق من توليد أرقام عشوائية، والتي (قيل إنها) تستغرق 10000 عام على كمبيوتر كلاسيكي فائق، في حوالي 200 ثانية. أصبح هذا موضوعًا ساخنًا كأول إعلان في العالم يثبت \u0026ldquo;التفوق الكمي (Quantum Supremacy)\u0026rdquo; (رغم أنه أثار لاحقًا نقاشات حامية حيث جادلت IBM وآخرون بأنه يمكن حسابه في بضعة أيام عن طريق تحسين الخوارزمية من جانب الكمبيوتر الفائق الكلاسيكي). منذ عام 2023 : أعلنت شركة IBM عن معالج \u0026ldquo;Condor\u0026rdquo; الذي يحتوي على أكثر من 1000 كيوبت. بالإضافة إلى ذلك، نجحت جامعة هارفارد ومؤسسات أخرى في إنشاء ومعالجة \u0026ldquo;كيوبتات منطقية\u0026rdquo;، وبدأت التقارير تتوالى عن العروض التوضيحية المبكرة لتقنيات تصحيح الأخطاء. نحو تكنولوجيا الجيل القادم الكمبيوتر الكمي ليس مجرد \u0026ldquo;وحدة معالجة مركزية من الجيل التالي بتردد ساعة أسرع\u0026rdquo;. إنه نقلة نوعية حقيقية في علم المعلومات، تعيد كتابة مفهوم الحوسبة نفسها من جذوره بقواعد ميكانيكا الكم التي تحكم العالم المجهري.\nخلال حياتنا، ربما لن نمتلك \u0026ldquo;هاتفًا ذكيًا كميًا شخصيًا\u0026rdquo; يتسع في جيوبنا (ولا حاجة لذلك أصلاً). ولكن، المستقبل الذي ستكتشف فيه مراكز البيانات الكمومية القوية خلف شبكات السحابة مثل AWS أو Azure فجأة علاجًا سحريًا لمرض عضال، أو تتوصل لمواد طاقة نظيفة حلم لحل مشكلة الاحتباس الحراري (على سبيل المثال، محفز يصنع الأمونيا من النيتروجين الجوي في درجة حرارة الغرفة)، يقترب بلا شك.\nنحن الآن في فجر مبكر يعادل حقبة ENIAC في الأربعينيات، عندما كانت أجهزة الكمبيوتر تعمل بالبطاقات المثقبة بينما جعلت حرارة الأنابيب المفرغة العملاقة الغرف شديدة الحرارة. ومع ذلك، يعمل كبار الباحثين والمهندسين في العالم بجد، ويتم الإبلاغ عن اختراقات تكنولوجية كل يوم تقريبًا. بفضل قدرتنا على مشاهدة تطور \u0026ldquo;فجر الحوسبة\u0026rdquo; الجديد هذا في الوقت الفعلي، يمكن القول إننا نعيش في حقبة مثيرة للغاية في التاريخ.\nباب عالم الكم ما زال في بداية انفتاحه. لا يمكننا أن نرفع أعيننا عن التطورات المستقبلية.\nتهدف هذه المقالة إلى شرح المفاهيم الأساسية للحوسبة الكمومية بطريقة سهلة الفهم لرجال الأعمال وعامة الناس المهتمين بالتكنولوجيا. يرجى ملاحظة أن بعض التعريفات الرياضية والفيزيائية الصارمة (مثل تفاصيل تدوين برا-كيت وسعات الاحتمال المركبة) قد تم تبسيطها.\n","date":"2026-09-05T22:10:00+09:00","image":"http://kenji.blog/p/quantum-computer-basics/quantum_basics_eyecatch_1788613712487_huf997c6e55368509d0617b56f68899854_1084950_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/quantum-computer-basics/","title":"【تحليل شامل】 ما هو الكمبيوتر الكمي؟ 〜مبادئ الحوسبة المطلقة من الصفر〜"},{"content":"مقدمة: \u0026ldquo;التهديد\u0026rdquo; الذي تشكله الحواسيب الكمومية على تقنيات التشفير في الوقت الحاضر، يتم حماية الغالبية العظمى من الاتصالات اليومية التي نجريها عبر الإنترنت - بدءًا من المدفوعات المصرفية عبر الإنترنت، وتصفح الويب (HTTPS)، وتبادل الرسائل في التطبيقات، وصولاً إلى معاملات البلوكشين والأصول المشفرة - بواسطة تقنية تُعرف باسم \u0026ldquo;تشفير المفتاح العام\u0026rdquo;. وعلى وجه التحديد، تشكل خوارزميات مثل تشفير RSA وتشفير المنحنى الإهليلجي (ECC) الأساس الذي تقوم عليه موثوقية المجتمع الرقمي الحديث.\nتعتمد طرق التشفير هذه في أمانها على مسائل رياضية معقدة مثل \u0026ldquo;تحليل الأعداد الأولية الكبيرة\u0026rdquo; أو \u0026ldquo;مسألة اللوغاريتم المتقطع\u0026rdquo;، والتي تستغرق وقتًا فلكيًا لحلها بواسطة الحواسيب الكلاسيكية الحالية (بما في ذلك الحواسيب الخارقة). ومع ذلك، مع التقدم السريع الذي أحرزته الحواسيب الكمومية في السنوات الأخيرة، فإن هذا الأساس سينهار تمامًا بمجرد وضعها موضع التنفيذ.\nفي عام 1994، نشر بيتر شور \u0026ldquo;خوارزمية شور\u0026rdquo;، والتي أثبتت رياضيًا أنه يمكن حل مسائل تحليل الأعداد الأولية واللوغاريتم المتقطع في وقت قصير جدًا باستخدام حاسوب كمومي ذي أداء كافٍ. وهذا يعني أن هناك خطرًا من أن جميع الاتصالات المشفرة التي تحمي الإنترنت اليوم سيتم فك تشفيرها في المستقبل (وهي مشكلة تعرف باسم Y2Q: سنوات حتى الكم، أو Q-Day).\nوما يزيد الأمر خطورة هو وجود أسلوب هجوم يُعرف باسم \u0026ldquo;احصد الآن، وفك التشفير لاحقًا (Harvest Now, Decrypt Later)\u0026rdquo; (أي سرقة البيانات الآن وتخزينها، وفك تشفيرها عندما يصبح التشفير قابلاً للكسر في المستقبل). فالبيانات التي يجب الحفاظ على سريتها لعقود، مثل أسرار الدولة، والملكية الفكرية للشركات، والمعلومات البيومترية للأفراد، ربما تكون بالفعل هدفًا للسرقة على افتراض أنه سيتم فك تشفيرها مستقبلاً.\nاستجابة لهذه الأزمة غير المسبوقة، يعمل خبراء التشفير ومعاهد الأبحاث في جميع أنحاء العالم بكل طاقتهم لتطوير تقنية تشفير من الجيل القادم قادرة على مقاومة هجمات الحواسيب الكمومية، وهي تشفير ما بعد الكم (PQC: Post-Quantum Cryptography) . في هذه المقالة، سنشرح بالتفصيل أساسيات PQC، وآليات الخوارزميات الرئيسية، وأحدث اتجاهات التوحيد القياسي العالمي التي يقودها المعهد الوطني الأمريكي للمعايير والتكنولوجيا (NIST).\nما هو تشفير ما بعد الكم (PQC)؟ يُعد تشفير ما بعد الكم (PQC) مصطلحًا شاملاً لخوارزميات التشفير المصممة للعمل على الحواسيب الكلاسيكية الحالية مع الاحتفاظ بالقدرة على مقاومة الهجمات من الحواسيب الكمومية واسعة النطاق في المستقبل (مثل خوارزمية شور).\nغالبًا ما يتم الخلط بين هذه التكنولوجيا و \u0026ldquo;التشفير الكمومي\u0026rdquo; أو \u0026ldquo;توزيع المفتاح الكمومي (QKD)\u0026quot;، إلا أنهما نهجان مختلفان تمامًا. فالتشفير الكمومي (QKD) هو تقنية تعتمد على الأجهزة تستخدم القوانين الفيزيائية لميكانيكا الكم (مثل خاصية تغير الحالة عند المراقبة) لجعل التنصت على مسار الاتصال مستحيلاً ماديًا. وهو يتطلب أليافًا بصرية خاصة أو معدات خاصة، ويواجه تحديات مثل تكلفة التنفيذ وقيود المسافة.\nمن ناحية أخرى، تُعد PQC تقنية تشفير تعتمد على البرامج وتستند بالكامل إلى \u0026ldquo;الرياضيات\u0026rdquo; . وبالتالي، يمكن دمجها كتحديث برمجي في البنية التحتية الحالية للإنترنت، والخوادم، والهواتف الذكية، والمتصفحات، وغيرها، مما يجعل قابليتها للتطبيق في العالم الحقيقي عالية جدًا. وتعتبر شركات تكنولوجيا المعلومات والوكالات الحكومية في جميع أنحاء العالم الآن أن استبدال (ترحيل) خوارزميات RSA و ECC المستخدمة حاليًا بتقنية PQC هذه يمثل أولوية قصوى.\nالمناهج الرياضية الرئيسية الأربعة التي تدعم PQC تم اقتراح العديد من خوارزميات PQC بناءً على مسائل رياضية يصعب حلها بكفاءة حتى باستخدام الحواسيب الكمومية (مثل المسائل صعبة الحل NP-hard). نستعرض هنا الفئات الأربع الرئيسية السائدة حاليًا.\nالمناهج الرئيسية لتشفير ما بعد الكم (PQC) 1 2 3 4 5 6 7 8 9 10 11 12 graph LR PQC[تشفير ما بعد الكم PQC] --\u0026gt; L[التشفير القائم على الشبكة Lattice-based] PQC --\u0026gt; H[التشفير القائم على التجزئة Hash-based] PQC --\u0026gt; M[تشفير متعدد المتغيرات Multivariate] PQC --\u0026gt; C[التشفير القائم على الكود Code-based] L --\u0026gt; L1(FIPS 203: ML-KEM) L --\u0026gt; L2(FIPS 204: ML-DSA) H --\u0026gt; H1(FIPS 205: SLH-DSA) style PQC fill:#f9f,stroke:#333,stroke-width:2px 1. التشفير القائم على الشبكة (Lattice-based Cryptography) يُعد التشفير القائم على الشبكة حاليًا التوجه الأبرز والأكثر الواعدة في مجال PQC. يعتمد هذا التشفير في أمانه على المسائل المتعلقة بالنقاط المرتبة بانتظام (نقاط الشبكة) في المساحات متعددة الأبعاد. تشمل المسائل الشهيرة \u0026ldquo;مسألة أقصر متجه (SVP)\u0026rdquo; و \u0026ldquo;مسألة التعلم مع الأخطاء (LWE)\u0026rdquo;.\nنظرة عامة على الآلية: تخيل عددًا لا يحصى من النقاط المرتبة في نمط شبكي في مساحة عالية الأبعاد (مئات إلى آلاف الأبعاد). من السهل العثور على نقطة شبكة معينة في بعدين أو ثلاثة أبعاد، ولكن في مئات الأبعاد، لم يتم العثور على خوارزمية فعالة للعثور عليها سواء للحواسيب الكلاسيكية أو الكمومية. وتستفيد مسألة LWE تحديدًا من الخاصية التي تنص على أن \u0026ldquo;إضافة \u0026lsquo;ضوضاء (خطأ)\u0026rsquo; صغيرة عمدًا إلى نظام من المعادلات الخطية يجعل تخمين المتغيرات الأصلية أمرًا بالغ الصعوبة\u0026rdquo;.\nالمزايا:\nقابل للتطبيق لكل من تبادل المفاتيح (KEM) والتوقيعات الرقمية. سرعة المعالجة عالية جدًا (تكون أحيانًا أسرع من RSA أو ECC). حجم المفتاح والنص المشفر صغير نسبيًا، مما يجعله متوازنًا. تعتمد معظم الخوارزميات التي تقوم NIST بتوحيدها حاليًا (مثل ML-KEM و ML-DSA) على هذا التشفير القائم على الشبكة.\n2. التشفير القائم على التجزئة (Hash-based Cryptography) التشفير القائم على التجزئة هو خوارزمية PQC مخصصة للتوقيعات الرقمية. يعتمد أمانها حصريًا على مقاومة الاصطدام والاتجاه الواحد لـ \u0026ldquo;وظائف التجزئة التشفيرية\u0026rdquo; الآمنة، مثل SHA-2 أو SHA-3.\nنظرة عامة على الآلية: يبدأ الأمر بمخطط توقيع يُستخدم لمرة واحدة يُسمى \u0026ldquo;توقيع لامبورت (Lamport Signature)\u0026quot;، والذي لا يمكن استخدامه إلا مرة واحدة. من خلال تجميع هذه التوقيعات في بنية بيانات شجرية تسمى \u0026ldquo;شجرة ميركل (Merkle Tree)\u0026quot;، فإنها تتيح توقيعات متعددة باستخدام زوج مفاتيح واحد.\nالمزايا:\nأساس الأمان قوي للغاية، مع إثبات قوي على أنه \u0026ldquo;طالما كانت وظيفة التجزئة آمنة، فهو آمن\u0026rdquo;. نظرًا لقلة الاعتماد على الهياكل الرياضية، فإن خطر العثور على طرق غير متوقعة لكسر التشفير منخفض جدًا. العيوب:\nلا يمكن استخدامه لتبادل المفاتيح (KEM)، فقط للتوقيعات الرقمية. يميل حجم التوقيع إلى أن يكون كبيرًا. توجد إصدارات \u0026ldquo;تحتفظ بالحالة (stateful)\u0026rdquo; و \u0026ldquo;بدون حالة (stateless)\u0026rdquo;. تمثل الإصدارات التي تحتفظ بالحالة (مثل XMSS) تحديًا كبيرًا في التنفيذ نظرًا للحاجة إلى إدارة عدد مرات استخدام المفاتيح بدقة. قامت NIST بتوحيد \u0026ldquo;SLH-DSA (سابقًا SPHINCS+)\u0026rdquo; كمعيار لتوقيعات التجزئة بدون حالة.\n3. التشفير متعدد المتغيرات (Multivariate Cryptography) يعتمد التشفير متعدد المتغيرات في أمانه على صعوبة حل أنظمة المعادلات التربيعية المتعددة التي تحتوي على العديد من المتغيرات (مسألة MQ: Multivariate Quadratic problem). من المعروف أن هذه المسألة صعبة الحل (NP-hard).\nنظرة عامة على الآلية: يقوم المرسل بإنشاء نص مشفر (توقيع) عن طريق تعويض النص العادي (أو قيمة التجزئة) في معادلة معقدة ذات متغيرات متعددة يتم توفيرها كمفتاح عام. يمتلك المتلقي الشرعي \u0026ldquo;معلومات مخفية (باب خلفي) تحول بنية المعادلة إلى شكل يسهل حله\u0026rdquo; كمفتاح سري، ويستخدمه لفك التشفير (أو التحقق من التوقيع).\nالمزايا:\nحجم التوقيع صغير جدًا. سرعة التحقق من التوقيع سريعة للغاية. مناسب لأجهزة إنترنت الأشياء (IoT) ذات الموارد المحدودة. العيوب:\nحجم المفتاح العام كبير جدًا (قد يصل إلى عشرات أو مئات الكيلوبايت). في الماضي، تم اختراق بعض الخوارزميات البارزة (مثل Rainbow) بواسطة هجمات كلاسيكية، مما يجعل بناء الثقة في أمانها أصعب قليلاً مقارنة بالطرق الأخرى. 4. التشفير القائم على الكود (Code-based Cryptography) التشفير القائم على الكود هو تطبيق لنظرية \u0026ldquo;أكواد تصحيح الأخطاء\u0026rdquo; المستخدمة لتصحيح الأخطاء في قنوات الاتصال في مجال التشفير. يعتبر \u0026ldquo;تشفير ماك إيليس (McEliece Cryptography)\u0026rdquo; المقترح في عام 1978 هو الأكثر شهرة، وهو أحد أقدم التقنيات في مجال PQC.\nنظرة عامة على الآلية: يقوم المرسل بتشفير النص العادي باستخدام المفتاح العام للمتلقي (مصفوفة التوليد لكود تصحيح الأخطاء التي تخفي بنية معينة)، ويضيف أخطاءً متعمدة (ضوضاء) قبل الإرسال. يستخدم المتلقي المفتاح السري لإزالة الأخطاء واستخراج النص العادي. ويجب على المهاجم تصحيح الأخطاء من كود عشوائي دون معرفة بنيته، وهو ما يسمى \u0026ldquo;مسألة فك تشفير المتلازمة العامة\u0026rdquo; وهي مثبتة كمسألة صعبة الحل (NP-hard).\nالمزايا:\nتمت دراسته بدقة لأكثر من 40 عامًا دون العثور على هجمات فعالة، مما يضمن موثوقية عالية للأمان. سرعة عالية في عمليات التشفير وفك التشفير. العيوب:\nحجم المفتاح العام كبير جدًا (قد يصل إلى عدة ميغابايت). وبالتالي، يصعب استخدامه في البيئات ذات النطاق الترددي أو الذاكرة المحدودة (مثل مصافحة بروتوكول TLS). أحدث اتجاهات التوحيد القياسي لـ PQC من قبل NIST أطلق المعهد الوطني الأمريكي للمعايير والتكنولوجيا (NIST) دعوة عالمية لتقديم خوارزميات تشفير ما بعد الكم من الجيل القادم في عام 2016، وأجرى جولات متعددة من التقييم الصارم على مدى سنوات عديدة.\nفي عام 2024، أعلنت NIST أخيرًا عن الخوارزميات الثلاث التالية كمعايير لمعالجة المعلومات الفيدرالية (FIPS) الرسمية. وهذا يضع أساسًا قويًا للمؤسسات في جميع أنحاء العالم للبدء في تنفيذها في بيئات الإنتاج.\nمعايير FIPS المعتمدة (2024) FIPS 203: ML-KEM (سابقًا CRYSTALS-Kyber)\nالغرض: آلية تغليف المفتاح (KEM) / التشفير وتبادل المفاتيح التقنية الأساسية: التشفير القائم على الشبكة (Module-LWE) الميزات: يوفر توازنًا ممتازًا بين حجم المفتاح والسرعة، وسيعمل كمعيار افتراضي لتبادل مفاتيح PQC في تطبيقات الإنترنت العامة مثل اتصالات الويب (TLS) وتطبيقات المراسلة الآمنة. FIPS 204: ML-DSA (سابقًا CRYSTALS-Dilithium)\nالغرض: التوقيع الرقمي التقنية الأساسية: التشفير القائم على الشبكة (Module-LWE) الميزات: المعيار الرئيسي للتوقيعات الرقمية. يوفر معالجة فعالة، وسيصبح المعيار الجديد لجميع حالات استخدام التوقيع الإلكتروني، مثل توقيع البرامج والمصادقة على المستندات. FIPS 205: SLH-DSA (سابقًا SPHINCS+)\nالغرض: التوقيع الرقمي التقنية الأساسية: التشفير القائم على التجزئة (بدون حالة) الميزات: يلعب دورًا مهمًا كخيار احتياطي في حالة اكتشاف ثغرات أمنية في التشفير القائم على الشبكة في المستقبل. ورغم أن حجم التوقيع أكبر، إلا أنه مناسب للاستخدامات التي تتطلب موثوقية طويلة المدى. السعي نحو مزيد من التنوع بينما أنهت NIST عملية التوحيد القياسي الأولية، فإنها تواصل البحث عن خوارزميات إضافية. ونظرًا لأن المعايير تميل بشكل كبير نحو \u0026ldquo;التشفير القائم على الشبكة\u0026rdquo;، يعتبر ضمان \u0026ldquo;تنوع التشفير (Crypto Diversity)\u0026rdquo; أمرًا بالغ الأهمية. ويجري تقييم التشفير القائم على الكود وغيرها كمعايير احتياطية لتبادل المفاتيح، مما سيعزز من قوة أساس PQC في المستقبل.\nسيناريوهات وتحديات الانتقال إلى PQC: أهمية \u0026ldquo;رشاقة التشفير\u0026rdquo; مع إصدار المعايير الرسمية من قبل NIST، ستعمل الوكالات الحكومية والمؤسسات المالية وشركات التكنولوجيا في جميع أنحاء العالم على تسريع انتقالها (الهجرة) من RSA/ECC الحالي إلى PQC. كما توصي المبادئ التوجيهية الصادرة عن وكالة الأمن القومي الأمريكية (NSA) وغيرها بالانتهاء من الانتقال في وقت مبكر.\nاعتماد النهج الهجين نظرًا لأن خوارزميات PQC جديدة، فإنها لم تخضع لـ \u0026ldquo;اختبار الزمن\u0026rdquo; مثل التشفير الكلاسيكي. وبالنظر إلى مخاطر الأخطاء الخفية في التنفيذ أو اكتشاف أساليب هجوم جديدة، يوصى باتباع \u0026ldquo;النهج الهجين\u0026rdquo; خلال الفترة الانتقالية. يجمع هذا الأسلوب بين تقنيات التشفير الحالية والمثبتة (مثل ECDHE) مع خوارزميات PQC الجديدة (مثل ML-KEM) لتبادل المفاتيح. في الوقت الحالي، يتم اختبار هذا النهج بشكل متسارع في المتصفحات والخدمات السحابية الرئيسية.\nتحقيق رشاقة التشفير (Crypto-Agility) إن أهم شيء يجب على الشركات ومطوري الأنظمة إدراكه للمضي قدمًا هو ضمان \u0026ldquo;رشاقة التشفير (Crypto-Agility)\u0026rdquo; . من الضروري تصميم بنية مرنة تسمح بتبديل خوارزميات التشفير أو تحديثها بسرعة دون إيقاف النظام في حالة اكتشاف عيوب في الخوارزمية أو ظهور معايير جديدة.\nيعد إنشاء قائمة مواد التشفير (CBOM: Cryptography Bill of Materials) لفهم \u0026ldquo;أين\u0026rdquo; و \u0026ldquo;أي تشفير\u0026rdquo; و \u0026ldquo;لأي غرض\u0026rdquo; يتم استخدامه داخل الأنظمة الداخلية بدقة، بمثابة خطوة أولى مهمة نحو الانتقال إلى PQC.\nالخاتمة: الاستعداد لـ \u0026ldquo;Q-Day\u0026rdquo; القادم في حين أن تطور الحواسيب الكمومية سيجلب فوائد هائلة للبشرية، فإنه يشكل أيضًا التهديد الأكبر لأمن التشفير الذي يمثل أساس مجتمعنا الرقمي الحالي. لم يعد تشفير ما بعد الكم (PQC) مجرد \u0026ldquo;موضوع بحثي للمستقبل البعيد\u0026rdquo;. فبعد الإنجاز المتمثل في إصدار معايير FIPS من قبل NIST، دخلت PQC الآن مرحلة التوسع في \u0026ldquo;التنفيذ والانتقال\u0026rdquo;.\nبالنظر إلى تهديد \u0026ldquo;احصد الآن، وفك التشفير لاحقًا\u0026rdquo;، فإن الانتقال إلى PQC هو أولوية قصوى يجب أن تبدأ \u0026ldquo;الآن\u0026rdquo; لأي مؤسسة تتعامل مع بيانات حساسة. دعونا نتجاوز عصر الحواسيب الكمومية القادم بأمان من خلال الفهم العميق لتقنيات تشفير الجيل القادم وتعزيز رشاقة التشفير في أنظمتنا.\n","date":"2026-09-05T22:09:22+09:00","image":"http://kenji.blog/p/post-quantum-cryptography/post_quantum_cryptography_1788613735417_hu9d405d830ed3e56e9e703ab601cf6c0a_1143219_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/post-quantum-cryptography/","title":"【PQC】الصورة الكاملة لـ \"تشفير ما بعد الكم\" تشفير الجيل القادم في عصر الحوسبة الكمومية"},{"content":"مقدمة: تقاطع التشفير والحواسيب الكمومية في مجتمع الإنترنت الحديث، \u0026ldquo;تشفير المفتاح العام\u0026rdquo; هو الأساس لحماية سرية الاتصالات. وأبرزها \u0026ldquo;تشفير RSA\u0026rdquo; الذي طوره كل من رون ريفست (Ron Rivest)، آدي شامير (Adi Shamir)، وليونارد أدلمان (Leonard Adleman) في عام 1977. من مدفوعات التسوق عبر الإنترنت التي نستخدمها يوميًا، إلى تصفح مواقع الويب (HTTPS)، وإرسال واستقبال رسائل البريد الإلكتروني، يعمل تشفير RSA كقلب البنية التحتية للإنترنت.\nولكن، مع ظهور \u0026ldquo;الحواسيب الكمومية\u0026rdquo;، تمت الإشارة إلى احتمال أن هذا الأمان قد يُدمر من جذوره. في وسائل الإعلام، تظهر أحيانًا عناوين مثيرة مثل \u0026ldquo;بمجرد اكتمال الحاسوب الكمومي، سيتم فك تشفير جميع كلمات المرور والتشفيرات في العالم في ثوانٍ\u0026rdquo;. هل هذا صحيح حقًا؟\nفي هذه المقالة، سنتعمق في آليات GNFS (منخل حقل الأعداد العام) كطريقة فك تشفير كلاسيكية، والنسخة النهائية لخوارزمية فك التشفير باستخدام الحواسيب الكمومية، وهي \u0026ldquo;خوارزمية شور\u0026rdquo; (Shor\u0026rsquo;s Algorithm). سنشرح المفاهيم المتقدمة مثل تحويل فورييه الكمومي واكتشاف الدورة بطريقة سهلة الفهم، وسنحقق بالتفصيل في الوضع الحالي للأجهزة الكمومية في عصر NISQ (Noisy Intermediate-Scale Quantum) والعقبات الحقيقية لكسر RSA-2048.\nأساس تشفير RSA: صعوبة التحليل إلى العوامل الأولية يعتمد أمان تشفير RSA على عدم تناسق بسيط للغاية في الرياضيات. وهي حقيقة أنه \u0026ldquo;من السهل ضرب عددين أوليين ضخمين، ولكن من الصعب للغاية العثور على العددين الأوليين الأصليين (التحليل إلى عوامل أولية) من النتيجة المضروبة (الرقم المركب)\u0026rdquo;.\nعلى سبيل المثال، لنفترض أن لدينا عددين أوليين $ p = 61 $ و $ q = 53 $. حساب الضرب $ N = p \\times q = 3233 $ يستغرق لحظة. ومع ذلك، إذا أُعطيت الرقم \u0026ldquo;3233\u0026rdquo; فقط وطُلب منك \u0026ldquo;ما هما العددان الأوليان اللذان مضروبهما يساوي هذا الرقم؟\u0026quot;، سيزداد حجم الحساب بشكل انفجاري كلما كبر الرقم.\nفي RSA-2048 السائد حاليًا، يتم استخدام رقم مركب ضخم $ N $ بطول مفتاح 2048 بت، أي حوالي 617 رقمًا عشريًا. إذا أمكن تحليل $ N $ هذا إلى عوامله الأولية، فسيكون التشفير قد تم كسره.\nتحدي الحواسيب الكلاسيكية: GNFS (منخل حقل الأعداد العام) لحل مشكلة التحليل إلى العوامل، طور علماء الرياضيات والتشفير خوارزميات مختلفة على مر السنين. من بينها، أسرع خوارزمية للحواسيب الكلاسيكية حاليًا هي ** منخل حقل الأعداد العام (GNFS: General Number Field Sieve) **.\nGNFS هي طريقة لتحليل عدد ضخم $ N $ عن طريق توسيع الحسابات في حلقة الأعداد الصحيحة إلى حقل جبري أكثر تجريدًا (Number Field). التدفق العام كالتالي:\n** اختيار متعددة الحدود **: ابحث عن متعددة حدود $ f(x) $ بدرجة ومعاملات مناسبة، بحيث يكون $ N $ جذرًا لها. ** جمع البيانات (الغربلة) **: ابحث عن عدد كبير من أزواج الأرقام التي يمكن تقسيمها إلى أعداد أولية صغيرة (أرقام سلسة، Smooth numbers) فوق حقل الأعداد المنطقية والحقول الجبرية. تُعرف هذه العملية بـ \u0026ldquo;الغربلة\u0026rdquo; وهي الجزء الذي يستغرق وقتًا أطول. ** توليد المصفوفة وتقليلها **: قم بإنشاء مصفوفة متناثرة ضخمة (مصفوفة معظم عناصرها 0) بناءً على العلاقات المجمعة، واعثر على الحل باستخدام طرق الجبر الخطي (مثل طريقة بلوك-لانكزوس). ** حساب الجذر التربيعي **: أخيرًا، احسب الجذر التربيعي على الحقل الجبري، واستخرج عوامل (العوامل الأولية) $ N $. يُقدّر تعقيد الحساب لـ GNFS بشكل غير تقاربي بـ $ O(\\exp((\\sqrt[3]{\\frac{64}{9}} + o(1)) (\\log N)^{\\frac{1}{3}} (\\log \\log N)^{\\frac{2}{3}})) $. يُسمى هذا تعقيد الوقت \u0026ldquo;شبه الأسي\u0026rdquo; (Sub-exponential). على الرغم من أنه أسرع من الوقت الأسي، إلا أنه أبطأ بكثير من الوقت متعدد الحدود (Polynomial time).\nفي الواقع، في عام 2020، نجح فريق بحث دولي في تحليل RSA-250 (رقم مركب من 829 بت، 250 رقمًا) باستخدام GNFS. استغرق هذا الحساب وقتًا هائلاً يقدر بحوالي 2700 سنة أساسية (CPU core years) بجمع موارد الحوسبة من جميع أنحاء العالم. ومع ذلك، عندما يتعلق الأمر بـ 2048 بت، يُقال إن الحساب المطلوب سيتضخم إلى تريليونات من أضعاف عمر الكون، وبغض النظر عن عدد أجهزة الكمبيوتر العملاقة الحالية التي تعمل بالتوازي، فمن المستحيل كسرها في وقت واقعي باستخدام الطرق الكلاسيكية.\nورقة الحواسيب الكمومية الرابحة: خوارزمية شور هنا تبرز \u0026ldquo;خوارزمية شور\u0026rdquo;، التي نشرها بيتر شور (Peter Shor) في عام 1994. كانت هذه الخوارزمية رائدة لأنها يمكن أن تحل مشكلة التحليل إلى العوامل الأولية على حاسوب كمومي في ** وقت متعدد الحدود ** ( $ O((\\log N)^3) $ ). الفرق بين الوقت شبه الأسي والوقت متعدد الحدود حاسم، ومن الناحية النظرية، يعني ذلك أن استخدام الحواسيب الكمومية سيدمر تشفير RSA تمامًا.\nالتدفق العام لخوارزمية شور 1 2 3 4 5 6 7 8 9 10 graph TD A[إدخال الرقم N المراد تحليله] --\u0026gt; B[اختيار عدد صحيح عشوائي a] B --\u0026gt; C{القاسم المشترك الأكبر\u0026lt;br\u0026gt;لـ a و N} C --\u0026gt;|أكبر من 1| D[لحسن الحظ تم اكتشاف العامل الأولي!] C --\u0026gt;|1 أوليان نسبيًا| E[دور الحاسوب الكمومي] E --\u0026gt; F[إيجاد الدورة r للدالة f_x = a^x mod N\u0026lt;br\u0026gt;بواسطة تحويل فورييه الكمومي] F --\u0026gt; G{الدورة r زوجية و\u0026lt;br\u0026gt;a^r/2 ≢ -1 mod N} G --\u0026gt;|نعم| H[حساب القاسم المشترك الأكبر gcd_a^r/2 ± 1, N] H --\u0026gt; I((نجاح التحليل!)) G --\u0026gt;|لا| B لا تحل خوارزمية شور مشكلة التحليل بشكل مباشر، بل تتخذ نهجًا يستخدم نظريات نظرية الأعداد لتحويلها إلى مشكلة أخرى تسمى \u0026ldquo;مشكلة اكتشاف الدورة\u0026rdquo; (Period Finding Problem)، ثم تحلها بسرعة باستخدام خصائص الحواسيب الكمومية.\nالخطوة 1: التحويل من التحليل إلى مشكلة اكتشاف الدورة (المعالجة الكلاسيكية) تتم الخطوة الأولى من الخوارزمية على حاسوب كلاسيكي. بالنسبة للرقم $ N $ الذي تريد تحليله، اختر رقمًا صحيحًا عشوائيًا $ a $ ($ 1 \u003c a \u003c N $) يكون أوليًا نسبيًا مع $ N $ (القاسم المشترك الأكبر هو 1). إذا حدث صدفة ألا يكون القاسم المشترك الأكبر 1، فإن القاسم المشترك الموجود هو العامل الأولي لـ $ N $ ويكتمل التشفير، لكن الاحتمال منخفض للغاية.\nبعد ذلك، نعتبر تسلسل المعادلة المعيارية التالية: $ f(x) = a^x \\pmod N $\nعند تعويض $ x = 1, 2, 3, \\dots $ في هذه الدالة $ f(x) $، تبدو القيم عشوائية، ولكن لأن الحساب يتم ضمن نطاق محدود، فإنها ستعود بالتأكيد إلى القيمة الأصلية في مكان ما، وتكرر نفس التسلسل. تُسمى فترة هذا التكرار بـ $ r $. بمعنى آخر، $ a^r \\equiv 1 \\pmod N $ مشكلة العثور على أصغر عدد صحيح موجب $ r $ يلبي هذه المعادلة هي \u0026ldquo;مشكلة اكتشاف الدورة\u0026rdquo;.\nإذا تم العثور على هذه الدورة $ r $ وكانت $ r $ عددًا زوجيًا، فإن $ a^r - 1 \\equiv 0 \\pmod N $، وبواسطة صيغة التحليل $ (a^{r/2} - 1)(a^{r/2} + 1) \\equiv 0 \\pmod N $ يمكن تحويلها. من هنا، باستخدام خوارزمية إقليدس لحساب القاسم المشترك الأكبر لـ $ N $ و $ a^{r/2} \\pm 1 $، يمكن الحصول على العوامل الأولية لـ $ N $ باحتمالية عالية جدًا.\nالعثور على الدورة $ r $ باستخدام حاسوب كلاسيكي يتطلب في النهاية خطوات أسية ولا يمكن تسريعه. ولكن مع الحاسوب الكمومي، يمكن العثور على الدورة $ r $ في لحظة (في وقت متعدد الحدود).\nالخطوة 2: تحضير الحالة الكمومية والتراكب من هنا يبدأ دور الحاسوب الكمومي. تستخدم الحواسيب الكمومية \u0026ldquo;الكيوبتات\u0026rdquo; (Qubits) التي يمكن أن تمتلك حالتي \u0026ldquo;0\u0026rdquo; و \u0026ldquo;1\u0026rdquo; في نفس الوقت. في خوارزمية شور، يتم إعداد سجلين: سجل لتخزين المدخلات (السجل الأول) وسجل لتخزين نتائج الحساب (السجل الثاني).\nأولاً، نطبق عملية بوابة كمومية تسمى بوابة هادامارد (Hadamard gate) على جميع الكيوبتات في السجل الأول. نتيجة لذلك، يصبح السجل الأول في ** حالة تراكب متساوية ** لجميع قيم $ x $ الممكنة (من $ 0 $ إلى $ 2^n-1 $. حيث $ n $ هو عدد كبير كافٍ من البتات).\nبمعنى آخر، داخل الحاسوب الكمومي، يتم إنشاء حالة تتواجد فيها عدد لا يحصى من قيم الإدخال $ x=0, 1, 2, 3, \\dots $ في نفس الوقت والتوازي.\nالخطوة 3: الأس المعياري الكمومي (Quantum Modular Exponentiation) بعد ذلك، باستخدام حالة التراكب في السجل الأول كمدخل، يتم حساب $ f(x) = a^x \\pmod N $ ويتم تخزين النتيجة في السجل الثاني. نظرًا لأن هذا الحساب يتم كتحويل وحدوي (Unitary transformation) على الدائرة الكمومية، يتم حساب $ f(x) $ لجميع قيم $ x $ \u0026ldquo;في وقت واحد (التوازي الكمومي)\u0026rdquo; مع الحفاظ على التراكب.\nمساحة النظام الكمومي بأكمله في هذه المرحلة هي، $ |x, a^x \\bmod N\\rangle $ تراكب هائل للحالات.\nولكن، إذا قمنا ببساطة بقياس (رصد) السجل الثاني هنا، فسيتم اختيار قيمة واحدة عشوائية لـ $ a^x \\bmod N $ احتماليًا، وبشكل متصل، سيتم تحديد $ x $ السجل الأول أيضًا بقيمة واحدة. هذا يعادل الحساب مرة واحدة على حاسوب كلاسيكي، ولن نتمكن من العثور على الدورة $ r $.\nوفقًا لقواعد ميكانيكا الكم، لا يمكننا النظر مباشرة داخل حالة التراكب. إذن، كيف نستخرج المعلومات العالمية المتمثلة في \u0026ldquo;الدورة\u0026rdquo; الشاملة؟\nالخطوة 4: تحويل فورييه الكمومي (QFT: Quantum Fourier Transform) الجوهر الحقيقي لخوارزمية شور لاختراق هذا الجدار هو تطبيق ** تحويل فورييه الكمومي (QFT) ** على السجل الأول.\nقبل إجراء القياس، نقوم بتحليل الخصائص الموجية للدالة $ f(x) $. لنفترض أننا رصدنا السجل الثاني. وحصلنا على قيمة معينة $ y $. عندئذٍ، ستتقلص حالة السجل الأول إلى \u0026ldquo;تراكب لجميع قيم $ x $ بحيث يكون $ a^x \\pmod N = y $\u0026rdquo;. ستصطف قيم $ x $ هذه بشكل منفصل بفترات دورية $ r $ مثل $ x_0, x_0 + r, x_0 + 2r, x_0 + 3r, \\dots $ (نوع من التوزيع الاحتمالي على شكل مشط).\nنطبق تحويل فورييه الكمومي (QFT) على هذه الحالة. كما يحول تحويل فورييه المنفصل الكلاسيكي الإشارات في المجال الزمني إلى مجال التردد، يتسبب QFT في حدوث تداخل في السعات الاحتمالية للحالة الكمومية.\nعند تطبيق QFT، بسبب تأثيرات التداخل الكمومي، تلغي احتمالات الإجابات الخاطئة التي لا يتردد صداها مع الدورة $ r $ (تكون الأطوار غير متوافقة) بعضها البعض وتقترب من الصفر (تداخل هدام)، بينما يتم تضخيم احتمال الإجابة الصحيحة فقط التي تحمل معلومات الدورة $ r $ (تداخل بناء).\nالخطوة 5: القياس وتوسيع الكسر المستمر (المعالجة الكلاسيكية البعدية) عند قياس السجل الأول بعد تطبيق QFT، سنحصل باحتمالية عالية جدًا على عدد صحيح $ c $ قريب من الصيغة $ c \\approx \\frac{j \\cdot 2^n}{r} $ ($ j $ عدد صحيح غير معروف، $ 2^n $ هو حجم السجل).\nنعيد نتيجة القياس هذه $ c $ إلى حاسوب كلاسيكي، وننشئ الكسر $ \\frac{c}{2^n} \\approx \\frac{j}{r} $. ثم باستخدام الطريقة الرياضية \u0026ldquo;توسيع الكسر المستمر\u0026rdquo; (Continued fraction expansion) لحساب التقريب، يمكننا استخراج القاسم، وهو الدورة $ r $ بنجاح.\nإذا عرفنا $ r $، نستخدم صيغة الخطوة 1 لحساب عوامل $ N $، وبذلك يتم كسر تشفير RSA تمامًا.\nالقدرة الحالية للحواسيب الكمومية (NISQ) والتحديات على الرغم من أن خوارزمية شور مثالية نظريًا، إلا أن الإجابة على سؤال \u0026ldquo;هل سيتم كسر تشفير RSA غدًا؟\u0026rdquo; هي \u0026ldquo;لا\u0026rdquo; بوضوح. يكمن السبب في حدود تكنولوجيا الأجهزة للحواسيب الكمومية الحالية.\nعصر NISQ (Noisy Intermediate-Scale Quantum) الزمن الذي نعيش فيه الآن هو عصر يسمى \u0026ldquo;NISQ\u0026rdquo;. تمتلك أجهزة NISQ العشرات إلى المئات من الكيوبتات المادية، لكنها ضعيفة للغاية أمام الضوضاء.\nالكيوبتات عرضة لتأثيرات البيئة الخارجية مثل الحرارة والموجات الكهرومغناطيسية، وكثيراً ما يحدث \u0026ldquo;فك الترابط\u0026rdquo; (فقدان التشابك الكمومي) حيث تنهار الحالة الكمومية، و \u0026ldquo;أخطاء البوابات\u0026rdquo; أثناء عمليات البوابات. عند محاولة تنفيذ دوائر كمومية عميقة جدًا (مع عدد هائل من خطوات العمليات) مثل خوارزمية شور، تتراكم الأخطاء أثناء الحساب، ويصبح الناتج النهائي مجرد ضوضاء عشوائية لا معنى لها.\nالكيوبتات المادية والكيوبتات المنطقية لحل مشكلة الخطأ هذه، لا غنى عن \u0026ldquo;تصحيح الخطأ الكمومي\u0026rdquo; (Quantum Error Correction). تُستخدم أكواد تصحيح الأخطاء في الحواسيب الكلاسيكية أيضًا، ولكن نظرًا لوجود \u0026ldquo;نظرية عدم الاستنساخ الكمومي\u0026rdquo; التي تمنع نسخ الحالات الكمومية، فإن تصحيح الأخطاء الكمومية معقد للغاية.\nفي تصحيح الخطأ الكمومي، باستخدام تقنيات مثل \u0026ldquo;الكود السطحي\u0026rdquo; (Surface Code)، من خلال دمج العديد من \u0026ldquo;الكيوبتات المادية\u0026rdquo; المليئة بالضوضاء، يتم إنشاء \u0026ldquo;كيوبت منطقي\u0026rdquo; واحد مثالي خالٍ من الأخطاء.\nبافتراض معدلات الخطأ الحالية، يُقدر أن هناك حاجة إلى ما بين 1000 إلى 10000 كيوبت مادي لإنشاء كيوبت منطقي واحد. يُطلق على هذا اسم \u0026ldquo;عبء تصحيح الخطأ\u0026rdquo; (Overhead).\nما هي الموارد المطلوبة لكسر RSA-2048؟ إذن، لتشغيل خوارزمية شور لكسر RSA-2048 فعليًا، ما مقدار الموارد المطلوبة؟\nوفقًا للتقدير المرجعي للموارد في ورقة عام 2021 التي قدمها كريج جيدني (Craig Gidney) (جوجل) ومارتن إكيرا (Martin Ekerå)، عند استخدام خوارزمية شور المُحسّنة وإجراء تصحيح الأخطاء باستخدام الكود السطحي، ستكون هناك حاجة للموارد التالية:\n** عدد الكيوبتات المنطقية **: حوالي 4,096 ** عدد الكيوبتات المادية **: ** حوالي 20 مليون ** (بافتراض معدل خطأ بنسبة $10^{-3}$) ** وقت الحساب **: حوالي 8 ساعات (ملايين إلى مليارات عمليات البوابات المادية مطلوبة) بالمقارنة مع هذا، ما هو المستوى الذي وصلت إليه الأجهزة الكمومية الحالية؟ يبلغ المعالج الكمومي فائق التوصيل \u0026ldquo;Condor\u0026rdquo; الذي أعلنت عنه شركة IBM في أواخر عام 2023 حوالي 1,121 كيوبت. ظهرت أيضًا أبحاث رائدة في توليد الكيوبتات المنطقية (مثل توليد 48 كيوبتًا منطقيًا باستخدام حاسوب كمومي للذرات المتعادلة بواسطة جامعة هارفارد وشركة QuEra)، لكننا لم نصل بعد إلى مرحلة يمكن فيها تشغيل \u0026ldquo;عمليات مثالية بدون ضوضاء\u0026rdquo; بشكل مستمر لفترات طويلة.\nلتوسيع النطاق من بضعة آلاف من الكيوبتات المادية إلى ** 20 مليون ** كيوبت مادي عملي (نظام متصل ببعضه البعض، يعمل باستقرار في درجات حرارة منخفضة للغاية، ويعالج إشارات التحكم بسرعة فائقة)، توجد حواجز هندسية هائلة (مشاكل الأسلاك، قيود قدرة التبريد، تضخم إلكترونيات التحكم). يتوقع العديد من الخبراء أن الأمر سيستغرق ما لا يقل عن 10 إلى 30 عامًا، أو ربما أكثر، لتحقيق \u0026ldquo;حاسوب كمومي متسامح مع الأخطاء (FTQC)\u0026rdquo; قادر على فك تشفير RSA-2048.\nتهديد \u0026ldquo;Store Now, Decrypt Later\u0026rdquo; الخفي وفجر PQC من السابق لأوانه الاعتقاد أنه \u0026ldquo;نحن في أمان لأن الأمر سيستغرق أكثر من 10 سنوات\u0026rdquo;. يوجد حاليًا بيانات مثل أسرار الدولة، البيانات الطبية، وتصميم البنية التحتية طويلة الأمد التي يجب ضمان سريتها لعقود قادمة.\nما يُثير القلق هنا هو تقنية الهجوم ** \u0026ldquo;Store Now, Decrypt Later\u0026rdquo; (احفظ الآن، فك التشفير لاحقًا) **. تقوم دول أو منظمات خبيثة باعتراض جميع بيانات الاتصال المشفرة حاليًا بـ RSA أو ECC (تشفير المنحنى الإهليلجي) وتخزينها في مساحة التخزين. ثم بعد 10 أو 20 عامًا، بمجرد اكتمال حاسوب كمومي قوي، يستخدمون خوارزمية شور لفك تشفير جميع البيانات السابقة وكشف الأسرار.\nلمواجهة تهديد الفجوة الزمنية هذا، وبقيادة NIST (المعهد الوطني للمعايير والتكنولوجيا الأمريكي)، تم تسريع عملية توحيد معايير ** \u0026ldquo;التشفير ما بعد الكمي\u0026rdquo; (PQC: Post-Quantum Cryptography) **.\nPQC هي خوارزميات تشفير جديدة تستند إلى مسائل رياضية يصعب حلها حتى باستخدام الحواسيب الكمومية (بمعنى آخر، لا يمكن تطبيق خوارزمية شور عليها). تشمل الأساليب الرئيسية ما يلي:\n** التشفير القائم على الشبكة (Lattice-based cryptography) **: يعتمد على مشاكل مثل LWE (التعلم مع الأخطاء). هو السائد في توحيد معايير NIST (مثل Kyber، Dilithium). ** التشفير القائم على الرمز (Code-based cryptography) **: يعتمد على صعوبة مشكلة فك تشفير أكواد تصحيح الأخطاء. ** التشفير متعدد الحدود متعدد المتغيرات (Multivariate cryptography) **: يعتمد على صعوبة حل أنظمة المعادلات التربيعية متعددة المتغيرات. ** التوقيعات القائمة على التجزئة (Hash-based signatures) **: توقيعات رقمية تعتمد فقط على أمان دوال التجزئة. بدأ بالفعل اختبار إدخال وتنفيذ هجين لـ PQC في البرامج والمنصات الرئيسية مثل Google Chrome و Apple iMessage.\nおわりに تنتقل الحواسيب الكمومية من حلم في عالم الخيال العلمي إلى تحدٍ هندسي في العالم الحقيقي. تعتبر خوارزمية شور إنجازًا فكريًا عظيمًا للبشرية يدمج بين الرياضيات وميكانيكا الكم، ولكنها في الوقت نفسه تحمل \u0026ldquo;قوة تدميرية\u0026rdquo; تهز أساس مجتمعنا الرقمي.\nلن يصبح تشفير RSA غير صالح للاستخدام غدًا. ولكن بالنظر إلى تطور التكنولوجيا الكمومية ومخاطر \u0026ldquo;Store Now, Decrypt Later\u0026rdquo;، فإن الهجرة واسعة النطاق في تاريخ التشفير والمتمثلة في الانتقال إلى PQC قد بدأت بالفعل. نحن نشهد الآن الخطوط الأمامية لتغيير جذري في أمن المعلومات.\n","date":"2026-09-05T22:09:21+09:00","image":"http://kenji.blog/p/shors-algorithm-and-rsa-breaking/quantum_breaking_rsa_1788613722990_huf997c6e55368509d0617b56f68899854_1017504_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/shors-algorithm-and-rsa-breaking/","title":"هل ستدمر الحواسيب الكمومية حقًا تشفير RSA؟ ~ خوارزمية شور والمرحلة الحالية ~"},{"content":"\u0026ldquo;تشريح كامل\u0026rdquo; فهم أقوى خوارزمية لتحليل التشفير \u0026ldquo;GNFS\u0026rdquo; عن طريق تنفيذها بلغة C++ يدعم \u0026ldquo;تشفير RSA\u0026rdquo; أسس الإنترنت الحديث. يعتمد أمانه على الاعتقاد الرياضي بأنه \u0026ldquo;من المستحيل عمليا على أجهزة الكمبيوتر الحالية تحليل عدد مركب عملاق إلى عوامله الأولية\u0026rdquo;.\nومع ذلك، لم تستسلم البشرية أبدا. حاليا، يوجد ** أقوى وأحدث خوارزمية ** للبشرية لتحليل الأعداد الأولية الضخمة على أجهزة الكمبيوتر الكلاسيكية (أجهزة الكمبيوتر العادية، وليست الكمومية). تسمى هذه الخوارزمية ** \u0026ldquo;غربال حقل الأعداد العام (GNFS: General Number Field Sieve)\u0026rdquo; **.\nفي هذه المقالة، سننشر الكود المصدري بالكامل بلغة C++ (باستخدام أعداد صحيحة متعددة الدقة boost::multiprecision من مكتبة Boost) والذي يجسد بشكل دقيق منطق الحوسبة المتقدم لهذه الخوارزمية، وسنشرح بعمق \u0026ldquo;نظرية الأعداد الجبرية\u0026rdquo; التي تقف وراءها.\nيرجى الاستمتاع بأسرار الرياضيات وقوة علوم الكمبيوتر التي تقهرها مع الكود المصدري.\n1. إطار عمل GNFS المتقدم (الكود المصدري الكامل) أولا، سنقدم الصورة الكاملة لتنفيذ GNFS بلغة C++ الذي سنشرحه هنا. نظام غربال حقل الأعداد الفعلي (مثل CADO-NFS) هو نظام موزع ضخم يحتوي على مئات الآلاف من أسطر التعليمات البرمجية. ومع ذلك، يقوم هذا الكود باستخراج ** \u0026ldquo;5 مسارات (مراحل) أساسية\u0026rdquo; ** تشكل GNFS، وتصميمها كفئات، ونمذجتها في تكوين أدنى دون فقدان معناها الرياضي.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 #include \u0026lt;iostream\u0026gt; #include \u0026lt;vector\u0026gt; #include \u0026lt;cmath\u0026gt; #include \u0026lt;map\u0026gt; #include \u0026lt;set\u0026gt; #include \u0026lt;chrono\u0026gt; #include \u0026lt;boost/multiprecision/cpp_int.hpp\u0026gt; // استخدام الأعداد الصحيحة متعددة الدقة Boost.Multiprecision using namespace boost::multiprecision; // ============================================================================ // [SOTA GNFS] General Number Field Sieve إطار عمل منطقي متقدم // // يصمم هذا الكود بشكل دقيق المراحل الخمسة لـ GNFS الحديث // المستخدم في CADO-NFS وغيرها، كفئات C++ (Boost). // ============================================================================ struct Relation { int64_t a; int64_t b; std::vector\u0026lt;uint32_t\u0026gt; rational_primes; std::vector\u0026lt;uint32_t\u0026gt; algebraic_primes; }; // ============================================================================ // المرحلة 1: اختيار كثير الحدود (خوارزمية KleinJung) // ============================================================================ class PolynomialSelector { public: int degree; std::vector\u0026lt;cpp_int\u0026gt; f; // كثير الحدود الجبري f(x) std::vector\u0026lt;cpp_int\u0026gt; g; // كثير الحدود النسبي g(x) = x - m cpp_int m; PolynomialSelector(int d) : degree(d) {} // توليد كثير الحدود الأولي بناء على توسيع الأساس m (في الواقع يتم استخدام تقليص قاعدة الشبكة LLL الأكثر تقدما) void select(const cpp_int\u0026amp; N) { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 1] اختيار كثير الحدود (الدرجة \u0026#34; \u0026lt;\u0026lt; degree \u0026lt;\u0026lt; \u0026#34;) يبدأ...\u0026#34; \u0026lt;\u0026lt; std::endl; // توسيع أساس m بسيط (الدرجة d) // m = N^(1/d) cpp_int N_copy = N; m = 1; // تقريب بسيط لـ m (بدون استخدام دوال Boost) cpp_int low = 1, high = N; while (low \u0026lt;= high) { cpp_int mid = low + (high - low) / 2; cpp_int p = 1; for(int i=0; i\u0026lt;degree; ++i) p *= mid; if (p \u0026lt;= N) { m = mid; low = mid + 1; } else { high = mid - 1; } } f.resize(degree + 1); cpp_int temp = N; for (int i = 0; i \u0026lt;= degree; ++i) { f[i] = temp % m; temp /= m; } g = {-m, 1}; // g(x) = x - m std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; m = \u0026#34; \u0026lt;\u0026lt; m \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; f(x) = \u0026#34;; for(int i = degree; i \u0026gt;= 0; --i) { std::cout \u0026lt;\u0026lt; f[i] \u0026lt;\u0026lt; \u0026#34;x^\u0026#34; \u0026lt;\u0026lt; i \u0026lt;\u0026lt; (i \u0026gt; 0 ? \u0026#34; + \u0026#34; : \u0026#34;\u0026#34;); } std::cout \u0026lt;\u0026lt; \u0026#34;\\n[المرحلة 1] اكتملت.\u0026#34; \u0026lt;\u0026lt; std::endl; } }; // ============================================================================ // المرحلة 2: غربال الشبكة (Lattice Sieving) // ============================================================================ // لا يستخدم GNFS الحديث Line Sieve، بل يستخدم // Special-q Lattice Sieving الذي طوره Franke-Kleinjung كمعيار. class LatticeSieve { uint32_t rational_bound; uint32_t algebraic_bound; std::vector\u0026lt;uint32_t\u0026gt; rational_fb; std::vector\u0026lt;uint32_t\u0026gt; algebraic_fb; public: LatticeSieve(uint32_t rb, uint32_t ab) : rational_bound(rb), algebraic_bound(ab) {} void generate_factor_bases() { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 2] توليد قواعد العوامل (الحد النسبي: \u0026#34; \u0026lt;\u0026lt; rational_bound \u0026lt;\u0026lt; \u0026#34;، الحد الجبري: \u0026#34; \u0026lt;\u0026lt; algebraic_bound \u0026lt;\u0026lt; \u0026#34;)\u0026#34; \u0026lt;\u0026lt; std::endl; // (محذوف) في الواقع يتم توليد الأعداد الأولية والتصفية باستخدام رموز Legendre } std::vector\u0026lt;Relation\u0026gt; sieve(const PolynomialSelector\u0026amp; poly) { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 2] Special-q Lattice Sieving نشط...\u0026#34; \u0026lt;\u0026lt; std::endl; std::vector\u0026lt;Relation\u0026gt; relations; // تنفيذ وهمي: يقوم غربال الشبكة الفعلي بمسح مئات الجيجابايت من الذاكرة في كتل // يتم تعيين الأزواج (a, b) لشبكة (a = i*q + j*...) لكل عدد أولي خاص q، // ويتم تشغيل غربلة ترفع كفاءة ذاكرة التخزين المؤقت إلى أقصى حد. // إضافة علاقة وهمية واحدة للتوضيح Relation r; r.a = 17; r.b = 3; r.rational_primes = {2, 5}; r.algebraic_primes = {3, 7}; relations.push_back(r); std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 2] تم العثور على \u0026#34; \u0026lt;\u0026lt; relations.size() \u0026lt;\u0026lt; \u0026#34; علاقة.\u0026#34; \u0026lt;\u0026lt; std::endl; return relations; } }; // ============================================================================ // المرحلة 3: التصفية (إزالة الفردية ودمج الزمرة) // ============================================================================ class Filter { public: void reduce_matrix(std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 3] تصفية العلاقات...\u0026#34; \u0026lt;\u0026lt; std::endl; // 1. إزالة الفردية (إزالة العلاقات التي تحتوي على أعداد أولية تظهر مرة واحدة فقط) // 2. دمج الزمرة (دمج العلاقات لتحويل مصفوفة متفرقة إلى كثيفة) // في الواقع يتم ضغط مصفوفات بمئات الملايين من الصفوف إلى بضعة ملايين باستخدام خوارزميات مثل Union-Find. std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 3] تم تقليل حجم المصفوفة بشكل مثالي.\u0026#34; \u0026lt;\u0026lt; std::endl; } }; // ============================================================================ // المرحلة 4: الجبر الخطي فوق GF(2) (طريقة Block Wiedemann) // ============================================================================ class LinearAlgebraGF2 { public: // في بيئات الحواسيب العملاقة الحديثة، وبدلا من طريقة Block Lanczos، // تُستخدم طريقة Block Wiedemann (تنفيذ Coppersmith) الملائمة للحوسبة الموزعة كأحدث تقنية. std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; solve_nullspace(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 4] خوارزمية Block Wiedemann فوق GF(2) تبدأ...\u0026#34; \u0026lt;\u0026lt; std::endl; // التكرار على حسابات ضرب المصفوفة المتفرقة في المتجه، // والعثور على متجهات الحلول (نواة) بحيث M * x = 0 mod 2. std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; dependencies; // قائمة التبعيات // بيانات وهمية dependencies.push_back({0}); std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 4] تم العثور على \u0026#34; \u0026lt;\u0026lt; dependencies.size() \u0026lt;\u0026lt; \u0026#34; تبعيات خطية (مربعات كاملة).\u0026#34; \u0026lt;\u0026lt; std::endl; return dependencies; } }; // ============================================================================ // المرحلة 5: الجذر التربيعي الجبري (Algebraic Square Root) // ============================================================================ class AlgebraicSquareRoot { public: void compute_and_factor(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations, const std::vector\u0026lt;int\u0026gt;\u0026amp; dep, const cpp_int\u0026amp; N) { std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 5] حساب الجذر التربيعي الجبري...\u0026#34; \u0026lt;\u0026lt; std::endl; // 1. حساب الجذر التربيعي النسبي V cpp_int V = 1; // V = sqrt( prod(a - bm) ) mod N // 2. حساب الجذر التربيعي الجبري gamma (باستخدام طريقة Montgomery، إلخ) // العثور على العنصر gamma في الحقل الجبري الضخم O_K وتحويله إلى العالم الحقيقي باستخدام التماثل phi // Y = phi(gamma) mod N cpp_int Y = 1; // نفترض أنه تمت إضافة سلسلة من الرموز التربيعية (Quadratic Characters) في المرحلتين 2 و 4 // لتجنب عقبات (Obstruction) مجموعة أصناف المثاليات ومجموعة الوحدات. std::cout \u0026lt;\u0026lt; \u0026#34; -\u0026gt; تم تطبيق التماثل phi.\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;[المرحلة 5] جار حساب القاسم المشترك الأكبر (V - Y, N)...\u0026#34; \u0026lt;\u0026lt; std::endl; cpp_int factor = gcd(V - Y, N); // GCD(X-Y, N) if (factor \u0026gt; 1 \u0026amp;\u0026amp; factor \u0026lt; N) { std::cout \u0026lt;\u0026lt; \u0026#34;\\n================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;[نجاح] تم العثور على عامل غير بديهي: \u0026#34; \u0026lt;\u0026lt; factor \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; العامل الآخر: \u0026#34; \u0026lt;\u0026lt; N / factor \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; } else { std::cout \u0026lt;\u0026lt; \u0026#34;[فشل] حل بديهي. جاري تجربة التبعية التالية...\u0026#34; \u0026lt;\u0026lt; std::endl; } } }; // ============================================================================ // مسار التنفيذ الرئيسي // ============================================================================ int main() { std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34; [SOTA GNFS] محرك General Number Field Sieve (Boost C++) \u0026#34; \u0026lt;\u0026lt; std::endl; std::cout \u0026lt;\u0026lt; \u0026#34;================================================================\u0026#34; \u0026lt;\u0026lt; std::endl; // عدد مركب ضخم N نريد تحليله، مثل RSA-270 cpp_int N(\u0026#34;233108530344407544527637656910680524145619812480305449042948611968495918245135782867888369318577116418213919268572658314913060672626911354027609793166341626693946596196427744273886601876896313468704059066746903123910748277606548649151920812699309766587514735456594993207\u0026#34;); // درجة كثير الحدود (عادة يتم اختيار درجة 5 إلى 6 للأرقام الأكبر من 130 رقما) int degree = 6; // تهيئة المسار PolynomialSelector poly_select(degree); LatticeSieve sieve(10000000, 20000000); // الحدود الفعلية بعشرات الملايين Filter filter; LinearAlgebraGF2 linalg; AlgebraicSquareRoot sqrt_step; auto start_time = std::chrono::high_resolution_clock::now(); // 1. اختيار كثير الحدود poly_select.select(N); // 2. معالجة الغربلة (sieve) sieve.generate_factor_bases(); std::vector\u0026lt;Relation\u0026gt; relations = sieve.sieve(poly_select); // 3. التصفية (ضغط المصفوفة) filter.reduce_matrix(relations); // 4. الجبر الخطي (البحث في الفضاء الفارغ فوق GF(2)) std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; dependencies = linalg.solve_nullspace(relations); // 5. حساب الجذر التربيعي الجبري و GCD for (const auto\u0026amp; dep : dependencies) { sqrt_step.compute_and_factor(relations, dep, N); } auto end_time = std::chrono::high_resolution_clock::now(); std::chrono::duration\u0026lt;double\u0026gt; elapsed = end_time - start_time; std::cout \u0026lt;\u0026lt; \u0026#34;\\n[النظام] اكتمل مسار SOTA GNFS في \u0026#34; \u0026lt;\u0026lt; elapsed.count() \u0026lt;\u0026lt; \u0026#34; ثانية.\u0026#34; \u0026lt;\u0026lt; std::endl; return 0; } إذن، كيف يقوم هذا الكود بتحطيم جدران التشفير؟ سنقوم بتقسيم وشرح الخوارزميات الدقيقة والرياضيات المتقدمة لكل من المراحل الخمس.\n2. الهدف النهائي لـ GNFS: $X^2 \\equiv Y^2 \\pmod N$ ليس فقط GNFS، بل إن هدف معظم الخوارزميات الحديثة لتحليل الأعداد العملاقة هو العثور على زوج غير بديهي $(X, Y)$ يحقق المعادلة التطابقية التالية:\n$$X^2 \\equiv Y^2 \\pmod N$$ تعني هذه المعادلة أن \u0026ldquo;باقي قسمة $X^2$ و $Y^2$ على $N$ متساويان\u0026rdquo;. بإعادة صياغتها: $X^2 - Y^2 \\equiv 0 \\pmod N$ بمعنى آخر، $(X-Y)(X+Y)$ هو مضاعف لـ $N$.\nإذا كان $X \\not\\equiv \\pm Y \\pmod N$ (حل غير بديهي)، فهذا يعني أن هناك \u0026ldquo;قاسما مشتركا أكبر من 1 وأصغر من $N$\u0026rdquo; بين $(X-Y)$ و $N$. هنا، إذا استخدمنا خوارزمية إقليدس لحساب ** $\\gcd(X-Y, N)$ **، فيمكننا بسهولة إيجاد العامل الأولي لـ $N$.\nومع ذلك، فإن العثور على $X$ و $Y$ يشبه البحث عن إبرة في الصحراء. لذلك، يتخذ GNFS نهجا عبقريا من خلال توزيع الحسابات عن طريق إنشاء ** عالمين **: \u0026ldquo;عالم الأعداد الصحيحة الحقيقية\u0026rdquo; و \u0026ldquo;عالم الحقول الجبرية لكثيرات الحدود\u0026rdquo;.\n3. المرحلة 1: اختيار كثير الحدود (Polynomial Selection) 1 2 3 4 5 6 7 8 9 10 11 12 class PolynomialSelector { // ... void select(const cpp_int\u0026amp; N) { // حساب m = N^(1/d) والتوسيع بأساس m // ... for (int i = 0; i \u0026lt;= degree; ++i) { f[i] = temp % m; temp /= m; } g = {-m, 1}; // g(x) = x - m } }; الخطوة الأولى في GNFS هي إنشاء \u0026ldquo;كثير حدود سحري\u0026rdquo; لربط العالمين. بالنسبة للعدد الضخم $N$، نختار عددا صحيحا $m$. عادة نختار $m \\approx N^{1/d}$ (في الكود يُفترض كثير حدود من الدرجة $d=6$).\nثم نقوم بتوسيع $N$ للأساس $m$، ونستخدم معاملاته لبناء كثير الحدود $f(x)$: $$N = c_d m^d + c_{d-1} m^{d-1} + \\dots + c_1 m + c_0$$ $$f(x) = c_d x^d + c_{d-1} x^{d-1} + \\dots + c_1 x + c_0$$ يتمتع كثير الحدود $f(x)$ بخصائص مهمة للغاية وهي ** \u0026ldquo;إذا عوضنا $m$ في المتغير $x$، فإن القيمة ستكون بالضبط $N$ ($f(m) = N$)\u0026rdquo; **. وبعبارة أخرى، $f(m) \\equiv 0 \\pmod N$. يتم تعريف كثير الحدود النسبي على أنه $g(x) = x - m$.\nنتيجة لذلك، يتم ربط ** \u0026ldquo;عالم الحقل الجبري $\\mathbb{Z}[\\alpha]$\u0026rdquo; ** المحكوم بجذور $\\alpha$ لـ $f(x)=0$ مع ** \u0026ldquo;عالم الأعداد النسبية (الصحيحة) $\\mathbb{Z}$\u0026rdquo; ** المعتاد من خلال تماثل الحلقات $x \\to m$.\nفي أنظمة مثل CADO-NFS، يتم استخدام خوارزمية KleinJung وخوارزمية تقليص قاعدة الشبكة LLL للبحث عن \u0026ldquo;أفضل كثير حدود $f(x)$\u0026rdquo; لا تكون معاملاته كبيرة جدا وتظهر فيه الأعداد الأولية بسهولة في الخطوات اللاحقة. يستغرق هذا البحث أشهرا.\n4. المرحلة 2: غربلة الشبكة الخاصة (Special-q Lattice Sieving) 1 2 3 4 5 6 7 8 9 class LatticeSieve { // ... std::vector\u0026lt;Relation\u0026gt; sieve(const PolynomialSelector\u0026amp; poly) { // ... // يتم تعيين أزواج (a, b) في شبكة لكل عدد أولي خاص q، // وتشغيل غربال يحقق أقصى كفاءة لذاكرة التخزين المؤقت. // ... } }; بعد إعداد العالمين، تتمثل الخطوة التالية في البحث عن \u0026ldquo;أعداد ملساء (أعداد تتكون فقط من عوامل أولية صغيرة)\u0026rdquo; في كلا العالمين. يتم توليد أزواج لا حصر لها من الأعداد الصحيحة $(a, b)$، ويتم حساب القيمتين التاليتين:\nالقيمة الجانبية النسبية : $a - bm$ المعيار الجانبي الجبري : $b^d f(a/b)$ يهدف GNFS إلى جمع عشرات إلى مئات الملايين من ** \u0026ldquo;الأزواج (العلاقات) التي يمكن تحليل قيمها الجانبية النسبية والجبرية بالكامل باستخدام عوامل أولية صغيرة فقط\u0026rdquo; **.\nفي السابق، تم استخدام \u0026ldquo;غربال الخط (Line Sieve)\u0026quot;، حيث يتم ترتيب أزواج $(a, b)$ على مستوى $xy$ وقسمتها على الأعداد الأولية. ومع ذلك، كان هذا بطيئا جدا لأنه يسبب فشلا كبيرا في ذاكرة التخزين المؤقت بسبب الوصول العشوائي للذاكرة.\nلذلك، تستخدم الأكواد الحديثة طريقة تسمى ** \u0026ldquo;Special-q Lattice Sieve\u0026rdquo; **. يتم تثبيت عدد أولي كبير بما فيه الكفاية $q$، وتُحسب فقط أزواج $(a, b)$ حيث \u0026ldquo;القيمة الجبرية يجب أن تقبل القسمة على $q$\u0026rdquo;. تشكل الأزواج $(a, b)$ التي تلبي هذا الشرط \u0026ldquo;شبكة (Lattice)\u0026quot;، مما يجعل قفزة العنوان المحسوبة ثابتة وتتناسب تماما مع ذاكرة التخزين المؤقت L1/L2 لوحدة المعالجة المركزية. أدى هذا التحسين إلى زيادة سرعة حسابات GNFS بشكل هائل.\n5. المرحلة 3: التصفية (Filtering) 1 2 3 4 5 6 7 class Filter { public: void reduce_matrix(std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { // 1. إزالة الفردية (إزالة العلاقات التي تحتوي على أعداد أولية تظهر مرة واحدة فقط) // 2. دمج الزمرة (دمج العلاقات لجعل المصفوفة المتفرقة كثيفة) } }; مئات الملايين من العلاقات التي جمعتها أجهزة الكمبيوتر حول العالم على مدار عدة أشهر في المرحلة الثانية. ومع ذلك، إذا قمنا بإدخالها مباشرة إلى \u0026ldquo;خطوة حل نظام المعادلات (حساب المصفوفة)\u0026rdquo; التالية، فإن ذاكرة الحاسوب العملاق ستمتلئ.\nلذلك، يتم إجراء عملية ضغط قصوى للمصفوفة تسمى ** التصفية (Filtering) **.\nإزالة الفردية (Singleton removal) لنفترض أن عددا أوليا ضخما $p$ ظهر \u0026ldquo;مرة واحدة فقط\u0026rdquo; من بين مئات الملايين من العلاقات. هدفنا هو \u0026ldquo;جعل جميع أسس الأعداد الأولية زوجية (مضاعفات 2)\u0026quot;، لذلك فإن العدد الأولي الذي يظهر مرة واحدة لا يمكن أبدا أن يصبح زوجيا. وبالتالي، يتم حذف العلاقة التي تحتوي على هذا العدد الأولي على الفور كـ \u0026ldquo;قمامة غير مجدية\u0026rdquo;. وبسبب سلسلة الأحداث هذه، يتم تقليص مئات الملايين من صفوف البيانات.\nدمج الزمرة (Clique merging) بعد ذلك، من خلال ضرب (جمع) العلاقات التي تشترك في أعداد أولية معينة، يتم ضغط (تكثيف) المصفوفة المتفرقة وتقليل عدد الصفوف (باستخدام تقنية مشابهة للبحث عن الزمرة في نظرية المخططات).\nمن خلال هذا التحسين، يتم ضغط المصفوفة المتفرقة الضخمة بشكل كبير إلى حجم يمكن حسابه.\n6. المرحلة 4: الجبر الخطي فوق GF(2) (طريقة Block Wiedemann) 1 2 3 4 5 6 7 class LinearAlgebraGF2 { public: std::vector\u0026lt;std::vector\u0026lt;int\u0026gt;\u0026gt; solve_nullspace(const std::vector\u0026lt;Relation\u0026gt;\u0026amp; relations) { // حسابات ضرب المصفوفة المتفرقة في المتجه، // وإيجاد متجهات حلول بحيث M * x = 0 mod 2. } }; الآن نصل إلى جوهر اللغز. نقوم بضرب العلاقات المجمعة للعثور على ** \u0026ldquo;التركيبة التي تصبح فيها كل قوى العوامل الأولية زوجية\u0026rdquo; **.\nمن الناحية الرياضية، باستخدام مصفوفة ضخمة $M$ تمثل عناصرها \u0026ldquo;الزوجي والفردي (أي 0 أو 1)\u0026rdquo; لقوى كل عدد أولي، والمتجه $x$ الذي يمثل العلاقة المستخدمة، فإننا نحل (البحث في الفضاء الفارغ): $M \\cdot x \\equiv 0 \\pmod 2$\nعلينا حل نظام معادلات مصفوفة بملايين الصفوف وملايين الأعمدة. في الحذف الغاوسي العادي، سيكون التعقيد $O(N^3)$، مما يعني أن الحساب لن يكتمل حتى نهاية الكون.\nلذلك، تعتمد التطبيقات الحديثة ** \u0026ldquo;طريقة Block Wiedemann\u0026rdquo; **. هذه طريقة فضاء جزئي لـ Krylov تعثر على الحل عبر تكرار عمليات ضرب المصفوفات والمتجهات، مستغلة حقيقة أن المصفوفة $M$ \u0026ldquo;متفرقة جدا (معظمها 0)\u0026rdquo;. على عكس طريقة Block Lanczos القديمة، تقوم Block Wiedemann بتقسيم عملية الحساب تماما على مجموعات منفصلة، وتظهر قوة هائلة في الحوسبة السحابية الموزعة الحديثة والحواسيب العملاقة.\n7. المرحلة 5: الجذر التربيعي الجبري (Algebraic Square Root) وانهيار التشفير 1 2 3 4 5 6 7 8 9 10 11 12 13 class AlgebraicSquareRoot { public: void compute_and_factor(...) { // 1. حساب الجذر التربيعي النسبي V cpp_int V = 1; // 2. حساب الجذر التربيعي الجبري gamma cpp_int Y = 1; // ... cpp_int factor = gcd(V - Y, N); // GCD(X-Y, N) } }; من خلال حسابات المصفوفة في المرحلة 4، حصلنا على مجموعة من العلاقات $S$ والتي \u0026ldquo;إذا تم ضربها معا، ستصبح كل أسس العوامل الأولية زوجية\u0026rdquo;. يتيح لنا ذلك بناء \u0026ldquo;مربعات\u0026rdquo; في كل من العوالم النسبية والجبرية.\nنظرا لأن الجانب النسبي هو مجرد ضرب لأعداد صحيحة، فمن السهل حساب الجذر التربيعي $V$. $$V^2 = \\prod_{S} (a - bm)$$ لكن الجحيم الحقيقي يكمن في \u0026ldquo;الجانب الجبري\u0026rdquo;. في عالم الحقل الجبري $\\mathbb{Z}[\\alpha]$، لا يتم الحفاظ على تفرد التحليل إلى العوامل الأولية، لذلك أجرينا الحسابات باستخدام المثاليات. تضمن حسابات المصفوفة فقط أن النتيجة ** \u0026ldquo;مربع مثالي\u0026rdquo;، لكنها لا \u0026ldquo;تضمن أنها مربع لعنصر ($\\gamma^2$)\u0026rdquo; **.\nهنا يظهر عائق هائل في نظرية الأعداد الجبرية، والذي يسمى \u0026ldquo;عائق مجموعة أصناف المثاليات\u0026rdquo; و \u0026ldquo;عائق مجموعة الوحدات\u0026rdquo;. يخترق GNFS هذا الجدار باستخدام سحر يسمى ** \u0026ldquo;الرموز التربيعية (Quadratic Characters)\u0026rdquo; **. في مصفوفة المرحلة 4، تتم إضافة عدد قليل من أعمدة البقايا التربيعية (رمز Legendre) سراً لمثاليات أولية خاصة. بفضل ذلك، تتجاوز المجموعة المكتشفة $S$ العوائق باحتمال كبير جدا، وتشكل بنجاح \u0026ldquo;مربع عنصر حقيقي $\\gamma^2$\u0026rdquo;.\nتتم عملية العثور على $\\gamma$ (الجذر التربيعي الجبري) باستخدام خوارزميات معقدة للغاية مثل طريقة Montgomery.\nوأخيرا، يتم إرسال الجذر التربيعي الجبري $\\gamma$ إلى العالم الحقيقي عن طريق تماثل الحلقة $\\phi$ (تعويض $x$ بـ $m$) للحصول على $Y$. من خلال تعيين $V$ في الجانب النسبي كـ $X$, يتم إنشاء المعادلة المطلقة التي نسعى إليها:\n$$X^2 \\equiv Y^2 \\pmod N$$\nكل ما تبقى هو حساب $\\gcd(X-Y, N)$. في 0.001 ثانية فقط، عندما تتم طباعة العامل غير البديهي على الشاشة، ينهار تشفير RSA الذي لا يُقهر تماما.\nخاتمة خوارزمية GNFS ليست مجرد تقنية برمجة. إنها تحفة من ذكاء البشرية تغلبت على \u0026ldquo;أعماق الرياضيات البحتة\u0026rdquo; مثل الجبر المجرد، ونظرية الحلقات، ومجموعة أصناف المثاليات، وذلك باستخدام \u0026ldquo;هندسة متطرفة\u0026rdquo; مثل البنية الموزعة للحواسيب العملاقة وتحسين ذاكرة التخزين المؤقت.\nيتم حماية معلومات الدردشات والبطاقات الائتمانية التي نرسلها كل يوم بواسطة هذه المعارك الرياضية الهائلة.\nنأمل من خلال إطار عمل C++ هذا، أن تتمكن من الشعور بـ \u0026ldquo;رومانسية الرياضيات والكمبيوتر\u0026rdquo; الكامنة وراء خوارزميات كسر التشفير المتطورة.\n","date":"2026-09-05T13:04:59+09:00","image":"http://kenji.blog/p/gnfs-cpp-implementation/gnfs_cpp_blog_eyecatch_1788580949217_hu57b4110ce75cf76414fb819be22bae03_985705_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/gnfs-cpp-implementation/","title":"\"تشريح كامل\" فهم أقوى خوارزمية لتحليل التشفير \"GNFS\" عن طريق تنفيذها بلغة C++"},{"content":"الهيكل الرياضي الحقيقي لغربال حقل الأعداد العام (GNFS) الهدف النهائي لـ GNFS هو العثور على $X, Y$ بحيث يكون $X^2 \\equiv Y^2 \\pmod N$. لتحقيق ذلك، بنى علماء الرياضيات جسرًا بين \u0026ldquo;عالم الأعداد الصحيحة الحقيقي\u0026rdquo; و \u0026ldquo;عالم الحقول الجبرية\u0026rdquo;. هذا الجسر هو ما يُعرف بـ \u0026ldquo;التشاكل\u0026rdquo; (Homomorphism).\nالمرحلة الأولى: \u0026ldquo;التشاكل\u0026rdquo; الذي يربط العالمين 1. اختيار المتعددة الحدود وتعريف الجذور لعدد مركب ضخم $N$، نختار عددًا صحيحًا $m$ ومتعددة حدود $f(x)$ بحيث $f(m) \\equiv 0 \\pmod N$. (مثال: توسيع $N$ في الأساس $m$، وبناء $f(x)$ من معاملاته. في هذه الحالة، يُفترض أن $f(x)$ غير قابل للاختزال على حقل الأعداد الكسرية $\\mathbb{Q}$).\nبعد ذلك، لنفترض أن $\\alpha$ هو أحد \u0026ldquo;الجذور المركبة\u0026rdquo; للمعادلة $f(x) = 0$. بالطبع، $f(\\alpha) = 0$. لاحظ أن $\\alpha$ ليس عددًا صحيحًا، بل عددًا مركبًا (عددًا جبريًا) قد يحتوي على جذور أو أعداد تخيلية.\n2. بناء الحلقة (Ring) والتشاكل هنا، نقوم بإعداد \u0026ldquo;حلقتين\u0026rdquo; رياضيتين (عالمان حيث يُعرّف الجمع والضرب):\nالعالم A: $\\mathbb{Z}[\\alpha]$ (حلقة الأعداد الصحيحة الجبرية التي تحتوي على $\\alpha$) هذا هو عالم الأعداد التي تُعبّر عن شكل $a + b\\alpha + c\\alpha^2 + \\dots$. العالم B: $\\mathbb{Z}/N\\mathbb{Z}$ (حلقة البواقي بعد القسمة على $N$) عالم التطابق (modulo) الذي يتكون فقط من الأعداد الصحيحة من $0$ إلى $N-1$. هنا، نُعرّف تعيينًا (Mapping) يُسمى $\\phi$ من العالم A إلى العالم B على النحو التالي: $$\\phi : \\mathbb{Z}[\\alpha] \\to \\mathbb{Z}/N\\mathbb{Z}$$ $$\\phi(\\alpha) = m \\pmod N$$\nهذا التعيين $\\phi$ هو عملية سحرية تستبدل المتغير $\\alpha$ في العالم A بالعدد الصحيح $m$ في العالم B بشكل كامل. هذا الـ $\\phi$ يمتلك خاصية قوية جدًا تُسمى \u0026ldquo;تشاكل الحلقة\u0026rdquo; (Ring Homomorphism). التشاكل هو خاصية \u0026ldquo;الانتقال إلى عالم آخر دون تدمير هيكل الجمع والضرب\u0026rdquo;. وهذا يعني أن المعادلات التالية صحيحة:\n$\\phi(X \\times Y) = \\phi(X) \\times \\phi(Y)$ $\\phi(X^2) = \\phi(X)^2$ ماذا يعني كل هذا؟ إذا تمكنا من صنع \u0026ldquo;مربع كامل\u0026rdquo; ($\\gamma^2$) من عنصر معقد $\\gamma$ في \u0026ldquo;العالم A\u0026rdquo; (عالم $\\alpha$)، فيمكننا القفز إلى \u0026ldquo;العالم B\u0026rdquo; (عالم البواقي) باستخدام $\\phi$، و سيتم الحفاظ على شكل المربع $\\phi(\\gamma)^2$ تمامًا.\nالمرحلة الثانية: انهيار التحليل إلى العوامل الأولية وولادة \u0026ldquo;المثالي\u0026rdquo; (Ideal) نريد جمع الكثير من العناصر المناسبة $(a - b\\alpha)$ في العالم A ($\\mathbb{Z}[\\alpha]$) وضربها معًا لتكوين \u0026ldquo;مربع كامل\u0026rdquo;. عادةً، يمكننا \u0026ldquo;التحليل إلى العوامل الأولية\u0026rdquo; للعناصر $(a - b\\alpha)$ المجمعة، ودمجها بحيث تصبح كل أسس الأعداد الأولية زوجية (محلولة باستخدام المصفوفات) لإنشاء مربع.\nولكن، هنا يقف جدار اليأس الجبري في طريقنا. في عالم الحقول الجبرية مثل $\\mathbb{Z}[\\alpha]$، فإن \u0026ldquo;وحدانية التحليل إلى العوامل الأولية (يمكن التعبير عن كل عدد بطريقة واحدة فقط كحاصل ضرب أعداد أولية)\u0026rdquo; التي تعلمناها في المدرسة الإعدادية تنهار تمامًا.\n(مثال: في بعض عوالم الحقول الجبرية، $6 = 2 \\times 3$، وفي نفس الوقت $6 = (1+\\sqrt{-5}) \\times (1-\\sqrt{-5})$، مما يجعل من المستحيل معرفة أي منها هي الأعداد الأولية الحقيقية).\nإذا لم يكن التحليل إلى العوامل الأولية فريدًا، فإن لغز \u0026ldquo;حساب الأعداد الأولية لجعلها زوجية\u0026rdquo; (طريقة الغربال) مستحيل من حيث المبدأ.\nإنقاذ كومر وديديكيند: \u0026ldquo;المثالي\u0026rdquo; (Ideal) تم إنقاذ هذا الانهيار من خلال مفهوم \u0026ldquo;المثالي\u0026rdquo; (Ideal) الذي ابتكره علماء الرياضيات في القرن التاسع عشر. بدلًا من النظر إلى العنصر نفسه، من خلال النظر في \u0026ldquo;مجموعة المضاعفات (المثالي)\u0026rdquo; التي يولدها هذا العنصر، أصبح التحليل إلى العوامل الأولية ممكنًا مرة أخرى.\nفي حلقة الأعداد الصحيحة للحقل الجبري $\\mathcal{O}_K$ (الحلقة الأكثر كمالًا التي تحتوي على $\\mathbb{Z}[\\alpha]$)، حتى لو لم يكن بالإمكان تحليل العناصر بشكل فريد، فقد تم إثبات أن \u0026ldquo;المثالي يمكن دائمًا تحليله بشكل فريد كحاصل ضرب \u0026lsquo;مثاليات أولية\u0026rsquo; ($\\mathfrak{p}$)\u0026rdquo;.\nلذلك، في GNFS، بدلًا من تحليل العنصر $(a - b\\alpha)$ نفسه، نقوم بـ التحليل إلى المثاليات الأولية للمثالي الرئيسي $\\langle a - b\\alpha \\rangle$ الذي يولده.\nالمرحلة الثالثة: المعيار (Norm) والغربالان (Sieve) إذن، كيف نعرف ما هي المثاليات الأولية التي يتحلل إليها المثالي $\\langle a - b\\alpha \\rangle$؟ هنا نستخدم دالة تسمى \u0026ldquo;المعيار\u0026rdquo; (Norm). المعيار هو دالة تحول العناصر المعقدة في الحقل الجبري إلى \u0026ldquo;أعداد صحيحة عادية $\\mathbb{Z}$\u0026rdquo; في العالم الحقيقي.\nيُحسب معيار العنصر $(a - b\\alpha)$ بواسطة متعددة الحدود البسيطة $b^d f(a/b)$ (حيث $d$ هي درجة $f(x)$).\nبفضل مبرهنة جبرية، من المعروف أنه \u0026ldquo;إذا كان معيار مثالي ما قابلاً للتحليل بالكامل بواسطة أعداد أولية صغيرة (أملس)، فإن المثالي الأصلي يمكن أيضًا تحليله بالكامل بواسطة مثاليات أولية صغيرة\u0026rdquo;.\nلذلك، يحسب GNFS الأمرين التاليين في وقت واحد لعدد كبير من أزواج الأعداد الصحيحة $(a, b)$، ويجمع فقط الأزواج التي يكون كلاهما \u0026ldquo;أعدادًا ملساء\u0026rdquo;:\nالغربال النسبي (Rational Sieve): $a - bm$ (القيمة في العالم الحقيقي) الغربال الجبري (Algebraic Sieve): $b^d f(a/b)$ (المعيار في عالم الحقل الجبري) نجمع عشرات الملايين من الأزواج $(a, b)$ الملساء معًا، ونحل بيانات التحليل إلى المثاليات الأولية (كم عدد المثاليات الأولية الموجودة) كمصفوفة عملاقة (الجبر الخطي على GF(2))، ونجد مجموعة $S$ من الأزواج بحيث \u0026ldquo;عند ضربها، تصبح أسس جميع المثاليات الأولية زوجية\u0026rdquo;.\nالمرحلة الرابعة: \u0026ldquo;العقبتان\u0026rdquo; وزمرة أصناف المثاليات من خلال حساب المصفوفة، وجدنا أن ضرب جميع المثاليات $(a - b\\alpha)$ في المجموعة $S$ ينتج مربعًا لمثالي ما $I$. $$\\prod_{S} \\langle a - b\\alpha \\rangle = I^2$$ لكن الأمر لم ينتهِ بعد. أعمق وأصعب جدار رياضي في GNFS يكمن هنا.\nما نريده في النهاية ليس \u0026ldquo;مربع المثالي\u0026rdquo;، بل \u0026ldquo;مربع العنصر\u0026rdquo; ($\\gamma^2$) لتعويضه في التعيين $\\phi$. فقط لأن المثالي تم تربيعه، لا يعني أن العنصر نفسه تم تربيعه. توجد عقبتان رياضيتان قويتان جدًا (Obstructions) هنا.\nالعقبة 1: جدار زمرة أصناف المثاليات (Ideal Class Group) المثالي $I$ ليس دائمًا \u0026ldquo;مثاليًا مولدًا بواسطة عنصر واحد (مثالي رئيسي)\u0026rdquo;. من المستحيل استخراج العنصر المحدد $\\gamma$ من مثالي ليس مثاليًا رئيسيًا.\nهنا يظهر مفهوم \u0026ldquo;زمرة أصناف المثاليات (Class Group, $Cl_K$)\u0026rdquo;. زمرة أصناف المثاليات هي زمرة تقيس \u0026ldquo;مدى وجود مثاليات غير رئيسية في عالم الحقل الجبري (إلى أي مدى تم تدمير وحدانية التحليل إلى العوامل الأولية)\u0026rdquo;. حتى لو أصبح $\\prod \\langle a - b\\alpha \\rangle$ هو $I^2$، إذا لم يكن $I$ عنصرًا محايدًا (مثاليًا رئيسيًا) في زمرة أصناف المثاليات، فلا يمكننا سحبه مرة أخرى إلى مربع عنصر.\nالعقبة 2: جدار زمرة الوحدات (Unit Group) لنفترض أننا محظوظون وأن $I$ هو مثالي رئيسي $\\langle \\gamma \\rangle$. إذن، $\\prod \\langle a - b\\alpha \\rangle = \\langle \\gamma^2 \\rangle$. قد تعتقد، \u0026ldquo;رائع، العنصر مربع أيضًا!\u0026quot;، لكنك مخطئ تمامًا.\nحقيقة أن المثاليات (مجموعات المضاعفات) متساوية لا تعني أن العناصر متساوية تمامًا. سيكون هناك دائمًا إزاحة بواسطة \u0026ldquo;الوحدة\u0026rdquo; (Unit: عدد مقلوبه هو أيضًا عدد صحيح، مثل 1 أو -1). بمعنى آخر، معادلة العنصر الفعلي هي كالتالي: $$\\prod_{S} (a - b\\alpha) = u \\cdot \\gamma^2$$ (حيث $u$ هو عنصر من زمرة الوحدات $U_K$)\nما لم تكن هذه الوحدة $u$ بحد ذاتها مربعًا لشيء ما، فلن يكون الجانب الأيسر أبدًا \u0026ldquo;مربع عنصر كامل\u0026rdquo;.\nالمرحلة الخامسة: سحر أدلمان \u0026ldquo;الرموز التربيعية\u0026rdquo; (Quadratic Characters) عقبة زمرة أصناف المثاليات وعقبة زمرة الوحدات. كيف نتغلب عليهما؟ هنا يأتي دور الطريقة العبقرية التي تسمى \u0026ldquo;الرموز التربيعية\u0026rdquo; (Quadratic Characters)، والتي أدخلها عالم التشفير ليونارد أدلمان (حرف \u0026ldquo;A\u0026rdquo; في RSA) وزملاؤه.\nلتحديد ما إذا كان \u0026ldquo;عنصر ما هو مربع كامل في الحقل الجبري\u0026rdquo;، نستخدم إصدار الحقل الجبري من رمز ليجاندر (الباقي التربيعي). في المصفوفة العملاقة السابقة (اللغز لجعل عدد المثاليات الأولية زوجيًا)، نضيف سرًا بضع عشرات من الشروط الإضافية (الأعمدة) التي تنص على أن \u0026ldquo;الرموز التربيعية لبعض المثاليات الأولية الخاصة $\\mathfrak{q}$ تصبح جميعها $1$ (زوجية)\u0026rdquo;.\nعندما نجد المجموعة $S$ التي تستوفي هذه الشروط الإضافية من خلال حساب المصفوفة، تضمن مبرهنة عميقة في نظرية الأعداد الجبرية أن \u0026ldquo;كل من عقبة زمرة أصناف المثاليات وعقبة زمرة الوحدات ستختفيان بشكل طبيعي باحتمال ساحق\u0026rdquo;.\nوبهذا، نحصل أخيرًا على المعادلة الحقيقية: $$\\prod_{S} (a - b\\alpha) = \\gamma^2$$ المرحلة النهائية: اندماج العوالم وانهيار التشفير أخيرًا، اكتملت جميع قطع اللغز.\n[العنصر في عالم الحقل الجبري (العالم A)] $\\gamma^2 = \\prod (a - b\\alpha)$ (استخدم خوارزمية الجذر التربيعي لإيجاد $\\gamma$)\n[العنصر في العالم الحقيقي (عالم الأعداد الكسرية)] $V^2 = \\prod (a - bm)$ (هذا مجرد ضرب أعداد صحيحة عادي، لذا يمكن العثور على الجذر التربيعي $V$ بسهولة)\nالآن، حان وقت عمل الجسر السحري الأول الذي صنعناه، التشاكل $\\phi$. نقفز بالعنصر $\\gamma$ من العالم A إلى العالم B (عالم البواقي $N$) باستخدام $\\phi$ (التعيين الذي يعوض بـ $m$ بدلًا من $\\alpha$). $$Y = \\phi(\\gamma) \\pmod N$$ من ناحية أخرى، نأخذ $V$ الذي تم إنشاؤه في العالم الحقيقي مباشرة إلى عالم البواقي ونسميه $X$. $$X = V \\pmod N$$ بفضل خاصية \u0026ldquo;الحفاظ على الهيكل\u0026rdquo; للتشاكل، فإن علاقة التربيع التي كانت صحيحة في العالم A يتم حفظها تمامًا في العالم B (عالم المقياس $N$). علاوة على ذلك، نظرًا لأن الأزواج الأصلية $(a, b)$ تم تشكيلها بطريقة متقابلة كـ $a - b\\alpha$ و $a - bm$، فإن $X$ و $Y$ يصطدمان في عالم المقياس $N$ وينتجان المعادلة المطلقة التالية:\n$$X^2 \\equiv Y^2 \\pmod N$$\nالآن، كل ما علينا فعله هو أن نصلي ألا يكون $X$ و $Y$ حلولاً بديهية ($X \\equiv \\pm Y$)، ثم نحسب: $\\gcd(X - Y, N)$\nإذا كان حلاً غير بديهي، فستعمل خوارزمية إقليدس في 0.001 ثانية، وسيتم طباعة الأعداد الأولية السرية $p$ و $q$، والتي تعد قلب تشفير RSA، على شاشة الإخراج.\nهذا هو الشكل الكامل لـ \u0026ldquo;غربال حقل الأعداد العام (GNFS)\u0026rdquo; الذي يجمع خلاصة الرياضيات الحديثة.\n","date":"2026-09-05T02:26:13+09:00","image":"http://kenji.blog/p/%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%AE%E7%9C%9F%E3%81%AE%E6%95%B0%E5%AD%A6%E7%9A%84%E6%A7%8B%E9%80%A0/rsa_encryption_break_1788542156523_hu57b4110ce75cf76414fb819be22bae03_1010164_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%AE%E7%9C%9F%E3%81%AE%E6%95%B0%E5%AD%A6%E7%9A%84%E6%A7%8B%E9%80%A0/","title":"الهيكل الرياضي الحقيقي لغربال حقل الأعداد العام (GNFS)"},{"content":"ما هي أقوى رياضيات للبشرية \u0026ldquo;غربال حقل الأعداد العام (GNFS)\u0026rdquo; التي تكسر تشفير الإنترنت؟ الإنترنت الذي نستخدمه كل يوم. جميع اتصالاتنا، مثل رسائل LINE، ويوتيوب، والتسوق على أمازون، محمية بواسطة \u0026ldquo;التشفير\u0026rdquo;. حالياً، التشفير الأكثر استخداماً في العالم هو \u0026ldquo;تشفير RSA\u0026rdquo;.\nجوهر حماية تشفير RSA بسيط للغاية. فهو يستفيد من الخاصية الرياضية القائلة بأن \u0026ldquo;تحليل الأعداد الضخمة إلى عوامل أولية لا يمكن حله حتى بواسطة أجهزة الكمبيوتر\u0026rdquo; . على سبيل المثال، بالنسبة للرقم \u0026ldquo;15\u0026rdquo;، نعلم على الفور أنه \u0026ldquo;3 × 5\u0026rdquo;، ولكن بمجرد أن يصبح الرقم مكوناً من \u0026ldquo;270 رقماً\u0026rdquo;، فإن الأمر سيستغرق مئات الملايين من السنين لحله حتى لو جمعنا جميع الحواسيب الخارقة في العالم.\nومع ذلك، لم يقف علماء الرياضيات مكتوفي الأيدي. لاختراق هذا التشفير المنيع، ابتكرت البشرية خوارزمية سحرية (إجراء حسابي) تُسمى \u0026ldquo;غربال حقل الأعداد العام (GNFS)\u0026rdquo; .\nفي هذه المقالة، وبدون استخدام أي مصطلحات تقنية، وبناءً فقط على معرفة رياضيات المدرسة الإعدادية (التحليل إلى عوامل أولية، المعادلات الجبرية، القاسم المشترك الأكبر) ، سنشرح خطوة بخطوة كيف تقوم \u0026ldquo;أقوى خوارزمية للبشرية\u0026rdquo; بكسر هذا التشفير!\nالفصل الأول: الهدف من فك التشفير هو \u0026ldquo;معادلة الصف الثالث الإعدادي\u0026rdquo; السلاح الأقوى لمواجهة تحليل الأعداد الضخمة إلى عوامل أولية هو هذه المعادلة التي نتعلمها في الصف الثالث الإعدادي.\n$X^2 - Y^2 = (X + Y)(X - Y)$\nقد تتساءل: \u0026ldquo;هاه، هل يمكن لمعادلة أساسية كهذه كسر التشفير؟\u0026rdquo; ومع ذلك، هذا هو المفتاح الرئيسي الذي يحل كل شيء.\nالهدف الأكبر لكسر التشفير هو، بالنسبة لعدد ضخم $N$، العثور على \u0026ldquo;أعداد ($X$ و $Y$) بحيث يكون باقي قسمة $X^2$ و $Y^2$ على $N$ هو نفسه\u0026rdquo; .\nلماذا كسر التشفير ممكن عندما يكون \u0026ldquo;الباقي متماثلاً\u0026rdquo;؟ لنفترض أن هناك عددين، $X^2$ و $Y^2$، لهما \u0026ldquo;نفس الباقي عند قسمتهما على $N$\u0026rdquo;. الباقي المتماثل يعني أن ناتج الطرح \u0026quot;$X^2 - Y^2$\u0026quot; سيكون قابلاً للقسمة تماماً على $N$ (مضاعف لـ $N$) .\nهنا، دعونا نفترض أن العدد الضخم $N$ المستخدم في التشفير يتكون من ضرب عددين أوليين سريين ($p$ و $q$) ($N = p \\times q$).\nإذا قمنا بتحليل $X^2 - Y^2$ إلى عوامل، فسنحصل على $(X - Y)(X + Y)$ . حقيقة أن هذا من مضاعفات $N$ تعني أنه في مكان ما في عملية الضرب هذه، يختبئ العددان الأوليان السريان $p$ و $q$.\nوهنا تحدث المعجزة. الاحتمال الرياضي بأن ينفصل العددان الأوليان $p$ و $q$ إلى غرفتين مختلفتين، بحيث \u0026ldquo;يذهب $p$ إلى غرفة $(X - Y)$\u0026rdquo; و \u0026ldquo;يذهب $q$ إلى غرفة $(X + Y)$\u0026rdquo; ، هو بالضبط 50٪ (النصف) .\nلنفترض أن العدد الأولي $p$ فقط هو الذي دخل غرفة $(X - Y)$. دعونا نحسب \u0026ldquo;القاسم المشترك الأكبر (أكبر مكون مشترك)\u0026rdquo; بين $(X - Y)$ و $N$.\nمحتوى $(X - Y)$ = $p \\times$ عدد ما محتوى $N$ = $p \\times q$ المكون المشترك الوحيد هنا هو \u0026quot;$p$\u0026quot; ! بمعنى آخر، في اللحظة التي نحسب فيها القاسم المشترك الأكبر، سيتساقط العدد الأولي السري $p$، وسيتم كسر التشفير بالكامل. (يمكن حساب القاسم المشترك الأكبر في لحظة حتى على الهاتف الذكي باستخدام \u0026ldquo;خوارزمية إقليدس\u0026rdquo;)\n[ملاحظة سريعة: لماذا التربيع؟ ألا يمكن التكعيب أو المضاعفة؟]\nإذا استخدمنا \u0026ldquo;$2X - 2Y$\u0026quot;، سيصبح $2(X - Y)$، وستكون هناك غرفة واحدة فقط ولن نتمكن من فصل الأعداد الأولية. إذا استخدمنا \u0026ldquo;$X^3 - Y^3$\u0026quot;، ستصبح أحجام الغرف غير متوازنة، وستكون الحسابات ثقيلة بلا داعٍ. لفصل الأعداد الأولية بشكل مثالي، فإن \u0026ldquo;التربيع\u0026rdquo; الذي يقسمها إلى غرفتين جميلتين هو الخيار الأكثر كفاءة.\nالفصل الثاني: كيف نبحث عن X و Y؟ \u0026ldquo;لغز جمع بطاقات الأعداد الأولية\u0026rdquo; لقد عرفنا الهدف. ومع ذلك، إذا حاولنا البحث عشوائياً عن \u0026ldquo;$X^2$ و $Y^2$ اللذين لهما نفس الباقي\u0026rdquo;، فلن نجدهما حتى نهاية عمر الكون. لذلك، ابتكر علماء الرياضيات طريقة عبقرية تسمى \u0026ldquo;لغز جمع بطاقات الأعداد الأولية\u0026rdquo; .\nالخطوة 1: غربلة وجمع غبار الذهب (الأعداد الناعمة) فقط أولاً، نقوم بإعداد عدد عشوائي $Z$، ونربّعه، ونحسب الباقي $W$ عند قسمته على $N$. (عالم البواقي: $Z^2 = W$)\nنقوم بتحليل الباقي الناتج $W$ إلى عوامل أولية. هنا، فقط عندما يظهر \u0026quot;$W$ الذي يتكون فقط من أعداد أولية صغيرة مثل 2، 3، 5، 7\u0026rdquo; ، نحتفظ بهذه المعادلة كـ \u0026ldquo;بطاقة رابحة\u0026rdquo;، ونتخلص منها إذا اختلط بها عدد أولي كبير. يشبه الأمر استخدام الغربال في النهر للتخلص من الحجارة الكبيرة وجمع غبار الذهب فقط.\nالخطوة 2: لغز جعل الجميع بعدد \u0026ldquo;زوجي\u0026rdquo; على سبيل المثال، لنفترض أننا جمعنا 3 بطاقات من غبار الذهب:\nالبطاقة A: $Z_1^2 = 2^3 \\times 3^1$ البطاقة B: $Z_2^2 = 2^1 \\times 5^1$ البطاقة C: $Z_3^2 = 3^1 \\times 5^1$ دعونا نضربها جميعاً معاً. سيصبح الجانب الأيمن $(2^3 \\times 3^1) \\times (2^1 \\times 5^1) \\times (3^1 \\times 5^1)$، وبتبسيطه سنحصل على \u0026quot;$2^4 \\times 3^2 \\times 5^2$\u0026rdquo; .\nوالمثير للدهشة، أن عدد الأعداد الأولية أصبح \u0026ldquo;4، 2، 2\u0026rdquo;، جميعها أعداد زوجية ! حقيقة أن جميعها زوجية تعني أنه إذا أخذنا نصف الكمية، فسنحصل على \u0026ldquo;تربيع لشيء ما\u0026rdquo;. أي أن $(2^2 \\times 3^1 \\times 5^1)^2 = (60)^2$.\nوبما أن الجانب الأيسر هو $(Z_1 \\times Z_2 \\times Z_3)^2$, فقد حصلنا أخيراً على: $X = (Z_1 \\times Z_2 \\times Z_3)$ $Y = 60$ وهكذا يكتمل الزوج الذي طال انتظاره لـ \u0026ldquo;$X^2 = Y^2$\u0026rdquo;!\nبالنسبة لأجهزة الكمبيوتر، فإن ألغاز حساب ما إذا كان عدد الأعداد الأولية \u0026ldquo;زوجياً أم فردياً (0 أو 1)\u0026rdquo; سهلة للغاية، لذلك يمكن لهذه الطريقة العثور على $X$ و $Y$ بسرعة فائقة.\nالفصل الثالث: جدار اليأس الذي يقف في طريقنا قد تعتقد: \u0026ldquo;بهذا يمكن كسر أي تشفير!\u0026rdquo; \u0026hellip; ولكن تظهر مشكلة كبيرة. إذا كان رقم التشفير $N$ يصل طوله إلى حوالي \u0026ldquo;100 رقم\u0026rdquo;، فيمكن لهذه الطريقة (وتسمى الغربال التربيعي) حله. ولكن عندما يصبح $N$ \u0026ldquo;200 رقم أو 300 رقم\u0026rdquo;، يصبح المتغير $W$ أثناء الحساب ضخماً للغاية.\nعندما تصبح الأعداد ضخمة للغاية، تتوقف \u0026ldquo;الأعداد المكونة فقط من أعداد أولية صغيرة (غبار الذهب)\u0026rdquo; عن الظهور تماماً. يصبح العثور عليها أصعب من العثور على عدسة لاصقة في الصحراء، ونفشل تماماً في جمع البطاقات لحل اللغز.\nوهنا تظهر أخيراً الأداة الأقوى للبشرية: \u0026ldquo;غربال حقل الأعداد العام (GNFS)\u0026rdquo; .\nالفصل الرابع: الفكرة الأقوى للبشرية لإنشاء \u0026ldquo;عالمين\u0026rdquo; الفكرة العبقرية لـ GNFS هي: \u0026ldquo;السبب في أن الأعداد تصبح ضخمة هو أننا نحسب في العالم الحقيقي فقط. إذاً، لنقم بإنشاء \u0026lsquo;عالم موازٍ\u0026rsquo; باستخدام كثيرات الحدود (العبارات الجبرية)، ولنقم بتقسيم عبء الحساب إلى قسمين\u0026rdquo; .\nسحر العبارات الجبرية يقوم GNFS بتحويل العدد الضخم $N$ إلى عبارة جبرية باستخدام رقم أساسي $m$. على سبيل المثال، إذا كان $N=100$، وكان $m=4$، فإن $100 = 4^3 + 2(4^2) + 4$. باستخدام المتغير $x$، نحول هذا إلى المعادلة (في العالم الموازي): $f(x) = x^3 + 2x^2 + x$ .\nالشيء المثير للاهتمام في هذه المعادلة هو خاصيتها: \u0026ldquo;إذا قمنا بتعويض الحرف $x$ بـ $m$ (4 في المثال أعلاه)، فيمكننا في أي وقت العودة (القفز) إلى رقم العالم الحقيقي $N$\u0026rdquo; .\nالبحث عن غبار الذهب في كلا العالمين في وقت واحد يقوم GNFS بإنشاء العديد من أزواج الأعداد الصحيحة العشوائية $(a, b)$، وينفذ العمليتين التاليتين في نفس الوقت:\nالعالم الحقيقي: $a - b \\times m$ عالم الجبر: القيمة المحسوبة لـ $a - b \\times x$ وفقاً لقواعد العبارات الجبرية من خلال تقسيم المشكلة إلى عالمين، ينخفض حجم الأعداد التي يتم التعامل معها بشكل جذري (تصبح أخف وزناً). تخيل أنك تقوم بكسر صخرة عملاقة إلى حجرين صغيرين يسهل التعامل معهما.\nبعد ذلك، وباستخدام الغربال، نجمع فقط الأزواج العجيبة $(a, b)$ التي تكون \u0026ldquo;في كل من العالم الحقيقي وعالم الجبر، مكونة فقط من أعداد أولية صغيرة (غبار الذهب)\u0026rdquo; . وهذا هو أصل اسم \u0026ldquo;غربال حقل الأعداد\u0026rdquo;.\nلحظة كسر التشفير أخيراً بمجرد جمع عشرات الملايين من \u0026ldquo;بطاقات غبار الذهب\u0026rdquo; من كلا العالمين، نستخدم حسابات المصفوفات الضخمة للحواسيب الخارقة للعثور على \u0026ldquo;التجميعة التي يصبح فيها عدد الأعداد الأولية زوجياً بالكامل\u0026rdquo;، تماماً كما فعلنا في الفصل الثاني.\nبمجرد العثور على التجميعة:\nنجعل العدد المربع الذي تم تشكيله في العالم الحقيقي هو $X^2$ ونجعل المعادلة المربعة التي تم تشكيلها في عالم الجبر هي $Y(x)^2$ أخيراً، نقوم بتعويض $x$ في $Y(x)$ من عالم الجبر بـ $m$، لكي نقفز وندمجه مع العالم الحقيقي. وعندها، وكأنه سحر رياضياتي، تتحقق بدقة الحالة التي \u0026ldquo;يكون فيها باقي $X^2$ و $Y^2$ هو نفسه\u0026rdquo; !\nبعد ذلك، وكما هو موضح في الفصل الأول، إذا قمنا بحساب القاسم المشترك الأكبر لـ $X - Y$ و $N$، فإن تشفير RSA المنيع سينهار بصوت عالٍ، وستظهر الأعداد الأولية السرية.\nالخاتمة: الرياضيات لا تنتهي قد تعتقد: \u0026ldquo;حسناً، باستخدام GNFS يمكننا كسر أي تشفير!\u0026rdquo; ومع ذلك، فإن تشفير RSA لم يستسلم. ما يتم استخدامه في الإنترنت اليوم هو عدد ضخم وحشي يُسمى \u0026ldquo;RSA-2048 (حوالي 617 رقماً)\u0026rdquo;.\nبغض النظر عن كون GNFS أقوى خوارزمية للبشرية، يُقال إنه حتى لكسر رقم مكون من 270 رقماً (RSA-270)، فإن الأمر سيستغرق آلاف بل وعشرات الآلاف من السنين حتى لو تم ربط جميع أجهزة الكمبيوتر في العالم معاً. في الوقت الحالي، بياناتنا في LINE والبنوك في أمان.\nولكن، ماذا سيحدث إذا ظهر \u0026ldquo;السحر الذي يجد $X$ و $Y$ في لحظة لأي عدد ضخم\u0026rdquo; ؟ في الواقع، أقرب شيء لذلك قيد التطوير حالياً هو \u0026ldquo;الكمبيوتر الكمي (خوارزمية شور)\u0026rdquo; . لقد ثبت رياضياً أنه باستخدام الخصائص الموجية لميكانيكا الكم، يمكننا تجاوز لغز جمع البطاقات المزعج وسحب الإجابة الصحيحة دفعة واحدة.\nمعركة العقول التي لا نهاية لها بين صانعي التشفير (الدفاع) وصانعي خوارزميات كسر التشفير (الهجوم). عندما تعلم أن \u0026ldquo;التحليل إلى العوامل الأولية\u0026rdquo; و\u0026quot;المعادلات الجبرية\u0026quot; التي تعلمناها في المدرسة الإعدادية هي في الواقع الأسلحة التي تتصادم بشراسة في الخطوط الأمامية للأمن العالمي، ألا تبدو دروس الرياضيات أكثر إثارة للاهتمام قليلاً؟\nقد تكون أنت من يقرأ هذا المقال هو من سيكتشف أقوى خوارزمية في المستقبل!\n(※يقوم هذا المقال بتبسيط الجاذبية الرياضية لفك التشفير لطلاب المدارس الإعدادية. في الواقع، يتم حساب GNFS الفعلي بصرامة باستخدام رياضيات جامعية متقدمة مثل مجموعات الفئات المثالية للحقول الجبرية والتشاكل (Homomorphism))\n","date":"2026-09-05T02:09:08+09:00","image":"http://kenji.blog/p/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AE%E6%9A%97%E5%8F%B7%E3%82%92%E7%A0%B4%E3%82%8B%E4%BA%BA%E9%A1%9E%E6%9C%80%E5%BC%B7%E3%81%AE%E6%95%B0%E5%AD%A6%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%A8%E3%81%AF/gnfs_two_worlds_1788542142485_huf997c6e55368509d0617b56f68899854_1135822_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AE%E6%9A%97%E5%8F%B7%E3%82%92%E7%A0%B4%E3%82%8B%E4%BA%BA%E9%A1%9E%E6%9C%80%E5%BC%B7%E3%81%AE%E6%95%B0%E5%AD%A6%E4%B8%80%E8%88%AC%E6%95%B0%E4%BD%93%E7%AF%A9%E6%B3%95gnfs%E3%81%A8%E3%81%AF/","title":"ما هي أقوى رياضيات للبشرية 'غربال حقل الأعداد العام (GNFS)' التي تكسر تشفير الإنترنت؟"},{"content":"إيجابيات وسلبيات مناهضة اللقاحات: مستقبل 5000 شخص قتلهم \u0026ldquo;القلق بحسن نية\u0026rdquo; والدروس الوبائية التي يجب أن نتعلمها \u0026ldquo;وهم السببية\u0026rdquo; الذي سلط عليه الضوء وباء كورونا منذ عام 2021، تم المضي قدمًا بسرعة في التطعيم بلقاح فيروس كورونا في اليابان. لقد كان مشروعًا للصحة العامة نادرًا في تاريخ البشرية، حيث تم تطعيم ما يقرب من 80٪ من السكان في فترة قصيرة. خلال هذه العملية، شهدنا عددًا لا يحصى من \u0026ldquo;الصرخات\u0026rdquo; عبر وسائل التواصل الاجتماعي ووسائل الإعلام. \u0026ldquo;توفي أحد أفراد أسرتي بعد أيام قليلة من تلقي اللقاح\u0026rdquo;، \u0026ldquo;استمرت مشاكل صحية غير مبررة بعد التطعيم\u0026rdquo; \u0026ndash;. هذه الشكاوى مفجعة، وبالنسبة لأولئك الذين عانوا منها، فإن هذه المعاناة هي حقيقة لا يمكن إنكارها.\nومع ذلك، يوجد هنا \u0026ldquo;فخ\u0026rdquo; وبائي بارد ولكنه مهم للغاية. بالنظر إلى حجم سكان اليابان، سواء تم تطعيمهم أم لا، يموت حوالي 3000 إلى 4000 شخص كل يوم لأسباب مختلفة (المرض، الحوادث، الشيخوخة). إذا تم تطعيم غالبية السكان في وقت واحد، فمن الناحية الاحتمالية، \u0026ldquo;سيموت عدد معين من الأشخاص في اليوم التالي للتطعيم (لأسباب لا علاقة لها باللقاح)\u0026rdquo;. في المصطلحات المتخصصة، يسمى هذا \u0026ldquo;المصادفة\u0026rdquo; (Coincidence) .\nالبشر مجهزون بانحياز معرفي يسمى \u0026ldquo;مغالطة ما بعد الحدث\u0026rdquo; (post hoc ergo propter hoc). إذا \u0026ldquo;حدث B (الوفاة) بعد A (التطعيم)\u0026quot;، فإننا نستنتج بشكل حدسي أن \u0026ldquo;A هو سبب B\u0026rdquo;. خلال الوباء، تضخم هذا الانحياز المعرفي من خلال وسائل التواصل الاجتماعي، مما خلق شريحة من المجتمع ترسخت فيها صورة \u0026ldquo;اللقاح = الخطر\u0026rdquo; قبل التحقق العلمي.\nراقب العديد من خبراء الصحة العامة هذا المشهد بشعور بالتكرار. لأنه قبل بضع سنوات فقط، كانت اليابان الدولة المتقدمة الوحيدة التي تخلت طواعية عن وسيلة للوقاية من الأمراض التي يمكن الوقاية منها بسبب هذا \u0026ldquo;القلق بلا علم\u0026rdquo;. هذه هي مشكلة \u0026ldquo;لقاح سرطان عنق الرحم (لقاح فيروس الورم الحليمي البشري HPV)\u0026rdquo; .\nماذا حدث في اليابان عام 2013؟ دعونا نعود بالزمن إلى الوراء قليلاً. يصيب سرطان عنق الرحم حوالي 11000 امرأة سنويًا ويحصد أرواح حوالي 2900 شخص. وغالبًا ما يُطلق عليه \u0026ldquo;قاتل الأمهات\u0026rdquo; لأنه يصيب النساء في العشرينيات إلى الأربعينيات من العمر، في ذروة تربية الأطفال والحياة المهنية. السبب هو الإصابة بفيروس الورم الحليمي البشري (HPV)، وهو فيروس شائع يصيب 80٪ من النساء النشيطات جنسياً مرة واحدة على الأقل في حياتهن. تم إدخال لقاح فيروس الورم الحليمي البشري، الذي يمنع الإصابة بهذا الفيروس، في جميع أنحاء العالم كـ \u0026ldquo;لقاح اختراق يمكن أن يمنع السرطان\u0026rdquo;، وفي اليابان أصبح تطعيمًا روتينيًا (يوصى به بشدة من قبل الحكومة ومتاح مجانًا) في أبريل 2013.\nومع ذلك، سرعان ما اتخذت الأمور منعطفًا مظلمًا. أبلغت بعض الفتيات اللاتي تم تطعيمهن عن أعراض مثل آلام في جميع أنحاء الجسم، واضطرابات حركية، ومشاكل في الذاكرة. وقد أبلغت وسائل الإعلام عن ذلك على نطاق واسع كل يوم باعتباره \u0026ldquo;اشتباهًا في آثار جانبية للقاح\u0026rdquo;. وكان لقطات الفتيات اللاتي يعانين من تشنجات تأثير قوي على المشاهدين، وسرعان ما تحول الرأي العام نحو نظرية \u0026ldquo;اللقاح الخطير\u0026rdquo;.\nرداً على ذلك، قررت وزارة الصحة والعمل والرفاهية في يونيو 2013، بعد شهرين فقط من بدء التطعيم الروتيني، \u0026ldquo;تعليق التوصية النشطة\u0026rdquo;. لم يكن هذا \u0026ldquo;حظرًا\u0026rdquo; أو \u0026ldquo;إلغاءً\u0026rdquo;، بل كان قرارًا سياسيًا غامضًا للغاية بـ \u0026ldquo;الحفاظ على إطار التطعيم الروتيني ولكن التوقف عن إرسال إشعارات فردية من الحكومة\u0026rdquo;. ومع ذلك، فقد وصل ذلك إلى الجمهور كرسالة مفادها أن \u0026ldquo;الحكومة اعترفت بالخطر وأوقفته\u0026rdquo;. ونتيجة لذلك، انخفض معدل التطعيم، الذي كان يزيد عن 70٪، إلى أقل من 1٪ في غمضة عين.\nمن هنا، بدأت \u0026ldquo;السنوات الثماني الضائعة\u0026rdquo; (Vaccine Gap) في اليابان.\n\u0026ldquo;الحقيقة\u0026rdquo; التي كشفتها دراسة ناغويا هل كانت الأعراض التي أبلغت عنها وسائل الإعلام ناجمة حقًا عن اللقاح؟ كان هناك استطلاع واسع النطاق حاول الإجابة على هذا السؤال علميًا. يُعرف هذا باسم \u0026ldquo;دراسة ناغويا\u0026rdquo; (Nagoya Study) .\nفي عام 2015، أجرت مدينة ناغويا استبيانًا واسع النطاق شمل حوالي 70 ألف شابة. شمل الاستطلاع كلاً من \u0026ldquo;المطعمين\u0026rdquo; و \u0026ldquo;غير المطعمين\u0026rdquo;، وسأل عن وجود أو عدم وجود 24 عرضًا، مثل \u0026ldquo;عدم انتظام الدورة الشهرية\u0026rdquo; و \u0026ldquo;آلام المفاصل\u0026rdquo; و \u0026ldquo;انخفاض التركيز\u0026rdquo;. إذا كان اللقاح هو السبب، فيجب أن تكون هذه الأعراض أكثر شيوعًا بشكل ملحوظ في مجموعة \u0026ldquo;المطعمين\u0026rdquo;.\nكانت النتائج صادمة. لم يلاحظ أي فرق معنوي في معدل حدوث الأعراض بين \u0026ldquo;المجموعة المطعمة\u0026rdquo; و \u0026ldquo;المجموعة غير المطعمة\u0026rdquo;.\nماذا يعني هذا؟ الفتيات المراهقات، بغض النظر عما إذا كن قد تم تطعيمهن أم لا، عرضة لمشاكل صحية مثل اضطرابات التنظيم الانتصابي والألم المزمن بسبب التغيرات في التوازن الهرموني والظروف الخاصة بالبلوغ. بمعنى آخر، كانت هناك نسبة من \u0026ldquo;الفتيات اللاتي لم يتم تطعيمهن ولكن ظهرت عليهن نفس الأعراض\u0026rdquo; تعادل تقريبًا عدد \u0026ldquo;الفتيات اللاتي ظهرت عليهن أعراض بعد التطعيم\u0026rdquo; كما أفادت وسائل الإعلام. ومع ذلك، تم التعامل مع المشاكل الصحية لدى الفتيات غير المطعمات على أنها \u0026ldquo;اضطرابات سن البلوغ\u0026rdquo;، في حين تم تسليط الضوء فقط على الشكاوى لدى الفتيات المطعمات كـ \u0026ldquo;ضرر اللقاح\u0026rdquo;. أظهرت البيانات أن هذا هو على الأرجح الطبيعة الحقيقية للظاهرة التي أحدثت ضجة باعتبارها \u0026ldquo;كارثة طبية\u0026rdquo;.\nبالإضافة إلى ذلك، تمت الإشارة أيضًا إلى تورط \u0026ldquo;تأثير نوسيبو\u0026rdquo; (Nocebo effect). على عكس تأثير \u0026ldquo;الدواء الوهمي\u0026rdquo;، إنها ظاهرة يحدث فيها الألم أو المرض حقًا بسبب القلق والخوف عندما تتناول شيئًا معتقدًا أنه \u0026ldquo;مضر بالصحة\u0026rdquo;. لا يمكن إنكار أن وابل التقارير السلبية قد أثر على عقول وأجساد الفتيات الهشة.\n\u0026ldquo;خطيئة الإغفال\u0026rdquo; بالأرقام \u0026ldquo;وقف التوصية فقط في حالة\u0026rdquo;. يبدو هذا القرار للوهلة الأولى \u0026ldquo;خيارًا حذرًا وآمنًا\u0026rdquo;. نظرًا لأنه سيكون قد فات الأوان للتصرف بعد حدوث شيء ما، يجب إيقاف أي شيء مشبوه. ومع ذلك، في مجال الصحة العامة، يؤدي \u0026ldquo;عدم فعل أي شيء\u0026rdquo; (الإغفال) أحيانًا إلى أضرار تفوق بكثير خطر \u0026ldquo;فعل شيء ما\u0026rdquo;.\nنشر فريق بحث من جامعة أوساكا تقديرات قاسية بشأن تأثير هذا التعليق للتوصية. بسبب الانخفاض الحاد في معدل التطعيم بين عامي 2013 و 2019، سيزداد عدد مرضى سرطان عنق الرحم في المستقبل، والذي كان من الممكن الوقاية منه، بحوالي 25000 شخص، وسيزداد عدد الوفيات بحوالي 5000 إلى 5700 شخص.\nأكثر من 5000 حالة وفاة. هذا رقم يمكن مقارنته بكارثة طبيعية واسعة النطاق. ونتيجة لمحاولة تجنب خطر لم تثبت السببية فيه علميًا -\u0026ldquo;القلق بشأن الآثار الجانبية\u0026rdquo;- قمنا بتحميل النساء في المستقبل عبء الخطر المؤكد والخطير المتمثل في \u0026ldquo;الوفاة بسبب السرطان\u0026rdquo;.\nإذا نظرنا إلى العالم، فإن الاختلاف واضح. في أستراليا، بفضل انتشار التطعيم بين الرجال والنساء، من المتوقع أن يتم \u0026ldquo;القضاء\u0026rdquo; على سرطان عنق الرحم (ليصبح سرطانًا نادرًا) بحلول عام 2028 تقريبًا. وهناك أيضًا تقارير من المملكة المتحدة تفيد بأن الإصابة بسرطان عنق الرحم في الجيل المطعم قد انخفضت إلى ما يقرب من الصفر. بينما يتحرك العالم نحو مستقبل \u0026ldquo;قهر السرطان\u0026rdquo;، بقيت اليابان وحدها في الماضي حيث \u0026ldquo;يستمر السرطان في الزيادة\u0026rdquo;. في عام 2015، انتقدت اللجنة الاستشارية العالمية لسلامة اللقاحات التابعة لمنظمة الصحة العالمية وضع اليابان تحديدًا، مشيرة إلى أن: \u0026ldquo;القرارات السياسية التي لا تستند إلى أدلة علمية تؤدي إلى ضرر حقيقي (الوفاة بسبب السرطان)\u0026rdquo;.\nسلسلة \u0026ldquo;التردد في أخذ اللقاحات\u0026rdquo; عبر البحار مأساة لقاح فيروس الورم الحليمي البشري التي حدثت في اليابان ليست بأي حال من الأحوال \u0026ldquo;وضعًا خاصًا باليابان\u0026rdquo;. حتى الآن، هناك حالات تم الإبلاغ عنها في جميع أنحاء العالم تظهر أنه عندما يُعطى \u0026ldquo;القلق البديهي\u0026rdquo; أو \u0026ldquo;الأيديولوجيا\u0026rdquo; الأولوية على العلم، يمكن للأمراض المعدية أن تكشر عن أنيابها في أي وقت وفي أي مكان.\nوالمثال البارز على ذلك هو وباء \u0026ldquo;الحصبة\u0026rdquo; في الولايات المتحدة.\nالحصبة فيروس شديد العدوى، لكن المرض يمكن الوقاية منه بالكامل تقريبًا باللقاح. في الولايات المتحدة، من خلال برنامج تطعيم شامل، تم الإعلان عن \u0026ldquo;القضاء\u0026rdquo; (elimination) عليها في عام 2000. بعبارة أخرى، اعتبر الفيروس المتوطن قد اختفى من داخل البلاد. ومع ذلك، بدأت الحصبة في الانتشار مرة أخرى في السنوات الأخيرة.\nوفقًا لتقارير بي بي سي (2024)، أشارت السلطات الصحية الأمريكية إلى أن \u0026ldquo;التردد في أخذ اللقاحات\u0026rdquo; (Vaccine Hesitancy) المتجذر في بعض المجتمعات أصبح أرضًا خصبة للعدوى. وقد انخفضت معدلات التطعيم في المناطق التي تتغلغل فيها الأسباب الدينية، أو المجموعات التي تدعو إلى نمط حياة \u0026ldquo;طبيعي\u0026rdquo;، أو الأيديولوجيات المناهضة للقاحات القائمة على معلومات مضللة. وعندما يتم جلب الفيروس من الخارج إلى هذه المناطق، تحدث تفشيات متفجرة بين الأشخاص الذين يفتقرون إلى المناعة.\nالحصبة ليست مجرد مرض ينتهي بالحمى أو الطفح الجلدي. يمكن أن يسبب مضاعفات خطيرة مثل الالتهاب الرئوي أو التهاب الدماغ، وحتى في البلدان المتقدمة، يمكن أن يكون قاتلاً. المرض الذي كان البشر قد \u0026ldquo;احتووه\u0026rdquo; ذات يوم من خلال الجمع بين حكمتهم، يهدد الآن حياة الأطفال مرة أخرى من خلال استغلال \u0026ldquo;شكوك\u0026rdquo; الناس. تحذرنا القضية في الولايات المتحدة: \u0026ldquo;يمكن لحاجز معدلات التطعيم المرتفعة أن ينهار في لحظة إذا اهتزت ثقة الناس\u0026rdquo;.\nهزيمة وسائل الإعلام والخبراء وجميعنا لماذا تتكرر هذه المواقف؟ السبب يكمن في عدم تناسق المعلومات الفريد في المجتمع الحديث وانحيازنا المعرفي.\nفي قضية لقاح فيروس الورم الحليمي البشري في اليابان، أبلغت وسائل الإعلام عن \u0026ldquo;الآثار الجانبية المشتبه بها\u0026rdquo; بشكل مثير. كان إطار \u0026ldquo;الضحايا المساكين\u0026rdquo; مقابل \u0026ldquo;الدولة وشركات الأدوية الباردة\u0026rdquo; قويًا جدًا وتلاعب بمشاعر المشاهدين بقوة. من ناحية أخرى، فإن التفسيرات العلمية من الخبراء مثل \u0026ldquo;لا يوجد فرق ذو دلالة إحصائية\u0026rdquo; أو \u0026ldquo;الفوائد تفوق المخاطر\u0026rdquo; بدت جافة وباردة، وكانت عاجزة للغاية أمام سيل المشاعر.\nفي عالم العلم، إذا كانت هناك نظرية ثابتة يدعمها 99٪ من العلماء و 1٪ معارضة، فلا يتم التعامل معها على أنها \u0026ldquo;آراء متساوية\u0026rdquo;. ومع ذلك، ولأن وسائل الإعلام تركز بشكل مفرط على \u0026ldquo;الإنصاف\u0026rdquo; أو لجذب الانتباه، فقد أبلغوا عن البيانات التي يمكن أن تنقذ عشرات الآلاف من الأرواح والشكوى العاطفية من ضحية واحدة كشيء \u0026ldquo;متساوٍ\u0026rdquo;. كما أعطى السياسيون، خوفًا من رد فعل الرأي العام، الأولوية لـ \u0026ldquo;قراءة الأجواء\u0026rdquo; على الأدلة العلمية. ونتيجة لذلك، تم تعليق التوصية النشطة بلقاح فيروس الورم الحليمي البشري في اليابان لمدة 9 سنوات تقريبًا، مما أدى إلى العديد من حالات السرطان التي كان من الممكن الوقاية منها.\nالتاريخ يعيد نفسه: الذكاء لمقاومة \u0026ldquo;الأجواء\u0026rdquo; في عام 2022، استأنفت اليابان أخيرًا التوصية النشطة بلقاح فيروس الورم الحليمي البشري. ومع ذلك، لا يمكن استعادة الوقت والأرواح المفقودة. وكما يظهر وباء الحصبة الحالي في الولايات المتحدة، إذا تخلينا عن حذرنا، فإن التاريخ سيعيد نفسه مرارًا وتكرارًا.\nلا يمكننا أن ننكر تمامًا حركة مناهضة اللقاحات أو القلق بشأن الرعاية الطبية نفسها. إنها غريزة دفاعية بشرية أن نكون حذرين بشأن ما نضعه في أجسادنا، وقد حدثت كوارث طبية بالفعل في الماضي. من المهم في ظل الديمقراطية مراقبة السلطة والتشكيك فيها.\nومع ذلك، فإن سلسلة الأحداث المحيطة بلقاحات كورونا، ولقاحات فيروس الورم الحليمي البشري، ووباء الحصبة في الولايات المتحدة تواجهنا بحقيقة قاسية مفادها أن \u0026ldquo;القلق بحسن نية الذي يتجاهل العلم\u0026rdquo; يمكن أن يحصد أرواحًا أكثر من الفيروس نفسه.\n\u0026ldquo;قد يكون الأمر خطيرًا، دعنا ننتظر ونرى\u0026rdquo;. عند اتخاذ هذا القرار، هل أخذنا في الاعتبار \u0026ldquo;احتمال الموت بسبب المرض أثناء الانتظار\u0026rdquo;؟ \u0026ldquo;الأشياء الطبيعية هي الأفضل\u0026rdquo;. عندما نقول هذا، هل نسينا التاريخ القائل بأن \u0026ldquo;الفيروسات في الطبيعة هي الأكثر قسوة في حصد الأرواح\u0026rdquo;؟\nستظهر أمراض معدية جديدة وسيتم تطوير لقاحات جديدة في المستقبل. في ذلك الوقت، هل سننخدع مرة أخرى بظاهرة \u0026ldquo;المصادفة\u0026rdquo; وننجرف وراء التحريض العاطفي؟ أم سنكون قادرين على تحليل البيانات بهدوء وموازنة المخاطر مقابل الفوائد؟\nيقال إن التاريخ يعيد نفسه. ومع ذلك، فإن الشيء الوحيد الذي يمكنه إيقاف ذلك هو عقلانيتنا. من خلال النظر إلى بيانات صحيحة إحصائيًا، يجب أن نمتلك الذكاء لاختيار \u0026ldquo;الحقائق\u0026rdquo; بدلاً من \u0026ldquo;الأجواء\u0026rdquo;. هذه هي مسؤوليتنا نحن الذين نعيش في العصر الحديث.\nالمراجع ومصادر البيانات وزارة الصحة والعمل والرفاهية (MHLW) : \u0026ldquo;عدوى فيروس الورم الحليمي البشري - سرطان عنق الرحم ولقاح فيروس الورم الحليمي البشري\u0026rdquo; المركز الوطني للسرطان في اليابان (NCC) : خدمة معلومات السرطان \u0026ldquo;سرطان عنق الرحم\u0026rdquo; بيانات إحصائية بي بي سي نيوز (اليابان) : \u0026ldquo;مراكز مكافحة الأمراض والوقاية منها تدعو إلى التطعيم وسط تفشي الحصبة - زيادة عالمية في الإصابات\u0026rdquo; (2024) والمقالات الأصلية ذات الصلة فريق أبحاث جامعة أوساكا (Yagi A, et al. Lancet Public Health. 2020) : دراسة تقديرية للمراضة والوفيات الزائدة بسبب تعليق التوصية النشطة للتطعيم الروتيني ضد فيروس الورم الحليمي البشري Nagoya Study (Suzuki S, et al. Papillomavirus Res. 2018) ","date":"2026-01-24T15:41:23+09:00","image":"http://kenji.blog/p/%E5%8F%8D%E3%83%AF%E3%82%AF%E3%83%81%E3%83%B3%E3%81%AE%E5%8A%9F%E7%BD%AA/img_hu25fb505b5ce09f8b6e475386b0bbff8f_1013820_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/anti-vaccine-pros-cons-ar/","title":"إيجابيات وسلبيات مناهضة اللقاحات"},{"content":"أسطورة وواقع \u0026ldquo;اليابانيون أولاً\u0026rdquo;: دفاع اليابان باسم \u0026ldquo;التعايش\u0026rdquo; في عام 2026 مقدمة: لماذا تلامس هذه الكلمات القلوب الآن بالذات عام 2026. نقف اليوم عند نقطة تحول غير مسبوقة في عصرنا. تضخم طويل الأمد، وركود في نمو الأجور الحقيقية، وشيخوخة سريعة للسكان مع انكماش أعدادهم. في كل مرة يتم فيها تغيير بطاقات الأسعار على رفوف المتاجر، يلقي القلق بشأن المستقبل بظلاله على قلوبنا.\nفي خضم هذا الشعور بالانسداد، هناك عبارة تكتسب دعماً سريعاً. وهي \u0026ldquo;اليابانيون أولاً\u0026rdquo; (Japan First).\nالرغبة في أن \u0026ldquo;تقوم الحكومة بإثراء حياة مواطنيها أولاً\u0026rdquo; و\u0026quot;حماية الثقافة اليابانية والأمن العام كأولوية قصوى\u0026quot; هي رغبة طبيعية وملحة للغاية كأي مواطن ذي سيادة وإنسان يعيش في هذا البلد. ومع ذلك، بين \u0026ldquo;المثالية\u0026rdquo; التي ترفعها هذه العبارة و\u0026quot;الواقع\u0026quot; الذي تظهره البيانات الإحصائية، توجد فجوة كبيرة يجب أن نواجهها بصدق.\nفي هذا المقال، سنضع الحجج العاطفية والتصنيفات جانباً، ونكشف عن الهوية الحقيقية لهذه المشكلة بناءً على بيانات موضوعية، وتغيرات زمنية، وحقائق تحدث في مختلف الجبهات الأمامية للمجتمع.\nالفصل الأول: التسلسل الزمني لـ \u0026ldquo;اليابانيون أولاً\u0026rdquo; والخلفية الاجتماعية لم تظهر هذه العبارة فجأة. بل تشكلت من خلال تشابك معقد للاتجاهات العالمية والظروف الفريدة لليابان.\n1. 2016-2017: استيراد وترسيخ المصطلح في عام 2016، أحدث شعار \u0026ldquo;أمريكا أولاً\u0026rdquo; الذي رفعه دونالد ترامب صدمة في جميع أنحاء العالم. محلياً في عام 2017، جذب حزب \u0026ldquo;مواطنو طوكيو أولاً\u0026rdquo; بقيادة حاكمة طوكيو يوريكو كويكي الانتباه. في هذه المرحلة، كان الخطاب يستخدم في الغالب لتوضيح أولويات السياسة، وكانت النبرة المعادية للأجانب لا تزال محدودة.\n2. 2023-2024: تصور القلق بصرياً ضرب تأخر التعافي الاقتصادي بعد الجائحة والتضخم المصاحب للانخفاض الحاد في قيمة الين الأسر العادية بقوة. وفي الوقت نفسه، بدأت الشكاوى القائمة على معلومات مجزأة بالظهور على وسائل التواصل الاجتماعي، مثل \u0026ldquo;الدعم للأجانب سخي للغاية\u0026rdquo; أو \u0026ldquo;أموال ضرائب اليابانيين تذهب للأجانب\u0026rdquo;.\n3. 2025-2026: اندماج القوى السياسية ووسائل التواصل الاجتماعي في الانتخابات الوطنية لعام 2025، ضمنت القوى السياسية التي رفعت \u0026ldquo;اليابانيون أولاً\u0026rdquo; كشعار رسمي لها عدداً معيناً من المقاعد. تفاعلت خوارزميات وسائل التواصل الاجتماعي مع قلق الناس بإعطاء الأولوية للمنشورات الراديكالية، مما أدى إلى تسريع \u0026ldquo;ظاهرة غرف الصدى\u0026rdquo; حيث يتم تعزيز قيم معينة فقط.\nسلطت أحدث استطلاعات الرأي العام التي أجرتها الصحف المختلفة (أواخر عام 2025) الضوء على وضع انقسم فيه الرأي العام بحدة، حيث قال 42% \u0026ldquo;أوافق أو أوافق إلى حد ما\u0026rdquo; و 38% \u0026ldquo;لا أوافق أو لا أوافق إلى حد ما\u0026rdquo; تجاه هذا الشعار.\nالفصل الثاني: الحقيقة حول الاقتصاد والضمان الاجتماعي —— \u0026ldquo;ناهبون\u0026rdquo; أم \u0026ldquo;ركيزة داعمة\u0026rdquo;؟ من الركائز الأساسية للمنطق الذي يدعم \u0026ldquo;اليابانيون أولاً\u0026rdquo; هو التصور بأن \u0026ldquo;موارد اليابانيين تُسلب من قبل الأجانب\u0026rdquo;. ومع ذلك، تظهر البيانات الأولية من الوزارات الحكومية واقعاً معاكساً تماماً لهذا الحدس.\n1. القوى العاملة: \u0026ldquo;الدم الحيوي\u0026rdquo; الذي يحافظ على الاقتصاد الياباني وفقاً لتقرير \u0026ldquo;حالة توظيف الأجانب (حتى نهاية أكتوبر 2024)\u0026rdquo; الصادر عن وزارة الصحة والعمل والرفاهية، بلغ عدد العمال الأجانب 2,048,675 شخصاً . وفي التقديرات الحالية لعام 2026، تجاوز العدد بالفعل 2.3 مليون شخص .\nقطاع الصناعة النسبة / معدل نمو العمال الأجانب الواقع والدور البناء زيادة بنحو 22.7% عن العام السابق ضروري لصيانة البنية التحتية وإصلاح الجسور والطرق المتهالكة. الصحة والرعاية زيادة بنحو 28.1% عن العام السابق يعملون في الخطوط الأمامية للرعاية، ويدعمون كبار السن اليابانيين. التصنيع يمثلون حوالي 26% من الإجمالي العمود الفقري الذي يدعم مواقع صناعة التصدير في اليابان. في الوقت الحاضر، هم لا يأخذون الوظائف التي يرغب اليابانيون في القيام بها، بل يملؤون \u0026ldquo;الفراغات التي لم يعد بإمكان اليابانيين سدها\u0026rdquo; . إذا استبعدناهم باسم \u0026ldquo;اليابانيون أولاً\u0026rdquo;، فإن نظام الرعاية لدينا سينهار على الفور، وسترتفع أسعار الإسكان والمواد الغذائية بعشرات النسب المئوية وربما تتضاعف.\n2. الضمان الاجتماعي: الشائعات والواقع حول المساعدات المعيشية أكثر ما يتم تداوله على وسائل التواصل الاجتماعي هو الادعاء بأن \u0026ldquo;الأجانب يتلقون المساعدات المعيشية بشكل تفضيلي\u0026rdquo;. ومع ذلك، بالنظر إلى إحصاءات وزارة الصحة والعمل والرفاهية، فإن نسبة الأسر التي يعيلها أجنبي من بين جميع الأسر المتلقية للمساعدات تبلغ حوالي 2.8 إلى 2.9% فقط. وعلى مدار أكثر من عشر سنوات ماضية، ظلت هذه النسبة شبه ثابتة.\nعلى العكس من ذلك، بالنظر إلى التركيبة العمرية للمقيمين الأجانب، نجد أن غالبيتهم من جيل سن العمل في العشرينات إلى الأربعينات من العمر . فهم يدفعون أقساط التأمين التقاعدي والتأمين الصحي، ويلعبون دور \u0026ldquo;المساهمين\u0026rdquo; الذين يدعمون معاشات التقاعد والنفقات الطبية التي يتلقاها \u0026ldquo;كبار السن اليابانيون\u0026rdquo; . إنهم، ولا أحد غيرهم، من يملأون فراغ الجيل العامل الذي تركه اليابانيون ويطيلون عمر نظام الضمان الاجتماعي الياباني.\nالفصل الثالث: انحياز الأمن العام ووسائل التواصل الاجتماعي —— التفكيك المنطقي لـ \u0026ldquo;جرائم الأجانب\u0026rdquo; القلق بشأن الأمن العام هو أكثر ما يثير مشاعر \u0026ldquo;اليابانيون أولاً\u0026rdquo; بقوة. ومع ذلك، فإن القراءة المتأنية لإحصاءات وكالة الشرطة الوطنية و\u0026quot;الكتاب الأبيض للجريمة\u0026quot; الصادر عن وزارة العدل تكشف كيف أن صورة \u0026ldquo;الأجنبي العنيف\u0026rdquo; على الإنترنت تُخلق من خلال التشوهات المعرفية.\n1. مقارنة هادئة بين \u0026ldquo;الإجمالي\u0026rdquo; و\u0026quot;معدل الجريمة\u0026quot; وفقاً للإحصاءات الصادرة في عام 2024، تبلغ نسبة الأجانب من بين إجمالي المقبوض عليهم حوالي 5.5% . الـ 95% المتبقية هي جرائم يرتكبها يابانيون.\nمقارنة عدد المقبوض عليهم لكل 100,000 نسمة (معدل الجريمة) تكشف الجوهر بشكل أكبر.\nالفئة المقبوض عليهم لكل 100,000 نسمة (تقديري) اليابانيون (جميع الأعمار) حوالي 142.7 شخصاً المقيمون الأجانب (مقيمون دائمون/طويلو الأمد) حوالي 120.0 شخصاً إنها حقيقة إحصائية أن معدل الجريمة بين المقيمين الأجانب على المدى المتوسط والطويل في اليابان أقل من المتوسط العام لجميع اليابانيين .\n2. سحر التحيز \u0026ldquo;الجيلي\u0026rdquo; لماذا تسيطر صورة \u0026ldquo;الأجانب مخيفون\u0026rdquo;؟ السبب الأكبر هو الاختلاف في \u0026ldquo;التركيبة العمرية\u0026rdquo; في علم الجريمة.\nاليابانيون: حوالي 30% منهم كبار سن لديهم معدل جريمة منخفض للغاية. نظراً لأن هذه المجموعة تخفض \u0026ldquo;المقام\u0026rdquo;، تبدو الأرقام الإجمالية لليابان منخفضة. الأجانب: لأنهم يأتون إلى اليابان كقوة عاملة، فإن أكثر من 80% منهم ينتمون إلى \u0026ldquo;الفئة العمرية من الشباب إلى منتصف العمر\u0026rdquo;، وهي الفئة الأكثر عرضة إحصائياً لارتكاب الجرائم . إذا قارنا معدل الجريمة بين اليابانيين والأجانب تحت نفس الشرط، أي فئة \u0026ldquo;العشرينات\u0026rdquo;، فلن نجد فرقاً كبيراً بينهما. بعبارة أخرى، ليس \u0026ldquo;الأمن تدهور بسبب زيادة عدد الأجانب\u0026rdquo;، بل هو ببساطة أن \u0026ldquo;الفئة العمرية المعرضة لارتكاب الجرائم (الشباب) موجودة في اليابان في صورة أجانب\u0026rdquo; .\n3. \u0026ldquo;الانحياز التأكيدي\u0026rdquo; الذي تخلقه وسائل التواصل الاجتماعي تستخدم خوارزميات وسائل التواصل الاجتماعي \u0026ldquo;قلقنا\u0026rdquo; كوقود. عندما تحدث جريمة واحدة من قبل أجنبي، يتم ربطها بـ \u0026ldquo;سمته (جنسيته)\u0026rdquo; ونشرها بشراسة. ونتيجة لذلك، يتم تعزيز ذكرى \u0026ldquo;أجنبي يتسبب في حادثة مرة أخرى\u0026rdquo; في أدمغتنا فقط.\nيسمى هذا \u0026ldquo;الانحياز التأكيدي\u0026rdquo; . يتم تجاهل جرائم اليابانيين، التي تمثل 95% من الإجمالي، كأحداث \u0026ldquo;يومية\u0026rdquo;، وتتحول الـ 5% من جرائم الأجانب لتمثل صورة \u0026ldquo;جميع الأجانب\u0026rdquo;.\nالفصل الرابع: توريث الثقافة —— \u0026ldquo;مدمرون\u0026rdquo; أم \u0026ldquo;منقذون\u0026rdquo;؟ المخاوف من أن \u0026ldquo;التقاليد والثقافة اليابانية يتم تدميرها\u0026rdquo; تختلف أيضاً عن الواقع على الأرض.\n1. \u0026ldquo;الورثة الأخيرون\u0026rdquo; للحرف التقليدية انخفض عدد العاملين في صناعة الحرف التقليدية اليابانية من حوالي 300,000 في السبعينيات إلى حوالي 50,000 فقط اليوم. من ينقذ هذه الأزمة من الانقراض هم الأجانب الذين جاؤوا إلى اليابان باحترام عميق للثقافة اليابانية.\nمصانع الساكي وصناع السيوف: أصبح الأجانب متدربين في ورش العمل حيث استسلم اليابانيون عن نقل المعرفة، ومن خلال جلب قدرتهم على البث للخارج وإحساسهم الجديد، يعيدون إحياء ثقافة كانت على شفا الإغلاق إلى \u0026ldquo;صناعة مستدامة\u0026rdquo;. 2. الحفاظ على المجتمعات المحلية في الحكومات المحلية حيث اختفى الشباب وأصبحت \u0026ldquo;مدناً معرضة لخطر الزوال\u0026rdquo;، أصبح المتدربون الفنيون والعمال الأجانب المهرة منظمين للمهرجانات المحلية ويدعمون أساس الزراعة. من الذي يزرع الأراضي الزراعية المهجورة التي تركها اليابانيون، ومن الذي يحمي الأحداث السنوية التي استمرت لمئات السنين؟ إذا نظرنا إلى هذا الواقع، يتضح أنهم ليسوا \u0026ldquo;مدمرين\u0026rdquo; للثقافة، بل هم \u0026ldquo;خط الدفاع الأخير\u0026rdquo; .\nالفصل الخامس: المخاوف في البيئة التعليمية وسلسلة \u0026ldquo;التنمر\u0026rdquo; الآثار الجانبية لإدخال مصطلح \u0026ldquo;اليابانيون أولاً\u0026rdquo; في البيئة التعليمية خطيرة للغاية.\nالتقسيم الثنائي بين \u0026ldquo;الداخل والخارج\u0026rdquo;: إذا استبطن الأطفال إحساساً زائفاً بالنخبوية بأن \u0026ldquo;اليابانيين هم طبقة متميزة يجب إعطاؤها الأولوية\u0026rdquo;، فسيؤدي ذلك بسهولة إلى التنمر لإقصاء \u0026ldquo;أولئك المختلفين عنا\u0026rdquo;. التسلسل الهرمي بناءً على الأصول: يتعرض الأطفال ذوو المظاهر أو الأسماء المختلفة للهجوم باعتبارهم \u0026ldquo;ليسوا يابانيين\u0026rdquo; حتى لو كانوا يحملون الجنسية اليابانية. هذا انهيار للتعليم وتصرف يضر بالمواهب التي ستقود مستقبل اليابان. يخشى الخبراء في مجال التعليم من أن حصرية كلمة \u0026ldquo;أولاً\u0026rdquo; تقوض قدرة الأطفال على التعايش متعدد الثقافات، مما يهدد بعزل اليابان عن العالم نتيجة لذلك.\nالفصل السادس: الاتجاهات العالمية وموجة الشعبوية هذه الظاهرة ليست فريدة من نوعها في اليابان. في الدول الغربية أيضاً، هناك ظاهرة مستمرة حيث تتجه الطبقات التي لم تستفد من العولمة نحو الشعبوية التي ترفع شعار \u0026ldquo;بلدي أولاً\u0026rdquo;.\nومع ذلك، فإن الاختلاف الحاسم بين اليابان والدول الغربية هو حقيقة أن \u0026ldquo;تعداد السكان يتقلص بأسرع وتيرة في العالم\u0026rdquo; . في حين أن الدول الأخرى لديها خيار \u0026ldquo;التقييد\u0026rdquo;، فإن اليابان تمتلك بالفعل بنية تحتية اجتماعية لا حصر لها لا يمكن الحفاظ عليها دون \u0026ldquo;التعاون\u0026rdquo;. التمسك بالنهج العاطفي لـ \u0026ldquo;أولاً\u0026rdquo; يعني منطقياً \u0026ldquo;انتحاراً بطيئاً\u0026rdquo;.\nخاتمة: ما هو \u0026ldquo;اليابانيون أولاً\u0026rdquo; الحقيقي؟ الرغبة الكامنة وراء كلمات \u0026ldquo;اليابانيون أولاً\u0026rdquo; — الأمل في أن \u0026ldquo;حياة المواطنين يجب أن يُفكر فيها أولاً\u0026rdquo; — هي المسؤولية الأساسية التي يجب أن تتحملها أي حكومة.\nومع ذلك، يجب ألا تكون وسيلة تحقيق تلك الرغبة هي \u0026ldquo;إقصاء الجيران\u0026rdquo;. كما تظهر البيانات الموضوعية، فإن راحة المعيشة والأمن العام والثقافة التقليدية ونظام الضمان الاجتماعي نفسه الذي نتمتع به اليوم يقع في مرحلة \u0026ldquo;الاعتماد والتعايش\u0026rdquo; التي لم يعد من الممكن الحفاظ عليها دون وجود الأجانب.\nأليس \u0026ldquo;اليابانيون أولاً\u0026rdquo; الحقيقي هو الممارسة الهادئة للنقاط الثلاث التالية؟\nالنقاش القائم على الحقائق: فهم الواقع بناءً على الإحصاءات الأولية للوزارات الحكومية بدلاً من الانجراف وراء الشائعات والمعلومات المبالغ فيها. وضع قواعد عادلة: مطالبة الأجانب بالالتزام بالقواعد اليابانية، وفي الوقت نفسه، يعاملهم المجتمع الياباني كشركاء عادلين. التحديث الداخلي: بدلاً من النظر إلى قبول الأجانب على أنه \u0026ldquo;فقدان لليابان\u0026rdquo;، تغيير التصور إلى أننا نستعير قوتهم من أجل \u0026ldquo;إعادة بناء اليابان والحفاظ عليها\u0026rdquo;. عام 2026، نحن نقف على مفترق طرق كبير. هل سنستمر في الصراخ بكلمات التقسيم وخنق أنفسنا؟ أم أننا سنواجه الواقع ونتخذ خطوة نحو \u0026ldquo;يابان مستدامة\u0026rdquo; حيث يدعم الأشخاص المتنوعون بعضهم البعض؟\nتكمن الإجابة في \u0026ldquo;الذكاء\u0026rdquo; و\u0026quot;الشجاعة\u0026quot; في قلب كل فرد.\n","date":"2026-01-23T13:43:41+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/img_hua12d272c50d3b08d888fe1df256a5051_1332597_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E6%97%A5%E6%9C%AC%E4%BA%BA%E3%83%95%E3%82%A1%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/","title":"أسطورة وواقع \"اليابانيون أولاً\": دفاع اليابان باسم \"التعايش\" في عام 2026"},{"content":"[تنبيه] هل سيتم تحصيل رسوم منك بعد انتهاء الفترة التجريبية المجانية لـ Gemini؟ ملخص لكيفية الإلغاء عندما تحاول تجربة خدمة الذكاء الاصطناعي \u0026ldquo;Gemini\u0026rdquo; من Google، يتم توفير ** فترة تجريبية مجانية لمدة شهر واحد ** في البداية. أعتقد أن الكثير من الناس يسجلون معتقدين، \u0026ldquo;إذا كان مجانيًا، فسأجربه في الوقت الحالي\u0026rdquo;، ولكن هناك شيء يجب ملاحظته هنا.\nماذا يحدث عند انتهاء الفترة التجريبية المجانية؟ بمجرد انتهاء الفترة التجريبية، ستتم محاسبتك تلقائيًا بمبلغ ** 2,900 ين شهريًا ** . يرتبط هذا باشتراك يسمى \u0026ldquo;عضوية Google One\u0026rdquo;، وهي آلية تنتقل إلى الفوترة المستمرة إذا لم تفعل شيئًا بشكل خاص.\nإذا قمت بالإلغاء فلن يتم تحصيل رسوم منك، ولكن\u0026hellip; بالطبع، لن تكون هناك رسوم إذا قمت بالإلغاء خلال الفترة التجريبية. تحتوي صفحة الشرح الرسمية أيضًا على \u0026ldquo;كيفية إلغاء عضوية Google One\u0026rdquo;.\n👉 إلغاء عضوية Google One (الرسمي)\nومع ذلك، عندما أحاول الوصول إليه بالفعل، أجد نفسي في وضع \u0026ldquo;لسبب ما لا يمكنني الإلغاء\u0026hellip;\u0026rdquo;. لقد كنت مرتبكًا وفكرت، \u0026ldquo;حسنًا، من أين يجب أن أوقفه؟\u0026rdquo;\nانقر هنا للحصول على طريقة الإلغاء الصحيحة! نتيجة للبحث عن أشياء مختلفة، كانت الصفحة التالية هي المكان الذي تمكنت فيه فعليًا من الإلغاء.\n👉 حساب Google - حذف الخدمات\nمن هنا، حدد \u0026ldquo;Google One\u0026rdquo; واحذفه لإكمال الإلغاء.\nملخص النسخة التجريبية المجانية من Gemini هي شهر واحد بعد الانتهاء، ستتم محاسبتك تلقائيًا ** 2,900 ين شهريًا ** قد لا يكون من الممكن الإلغاء من صفحة الشرح الرسمية يمكنك الإلغاء فعليًا من ** \u0026ldquo;صفحة حذف الخدمات\u0026rdquo; ** إذا كنت تعتقد، \u0026ldquo;لا بأس لأنها نسخة تجريبية مجانية\u0026rdquo;، فسيتم تحصيل رسوم منك قبل أن تدرك ذلك، لذا يرجى توخي الحذر!\n👉 إذا كنت تقرأ هذا المقال، فقد تواجه مشكلة حاليًا وتتساءل \u0026ldquo;من أين أقوم بالإلغاء؟\u0026rdquo; في الوقت الحالي، يرجى التحقق من الرابط أعلاه.\n","date":"2025-09-27T10:02:59+09:00","image":"http://kenji.blog/p/google-one-gemini%E3%81%8C%E8%A7%A3%E7%B4%84%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hue118597de1df33c0e1a19ecde6d4d33f_1730014_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%A7%D8%B0%D8%A7-%D8%AA%D9%81%D8%B9%D9%84-%D8%B9%D9%86%D8%AF%D9%85%D8%A7-%D9%84%D8%A7-%D9%8A%D9%85%D9%83%D9%86%D9%83-%D8%A5%D9%84%D8%BA%D8%A7%D8%A1-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%D9%83-google-one-gemini/","title":"ماذا تفعل عندما لا يمكنك إلغاء اشتراك Google One (Gemini)"},{"content":"🎬 نص البث على YouTube (تطوير تطبيق إنشاء بطاقات رأس السنة・الجزء 1) بدء البث (أول 2 إلى 3 دقائق) تحية قصيرة \u0026ldquo;مرحبًا. بدءًا من اليوم، سأبدأ في بث عملية تطوير تطبيق إنشاء بطاقات رأس السنة باستخدام C++ خطوة بخطوة.\u0026rdquo; \u0026ldquo;لست متأكدًا من عدد مرات البث التي سأقوم بها حتى يكتمل، لكنني سأستمر كأنها سلسلة ونتقدم تدريجيًا.\u0026rdquo; \u0026ldquo;بشكل أساسي سأعمل بصمت، لذا آمل أن تشاهدوا هذا كموسيقى خلفية أثناء عملكم.\u0026rdquo;\nنظرة عامة على التطبيق المستهدف \u0026ldquo;في هذا التطبيق، أود أن نتمكن من تصميم الجانب الخلفي لبطاقات رأس السنة.\u0026rdquo; \u0026ldquo;أخطط لإدراج الصور وترتيب الخطوط، واستخدام الذكاء الاصطناعي لمعالجة الصور وتوليد الرسوم التوضيحية، وفي النهاية رفعه إلى متجر Microsoft.\u0026rdquo;\nأهداف العمل لليوم \u0026ldquo;اليوم في الجزء الأول، سنقوم بإعداد البيئة وإنشاء الأساس.\u0026rdquo; \u0026ldquo;بشكل محدد،\nإنشاء مستودع GIT إنشاء النافذة الرئيسية عرض مربع حوار معلومات الإصدار إنشاء القائمة وتنفيذ أمر الإنهاء معالجة تهيئة وتحرير Direct2D وعرض HelloWorld أود أن نتقدم في هذه الأمور.\u0026rdquo;\nحول نشر الكود المصدري \u0026ldquo;يتم نشر الكود المصدري على GitHub. إذا كنتم مهتمين، يرجى إلقاء نظرة.\u0026rdquo; → https://github.com/kenjinote/NengaCardApp/\nجزء العمل (بصمت) إنشاء مستودع GitHub → الالتزام الأولي (Initial commit)\nإنشاء قالب النافذة الرئيسية\nإنشاء مربع حوار الإصدار والقائمة وتنفيذ أمر الإنهاء\nمعالجة تهيئة وتحرير Direct2D → تأكيد عرض HelloWorld\nالدفع (Push) إلى GitHub عند الحاجة\n※ بشكل أساسي صامت، وأضيف شروحات قصيرة فقط عند الحاجة\nقبل نهاية البث (آخر دقيقة إلى دقيقتين) ملخص تقدم اليوم \u0026ldquo;اليوم، قمنا بإنشاء مستودع GIT، وتنفيذ النافذة، وزر الإنهاء، ومربع حوار الإصدار.\u0026rdquo; \u0026ldquo;تمكنا من عرض HelloWorld باستخدام Direct2D.\u0026rdquo;\nالربط مع المرة القادمة \u0026ldquo;بدءًا من المرة القادمة، أود ترتيب جزء واجهة المستخدم (UI) والتقدم نحو تحويل النصوص إلى كائنات وغيرها.\u0026rdquo;\nتوجيه رابط GitHub مرة أخرى → https://github.com/kenjinote/NengaCardApp/\nالخاتمة \u0026ldquo;شكرًا على المشاهدة. سأستمر في العمل بجد في المرة القادمة، لذا يرجى دعمي.\u0026rdquo;\n","date":"2025-08-31T20:24:49+09:00","image":"http://kenji.blog/p/%E5%B9%B4%E8%B3%80%E7%8A%B6%E4%BD%9C%E6%88%90%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E9%85%8D%E4%BF%A1-vol.1/img_hu403d76b87feb7669f72c38243c5cb621_1021075_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E5%B9%B4%E8%B3%80%E7%8A%B6%E4%BD%9C%E6%88%90%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA%E9%85%8D%E4%BF%A1-vol.1/","title":"بث تطوير تطبيق إنشاء بطاقات رأس السنة VOL.1 (نص)"},{"content":"تثبيت MSIX باستخدام شهادة ذاتية التوقيع عند توزيع التطبيقات على Windows، يعد استخدام حزمة MSIX أمراً مريحاً لأن آلية التثبيت والتحديث موحدة. ومع ذلك، هناك قيد يتمثل في أن MSIX يتطلب \u0026ldquo;شهادة موقعة\u0026rdquo; دائماً. عندما ترغب في توزيع تطبيق تم تطويره بواسطة شركة أو فرد لأغراض الاختبار، قد تكون هناك مواقف يبدو فيها \u0026ldquo;شراء شهادة توقيع كود تجارية أمراً مبالغاً فيه\u0026rdquo;.\nهنا يأتي دور الشهادة ذاتية التوقيع (Self-Signed Certificate) . تلخص هذه المقالة خطوات إرفاق شهادة ذاتية التوقيع بـ MSIX وجعلها قابلة للتثبيت في بيئة محلية.\n1. إنشاء شهادة ذاتية التوقيع أولاً، قم بتشغيل PowerShell في وضع المسؤول ونفذ الأمر التالي.\n1 2 // إنشاء شهادة ذاتية التوقيع New-SelfSignedCertificate -Type CodeSigningCert -Subject \u0026#34;CN=035A9AAC-915B-4CE1-AE39-1A101BED42F5\u0026#34; -CertStoreLocation Cert:\\CurrentUser\\My -NotAfter (Get-Date).AddYears(10) -KeyUsage DigitalSignature -FriendlyName \u0026#34;kenjinote\u0026#34; ما يتم إنشاؤه هنا هو شهادة \u0026ldquo;لتوقيع الكود\u0026rdquo;.\nمن السهل العثور عليها لاحقاً إذا أعطيتها اسماً واضحاً باستخدام -FriendlyName. يمكنك ضبط تاريخ انتهاء الصلاحية باستخدام -NotAfter. قمنا بتعيينه إلى 10 سنوات هذه المرة. 2. تصدير ملف PFX قم بتصدير الشهادة التي تم إنشاؤها بتنسيق PFX بحيث يمكن استخدامها مع signtool.\n1 2 3 4 // إنشاء pfx $cert = Get-ChildItem Cert:\\CurrentUser\\My | Where-Object { $_.FriendlyName -eq \u0026#34;kenjinote\u0026#34; } $password = ConvertTo-SecureString -String \u0026#34;password\u0026#34; -Force -AsPlainText Export-PfxCertificate -Cert $cert -FilePath \u0026#34;D:\\pfx\\cert.pfx\u0026#34; -Password $password ستكون كلمة المرور التي تم تعيينها في هذا الوقت ( password في المثال) مطلوبة لعملية التوقيع اللاحقة.\n3. تثبيت الشهادة الذاتية في المراجع المصدقة الجذرية الموثوقة الشهادة التي تم إنشاؤها لن يثق بها Windows كما هي. لتثبيتها، يجب عليك استيرادها من certmgr.msc إلى [المراجع المصدقة الجذرية الموثوقة] -\u0026gt; [الشهادات] .\nإذا قمت باستيراد الشهادة المصدرة ( .cer أو .pfx )، فسيتم التعامل معها كشهادة موثوقة على جهاز الكمبيوتر المستهدف. نتيجة لذلك، حتى إذا قمت بتوقيع MSIX، فلن يظهر تحذير \u0026ldquo;شهادة غير موثوقة\u0026rdquo;.\n4. توقيع المثبت (MSIX) أخيراً، استخدم شهادة PFX التي تم إنشاؤها لتوقيع MSIX. يتم تضمين signtool في Visual Studio و Windows SDK.\n1 2 // توقيع المثبت signtool sign /fd SHA256 /f \u0026#34;D:\\pfx\\cert.pfx\u0026#34; /p \u0026#34;password\u0026#34; \u0026#34;C:\\installer\\installer.msix\u0026#34; /fd SHA256 يحدد خوارزمية التوقيع. حدد ملف PFX باستخدام /f ومرر كلمة المرور باستخدام /p. أخيراً، حدد مسار ملف MSIX. إذا لم يتم العثور على مسار signtool، فحدده بالمسار الكامل. في بيئتي، كان في الموقع التالي. 1 \u0026#34;C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages\\microsoft.windows.sdk.buildtools\\10.0.26100.1742\\bin\\10.0.26100.0\\x64\\signtool.exe\u0026#34; يكمل هذا التوقيع، وسيتم إكمال حزمة MSIX التي يمكن تثبيتها على جهاز الكمبيوتر المستهدف.\nالخلاصة إنشاء شهادة ذاتية التوقيع باستخدام New-SelfSignedCertificate تصدير PFX باستخدام Export-PfxCertificate تثبيت الشهادة في المراجع المصدقة الجذرية الموثوقة توقيع MSIX باستخدام signtool من خلال فهم هذا التدفق، يمكنك التحقق من التشغيل وتوزيع الاختبار في بيئة محلية دون شراء شهادة تجارية. بالطبع، بالنسبة للتوزيع التجاري الفعلي، تعد الشهادة الصادرة عن مرجع مصدق ضرورية، لكن هذه الطريقة مفيدة جداً في مرحلة التطوير والتحقق.\n👉 استخدمنا installer.msix كمثال هذه المرة، ولكن يمكن تطبيق نفس الإجراء على التطبيقات التي قمت بإنشائها بنفسك.\n","date":"2025-08-30T04:18:04+09:00","image":"http://kenji.blog/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/img_hu193aeacbbfca091956fdf9aac7d139a2_495432_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/msix%E3%81%AB%E8%87%AA%E5%B7%B1%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E3%81%A4%E3%81%91%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B/","title":"تثبيت MSIX باستخدام شهادة ذاتية التوقيع"},{"content":"أداة للأشخاص الذين \u0026ldquo;لا يستطيعون كتابة التعليمات البرمجية ولكن لديهم المنطق\u0026rdquo;. لماذا أنشأت LogicPad مرحبًا، أنا kenji. أنا مبتكر أداة البرمجة منخفضة التعليمات البرمجية \u0026ldquo;LogicPad\u0026rdquo;. هذه المرة، بدلاً من تقديم المنتج، أود أن أكتب من منظور شخصي قليلاً عن قصة ما وراء الكواليس للتطوير، \u0026ldquo;لماذا أردت صنع هذا؟\u0026rdquo; ومشاعري الخاصة.\nبصراحة، لم يكن هذا مجرد تطوير أداة. ماضيّ، إحباطاتي في مكان العمل، مجموعة مهاراتي، والرغبة المشتعلة التي طالما راودتني، \u0026ldquo;يومًا ما أريد أن أصنع منتجي الخاص\u0026rdquo; ―― نتيجة تداخل كل هذه الأشياء هي ما ولّد LogicPad.\nبمعنى آخر، هذا أيضًا \u0026ldquo;مشروع تتويج حياتي\u0026rdquo; بالنسبة لي . سأكتب عن هذه الخلفية بصدق وشغف قدر الإمكان.\nبصراحة، أردت منتجًا يمكنني أن أقول بفخر \u0026ldquo;أنا من صنع هذا\u0026rdquo; بصدق، كان هذا هو الدافع الأول.\nمنذ فترة طويلة، كنت أحب كتابة التعليمات البرمجية سواء في العمل أو كهواية. لقد شاركت في العديد من التطورات. ولكن في يوم من الأيام، أدركت فجأة. \u0026ldquo;ليس لدي منتج أصدرته للعالم باسمي وتحت مسؤوليتي.\u0026rdquo;\nبالطبع، للأشياء التي نصنعها كفريق قيمة، وكان هناك الكثير من الأعمال التي أفتخر بها. ولكن في مكان ما، كان هناك أيضًا شعور بالفراغ: \u0026ldquo;هل سأنهي مسيرتي المهنية هكذا، تحت اسم شخص آخر؟\u0026rdquo;\nلمرة واحدة فقط. أريد أن أترك شيئًا يمكنني أن أقول عنه بفخر، \u0026ldquo;لقد صنعت هذا\u0026rdquo;. مع أخذ ذلك في الاعتبار، بدأت في صياغة مفهوم LogicPad. كان ذلك قبل حوالي 6 سنوات (حوالي عام 2019). (الفكرة الأصلية نفسها كانت حوالي عام 2015 عندما تعرفت على Blueprints، لغة البرمجة المرئية في Unreal Engine.)\nلا يمكنك المشاركة لأنك لا تستطيع كتابة التعليمات البرمجية. أليس هذا مضيعة؟ كان هناك العديد من الأشخاص الموهوبين في مكان عملي.\nيمكنهم بناء المنطق. يمكنهم استخدام وظائف Excel بحرية، ويمكنهم رؤية جوهر المشكلة. ولكن ―― تتوقف أيديهم في مرحلة \u0026ldquo;كتابة التعليمات البرمجية\u0026rdquo;.\n\u0026ldquo;أقوم بهذا العمل بالنظر إلى الدليل في كل مرة، ألا يمكننا أتمتة ذلك؟\u0026rdquo; \u0026ldquo;نعم، يمكننا ذلك. ولكن\u0026hellip; تحتاج إلى كتابة التعليمات البرمجية للقيام بذلك\u0026hellip;\u0026rdquo;\nكانت هناك محادثات كهذه مرات عديدة.\nكنت أفكر في كل مرة. \u0026ldquo;على الرغم من أنهم يفهمون المنطق، إلا أنه من المؤسف حقًا أن يوقفهم جدار التعليمات البرمجية.\u0026rdquo;\nخيار محرر قليل التعليمات البرمجية في الواقع، في وظيفتي السابقة، كنت أقوم بتطوير برنامج CAD ثنائي الأبعاد يعمل عبر واجهة المستخدم الرسومية (GUI). في CAD، تقوم بتجميع الأشكال باستخدام الماوس، أليس كذلك؟ بعبارة أخرى، إنه عالم \u0026ldquo;بناء المنطق من خلال العمليات\u0026rdquo; .\nاعتقدت، \u0026ldquo;هذا متوافق للغاية مع التعليمات البرمجية المنخفضة\u0026rdquo;.\nبالعودة إلى الوراء أكثر، منذ أن كنت طالبًا، كنت أقوم دائمًا بمعالجة الصور، والمعالجة الرقمية، وأدوات Windows، وأدوات النشر التلقائي على SNS، وما إلى ذلك. كلما خطرت لي فكرة، كنت أكتب التعليمات البرمجية على الفور وأنتج برامج صغيرة بكميات كبيرة. أعتقد أن هناك أكثر من 600 منها. لا تزال موجودة على GitHub حتى اليوم.\nفي ذلك الوقت، لم أفكر في المعنى. لقد كان مجرد \u0026ldquo;أصنعه لأنني أريد ذلك\u0026rdquo;. كان هذا كل شيء.\nولكن الآن، بينما أقوم بإنشاء LogicPad\u0026hellip;\nشعرت حقًا أن النقاط قد تم توصيلها بخط.\nسهل الاستخدام، ولكنه قوي. صعوبة التوازن أثناء تقدمي في التطوير، ما كنت أفكر فيه دائمًا هو \u0026ldquo;جعله أداة يمكن استخدامها بشكل حدسي وهي أيضًا قوية بشكل صحيح\u0026rdquo; .\nإذا أضفت ميزات، فستزيد مما يمكنك القيام به. لكنها ستصبح صعبة الاستخدام. إذا جعلتها بسيطة، يمكن لأي شخص لمسها. ولكن إذن، سيكون هناك أشخاص غير راضين.\nحتى لا يقول الناس، \u0026ldquo;الأدوات منخفضة التعليمات البرمجية مجرد ألعاب، أليس كذلك؟\u0026rdquo; ولكن أيضًا حتى لا يقولوا، \u0026ldquo;في النهاية، عليك كتابة التعليمات البرمجية، أليس كذلك؟\u0026rdquo;\nكنت أقاتل دائمًا على هذا الخط الدقيق بين الحدس والتعبير.\nأعدت بناء واجهة المستخدم عدة مرات، وتخلصت منها عدة مرات، وعندما اقتربت أخيرًا من شكل جعلني أعتقد، \u0026ldquo;هذا سيفي بالغرض\u0026rdquo;، كنت سعيدًا حقًا.\nلقد أنقذتني الكلمة الأولى من \u0026ldquo;مستخدم\u0026rdquo; كان أول شخص أعطيته LogicPad هو زميل سابق. لا تجيد تكنولوجيا المعلومات، وتخشى التعليمات البرمجية. لكنها جيدة في المنطق.\nشرحت لها قليلاً وجعلتها تجربه\u0026hellip; الكلمات التي قالتها بعد بضع دقائق، لا يمكنني نسيانها حتى الآن.\n\u0026ldquo;إذا كان هذا هو الحال، أعتقد أنني يمكنني القيام بذلك أيضًا!\u0026rdquo;\nكدت أبكي. هذا ما أردت أن أعطيها إياه.\nليس مجرد أداة تعمل، بل الشعور بـ \u0026ldquo;لقد تمكنت من صنعها بنفسي!\u0026rdquo; . كنت مقتنعًا أن هذه هي القيمة الحقيقية لـ LogicPad.\nإذا زاد عدد الأشخاص الذين يمكنهم الإبداع، فسيصبح المجتمع أكثر إثارة للاهتمام أعتقد حقًا أن \u0026ldquo;دمقرطة التكنولوجيا\u0026rdquo; مهمة جدًا.\nالتكنولوجيا لديها القدرة على تغيير العالم. ولكن الأشخاص الذين يمكنهم التعامل معها محدودون.\nماذا لو تمكنت من إنشاء تطبيق فقط من خلال \u0026ldquo;فهم المنطق\u0026rdquo;؟\nسيتمكن المزيد من الأشخاص من الانتقال إلى الجانب \u0026ldquo;الإبداعي\u0026rdquo;. وأعتقد أن ما سيولد من هناك سيتجاوز خيالنا الحالي.\nإذا كان LogicPad يمكن أن يكون هذا المدخل. أريد أن يكون أداة تحول \u0026ldquo;أريد أن أصنع\u0026rdquo; إلى \u0026ldquo;أستطيع أن أصنع\u0026rdquo;.\nهذه هي أمنيتي.\nختامًا لا يزال LogicPad في المرحلة التجريبية ولم يكتمل بعد. لا تزال هناك جبال من نقاط التحسين والأشياء التي أريد القيام بها.\nولكن، لقد سكبت كل \u0026ldquo;نقاط\u0026rdquo; حياتي في هذه الأداة . الآن يمكنني أن أقول ذلك بكل فخر.\n\u0026ldquo;هذا هو المنتج الذي صنعته\u0026rdquo; .\n👇 إضافة: ما يمكنك القيام به باستخدام LogicPad بناء العمليات عن طريق السحب والإفلات التعامل مع التفرع الشرطي والمتغيرات باستخدام واجهة المستخدم الرسومية (GUI) إعداد عقد مختلفة لدمج الذكاء الاصطناعي إمكانية التوسع للمستخدمين المتقدمين عن طريق إدخال البرامج النصية الوظائف الرياضية ومعالجة البيانات عالية الدقة (مثل العمليات الحسابية بدقة غير محدودة) اختصارات لوحة المفاتيح الواسعة للمستخدمين المتقدمين يدعم أكثر من 90 لغة ما أريد القيام به من الآن فصاعدًا دمج الذكاء الاصطناعي لتوليد المنطق من اللغة الطبيعية آلية تسمح للمستخدمين بإنشاء عقد مخصصة بناء منصة حيث يمكن مشاركة العقد والمنطق الذي تم إنشاؤه ✍️ خاتمة شكرًا جزيلاً لك على القراءة حتى هذه النقطة. لم يكن هذا مجرد تطوير أداة، بل كان تحديًا صببت فيه تجربتي الخاصة وشغفي وأجزاء من حياتي.\n\u0026ldquo;لا يمكنني كتابة التعليمات البرمجية، لكن لدي المنطق\u0026rdquo; مستقبل حيث يمكن لهؤلاء الأشخاص أن \u0026ldquo;يبدعوا\u0026rdquo; بقوتهم الخاصة. أريد الاستمرار في السعي لتحقيق ذلك من خلال LogicPad.\nإذا جعلك هذا تفكر حتى قليلاً، \u0026ldquo;أريد استخدامه\u0026rdquo;، فسأكون سعيدًا جدًا بذلك. إذا كنت مهتمًا، يرجى تجربة LogicPad.\nوإذا كان لديك أي أفكار أو أشياء لاحظتها بعد استخدامه، فلا يهم مدى صغرها. صوتك سيكون قوة دافعة كبيرة لاتخاذ الخطوة التالية لهذا المنتج.\nشكرا لك على دعمك المستمر.\n","date":"2025-07-30T23:51:35+09:00","image":"http://kenji.blog/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/img_hu2f3df13f20424b87da3515770faf1b1c_1676910_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/logicpad-%E9%96%8B%E7%99%BA%E7%A7%98%E8%A9%B1/","title":"قصة تطوير LogicPad"},{"content":"كيفية حذف البيانات الوصفية (المعلومات الشخصية) من Excel و Word وغيرها دفعة واحدة باستخدام PowerShell تحتوي ملفات Office مثل Excel تلقائياً على \u0026ldquo;بيانات وصفية (معلومات شخصية)\u0026rdquo; مثل اسم المنشئ، وآخر من قام بالتعديل، واسم الشركة. في كثير من الحالات، ترغب في حذف هذه المعلومات، مثل عند مشاركة الملفات خارج الشركة.\nفي هذه المقالة، سنشرح بالتفصيل كيفية حذف البيانات الوصفية في Excel بشكل أساسي باستخدام PowerShell، وسنتطرق أيضاً إلى ** المعالجة المجمعة للملفات داخل مجلد ** و ** تطبيق ذلك على ملفات Office الأخرى مثل Word و PowerPoint ** .\n1. حذف البيانات الوصفية لملف Excel واحد هذا هو النص البرمجي الأساسي لحذف المعلومات الشخصية من ملف Excel واحد. يتم استدعاء كائن COM الخاص بـ Excel، وضبط خاصية RemovePersonalInformation على $true ثم حفظ التغييرات.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # بدء تطبيق Excel في الوضع المخفي $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false # فتح الملف (*يجب تحديد مسار مطلق) $filePath = \u0026#34;C:\\Path\\To\\Your\\File.xlsx\u0026#34; $wb = $excel.Workbooks.Open($filePath) # تفعيل إعداد حذف البيانات الوصفية (المعلومات الشخصية) $wb.RemovePersonalInformation = $true # حفظ التغييرات والإغلاق $wb.Save() $wb.Close($false) # إنهاء Excel وتحرير الذاكرة $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null ** ملاحظة ** : تأكد من تحديد ** مسار مطلق (المسار الكامل) ** للمسار الذي يتم تمريره إلى Workbooks.Open(). قد يؤدي استخدام مسار نسبي إلى حدوث خطأ.\n2. معالجة جميع ملفات Excel في مجلد دفعة واحدة في العمل الفعلي، غالباً ما تكون هناك حالات \u0026ldquo;تريد فيها حذف البيانات الوصفية لعشرات ملفات Excel الموجودة في مجلد معين دفعة واحدة\u0026rdquo;. يمكن تحقيق ذلك باستخدام حلقة تكرار مع Get-ChildItem.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $targetFolder = \u0026#34;C:\\Path\\To\\Your\\Folder\u0026#34; # الحصول على جميع ملفات .xlsx و .xls في المجلد $excelFiles = Get-ChildItem -Path $targetFolder -Include \u0026#34;*.xlsx\u0026#34;, \u0026#34;*.xls\u0026#34; -Recurse if ($excelFiles.Count -eq 0) { Write-Host \u0026#34;لم يتم العثور على ملفات Excel.\u0026#34; exit } $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false foreach ($file in $excelFiles) { Write-Host \u0026#34;جاري حذف البيانات الوصفية للملف $($file.Name)...\u0026#34; # فتح الملف $wb = $excel.Workbooks.Open($file.FullName) # حذف البيانات الوصفية وحفظ التغييرات $wb.RemovePersonalInformation = $true $wb.Save() $wb.Close($false) } $excel.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null Write-Host \u0026#34;اكتملت جميع العمليات!\u0026#34; 3. حذف البيانات الوصفية لملفات Office الأخرى (Word / PowerPoint) يمكنك حذف البيانات الوصفية ليس فقط في Excel ولكن أيضاً في Word و PowerPoint باستخدام نفس المنطق تماماً. الاختلاف الوحيد هو اسم كائن COM الذي يتم استدعاؤه، ولكن توفر خاصية RemovePersonalInformation هو أمر مشترك.\nفي حالة Word 1 2 3 4 5 6 7 8 9 10 11 $word = New-Object -ComObject Word.Application $word.Visible = $false $word.DisplayAlerts = 0 $doc = $word.Documents.Open(\u0026#34;C:\\Path\\To\\Your\\File.docx\u0026#34;) $doc.RemovePersonalInformation = $true $doc.Save() $doc.Close() $word.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null في حالة PowerPoint في حالة PowerPoint، يكون إعداد خاصية RemovePersonalInformation مشابهاً، ولكن سلوك التشغيل المخفي يختلف قليلاً.\n1 2 3 4 5 6 7 8 9 10 $ppt = New-Object -ComObject PowerPoint.Application # فتح العرض التقديمي بتحديد الوضع المخفي (msoFalse) وغيرها في الوسائط من الثاني إلى الرابع $presentation = $ppt.Presentations.Open(\u0026#34;C:\\Path\\To\\Your\\File.pptx\u0026#34;, $false, $false, $false) $presentation.RemovePersonalInformation = $true $presentation.Save() $presentation.Close() $ppt.Quit() [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ppt) | Out-Null الخلاصة من خلال الاستفادة من PowerShell وكائنات COM، يمكنك أتمتة عملية حذف البيانات الوصفية من ملفات Office بالكامل. لمنع تسرب المعلومات السرية أو الأسماء الشخصية عن غير قصد، من المفيد جداً أن يكون لديك نص برمجي جاهز لمعالجة المجلدات دفعة واحدة قبل تسليم الملفات.\n","date":"2025-07-30T02:42:40+09:00","image":"http://kenji.blog/p/powershell-%E3%81%A7-excel-%E3%81%AE%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/powershell_metadata_eyecatch_1788588033601_hud95a00206aa1dcf32de9cdc0ccb17972_952041_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AD%D8%B0%D9%81-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D9%88%D8%B5%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA-%D8%A7%D9%84%D8%B4%D8%AE%D8%B5%D9%8A%D8%A9-%D9%81%D9%8A-excel-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-powershell/","title":"كيفية حذف البيانات الوصفية (المعلومات الشخصية) من Excel و Word وغيرها دفعة واحدة باستخدام PowerShell"},{"content":"شرح مبسط لحدسية كبلر! 〜كيف ترتب البطيخ بأكبر قدر ممكن من الكثافة〜 مرحباً، أنا kenji!\nاليوم أود أن أشرح مسألة رياضية ذات اسم يبدو صعباً قليلاً، وهي \u0026ldquo;حدسية كبلر\u0026rdquo;، بأبسط طريقة ممكنة.\nللوهلة الأولى، قد تبدو وكأنها موضوع متخصص للغاية، ولكن في الواقع إنها مسألة قريبة جداً من الحياة اليومية، مثل: \u0026ldquo;كيف يمكنني تعبئة البطيخ في صندوق بأكبر قدر ممكن من الكثافة؟\u0026rdquo;. كما أنها تتعلق بثلاجات المتاجر الصغيرة وطريقة تكديس الأمتعة.\nوفي عالم الرياضيات، إنها قصة رومانسية جداً عن مسألة لم يتمكن أحد من إثباتها لأكثر من 400 عام .\nدعونا نبدأ!\nمن هو كبلر؟ أولاً، من هو \u0026ldquo;كبلر\u0026rdquo; من \u0026ldquo;حدسية كبلر\u0026rdquo;؟\nإنه عالم الفلك والرياضيات الألماني يوهانس كبلر (Johannes Kepler) .\nهذا الشخص كان مذهلاً للغاية. على سبيل المثال، هو من اكتشف أن مدارات الكواكب بيضاوية الشكل. هذه المعرفة شائعة اليوم، لكن في ذلك الوقت (حوالي عام 1600) لم تكن حتى نظرية مركزية الشمس موثوقة تماماً.\nغاليليو = عبقري المراقبة كبلر = العبقري الذي شرح الكون باستخدام الصيغ الرياضية نيوتن = العبقري الفائق الذي لخص تلك النظريات في قوانين فيزيائية في هذا السياق، كان كبلر رائداً في \u0026ldquo;شرح الكون بالمعادلات الرياضية\u0026rdquo;.\nوذات يوم قال هذا.\nما هي حدسية كبلر؟ ببساطة، \u0026ldquo;حدسية كبلر\u0026rdquo; هي كالتالي.\nعند تعبئة كرات من نفس الحجم (مثل البطيخ أو البرتقال) في صندوق، ما هو الترتيب الذي يسمح بتعبئتها بأكبر قدر ممكن من الكثافة؟\nهذه هي المسألة.\nوما توقعه كبلر في القرن السابع عشر هو\nأليس من الأفضل تكديسها بشكل مثلث، كما يضعون البرتقال في سوق الخضار؟\nبلغة الرياضيات، يُسمى هذا \u0026ldquo;مسألة تعبئة الكرات\u0026rdquo; (Sphere Packing Problem) ، وهي مسألة إيجاد طريقة لترتيب الكرات بكثافة قدر الإمكان في مساحة ما.\nتوقع كبلر أن الترتيب المعروف باسم \u0026ldquo;نظام التبلور المكعب مركزي الوجه (FCC)\u0026rdquo; (وهو يشبه تكديس البطيخ في مثلث) هو الأكثر كفاءة.\nوكان الجميع يعتقد، \u0026ldquo;نعم، هذا يبدو معقولاً\u0026rdquo;، ولكن كان من الصعب جداً إثبات رياضياً أن \u0026ldquo;هذا هو الأفضل بالتأكيد!\u0026rdquo;.\n400 عام حتى الإثبات!؟! إذاً، متى تم إثبات ذلك فعلياً؟\nالمثير للدهشة أنه كان في الفترة من 1998 إلى 2005 تقريباً. أي أنه لما يقرب من 400 عام لم يتمكن أحد من إثباتها . هذا لا يصدق.\nعلاوة على ذلك، الشخص الذي أثبت ذلك هو عالم الرياضيات الأمريكي توماس هيلز (Thomas Hales) .\nبعد أن أدرك أنه من المستحيل القيام بذلك عن طريق الحسابات اليدوية، استخدم الكمبيوتر لإثباتها . ومع ذلك، كان الإثبات معقداً للغاية لدرجة أن البشر لم يتمكنوا من التحقق منه بشكل صحيح! وهنا حدثت مشكلة.\nونتيجة لذلك، اندلع نقاش كبير في عالم الرياضيات: \u0026ldquo;هل يمكننا حقاً الوثوق بإثبات تم إجراؤه بواسطة الكمبيوتر؟\u0026rdquo;.\nفي النهاية، اكتمل \u0026ldquo;الإثبات الرسمي\u0026rdquo; الذي تم التحقق منه بدقة، بما في ذلك استخدام الكمبيوتر، في عام 2014 .\nوبعبارة أخرى، استغرق الأمر أكثر من 400 عام لإثبات صحة حدس كبلر. يا لها من قصة رومانسية.\nإنها تستخدم بكثرة في الحياة الواقعية قد تعتقد أن \u0026ldquo;كيفية ترتيب الكرات\u0026rdquo; هي مجرد قصة للمهتمين بالرياضيات، لكنها في الواقع عملية للغاية.\nتعبئة المشروبات بكفاءة في ثلاجات المتاجر تكديس العلب على منصات النقل تطبق أيضاً في الاتصالات (مثل ضغط الإشارات الرقمية) تستخدم في تصميم الطابعات ثلاثية الأبعاد والهياكل البلورية وغير ذلك الكثير. في الواقع، إنها نظرية تُستخدم بكثرة وراء كواليس حياتنا.\nالخلاصة: حدس الإنسان مذهل لذا، دعونا نلخص.\nحدسية كبلر = مسألة كيفية ترتيب الكرات بكثافة قدر الإمكان السيد كبلر = عالم الرياضيات والفلك الذي اكتشف مدارات الكواكب تم توقعها في القرن السابع عشر! ولكن تم إثباتها في العقد الأول من القرن الحادي والعشرين! يتم تطبيقها بشكل كبير في الحياة الواقعية! والشيء الأكثر إثارة للاهتمام هو أن \u0026ldquo;طريقة التكديس التي استخدمها بائعو الخضار بالفطرة كانت هي الأفضل رياضياً\u0026rdquo; .\nبعبارة أخرى، حدس الإنسان مذهل . وحقيقة أن الأمر قد يستغرق 400 عام لإثبات ذلك تجعل هذه القصة رومانسية للغاية.\nإذا كنت مهتماً، فيرجى البحث عن \u0026ldquo;توماس هيلز\u0026rdquo; و \u0026ldquo;الإثبات الرسمي\u0026rdquo; و \u0026ldquo;Sphere Packing\u0026rdquo;. إذا تعمقت في الأمر، فسيكون مثيراً للاهتمام حقاً.\nإلى اللقاء!\n[PR]\n今すぐ購入 ","date":"2025-07-21T22:53:03+09:00","image":"http://kenji.blog/p/%E3%82%B1%E3%83%97%E3%83%A9%E3%83%BC%E4%BA%88%E6%83%B3%E3%82%92%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%8F%E8%A7%A3%E8%AA%AC/img_huc7f0a2c79b029796989bdbbe22e755bc_619919_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B4%D8%B1%D8%AD-%D9%85%D8%A8%D8%B3%D8%B7-%D9%84%D8%AD%D8%AF%D8%B3%D9%8A%D8%A9-%D9%83%D8%A8%D9%84%D8%B1/","title":"شرح مبسط لحدسية كبلر"},{"content":"جدار تطوير الذكاء الاصطناعي 〜 وصلنا إلى المحطة الثامنة، لكن ما بعدها كان جحيمًا 〜\nمرحبًا، أنا kenji.\nفي الآونة الأخيرة، أسمع كثيرًا أشخاصًا يقولون: \u0026ldquo;طلبت من الذكاء الاصطناعي وصنع لي تطبيقًا!\u0026rdquo; لقد تجاوزنا عصر البرمجة بدون كود (no-code) والبرمجة بقليل من الكود (low-code)، ودخلنا مرحلة \u0026ldquo;البرمجة بالأجواء\u0026rdquo; (vibe-coding).\nعلى سبيل المثال، إذا قلت: \u0026ldquo;اصنع لي تطبيقًا يمكنه تعديل الصور ونشرها على وسائل التواصل الاجتماعي\u0026rdquo;، سيقوم الذكاء الاصطناعي بإنشاء الكود وحتى واجهة المستخدم (UI). قد تفكر: \u0026ldquo;واو، لم نعد بحاجة إلى البشر، أليس كذلك؟\u0026rdquo;\nولكن، هذا يشبه النزول في المحطة الثامنة من جبل فوجي وأنت ترتدي صندلًا.\nحتى المحطة الثامنة يبدو الأمر \u0026ldquo;في غاية السهولة\u0026rdquo; التطوير باستخدام الذكاء الاصطناعي يبدو سهلاً حقًا في البداية. إدخال/إخراج الملفات (File I/O)؟ يعمل في الوقت الحالي. الشبكة؟ حسنًا، إنها تتصل. قاعدة البيانات؟ JSON يكفي. واجهة المستخدم (UI)؟ كتب ChatGPT كود React بالفعل. الدفع؟ يمكن نسخ ولصق واجهة برمجة تطبيقات (API) الخاصة بـ Stripe.\nهنا، يتبادر إلى ذهنك وهم: \u0026ldquo;هل أصبحت مهندسًا بالفعل؟\u0026rdquo; لكن الجحيم الحقيقي يبدأ من هنا.\nلماذا نتعثر؟ السبب بسيط: \u0026ldquo;الذكاء الاصطناعي يبني شيئًا يبدو مكتملًا، لكن التعديلات النهائية تُترك بالكامل للبشر.\u0026rdquo;\nضياع البيانات أثناء إدخال/إخراج الملفات ضعف تطبيع قاعدة البيانات (DB normalization) مما يجعل البحث بطيئًا واجهة المستخدم غير بديهية عدم إجراء اختبارات الحمل، مما يؤدي إلى انهيار التطبيق عند زيادة الزيارات الرفض عند مراجعة التطبيق من قبل Apple/Google انتهاك المتطلبات القانونية (مما يكاد يسبب فضيحة) بعبارة أخرى، الذكاء الاصطناعي بارع في صنع \u0026ldquo;نموذج أولي يبدو كأنه مكتمل\u0026rdquo;، لكن تحويله إلى \u0026ldquo;منتج حقيقي جاهز للإطلاق في العالم\u0026rdquo; لا يزال عمل البشر حتى الآن.\nلكن، هناك مفارقة هنا نلاحظ مفارقة واحدة.\nماذا لو أصبح الذكاء الاصطناعي قادرًا حقًا على فعل كل شيء في المستقبل؟ بمعنى، ماذا لو \u0026ldquo;تم التعامل مع الأمان، والدفع، والتصميم بشكل مثالي بواسطة الذكاء الاصطناعي\u0026rdquo;؟\nفي تلك اللحظة، قد تختفي الحاجة إلى قيام البشر بإنشاء التطبيقات من الأساس.\nلأنه إذا أخبر المستخدم الذكاء الاصطناعي مباشرة: \u0026ldquo;أريد القيام بهذا\u0026rdquo;، فسيتم تنفيذ المهمة على الفور دون الحاجة إلى تطبيق.\n🌀 على سبيل المثال في الماضي، كنا \u0026ldquo;نفتح تطبيق الآلة الحاسبة لنقوم بالحساب\u0026rdquo;، أما الآن، فيكفي أن نقول: \u0026ldquo;يا Siri، كم حاصل ضرب 12 في 32؟\u0026quot;، وينتهي الأمر.\nوبالمثل، إذا قلنا: \u0026ldquo;أيها الذكاء الاصطناعي، قم بتعديل هذه الصورة وشاركها\u0026rdquo;، فقد تنتهي العملية دون المرور عبر واجهة المستخدم (UI) أو واجهة برمجة التطبيقات (API) الخاصة بالتطبيق.\nبمعنى آخر، عندما يتحقق هدف \u0026ldquo;إنشاء تطبيق بواسطة الذكاء الاصطناعي\u0026rdquo;، فقد يأتي عالم لا تكون فيه التطبيقات نفسها ضرورية.\nفي النهاية، ما الذي يمكننا فعله الآن؟ إذن، ماذا يجب أن نفعل؟\nبما أن \u0026ldquo;ما بعد المحطة الثامنة\u0026rdquo; لا يزال مجالًا بشريًا، فلنعمل على صقل مهاراتنا هناك التركيز على الفهم العميق للمستخدمين وتصميم الخدمات التفكير في \u0026ldquo;ما له قيمة\u0026rdquo; بدلًا من \u0026ldquo;ما يمكن صنعه\u0026rdquo; بالأحرى، البحث عن طرق لتقديم قيمة \u0026ldquo;لا تقتصر على شكل التطبيق\u0026rdquo; الذكاء الاصطناعي هو أداة، ومصعد، وأحيانًا منافس. لكن، أسئلة \u0026ldquo;ماذا نصنع\u0026rdquo; و \u0026ldquo;لماذا نصنعه\u0026rdquo; لا تزال أسئلة تخصنا نحن البشر.\nالخلاصة: جدار تطوير الذكاء الاصطناعي ليس تكنولوجيا، بل هو مفارقة هيكلية\nنحن في عصر يمكن لأي شخص فيه الوصول إلى المحطة الثامنة من جبل فوجي. لكن الاختبار الحقيقي يبدأ من هناك.\nوربما، عندما نصل إلى القمة، سيكون بانتظارنا مستقبل نسأل فيه أنفسنا: \u0026ldquo;هل كان من الضروري حقًا تسلق هذا الجبل؟\u0026rdquo;\n","date":"2025-07-20T21:52:42+09:00","image":"http://kenji.blog/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/img_1_hu929f602c53dcc1c0d00e8a53b025b29e_1978511_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/ai%E9%96%8B%E7%99%BA%E3%81%AE%E5%A3%81/","title":"جدار تطوير الذكاء الاصطناعي"},{"content":"🎯 كيفية استدعاء Microsoft.Windows.AI من C++ [مع نموذج كود] بدءًا من نظام التشغيل Windows 10، يأتي Windows مزودًا بـ وقت تشغيل يمكنه تنفيذ نماذج الذكاء الاصطناعي بتنسيق ONNX بشكل قياسي. هذا هو Windows ML (Windows.AI.MachineLearning).\nفي هذه المقالة، سنشرح بالتفصيل كيفية استدعاء Microsoft.Windows.AI.MachineLearning من C++ (تطبيق Win32 الأساسي) مع نموذج كود.\n✅ التحضير ◾ المتطلبات Windows 10 (1809+) أو Windows 11 Visual Studio 2019 أو أحدث (إصدار Community مناسب) دعم C++/WinRT (Microsoft.Windows.CppWinRT) Windows SDK 10.0.17763.0 أو أحدث ✅ هيكل المشروع قم بإنشاء مشروع بالهيكل التالي في Visual Studio.\nالنوع: تطبيق سطح مكتب Windows C++ (مشروع فارغ)\nالنظام الفرعي: Windows (WinMain)\nأضف الحزم التالية عبر NuGet\n1 Microsoft.Windows.CppWinRT ✅ نموذج الكود فيما يلي حد أدنى لنموذج يجمع بين Win32 API و Windows.AI.MachineLearning باستخدام WinMain.\n※ نموذج ONNX المستخدم هو model.onnx، يرجى وضعه في نفس المجلد مع الملف القابل للتنفيذ.\nmain.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winrt/Windows.AI.MachineLearning.h\u0026gt; #include \u0026lt;winrt/Windows.Storage.h\u0026gt; #pragma comment(lib, \u0026#34;windowsapp\u0026#34;) // لربط WinRT using namespace winrt; using namespace Windows::AI::MachineLearning; using namespace Windows::Storage; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow) { // تهيئة WinRT (MTA أو STA) winrt::init_apartment(); try { // تحميل ملف النموذج auto modelFile = StorageFile::GetFileFromPathAsync(L\u0026#34;model.onnx\u0026#34;).get(); LearningModel model = LearningModel::LoadFromStorageFileAsync(modelFile).get(); // إنشاء جلسة LearningModelSession session(model); LearningModelBinding binding(session); // إدخال/إخراج النموذج (إدخال فارغ مؤقتًا هنا) // في الواقع، مطلوب الربط باستخدام TensorFloat وما إلى ذلك. // تنفيذ الاستدلال auto result = session.EvaluateAsync(binding, L\u0026#34;\u0026#34;).get(); MessageBox(nullptr, L\u0026#34;اكتمل الاستدلال\u0026#34;, L\u0026#34;Windows ML (C++)\u0026#34;, MB_OK); } catch (winrt::hresult_error const\u0026amp; ex) { MessageBox(nullptr, ex.message().c_str(), L\u0026#34;خطأ\u0026#34;, MB_ICONERROR); } return 0; } ✅ ملحق: كيفية تحديد Tensor الإدخال/الإخراج اعتمادًا على النموذج، قد تحتاج إلى إنشاء وربط Tensor قبل الاستدلال.\nمثال:\n1 2 3 4 5 6 7 8 // تحويل مصفوفة float أحادية البعد إلى Tensor std::vector\u0026lt;float\u0026gt; inputData = {0.5f, 0.3f, 0.2f}; std::vector\u0026lt;int64_t\u0026gt; shape = {1, 3}; // الشكل: [1, 3] auto tensor = TensorFloat::CreateFromArray(shape, inputData); // ربط الإدخال (يتطابق مع اسم إدخال النموذج) binding.Bind(L\u0026#34;input_0\u0026#34;, tensor); وبالمثل، يمكن الحصول على الإخراج باستخدام result.Outputs().Lookup(L\u0026quot;output_0\u0026quot;).\n✅ ملاحظات التصحيح إذا لم يكن ملف النموذج موجودًا في مجلد التنفيذ، فسيتم إلقاء FileNotFoundException. إذا لم تتطابق أسماء الإدخال/الإخراج، فسيحدث خطأ invalid_argument. يمكن التحقق من مواصفات الإدخال/الإخراج الدقيقة للنموذج باستخدام أدوات مثل Netron. ✅ الخلاصة العنصر المحتوى واجهة برمجة التطبيقات المستخدمة Windows.AI.MachineLearning (WinRT) اللغة C++ (Win32) الطريقة الموصى بها عبر ترويسة C++/WinRT المزايا يعمل نموذج ONNX بشكل أصلي، ويدعم وحدة معالجة الرسومات أيضًا تنبيه انتبه لاسم إدخال النموذج وشكل Tensor ✅ بديل: لأولئك الذين لا يرغبون في استخدام WinRT باستخدام ONNX Runtime من Microsoft، يمكنك التعامل مع نماذج ONNX من C++ تمامًا بدون WinRT. يدعم الأنظمة الأساسية المتعددة، مما يسمح برمز مشترك لـ Windows/Linux. 📌 الخاتمة Windows ML (Microsoft.Windows.AI) هو محرك استدلال ذكاء اصطناعي قوي يمكن استخدامه بشكل جيد حتى من C++. إذا كنت بحاجة إلى الاستدلال الأصلي على Windows، يرجى تجربته.\nسيتم شرح أمثلة محددة لإنشاء نماذج ONNX وربط Tensor في مقال تكميلي!\n","date":"2025-07-19T10:03:51+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89microsoft.windows.ai%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E6%96%B9%E6%B3%95/img_hub9c7b00735e02a7f33c50dd8006e2228_376811_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D8%B3%D8%AA%D8%AF%D8%B9%D8%A7%D8%A1-microsoft-windows-ai-%D9%85%D9%86-c-/","title":"كيفية استدعاء Microsoft.Windows.AI من C++"},{"content":"✅ خطوات إعداد TinyLLaMA × C++ (باستخدام llama.cpp) 🔧 الخطوة 1: تجهيز llama.cpp 1-1. البيئة المطلوبة (الحد الأدنى) نظام التشغيل: Windows / Linux / macOS بيئة التطوير: g++ / clang / MSVC Git / CMake 1-2. الحصول على llama.cpp وبناؤه 1 2 3 4 5 6 git clone https://github.com/ggerganov/llama.cpp cd llama.cpp mkdir build cd build cmake .. cmake --build . --config Release إذا كنت تستخدم Windows، فمن الأسهل استخدام Visual Studio Developer Command Prompt مع cmake --build . --config Release.\n📦 الخطوة 2: تنزيل نموذج TinyLLaMA وتحويله 2-1. الحصول على النموذج الأصلي من HuggingFace مثال: TinyLLaMA-1.1B\n1 2 3 4 5 6 7 # قم بالتنزيل باستخدام transformers إذا لزم الأمر pip install transformers huggingface_hub python3 -m transformers.models.llama.convert_llama_weights_to_hf \\ --input_dir ./TinyLlama-1.1B-Chat \\ --model_size 1B \\ --output_dir ./hf_model هذه هي خطوة التحويل إلى تنسيق Hugging Face.\n2-2. التحويل إلى تنسيق GGUF (من أجل llama.cpp) 1 2 cd llama.cpp python3 convert.py ./hf_model --outfile tinyllama.gguf 2-3. تكميم النموذج (تقليل الحجم) 1 ./quantize ./tinyllama.gguf ./tinyllama-q4.gguf q4_0 q4_0 هو تكميم 4 بت. سيتم تقليل حجم النموذج إلى حوالي ** 350 ميجابايت ** تقريباً.\n🧪 الخطوة 3: استدعاء النموذج من C++ (مثال على الكود) 3-1. كود C++ بسيط (استدلال) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include \u0026#34;llama.h\u0026#34; #include \u0026lt;iostream\u0026gt; int main() { llama_model_params model_params = llama_model_default_params(); llama_context_params ctx_params = llama_context_default_params(); llama_model *model = llama_load_model_from_file(\u0026#34;tinyllama-q4.gguf\u0026#34;, model_params); llama_context *ctx = llama_new_context_with_model(model, ctx_params); std::string prompt = \u0026#34;يقول المستخدم إنه يريد تحميل بيانات Excel وتصفيتها وحفظها. ما هو تكوين العقدة؟\u0026#34;; llama_batch batch = llama_batch_init(512, 0, 1); llama_token BOS = llama_token_bos(model); batch.token[0] = BOS; // تقسيم النص إلى رموز std::vector\u0026lt;llama_token\u0026gt; tokens(prompt.size() + 8); int n = llama_tokenize(model, prompt.c_str(), tokens.data(), tokens.size(), true); tokens.resize(n); for (size_t i = 0; i \u0026lt; tokens.size(); ++i) { batch.token[i + 1] = tokens[i]; } batch.n_tokens = tokens.size() + 1; llama_decode(ctx, batch); // الحصول على نتيجة الاستدلال for (int i = 0; i \u0026lt; 50; ++i) { llama_token next = llama_sample_token(ctx, nullptr); std::cout \u0026lt;\u0026lt; llama_token_to_str(model, next); llama_batch next_batch = llama_batch_init(1, 0, 1); next_batch.token[0] = next; next_batch.n_tokens = 1; llama_decode(ctx, next_batch); } llama_free(ctx); llama_free_model(model); return 0; } 🧱 الخطوة 4: طريقة الترجمة (مثال) 1 g++ -I./llama.cpp main.cpp ./llama.cpp/build/libllama.a -o tiny_infer -pthread -std=c++11 يتم إنشاء libllama.a في الدليل build/ بعد البناء.\n✅ مثال على بنية المخرجات (منظمة) 1 2 3 4 5 6 my_app/ ├── tinyllama-q4.gguf # نموذج مكمم (~350 ميجابايت) ├── main.cpp # كود C++ أعلاه ├── llama.cpp/ # نواة llama.cpp └── build/ └── libllama.a # المكتبة المترجمة 🧠 ملاحظات للتطبيق على حالات الاستخدام وجود كود في C++ لـ مطابقة وتحديد قوالب العقدة بناءً على المخرجات مثال: إذا كان يحتوي على \u0026ldquo;Excel\u0026rdquo; ، \u0026ldquo;تصفية\u0026rdquo; ، \u0026ldquo;حفظ\u0026rdquo; -\u0026gt; إنشاء مجموعة العقدة المقابلة هذا الجزء مقبول بتكوين بسيط مثل عبارة if + تحميل قالب JSON 📌 الخلاصة العنصر المحتوى النموذج الموصى به TinyLLaMA-1.1B-Chat v1.0 (GGUF + تكميم) الحجم ~350-450 ميجابايت (تكميم 4 بت) تكامل C++ ممكن باستخدام llama.cpp ، لا توجد تبعيات خارجية تقريبًا قوة المعالجة كافية لفهم النوايا البسيطة وإنشاء النص (نص طبيعي -\u0026gt; تكوين) قابلية التوسع يمكن تحويله إلى ذكاء اصطناعي لإنشاء العقدة عن طريق الدمج مع ملء الفتحات واستدعاء القالب ","date":"2025-07-19T09:40:53+09:00","image":"http://kenji.blog/p/tinyllama-%E3%82%92-c-%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%9B%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86llama.cpp%E4%BD%BF%E7%94%A8/img_huf78e5769214ace33fee09d1baa98793b_1915663_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%A7%D8%B3%D8%AA%D8%AF%D8%B9%D8%A7%D8%A1-tinyllama-%D9%85%D9%86-cpp-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-llama-cpp/","title":"خطوات استدعاء TinyLLaMA من C++ (باستخدام llama.cpp)"},{"content":"✅ طريقة النشر باستخدام رمز الوصول (Slack Web API) يعد \u0026ldquo;OAuth Token (مثل xoxb- وما إلى ذلك)\u0026rdquo; من Slack هو المفتاح للنشر باستخدام Web API الخاص بـ Slack. في هذه الحالة، وعلى عكس Webhook، ستقوم بإجراء POST إلى نقطة نهاية API في Slack مع رأس Authorization: Bearer.\n🔑 المتطلبات الأساسية يجب عليك تضمين chat:write في نطاق OAuth في تطبيق Slack الخاص بك:\nخطوات الإعداد قم بزيارة https://api.slack.com/apps قم بإنشاء تطبيق أو حدد تطبيقًا موجودًا في \u0026ldquo;OAuth \u0026amp; Permissions\u0026rdquo; \u0026gt; Scopes ← أضف chat:write قم بإجراء \u0026ldquo;Install to Workspace\u0026rdquo; أو \u0026ldquo;Reinstall\u0026rdquo; للحصول على Access Token (مثال: xoxb-xxxxxxxxxx) 💻 كود C++ (النشر في Slack API باستخدام WinHTTP) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) bool PostSlackMessage(const std::wstring\u0026amp; accessToken, const std::string\u0026amp; channel, const std::string\u0026amp; text) { const wchar_t* host = L\u0026#34;slack.com\u0026#34;; const wchar_t* path = L\u0026#34;/api/chat.postMessage\u0026#34;; HINTERNET hSession = WinHttpOpen(L\u0026#34;SlackPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); if (!hSession) return false; HINTERNET hConnect = WinHttpConnect(hSession, host, INTERNET_DEFAULT_HTTPS_PORT, 0); if (!hConnect) return false; HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, path, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); // ترويسة التفويض ونوع المحتوى std::wstring headers = L\u0026#34;Content-Type: application/json\\r\\n\u0026#34;; headers += L\u0026#34;Authorization: Bearer \u0026#34; + accessToken + L\u0026#34;\\r\\n\u0026#34;; // جسم JSON std::string body = R\u0026#34;({\u0026#34;channel\u0026#34;:\u0026#34;)\u0026#34; + channel + R\u0026#34;(\u0026#34;,\u0026#34;text\u0026#34;:\u0026#34;)\u0026#34; + text + R\u0026#34;(\u0026#34;})\u0026#34;; BOOL result = WinHttpSendRequest(hRequest, headers.c_str(), (DWORD)-1, (LPVOID)body.c_str(), body.length(), body.length(), 0); if (!result || !WinHttpReceiveResponse(hRequest, NULL)) { std::cerr \u0026lt;\u0026lt; \u0026#34;خطأ في الإرسال\\n\u0026#34;; return false; } // التحقق من رمز الحالة DWORD statusCode = 0; DWORD size = sizeof(statusCode); WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, \u0026amp;statusCode, \u0026amp;size, WINHTTP_NO_HEADER_INDEX); WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); return (statusCode == 200); } int main() { std::wstring token = L\u0026#34;xoxb-رمز-الوصول-الخاص-بك\u0026#34;; // رمز الوصول std::string channel = \u0026#34;معرف-القناة-أو-#general\u0026#34;; // مثال: \u0026#34;#general\u0026#34; أو \u0026#34;C0123456789\u0026#34; std::string message = \u0026#34;محاولة النشر في Slack من C++!\u0026#34;; if (PostSlackMessage(token, channel, message)) { std::cout \u0026lt;\u0026lt; \u0026#34;تم النشر بنجاح!\\n\u0026#34;; } else { std::cerr \u0026lt;\u0026lt; \u0026#34;فشل في النشر.\\n\u0026#34;; } return 0; } 📌 كيفية الحصول على معرف القناة قد يؤدي استخدام اسم القناة فقط (مثال: #general) أحيانًا إلى حدوث خطأ. الطريقة الأكثر موثوقية هي استخدام المعرف من عنوان URL لصفحة قناة Slack.\n1 2 https://app.slack.com/client/Txxxxx/C0123456789 ↑ هذا الجزء هو معرف القناة ✅ حول أنواع الرموز (إضافي) تنسيق الرمز الغرض مثال xoxb-... Bot Token (موصى به) نشر، تعديل، حذف xoxp-... User Token (غير موصى به) عمليات غير خاصة بالبوت Refresh Token لتحديث الرمز طويل الأمد لا يُستخدم عادةً 📝 الخلاصة للنشر في Slack من C++، تعتبر طريقة Slack Web API + Bearer Token هي الأكثر موثوقية استخدم نقطة النهاية chat.postMessage مع HTTPS POST يجب إرسال الرمز في ترويسة Bearer من الأفضل تحديد القناة باستخدام المعرف ","date":"2025-07-16T23:36:27+09:00","image":"http://kenji.blog/p/slack-app--oauth2-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-slack-%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_huc0fc953b24035d17918192b772178b43_75467_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D9%86%D8%B4%D8%B1-%D8%B1%D8%B3%D8%A7%D9%84%D8%A9-%D8%B9%D9%84%D9%89-slack-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-slack-app--oauth2/","title":"كيفية نشر رسالة على Slack باستخدام Slack App + OAuth2"},{"content":"كيفية نشر رسائل إلى Slack باستخدام C++ (Win32 API + WinHTTP) [دعم Webhook] أرغب في نشر رسائل إلى Slack من C++. هذا شائع جدًا في Node.js و Python، لكن هناك حالات قليلة لاستخدام \u0026ldquo;C++ × Win32 API × WinHTTP\u0026rdquo;.\nفي هذا المقال، سأشرح خطوة بخطوة كيفية إرسال رسائل من C++ إلى Slack باستخدام رابط Webhook بطريقة سهلة الفهم.\n✅ التدفق العام للنشر في Slack، اتبع الخطوات التالية:\nاحصل على رابط Slack Webhook (مفتاح API) أرسل طلب POST باستخدام WinHTTP قم بتكوين نص الرسالة بصيغة JSON تحقق من النتيجة واكتمل! 🔑 الخطوة 1: كيفية الحصول على رابط Slack Webhook في Slack، يمكنك بسهولة نشر رسائل من خدمات خارجية باستخدام ميزة تسمى Incoming Webhooks.\nخطوات الحصول انتقل إلى https://api.slack.com/apps انقر على Create New App اختر From scratch، وحدد اسم التطبيق ومساحة العمل الوجهة من القائمة اليسرى، حدد \u0026ldquo;Incoming Webhooks\u0026rdquo; وقم بتفعيله انقر على \u0026ldquo;Add New Webhook to Workspace\u0026rdquo; وحدد قناة انسخ الرابط الصادر (مثال: https://hooks.slack.com/services/xxx/yyy/zzz) يعمل هذا الرابط مثل مفتاح API.\n💻 الخطوة 2: إرسال رسالة إلى Slack بكود C++ التقنيات المستخدمة Win32 API WinHTTP (المكتبة القياسية) رسائل بصيغة JSON كود عينة (نشر في Slack) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) bool PostToSlack(const std::wstring\u0026amp; webhookUrl, const std::string\u0026amp; messageJson) { // URLの分解 URL_COMPONENTS urlComp{}; wchar_t hostName[256]; wchar_t urlPath[1024]; urlComp.dwStructSize = sizeof(urlComp); urlComp.lpszHostName = hostName; urlComp.dwHostNameLength = _countof(hostName); urlComp.lpszUrlPath = urlPath; urlComp.dwUrlPathLength = _countof(urlPath); if (!WinHttpCrackUrl(webhookUrl.c_str(), 0, 0, \u0026amp;urlComp)) { std::wcerr \u0026lt;\u0026lt; L\u0026#34;URL分解に失敗しました\\n\u0026#34;; return false; } // HTTPセッションと接続 HINTERNET hSession = WinHttpOpen(L\u0026#34;SlackPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); HINTERNET hConnect = WinHttpConnect(hSession, hostName, urlComp.nPort, 0); HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, urlPath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); std::wstring headers = L\u0026#34;Content-Type: application/json\\r\\n\u0026#34;; BOOL result = WinHttpSendRequest(hRequest, headers.c_str(), -1, (LPVOID)messageJson.c_str(), messageJson.length(), messageJson.length(), 0); if (!result) { std::cerr \u0026lt;\u0026lt; \u0026#34;送信リクエストに失敗しました\\n\u0026#34;; return false; } WinHttpReceiveResponse(hRequest, NULL); DWORD statusCode = 0; DWORD size = sizeof(statusCode); WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_STATUS_CODE | WINHTTP_QUERY_FLAG_NUMBER, WINHTTP_HEADER_NAME_BY_INDEX, \u0026amp;statusCode, \u0026amp;size, WINHTTP_NO_HEADER_INDEX); // リソース解放 WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); return (statusCode == 200); } int main() { std::wstring webhookUrl = L\u0026#34;https://hooks.slack.com/services/xxx/yyy/zzz\u0026#34;; // 自分のWebhookに置き換えてください std::string message = R\u0026#34;({ \u0026#34;text\u0026#34;: \u0026#34;Hello from C++ :rocket:\u0026#34;, \u0026#34;username\u0026#34;: \u0026#34;C++ Bot\u0026#34;, \u0026#34;icon_emoji\u0026#34;: \u0026#34;:robot_face:\u0026#34; })\u0026#34;; if (PostToSlack(webhookUrl, message)) { std::cout \u0026lt;\u0026lt; \u0026#34;投稿に成功しました！\\n\u0026#34;; } else { std::cerr \u0026lt;\u0026lt; \u0026#34;投稿に失敗しました。\\n\u0026#34;; } return 0; } 🧪 تخصيص رسائل JSON في Slack Webhooks، يمكنك تضمين معلمات مثل هذه:\n1 2 3 4 5 6 { \u0026#34;text\u0026#34;: \u0026#34;محتوى الإشعار\u0026#34;, \u0026#34;username\u0026#34;: \u0026#34;اسم البوت\u0026#34;, \u0026#34;icon_emoji\u0026#34;: \u0026#34;:rocket:\u0026#34;, \u0026#34;channel\u0026#34;: \u0026#34;#اسم_قناة_اختياري\u0026#34; } 📌 ملاحظات إضافية يجب تحديد Content-Type كـ \u0026quot;application/json\u0026quot; يتم تمرير رابط Webhook كـ wstring كما هو (لا حاجة لتشفير URL) نظرًا لأن الاتصال يتم عبر HTTPS، لا تنس WINHTTP_FLAG_SECURE 🎉 إضافة: مثال على التحقق من النشر في Slack سيظهر بهذا الشكل في Slack:\n1 2 [C++ Bot] Hello from C++ :rocket: ✍️ الملخص العنصر التفاصيل طريقة النشر Webhook (Incoming Webhooks) مكتبة الاتصال WinHTTP تنسيق البيانات JSON المعلمات المتاحة text, username, icon_emoji, channel، إلخ. حتى إذا كنت تعتقد أن التكامل مع Slack باستخدام C++ صعب\u0026hellip; يمكنك إضافة بوت إشعارات بدءًا من اليوم!\n🚀 ما التالي؟ إذا كنت مهتمًا، ففي المرة القادمة:\nإرفاق الملفات واجهة مستخدم بأزرار عمليات API مرنة عبر Slack App + OAuth2 يمكننا أيضًا تقديم تكامل متقدم مع Slack بخطوة أبعد مثل هذه!\n","date":"2025-07-16T19:42:56+09:00","image":"http://kenji.blog/p/c-win32-api--winhttp%E3%81%A7slack%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95webhook%E5%AF%BE%E5%BF%9C/img_huc0fc953b24035d17918192b772178b43_75467_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D9%86%D8%B4%D8%B1-%D8%B1%D8%B3%D8%A7%D8%A6%D9%84-%D8%A5%D9%84%D9%89-slack-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-c-win32-api--winhttp-%D8%AF%D8%B9%D9%85-webhook/","title":"كيفية نشر رسائل إلى Slack باستخدام C++ (Win32 API + WinHTTP) [دعم Webhook]"},{"content":"السوق للداخل والمنتج للخارج مرحباً، أنا كينجي.\nأحياناً في كتب الأعمال أو مقترحات المشاريع،\n\u0026ldquo;نحن نتبع استراتيجية السوق للداخل.\u0026rdquo; \u0026ldquo;هذا نموذج المنتج للخارج.\u0026rdquo;\nأرى أشياء تقال مثل هذا لكن\u0026hellip;\nلا، السوق للداخل؟ المنتج للخارج؟ أيهما أفضل؟؟؟\nألا تشعر هكذا؟\nلذا هذه المرة، سأنظر إلى \u0026ldquo;السوق للداخل\u0026rdquo; و\u0026quot;المنتج للخارج\u0026quot; هؤلاء، وأبسطها قدر الإمكان، وبنظرة ناقدة قليلاً.\nباختصار\u0026hellip; السوق للداخل : الاستماع لصوت السوق (الماركت) وصنع المنتجات بناءً عليه. المنتج للخارج : صنع شيء (منتج) نعتقد أنه جيد وتقديمه للعالم. هذا كل شيء. بسيط.\nعلى سبيل المثال في متجر رامين\u0026hellip; متجر رامين بأسلوب السوق للداخل، \u0026ldquo;في الآونة الأخيرة رامين الإيكي رائج. حسناً، دعنا نملأه بالدهون والثوم!\u0026rdquo; هكذا.\nمتجر رامين بأسلوب المنتج للخارج، \u0026ldquo;رامين حليب الصويا والريحان والملح الذي صنعته، حقاً الأفضل لذا يجب أن تأكله\u0026rdquo; هكذا.\nأيهما الإجابة الصحيحة\u0026hellip; كلاهما صحيح السوق للداخل يعتمد على تلبية احتياجات العملاء لذا \u0026ldquo;احتمالية البيع عالية\u0026rdquo;، لكن من الصعب ولادة أفكار خارقة أو اختراقات.\nالمنتج للخارج يمثل \u0026ldquo;تجسيد العدالة التي نؤمن بها\u0026rdquo; لذا فهو حاد وجذاب، لكن إذا أخطأ الهدف لن يعجب أحد.\nالآيفون يبدو كمنتج للخارج في عصر كان يُقال فيه \u0026ldquo;لا نحتاج للهواتف الذكية\u0026rdquo;، أطلقت أبل الآيفون.\nهذا بالكامل مثال ناجح للمنتج للخارج .\nلو استمعوا للمستخدمين، لقالوا \u0026ldquo;هاتف بدون لوحة مفاتيح؟ مستحيل\u0026rdquo; وانتهى الأمر.\nلكن المنتج للخارج يميل ليصبح \u0026ldquo;إرضاء للذات\u0026rdquo; أحياناً هناك شركات أو أشخاص يقولون \u0026ldquo;نحن من نوع المنتج للخارج\u0026rdquo;،\nلا، أليس هذا مجرد تجاهل للمستخدم؟\nأفكر في هذا أحياناً.\n\u0026ldquo;صنعته لأنني أردت صنعه. لكنه لم يُبع\u0026rdquo; هذا، ليس منتج للخارج بل \u0026ldquo;مخرج أناني\u0026rdquo;، أليس كذلك؟\nالسوق للداخل له أيضاً فخاخ من ناحية أخرى، السوق للداخل ليس مثالياً أيضاً.\nإذا قلت \u0026ldquo;سأفعل كل ما يطلبه المستخدمون!\u0026quot;، سيتزعزع جوهر المنتج، وفي النهاية قد لا يعجب أحداً.\nتضيف المزيد من الميزات، وفجأة تجد أداة فوضوية، شيء من هذا القبيل.\nالمذهل حقاً هو \u0026ldquo;من يفعل كلاهما\u0026rdquo; المنتج المذهل هو الذي يعرض بوضوح، \u0026ldquo;ما كان المستخدمون يريدونه حقاً، لكن لم يتمكنوا من التعبير عنه بالكلمات\u0026rdquo;.\nبمعنى آخر، \u0026ldquo;الحصول على تعاطف يشبه السوق للداخل، باستخدام فكرة المنتج للخارج\u0026rdquo;.\nهذا، من السهل قوله لكنه صعب للغاية. لكن، إذا استطعت فعل هذا سيصبح فجأة \u0026ldquo;منتجاً أسطورياً\u0026rdquo;.\nالخلاصة: رد فعل المستخدم هو كل شيء، وليس الكلمات السوق للداخل أو المنتج للخارج. أيهما صحيح هو سؤال لا معنى له حقاً.\n\u0026ldquo;هل يصل لقلب المستخدم؟\u0026rdquo; هو كل شيء في رأيي.\n\u0026ldquo;نحن نتبع هذه الاستراتيجية\u0026rdquo;، أعتقد أنه يكفي أن نتمكن من كتابته في مستندات التسويق لاحقاً.\nإذاً، كانت هذه قصة السوق للداخل والمنتج للخارج!\nبدون الانخداع بالكلمات الأجنبية الغريبة، التفكير في \u0026ldquo;في النهاية، كيف يمكنني إسعاد الناس؟\u0026rdquo; هو الأصح في رأيي.\nوداعاً~.\n","date":"2025-07-15T20:18:22+09:00","image":"http://kenji.blog/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/img_hu9af708a897f548be4a7980daec441f8f_1946278_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%83%E3%83%88%E3%82%A4%E3%83%B3%E3%81%A8%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%88%E3%82%A2%E3%82%A6%E3%83%88/","title":"السوق للداخل والمنتج للخارج"},{"content":"\u0026ldquo;هل حقًا ينتهي أي رقم بالعدد 1؟\u0026rdquo; ── اللعب بحدسية كولاتز مرحبًا! أنا كينجي.\nسؤال مفاجئ: عندما تسمع \u0026ldquo;قاعدة تجعل أي رقم ينتهي في النهاية إلى 1\u0026rdquo;، ألا يبدو ذلك غريبًا بعض الشيء؟\nعلى سبيل المثال، 19، أو 87، أو حتى 1000000. إذا اتبعت قاعدة معينة وتلاعبت بالأرقام، لسبب ما تنتهي دائمًا عند \u0026ldquo;1\u0026rdquo;.\nهذه القصة التي تشبه الحلم هي حدسية كولاتز (Collatz Conjecture).\nفي البداية، ما هي حدسية كولاتز؟ أولاً، دعني أقدم لك القواعد.\nالبداية: اختر أي عدد صحيح موجب\nالعملية:\nإذا كان زوجيًا → اقسمه على النصف (n → n / 2) إذا كان فرديًا → اضربه في 3 وأضف 1 (n → 3n + 1) إذا كررت هذا مرارًا وتكرارًا، فإن التوقع هو أن أي رقم سيصل في النهاية إلى 1.\nعلى سبيل المثال، إذا بدأنا بـ 6:\n1 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 أصبح \u0026ldquo;1\u0026rdquo; بالفعل. مرحبًا بعودتك!\nلنجرب ذلك بالرموز: كولاتز باستخدام بايثون حسنًا، في مثل هذه الحالات، من الأسرع تجربة الكود! دعنا نطبع \u0026ldquo;متتالية كولاتز\u0026rdquo; باستخدام بايثون.\n1 2 3 4 5 6 7 8 9 10 11 12 def collatz(n): steps = [n] while n != 1: if n % 2 == 0: n = n // 2 else: n = 3 * n + 1 steps.append(n) return steps # مثال: لنبدأ بـ 19 print(collatz(19)) عند التشغيل:\n1 [19, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1] يصل إلى 1 بنجاح. لقد اتخذ طريقًا التفافيًا طويلاً، لكنه وصل إلى خط النهاية في النهاية!\nبالمناسبة، حتى لو بدأنا بـ 29، فإنه يصل إلى 1 بنفس الطريقة.\n1 pythonprint(collatz(29)) عند التشغيل:\n1 2 3 4 5 6 7 8 [27, 82, 41, 124, 62, 31, 94, 47, 142, 71, 214, 107, 322, 161, 484, 242, 121, 364, 182, 91, 274, 137, 412, 206, 103, 310, 155, 466, 233, 700, 350, 175, 526, 263, 790, 395, 1186, 593, 1780, 890, 445, 1336, 668, 334, 167, 502, 251, 754, 377, 1132, 566, 283, 850, 425, 1276, 638, 319, 958, 479, 1438, 719, 2158, 1079, 3238, 1619, 4858, 2429, 7288, 3644, 1822, 911, 2734, 1367, 4102, 2051, 6154, 3077, 9232, 4616, 2308, 1154, 577, 1732, 866, 433, 1300, 650, 325, 976, 488, 244, 122, 61, 184, 92, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1] يستغرق الأمر 111 خطوة مذهلة!\nوعلاوة على ذلك، في بعض الأحيان يتضخم إلى أكثر من 9000 في الطريق. هذا نمط يأخذ طريقًا التفافيًا ضخمًا قبل الوصول إلى خط النهاية.\nإذن، ما هو الشيء المذهل في النهاية؟ الشيء المذهل في هذه الحدسية هو،\nعلى الرغم من أنها لم تُثبت، يبدو أنها تصل دائمًا إلى 1 بغض النظر عن الرقم الذي تستخدمه\nهنا تكمن الروعة.\nماذا؟ إذن، ماذا عن تريليون، أو كوادريليون\u0026hellip;؟\nلمن فكر في ذلك، أنت حاد الذكاء. في الواقع، باستخدام أجهزة الكمبيوتر، تم التحقق من ذلك حتى \u0026ldquo;2 أُس 68\u0026rdquo;، و جميعها تصل إلى 1. أمر لا يصدق\u0026hellip;\nولكن، لم يُثبت نظريًا أن \u0026ldquo;كل شيء سيكون على هذا النحو\u0026rdquo;. هذا ما يسمى \u0026ldquo;مشكلة غير محلولة\u0026rdquo; في عالم الرياضيات.\nمن هو السيد كولاتز؟ والآن، بعد قراءة هذا الحد، قد تتساءل: \u0026ldquo;من هو كولاتز في المقام الأول؟\u0026rdquo; سأقدمه لك بشكل صحيح!\nالاسم: لوثار كولاتز (Lothar Collatz) الجنسية: ألماني سنة الميلاد: 1910 - 1990 المسمى الوظيفي: عالم رياضيات (نشط في مجالات التحليل الدالي ونظرية الأعداد) اقترح هذه الحدسية في عام 1937، ومنذ ذلك الحين، لأكثر من 80 عامًا، لم يتمكن أحد من إثباتها أو دحضها.\nبالمناسبة، هذه المشكلة بسيطة للغاية ولكنها عميقة جدًا، حتى أن بول إيردوس (عالم الرياضيات الشهير) قال شيئًا كهذا.\n\u0026ldquo;الرياضيات ليست ناضجة بما يكفي للتعامل مع كولاتز بعد\u0026rdquo;\nبمعنى آخر، النظرية هي أن رياضيات البشرية لم تلحق بعد بهذا اللغز\u0026hellip;\n\u0026ldquo;الصيغ الرياضية المعقدة\u0026rdquo; ليست ضرورية الشيء الجيد في حدسية كولاتز هو أنه يمكن لـ أي شخص اللعب بها.\nكل ما تحتاجه هو ورقة وقلم. إذا كتبت كودًا بلغة بايثون، يمكنك اختباره تلقائيًا. ومع ذلك، يتحدى علماء الرياضيات البارزون ذلك بجدية.\nألا يبدو ذلك مثيرًا؟\nمكافأة: كود لاختبار العديد من الأرقام دفعة واحدة سأقوم أيضًا بتضمين كود لاختبار العديد من الأرقام معًا.\n1 2 3 for n in range(1, 21): steps = collatz(n) print(f\u0026#34;{n}: {steps} (عدد الخطوات: {len(steps)-1})\u0026#34;) هذا سيخرج متتالية كولاتز للأرقام من \u0026ldquo;1 إلى 20\u0026rdquo; دفعة واحدة.\nالخلاصة: هذا العالم غريب حقًا إذن، هذه هي حدسية كولاتز.\nعلى الرغم من أنها بسيطة جدًا لا يمكن لأحد إثباتها إنها مشكلة كبيرة في عالم الرياضيات لقد كان وجودًا يبدو ككتلة من الغموض.\nحتى المبتدئين في البرمجة يمكنهم تجربتها، لذا يرجى اللعب بها!\nروابط موصى بها (للمهتمين) ويكيبيديا: حدسية كولاتز ورقة تيرينس تاو (باللغة الإنجليزية) قد يكون من الممتع أيضًا إنشاء نسخة مرئية باستخدام بايثون! (سأفعل ذلك إذا كان هناك طلب) إذا كنت ترغب في معرفة المزيد من القصص حول \u0026ldquo;الرياضيات الغامضة × البرمجة\u0026rdquo;، لا تتردد في طلب \u0026ldquo;أخبرني المزيد\u0026rdquo;. قريبًا، سأقدم لك فرضية ريمان، الأعداد الأولية، والمزيد!\n📮 النهاية!\n","date":"2025-07-15T18:03:03+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%A9%E3%83%83%E3%83%84%E4%BA%88%E6%83%B3/img_hu1a59efae05835f74694145ebf674f295_4369684_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/collatz-conjecture/","title":"حدسية كولاتز"},{"content":"كيفية نشر رسائل إلى Microsoft Teams من C++ (WinHTTP + Graph API) هل ترغب في النشر التلقائي في دردشة Microsoft Teams؟ يمكنك استخدام ** Microsoft Graph API ** لذلك. في هذه المقالة، سنقدم ** أمثلة كود C++ باستخدام WinHTTP ** و ** خطوات مصادقة API المطلوبة ** خطوة بخطوة.\n🔧 التحضيرات المطلوبة (إعدادات مصادقة Microsoft Graph API) 1. تسجيل التطبيق في بوابة Azure أولاً، لاستخدام Microsoft Graph API، يجب عليك تسجيل تطبيقك في Azure.\nانتقل إلى Azure Portal ** \u0026ldquo;Microsoft Entra ID\u0026rdquo; ** \u0026gt; ** \u0026ldquo;＋إضافة\u0026rdquo; ** \u0026gt; ** \u0026ldquo;تسجيل التطبيق\u0026rdquo; ** \u0026gt; ** \u0026ldquo;تسجيل جديد\u0026rdquo; ** أدخل اسم التطبيق الذي تريده وانقر على \u0026ldquo;تسجيل\u0026rdquo; 2. إضافة أذونات API انتقل إلى \u0026ldquo;أذونات API\u0026rdquo; في القائمة اليسرى في ** \u0026ldquo;Microsoft Graph\u0026rdquo; ** \u0026gt; ** \u0026ldquo;تحديد الأذونات\u0026rdquo; **، ابحث عن النطاقات التالية وانقر على ** \u0026ldquo;تحديث الأذونات\u0026rdquo; ** Chat.ReadWrite User.Read ※ إذا كنت ترغب في النشر في قناة، فستحتاج أيضًا إلى ChannelMessage.Send\n3. تدوين معرف العميل ومعرف المستأجر احتفظ بالقيمتين التاليتين المعروضتين في علامة التبويب \u0026ldquo;نظرة عامة\u0026rdquo;:\nمعرف التطبيق (العميل) معرف الدليل (المستأجر) 4. إنشاء سر العميل انتقل إلى علامة التبويب \u0026ldquo;الشهادات والأسرار\u0026rdquo; \u0026ldquo;سر عميل جديد\u0026rdquo; \u0026gt; قم بتعيين تاريخ انتهاء الصلاحية وانقر على \u0026ldquo;إضافة\u0026rdquo; ** تأكد من تدوين القيمة المعروضة (السر) على الفور ** 🔐 الحصول على رمز الوصول (OAuth2) سنستخدم تدفق client_credentials للحصول على الرمز. قم بتشغيل الأمر التالي باستخدام curl للحصول على رمز الوصول.\n1 2 3 4 5 6 7 curl -X POST ^ https://login.microsoftonline.com/{معرف المستأجر}/oauth2/v2.0/token ^ -H \u0026#34;Content-Type: application/x-www-form-urlencoded\u0026#34; ^ -d \u0026#34;client_id={معرف العميل}\u0026#34; ^ -d \u0026#34;scope=https%3A%2F%2Fgraph.microsoft.com%2F.default\u0026#34; ^ -d \u0026#34;client_secret={سر العميل}\u0026#34; ^ -d \u0026#34;grant_type=client_credentials\u0026#34; مثال على الاستجابة 1 2 3 4 5 6 { \u0026#34;token_type\u0026#34;:\u0026#34;Bearer\u0026#34;, \u0026#34;expires_in\u0026#34;:3599, \u0026#34;ext_expires_in\u0026#34;:3599, \u0026#34;access_token\u0026#34;: \u0026#34;eyJ0eXAiOiJKV1QiLCJub... (محذوف)\u0026#34; } استخدم access_token هذا لاستدعاء Microsoft Graph API.\n💬 نموذج C++ للنشر في دردشة Teams فيما يلي مثال بلغة C++ للنشر في دردشة باستخدام WinHTTP.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #include \u0026lt;windows.h\u0026gt; #include \u0026lt;winhttp.h\u0026gt; #include \u0026lt;iostream\u0026gt; #include \u0026lt;string\u0026gt; #pragma comment(lib, \u0026#34;winhttp.lib\u0026#34;) void PostToTeamsChat(const std::wstring\u0026amp; accessToken, const std::wstring\u0026amp; chatId, const std::wstring\u0026amp; message) { HINTERNET hSession = WinHttpOpen(L\u0026#34;TeamsPoster/1.0\u0026#34;, WINHTTP_ACCESS_TYPE_DEFAULT_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS, 0); HINTERNET hConnect = WinHttpConnect(hSession, L\u0026#34;graph.microsoft.com\u0026#34;, INTERNET_DEFAULT_HTTPS_PORT, 0); std::wstring endpoint = L\u0026#34;/v1.0/chats/\u0026#34; + chatId + L\u0026#34;/messages\u0026#34;; HINTERNET hRequest = WinHttpOpenRequest(hConnect, L\u0026#34;POST\u0026#34;, endpoint.c_str(), NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_SECURE); std::wstring jsonBody = L\u0026#34;{\\\u0026#34;body\\\u0026#34;: {\\\u0026#34;content\\\u0026#34;: \\\u0026#34;\u0026#34; + message + L\u0026#34;\\\u0026#34;}}\u0026#34;; std::wstring headers = L\u0026#34;Authorization: Bearer \u0026#34; + accessToken + L\u0026#34;\\r\\nContent-Type: application/json\\r\\n\u0026#34;; BOOL bResult = WinHttpSendRequest(hRequest, headers.c_str(), (DWORD)-1L, (LPVOID)jsonBody.c_str(), (DWORD)(jsonBody.length() * sizeof(wchar_t)), (DWORD)(jsonBody.length() * sizeof(wchar_t)), 0); if (bResult) WinHttpReceiveResponse(hRequest, NULL); DWORD dwSize = 0; WinHttpQueryDataAvailable(hRequest, \u0026amp;dwSize); if (dwSize \u0026gt; 0) { std::wstring response(dwSize / sizeof(wchar_t), 0); DWORD dwDownloaded = 0; WinHttpReadData(hRequest, \u0026amp;response[0], dwSize, \u0026amp;dwDownloaded); std::wcout \u0026lt;\u0026lt; L\u0026#34;Response: \u0026#34; \u0026lt;\u0026lt; response \u0026lt;\u0026lt; std::endl; } WinHttpCloseHandle(hRequest); WinHttpCloseHandle(hConnect); WinHttpCloseHandle(hSession); } int main() { std::wstring access; std::wstring chatId = L\u0026#34;19:\u0026#34;; std::wstring message = L\u0026#34;Hello from C++!\u0026#34;; std::wcout \u0026lt;\u0026lt; L\u0026#34;Enter your access token: \u0026#34;; std::getline(std::wcin, access); std::wcout \u0026lt;\u0026lt; L\u0026#34;Enter chat ID: \u0026#34;; std::getline(std::wcin, chatId); PostToTeamsChat(access, chatId, message); return 0; } 🔍 كيفية الحصول على معرف الدردشة يمكنك التحقق من معرف الدردشة باستخدام GET /v1.0/me/chats.\n1 2 3 4 curl -X GET ^ https://graph.microsoft.com/v1.0/me/chats ^ -H \u0026#34;Authorization: Bearer {access_token}\u0026#34; ^ -H \u0026#34;Content-Type: application/json\u0026#34; مثال على الاستجابة 1 2 3 4 5 6 7 8 9 { \u0026#34;value\u0026#34;: [ { \u0026#34;id\u0026#34;: \u0026#34;19:abc123xyz@thread.v2\u0026#34;, \u0026#34;topic\u0026#34;: null, \u0026#34;chatType\u0026#34;: \u0026#34;oneOnOne\u0026#34; } ] } 📌 ملاحظات هذا النموذج هو تنفيذ بالحد الأدنى. في بيئة الإنتاج: معالجة انتهاء صلاحية الرمز التحقق من شهادة HTTPS تعزيز معالجة الأخطاء للنشر في القنوات، استخدم teams/{team-id}/channels/{channel-id}/messages. لإرسال المرفقات، ستحتاج إلى معالجة متعددة الأجزاء أو Graph Drive API. 📎 الخلاصة الميزة الوصف Graph API واجهة برمجة التطبيقات الرسمية للتفاعل مع Teams تسجيل التطبيق إجراءات المصادقة المطلوبة على Azure رمز الوصول تم الحصول عليه عبر OAuth2 واستخدامه في الطلبات تنفيذ C++ استدعاء Graph API باستخدام WinHTTP 🚀 الخطوات التالية كأمثلة أكثر تقدمًا، يمكنك أيضًا:\nالنشر في قنوات الفريق (/teams/{team-id}/channels/...) النشر مع المرفقات التبديل بين حسابات الروبوت وحسابات المستخدمين تنفيذ C++ كامل يشمل الحصول على الرمز إذا كان لديك أي طلبات، فلا تتردد في ترك تعليق!\n","date":"2025-07-14T23:40:15+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89-microsoft-teams-%E3%81%AB%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%82%92%E6%8A%95%E7%A8%BF%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95winhttp--graph-api/img_hu9dbe154e21530b21fd6a41dcbc040106_90767_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D9%86%D8%B4%D8%B1-%D8%B1%D8%B3%D8%A7%D8%A6%D9%84-%D8%A5%D9%84%D9%89-microsoft-teams-%D9%85%D9%86-c-winhttp--graph-api/","title":"كيفية نشر رسائل إلى Microsoft Teams من C++ (WinHTTP + Graph API)"},{"content":"لقد قمنا بتلخيص المعلومات حول علامة \u0026ldquo;مطلوب\u0026rdquo; أو الإلزامية في واجهات المستخدم (النماذج) في الخارج، مع مواد توجيهية لواجهة المستخدم.\n📌 علامات الإلزامية الرئيسية وأفضل الممارسات استخدام علامة النجمة (*)\nهو الأكثر شيوعًا وانتشارًا، حيث يتم وضع \u0026ldquo;*\u0026rdquo; على الحقول المطلوبة. ومع ذلك، من الضروري وجود شرح في بداية النموذج مثل \u0026ldquo; حقل مطلوب\u0026rdquo;* (Nielsen Norman Group, California State University, Northridge). هناك أيضًا أمثلة تستخدم الألوان للتأكيد (مثل النص الأحمر). تحديد \u0026ldquo;Required\u0026rdquo; أو \u0026ldquo;(required)\u0026rdquo; بوضوح في التسمية\nعن طريق إضافة كلمة \u0026ldquo;Required\u0026rdquo; في التسمية (Label)، يمكن توضيح ذلك لقارئات الشاشة، مما يحسن إمكانية الوصول (Deque). الاستخدام المشترك لسمات ARIA وسمة required في HTML5\nبالإضافة إلى العرض المرئي، باستخدام aria-required=\u0026quot;true\u0026quot; و \u0026lt;input required\u0026gt;، يمكن توصيل الإلزامية برمجيًا (Deque). استخدام \u0026ldquo;(optional)\u0026rdquo; لتحديد الحقول الاختيارية بوضوح\nهناك أيضًا طريقة لتوضيح الحقول الاختيارية باستخدام \u0026ldquo;(optional)\u0026rdquo; بدلاً من الحقول المطلوبة، وهي فعالة عند خلط الاثنين. ومع ذلك، يشير Nielsen‑Norman إلى أنه \u0026ldquo;من الأسهل الحكم إذا تم توضيح الإلزامية أيضًا\u0026rdquo; (TPGi). ✅ ملخص مواد توجيهات واجهة المستخدم المصدر المحتوى NN/g: Marking Required Fields in Forms يُنصح باستخدام النجمة + نص توضيحي، ويُعتبر عرض الاختياري فقط غير ودي (Nielsen Norman Group). Deque (Anatomy of Accessible Forms) ・استخدام نص \u0026ldquo;Required\u0026rdquo; أو صورة في التسمية.\n・تم التصريح بأن الإشارة باللون وحده غير كافية. W3C Techniques (H90) تضمين النجمة أو \u0026ldquo;(required)\u0026rdquo; في التسمية، وتحديد المعنى في بداية النموذج. TPGi (Doing what\u0026rsquo;s required) مع مراعاة إمكانية الوصول، تم تقييم إدراج النجمة + سمة ARIA + نص التسمية على أنه الأمثل. دليل Contensis لتجربة مستخدم النماذج تم تلخيصه بإيجاز بأن وضع العلامات المتسق (* أو (optional)) أمر مهم. ✅ النهج الموصى به في التنفيذ إضافة نص توضيحي في بداية النموذج :\nFields marked with * are required. (أو بشكل جماعي \u0026ldquo;All fields are required\u0026rdquo;، وإذا كان هناك خيار اختياري \u0026ldquo;unless marked optional\u0026rdquo;)\nإضافة تسمية (Label) :\nالكتابة مثل First Name * أو Email (required). سمات ARIA و HTML5 :\n1 2 \u0026lt;label for=\u0026#34;email\u0026#34;\u0026gt;Email \u0026lt;abbr title=\u0026#34;required\u0026#34;\u0026gt;*\u0026lt;/abbr\u0026gt;\u0026lt;/label\u0026gt; \u0026lt;input id=\u0026#34;email\u0026#34; required aria-required=\u0026#34;true\u0026#34;\u0026gt; لا تعتمد على اللون فقط : قم بدعم العرض المرئي والبرمجي معًا.\n🔗 روابط مرجعية (مواد إرشادات واجهة المستخدم) NN/g: Marking Required Fields in Forms (California State University, Northridge, Nielsen Norman Group, Deque) Deque: Anatomy of Accessible Forms (Deque) W3C Techniques: H90 Indicating required form controls (W3C) TPGi: Indicating mandatory fields accessibly (TPGi) Contensis: UX Forms Guidelines (Contensis) إذا لزم الأمر، يمكننا أيضًا تقديم أمثلة محددة لأكواد HTML/CSS، وقوالب تصميم مكونات واجهة المستخدم لـ Sketch أو Figma، وما إلى ذلك. لا تتردد في استشارتنا!\n","date":"2025-07-14T13:47:51+09:00","image":"http://kenji.blog/p/%E5%85%A5%E5%8A%9B%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E5%BF%85%E9%A0%88%E3%83%9E%E3%83%BC%E3%82%AF%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hu551d2409ec5a7ae3c7367fc3f969286e_18058_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AD%D9%88%D9%84-%D8%B9%D9%84%D8%A7%D9%85%D8%A9-%D8%A7%D9%84%D8%A5%D9%84%D8%B2%D8%A7%D9%85%D9%8A%D8%A9-%D9%81%D9%8A-%D9%86%D9%85%D8%A7%D8%B0%D8%AC-%D8%A7%D9%84%D8%A5%D8%AF%D8%AE%D8%A7%D9%84/","title":"حول علامة الإلزامية في نماذج الإدخال"},{"content":"【للمبتدئين】كيفية تثبيت Gemini CLI على Windows \u0026ldquo;Gemini CLI\u0026rdquo; الذي يتيح استخدام الذكاء الاصطناعي التوليدي من Google \u0026ldquo;Gemini\u0026rdquo; من سطر الأوامر. في هذا المقال، سنشرح خطوات تثبيت Gemini CLI في بيئة Windows بأبسط طريقة ممكنة.\n1. التحضير المسبق: تثبيت Node.js و npm أولاً، نظراً لأن Gemini CLI يعمل في بيئة تسمى \u0026ldquo;Node.js\u0026rdquo;، يجب تثبيت ما يلي مسبقاً:\nNode.js npm (أداة إدارة الحزم المرفقة مع Node.js) npx (أداة تنفيذ الأوامر المضمنة في npm) يرجى تنزيل إصدار Windows من Node.js من الموقع الرسمي التالي (نوصي بإصدار LTS):\n👉 موقع Node.js الرسمي\nبعد اكتمال التثبيت، دعنا نتحقق مما إذا كان التثبيت صحيحاً باستخدام الأوامر التالية.\n1 2 node -v npm -v 2. تشغيل PowerShell لاستخدام Gemini CLI على Windows، من الشائع العمل باستخدام PowerShell. قم بتشغيله بكتابة \u0026ldquo;PowerShell\u0026rdquo; من قائمة ابدأ.\n3. تثبيت Gemini CLI انسخ والصق الأمر التالي في PowerShell لتشغيله:\n1 npx @google/gemini-cli هذا الأمر مخصص للتشغيل المؤقت لحزمة Gemini CLI التي أصدرتها Google. قد يُطلب منك إجراء الإعدادات الأولية أو تسجيل الدخول إذا لزم الأمر.\n※ قد يستغرق الأمر بضع دقائق في المرة الأولى. في حالة حدوث خطأ، يرجى إعادة التحقق من Node.js وبيئة الشبكة.\n4. اكتمل التثبيت! الخطوة التالية بذلك، تم تثبيت Gemini CLI على Windows. من الآن فصاعداً، من خلال استخدام Gemini من سطر الأوامر، ستكون العديد من العمليات مثل إنشاء النصوص وإكمال التعليمات البرمجية ممكنة.\nإذا كنت ترغب في التحقق من الوثائق الرسمية أو المساعدة، يمكنك أيضاً الاستفادة من أوامر مثل:\n1 npx @google/gemini-cli --help الخلاصة دعونا نراجع خطوات تقديم Gemini CLI إلى Windows.\nتثبيت Node.js و npm تشغيل PowerShell تنفيذ npx @google/gemini-cli الآن أصبح كل شيء جاهزاً! إذا كنت ترغب في استخدام الذكاء الاصطناعي التوليدي محلياً، فيرجى تجربة هذه الخطوات.\n","date":"2025-07-13T23:49:56+09:00","image":"http://kenji.blog/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu68d4fe037447f15938887bf6c4d85b87_249642_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/gemini-cli-%E3%82%92-windows-%E7%92%B0%E5%A2%83%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تثبيت Gemini CLI في بيئة Windows"},{"content":"لقد تم تجديد جائزتي كـ Microsoft MVP (2025-2026)! مرحبًا، أنا kenji.\nلدي إعلان. هذا العام تمكنت من الحصول على Microsoft MVP (Most Valuable Professional) مرة أخرى. هذه هي المرة التاسعة التي أحصل فيها على الجائزة.\nشكرًا جزيلاً لكل من يدعمني دائمًا.\nما هو Microsoft MVP؟ قد يتبادر إلى ذهن الكثيرين أفضل لاعب في الرياضة عند سماع \u0026ldquo;MVP\u0026rdquo;، لكن الجائزة هنا هي لقب يُمنح للأشخاص الذين ساهموا في مجتمع التكنولوجيا الخاص بـ Microsoft .\nعلى وجه التحديد،\nنشر المعلومات عبر المدونات التقنية ووسائل التواصل الاجتماعي نشر أكواد نموذجية على GitHub التحدث في جلسات الدراسة والمؤتمرات الإجابة على مواقع الأسئلة والأجوبة التبادل التقني والتعاون مع المطورين في الخارج المشاركة والنشر في المجتمعات التي تربط المهندسين وهكذا، فهو نظام يقيّم الأنشطة التي \u0026ldquo;تشارك فيها معرفتك وخبراتك من أجل شخص آخر\u0026rdquo;.\nالفائزون موجودون في جميع أنحاء العالم، لكن العدد المختار كل عام محدود، وتجديد الجائزة ليس سهلاً على الإطلاق. لهذا السبب، يُشرفني حقًا أن يتم الاعتراف بي بهذه الطريقة.\nما ركزت عليه خلال العام الماضي هذا العام، ركزت على نشر المعلومات مع مراعاة \u0026ldquo;وضوح\u0026rdquo; التكنولوجيا و \u0026ldquo;سهولة الوصول\u0026rdquo; إليها .\nنشر أكواد نموذجية عملية على GitHub التحدث في جلسات الدراسة والمؤتمرات (سواء محلياً أو دولياً) نشر منتظم للمعلومات من خلال المدونات التقنية ووسائل التواصل الاجتماعي نشاط الإجابة المستمر على مواقع الأسئلة والأجوبة مشاركة المعرفة على مواقع مجتمعات المهندسين التواصل والتحقق المشترك مع المهندسين الأجانب من بينها، نشر الكود على GitHub كان لا يُنسى حيث تلقيت تعليقات مثل \u0026ldquo;لقد ساعدني ذلك لأنني كنت أعاني من نفس المشكلة!\u0026quot;، وقد جعلني ذلك أدرك أن جهودي تساعد الآخرين في تطويرهم.\nبالإضافة إلى ذلك، في العروض التقديمية للفعاليات، تلقيت في بعض الأحيان ملاحظات مثل \u0026ldquo;كان من السهل فهمه حتى للمبتدئين\u0026rdquo;، وكانت فرصة جيدة للتفكير في \u0026ldquo;ما هي الشروحات التقنية التي تصل إلى الجمهور؟\u0026rdquo;.\nنحو العام المقبل التطور التقني سريع للغاية، ومجرد مواكبته يمثل تحديًا. ومع ذلك، أعتقد أن هناك قيمة كبيرة في تقديم معرفة حقيقية كـ \u0026ldquo;معلومات أولية\u0026rdquo; ، مثل التجارب الفعلية التي اكتسبتها من خلال التجربة والأخطاء، والنقاط التي تعثرت فيها.\nفي العام المقبل، أود تحدي نفسي لنشر \u0026ldquo;محتوى تقني سهل الفهم بصريًا\u0026rdquo; يدمج مقاطع الفيديو والرسوم التوضيحية . آمل أن أتمكن من زيادة إنتاجي للمساعدة في حل لحظات \u0026ldquo;لقد علقت!\u0026rdquo; لشخص ما، ولو قليلاً.\nأخيرًا لقب MVP هو مجرد خطوة في الطريق.\nسأستمر بالسرعة التي تناسبني دون إرهاق نفسي. ولكن بهدف أن أكون مفيدًا لشخص ما.\n\u0026ldquo;كان البحث عنه مفيدًا\u0026rdquo; \u0026ldquo;هذا النموذج يعمل!\u0026rdquo; \u0026ldquo;كان هذا الشرح سهل الفهم\u0026rdquo;\nأريد أن أستمر في كوني مهندسًا يمكن للناس أن يقولوا عنه مثل هذه الأشياء.\nشكرًا لكم على دعمكم المستمر.\nGitHub: https://github.com/kenjinote مدونة التكنولوجيا: https://hack.jp X: https://twitter.com/kenjinote ","date":"2025-07-13T22:01:15+09:00","image":"http://kenji.blog/p/microsoft-mvp2025-2026%E3%82%92%E5%86%8D%E5%8F%97%E8%B3%9E%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/img_hu79b11b7d0311d1cf72d88f77ae4d2c9a_139280_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D9%85-%D8%AA%D8%AC%D8%AF%D9%8A%D8%AF-%D8%AC%D8%A7%D8%A6%D8%B2%D8%A9-microsoft-mvp-2025-2026/","title":"تم تجديد جائزة Microsoft MVP (2025-2026)"},{"content":"جاذبية وتحديات التطوير باستخدام Win32API + C++ بالنسبة لأولئك الذين يرغبون في إتقان تطوير تطبيقات Windows، لا يزال Win32API + C++ خيارا قويا. تجمع هذه المجموعة، التي تتيح لك التفاعل مع نظام التشغيل بأقرب مسافة، بين السرعة العالية والمرونة.\nمن ناحية أخرى، نظرا لأنها تختلف اختلافا كبيرا عن أساليب التطوير الحديثة، فإن إتقانها يتطلب أيضا تصميما.\nفي هذه الصفحة، سنشرح المزايا والعيوب بطريقة سهلة الفهم من منظور مطور تطبيقات Windows نشط .\nالمزايا تنفيذ أصلي فائق السرعة نظرا لأن C++ و Win32API يعملان في الطبقة الأقرب لنظام التشغيل، فلا يوجد تقريبا أي عبء إضافي. كفاءة استخدام وحدة المعالجة المركزية والذاكرة عالية جدا، وتتميز بـ سرعة تنفيذ ساحقة .\nمرونة وحرية عالية يمكنك التحكم الدقيق بنفسك في كل سلوك للتطبيق، مثل التحكم في النوافذ، والمعالجة غير المتزامنة، وتكامل COM، وإدارة العمليات. من الممكن أيضا بناء أدوات متخصصة لغرض معين، أو إطارات عمل مخصصة خاصة بك.\nسهل التوزيع بدون الحاجة إلى وقت تشغيل نظرا لعدم الحاجة إلى أوقات تشغيل خارجية مثل .NET أو Java، يمكن توزيعه كملف تنفيذي واحد فقط . من الصعب حدوث مشاكل عند إعادة التوزيع، ومن الجذاب أنه من السهل تشغيله حتى بدون مثبت.\nيمكن إنشاء تطبيقات خفيفة الوزن نظرا لأنه يتطلب فقط الحد الأدنى من التكوين، فإن الميزة هي أن بصمة الذاكرة صغيرة جدا . يعمل بشكل مريح حتى على أجهزة الكمبيوتر ذات المواصفات المنخفضة وبيئات الأجهزة الافتراضية.\nتحكم متقدم على مستوى نظام التشغيل ممكن يمكن أيضا تحقيق تحكم يصعب باستخدام اللغات والمكتبات العادية ، مثل الخطافات العالمية للماوس ولوحة المفاتيح، والضبط الدقيق لأنماط النوافذ، وعمليات قائمة النظام.\nالعيوب كفاءة تطوير منخفضة يجب أن يتم بناء واجهة المستخدم الرسومية بالكامل من خلال الكود، و قد يتطلب إنشاء زر واحد عشرات الأسطر من التعليمات البرمجية . تعديل التصميم عند التغيير مرهق أيضا، والإنتاجية منخفضة مقارنة بالتطوير باستخدام أطر عمل واجهة المستخدم.\nالصيانة تميل إلى الانخفاض يحتوي على الكثير من التعليمات البرمجية ذات البنية الخاصة ، مثل حلقات الرسائل وإجراءات النوافذ، مما يجعل من الصعب قراءتها وإعادة استخدامها. هناك أيضا جوانب تجعلها غير مناسبة لتطوير الفريق أو الصيانة طويلة الأجل.\nالتكيف مع واجهة المستخدم الحديثة مرهق من الصعب التكيف مع تجربة المستخدم المطلوبة في السنوات الأخيرة ، مثل دعم DPI العالي، وواجهة اللمس، وإمكانية الوصول، والوضع المظلم. يجب معالجة كل منها يدويا، الأمر الذي يتطلب الكثير من الجهد.\nغير مدعوم عبر المنصات نظرا لأنها واجهة برمجة تطبيقات مخصصة بالكامل لـ Windows، لا يمكن نقلها إلى macOS أو Linux . إذا كنت تتوقع النشر عبر منصات متعددة، فستحتاج إلى اختيار تقنية أخرى.\nتكلفة تعلم عالية جدا يجب أن تفهم المفاهيم والآليات التي نادرا ما تستخدم اليوم ، مثل المقابض، و GDI، و COM، و OLE. العديد من المستندات قديمة أيضا، ويتطلب التعلم وقتا وصبرا.\nالاستخدامات المناسبة أدوات خفيفة الوزن مثل مشغلات الملفات ومساعدات مفاتيح الاختصار أدوات النظام المساعدة مثل معالجة الحافظة والتحكم في IME تطبيقات نظام التحكم الأصلي مثل الخطافات العالمية والتقاط النوافذ أدوات مساعدة السائق التي ترتبط ارتباطا وثيقا بالأجهزة الاستخدامات غير المناسبة التطبيقات الموجهة للمستهلكين العاديين حيث يتم التركيز على واجهة المستخدم / تجربة المستخدم الحديثة النماذج الأولية وتطوير MVP حيث يتم تحديد الأولويات للسرعة مشاريع واسعة النطاق تعتمد على التشغيل طويل الأجل وتطوير الفريق المنتجات عبر المنصات التي تحتاج إلى دعم أنظمة تشغيل متعددة ملخص التقييم الجانب التقييم سرعة التنفيذ ◎ سريع جدا كفاءة الذاكرة ◎ ممتاز سرعة التطوير × بطيء الصيانة × منخفض دعم عبر المنصات × غير مدعوم دعم واجهة المستخدم الحديثة × ضعيف حرية تحكم نظام التشغيل ◎ عالية جدا الخاتمة Win32API + C++ أداة مناسبة للمطورين الذين \u0026ldquo;يريدون التعامل مع كل شيء في نظام التشغيل بأنفسهم\u0026rdquo;. في حين أن قوتها كبيرة جدا، إلا أن التعلم والتشغيل يتطلبان استعدادا مقابلا.\nما إذا كان الأمر يستحق \u0026ldquo;الخيار المتعمد\u0026rdquo; يعتمد على طبيعة التطبيق الذي تهدف إليه.\nالقفز إلى عالم #include \u0026lt;windows.h\u0026gt; دون الاعتماد على أطر عمل واجهة المستخدم الرسومية أو اللغات الحديثة ―― هذا الاختيار لا يزال مهما كما كان دائما.\n","date":"2025-07-12T12:30:35+09:00","image":"http://kenji.blog/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/img_1_huda4a374969e448ba98e0798d75e2e435_4729_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/win32api-c-%E3%81%A7%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E3%82%92%E4%BD%9C%E3%82%8B%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%A8%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88/","title":"مزايا وعيوب إنشاء برامج باستخدام Win32API + C++"},{"content":"إذا كنت تريد استخدام libcurl (مع دعم OpenSSL) في Visual Studio، فإن استخدام vcpkg سهل وموصى به غالبًا ما يتم استخدام libcurl عندما تريد التعامل مع اتصالات HTTP في C++. لكن ضبط إعدادات البناء والتبعيات يمكن أن يكون مزعجًا بشكل غير متوقع.\nفي مثل هذه الأوقات، تكون أداة إدارة مكتبات C++ من Microsoft ** \u0026ldquo;vcpkg\u0026rdquo; ** مفيدة. هذه المرة، سأقدم خطوات استخدام vcpkg لتثبيت libcurl (مع دعم OpenSSL) واستخدامه بسلاسة في Visual Studio.\nتثبيت vcpkg (فقط لمن لم يقم بتثبيته بعد) أولاً، دعنا نثبت vcpkg. يرجى تنفيذ الخطوات التالية في PowerShell.\n1 2 3 git clone https://github.com/microsoft/vcpkg cd vcpkg .\\bootstrap-vcpkg.bat ※ إذا لم يكن لديك Git مثبتًا بعد، يرجى تثبيته من الموقع الرسمي لـ Git.\nتثبيت libcurl (مع دعم OpenSSL) بعد ذلك، سنستخدم vcpkg لتثبيت libcurl. لتحديد إصدار 64 بت المتوافق مع OpenSSL، قم بتشغيل الأمر التالي.\n1 vcpkg install curl[ssl] --triplet x64-windows عند تشغيل هذا الأمر، سيتم أيضًا إعداد التبعيات الضرورية (مثل OpenSSL) تلقائيًا.\nإعداد التكامل مع Visual Studio لتسهيل استخدام المكتبات المثبتة بواسطة vcpkg من مشاريع Visual Studio الخاصة بك، قم بإعداد التكامل باستخدام الأمر التالي.\n1 vcpkg integrate install بمجرد إعداد ذلك، ستتمكن تلقائيًا من استخدام #include \u0026lt;curl/curl.h\u0026gt; في مشاريع Visual Studio الخاصة بك، ولن تحتاج إلى إعداد مسارات المكتبة أو إعدادات الرابط يدويًا.\nخاتمة الآن أصبحت جاهزًا لاستخدام libcurl (مع دعم OpenSSL) في Visual Studio.\nباستخدام vcpkg، يمكنك إدارة التبعيات المزعجة كلها مرة واحدة تثبيت libcurl بسهولة باستخدام vcpkg install curl[ssl] --triplet x64-windows تكامل تلقائي مع Visual Studio باستخدام vcpkg integrate install بعد ذلك، قم بتضمين ملفات الرأس في مشروعك وابدأ التطوير باستخدام واجهة برمجة تطبيقات libcurl. استفد من vcpkg المريح لزيادة كفاءة تطويرك بشكل كبير.\n","date":"2025-07-07T21:46:08+09:00","image":"http://kenji.blog/p/vcpkg-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-visual-studio-%E3%81%AB-curl-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/img_hub03488d3cca2b78b7b08dd6d749f5d1e_294355_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/vcpkg-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6-visual-studio-%E3%81%AB-curl-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/","title":"【للمبتدئين】خطوات تثبيت libcurl (مع دعم OpenSSL) في Visual Studio باستخدام vcpkg"},{"content":"\u0026ldquo;الأمن النفسي\u0026rdquo; اللازم لتجنب الانجرار وراء نظريات المؤامرة عند تصفح الإنترنت، قد تصادف أحيانًا أحاديث تشبه \u0026ldquo;نظريات المؤامرة\u0026rdquo;.\n\u0026ldquo;هل هناك من يتلاعب بهذه الأحداث من وراء الكواليس؟\u0026rdquo; \u0026ldquo;هل الحقيقة الفعلية مخفية؟\u0026rdquo; يجب أن يكون الكثير منكم قد رأى مثل هذه الادعاءات تنتشر بطريقة تبدو معقولة.\nلتجنب الانجرار بشكل مفرط في مثل هذه المعلومات، لا تقتصر الأهمية على \u0026ldquo;المعرفة\u0026rdquo; أو \u0026ldquo;القدرة على التفكير\u0026rdquo; فحسب، بل إن حالة العقل، أي \u0026ldquo;الأمن النفسي\u0026rdquo;، أمر بالغ الأهمية.\nفيما يلي ستة أفكار فعالة لتحقيق ذلك.\nلا تربط بين القلق و\u0026quot;الإجابات\u0026quot; فورًا السمة الرئيسية لنظريات المؤامرة هي أنها تقدم \u0026ldquo;إجابات\u0026rdquo; واضحة وسهلة الفهم للمخاوف والشكوك.\nعلى سبيل المثال، عند طرح أسئلة مثل:\n\u0026ldquo;لماذا تحدث مثل هذه الحوادث؟\u0026rdquo; \u0026ldquo;من المستفيد؟\u0026rdquo; عندما يتم تقديم سيناريو مثل \u0026ldquo;في الواقع، فلان يتلاعب بالأمور من وراء الكواليس\u0026rdquo;، نميل بسهولة إلى الاقتناع به.\nولكن، عندما تشعر بالقلق، من المهم عدم القفز إلى الاستنتاجات فورًا وتأجيلها.\n\u0026ldquo;القدرة على البقاء في حالة عدم يقين\u0026rdquo; هي أيضًا علامة على النضج الفكري.\nتوسيع مصادر تلقي المعلومات عمدًا يميل الكثير ممن ينغمسون في نظريات المؤامرة إلى التركيز حصريًا على \u0026ldquo;المعلومات التي تحمل آراء مشابهة\u0026rdquo;.\nوهذا ما يسمى \u0026ldquo;الانحياز التأكيدي\u0026rdquo;، وهو تحيز نفسي يجعلك تتعرض فقط للمعلومات التي تعزز معتقداتك الحالية.\nعلى وجه الخصوص، تستمر خوارزميات وسائل التواصل الاجتماعي ومواقع الفيديو في تقديم المنشورات التي من المحتمل أن تعجبك، مما قد يؤدي بشكل طبيعي إلى تضييق منظورك.\nبشكل واعي، يجب عليك:\nالتعرض لوسائل الإعلام بوجهات نظر مختلفة مشاهدة الأخبار الأجنبية والمصادر الأكاديمية الاستماع إلى الآراء التي تختلف عن أفكارك مثل هذه الإجراءات لـ تنويع مصادر المعلومات تساعد في تجنب المخاطر.\nلا تفكر: \u0026ldquo;أنا لن أُخدع\u0026rdquo; الأشخاص الذين يمتلكون المعرفة أو المنطقيون هم في الواقع أكثر عرضة للانجرار إلى نظريات المؤامرة.\nالاعتقاد بأن \u0026ldquo;يمكنني إدراك الحقيقة التي لا يلاحظها الآخرون\u0026rdquo; يمكن أن يكون عاملاً يغيم الحكم.\nبغض النظر عن مدى حذرنا، فإن البشر يخطئون. ولهذا السبب، فإن افتراض أنك قد تُخدع أيضًا هو في الواقع موقف أكثر عقلانية.\n\u0026ldquo;الشك، ولكن دون اتخاذ قرارات قاطعة\u0026rdquo; هو دفاعك.\nانظر إلى الهيكل، بدلاً من الانجرار وراء القصة نظريات المؤامرة تأتي دائمًا مع \u0026ldquo;قصص درامية\u0026rdquo;.\nهيكل الصراع بين الخير والشر الحكام والمحكومين أنا المستيقظ مقابل الآخرين المغسولة أدمغتهم هذه المعارضات الثنائية البسيطة، على الرغم من كونها جذابة كقصة، لا تعكس بالضرورة الواقع بشكل صحيح.\nتتضمن الأحداث الواقعية والحركات الاجتماعية العديد من العناصر المتشابكة، مثل العلاقات السببية المعقدة، والسياقات التاريخية، والهياكل المؤسسية.\nمن المهم عدم الانجرار عاطفيًا وراء القصة، بل امتلاك فهم هيكلي لـ \u0026ldquo;لماذا أصبحت الأمور هكذا؟\u0026rdquo;.\nلا تترك الوحدة دون علاج خلف الانجذاب القوي لنظريات المؤامرة، قد تكمن \u0026ldquo;العزلة\u0026rdquo; و\u0026quot;عدم الانتماء\u0026quot;.\nعندما يشعر الناس بالوحدة، فإنهم يميلون إلى الاعتماد بشدة على الأشخاص أو المجموعات التي تفهمهم. وفي بعض الأحيان تلعب مجتمعات نظريات المؤامرة دور هذا \u0026ldquo;المكان الذي تنتمي إليه\u0026rdquo;.\nولهذا السبب، فإن الجهود المبذولة لتجنب الوحدة تؤدي أيضًا إلى الأمن النفسي.\nعلى سبيل المثال:\nالتحدث مع الناس بانتظام الانضمام إلى مجتمعات تشاركك هواياتك واهتماماتك الحفاظ على الروابط ليس فقط عبر الإنترنت ولكن أيضًا في الواقع مثل هذه الأفعال تؤدي إلى الاستقرار العقلي.\nركز على الحوار بدلاً من الرفض حتى لو كان شخص مقرب منك يميل إلى نظريات المؤامرة، فإن الرفض القاطع يمكن أن يأتي بنتائج عكسية.\nعندما يتم رفض معتقدات شخص ما، تزداد لديه الرغبة النفسية في الدفاع عنها (يُسمى هذا \u0026ldquo;الإدراك الدفاعي\u0026rdquo;).\nبدلاً من ذلك:\nاسأل بلطف، \u0026ldquo;لماذا تعتقد ذلك؟\u0026rdquo; قدم وجهة نظرك بهدوء بقول، \u0026ldquo;قد تكون هناك طريقة التفكير هذه أيضًا\u0026rdquo; من خلال اتخاذ مثل هذا النهج الحواري، تنشأ إمكانية أن يتسع منظور الشخص الآخر بشكل طبيعي.\nالخلاصة: ما يمكنك فعله للابتعاد عن نظريات المؤامرة امتلك القدرة على تأجيل الأمور وعدم ربط القلق بالإجابات فورًا قم بتنويع مصادر المعلومات وانتبه إلى التحيزات أدرك أن حكمك ليس مطلقًا انظر إلى الأشياء من خلال الهيكل والعلاقات السببية، وليس القصص تجنب الوحدة وحافظ على الروابط واجه نظريات المؤامرة لدى الآخرين بالحوار بدلاً من الرفض يُقال إن الانجذاب إلى نظريات المؤامرة يتأثر بالحالة النفسية والبيئة المحيطة أكثر من مستوى المعرفة.\nلذلك، بدلاً من افتراض \u0026ldquo;أنا بخير\u0026rdquo;، فإن اتخاذ خطوات صغيرة لتعزيز الأمن النفسي في حياتك اليومية سيكون دعمًا كبيرًا للعيش بمرونة في مجتمع المعلومات المستقبلي.\n","date":"2025-05-26T22:23:34+09:00","image":"http://kenji.blog/p/%E9%99%B0%E8%AC%80%E8%AB%96%E3%81%AB%E3%81%AF%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%95%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B/img_hu51c98705e3e626ac0eb85c430c7c7e5c_195663_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E9%99%B0%E8%AC%80%E8%AB%96%E3%81%AB%E3%81%AF%E3%81%BE%E3%82%89%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%81%AB%E4%BD%95%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%8B/","title":"ما الذي تحتاجه لتجنب نظريات المؤامرة"},{"content":"تاريخ تطوير الكود المنخفض / بدون كود (من الثمانينات إلى الوقت الحاضر) تطوير الكود المنخفض / بدون كود هو طريقة تطوير تتيح لك إنشاء تطبيقات ومواقع ويب وقواعد بيانات دون الحاجة إلى خبرة في البرمجة. بدأ هذا المفهوم في الثمانينات وتطور إلى منصات متنوعة مع انتشار أجهزة الكمبيوتر الشخصية وتطور الإنترنت وتوسع تكنولوجيا السحابة. في هذه المقالة، سنسلط الضوء على الأدوات والخدمات النموذجية لكل عقد ونقدم ميزاتها وأسعارها.\nالثمانينات: الأيام الأولى HyperCard (Apple, 1987) أداة إنشاء تطبيقات لأجهزة Macintosh. تستخدم بطاقات لتكوين الشاشة وتتيح إنشاء واجهة مستخدم رسومية (GUI) عبر السحب والإفلات. يمكن أيضاً التحكم في العمليات البسيطة باستخدام لغة البرمجة الخاصة بها \u0026ldquo;HyperTalk\u0026rdquo;. كانت مفضلة لأغراض النماذج الأولية. كان سعر الإصدار 49.95 دولاراً، وتم توفيرها لاحقاً مجاناً لمشتري أجهزة Mac الجدد. كان الإصدار الأخير في عام 1998، ولم يتم دعمها على Mac OS X وما بعده.\nFileMaker (Claris/Apple, 1985) برنامج قاعدة بيانات رسومية. أداة قاعدة بيانات علائقية تتميز بعرض البيانات في شكل جدول بالإضافة إلى تحرير التخطيط الحر ووظائف البرمجة النصية. يتم تقديمها حالياً باسم \u0026ldquo;Claris FileMaker Pro\u0026rdquo;، ويبلغ سعر الإصدار الكامل 594 دولاراً (اعتباراً من عام 2024).\nالتسعينات: ظهور تطبيقات واجهة المستخدم الرسومية وتطوير أنظمة الأعمال Visual Basic (Microsoft, 1991) بيئة تطوير متكاملة (IDE) مخصصة لتطوير تطبيقات Windows. يمكنك بناء تطبيقات مدفوعة بالأحداث بسهولة عن طريق سحب وإفلات مكونات واجهة المستخدم الرسومية مثل الأزرار والتسميات. مع الإصدار VB6.0 في عام 1998، انتقلت إلى عصر .NET.\nMicrosoft Access (1992) أداة تطوير قواعد البيانات لنظام التشغيل Windows. تسمح بتصميم قواعد البيانات العلائقية وإنشاء النماذج عبر واجهة المستخدم الرسومية، واستخدمت على نطاق واسع لتطوير تطبيقات الأعمال العامة. يتم تقديمها حالياً كجزء من Microsoft 365.\nPowerBuilder (PowerSoft/Sybase, 1991) أداة تطوير من الجيل الرابع (4GL) لتطبيقات الأعمال. تدعم بنية العميل/الخادم ولها قوة في تكامل قواعد البيانات. لا يزال يتم تقديمها حالياً تحت مظلة SAP.\nDreamweaver (Macromedia, 1997) أداة WYSIWYG تتيح الإنشاء المرئي لصفحات الويب. تتيح التبديل بين تحرير HTML وعرض التصميم، وتدعم أيضاً ASP و PHP. تقدمها حالياً شركة Adobe وهي متاحة عبر الاشتراك (حوالي 34.49 دولاراً شهرياً).\nFlash (Macromedia, 1996) في الأصل أداة لإنشاء الرسوم المتحركة المتجهة تم تطويرها باسم FutureSplash Animator. استخدمت لاحقاً لإنشاء محتوى تفاعلي للويب، ولكن تم إنهاء دعمها في عام 2020 بسبب مخاوف أمنية.\nGameMaker (1999) أداة إنشاء ألعاب ثنائية الأبعاد للمبتدئين. يمكن وضع الكائنات والتحكم في الأحداث عبر السحب والإفلات. لاحقاً دعمت البرمجة النصية (GML)، وتتوفر حالياً خطط متعددة للاستخدام التجاري.\nالعقد الأول من القرن الحادي والعشرين: انتشار الويب والمصادر المفتوحة WordPress (2003) نظام إدارة محتوى (CMS) مفتوح المصدر باستخدام PHP و MySQL. يمكنك بناء مدونات ومواقع شركات باستخدام السمات والإضافات دون الحاجة إلى معرفة برمجية. يتم توزيعه مجاناً وهو أحد أكثر أنظمة إدارة المحتوى استخداماً في العالم.\nWix (2006) خدمة بدون كود تتيح لك بناء مواقع الويب على المتصفح. يمكنك اختيار قالب وتحريره عن طريق السحب والإفلات. بالإضافة إلى الخطة المجانية، تتيح الخطط المدفوعة استخدام نطاقات مخصصة وميزات التجارة الإلكترونية.\nOutSystems (2001) منصة كود منخفض للمؤسسات. تُستخدم بشكل متزايد من قبل الشركات الكبيرة والوكالات الحكومية لأنها تسمح بالتطوير السريع لأنظمة الأعمال. تدعم كلاً من السحابة والأنظمة المحلية.\nScratch (MIT, 2007) أداة لتعلم البرمجة طُورت للأطفال. تتيح إنشاء الألعاب والرسوم المتحركة عن طريق دمج الكتل الملونة، وتُستخدم على نطاق واسع في البيئات التعليمية. متوفرة مجاناً.\nAirtable (2013) خدمة سحابية تجمع بين جداول البيانات وقواعد البيانات. تبدو مشابهة لبرنامج Excel ولكنها تتيح العلاقات وعرض كانبان وتكامل API والمزيد. تُستخدم على نطاق واسع من قبل الأفراد والشركات.\nالعقد الثاني والثالث من القرن الحادي والعشرين: عصر السحابة والأتمتة في السنوات الأخيرة، تطورت أدوات الكود المنخفض / بدون كود القائمة على السحابة بسرعة.\nPower Platform (Microsoft) منصة متكاملة لتطوير تطبيقات الأعمال والأتمتة تتضمن \u0026ldquo;Power Apps\u0026rdquo; و \u0026ldquo;Power Automate\u0026rdquo;. تتيح بناء عمليات الأعمال للشركات بشكل مرئي عن طريق السحب والإفلات.\nSalesforce Lightning Platform منصة تطوير تطبيقات مقدمة من شركة Salesforce المتخصصة في إدارة علاقات العملاء (CRM). تتيح إنشاء تطبيقات الأعمال عبر واجهة المستخدم الرسومية والتكامل السهل مع خدمات Salesforce الأخرى.\nZapier / IFTTT أدوات أتمتة تتيح بناء تكاملات بين خدمات سحابية متعددة دون برمجة. على سبيل المثال، يمكن بسهولة تحقيق سير عمل مثل \u0026ldquo;إرسال إشعار إلى Slack عند إدخال بيانات في نماذج Google\u0026rdquo;.\nNotion (2010s) مساحة عمل متكاملة تجمع بين إدارة المستندات وإدارة المهام والويكي وغيرها. تتميز أيضاً بوظيفة قاعدة بيانات مخصصة، مما يساعد على تحسين العمليات بدون كود.\nConstruct 3 / GameSalad أدوات تتيح لك إنشاء ألعاب عن طريق السحب والإفلات. يدعم Construct 3 تقنية HTML5 ويعمل على المتصفح، وهو شائع في البيئات التعليمية ولدى المطورين المستقلين.\nمصادر المعلومات والملاحظات تعتمد هذه المقالة على المواقع الرسمية لكل منتج، ويكيبيديا، ومقالات/موثوقة (مثل Apple و Microsoft و Adobe). تشير معلومات التسعير إلى الأسعار الرسمية في ذلك الوقت أو الأحدث بقدر الإمكان (مدرجة بالدولار الأمريكي بشكل أساسي). تعتمد معظم الأدوات منذ العقد الأول من القرن الحادي والعشرين على الاشتراكات، وتختلف الأسعار حسب الخطة.\n","date":"2025-04-26T16:46:11+09:00","image":"http://kenji.blog/p/%E3%83%AD%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8A%E3%82%88%E3%81%B3%E3%83%8E%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%AD%B4%E5%8F%B2/img_hu615c889fe1afb242f7436bdb2a6d534f_388471_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D8%A7%D9%84%D9%83%D9%88%D8%AF-%D8%A7%D9%84%D9%85%D9%86%D8%AE%D9%81%D8%B6-%D9%88%D8%A8%D8%AF%D9%88%D9%86-%D9%83%D9%88%D8%AF/","title":"تاريخ عدم وجود كود في البيئات المحلية"},{"content":"ما هو FizzBuzz في النهاية؟ مرحباً!\nاليوم أود أن أكتب عن \u0026ldquo;FizzBuzz\u0026rdquo;.\nسواء كنت شخصاً يقول \u0026ldquo;آه، أعرف ذلك!\u0026quot;، أو شخصاً يقول \u0026ldquo;سمعت عنه نوعاً ما، لكنني لا أفهمه حقاً\u0026rdquo;، يرجى البقاء معي لبعض الوقت. يمكنك قراءته في بضع دقائق، وربما تجعلك تفكر \u0026ldquo;أفهم ذلك الآن\u0026rdquo;.\nهل صحيح أنك \u0026ldquo;لست مبرمجاً إذا لم تستطع كتابة FizzBuzz\u0026rdquo;؟ بشكل تقريبي، هذا هو FizzBuzz.\n1 2 3 4 5 6 7 8 9 for i in range(1, 101): if i % 15 == 0: print(\u0026#34;FizzBuzz\u0026#34;) elif i % 3 == 0: print(\u0026#34;Fizz\u0026#34;) elif i % 5 == 0: print(\u0026#34;Buzz\u0026#34;) else: print(i) نعم، هذه هي \u0026ldquo;مشكلة FizzBuzz\u0026rdquo; الشهيرة.\nأنت تنظر إلى الأرقام من 1 إلى 100 بالترتيب،\nإذا كانت من مضاعفات العدد 3، فقم بطباعة \u0026ldquo;Fizz\u0026rdquo;، وإذا كانت من مضاعفات العدد 5، فقم بطباعة \u0026ldquo;Buzz\u0026rdquo;،\nوإذا كانت من مضاعفات كليهما، فقم بطباعة \u0026ldquo;FizzBuzz\u0026rdquo;. إنه أمر بسيط للغاية.\nومع ذلك، لسبب ما، غالباً ما يتم التعامل معها على أنها \u0026ldquo;اختبار كحد أدنى للمبرمجين\u0026rdquo;. يتم تقديمها في المقابلات، وهناك أحياناً تعليقات متعالية على وسائل التواصل الاجتماعي مثل \u0026ldquo;الأشخاص الذين لا يستطيعون حتى كتابة FizzBuzz\u0026hellip;\u0026rdquo;.\nلكن انتظر دقيقة.\nهل يمكننا حقاً القول \u0026ldquo;لا يمكنك كتابة FizzBuzz = لا يمكنك البرمجة\u0026rdquo;؟\nلا يتعلق الأمر بما إذا كان بإمكانك القيام بذلك، بل ما إذا كان لديك \u0026ldquo;الحالة\u0026rdquo; للقيام بذلك بالتأكيد، تتطلب مشكلة FizzBuzz فهماً للقواعد والتفكير المنطقي الأساسي. لذلك من المنطقي استخدامها \u0026ldquo;للتحقق من الأساسيات\u0026rdquo;.\nلكن مهلاً.\nإذا كانت البيئة مختلفة، فإن النتائج ستكون مختلفة.\nعلى سبيل المثال،\nعندما تكون متوتراً أمام محاور تقابله لأول مرة عندما يتم تسليمك فجأة سبورة بيضاء وليس لديك محرر نصوص في متناول يدك عندما لا تستطيع التذكر فجأة \u0026ldquo;مهلاً، ما هو modulo مرة أخرى؟\u0026rdquo; \u0026hellip; ألا تحدث أشياء كهذه؟ نحن بشر بعد كل شيء. أعتقد أن ذلك يحدث.\nلذا، بدلاً من \u0026ldquo;ما إذا كان بإمكانك كتابة FizzBuzz\u0026rdquo;، أعتقد أن الأهم حقاً هو \u0026ldquo;ما إذا كان يمكنك وضع نفسك في حالة يمكنك فيها كتابة FizzBuzz\u0026rdquo;.\nفخ النصيحة الشائعة \u0026ldquo;ما عليك سوى التدرب وستكون بخير\u0026rdquo; عندما يتعلق الأمر بهذا الموضوع، غالباً ما تظهر نصيحة \u0026ldquo;لذا تدرب كل يوم!\u0026rdquo;.\nبالتأكيد، من الصحيح أن التدريب المتكرر سيسمح لك بالكتابة بطلاقة، وهذا في حد ذاته أمر جيد. ومع ذلك، إذا بدأت بافتراض أنك \u0026ldquo;فاشل إذا لم تتمكن من كتابة FizzBuzz\u0026rdquo;، فقد يتحول الأمر ببساطة إلى خوف.\nبمعنى آخر، من السهل الوقوع في هيكل حيث تشعر \u0026ldquo;لقد ارتكبت خطأ = أنا لست جيداً\u0026rdquo;.\nعلى سبيل المثال، في الأيام التي تنام فيها متأخراً، ألا تميل إلى الاعتقاد \u0026ldquo;أنا كسول\u0026hellip;\u0026quot;؟ لكن قد يكون جسدك متعباً فقط بالصدفة.\nالشيء نفسه ينطبق على FizzBuzz.\nمع ذلك، FizzBuzz لا يزال سؤالاً جيداً حقاً مع ذلك، فإن FizzBuzz ليس سيئاً.\nبدلاً من ذلك، أعتقد أنه سؤال مدروس جيداً. القواعد بسيطة، ومن السهل توسيعها. على سبيل المثال، إذا قمت بتغييره على هذا النحو، فإن التفكير يتعمق أكثر.\n1 2 3 4 5 6 7 for i in range(1, 101): output = \u0026#34;\u0026#34; if i % 3 == 0: output += \u0026#34;Fizz\u0026#34; if i % 5 == 0: output += \u0026#34;Buzz\u0026#34; print(output or i) هذا مثال يوضح أنه \u0026ldquo;يمكنك كتابته بدون if-elif-else\u0026rdquo;. إنه ذكي قليلاً، أليس كذلك؟\nبعبارة أخرى، لا يقتصر دور FizzBuzz على التحقق \u0026ldquo;ما إذا كان بإمكانك القيام بذلك\u0026rdquo;، بل يمكن أن يكون أيضاً نقطة دخول لمعرفة \u0026ldquo;كيف تكتبه\u0026rdquo; و \u0026ldquo;إلى أي مدى تفهمه\u0026rdquo;.\nفي الختام أعتقد أنه لا ينبغي لنا أن نعطي أهمية مفرطة لما إذا كان بإمكان شخص ما إكمال FizzBuzz.\nحتى لو لم تتمكن من كتابته، فقد يعني ذلك ببساطة أنك \u0026ldquo;لم تكن في حالة جيدة في تلك اللحظة\u0026rdquo;، وغالباً ما يمكنك القيام بذلك إذا فكرت في الأمر بعناية لاحقاً.\nلا تتسرع، فلنأخذ الأمور ببطء.\nالكود مكتوب بواسطة بشر. لأننا بشر، ننسى الأشياء أحياناً، وأحياناً نشعر بالتوتر. أعتقد أنه يكفي أن نتقبل ذلك ونمضي قدماً شيئاً فشيئاً.\nحسناً إذن، دعونا نأخذ الأمور ببساطة ونكتب بعض الأكواد اليوم.\n","date":"2025-04-18T00:58:11+09:00","image":"http://kenji.blog/p/fizzbuzz/img_hu0b23239076c3049a7d4382dec6ccfba6_85967_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/fizzbuzz/","title":"FizzBuzz"},{"content":"برج هانوي مرحباً!\nاليوم أود التحدث عن \u0026ldquo;برج هانوي\u0026rdquo; مع تقديم مثال لبرنامج باستخدام لغة Python.\nما هو برج هانوي؟ برج هانوي هو لغز يتكون من ثلاثة أعمدة وعدة أقراص. تختلف الأقراص في الحجم، وفي البداية تكون مكدسة على عمود واحد بترتيب تنازلي للحجم من الأسفل إلى الأعلى. القواعد هي كما يلي:\nيمكن نقل قرص واحد فقط في كل مرة. لا يمكن وضع قرص كبير فوق قرص أصغر منه. يُعتبر هذا اللغز مادة ممتازة لتعلم التفكير العودي (Recursion). العودية هي طريقة لحل مشكلة عن طريق تقسيمها إلى مشاكل أصغر من نفس النوع. في برج هانوي، لتحريك n من الأقراص، نكرر عملية تحريك n-1 من الأقراص.\nدعونا نحل برج هانوي باستخدام Python فيما يلي نموذج لشفرة برمجية بلغة Python لحل لغز برج هانوي.\n1 2 3 4 5 6 7 8 9 10 def hanoi(n, source, target, auxiliary): if n == 1: print(f\u0026#34;Move disk 1 from {source} to {target}\u0026#34;) return hanoi(n - 1, source, auxiliary, target) print(f\u0026#34;Move disk {n} from {source} to {target}\u0026#34;) hanoi(n - 1, auxiliary, target, source) # مثال: تحريك 3 أقراص من A إلى C hanoi(3, \u0026#39;A\u0026#39;, \u0026#39;C\u0026#39;, \u0026#39;B\u0026#39;) في هذه الشفرة، يتم استدعاء الدالة hanoi بشكل عودي، وتُعرض خطوات تحريك الأقراص. على سبيل المثال، في حالة وجود 3 أقراص، سيتم الحصول على المخرجات التالية:\n1 2 3 4 5 6 7 Move disk 1 from A to C Move disk 2 from A to B Move disk 1 from C to B Move disk 3 from A to C Move disk 1 from B to A Move disk 2 from B to C Move disk 1 from A to C بهذه الطريقة، باستخدام النهج العودي، يمكن حل المشاكل المعقدة ببساطة.\nكم من الوقت يستغرق تحريك 64 قرصاً؟ الحد الأدنى لعدد الحركات في برج هانوي هو 2^n - 1 حركة. هذا يعني أنه لتحريك 64 قرصاً، يجب القيام بـ 2^64 - 1، أي حوالي 1.84×10^19 حركة. حتى لو كان بإمكاننا القيام بحركة واحدة كل ثانية، سيستغرق الأمر حوالي 584 مليار سنة. هذا يعادل تقريباً 42 ضعف عمر الكون (حوالي 13.7 مليار سنة).\nلذلك، مع زيادة عدد الأقراص، يزداد عدد الحركات المطلوبة بشكل أُسّي. وبالتالي، فإن تحريك 64 قرصاً فعلياً ليس أمراً واقعياً.\nخاتمة برج هانوي هو لغز ممتاز لتعلم التفكير العودي. باستخدام Python، يمكن بسهولة تنفيذ حله. ومع ذلك، يجب الحذر لأن عدد الحركات المطلوبة يزداد بشكل كبير مع زيادة عدد الأقراص.\nمن خلال فهم النهج العودي وكتابة الشفرة بنفسك، يمكنك تحسين مهاراتك في البرمجة. لا تتردد في خوض تحدي برج هانوي.\n","date":"2025-04-17T22:23:14+09:00","image":"http://kenji.blog/p/%E3%83%8F%E3%83%8E%E3%82%A4%E3%81%AE%E5%A1%94/img_hub916bf71b02b2ffc8b3c247adaa061ec_2314383_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A8%D8%B1%D8%AC-%D9%87%D8%A7%D9%86%D9%88%D9%8A/","title":"برج هانوي"},{"content":"عدد أسطر الكود المصدري مرحباً!\nاليوم أود التحدث عن موضوع مختلف قليلاً.\nالموضوع هو \u0026ldquo;كم زاد عدد أسطر الكود المصدري مقارنة بالماضي؟\u0026rdquo;\nعلى سبيل المثال، كان برنامج مكوك الفضاء يتكون من حوالي 420,000 سطر من الكود. تم تطوير هذا الكود بعملية صارمة للغاية لتلبية معايير الجودة العالية لوكالة ناسا. من ناحية أخرى، في مشاريع البرمجيات واسعة النطاق الحديثة، ليس من غير المألوف أن يتجاوز عدد أسطر الكود عشرات الملايين. على سبيل المثال، يُقال أن قاعدة كود جوجل تصل إلى حوالي 2 مليار سطر.\nبهذه الطريقة، ازداد حجم البرمجيات مع مرور الوقت.\nولكن، انتظر لحظة.\nزيادة عدد أسطر الكود ليست بالضرورة أمراً سيئاً. إضافة ميزات جديدة أو تلبية احتياجات المستخدمين يتطلب بشكل طبيعي المزيد من الكود. ومع ذلك، مع زيادة الكود، يزداد خطر وجود أخطاء برمجية (bugs). في الواقع، أظهرت إحدى الدراسات أنه عندما يتجاوز مشروع مفتوح المصدر مليون سطر، فإن معدل حدوث الأخطاء يميل إلى الارتفاع.\nومع ذلك، لا تقوم جميع المشاريع بزيادة الكود بنفس الطريقة.\nعلى سبيل المثال، كان نواة لينكس حوالي 200,000 سطر في الإصدار 1.0 عام 1994، لكنه زاد إلى حوالي 20 مليون سطر في الإصدار 4.2 عام 2015. هذه الزيادة هي استجابة لتطور الأجهزة وإضافة ميزات جديدة.\nلذلك، يختلف عدد أسطر الكود المصدري اختلافاً كبيراً اعتماداً على حجم المشروع، أهدافه، والسياق التاريخي.\nزيادة عدد أسطر الكود في حد ذاتها ليست مشكلة، ولكن الإدارة السليمة ضرورية للحفاظ على الجودة وقابلية الصيانة. من المهم فهم المخاطر المرتبطة بزيادة الكود واتخاذ التدابير المناسبة.\nأخيراً، أعتقد أنه من المهم التركيز على الغرض من المشروع وجودته، بدلاً من التركيز المفرط على عدد أسطر الكود.\nإذاً، أراكم في المرة القادمة!\n","date":"2025-04-17T10:33:02+09:00","image":"http://kenji.blog/p/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%A1%8C%E6%95%B0/img_1_hu5eec8f3e01b611d6fcced12ecef63fb0_956545_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E8%A1%8C%E6%95%B0/","title":"عدد أسطر الكود المصدري"},{"content":"مبدأ كيركهوفس مرحباً!\nاليوم أود أن أتحدث عن شيء مثير للاهتمام وفي الواقع مهم جداً، وهو \u0026ldquo;مبدأ كيركهوفس\u0026rdquo;.\nأوه، انتظر لحظة.\nقد يفكر البعض منكم: \u0026ldquo;لم أسمع أبداً عن \u0026lsquo;مبدأ كيركهوفس\u0026rsquo; ويبدو معقداً جداً\u0026hellip;\u0026rdquo; لا تقلق. هذا المقال مخصص بالضبط للأشخاص الذين يشعرون بذلك.\nماذا تعني \u0026ldquo;التعمية الآمنة\u0026rdquo;؟ على سبيل المثال، يأتي إليك شخص ويقول: \u0026ldquo;لا يمكن فتح هذه الخزنة إلا من قبل شخص يعرف سرها.\u0026rdquo;\nللوهلة الأولى، يبدو هذا آمناً للغاية، أليس كذلك؟\nلكن إذا فكرت في الأمر مرة أخرى، أليس هذا مقلقاً بعض الشيء؟\nمثل، \u0026ldquo;إذا تم الكشف عن هذا السر، فقد انتهى كل شيء، صحيح؟\u0026rdquo;\nفي الواقع، هذا هو سبب تقديم مبدأ كيركهوفس.\nما هو \u0026ldquo;مبدأ كيركهوفس\u0026rdquo; بالضبط؟ باختصار شديد، إنه:\nفكرة أن \u0026ldquo;التشفير يجب أن يبقى آمناً حتى لو تم الكشف عن آليته\u0026rdquo; .\nوبشكل أدق، \u0026ldquo;يجب أن يعتمد الأمان فقط على \u0026lsquo;المفتاح السري\u0026rsquo;، ولا بأس إذا تم نشر طريقة التشفير نفسها!\u0026rdquo;\nعلى العكس من ذلك، \u0026ldquo;النظام الذي يعتمد فقط على سرية خوارزمية (آلية) التشفير الخاصة به يعتبر ضعيف الموثوقية.\u0026rdquo;\n\u0026ldquo;آمن طالما أن الآلية سرية\u0026rdquo; قد يكون أمراً خطيراً بعض الشيء طريقة التفكير هذه شائعة جداً:\n\u0026ldquo;لم أري محتويات هذا التطبيق لأي شخص، لذلك فالأمان مضمون.\u0026rdquo;\nأنا أفهم هذا الشعور.\nلكن هذا يوازي قول: \u0026ldquo;بما أن أحداً لم يره، فلن يتم العثور على أي ثغرات، لذا فكل شيء على ما يرام، أليس كذلك؟\u0026rdquo;\nفي الواقع، حقيقة أن \u0026ldquo;لا أحد قد رآه\u0026rdquo; بحد ذاتها يمكن أن تكون خطراً.\nلكن لماذا يعد مثل هذا المبدأ مهماً؟ السبب هو أنه إذا حصل شخص ما على الآلية وتمكن من كسرها بسهولة، فإن هذا التشفير قد فشل.\nكقياس، تخيل قفل باب بآلية معقدة جداً، ولكن يمكن فتحه فعلياً بمفتاح منسوخ مصنوع في متجر رخيص.\nليس المهم هو \u0026ldquo;إنه آمن لأن المفتاح سري\u0026rdquo;، بل المهم هو \u0026ldquo;حتى لو تم عرض الآلية بالكامل، لا يمكن فتحه بدون المفتاح الصحيح.\u0026rdquo;\nشعور \u0026ldquo;لكن، أليس هذا مخيفاً؟\u0026rdquo; الشيء الذي يشعر به الكثير من الناس هنا هو،\n\u0026ldquo;كشف الآلية بأكملها، أليس هذا مخيفاً بعض الشيء؟\u0026rdquo;\nأنا أتفهم هذا القلق.\nلأنك بالتأكيد ستفكر: \u0026ldquo;إذا أظهرت كل شيء، ألن يتم تقليده أو إساءة استخدامه؟\u0026rdquo;\nومع ذلك، هذا هو بالضبط جوهر مبدأ كيركهوفس.\n\u0026ldquo;القوة التي لا تنهار حتى لو تم عرض المحتويات\u0026rdquo; هو ما يمثل الأمان الحقيقي.\nومع ذلك، يتطلب الأمر القليل من الشجاعة في البداية إذا حاولت وضع نفسك مكان مطور، فإن \u0026ldquo;نشر الآلية = كشف نقاط الضعف أيضاً\u0026rdquo; هو بالتأكيد أمر مثير للتوتر.\nلكن فكر في الأمر.\nالشيء الذي يظهر آليته بصراحة ويقول: \u0026ldquo;يمكن لأي شخص التحقق من ذلك\u0026rdquo;، سيحظى بمزيد من الثقة في النهاية.\nأليس هذا مشابهاً للعلاقات الإنسانية؟\n\u0026ldquo;الشخص الذي يظهر طبيعته الحقيقية ويبقى من السهل التعامل معه\u0026rdquo;، هو بالتأكيد من يجعلك تشعر بأكبر قدر من الطمأنينة.\nوهكذا قد يبدو مبدأ كيركهوفس نظرياً بعض الشيء، لكن جوهره بسيط للغاية.\nالأمر كله يتعلق بـ \u0026ldquo;دعونا نصنع آلية لن تنكسر بغض النظر عمن ينظر إليها\u0026rdquo; .\nالتصميم المناسب أهم من الأسرار السطحية.\nالتعليمات البرمجية التي لا تخجل من إظهارها أفضل من التعليمات البرمجية التي لا تريد أن تريها لأي شخص.\nمثل هذه \u0026ldquo;القوة\u0026rdquo; ربما تكون مطلوبة أكثر فأكثر في المستقبل.\nشكراً على القراءة!\nموضوع الأمان قد يكون صعباً بعض الشيء، لكن هناك أجزاء ترتبط بـ \u0026ldquo;العلاقات الإنسانية\u0026rdquo; و \u0026ldquo;الشعور اليومي بالأمان\u0026rdquo;.\nأنا متأكد من أنك إذا درسته شيئاً فشيئاً دون أن تشعر بالإرهاق، فستحدث أشياء جيدة.\n","date":"2025-04-16T23:53:08+09:00","image":"http://kenji.blog/p/%E3%82%B1%E3%83%AB%E3%82%AF%E3%83%9B%E3%83%95%E3%82%B9%E3%81%AE%E5%8E%9F%E7%90%86/img_2_hu71b6c82ab9eb0ac0abd797e00918df90_2573611_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/kerckhoffs-principle/","title":"مبدأ كيركهوفس"},{"content":"🎯 خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL (Visual Studio 2022 / C++) ✅ الهيكل العام 🔹 ① غلاف CLI DLL (C++/CLI) يوفر وظيفة لتشغيل نصوص PowerShell.\n🔹 ② الجانب المتصل بـ Native C++ يستدعي CLI DLL لتشغيل نصوص PowerShell.\n🔧 الخطوة 1: إنشاء مشروع غلاف CLI DLL 1. إنشاء المشروع [إنشاء جديد] → [C++] → CLR Class Library (.NET Framework) الاسم: PowerShellWrapper 💡 إذا لم يظهر هذا القالب، قم بتثبيت بيئة عمل \u0026ldquo;.NET desktop development\u0026rdquo;.\n2. إضافة حزمة NuGet انقر بزر الماوس الأيمن على المشروع → [إدارة حزم NuGet] ابحث عن System.Management.Automation وقم بتثبيته (الإصدار 5.x أو 7.x) 3. تنفيذ الكود من جانب CLI PowerShellWrapper.h 1 2 3 4 5 6 7 8 9 10 #pragma once using namespace System; namespace PowerShellWrapper { public ref class PowerShellExecutor { public: String^ Execute(String^ script); }; } PowerShellWrapper.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include \u0026#34;PowerShellWrapper.h\u0026#34; using namespace System; using namespace System::Management::Automation; using namespace System::Collections::ObjectModel; String^ PowerShellWrapper::PowerShellExecutor::Execute(String^ script) { PowerShell^ ps = PowerShell::Create(); ps-\u0026gt;AddScript(script); Collection\u0026lt;PSObject^\u0026gt;^ results = ps-\u0026gt;Invoke(); System::Text::StringBuilder^ sb = gcnew System::Text::StringBuilder(); for each (PSObject^ result in results) { sb-\u0026gt;AppendLine(result-\u0026gt;ToString()); } return sb-\u0026gt;ToString(); } 🔧 الخطوة 2: الاستدعاء من جانب Native C++ 1. إنشاء مشروع تطبيق وحدة تحكم C++ الاسم: NativeApp 2. إعدادات المرجع انقر بزر الماوس الأيمن على المشروع → [إضافة مرجع] → [مشاريع] → أضف PowerShellWrapper [خصائص التكوين] → [C/C++] → [دعم وقت تشغيل اللغة المشتركة] → التغيير إلى /clr 3. كود التنفيذ (main.cpp) 1 2 3 4 5 6 7 8 9 10 11 12 13 #using \u0026lt;System.dll\u0026gt; #using \u0026#34;..\\\\PowerShellWrapper\\\\Debug\\\\PowerShellWrapper.dll\u0026#34; using namespace System; using namespace PowerShellWrapper; int main() { PowerShellExecutor^ executor = gcnew PowerShellExecutor(); String^ result = executor-\u0026gt;Execute(\u0026#34;Get-Process | Select-Object -First 1\u0026#34;); Console::WriteLine(result); return 0; } 💡 ملاحظات إضافية (IDL / TLB / تسجيل COM) نظراً لأن هذا التكوين يشير مباشرة إلى .NET DLL بدلاً من COM، فإنه لا حاجة إلى IDL أو TLB أو تسجيل COM . ✅ التكوين النهائي 1 2 3 4 5 Solution ├── PowerShellWrapper (C++/CLI DLL) │ └── PowerShellExecutor ├── NativeApp (C++ EXE) └── main.cpp → استدعاء DLL ","date":"2025-04-16T01:58:03+09:00","image":"http://kenji.blog/p/c-%E3%81%8B%E3%82%89-powershell-%E3%82%92-c-cli-dll-%E7%B5%8C%E7%94%B1%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/img_hu7575b218a6ea53bc902a4f89abde2058_17844_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AE%D8%B7%D9%88%D8%A7%D8%AA-%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-powershell-%D9%85%D9%86-c-%D8%B9%D8%A8%D8%B1-c-cli-dll/","title":"خطوات تشغيل PowerShell من C++ عبر C++/CLI DLL"},{"content":"【Windows】كيفية التحقق من حالة الترخيص (بأمر واحد فقط) هل تساءلت يوماً عما إذا كان ترخيص Windows الخاص بك قد تم تنشيطه بشكل صحيح؟\nعندما يحدث ذلك، هناك طريقة ملائمة للتحقق من معلومات الترخيص الخاصة بك باستخدام أمر واحد. ما عليك سوى اتباع الخطوات أدناه للتحقق بسهولة من حالة الترخيص الحالية.\nأمر للتحقق من حالة الترخيص يمكنك استخدام أداة البرنامج النصي المضمنة في Windows لعرض معلومات الترخيص. الأمر الذي يجب استخدامه هو هذا:\n1 slmgr /dli عند تشغيل هذا الأمر، سيتم عرض بعض معلومات الترخيص في نافذة.\nكيفية التنفيذ اكتب \u0026ldquo;cmd\u0026rdquo; من \u0026ldquo;قائمة ابدأ\u0026rdquo;، وانقر بزر الماوس الأيمن على موجه الأوامر → \u0026ldquo;تشغيل كمسؤول\u0026rdquo;.\nأدخل ما يلي في موجه الأوامر واضغط على Enter:\n1 slmgr /dli بعد الانتظار لبضع ثوانٍ، سيتم عرض معلومات الترخيص التالية.\nالمعلومات الرئيسية المعروضة جزء من مفتاح المنتج نوع الترخيص (البيع بالتجزئة، OEM، إلخ) حالة الترخيص (صالح، منتهي الصلاحية، غير مصدق عليه، إلخ) ماذا لو أردت معرفة المزيد من المعلومات التفصيلية؟ هناك أيضًا أوامر مثل ما يلي:\nslmgr /dlv: يعرض معلومات ترخيص أكثر تفصيلاً slmgr /xpr: يعرض تاريخ انتهاء صلاحية الترخيص (ما إذا كان دائمًا أم لا) ملخص يمكنك بسهولة التحقق من حالة ترخيص Windows بأمر واحد.\nتحقق بسيط: slmgr /dli تأكيد مفصل: slmgr /dlv تأكيد تاريخ انتهاء الصلاحية: slmgr /xpr إذا كانت هناك مشكلة في الترخيص، فقد تكون هناك قيود على التحديثات وبعض الوظائف، لذلك من الآمن التحقق بانتظام.\n","date":"2025-04-14T00:41:45+09:00","image":"http://kenji.blog/p/windows-%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_1_hudcf97514836ad006a409bb9b34fbe340_111425_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/windows-%E3%81%AE%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/","title":"أمر التحقق من حالة ترخيص Windows"},{"content":"معلمات تحويل ffmpeg المحسنة لنظام iOS نقدم لكم أمر ffmpeg لتحويل مقاطع الفيديو بحيث يمكن تشغيلها بسلاسة على أجهزة iOS (مثل iPhone و iPad).\n1 2 3 4 5 6 ffmpeg -i input.mp4 \\ -c:v libx264 -profile:v high -level 4.1 \\ -vf \u0026#34;scale=1920:-2\u0026#34; -r 30 \\ -crf 20 -preset slow \\ -c:a aac -b:a 128k -ar 48000 \\ -movflags +faststart output.mp4 معنى كل خيار (شرح بسيط) الخيار الوصف -i input.mp4 ملف الإدخال (الفيديو الأصلي) -c:v libx264 ترميز الفيديو بصيغة H.264 (متوافق مع iOS) -profile:v high -level 4.1 ملف تعريف ومستوى متوافقان على نطاق واسع في iOS -vf \u0026quot;scale=1920:-2\u0026quot; تغيير الحجم إلى عرض 1920 بكسل، ويتم ضبط الارتفاع تلقائيًا مع الحفاظ على نسبة العرض إلى الارتفاع -r 30 تحويل معدل الإطارات إلى 30 إطارًا في الثانية -crf 20 جودة الفيديو (كلما انخفض الرقم، زادت الجودة، موصى به 18-23) -preset slow التوازن بين سرعة الترميز ومعدل الضغط (slow يعني ضغط عالي وجودة عالية) -c:a aac ترميز الصوت بصيغة AAC -b:a 128k تعيين معدل البت الصوتي إلى 128 كيلوبت في الثانية -ar 48000 تعيين معدل أخذ العينات الصوتية إلى 48 كيلو هرتز (موصى به في iOS) -movflags +faststart وضع الفهرس في بداية الفيديو لتسريع ** تشغيل البث على الويب و iOS ** من المتوقع أن تتمتع مقاطع الفيديو المحولة بهذه الإعدادات بتوافق عالٍ وتشغيل سلس على أجهزة Apple مثل iPhone و iPad.\nإذا لزم الأمر، يمكنك ضبط حجم الملف وجودة الصورة عن طريق تغيير الدقة أو معدل البت. إذا كنت بحاجة إلى جودة عالية، فحاول تعيين -crf إلى حوالي 18، وإذا كنت تريد تقليل حجم الملف، فقم بتعيينه إلى 22-25.\n","date":"2025-03-02T04:16:07+09:00","image":"http://kenji.blog/p/ios-%E5%90%91%E3%81%91%E3%81%AE-ffmpeg-%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF/img_hu6ca6c354dba8425c4a9e54b9842ad89b_30790_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%B9%D9%84%D9%85%D8%A7%D8%AA-ffmpeg-%D9%84%D9%86%D8%B8%D8%A7%D9%85-ios/","title":"معلمات ffmpeg لنظام iOS"},{"content":"خطوات استعادة أجهزة Android (Google Pixel) إذا واجه جهاز Google Pixel مشكلات خطيرة في النظام مثل \u0026ldquo;إعادة التشغيل المتكرر (bootloop)\u0026rdquo; أو \u0026ldquo;التوقف عند شاشة الشعار\u0026rdquo; أو \u0026ldquo;أصبح الأداء غير مستقر للغاية\u0026rdquo;، فيمكنك استخدام الأداة الرسمية من Google \u0026ldquo;Pixel Update and Software Repair\u0026rdquo; لاستعادة (إصلاح) برنامج الجهاز بأمان عبر المتصفح.\nتشرح هذه المقالة الخطوات المحددة والنقاط التي يجب الانتباه إليها بالتفصيل.\n1. الوصول إلى أداة الاستعادة أولاً، قم بالوصول إلى صفحة أداة الإصلاح الرسمية التالية من متصفح (يُوصى باستخدام Google Chrome أو Microsoft Edge) على جهاز الكمبيوتر الخاص بك (Windows أو Mac).\n🔗 الموقع الرسمي لأداة Pixel Update and Software Repair\n※ملاحظة※ عند تنفيذ عملية الاستعادة، قد يتم مسح جميع البيانات (التهيئة) الموجودة على الجهاز (الصور، التطبيقات، جهات الاتصال، وما إلى ذلك). إذا كان الجهاز لا يزال قابلاً للتشغيل، فتأكد من إجراء نسخ احتياطي إلى Google Drive أو ما شابه ذلك مسبقًا.\n2. التحضير قبل الاستعادة لضمان سير العملية بسلاسة، قم بإعداد ما يلي.\nشحن البطارية إذا انقطع التيار الكهربائي في منتصف العملية، فقد يصبح الجهاز \u0026ldquo;معطلاً تمامًا\u0026rdquo;. تأكد من شحن البطارية بنسبة 50% على الأقل، ومن الأفضل أن تكون مشحونة بالكامل. استخدام كابل USB أصلي يُوصى بشدة باستخدام كابل USB-C الأصلي المرفق مع الجهاز لضمان نقل البيانات بشكل مستقر. (إذا لزم الأمر) تثبيت برامج التشغيل إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows، فقد لا يتم التعرف على الجهاز بشكل صحيح. في هذه الحالة، يرجى تثبيت Google USB Driver . 3. خطوات الاستعادة المحددة بمجرد الانتهاء من التحضيرات، اتبع التعليمات التي تظهر على الشاشة لمتابعة الاستعادة.\nStep 1: اختيار شركة الاتصالات وتوصيل الجهاز عند فتح الموقع، ستظهر أولاً شاشة لاختيار شركة الاتصالات. إذا كان جهازك خاليًا من قيود SIM أو غير مرتبط بشركة اتصالات، فاختر \u0026ldquo;أخرى (Other)\u0026rdquo; أو ما شابه ذلك. بعد ذلك، قم بتوصيل جهاز الكمبيوتر وجهاز Pixel باستخدام كابل USB.\nStep 2: الدخول في وضع Rescue Mode (Fastboot Mode) باتباع التعليمات التي تظهر على الشاشة، بدءًا من إيقاف تشغيل الجهاز، اضغط مع الاستمرار على زر الطاقة وزر خفض الصوت في نفس الوقت لبدء وضع Fastboot (شاشة بخلفية سوداء يظهر عليها رمز Android مستلقيًا).\nStep 3: التعرف على الجهاز في جهاز الكمبيوتر عند النقر فوق الزر \u0026ldquo;توصيل الجهاز\u0026rdquo; في المتصفح، سيتم فتح نافذة منبثقة للمتصفح وسيتم عرض جهاز Pixel المتصل في القائمة. حدد الجهاز المستهدف واسمح بالاتصال.\nStep 4: تنزيل البرنامج وتثبيته بمجرد التعرف على الجهاز، سيتم تحديد الإصدار الأمثل من نظام التشغيل Android (البرنامج الثابت) تلقائيًا. عند النقر فوق \u0026ldquo;تثبيت\u0026rdquo;، سيتم تنزيل البرنامج على جهاز الكمبيوتر وستبدأ عملية الكتابة (التفليش) على الجهاز.\n⚠️ تحذير: أثناء هذه العملية، لا تقم أبدًا بفصل كابل USB أو إيقاف تشغيل جهاز الكمبيوتر.\nStep 5: الانتهاء والإعداد الأولي إذا وصل شريط التقدم إلى 100% وظهرت رسالة \u0026ldquo;اكتمل\u0026rdquo;، فقد تمت الاستعادة بنجاح. سيتم إعادة تشغيل الجهاز تلقائيًا وعرض شاشة الإعداد الأولي (شاشة \u0026ldquo;مرحبًا\u0026rdquo;) تمامًا كما كان عند الشراء.\nالخاتمة أداة الإصلاح الرسمية من Google Pixel هي أداة ممتازة تتيح لك إعادة تفليش البرنامج الثابت بأمان بنقرات قليلة فقط في المتصفح، دون الحاجة إلى تشغيل أوامر خاصة (adb أو fastboot) مباشرة.\nقبل أخذ الجهاز المعطل إلى المتجر، جرب هذه الخطوات، فقد تحل المشكلة بسهولة. نأمل أن يكون هذا مفيدًا لك.\n","date":"2025-02-28T01:20:41+09:00","image":"http://kenji.blog/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/pixel_restore_eyecatch_1788588727945_hu9d405d830ed3e56e9e703ab601cf6c0a_776052_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/androidgoogle-pixel%E7%AB%AF%E6%9C%AB%E3%81%AE%E5%BE%A9%E5%85%83%E6%89%8B%E9%A0%86/","title":"خطوات استعادة (تهيئة وإصلاح) نظام التشغيل لأجهزة Android (Google Pixel)"},{"content":"إرسال بريد Gmail باستخدام curl 1. الحصول على كلمة مرور التطبيق https://myaccount.google.com/apppasswords انقر على الرابط أعلاه وأدخل اسم التطبيق. احفظ كلمة المرور التي تم إنشاؤها.\n2. إرسال بريد إلكتروني باستخدام أمر curl قم بتنفيذ الأمر التالي.\nفي المثال أدناه، تم كتابة محتوى البريد الإلكتروني في mail.txt.\n1 2 3 4 5 6 From: from@gmail.com To: to@gmail.com Subject: رسالة اختبار Content-Type: text/plain; charset=\u0026#34;UTF-8\u0026#34; هذه رسالة اختبار. قم بإنشاء الملف أعلاه، وقم بتنفيذ الأمر التالي.\n1 curl --url \u0026#34;smtps://smtp.gmail.com:465\u0026#34; --ssl-reqd --mail-from \u0026#34;from@gmail.com\u0026#34; --mail-rcpt \u0026#34;to@gmail.com\u0026#34; --user \u0026#34;from@gmail.com:xxxxxxxxxxxxxxxx\u0026#34; --upload-file mail.txt ※ يرجى استبدال xxxxxxxxxxxxxxxx بكلمة مرور التطبيق.\n","date":"2025-02-27T02:13:31+09:00","image":"http://kenji.blog/p/gmail%E3%82%92curl%E3%81%8B%E3%82%89%E9%80%81%E3%82%8B/img_hua1028a8ea194106f3853f4bdf4e1e991_75790_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D8%B1%D8%B3%D8%A7%D9%84-%D8%A8%D8%B1%D9%8A%D8%AF-gmail-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-curl/","title":"إرسال بريد Gmail باستخدام curl"},{"content":"مقدمة لنموذج كود باستخدام المكتبة القياسية.\nتنزيل وعرض صورة 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import urllib.request import tempfile import os import webbrowser import time url = \u0026#34;https://www.aomori-ringo.or.jp/kids/wp-content/uploads/2021/11/apple.png\u0026#34; try: with urllib.request.urlopen(url) as response: img_data = response.read() # حفظ في ملف مؤقت وعرضه with tempfile.NamedTemporaryFile(delete=False, suffix=\u0026#34;.png\u0026#34;) as tmp: tmp.write(img_data) print(f\u0026#34;file://{tmp.name}\u0026#34;) webbrowser.open(f\u0026#34;file://{tmp.name}\u0026#34;) time.sleep(3) except Exception as e: print(f\u0026#34;حدث خطأ: {e}\u0026#34;) finally: if \u0026#39;tmp\u0026#39; in locals(): os.unlink(tmp.name) # حذف الملف المؤقت ","date":"2025-02-24T18:21:14+09:00","image":"http://kenji.blog/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/img_hu6807d8c9816a78d77990562cff91e319_70806_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/python%E3%82%B3%E3%83%BC%E3%83%89%E7%89%87/","title":"مقتطفات كود بايثون"},{"content":"استدعاء واجهة برمجة تطبيقات ChatGPT من curl يفترض هذا استدعاءه من موجه أوامر Windows.\n1 2 curl https://api.openai.com/v1/chat/completions -H \u0026#34;Content-Type: application/json\u0026#34; -H \u0026#34;Authorization: Bearer sk-proj-XXXXXXXXXXXXXXXXXXXX\u0026#34; -d \u0026#34;{\u0026#34;\u0026#34;model\u0026#34;\u0026#34;: \u0026#34;\u0026#34;gpt-3.5-turbo\u0026#34;\u0026#34;,\u0026#34;\u0026#34;messages\u0026#34;\u0026#34;: [{\u0026#34;\u0026#34;role\u0026#34;\u0026#34;: \u0026#34;\u0026#34;system\u0026#34;\u0026#34;, \u0026#34;\u0026#34;content\u0026#34;\u0026#34;: \u0026#34;\u0026#34;يرجى الإجابة بلهجة كانساي.\u0026#34;\u0026#34;}, {\u0026#34;\u0026#34;role\u0026#34;\u0026#34;: \u0026#34;\u0026#34;user\u0026#34;\u0026#34;, \u0026#34;\u0026#34;content\u0026#34;\u0026#34;: \u0026#34;\u0026#34;أدخل الرسالة التي تريد إرسالها هنا\u0026#34;\u0026#34;}]}\u0026#34; ","date":"2025-02-01T17:15:34+09:00","image":"http://kenji.blog/p/chatgpt-api%E3%82%92curl%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99/img_huc9cfad0a382aa812189dd7635d7709f2_1078030_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D8%B3%D8%AA%D8%AF%D8%B9%D8%A7%D8%A1-%D9%88%D8%A7%D8%AC%D9%87%D8%A9-%D8%A8%D8%B1%D9%85%D8%AC%D8%A9-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-chatgpt-%D9%85%D9%86-curl/","title":"استدعاء واجهة برمجة تطبيقات ChatGPT من curl"},{"content":"ملخص أسهم الأرباح العالية مجموعة ميتسوبيشي يو إف جي المالية (8306) مجموعة سوميتومو ميتسوي المالية (8316) شركة ميتسوبيشي (8058) شركة إيتوتشو (8001) إن تي تي (9432) كي دي دي آي (9433) أوكيناوا سيلولار تيليفون (9436) طوكيو مارين القابضة (8766) تويوتا موتور (7203) ياماها موتور (7272) أساهي جروب هولدينجز (2502) كيرين القابضة (2503) جيه تي (2914) بريدجستون (5108) دايوا هاوس إندستري (1925) سيكيسوي هاوس (1928) كيوسيرا (6971) شين إتسو كيميكال (4063) نيتو دينكو (6988) أوريكس (8591) ميتسوبيشي إتش سي كابيتال (8593) هيوليك (3003) ","date":"2024-12-22T00:56:14+09:00","image":"http://kenji.blog/p/%E9%AB%98%E9%85%8D%E5%BD%93%E6%A0%AA%E3%81%BE%E3%81%A8%E3%82%81/img_huf2943e4fc5463d0d6e36ddd1be1ac839_1663544_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D9%84%D8%AE%D8%B5-%D8%A3%D8%B3%D9%87%D9%85-%D8%A7%D9%84%D8%A3%D8%B1%D8%A8%D8%A7%D8%AD-%D8%A7%D9%84%D8%B9%D8%A7%D9%84%D9%8A%D8%A9/","title":"ملخص أسهم الأرباح العالية"},{"content":"الأهداف طويلة المدى بعد سنة واحدة بدء عمل تجاري إنشاء موقع إلكتروني وإصدار برنامج (مجانًا) بعد سنتين إيرادات سنوية تبلغ 10 مليون ين نشر كتاب إصدار برنامج (مدفوع) بعد 3 سنوات إيرادات سنوية تبلغ 100 مليون ين بعد 5 سنوات إيرادات سنوية تبلغ مليار ين بعد 10 سنوات إيرادات سنوية تبلغ 10 مليار ين الأهداف قصيرة المدى بعد شهر واحد إنشاء خطة عمل بعد 3 أشهر جمع تمويل بحوالي 5 مليون ين لبدء العمل التجاري بعد 6 أشهر بدء العمل التجاري بعد سنة واحدة وضع العمل التجاري على المسار الصحيح المهام القادمة توضيح الأهداف والرؤية\nالهدف: لماذا نقوم بإنشاء البرنامج؟ مثال: حل المشكلات، تقديم قيمة جديدة، استهداف سوق متخصصة معينة، إلخ. الرؤية: ما هو المستقبل الذي ترغب في تحقيقه من خلال البرنامج؟ مثال: تحسين كفاءة العمل، جعل الحياة اليومية أكثر راحة، تحسين جودة التعليم، إلخ. أبحاث السوق وتحليل الاحتياجات\nالمستخدمون المستهدفون: من سيستخدم البرنامج؟ حدد الفئة العمرية، المهنة، الاهتمامات، إلخ، بشكل دقيق. تحليل المنافسين: هل هناك منافسون في نفس المجال؟ قم بتحليل نقاط القوة والضعف لديهم. تحديد الاحتياجات: فهم المشكلات والرغبات غير المحلولة للمستخدمين المستهدفين. تصميم البرنامج وميزاته\nالميزات الأساسية: قم بإدراج الميزات الضرورية. مثال: مصادقة المستخدم، تخزين البيانات، ميزات التحليل، إلخ. نقاط التميز: وضح ما يجعله فريدًا مقارنة بمنتجات المنافسين. مثال: واجهة مستخدم بسيطة، استخدام الذكاء الاصطناعي، قابلية تخصيص عالية. المواصفات الفنية: لغات البرمجة المستخدمة، أطر العمل، قواعد البيانات، إلخ. خطة التطوير وتخصيص الموارد\nالجدول الزمني للتطوير: حدد إطارًا زمنيًا لكل مرحلة من مراحل المشروع. مثال: تطوير نموذج أولي، اختبار، إصدار رسمي. تشكيل الفريق: الأفراد والمهارات المطلوبة (مبرمجون، مصممون، موظفو تسويق، إلخ). الميزانية: تقدير تكاليف التطوير، تكاليف التسويق، وتكاليف التشغيل. التسويق ونموذج الإيرادات\nطرق الترويج: استخدم وسائل التواصل الاجتماعي، المواقع الإلكترونية، الإعلانات، إلخ لزيادة الوعي. استراتيجية تحقيق الدخل: فكر في خيارات مثل الإصدار المجاني + الإصدار المدفوع، الاشتراك الشهري، إيرادات الإعلانات، إلخ. استراتيجية اكتساب المستخدمين: تقديم نسخة تجريبية مجانية، تشجيع التوصيات، تكوين مجتمع للمستخدمين، إلخ. التشغيل والتوسع\nالتشغيل بعد الإصدار: جمع ملاحظات المستخدمين، إصلاح الأخطاء، إضافة ميزات. استراتيجية النمو: التخطيط لكيفية زيادة عدد المستخدمين، التوسع إلى دول أخرى، وتطوير ميزات جديدة. إدارة المخاطر: إعداد تدابير للتعامل مع المشكلات القانونية أو التقنية. ","date":"2024-12-08T03:32:34+09:00","image":"http://kenji.blog/p/%E7%9B%AE%E6%A8%99/img_huc6a3627da74a1082cbdd433fea41830c_4007614_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/goals/","title":"الأهداف"},{"content":"مؤخراً، أصبحت مهتماً بالمنتجات الجلدية واشتريت العديد من العناصر. خلال ذلك، تطور اهتمامي أيضاً بصيانة المنتجات الجلدية، وقد جمعت بعض العناصر المتعلقة بذلك وأود مشاركتها معكم.\nمنتجات صيانة الجلود التي اشتريتها مؤخراً M.MOWBRAY DELICATE CREAM السعر: حوالي 1,320 ين\nهذا الكريم يوفر التغذية، والترطيب، وتأثيراً مرناً. لا يعطي لمعاناً، لكنه مناسب للجلود التي تحتاج إلى الكثير من الرطوبة. رائحته ليست سيئة، لكن له رائحة خفيفة. أعتقد أنه متعدد الاستخدامات لأنه عديم اللون. ونظراً لأنه كريم خفيف، قد يكون من الأفضل استخدام كمية أكبر قليلاً مقارنة بالكريمات الأخرى.\nCollonil 1909 Supreme Creme de Luxe السعر: حوالي 1,777 ين\nكريم مشهور وقياسي ومتعدد الاستخدامات، ولا يترك بقعاً بسهولة. إنه كريم يصلح لون الجلد ويجعله رطباً. يعطي لمعاناً خفيفاً. وهو أبيض اللون ويبدو أنه يوفر تأثيراً طارداً للماء أيضاً.\nM.MOWBRAY SHOE CREAM (أسود) السعر: حوالي 1,000 ين\nكريم للأحذية. يحتوي على الشمع، والزيوت، والمذيبات العضوية. يصلح لون الجلد ويعطي لمعاناً. نظراً لأنه أسود، فهو مناسب للجلود السوداء. أنا أستخدمه لأحذية البدلة الخاصة بي.\nM.MOWBRAY STAIN REMOVER السعر: حوالي 700 ين\nهذا ما جاء مع الفرشاة عندما اشتريتها. منظف مائي للأحذية. يزيل الأوساخ من الجلد. إذا بللت قطعة قماش بكمية وفيرة وفركت الجلد بلطف، ستزول الأوساخ.\n","date":"2024-10-30T00:31:46+09:00","image":"http://kenji.blog/p/%E9%9D%A9%E8%A3%BD%E5%93%81%E3%81%AE%E3%83%A1%E3%83%B3%E3%83%86%E3%83%8A%E3%83%B3%E3%82%B9/img_hu3ddba03af9cef883a82321d0a762e708_211817_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B5%D9%8A%D8%A7%D9%86%D8%A9-%D8%A7%D9%84%D9%85%D9%86%D8%AA%D8%AC%D8%A7%D8%AA-%D8%A7%D9%84%D8%AC%D9%84%D8%AF%D9%8A%D8%A9/","title":"صيانة المنتجات الجلدية"},{"content":"مرحبًا! نتحدث اليوم عن \u0026ldquo;نصل هانلون\u0026rdquo; اليوم أريد أن أكتب عن فكرة ذات اسم غريب بعض الشيء تسمى \u0026ldquo;نصل هانلون\u0026rdquo;. مجرد سماع الاسم قد يجعلك تفكر، \u0026ldquo;هذا يبدو مخيفًا\u0026hellip;\u0026quot;، لكنه في الواقع مفهوم مألوف جدًا يمنحنا منظورًا لطيفًا.\nهل فكرت يومًا، \u0026ldquo;قد يكرهني ذلك الشخص\u0026hellip;\u0026quot;؟ على سبيل المثال، هل مررت بهذه التجربة من قبل؟\n・تأخر الرد على رسائل LINE ・تواصلت أعينكما لكنه لم يلقِ التحية ・تجاهل طلبك\nفي أوقات كهذه، قد تقلق وتفكر، \u0026ldquo;هل يكرهني؟\u0026rdquo; يحدث هذا لي كثيرًا. وأشعر بالإحباط من تلقاء نفسي.\nما هو نصل هانلون؟ هنا يأتي دور \u0026ldquo;نصل هانلون\u0026rdquo;.\nهذا المصطلح في الأصل باللغة الإنجليزية هو \u0026ldquo;Hanlon\u0026rsquo;s Razor\u0026rdquo;. المعنى تقريبًا كالتالي:\n\u0026ldquo;لا تنسب أبدًا إلى سوء النية ما يمكن تفسيره بشكل كافٍ بالغباء\u0026rdquo;\n\u0026hellip;هذه طريقة قاسية بعض الشيء لقول ذلك. بطريقة أكثر لطفًا:\n\u0026ldquo;حتى لو بدا أن الشخص الآخر يتصرف بلؤم، فقد يكون مجرد خطأ أو إهمال\u0026rdquo;\nهذه هي الفكرة.\nمن قال ذلك؟ من هو روبرت ج. هانلون؟ يُقال إن هذا المصطلح ظهر لأول مرة في كتاب نُشر عام 1980 بعنوان \u0026ldquo;Murphy’s Law Book Two\u0026rdquo;.\nالفكرة التي قدمها أحد المؤلفين، روبرت ج. هانلون ، استُخدمت كما هي، وأصبحت تُعرف باسم \u0026ldquo;نصل هانلون\u0026rdquo;.\nبالمناسبة، هذا \u0026ldquo;النصل (Razor)\u0026rdquo; يشبه أداة فلسفية تعني \u0026ldquo;لنزيل الأشياء غير الضرورية ونفكر ببساطة\u0026rdquo;، وهي عبارة تُستخدم لتنظيم الأفكار، إلى جانب نصل أوكام.\nالتفكير \u0026ldquo;كان يقصد الأذى\u0026rdquo; أمر مرهق على سبيل المثال، عند تجاهل رسالة بريد إلكتروني في العمل.\nالتفكير \u0026ldquo;لماذا لا يرد؟ هل يكرهني؟\u0026rdquo; يجعلك أكثر سلبية، أليس كذلك؟\nلكن، إذا فكرت في الأمر جيدًا، ・ربما لم ينتبه لها ・كتب الرد لكنه لم يرسله ・ضاعت الإشعارات على هاتفه الذكي\nمثل هذه الأسباب شائعة جدًا. ونحن أنفسنا نرتكب مثل هذه الأخطاء.\nمن الغريب كيف نتسامح مع أخطائنا لكننا نكون قساة مع الآخرين على سبيل المثال، عندما تنسى الرد على رسالة LINE من صديق.\nترد قائلًا، \u0026ldquo;أوه، آسف! لم أر الإشعار~\u0026rdquo; دون أي نية سيئة، أليس كذلك؟\nلكن، عندما يفعل شخص آخر نفس الشيء معك، تعتقد \u0026ldquo;لقد تجاهلني\u0026rdquo;.\nهذا يحدث كثيرًا. الناس يتفهمون ظروفهم الخاصة جيدًا، لكن من الصعب رؤية ظروف الآخرين.\nافتراض \u0026ldquo;وجود نية سيئة\u0026rdquo; هو في الواقع خسارة عندما يفعل شخص ما شيئًا، وافتراض أن لديه \u0026ldquo;نية سيئة\u0026rdquo;، فإنك تجعله عدوًا في قلبك.\nلكن، في الواقع، ربما يكون مجرد شخص أخرق، أو ربما يكون مثقلًا بأشياء أخرى.\nبالطبع، هناك أشخاص وقحون حقًا، ومن الطبيعي أن تتأذى إذا عوملت بشكل سيء.\nلكن، من الأفضل عدم افتراض أن ذلك \u0026ldquo;بالتأكيد نية سيئة\u0026rdquo;، سيكون قلبك أخف قليلاً.\nومع ذلك، لا يعني ذلك أنه يجب عليك تحمل كل شيء لا تسيء فهمي هنا، لا أريد أن أقول \u0026ldquo;أنت تبالغ في القلق بشأن كل شيء\u0026rdquo;.\nعندما يفعل شخص ما شيئًا سيئًا، لا بأس أن تعتقد \u0026ldquo;كان ذلك فظيعًا\u0026rdquo;.\nولكن، بدلاً من افتراض \u0026ldquo;ذلك الشخص سيء الطباع\u0026rdquo; أو \u0026ldquo;حاول إيذائي عن قصد\u0026rdquo;،\nأقترح أنه قد يكون من الجيد أن تكون متسامحًا قليلاً وتفكر، \u0026ldquo;ربما كان هناك سبب ما\u0026rdquo;.\nلذلك: مجرد النظر بلطف أكثر قليلاً قد يغير العالم أعتقد أن نصل هانلون هو \u0026ldquo;طريقة لحماية قلبك\u0026rdquo; أكثر من كونه مجرد \u0026ldquo;كن لطيفًا مع الناس\u0026rdquo;.\nعندما تشعر بالنية السيئة في أفعال شخص ما، فإن مشاعرك الخاصة تصبح متوترة أيضًا.\nولكن، إذا استطعت أن تفكر، \u0026ldquo;ربما كان مجرد خطأ، أو لم يكن لديه وقت\u0026rdquo;، فإن مشاعرك ستكون أسهل قليلاً.\nبهذه الطريقة، إنها فكرة يمكنك استخدامها لنفسك.\nأخيرًا: يرجى مشاركة تجربتك أيضًا شكراً جزيلاً على القراءة.\nإذا كان لديك قصة حيث فكرت، \u0026ldquo;لقد شعرت بالانزعاج في وقت كهذا~\u0026quot;، يرجى إخباري.\nمجرد التعبير عن تجربتك بالكلمات يمكن أن يجعل قلبك يشعر ببعض الراحة، أليس كذلك؟\nإلى اللقاء!\n","date":"2024-09-24T18:14:34+09:00","image":"http://kenji.blog/p/%E3%83%8F%E3%83%B3%E3%83%AD%E3%83%B3%E3%81%AE%E5%89%83%E5%88%80/img_hu0c32762ee7cb281fb24d789425dae55e_82924_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%86%D8%B5%D9%84-%D9%87%D8%A7%D9%86%D9%84%D9%88%D9%86/","title":"نصل هانلون"},{"content":"المعرفة الأساسية بالكمبيوتر تشرح هذه الصفحة ما هو الكمبيوتر.\nتعريف الكمبيوتر الكمبيوتر هو آلة تحتوي على الأجهزة الخمسة التالية.\nجهاز الإدخال جهاز الإخراج جهاز التخزين جهاز التحكم وحدة الحساب بشكل عام، الكمبيوتر هو آلة تأخذ إدخالًا معينًا، وتقوم بإجراء معالجة محددة، ثم تخرج النتيجة. يمكنه تخزين البيانات المدخلة، وإجراء العمليات الحسابية عليها، ثم إخراجها. يلعب جهاز التحكم دورًا في التحكم في الأجهزة الأربعة المذكورة أعلاه.\nما تحتاجه لتشغيل الكمبيوتر لتشغيل الكمبيوتر، تحتاج إلى برامج بالإضافة إلى الأجهزة.\nتخبر البرامج الكمبيوتر بالمعالجة التي يجب إجراؤها. تتم كتابة البرامج بتنسيق يمكن للكمبيوتر فهمه.\nكمثال على برنامج، يوجد ما يلي: برنامج يحسب مجموع الأعداد الصحيحة من 1 إلى الرقم المدخل\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include \u0026lt;iostream\u0026gt; using namespace std; int main() { // تأمين مساحة التخزين اللازمة int n, sum = 0; // إخراج cout \u0026lt;\u0026lt; \u0026#34;أدخل عددًا صحيحًا: \u0026#34;; // إدخال cin \u0026gt;\u0026gt; n; // عملية حسابية for (int i = 1; i \u0026lt;= n; i++) { // عملية حسابية sum += i; } // إخراج cout \u0026lt;\u0026lt; \u0026#34;مجموع الأعداد من 1 إلى \u0026#34; \u0026lt;\u0026lt; n \u0026lt;\u0026lt; \u0026#34; هو \u0026#34; \u0026lt;\u0026lt; sum \u0026lt;\u0026lt; \u0026#34;.\u0026#34; \u0026lt;\u0026lt; endl; // إنهاء return 0; } يتم تحويل البرامج إلى لغة الآلة بواسطة مترجم، ثم تحويلها إلى تنسيق يمكن للكمبيوتر تنفيذه.\n","date":"2024-09-19T01:10:20+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9F%A5%E8%AD%98/img_hubc9c51905d797e9d57f0ff169cf73b36_367819_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D9%84%D9%85%D8%B9%D8%B1%D9%81%D8%A9-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9-%D8%A8%D8%A7%D9%84%D9%83%D9%85%D8%A8%D9%8A%D9%88%D8%AA%D8%B1/","title":"المعرفة الأساسية بالكمبيوتر"},{"content":"تطبيقات iOS الموصى بها X Instagram facebook youtube TikTok Microsoft Edge Firefox Google Chrome ChatGPT LINE Microsoft Teams Notion Goodnotes 6 TeamViewer DropBox GitHub Amazon PayPay WolframAlpha Mercari ","date":"2024-09-18T23:31:20+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81ios%E3%82%A2%E3%83%97%E3%83%AA/img_huad2df38b51218b64bee99f031553dd91_79847_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-ios-%D8%A7%D9%84%D9%85%D9%88%D8%B5%D9%89-%D8%A8%D9%87%D8%A7/","title":"تطبيقات iOS الموصى بها"},{"content":"الزوجان العجوزان والحمار، ومشكلتنا في \u0026ldquo;لمن نستمع\u0026rdquo; مرحباً!\nاليوم أردت أن أكتب عن شيء فكرت فيه قليلاً من \u0026ldquo;قصة الزوجين العجوزين والحمار\u0026rdquo;.\nربما سمع الكثير منكم عنها. إنها تلك الحكاية الرمزية الشهيرة.\nما هي \u0026ldquo;قصة الزوجين العجوزين والحمار\u0026rdquo;؟ في قديم الزمان، كان هناك زوجان عجوزان وحمار.\nفي البداية، كان الرجل العجوز يركب الحمار، وكانت المرأة العجوز تمشي. ثم قال أحد المارة:\n\u0026ldquo;يا له من رجل، يجعل زوجته العجوز تمشي بينما يركب هو فقط!\u0026rdquo;\nعندما سمع الزوجان العجوزان ذلك، قررا أن تركب المرأة العجوز الحمار هذه المرة. ثم قال شخص آخر:\n\u0026ldquo;من المشين أن تركب امرأة حماراً وتجعل رجلاً يمشي!\u0026rdquo;\nحسناً، هذه المرة ركب كلاهما الحمار. ثم قيل لهم مرة أخرى:\n\u0026ldquo;يا له من حمار مسكين، إنه ثقيل جداً بركوب شخصين عليه!\u0026rdquo;\nفي هذه الحالة، نزل كلاهما من الحمار وبدآ في المشي. ثم هذه المرة\u0026hellip;\n\u0026ldquo;لماذا لا يركب أحد على الرغم من وجود حمار؟\u0026rdquo;\nفي النهاية، كان الزوجان العجوزان في حيرة من أمرهما.\n\u0026ldquo;دعونا نستمع إلى آراء الجميع\u0026rdquo; حجة سليمة بالتأكيد. ولكن\u0026hellip; غالباً ما يُنظر إلى هذه القصة على أنها درس يقول، \u0026ldquo;آه، إذا كنت تهتم فقط بما يعتقده الآخرون، فلن تكون هناك نهاية لذلك.\u0026rdquo;\nلكن الواقع ليس بهذه البساطة.\nهناك الكثير من الناس الذين يقولون، \u0026ldquo;لا تهتم بما يعتقده الآخرون!\u0026rdquo;\nولكن عندما يتعلق الأمر بما إذا كان بإمكانك تجاهل كل شيء، فالأمر صعب بعض الشيء. على سبيل المثال، عند نشر شيء ما على وسائل التواصل الاجتماعي. عند التفكير في ما يجب التحدث عنه في حفل شرب في الشركة. لا يسعك إلا أن تقلق بشأن رد فعل شخص ما.\nوذلك لأن \u0026ldquo;آراء الآخرين\u0026rdquo; تتعلق أحياناً بسلامتنا وتقييمنا.\nومع ذلك، إذا تأثرت كثيراً، فسيصبح الأمر مؤلماً أعتقد أن الزوجين العجوزين في هذه القصة كانا يفكران في البداية ببساطة، \u0026ldquo;ماذا يجب أن نفعل؟\u0026rdquo;\nولكن بغض النظر عن المدى الذي تذهب إليه، سيشتكي \u0026ldquo;شخص ما\u0026rdquo;.\nثم يبدأون في الدوران في دوائر، \u0026ldquo;حسناً، دعنا نفعل هذا بعد ذلك\u0026rdquo; أو \u0026ldquo;هل يجب أن نفعل ذلك بعد كل شيء؟\u0026rdquo; وقبل أن تعرف ذلك، تفقد مسار ما تريد القيام به.\nهذه قصة شائعة في حياتنا اليومية أيضاً.\nتوقعات رئيسك، وكلمات والديك، وعدد \u0026ldquo;الإعجابات\u0026rdquo; على وسائل التواصل الاجتماعي. بينما تتكيف مع هذه الأشياء، هل تفقد أحياناً مسار ما تريد حقاً القيام به؟\nمن المهم أن تختار \u0026ldquo;لمن تستمع\u0026rdquo; إذن، ماذا يجب أن نفعل؟ حسناً، لا توجد إجابة صحيحة.\nومع ذلك، من المستحيل عملياً \u0026ldquo;اتباع آراء الجميع\u0026rdquo;.\nلهذا السبب أعتقد أنه من المهم أن تختار بنفسك \u0026ldquo;لمن تستمع\u0026rdquo;.\nعلى سبيل المثال، \u0026ldquo;استمع فقط إلى نصيحة الأشخاص الذين تحترمهم\u0026rdquo; أو \u0026ldquo;استخدم كمعيار ما إذا كان بإمكانك إقناع نفسك في الماضي\u0026rdquo;.\nحتى لو كان معياراً واحداً فقط يجعلك تفكر، \u0026ldquo;أريد أن أصدق هذا\u0026rdquo;، فإن ضوضاء العالم ستقل قليلاً.\nلذلك، عندما تكون متعباً بعض الشيء قد يكون من الجيد أن تتذكر قصة \u0026ldquo;الزوجين العجوزين والحمار\u0026rdquo;.\nمن السهل أن تقلق بشأن ما يعتقده الآخرون، أليس كذلك؟\nولكن إذا استجبت للجميع، فسوف تنزل عن الحمار أيضاً.\nأحياناً، إذا تمكنت من التفكير، \u0026ldquo;ربما لا بأس من إعطاء الأولوية لمشاعري الخاصة.\u0026rdquo; قد تشعر أن قلبك أخف قليلاً.\n","date":"2024-09-18T00:56:59+09:00","image":"http://kenji.blog/p/%E8%80%81%E5%A4%AB%E5%A9%A6%E3%81%A8%E3%83%AD%E3%83%90%E3%81%AE%E8%A9%B1/img_hu4e12b653e0413f37819b2904ce683e39_500631_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%82%D8%B5%D8%A9-%D8%A7%D9%84%D8%B2%D9%88%D8%AC%D9%8A%D9%86-%D8%A7%D9%84%D8%B9%D8%AC%D9%88%D8%B2%D9%8A%D9%86-%D9%88%D8%A7%D9%84%D8%AD%D9%85%D8%A7%D8%B1/","title":"قصة الزوجين العجوزين والحمار"},{"content":"لماذا كان من شبه المستحيل صنع مصباح LED أزرق مقدمة لبرنامج وثائقي باللغة الإنجليزية. إنه ممتع للغاية. لدي انطباع قوي بأن الياباني الذي حل هذه المشكلة الصعبة للغاية لم يحظ بتقدير كبير في اليابان في البداية.\n","date":"2024-09-15T00:43:52+09:00","image":"http://kenji.blog/p/%E3%81%AA%E3%81%9C%E9%9D%92%E8%89%B2led%E3%82%92%E4%BD%9C%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%BB%E3%81%BC%E4%B8%8D%E5%8F%AF%E8%83%BD%E3%81%A0%E3%81%A3%E3%81%9F%E3%81%AE%E3%81%8B/img_hu003acf083dbe465265af012766f30af7_1201686_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%84%D9%85%D8%A7%D8%B0%D8%A7-%D9%83%D8%A7%D9%86-%D9%85%D9%86-%D8%B4%D8%A8%D9%87-%D8%A7%D9%84%D9%85%D8%B3%D8%AA%D8%AD%D9%8A%D9%84-%D8%B5%D9%86%D8%B9-%D9%85%D8%B5%D8%A8%D8%A7%D8%AD-led-%D8%A3%D8%B2%D8%B1%D9%82/","title":"لماذا كان من شبه المستحيل صنع مصباح LED أزرق"},{"content":"بدء تطوير Qt في VSCode: كيفية تثبيت حزمة إضافات Qt مرحبًا، أنا Kenji. هذه المرة سأقدم \u0026ldquo;كيفية إعداد بيئة تطوير Qt في Visual Studio Code (والمعروف باسم VSCode)\u0026rdquo;.\nفي الآونة الأخيرة، بالإضافة إلى Qt Creator الرسمي، تزايدت الأصوات التي ترغب في تطوير تطبيقات Qt باستخدام VSCode خفيف الوزن وعالي القابلية للتوسيع. نوصي هؤلاء الأشخاص بـ ** \u0026ldquo;حزمة إضافات Qt\u0026rdquo; **. بمجرد تثبيت حزمة الإضافات هذه، ستتوفر لديك جميع الإضافات الرئيسية المتعلقة بـ Qt دفعة واحدة.\nالجمهور المستهدف أولئك الذين يرغبون في البدء في تطوير تطبيقات واجهة المستخدم الرسومية (GUI) باستخدام Qt أولئك الذين يرغبون في التطوير باستخدام VSCode بدلاً من Qt Creator أولئك الذين يجدون صعوبة في البحث عن الإضافات واحدة تلو الأخرى المتطلبات الأساسية أن يكون VSCode مثبتًا بالفعل (يمكنك تنزيله مجانًا من الموقع الرسمي) أن تكون مكتبة Qt الأساسية مثبتة (موقع Qt الرسمي) ما هي حزمة إضافات Qt؟ حزمة إضافات Qt هي حزمة إضافات لـ VSCode. من خلال تثبيتها، ستتم إضافة الميزات التالية تلقائيًا:\nدعم ملفات .ui (Qt Designer) تمييز بناء الجملة لملفات .pro وملفات .qrc إكمال كود C++ لـ Qt، والبناء، ودعم تصحيح الأخطاء متصفح موارد Qt (تصفح الموارد) خطوات التثبيت 1. افتح VSCode أولاً، قم بتشغيل VSCode.\n2. افتح عرض الإضافات انقر على شريط النشاط على اليسار (رمز المربع) لعرض \u0026ldquo;الإضافات\u0026rdquo;.\nأو يمكنك الضغط على الاختصار Ctrl + Shift + X.\n3. ابحث عن \u0026ldquo;Qt Extension Pack\u0026rdquo; أدخل الكلمة الرئيسية التالية في شريط البحث:\n1 Qt Extension Pack 4. انقر فوق زر التثبيت بمجرد ظهور الحزمة المستهدفة، انقر فوق الزر \u0026ldquo;تثبيت\u0026rdquo;. سيؤدي هذا إلى تثبيت الإضافات المتعددة التالية دفعة واحدة:\nQt Language Support QML Support Qt Designer Integration CMake Tools (مطلوب لتطوير Qt المتوافق مع CMake) إضافة حول إعدادات المشروع (مثال CMake + Qt) إذا كنت تستخدم Qt استنادًا إلى CMake، فنوصي بدمجه مع الإضافات التالية:\nCMake Tools CMake Language Support أيضًا، إذا أضفت الكود التالي إلى CMakeLists.txt، فسيكون التكامل مع Qt سلسًا:\n1 2 find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(MyApp PRIVATE Qt6::Widgets) مكافأة: كيف تفتح ملفات .ui؟ يمكن تحرير ملفات .ui في Qt Designer. في VSCode، يمكنك النقر بزر الماوس الأيمن على ملف .ui ثم اختيار Open with Qt Designer (يجب أن يكون Qt Designer مضمنًا في متغير البيئة PATH).\nالخلاصة الخطوة الوصف 1 تشغيل VSCode 2 فتح لوحة الإضافات 3 البحث عن \u0026ldquo;Qt Extension Pack\u0026rdquo; 4 النقر فوق زر التثبيت أصبح إعداد بيئة Qt في VSCode أسهل بكثير من ذي قبل. يحتوي على ميزات كافية ليكون بديلاً لـ Qt Creator، ونوصي به لأولئك الذين يرغبون في العمل بخفة.\nمجموعة روابط موصى بها موقع Qt الرسمي Qt Extension Pack - Visual Studio Marketplace موقع VSCode الرسمي إضافة CMake Tools أخيرًا في المستقبل، أخطط لمواصلة التطوير باستخدام أدوات واجهة المستخدم لـ Qt و QML في هذه البيئة. في المرة القادمة، أخطط لشرح ** كيفية بناء وتشغيل تطبيق Hello World في Qt من VSCode **.\nأراكم لاحقًا!\n","date":"2024-09-13T00:53:53+09:00","image":"http://kenji.blog/p/visual-studio-code-%E3%81%AB-qt-extension-pack-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F/img_1_hu3662f535d644da02b1919ea56b7b16c2_319254_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/visual-studio-code-%E3%81%AB-qt-extension-pack-%E3%82%92%E5%85%A5%E3%82%8C%E3%81%A6%E3%81%BF%E3%81%9F/","title":"لقد جربت تثبيت حزمة إضافات Qt في Visual Studio Code"},{"content":"كيفية التحقق مما إذا كان جهاز iPhone الخاص بك مقفلاً ببطاقة SIM الشاشة الرئيسية ＞ الإعدادات ＞ عام ＞ حول ＞ قفل مزود الخدمة\nتحقق مما إذا كان يعرض لا توجد قيود على شريحة SIM أو شريحة SIM مقفلة.\n","date":"2024-09-12T00:32:11+09:00","image":"http://kenji.blog/p/iphone%E3%81%ABsim%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%81%8B%E3%81%8B%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_huadfe7e53f677430d2790fc209a2a5361_107562_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%AD%D9%82%D9%82-%D9%85%D9%85%D8%A7-%D8%A5%D8%B0%D8%A7-%D9%83%D8%A7%D9%86-%D8%AC%D9%87%D8%A7%D8%B2-iphone-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5-%D8%A8%D9%83-%D9%85%D9%82%D9%81%D9%84%D8%A7%D9%8B-%D8%A8%D8%A8%D8%B7%D8%A7%D9%82%D8%A9-sim/","title":"كيفية التحقق مما إذا كان جهاز iPhone الخاص بك مقفلاً ببطاقة SIM"},{"content":"ملخص 1 الفئة P هي فئة من المشكلات التي يمكن تحديدها في وقت متعدد الحدود على آلة تورينغ الحتمية، والفئة NP هي فئة من المشكلات حيث، عند إعطاء دليل على أن الإجابة هي نعم (يسمى شاهد)، يمكن التحقق من صحة الشاهد في وقت متعدد الحدود (وهذا ما يسمى بالتحقق). نظرًا لأن المشكلات التي يمكن تحديدها في وقت متعدد الحدود يمكن التحقق منها في وقت متعدد الحدود، فمن الواضح أن P⊆NP، ولكن ليس من الواضح ما إذا كانت P مجموعة فرعية حقيقية من NP. على الرغم من عدم وجود دليل حتى الآن، يعتقد العديد من الباحثين أن P≠NP. هذا التخمين بأن الفئة P والفئة NP ليسا متساويين يسمى \u0026#34;تخمين P≠NP\u0026#34;. موقع مرجعي : https://daigakudenki.com/np-hard/\n","date":"2024-09-11T02:22:39+09:00","permalink":"http://kenji.blog/ar/p/pnp%E4%BA%88%E6%83%B3/","title":"تخمين P≠NP"},{"content":"أُعيد منحي جائزة Microsoft MVP لعام (2024-2025) مرحبًا، أنا kenji. أود أن أبلغكم أنني حصلت على جائزة Microsoft MVP (Most Valuable Professional) هذا العام أيضًا. هذه هي المرة الثامنة التي أحصل فيها على هذه الجائزة.\nبما أنني حصلت عليها، أود أن أكتب قليلاً عن \u0026ldquo;ما هي MVP؟\u0026rdquo;.\nما هي Microsoft MVP؟ على الرغم من أنها تسمى MVP، إلا أنها لا تتعلق بأفضل لاعب في الرياضة (أُسأل عن ذلك أحيانًا\u0026hellip;). Microsoft MVP (Most Valuable Professional) هي جائزة تُمنح للأشخاص الذين يشاركون بنشاط معرفتهم وخبرتهم في تقنيات Microsoft مع المجتمع.\nكتابة مدونات تقنية، الإجابة على الأسئلة في مواقع Q\u0026amp;A، نشر أكواد نموذجية، التحدث في الأحداث. يتم تقييم مثل هذه الأنشطة الثابتة - \u0026ldquo;مشاركة ما تعرفه بطريقة مفيدة لشخص آخر\u0026rdquo;.\nيوجد فائزون في جميع أنحاء العالم، لكن العدد محدود كل عام، وإعادة الفوز ليست سهلة. في ظل هذه الظروف، أنا ممتن حقًا لأنه تم تكريمي مرة أخرى.\nحول سبب الفوز بالجائزة هذه الجائزة هي إعادة فوز في فئة \u0026ldquo;Developer Technologies\u0026rdquo;. خلال العام الماضي، قمت بأنشطة مثل هذه:\nكتابة مدونة حول التقنيات المتعلقة بـ Microsoft نشر إجابات على مواقع Q\u0026amp;A التقنية نشر أكواد نموذجية على GitHub التحدث في مجموعات الدراسة والأحداث التقنية، إلخ. لا شيء من هذا مميز بشكل خاص، ولكن كنت واعيًا بنشر \u0026ldquo;الأشياء التي جربتها ونجحت\u0026rdquo; و \u0026ldquo;الأشياء التي تعثرت فيها ولكن تمكنت من حلها\u0026rdquo; في شكل قد يكون مفيدًا حتى ولو قليلاً.\nأنا سعيد حقًا لأن هذا قد تبلور بهذا الشكل.\nحول المستقبل عالم التكنولوجيا سريع جدًا، ومجرد مواكبة التطورات أمر صعب. لكن لهذا السبب تحديدًا، أشعر أن هناك معنى لمشاركة \u0026ldquo;المعلومات الحية\u0026rdquo; مثل كيف كان الأمر عند استخدامه فعليًا، وما الذي كان يصعب فهمه.\nسأستمر في العمل بأسلوبي الخاص، دون إرهاق نفسي. سأكون سعيدًا إذا تمكنت من تقديم معلومات تجعل شخصًا ما يفكر \u0026ldquo;آه، كان هذا مفيدًا\u0026rdquo; بطريقة أو بأخرى.\nأتطلع إلى دعمكم المستمر في المستقبل.\n","date":"2024-09-03T21:25:20+09:00","image":"http://kenji.blog/p/microsoft-mvp2024-2025%E3%82%92%E5%86%8D%E5%8F%97%E8%B3%9E%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F/img_hu90bf51ced9d60993f005bc037644a192_1013423_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A3%D9%8F%D8%B9%D9%8A%D8%AF-%D9%85%D9%86%D8%AD%D9%8A-%D8%AC%D8%A7%D8%A6%D8%B2%D8%A9-microsoft-mvp-%D9%84%D8%B9%D8%A7%D9%85-2024-2025/","title":"أُعيد منحي جائزة Microsoft MVP لعام (2024-2025)"},{"content":"ما هو yt-dlp yt-dlp هو أداة سطر أوامر لتنزيل مقاطع فيديو YouTube. بالإضافة إلى تنزيل مقاطع الفيديو، يمكنك أيضًا تنزيلها كملفات صوتية بتنسيق mp3.\nالتنزيل والتثبيت قم بتنزيل أحدث إصدار من yt-dlp.exe من صفحة إصدارات yt-dlp. ضع yt-dlp.exe في أي مجلد تختاره. أضف مسار مجلد yt-dlp.exe إلى متغير البيئة Path. طريقة الاستخدام قم بتشغيل yt-dlp.exe في موجه الأوامر وحدد عنوان URL لمقطع فيديو YouTube.\n1 yt-dlp.exe \u0026#34;https://www.youtube.com/watch?v=VIDEO_ID\u0026#34; ※ لا بأس في استخدام جزء VIDEO_ID كمعلمة فقط.\nلتنزيله كملف صوتي mp3، قم بتشغيل الأمر التالي.\n1 yt-dlp.exe --extract-audio --audio-format mp3 --embed-thumbnail --add-metadata \u0026#34;https://www.youtube.com/watch?v=VIDEO_ID\u0026#34; الآن، سيتم تنزيل الفيديو في الدليل الحالي الذي تم تنفيذ الأمر فيه.\nانتهى.\n","date":"2024-09-03T14:09:26+09:00","image":"http://kenji.blog/p/yt-dlp.exe-%E3%81%AB%E3%82%88%E3%82%8B-youtube-%E5%8B%95%E7%94%BB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E6%96%B9%E6%B3%95/img_1_hu05024a06b03b28eb7dbfa3d8c8b493fd_22080_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/yt-dlp.exe-%E3%81%AB%E3%82%88%E3%82%8B-youtube-%E5%8B%95%E7%94%BB%E3%81%AE%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E6%96%B9%E6%B3%95/","title":"طريقة تنزيل مقاطع فيديو YouTube باستخدام yt-dlp.exe"},{"content":" كرة القدم - فتى الكرات @gg211204 『اليوم الذي أصبح فيه فتى الكرات بطلاً』 فتى الكرات الذي أنقذ الفريق في ذلك اليوم دُعي لاحقًا إلى النادي وتناول وجبة مع اللاعبين. #توتنهام #سبيرز #مورينيو #فتى_الكرات ♬ original sound - じょり ستاربكس ","date":"2024-08-25T16:24:35+09:00","image":"http://kenji.blog/p/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E5%8B%95%E7%94%BB%E3%83%AA%E3%83%B3%E3%82%AF/img_hu6a40cd72b9cd9a636c4c642d7bc2c778_3354885_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B1%D9%88%D8%A7%D8%A8%D8%B7-%D9%81%D9%8A%D8%AF%D9%8A%D9%88%D9%87%D8%A7%D8%AA-%D9%82%D8%B5%D9%8A%D8%B1%D8%A9/","title":"روابط فيديوهات قصيرة"},{"content":"مرحباً!\nاليوم، أود أن أتحدث عن اقتباسات ألبرت أينشتاين.\nالعالم لا يقدر أفعالك الصالحة؟ 1 2 3 4 5 6 العالم لن يقدر أبداً مليون فعل صالح تقوم به. لكنه سينتقدك على شيء واحد خاطئ تفعله... لكن، لا تفقد الأمل \u0026#34;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.\u0026#34; - ألبرت أينشتاين هذه الكلمات يُقال إن أينشتاين قد نطق بها. إنها تشير بحدة إلى قسوة المجتمع التي نشعر بها كل يوم والتحيز في تقييمات الناس.\nومع ذلك، استمر في النهوض \u0026ldquo;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.\u0026rdquo;\nهذا الجزء التالي من الاقتباس يمكن اعتباره إجابة أينشتاين على الواقع القاسي المذكور أعلاه. إنه يعلمنا أهمية عدم الاستسلام للانتقاد أو السخرية، والاستمرار في المضي قدماً مع الإيمان بأنفسنا.\nتطبيق تعاليم أينشتاين في الحياة اليومية هذا الاقتباس متصل بعمق بحياتنا اليومية. على سبيل المثال، قد لا يتم الاعتراف بجهودك في العمل، وتبرز الأخطاء الصغيرة فقط. أو ربما يتم اقتطاع جزء من تصريح لك على وسائل التواصل الاجتماعي وانتقاده.\nفي مثل هذه الأوقات، يرجى تذكر كلمات أينشتاين هذه. من المهم أن تحافظ على معتقداتك الخاصة بدلاً من التأثر بتقييمات الآخرين.\nالخاتمة يعلمنا اقتباس أينشتاين هذا أهمية \u0026ldquo;العيش مع الإيمان بأنفسنا دون أن نتأثر بتقييمات الآخرين\u0026rdquo;. دعونا نتحلى بالشجاعة لاتباع الطريق الذي نؤمن به دون الاستسلام للانتقاد أو السخرية.\nأخيراً، كلمات أينشتاين مرة أخرى.\n** \u0026ldquo;ارتفع دائماً فوق كل الضحك والانتقاد. ابق قوياً.\u0026rdquo; **\nنأمل أن يتردد صدى هذه الكلمات في قلبك وتلهمك لاتخاذ خطوة إيجابية إلى الأمام.\n","date":"2024-08-24T18:38:47+09:00","image":"http://kenji.blog/p/%E3%82%A2%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E3%81%AE%E5%90%8D%E8%A8%80/Solvay_conference_1927_hu5334df7b0e2e62905cb44adbbbde85ad_2671814_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%D8%A7%D9%82%D8%AA%D8%A8%D8%A7%D8%B3%D8%A7%D8%AA-%D8%A3%D9%84%D8%A8%D8%B1%D8%AA-%D8%A3%D9%8A%D9%86%D8%B4%D8%AA%D8%A7%D9%8A%D9%86/","title":"اقتباسات ألبرت أينشتاين"},{"content":"فيما يلي كود بسيط بلغة C يولد أعدادًا أولية ضمن نطاق محدد. في هذا المثال، نسرد الأعداد الأولية من 1 إلى n.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 #include \u0026lt;stdio.h\u0026gt; #include \u0026lt;stdbool.h\u0026gt; bool isPrime(int num) { if (num \u0026lt;= 1) return false; if (num \u0026lt;= 3) return true; if (num % 2 == 0 || num % 3 == 0) return false; for (int i = 5; i * i \u0026lt;= num; i += 6) { if (num % i == 0 || num % (i + 2) == 0) return false; } return true; } void printPrimes(int n) { printf(\u0026#34;2 \u0026#34;); for (int i = 3; i \u0026lt;= n; i += 2) { if (isPrime(i)) { printf(\u0026#34;%d \u0026#34;, i); } } printf(\u0026#34;\\n\u0026#34;); } int main() { int n; printf(\u0026#34;أدخل القيمة القصوى للنطاق لتوليد الأعداد الأولية: \u0026#34;); scanf(\u0026#34;%d\u0026#34;, \u0026amp;n); printf(\u0026#34;الأعداد الأولية من 1 إلى %d هي كالتالي:\\n\u0026#34;, n); printPrimes(n); return 0; } يعمل هذا الكود على النحو التالي:\nدالة isPrime: تحدد ما إذا كان العدد المعطى أوليًا أم لا. من أجل الكفاءة، يتم أولاً التحقق مما إذا كان قابلاً للقسمة على 2 و 3، وبعد ذلك يتم التحقق من مضاعفات العدد 6. دالة printPrimes: تطبع الأعداد الأولية ضمن النطاق المحدد. تتم طباعة 2 أولاً، ثم يتم التحقق من الأعداد الفردية فقط. دالة main: يطلب من المستخدم إدخال القيمة القصوى للنطاق، ويطبع الأعداد الأولية ضمن ذلك النطاق. عند تجميع وتشغيل هذا الكود، سيتم عرض الأعداد الأولية ضمن النطاق المحدد.\n","date":"2024-08-24T09:38:10+09:00","image":"http://kenji.blog/p/%E7%B4%A0%E6%95%B0%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8Bc%E8%A8%80%E8%AA%9E%E3%82%B3%E3%83%BC%E3%83%89/img_hu31b8bd853d4750e84615619ef286e5d3_22034_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E7%B4%A0%E6%95%B0%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8Bc%E8%A8%80%E8%AA%9E%E3%82%B3%E3%83%BC%E3%83%89/","title":"كود لغة C لتوليد الأعداد الأولية"},{"content":"\nأكيكو يوسانو \u0026ldquo;لا تمت\u0026rdquo;\n―― رثاء لأخي في جيش حصار بورت آرثر\nآه يا أخي، أبكي من أجلك، لا تمت، لأنك ولدت أخيرًا كان حنان الوالدين لك أكبر، هل جعلك والداك تمسك سيفًا وعلماك أن تقتل الناس؟ هل ربياك حتى الرابعة والعشرين لقتل الناس والموت؟\nأنت سيد يفتخر بالمنزل القديم لتاجر في شوارع ساكاي ولأنك ترث اسم والديك، لا تمت، حتى لو سقطت قلعة بورت آرثر، أو لم تسقط، فماذا في ذلك؟ أنت لا تعرف، أليس كذلك؟ هذا لم يكن في تقاليد عائلة التاجر.\nلا تمت، الإمبراطور لا يخرج للقتال بنفسه، هل يقصد أن يسفك الناس دماء بعضهم البعض، وأن يموتوا في طريق الوحوش، وأن يعتبر الموت شرفًا للإنسان؟ كيف يمكنه أن يفكر هكذا، وهو صاحب القلب الكبير؟\nآه يا أخي، في المعركة لا تمت، والدتنا التي ترملت في الخريف الماضي بوفاة والدنا، في وسط حزنها، بألم دُعي ابنها، وهي تحرس المنزل، حتى في العهد السلمي المزعوم زاد الشيب في رأسها.\nتبكي مختبئة خلف ستارة المتجر زوجتك الشابة الضعيفة، هل نسيتها أم تفكر فيها؟ فكر في قلب الفتاة التي انفصلت عنك بعد أقل من عشرة أشهر، فأنت وحدك لها في هذا العالم آه، على من يمكنها الاعتماد بعد ذلك؟ لا تمت.\n","date":"2024-07-25T13:16:47+09:00","permalink":"http://kenji.blog/ar/p/%D9%84%D8%A7-%D8%AA%D9%85%D8%AA/","title":"لا تمت"},{"content":"\n🔹 نظرة عامة على الشخصية كانت أكيكو يوسانو (من 1878 إلى 1942) شاعرة وكاتبة ومفكرة يابانية نشطت من أواخر عصر ميجي إلى أوائل عصر شوا. عُرفت بشكل خاص بأعمالها التانكا الشغوفة والفريدة، وكانت شخصية رائدة في الأدب الياباني الحديث، حيث فتحت آفاقًا جديدة في استقلال المرأة والتعبير عن الحب.\nالاسم الحقيقي : يوسانو (اسم العائلة قبل الزواج: أوتوري) شو\nمكان الميلاد : ساكاي (مدينة ساكاي، محافظة أوساكا)\nالزوج : يوسانو تيكان (شاعر)\nفترة النشاط الرئيسية : أواخر عصر ميجي إلى أوائل عصر شوا\nالخصائص :\nلفتت الانتباه بقصائد التانكا التي عبرت بصراحة عن المشاعر الرومانسية للمرأة امتلكت أفكارًا نسوية وعززت تعليم المرأة واستقلالها أظهرت موقفًا سلميًا انتقد الحرب الروسية اليابانية عضو رئيسي في المجلة الأدبية \u0026ldquo;ميوجو\u0026rdquo; 🔹 الأعمال الرئيسية وملخصاتها وخصائصها 1. \u0026ldquo;ميداريغامي\u0026rdquo; (1901) نظرة عامة : مجموعتها الشعرية الأولى. نُشرت في أوائل العشرينيات من عمرها وكان لها تأثير كبير على الأوساط الأدبية اليابانية. الخصائص : التعبير الصريح عن المشاعر الرومانسية والرغبات الجسدية من منظور الأنثى. قصيدة مشهورة : دون أن تلمس الدم الحار لبشرتي الناعمة ألست تشعر بالوحدة، وأنت تعظ بالطريق؟\n→ أصبحت موضوعًا ساخنًا لتعبيرها عن آراء حول الحب اعتبرت جريئة في ظل الأخلاقيات السائدة في ذلك الوقت، بكلمات امرأة نفسها.\n2. \u0026ldquo;أرجوك لا تمت\u0026rdquo; (1904) الشكل : شعر (قصيدة وليست تانكا) المحتوى : قصيدة مناهضة للحرب موجهة إلى شقيقها الأصغر الذي ذهب إلى جبهة الحرب الروسية اليابانية. مقتطفات : أرجوك لا تمت لأنك ولدت أخيرًا دموع أمنا تنهمر وهي تعصر كمك\u0026hellip;\nالأهمية : كانت ثورية في مناشدتها ضد الحرب من منظور امرأة تشعر بالحزن على وفاة شقيقها، في وقت كان فيه الاتجاه نحو تمجيد الحرب قويًا. 🔹 التأثير والتقييم انخرطت في أنشطة تقدمية اجتماعيًا مثل تحرير المرأة، والسلام، ونشر التعليم. في سنواتها الأخيرة، كرست نفسها لتعليم الفتيات وشاركت في تأسيس كلية نسائية (مثل معهد الثقافة). واحدة من أهم المفكرات والأديبات في اليابان قبل الحرب. 🔹 ملخص العنصر المحتوى الاسم أكيكو يوسانو مجال النشاط تانكا، شعر، نقد، تعليم الأعمال الرئيسية \u0026ldquo;ميداريغامي\u0026rdquo;، \u0026ldquo;أرجوك لا تمت\u0026rdquo; الخصائص حرية الحب، استقلال المرأة، التعبير عن السلام التأثير المعاصر الأدب النسوي، ابتكار التانكا الحديثة، رائدة الشعر المناهض للحرب ","date":"2024-07-25T13:08:36+09:00","permalink":"http://kenji.blog/ar/p/about-akiko-yosano/","title":"عن أكيكو يوسانو"},{"content":"مقدمة في Mathematica حل المعادلات 1 Solve[x^2 - 3 x + 2 == 0, x] الخرج\n1 {{x -\u0026gt; 1}, {x -\u0026gt; 2}} إيجاد حلول المعادلات في نطاق الأعداد الصحيحة 1 Solve[x^2 - 3 x + 2 == 0 \u0026amp;\u0026amp; 0 \u0026lt;= x \u0026lt;= 2, x, Integers] الخرج\n1 {{x -\u0026gt; 1}, {x -\u0026gt; 2}} حل نظام من المعادلات 1 Solve[{x + y == 3, x - y == 1}, {x, y}] الخرج\n1 {{x -\u0026gt; 2, y -\u0026gt; 1}} حل المتباينات 1 Reduce[x^2 - 3 x + 2 \u0026gt; 0, x] الخرج\n1 x \u0026lt; 1 || x \u0026gt; 2 التفاضل 1 D[x^2, x] الخرج\n1 2 x التكامل 1 Integrate[x^2, x] الخرج\n1 x^3/3 إيجاد النهاية 1 Limit[1/x, x -\u0026gt; 0] الخرج\n1 Infinity إيجاد المتسلسلة 1 Sum[1/n^2, {n, 1, Infinity}] الخرج\n1 π^2/6 إنشاء مصفوفة 1 m = {{1, 2}, {3, 4}} إيجاد ضرب المصفوفات 1 m . m الخرج\n1 {{7, 10}, {15, 22}} إيجاد المصفوفة المعكوسة 1 Inverse[m] الخرج\n1 {{-2, 1}, {1.5, -0.5}} إيجاد القيم الذاتية والمتجهات الذاتية 1 Eigensystem[m] الخرج\n1 {{5, 0}, {{1, 1}, {1, -1}}} إيجاد الضرب النقطي للمتجهات 1 {1, 2} . {3, 4} الخرج\n1 11 إيجاد الضرب التقاطعي للمتجهات 1 Cross[{1, 2, 3}, {4, 5, 6}] الخرج\n1 {-3, 6, -3} إيجاد مقدار المتجه 1 Norm[{1, 2, 3}] الخرج\n1 √14 إيجاد زاوية المتجه 1 ArcCos[{1, 2} . {3, 4}/(Norm[{1, 2}] Norm[{3, 4}])] الخرج\n1 ArcCos[11/(√5 √25)] إيجاد الإسقاط المتجهي 1 {1, 2} . {3, 4}/Norm[{3, 4}] {3, 4}/Norm[{3, 4}] الخرج\n1 {11/5, 22/5} إيجاد دوران المتجه 1 RotationMatrix[π/2].{1, 0} الخرج\n1 {0, 1} إيجاد انتقال المتجه 1 TranslationTransform[{1, 2}][{3, 4}] الخرج\n1 {4, 6} إيجاد تحجيم المتجه 1 ScalingTransform[{2, 3}][{1, 1}] الخرج\n1 {2, 3} إيجاد انعكاس المتجه 1 ReflectionTransform[{1, 1}][{1, 1}] الخرج\n1 {0, 0} توليد أرقام عشوائية 1 RandomReal[] الخرج\n1 0.123456 توليد أرقام عشوائية (أعداد صحيحة) 1 RandomInteger[] الخرج\n1 123456 توليد أرقام عشوائية (ضمن نطاق) 1 RandomReal[{1, 10}] الخرج\n1 5.6789 توليد أرقام عشوائية (أعداد صحيحة ضمن نطاق) 1 RandomInteger[{1, 10}] الخرج\n1 5 توليد أرقام عشوائية (توزيع محدد) 1 RandomVariate[NormalDistribution[0, 1]] الخرج\n1 0.123456 توليد أرقام عشوائية (توزيع محدد، عدد محدد) 1 RandomVariate[NormalDistribution[0, 1], 10] الخرج\n1 {0.123456, 0.234567, ..., 0.987654} توليد أرقام عشوائية (توزيع، عدد، وبذرة محددة) 1 2 SeedRandom[12345] RandomVariate[NormalDistribution[0, 1], 10] الخرج\n1 {0.123456, 0.234567, ..., 0.987654} تطبيق دالة على عناصر المصفوفة 1 2 3 Map[Sqrt, {1, 4, 9}] Sqrt /@ {1, 4, 9} Map[#^(1/2)\u0026amp;, {1, 4, 9}] الخرج\n1 {1, 2, 3} تعريف دالة باستخدام تعبير لامبدا 1 2 f = Function[x, x^2] f[3] الخرج\n1 9 تركيب الدوال 1 2 3 4 f = Function[x, x^2] g = Function[x, x + 1] h = Function[x, f[g[x]]] h[3] الخرج\n1 16 الإشارة إلى نتيجة الحساب السابق 1 % + 1 الخرج\n1 17 دوال نقية 1 (#+3)\u0026amp;[5] الخرج\n1 8 استخراج من المصفوفة 1 2 Select[{1, 2, 3, 4, 5}, EvenQ] Select[{1, 2, 3, 4, 5}, Mod[#,2]==0\u0026amp;] الخرج\n1 {2, 4} ","date":"2024-07-25T01:36:19+09:00","image":"http://kenji.blog/p/mathematica%E5%85%A5%E9%96%80/img_hucba782cf2f6047b30fd8084b4d887659_22760_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/mathematica%E5%85%A5%E9%96%80/","title":"مقدمة في Mathematica"},{"content":"ما هو Hugo Hugo هو أحد مولدات المواقع الثابتة. يتيح لك إنشاء مواقع ويب عن طريق تحويل ملفات Markdown إلى HTML. تمت كتابة Hugo بلغة Go ويعمل بسرعة فائقة.\nهذه المدونة أيضاً تم إنشاؤها باستخدام Hugo.\nتثبيت واجهة سطر الأوامر (CLI) لـ Hugo لتثبيت واجهة سطر أوامر Hugo، قم بتشغيل الأمر التالي.\n※ هذا مثال لنظام macOS. لأنظمة التشغيل الأخرى، يرجى الرجوع إلى الوثائق الرسمية.\n1 brew install hugo يمكنك تثبيته باستخدام Homebrew.\nقائمة أوامر Hugo يوفر Hugo أوامر متنوعة. قمنا بتلخيص الأوامر الأكثر استخداماً أدناه.\nإنشاء موقع جديد 1 hugo new site \u0026lt;اسم الموقع\u0026gt; هذا الأمر لإنشاء موقع جديد. في \u0026lt;اسم الموقع\u0026gt;، حدد اسم الموقع.\nإنشاء مقال جديد 1 hugo new \u0026lt;اسم المقال\u0026gt;.md هذا الأمر لإنشاء مقال جديد. في \u0026lt;اسم المقال\u0026gt;، حدد اسم المقال.\nبدء تشغيل الخادم 1 hugo server هذا الأمر لتشغيل الخادم المحلي. يمكن الوصول إليه عبر http://localhost:1313.\nبناء الموقع 1 hugo هذا الأمر لبناء الموقع. سيتم إنشاء ملفات HTML في مجلد public.\nالنشر 1 hugo deploy هذا الأمر لنشر الموقع. يتم تكوين إعدادات النشر في ملف config.toml.\nعرض قائمة المقالات 1 hugo list all هذا الأمر لعرض قائمة بجميع المقالات.\nالتحقق من الإعدادات 1 hugo config هذا الأمر للتحقق من الإعدادات.\nعرض المساعدة 1 hugo help هذا الأمر لعرض المساعدة.\nعرض الإصدار 1 hugo version هذا الأمر لعرض الإصدار.\nهذه هي قائمة أوامر Hugo. تتوفر العديد من الأوامر الأخرى، لذا يرجى الرجوع إلى الوثائق الرسمية.\nالمراجع وثائق Hugo الرسمية ","date":"2024-05-31T01:36:00+09:00","image":"http://kenji.blog/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/hugo%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%B8%80%E8%A6%A7/","title":"قائمة أوامر Hugo"},{"content":"قائمة إضافات Visual Studio Code الموصى بها التصنيف الاسم المصدر الوصف إدارة الحاويات والأنظمة الوهمية Remote Devlopment Microsoft يدعم التطوير عن بُعد عبر الاتصال بالحاويات الوهمية/WSL باستخدام SSH إدارة الحاويات والأنظمة الوهمية Docker Microsoft يدعم إدارة حاويات Docker إدارة الكود GitHub Pull Requests GitHub يدعم إدارة طلبات السحب (Pull Requests) الخاصة بـ GitHub داخل VSCode إدارة الكود GitHub Copilot GitHub يدعم إكمال الكود باستخدام الذكاء الاصطناعي إدارة الكود Git Graph mhutchie يعرض فروع وتاريخ Git بشكل رسومي إدارة الكود Git History Don Jayamanne يعرض تاريخ Git تطوير الويب والمتصفح Debugger for Firefox Firefox DevTools يتيح استخدام مصحح أخطاء Firefox داخل VSCode تطوير الويب والمتصفح Microsoft Edge Tool For VScode Microsoft يتيح استخدام أدوات المطورين لـ Edge داخل VSCode تطوير الويب والمتصفح Vue Language Features(Volar) Vue يدعم ميزات لغة Vue تطوير الويب والمتصفح JavaScript (ES6) code snippets charalampos karypidis يوفر مقتطفات برمجية لـ JavaScript تطوير الويب والمتصفح Tailwind CSS IntelliSense Tailwind Labs يوفر مقتطفات برمجية لـ Tailwind CSS التطوير السحابي AWS Toolkit Amazon Web Services يدعم تطوير AWS التطوير السحابي Azure Tools Microsoft يدعم تطوير Azure التطوير السحابي Google Cloud Tools Google Cloud يدعم تطوير Google Cloud قواعد البيانات MySQL Jun Han يدعم تطوير MySQL قواعد البيانات SQL Server(mssql) Microsoft يدعم تطوير SQL Server قواعد البيانات PostgreSQL Chris Kolkman يدعم تطوير PostgreSQL الأنظمة المدمجة PlatformIO PlatformIO يدعم تطوير PlatformIO الأنظمة المدمجة Arduino Microsoft يدعم تطوير Arduino الأنظمة المدمجة WorkBench Particle بيئة تطوير مقدمة من Particle تدعم التطوير لإنترنت الأشياء (IoT) بما في ذلك البرامج الثابتة، المكتبات، والتكامل السحابي C/C++ C/C++ Extension Pack Microsoft يدعم تطوير C/C++ C/C++ C/C++ Runner franneck94 ينفذ كود C/C++ (يدعم مترجمات gcc، msvc، cuda nvccc) C/C++ Cortex-Debug marus25 يدعم تصحيح أخطاء المتحكمات الدقيقة Cortex-A/R/M Python Python Extension Pack Microsoft يدعم تطوير Python Python jupyter Microsoft يدعم تطوير Jupyter Notebook الأدوات وواجهة المستخدم Makrdown All in One Yu Zhang يدعم كتابة Markdown الأدوات وواجهة المستخدم Hex Editor Microsoft يحرر الملفات الثنائية الأدوات وواجهة المستخدم vscode-pdf tomoki1207 يعرض ملفات PDF الأدوات وواجهة المستخدم Rainbow CSV mechatroner يعرض ملفات CSV بألوان متعددة الأدوات وواجهة المستخدم Draw.io Integration Henning Dieterichs يتيح استخدام Draw.io داخل VSCode الأدوات وواجهة المستخدم Japanese Language Pack for Visual Studio Code Microsoft حزمة تعريب واجهة المستخدم الأدوات وواجهة المستخدم Live Share Microsoft يدعم العمل المشترك في الوقت الفعلي ","date":"2024-05-29T17:20:19+09:00","image":"http://kenji.blog/p/visual-studio-code%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD/img_hu9f3ce3d75e92e9f1ca11d3e7a3c7b710_108332_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D8%B6%D8%A7%D9%81%D8%A7%D8%AA-visual-studio-code-%D8%A7%D9%84%D9%85%D9%88%D8%B5%D9%89-%D8%A8%D9%87%D8%A7/","title":"إضافات Visual Studio Code الموصى بها"},{"content":"ما هو mermaid.js mermaid.js هي مكتبة JavaScript تتيح لك كتابة بنية مخصصة تعتمد على النص (صيغة Mermaid) لعرض المخططات المعقدة رسومياً مثل المخططات الانسيابية والرسوم البيانية ومخططات جانت. يتم استخدامها أيضاً في خدمات مختلفة مثل GitHub و Qiita و Notion. في هذه المرة، سنحاول تمكين استخدام mermaid.js في hugo.\nتمكين استخدام mermaid.js في hugo الخطوات كالتالي:\nأضف التالي إلى layouts/partials/extend_footer.html. 1 2 3 4 5 6 7 8 9 10 11 12 13 {{ if or .Params.mermaid .Site.Params.mermaid }} \u0026lt;script src=\u0026#34;https://cdn.jsdelivr.net/npm/mermaid@10.3.0/dist/mermaid.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; {{- $loadmermaid := resources.Get \u0026#34;js/load-mermaid.js\u0026#34; }} \u0026lt;script src=\u0026#34;{{ $loadmermaid.RelPermalink }}\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script\u0026gt; window.initMermaid(); if (isDarkTheme()) { setPrefTheme(\u0026#39;dark\u0026#39;); } else { setPrefTheme(\u0026#39;light\u0026#39;); } \u0026lt;/script\u0026gt; {{ end }} ※ يتم تحميل mermaid.min.js فقط إذا كان mermaid: true في عبارة if. هذه المكتبة كبيرة نوعاً ما، حوالي 3 ميغابايت.\nقم بإنشاء assets/js/load-mermaid.js. يتم استخدام هذه العملية للتهيئة وإعادة الرسم عند تبديل السمة ديناميكياً. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 (function(window){ \u0026#39;use strict\u0026#39; const elementCode = \u0026#39;.mermaid\u0026#39; const loadMermaid = function(theme) { window.mermaid.initialize({theme}) window.mermaid.init({theme}, document.querySelectorAll(elementCode)) } const saveOriginalData = function(){ return new Promise((resolve, reject) =\u0026gt; { try { var els = document.querySelectorAll(elementCode), count = els.length; els.forEach(element =\u0026gt; { element.setAttribute(\u0026#39;data-original-code\u0026#39;, element.innerHTML) count-- if(count == 0){ resolve() } }); } catch (error) { reject(error) } }) } const resetProcessed = function(){ return new Promise((resolve, reject) =\u0026gt; { try { var els = document.querySelectorAll(elementCode), count = els.length; els.forEach(element =\u0026gt; { if(element.getAttribute(\u0026#39;data-original-code\u0026#39;) != null){ element.removeAttribute(\u0026#39;data-processed\u0026#39;) element.innerHTML = element.getAttribute(\u0026#39;data-original-code\u0026#39;) } count-- if(count == 0){ resolve() } }); } catch (error) { reject(error) } }) } const init = ()=\u0026gt;{ saveOriginalData() .catch( console.error ) document.body.addEventListener(\u0026#39;dark-theme-set\u0026#39;, ()=\u0026gt;{ resetProcessed() .then(loadMermaid(\u0026#39;dark\u0026#39;)) .catch(console.error) }) document.body.addEventListener(\u0026#39;light-theme-set\u0026#39;, ()=\u0026gt;{ resetProcessed() .then(loadMermaid(\u0026#39;default\u0026#39;)) .catch(console.error) }) } window.initMermaid = init })(window); تمت الإشارة إلى الكود الأصلي هنا:\nReinitialize with new theme #1945 قم بتعديل عملية تبديل السمة في header.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 function switchTheme(theme) { switch (theme) { case \u0026#39;light\u0026#39;: {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;light-theme-set\u0026#39;)); {{ end }} document.body.classList.remove(\u0026#39;dark\u0026#39;); break; case \u0026#39;dark\u0026#39;: {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;dark-theme-set\u0026#39;)); {{ end }} document.body.classList.add(\u0026#39;dark\u0026#39;); break; // auto default: if (window.matchMedia(\u0026#39;(prefers-color-scheme: dark)\u0026#39;).matches) { {{ if or .Params.mermaid .Site.Params.mermaid }} document.body.dispatchEvent(new CustomEvent(\u0026#39;dark-theme-set\u0026#39;)); {{ end }} document.body.classList.add(\u0026#39;dark\u0026#39;); } } } قم بإنشاء layouts/shortcodes/mermaid.html 1 2 3 \u0026lt;div class=\u0026#34;mermaid\u0026#34; align=\u0026#34;{{ if .Get \u0026#34;align\u0026#34; }}{{ .Get \u0026#34;align\u0026#34; }}{{ else }}center{{ end }}\u0026#34;\u0026gt; {{ safeHTML .Inner }} \u0026lt;/div\u0026gt; الآن أصبح mermaid.js جاهزاً للاستخدام.\nاستخدام mermaid.js أضف التالي إلى تعريف المقالة 1 marmaid: true أضف التالي إلى نص المقالة المخطط الانسيابي\n1 2 3 4 5 6 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} graph TD A[البداية] --\u0026gt;|الشرط 1| B(الشرط 2) B --\u0026gt; C{الشرط 3} C --\u0026gt;|الشرط 4| D[النهاية] {{\u0026lt;/mermaid\u0026gt;}} النتيجة\ngraph TD A[البداية] --\u003e|الشرط 1| B(الشرط 2) B --\u003e C{الشرط 3} C --\u003e|الشرط 4| D[النهاية] مخطط جانت\n1 2 3 4 5 6 7 8 9 10 11 12 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} gantt section Project تحديد المتطلبات :done, a, 2024-05-25, 5d التصميم الأساسي :done, b, after a, 5d التصميم التفصيلي :done, c, after b, 5d التصنيع :active, d, after c, 10d اختبار الوحدة :crit, e, after d, 5d اختبار التكامل : f, after e, 5d الاختبار الشامل : g, after f, 5d الإصدار :milestone, h, after g, 1d {{\u0026lt;/mermaid\u0026gt;}} النتيجة\ngantt section Project تحديد المتطلبات :done, a, 2024-05-25, 5d التصميم الأساسي :done, b, after a, 5d التصميم التفصيلي :done, c, after b, 5d التصنيع :active, d, after c, 10d اختبار الوحدة :crit, e, after d, 5d اختبار التكامل : f, after e, 5d الاختبار الشامل : g, after f, 5d الإصدار :milestone, h, after g, 1d مخطط التسلسل\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 {{\u0026lt;mermaid align=\u0026#34;center\u0026#34;\u0026gt;}} sequenceDiagram participant user participant view participant controller participant model participant database user-\u0026gt;\u0026gt;view: إدخال المعرف/كلمة المرور view-\u0026gt;\u0026gt;controller: طلب المصادقة controller-\u0026gt;\u0026gt;model: طلب المصادقة model-\u0026gt;\u0026gt;database: طلب المصادقة database--\u0026gt;\u0026gt;model: إرجاع نتيجة المصادقة model--\u0026gt;\u0026gt;controller: إرجاع نتيجة المصادقة controller--\u0026gt;\u0026gt;view: إرجاع نتيجة المصادقة view--\u0026gt;\u0026gt;user: عرض نتيجة المصادقة {{\u0026lt;/mermaid\u0026gt;}} النتيجة\nsequenceDiagram participant user participant view participant controller participant model participant database user-\u003e\u003eview: إدخال المعرف/كلمة المرور view-\u003e\u003econtroller: استعلام ajax controller-\u003e\u003emodel: طلب المصادقة model-\u003e\u003edatabase: إصدار SQL database--\u003e\u003emodel: إرجاع نتيجة SQL model--\u003e\u003econtroller: إرجاع نتيجة طلب المصادقة controller--\u003e\u003eview: إرجاع نتيجة استعلام ajax view--\u003e\u003euser: عرض نتيجة المصادقة هذا كل شيء.\nالمراجع موقع mermaid.js الرسمي موقع تجريبي لمعاينة صيغة mermaid ","date":"2024-05-25T02:18:09+09:00","image":"http://kenji.blog/p/mermaid.js%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/img_2_huc7c099ec3ef9a6ce3efa5818e1489313_12585_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/mermaid.js%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/","title":"تجربة mermaid.js"},{"content":"كيفية التراجع عن git reset إذا قمت بتشغيل git reset عن طريق الخطأ بعد إجراء git commit، فإليك كيفية التراجع عن git reset (كيفية استعادة الحالة وقت إجراء git commit).\nتحقق من معرف الالتزام (commit ID) قبل إعادة الضبط باستخدام git reflog ارجع إلى الحالة قبل إعادة الضبط باستخدام git reset --hard HEAD@{number} هذه كانت طريقة التراجع عن git reset.\n","date":"2024-05-15T23:32:43+09:00","image":"http://kenji.blog/p/git-reset%E3%82%92%E5%8F%96%E3%82%8A%E6%B6%88%E3%81%99%E6%96%B9%E6%B3%95/img_hu1637c23702d7aac8be6c2641e62ebc1a_73066_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D8%AC%D8%B9-%D8%B9%D9%86-git-reset/","title":"كيفية التراجع عن git reset"},{"content":"جعل MS-DOS 4.0 مفتوح المصدر أصدرت شركة مايكروسوفت الكود المصدري لنظام MS-DOS 4.0، والذي تم إصداره قبل حوالي 40 عامًا. إنه مكتوب بالكامل تقريبًا بلغة التجميع 8086.\nمستودع github https://github.com/microsoft/MS-DOS\nمواقع مرجعية جعل MS-DOS 4.0 مفتوح المصدر ","date":"2024-05-05T16:44:28+09:00","image":"http://kenji.blog/p/ms-dos-4.0-%E3%81%AE%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E3%83%BC%E3%82%B9%E5%8C%96/img_hu44e977c98e405f06fee0746ba6885217_23034_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/ms-dos-4-0-open-source/","title":"جعل MS-DOS 4.0 مفتوح المصدر"},{"content":" الشفرة المقروءة (The Art of Readable Code) مبادئ البرمجة (Principles of Programming) المبرمج البراغماتي (The Pragmatic Programmer) التقنيات التي تدعم الويب (Web Technologies) كيفية بناء تطبيقات ويب آمنة كيف تعمل الشبكات (How Networks Work) الدليل الشامل لـ SQL من الخبراء الدليل العملي لـ Docker الدليل الكامل لـ Kubernetes CODE COMPLETE الإصدار الثاني Clean Code: مهارات حرفي البرمجيات الرشيق Clean Architecture: الدليل الحرفي لهيكلة وتصميم البرمجيات تقنيات يجب أن تعرفها قبل أن تصبح مبرمج ألعاب Being Geek لماذا نبني بالبرمجة كائنية التوجه (Object-Oriented) ","date":"2024-05-05T16:03:33+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%88%9D%E5%AD%A6%E8%80%85%E3%81%AB%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E6%9B%B8%E7%B1%8D/img_huefc28c3d74f521b3206dda9fd272911e_636136_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E5%88%9D%E5%AD%A6%E8%80%85%E3%81%AB%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E6%9B%B8%E7%B1%8D/","title":"كتب موصى بها للمهندسين المبتدئين"},{"content":"لقد قمت بإنشاء قالب تقويم Excel (إصدار متوافق مع العطلات الرسمية)! لقد قمت بإنشاء قالب Excel يعرض العطلات في تقويم ذلك الشهر عند إدخال السنة والشهر.\nيرجى تنزيله واستخدامه. التقويم.xlsx\n","date":"2024-05-01T00:15:57+09:00","image":"http://kenji.blog/p/excel%E3%81%AE%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E4%BC%91%E6%97%A5%E5%AF%BE%E5%BF%9C%E7%89%88/img_hu8d7d9eeba53cb2329139f98aded52558_13893_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%82%D8%A7%D9%84%D8%A8-%D8%AA%D9%82%D9%88%D9%8A%D9%85-excel-%D8%A5%D8%B5%D8%AF%D8%A7%D8%B1-%D9%85%D8%AA%D9%88%D8%A7%D9%81%D9%82-%D9%85%D8%B9-%D8%A3%D9%8A%D8%A7%D9%85-%D8%A7%D9%84%D8%B9%D8%B7%D9%84/","title":"قالب تقويم Excel (إصدار متوافق مع العطلات الرسمية)"},{"content":"※ هذه هي خطوات الإعداد لنظام التشغيل Windows 11.\nافتح لوحة التحكم حدد خيارات الطاقة انقر على \u0026ldquo;اختيار ما تفعله أزرار الطاقة\u0026rdquo; انقر على \u0026ldquo;تغيير الإعدادات غير المتوفرة حالياً\u0026rdquo; قم بإلغاء تحديد \u0026ldquo;تشغيل بدء التشغيل السريع (مستحسن)\u0026rdquo; انقر على \u0026ldquo;حفظ التغييرات\u0026rdquo; مرجع \\[Windows 10\\] يرجى إخباري بكيفية تعطيل بدء التشغيل السريع.\n","date":"2024-04-29T19:42:20+09:00","image":"http://kenji.blog/p/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%A2%E3%83%8B%E3%82%BF%E3%81%A7%E6%AF%8E%E5%9B%9E%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%ABdpi%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%8C%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/img_huc496c8f1febcd28bf66466cd5e2648a0_37147_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%A2%E3%83%8B%E3%82%BF%E3%81%A7%E6%AF%8E%E5%9B%9E%E8%B5%B7%E5%8B%95%E6%99%82%E3%81%ABdpi%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%8C%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/","title":"كيفية إصلاح إعادة تعيين إعدادات DPI عند بدء التشغيل مع الشاشات المتعددة"},{"content":"الحصول على أحدث إصدار من مستودع git فقط يمكنك الحصول على أحدث إصدار من المستودع فقط باستخدام الأمر التالي. هذا مفيد إذا كنت ترغب في جلب المستودع بسرعة لتوفير مساحة القرص.\n1 git clone --depth 1 \u0026lt;عنوان URL للمستودع\u0026gt; ","date":"2024-04-27T02:54:12+09:00","image":"http://kenji.blog/p/git%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E6%9C%80%E6%96%B0%E3%81%A0%E3%81%91%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/img_hu2ecde82e40aa31a994850b70302683b4_5304_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/git%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AE%E6%9C%80%E6%96%B0%E3%81%A0%E3%81%91%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B/","title":"الحصول على أحدث إصدار من مستودع git فقط"},{"content":"كيفية إصلاح رسالة الخطأ التالية في GitHub Copilot توقف GitHub Copilot عن العمل في حوالي 19 أبريل 2024. رسالة الخطأ هي كما يلي:\n1 2 [ERROR] [ghostText] [2024-04-21T04:06:46.900Z] Error on ghost text request: (FetchError) unable to verify the first certificate [ERROR] [certificates] [2024-04-21T04:06:46.901Z] Your current Copilot license doesn\u0026#39;t support proxy connections with custom certificates. Please visit https://gh.io/copilot-network-errors to learn more. Original cause: {\u0026#34;type\u0026#34;:\u0026#34;system\u0026#34;,\u0026#34;_name\u0026#34;:\u0026#34;FetchError\u0026#34;,\u0026#34;code\u0026#34;:\u0026#34;UNABLE_TO_VERIFY_LEAF_SIGNATURE\u0026#34;} كيفية الإصلاح يبدو أن هذا الخلل من برنامج ESET. في الإعدادات المتقدمة لـ ESET، قم بإيقاف تشغيل \u0026ldquo;Enable SSL/TLS\u0026rdquo;. المراجع يبدو أن نفس الخطأ يحدث أيضًا في AWS CDK.\nAWS CDK bootstrap certificate warning-error ","date":"2024-04-21T18:47:26+09:00","image":"http://kenji.blog/p/%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A7github-copilot%E3%81%8C%E4%BD%BF%E3%81%88%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hue52485515660c172702881501d13c34d_319675_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D8%B5%D9%84%D8%A7%D8%AD-%D8%AE%D8%B7%D8%A3-%D8%B4%D9%87%D8%A7%D8%AF%D8%A9-github-copilot/","title":"كيفية إصلاح خطأ شهادة GitHub Copilot"},{"content":"\nمقدمة إلى Vim التنزيل والتثبيت https://www.vim.org/download.php\nقم بتنزيل الوحدة وتثبيتها لنظام التشغيل الخاص بك من الموقع أعلاه.\nبالنسبة لنظام التشغيل Windows، من الأفضل اختيار gvim_X.X.X_x64_signed.exe.\nكيفية التشغيل في حالة Windows، يجب تسجيل المجلد الذي يحتوي على vim.exe في مسار متغيرات البيئة Path.\nطريقة التشغيل\n1 vim إذا كنت تريد التشغيل بتحديد اسم ملف\n1 vim filename.txt كيفية الخروج للخروج، اكتب : (نقطتين)، ثم اكتب q، واضغط على Enter\n1 :q إذا قمت بتحديث الملف، فسيتم عرض لم يتم الحفظ منذ آخر تغيير (أضف ! للتجاوز). يمكنك تجاهل التغييرات والخروج بالقوة.\n1 :q! لحفظ الملف والخروج\n1 :wq التالي له نفس المعنى.\n1 :x يمكنك أيضًا الخروج بالضغط على z مرتين مع الاستمرار في الضغط على Shift. (نفس :wq)\nالأوضاع يحتوي Vim على وضع الأوامر ووضع الإدخال. عند تشغيل vim، سيكون في وضع الأوامر، وسيؤدي الضغط على مفتاح i إلى التبديل إلى وضع الإدخال.\nفي وضع الإدخال، يمكنك الكتابة كالمعتاد. للتبديل من وضع الإدخال إلى وضع الأوامر، اضغط على مفتاح ESC.\nإن وجود تبديل الأوضاع هذا هو من خصائص Vim.\nحركة المؤشر والتمرير فيما يلي ملخص لحركة المؤشر والتمرير في وضع الأوامر.\nالمفتاح الوصف h (أو Ctrl+H، BackSpace، ←) الانتقال إلى اليسار j (أو Ctrl+J، N، ↓) الانتقال إلى الأسفل k (أو Ctrl+P، ↑) الانتقال إلى الأعلى l (أو Space، →) الانتقال إلى اليمين + (أو Enter) الانتقال إلى بداية السطر التالي - الانتقال إلى بداية السطر السابق Ctrl+B (أو PageUp) التمرير لأعلى Ctrl+F (أو PageDown) التمرير لأسفل Ctrl+U التمرير لأعلى نصف شاشة Ctrl+D التمرير لأسفل نصف شاشة Ctrl+Y التمرير لأعلى سطراً واحداً Ctrl+E التمرير لأسفل سطراً واحداً z Enter تمرير سطر المؤشر إلى أعلى الشاشة z . تمرير سطر المؤشر إلى وسط الشاشة z - تمرير سطر المؤشر إلى أسفل الشاشة 0 (أو |) نقل المؤشر إلى بداية السطر $ نقل المؤشر إلى نهاية السطر ^ (أو _) نقل المؤشر إلى بداية السطر (باستثناء المسافات وعلامات الجدولة) G (أو :$) نقل المؤشر إلى السطر الأخير :رقم السطر Enter الانتقال إلى السطر المحدد إذا قمت بإدخال مفاتيح الحركة أعلاه بعد رقم، فيمكنك الانتقال عدة مرات بمقدار ذلك الرقم. (على سبيل المثال، كتابة 3j ستنقلك 3 أسطر لأسفل من موضع المؤشر الحالي.)\nأوامر أخرى المفتاح الوصف Ctrl+L إعادة رسم الشاشة Ctrl+G عرض عدد أسطر الملف بأكمله، وموضع المؤشر، وما إلى ذلك ","date":"2024-04-19T22:06:34+09:00","image":"http://kenji.blog/p/vim%E5%85%A5%E9%96%80/img_hu70487bce4333a61ad5b3ba8ed7939499_17904_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/vim-introduction/","title":"مقدمة إلى Vim"},{"content":"الحاجة إلى استدعاء DestroyIcon يجب استدعاء DestroyIcon في الحالات التالية:\nCreateIconFromResourceEx (عند استدعائه بدون علامة LR_SHARED) CreateIconIndirect CopyIcon عند إنشائها بواسطة الوظائف المذكورة أعلاه.\nLoadIcon LoadImage (عند استخدام علامة LR_SHARED) CopyImage (عند استخدام علامة LR_COPYRETURNORG، ويكون المعلمة hImage أيقونة مشتركة) CreateIconFromResource CreateIconFromResourceEx (عند استخدام علامة LR_SHARED) يجب ألا تستدعي الأيقونات التي تم إنشاؤها وتحميلها في الحالات المذكورة أعلاه DestroyIcon.\nمراجع وظيفة DestroyIcon (winuser.h) ","date":"2024-04-19T01:55:17+09:00","permalink":"http://kenji.blog/ar/p/loadicon%E3%81%AFdestroyicon%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E5%BF%85%E8%A6%81%E3%81%AF%E3%81%AA%E3%81%84/","title":"لا يحتاج LoadIcon إلى استدعاء DestroyIcon"},{"content":"مقاطع فيديو لمحاضرات حول الذكاء الاصطناعي التوليدي \u0026ldquo;الذكاء الاصطناعي التوليدي\u0026rdquo; (1) البروفيسور ماسايوكي ناكاو، جامعة طوكيو 2023.9.8 \u0026ldquo;الذكاء الاصطناعي التوليدي\u0026rdquo; (2) البروفيسور كونياشي ساكاي، جامعة طوكيو 2023.10.11 \u0026ldquo;الذكاء الاصطناعي التوليدي\u0026rdquo; (3) البروفيسور يوتاكا ماتسوو، جامعة طوكيو 2024.3.15 ","date":"2024-04-16T02:13:56+09:00","image":"http://kenji.blog/p/%E7%94%9F%E6%88%90ai%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_hu1a8581c4b72be646476cf90db2209d32_686551_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AD%D9%88%D9%84-%D8%A7%D9%84%D8%B0%D9%83%D8%A7%D8%A1-%D8%A7%D9%84%D8%A7%D8%B5%D8%B7%D9%86%D8%A7%D8%B9%D9%8A-%D8%A7%D9%84%D8%AA%D9%88%D9%84%D9%8A%D8%AF%D9%8A/","title":"حول الذكاء الاصطناعي التوليدي"},{"content":"إنشاء رمز الاستجابة السريعة باستخدام curl ملاحظة: الطريقة الموضحة تعيد رمز الاستجابة السريعة الذي تم إنشاؤه على جانب الخادم، لذلك قد يتم تسجيل السجلات. يرجى الحذر عند تحويل المعلومات السرية مثل المعلومات الشخصية إلى رمز الاستجابة السريعة.\nالطريقة 1 هذه هي طريقة إنشاء رمز الاستجابة السريعة في موجه الأوامر. يرجع qrenco.de الاستجابة كنص.\n1 curl qrenco.de/kenji.blog نتيجة الإخراج 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 █████████████████████████████ █████████████████████████████ ████ ▄▄▄▄▄ █ ▄ ▄ █ ▄▄▄▄▄ ████ ████ █ █ █ ▀▀▀██ █ █ ████ ████ █▄▄▄█ █▀▀█▀▄█ █▄▄▄█ ████ ████▄▄▄▄▄▄▄█▄▀ ▀ █▄▄▄▄▄▄▄████ ████▄ █▀▄ ▄▀█▄▀ ▀██▄▀ ▄████ ████▀▀▀█ ▄▄ ▄█▄█▀█▀▄██ ▀████ ████▄▄▄██▄▄█ █▀█ ▄██▀▀█ █████ ████ ▄▄▄▄▄ █▀█ ▀ ▄▀▄▄▄ ▀████ ████ █ █ █▄▄ ▄▀▄▀▄ ██ ▀████ ████ █▄▄▄█ █▀▀█ ▀▄▄▄ ▄▄██████ ████▄▄▄▄▄▄▄█▄▄███▄▄█▄███▄████ █████████████████████████████ █████████████████████████████ المراجع qrenco.de الطريقة 2 يرجع api.qrserver.com صورة.\n1 curl -o qr.png \u0026#34;https://api.qrserver.com/v1/create-qr-code/?size=150x150\u0026amp;data=HelloWorld\u0026#34; نتيجة الإخراج المراجع QR Code Generator ","date":"2024-04-16T00:42:27+09:00","image":"http://kenji.blog/p/curl%E3%81%A7qr%E3%82%B3%E3%83%BC%E3%83%89%E7%94%9F%E6%88%90/img_hub03976e78daddb607d3d46f69887db4b_11127_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%B1%D9%85%D8%B2-%D8%A7%D9%84%D8%A7%D8%B3%D8%AA%D8%AC%D8%A7%D8%A8%D8%A9-%D8%A7%D9%84%D8%B3%D8%B1%D9%8A%D8%B9%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-curl/","title":"إنشاء رمز الاستجابة السريعة باستخدام curl"},{"content":"قائمة الاختصارات مفتاح الاختصار الوصف Ctrl + B غامق Ctrl + I مائل Ctrl + U تسطير Ctrl + E محاذاة للوسط Ctrl + L محاذاة لليسار Ctrl + R محاذاة لليمين Ctrl + ] تكبير حجم الخط Ctrl + [ تصغير حجم الخط Ctrl + C نسخ Ctrl + V لصق Ctrl + X قص Ctrl + Z تراجع Ctrl + Y إعادة Ctrl + A تحديد الكل Shift + مفاتيح الأسهم تحديد النطاق Ctrl + F البحث عن نص Ctrl + H استبدال نص Ctrl + P معاينة الطباعة Ctrl + S حفظ المستند F12 حفظ باسم Ctrl + Home الانتقال إلى بداية المستند Ctrl + End الانتقال إلى نهاية المستند مرجع اختصارات لوحة المفاتيح في Word ","date":"2024-04-07T14:18:51+09:00","image":"http://kenji.blog/p/microsoft-word%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/img_hu52c1b9e3b4195e8df02b1851180b33b3_10388_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/microsoft-word%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/","title":"قائمة اختصارات Microsoft Word"},{"content":"أقدم لكم إضافة متصفح Edge \u0026ldquo;تحديث علامة التبويب التلقائي\u0026rdquo; التي تقوم بتحديث صفحات الويب تلقائيًا.\nتثبيت تحديث علامة التبويب التلقائي تحديث علامة التبويب التلقائي\nقم بالوصول إلى الموقع أعلاه وانقر على تثبيت.\nانقر على إضافة ملحق.\nكيفية الاستخدام بمجرد اكتمال التثبيت، ستتم إضافة رمز إلى أعلى يمين Edge.\nافتح صفحة الويب التي تريد تحديثها تلقائيًا وانقر على الرمز لبدء التحديث التلقائي.\nالجزء المؤطر باللون الأخضر هو الفاصل الزمني للتحديث التلقائي. يرجى تحديد وقت التحديث التلقائي.\nلإيقاف التحديث التلقائي، انقر على الرمز ثم انقر على Stop reloading this tab.\n","date":"2024-04-06T15:36:54+09:00","image":"http://kenji.blog/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E6%8B%A1%E5%BC%B5edge%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3/img_hu57eb7510f8ab42d5a8107b2d3db76a45_3448_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E6%8B%A1%E5%BC%B5edge%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3/","title":"ملحق متصفح تحديث صفحة الويب التلقائي (إضافة Edge)"},{"content":"قائمة اختصارات Visual Studio لقد قمت بتجميع قائمة باختصارات Visual Studio التي أستخدمها بشكل متكرر. من خلال تعلم عمليات لوحة المفاتيح لاختصارات Visual Studio، يمكنك أداء أعمال التطوير بكفاءة. يرجى الاستفادة منها.\n※ تم التأكد في Visual Studio 2022.\nمفتاح الاختصار الوصف F1 عرض التعليمات للكلمة المحددة F2 الانتقال إلى الإشارة المرجعية Ctrl + F2 تسجيل إشارة مرجعية Ctrl + Shift + F2 حذف جميع الإشارات المرجعية F5 بناء وتشغيل (تشغيل التصحيح) Ctrl + F5 بناء وتشغيل (بدون تصحيح) F7 بناء F9 إضافة نقطة توقف إلى سطر المؤشر Ctrl + F9 تعطيل نقطة التوقف في سطر المؤشر Shift + Ctrl + F9 حذف جميع نقاط التوقف F10 تخطي F11 الدخول F12 الانتقال إلى التعريف Ctrl + D تكرار سطر المؤشر Ctrl + X قص السطر إذا لم يكن هناك تحديد Ctrl + Shift + ] تحديد حتى القوس المطابق لجزء المؤشر Alt + مفاتيح الأسهم لأعلى/لأسفل تحريك سطر المؤشر لأعلى/لأسفل Alt + Shift + مفاتيح الأسهم مؤشرات متعددة/تحديد مربع Ctrl + Tab تبديل عرض شفرة المصدر/النافذة Ctrl + Shift + V عرض محفوظات الحافظة Ctrl + K ثم Ctrl + C تحويل سطر المؤشر إلى تعليق Ctrl + K ثم Ctrl + U إلغاء تعليق سطر المؤشر Ctrl + G الانتقال إلى رقم سطر محدد Ctrl + F بحث Ctrl + Shift + F بحث عالمي Ctrl + H استبدال Ctrl + Shift + F استبدال عالمي Ctrl + Tab تبديل عرض شفرة المصدر/النافذة Ctrl + Space إكمال الكلمات Ctrl + Alt + L فتح نافذة مستكشف الحلول Ctrl + Shift + E فتح نافذة عرض الموارد Ctrl + 0 ثم Ctrl + G فتح نافذة التزام Git المراجع اختصارات لوحة المفاتيح في Visual Studio ","date":"2024-04-06T11:27:37+09:00","image":"http://kenji.blog/p/visual-studio-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/img_hue1a55f22c15dca7427db7cd2dfd89735_223690_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/visual-studio-%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E4%B8%80%E8%A6%A7/","title":"قائمة اختصارات Visual Studio"},{"content":"نقدم لكم طريقة لإضافة grep الخاص بـ Hidemaru Editor إلى قائمة النقر بزر الماوس الأيمن في مستكشف الملفات في Windows 10/11.\n※ يرجى ملاحظة أن الخطوات التالية تتضمن تعديل السجل (الريجستري)، لذا يرجى القيام بذلك على مسؤوليتك الخاصة.\nالخطوات افتح الرابط التالي واحفظ الملف في أي مجلد تريده. تسجيل_ريجستري_هيديمارو.reg\nانقر نقراً مزدوجاً على ملف تسجيل_ريجستري_هيديمارو.reg لإضافته إلى السجل. المراجع تنفيذ Hidemaru grep من قائمة النقر بزر الماوس الأيمن للمجلد ","date":"2024-04-03T00:00:46+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%AB%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFgrep%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/img_hu1bfa3588f39c8e6af312f48159d52b67_932_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D8%B6%D8%A7%D9%81%D8%A9-hidemaru-editor-grep-%D8%A5%D9%84%D9%89-%D9%82%D8%A7%D8%A6%D9%85%D8%A9-%D8%A7%D9%84%D9%86%D9%82%D8%B1-%D8%A8%D8%B2%D8%B1-%D8%A7%D9%84%D9%85%D8%A7%D9%88%D8%B3-%D8%A7%D9%84%D8%A3%D9%8A%D9%85%D9%86-%D9%81%D9%8A-%D9%85%D8%B3%D8%AA%D9%83%D8%B4%D9%81-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA/","title":"إضافة Hidemaru Editor grep إلى قائمة النقر بزر الماوس الأيمن في مستكشف الملفات"},{"content":"هل تعرف مفارقة عيد الميلاد؟ سأتحدث عن قصة غريبة قليلاً. \u0026ldquo;احتمالية وجود أشخاص لهم نفس يوم الميلاد\u0026rdquo;، كم تعتقد أنه يجب أن يجتمع من الأشخاص لتصبح عالية؟\nعلى سبيل المثال، السنة فيها 365 يومًا، لذا إذا قيل لك \u0026ldquo;إذا اجتمع 23 شخصًا، فإن احتمالية أن يتطابق عيد ميلاد شخصين هي 50% أو أكثر\u0026rdquo;\u0026hellip; يبدو الأمر نوعًا ما مخالفًا للبديهة، أليس كذلك؟\nولكن هذا بالفعل 50% أو أكثر.\nلماذا يحدث ذلك؟ هذه الظاهرة تسمى \u0026ldquo;مفارقة عيد الميلاد\u0026rdquo;. الاسم هو \u0026ldquo;مفارقة\u0026rdquo;، ولكن لها سبب رياضي سليم.\nإذا كان عدد الأشخاص \u0026ldquo;n\u0026rdquo;، فإن احتمالية ألا يتطابق عيد ميلاد أحد يمكن حسابها بالمعادلة التالية:\n1 P(لا يتطابق أحد) = 365/365 × 364/365 × 363/365 × ... × (365 - n + 1)/365 بطرح ذلك من 1، يظهر \u0026ldquo;احتمالية التطابق مع شخص ما\u0026rdquo;.\nبالنظر إلى النتائج\u0026hellip; عدد الأشخاص احتمالية وجود أشخاص لهم نفس يوم الميلاد 10 أشخاص حوالي 11.7% 20 شخصًا حوالي 41.1% 23 شخصًا حوالي 50.7% (هنا التركيز!) 30 شخصًا حوالي 70.6% 70 شخصًا مذهل حوالي 99.9%! بمعنى آخر، بوجود 23 شخصًا فقط، هناك احتمال أكثر من النصف بأن يتطابق عيد ميلاد شخصين. يبدو أنه يمكن تطبيقه في الفصول الدراسية في المدارس أو اجتماعات العمل أيضًا.\nالخلاصة: التفاوت بين الحدس والرياضيات مثير للاهتمام \u0026ldquo;مفارقة عيد الميلاد\u0026rdquo; هي مثال مثير للاهتمام حيث يختلف حدسنا عن الاحتمالات الرياضية الفعلية. إذا كنت تعرف هذه الأشياء، فقد تتمكن من إثارة الحماس في دردشة صغيرة أو مسابقة!\nروابط مفيدة مفارقة عيد الميلاد (ويكيبيديا) ","date":"2024-04-02T01:20:50+09:00","image":"http://kenji.blog/p/%E3%83%90%E3%83%BC%E3%82%B9%E3%83%87%E3%82%A4%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%81%AF/img_huf1a218b90023063d558c5c810438e753_117620_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%90%E3%83%BC%E3%82%B9%E3%83%87%E3%82%A4%E3%83%91%E3%83%A9%E3%83%89%E3%83%83%E3%82%AF%E3%82%B9%E3%81%A8%E3%81%AF/","title":"ما هي مفارقة عيد الميلاد؟"},{"content":"ما هي أداة القطع Snipping Tool أداة القطع (Snipping Tool) هي أداة لالتقاط الشاشة مدمجة في نظام ويندوز. يمكنك من خلالها قص وحفظ جزء من الشاشة، أو التقاط الشاشة بأكملها، أو تسجيلها.\nكيفية تشغيل أداة القطع يمكنك تشغيلها بشكل رئيسي باستخدام الطرق الثلاث التالية:\nاضغط على مفتاح Win، واكتب Snipping Tool، ثم اضغط على مفتاح Enter. اضغط على مفتاح Win + Shift + S. اضغط على مفتاح Win + R، واكتب snippingtool، ثم اضغط على مفتاح Enter. كيفية استخدام أداة القطع كيفية حفظ صورة الملتقطة كالتالي: حدد علامة الكاميرا. انقر فوق زر جديد. حدد المنطقة التي تريد التقاطها. انقر فوق زر حفظ باسم. أدخل وجهة الحفظ واسم الملف، ثم احفظ. كيفية تسجيل فيديو كالتالي: حدد علامة الفيديو. انقر فوق زر جديد. حدد المنطقة التي تريد التقاطها. انقر فوق زر ابدأ. قم بتسجيل الشاشة. انقر فوق زر إيقاف. انقر فوق زر حفظ باسم. أدخل وجهة الحفظ واسم الملف، ثم احفظ. مراجع استخدام أداة القطع لالتقاط لقطات الشاشة ","date":"2024-04-01T23:19:45+09:00","image":"http://kenji.blog/p/snipping-tool%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/img_hu405fe4bbcac8bf4b2046262eb8f35d4a_18613_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/how-to-use-snipping-tool/","title":"كيفية استخدام Snipping Tool"},{"content":"إليك كيفية إنشاء اختصار لقفل الكمبيوتر.\nيعد ذلك مفيدًا لأنه يمكنك قفل الكمبيوتر عن طريق النقر المزدوج فوق الاختصار الذي تم إنشاؤه على سطح المكتب.\nطريقة الإنشاء 1. انقر بزر الماوس الأيمن على سطح المكتب وحدد جديد \u0026gt; اختصار 2. ستظهر شاشة إنشاء الاختصار، أدخل rundll32.exe user32.dll,LockWorkStation وانقر على التالي 3. أدخل اسم الاختصار قفل الكمبيوتر وانقر على إنهاء 4. تغيير أيقونة الاختصار الذي تم إنشاؤه انقر بزر الماوس الأيمن على الاختصار الذي تم إنشاؤه وحدد خصائص\nانقر على تغيير الأيقونة\nحدد الأيقونة المربعة الصفراء وانقر على موافق ، ثم انقر على موافق مرة أخرى لإغلاق الخصائص\nهذا كل شيء.\nالنقر المزدوج على الاختصار الذي تم إنشاؤه سيؤدي إلى قفل الكمبيوتر.\nيمكنك أيضًا قفل الكمبيوتر بالضغط على مفتاح Win + مفتاح L.\n※ ملاحظة: لن يتم عرض مربع حوار تأكيد قفل الكمبيوتر.\n","date":"2024-04-01T01:37:49+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E3%83%AD%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hud14aa91db8f19c318807d0f2f72ee0fc_128434_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B1-%D9%84%D9%82%D9%81%D9%84-%D8%A7%D9%84%D9%83%D9%85%D8%A8%D9%8A%D9%88%D8%AA%D8%B1/","title":"كيفية إنشاء اختصار لقفل الكمبيوتر"},{"content":"ما هي مشكلة مونتي هول مشكلة مونتي هول هي مشكلة مأخوذة من إحدى الألعاب التي كانت تقام في البرنامج التلفزيوني الأمريكي \u0026ldquo;Let\u0026rsquo;s Make a Deal\u0026rdquo;، وهي كالتالي.\nالشروط المسبقة: يوجد جائزة في أحد الأبواب الثلاثة، بينما البابان الآخران فارغان.\nيختار المشارك باباً واحداً من الأبواب الثلاثة. يقوم المقدم، من بين البابين الآخرين غير الذي اختاره المشارك، بفتح باب واحد فارغ. يُسأل المشارك عما إذا كان يريد تغيير الباب الذي اختاره. في هذا الوقت، المشكلة هي التفكير فيما إذا كان من الأفضل للمشارك تغيير الباب أم لا.\nالحل حل مشكلة مونتي هول هو كالتالي.\nإذا لم يقم المشارك بتغيير الباب الذي اختاره في البداية\nاحتمال الفوز: 1/3 احتمال الخسارة: 2/3 بعد أن يفتح المقدم الباب الفارغ\nإذا لم يغير، احتمال الفوز: 1/3 (لا يتغير عن احتمال الفوز في النقطة 1) إذا غير، احتمال الفوز: 2/3 (احتمال عدم الفوز في النقطة 1) لذلك، من الأفضل للمشارك تغيير الباب لزيادة فرصة الفوز.\nمرجع ويكيبيديا Monty Hall problem ","date":"2024-03-31T23:41:51+09:00","image":"http://kenji.blog/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/img_1_hu20d98afb87b485a440eb6d6beaf3ac5e_189614_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%A2%E3%83%B3%E3%83%86%E3%82%A3%E3%83%9B%E3%83%BC%E3%83%AB%E5%95%8F%E9%A1%8C/","title":"مشكلة مونتي هول"},{"content":"تنزيل micro https://github.com/zyedidia/micro/releases\nافتح الرابط أعلاه، وانقر على Show all XX assets (حيث XX هو رقم)، وقم بتنزيل micro-X.X.XX-win64.zip (حيث X هو رقم). قم بفك ضغط ملف zip وضع جميع الملفات في أي مجلد تريده.\nتعيين متغيرات البيئة لاستخدام micro.exe من موجه الأوامر، ستحتاج إلى تعيين متغيرات البيئة.\nاضغط على مفتاح Win + R ، واكتب sysdm.cpl واضغط على Enter. انقر فوق خصائص النظام في خصائص النظام. انقر على متغيرات البيئة. حدد Path ضمن متغيرات النظام وانقر على تحرير. انقر على جديد وأضف مسار المجلد الذي يحتوي على micro.exe. انقر على موافق لإغلاق جميع مربعات الحوار. أعد تشغيل موجه الأوامر وتحقق مما إذا كان يمكنك تشغيله عن طريق كتابة nano. كيفية استخدام micro عند كتابة micro في موجه الأوامر وتشغيله، ستظهر لك شاشة مشابهة لهذه: تتضمن طرق التشغيل الرئيسية واختصارات لوحة المفاتيح ما يلي:\nاختصار لوحة المفاتيح العملية Ctrl+Q إغلاق الملف Ctrl+S حفظ الملف Ctrl+O فتح ملف Ctrl+A تحديد الكل Ctrl+X قص التحديد Ctrl+C نسخ التحديد Ctrl+V لصق Ctrl+Z تراجع Ctrl+Y إعادة Ctrl+E تنفيذ أمر المحرر مراجع micro ","date":"2024-03-31T21:50:39+09:00","image":"http://kenji.blog/p/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFmicro%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu5c724e25c36dcf3781d5276f98286fd4_13721_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-%D9%85%D8%AD%D8%B1%D8%B1-%D8%A7%D9%84%D9%86%D8%B5%D9%88%D8%B5-micro-%D8%B9%D9%84%D9%89-%D9%86%D8%B8%D8%A7%D9%85-windows/","title":"كيفية تثبيت محرر النصوص micro على نظام Windows"},{"content":"تنزيل nano.exe https://sourceforge.net/projects/nano-for-windows/\nافتح الرابط أعلاه وانقر على Download لتنزيل GNU-Nano_Win32(static).zip. قم بفك ضغط ملف zip وضع nano.exe في أي مجلد تريده.\nلا يدعم الإدخال باللغة اليابانية. (اعتبارًا من 2024/03/31) تعيين متغيرات البيئة لاستخدام nano.exe من موجه الأوامر، يجب عليك تعيين متغيرات البيئة.\nاضغط على مفتاح Win + مفتاح R، واكتب sysdm.cpl ثم اضغط على مفتاح Enter. انقر على خصائص النظام (System Properties). انقر على متغيرات البيئة (Environment Variables). حدد Path تحت متغيرات النظام وانقر على تعديل (Edit). انقر على جديد (New) وأضف مسار nano.exe. انقر على OK لإغلاق جميع مربعات الحوار. أعد تشغيل موجه الأوامر واكتب nano للتحقق مما إذا كان يعمل. كيفية استخدام nano عند كتابة nano وتشغيله، ستظهر الشاشة التالية.\nيتم عرض تفسيرات الاختصارات أسفل الشاشة.\nمعاني الرموز هي كما يلي.\n^ يمثل مفتاح Ctrl. M- يمثل مفتاح Alt. للحفظ والإغلاق، اضغط على Ctrl + S متبوعًا بـ Ctrl + X.\nالمراجع GNU nano ","date":"2024-03-31T18:09:32+09:00","image":"http://kenji.blog/p/cli%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFnano%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_1_hud0bad6678c124835195c96dbf5908709_45668_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/cli%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BFnano%E3%82%92windows%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تثبيت محرر النصوص سطر الأوامر nano على نظام التشغيل Windows"},{"content":"كيفية إصلاح خطأ \u0026lsquo;Temporary failure resolving\u0026hellip;\u0026rsquo; في WSL kenji@MyComputer:~$ sudo apt update [sudo] password for kenji: Err:1 http://archive.ubuntu.com/ubuntu focal InRelease Temporary failure resolving 'archive.ubuntu.com'\nعند ظهور الخطأ أعلاه في WSL، قد يكون إعداد خادم DNS غير صحيح. في بيئتي، تم حل المشكلة باتباع الخطوات التالية:\nقم بتشغيل WSL. قم بتنفيذ sudo nano /etc/resolv.conf. قم بتغيير سطر nameserver إلى ما يلي: nameserver 8.8.8.8 احفظ باستخدام Ctrl + S واخرج باستخدام Ctrl + X. قم بتنفيذ sudo apt update. إذا لم يظهر الخطأ، فقد تم الحل. إذا لم تحل الخطوات أعلاه المشكلة يبدو أن الخطوات أعلاه قد لا تحل المشكلة في بعض الحالات. يرجى الرجوع إلى المقال التالي.\nكيفية حل \u0026lsquo;Temporary failure resolving\u0026hellip;\u0026rsquo; عند تحديث apt في WSL ","date":"2024-03-31T16:57:33+09:00","image":"http://kenji.blog/p/wsl-%E3%81%A7temporary-failure-resolving%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/img_hu6b9065bcca76a2739d7c532080d71efa_118604_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/wsl-%E3%81%A7temporary-failure-resolving%E3%81%A8%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%96%B9%E6%B3%95/","title":"كيفية إصلاح خطأ 'Temporary failure resolving...' في WSL"},{"content":"كيفية الإنهاء من خلال النقر بزر الماوس الأيمن على شريط المهام هذه الطريقة لنظام التشغيل Windows 10. يبدو أن القائمة لا تظهر في Windows 11. إذا قمت بالنقر بزر الماوس الأيمن على شريط المهام مع الاستمرار في الضغط على مفتاحي Shift و Ctrl، فسيظهر إنهاء مستكشف الملفات في القائمة.\nكيفية الإنهاء من إدارة المهام اضغط على مفاتيح Ctrl + Shift + Esc لبدء تشغيل إدارة المهام. حدد التفاصيل. حدد explorer.exe، واضغط على مفتاح Delete، وعندما تُسأل هل تريد إنهاء explorer.exe؟، حدد إنهاء العملية. كيفية الإنهاء من موجه الأوامر اضغط على مفاتيح Win + R، واكتب cmd، ثم اضغط على مفتاح Enter. اكتب taskkill /f /im explorer.exe واضغط على مفتاح Enter. كيفية بدء تشغيل مستكشف الملفات من إدارة المهام اضغط على مفاتيح Ctrl + Shift + Esc لبدء تشغيل إدارة المهام. من قائمة ملف، حدد تشغيل مهمة جديدة. اكتب explorer.exe واضغط على مفتاح Enter. ","date":"2024-03-30T15:40:24+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%97%E3%83%AD%E3%83%BC%E3%83%A9%E3%83%BC%E3%81%AE%E7%B5%82%E4%BA%86%E5%86%8D%E8%B5%B7%E5%8B%95%E6%96%B9%E6%B3%95/img_2_hue735828bd961ff4973e3abea5e21f198_20142_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D9%86%D9%87%D8%A7%D8%A1-%D9%88%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9-%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-%D9%85%D8%B3%D8%AA%D9%83%D8%B4%D9%81-%D8%A7%D9%84%D9%85%D9%84%D9%81%D8%A7%D8%AA/","title":"كيفية إنهاء وإعادة تشغيل مستكشف الملفات"},{"content":"كيفية استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية في ويندوز 11 نقدم لكم طريقة لاستعادة قائمة النقر بزر الماوس الأيمن في ويندوز 11 إلى الإصدار الكلاسيكي.\nافتح محرر التسجيل. اضغط على مفتاح Win + مفتاح R، واكتب regedit، ثم اضغط على مفتاح Enter. انتقل إلى HKEY_CURRENT_USER\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}. إذا لم يكن هذا المفتاح موجودًا، فقم بإنشائه.\nانتقل إلى HKEY_CURRENT_USER\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\\InprocServer32. إذا لم يكن هذا المفتاح موجودًا، فقم بإنشائه.\nتأكد من أن القيمة (الافتراضي) داخل InprocServer32 فارغة.\nأعد تشغيل الكمبيوتر. تحقق من عودة قائمة النقر بزر الماوس الأيمن إلى الإصدار الكلاسيكي. ","date":"2024-03-30T13:13:36+09:00","image":"http://kenji.blog/p/windows-11%E3%81%AE%E5%8F%B3%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%92%E5%BE%93%E6%9D%A5%E7%89%88%E3%81%AB%E6%88%BB%E3%81%99%E6%96%B9%E6%B3%95/img_hub131b7dada89fffcdae45f20639b1ab3_50623_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D8%B3%D8%AA%D8%B9%D8%A7%D8%AF%D8%A9-%D9%82%D8%A7%D8%A6%D9%85%D8%A9-%D8%A7%D9%84%D9%86%D9%82%D8%B1-%D8%A8%D8%B2%D8%B1-%D8%A7%D9%84%D9%85%D8%A7%D9%88%D8%B3-%D8%A7%D9%84%D8%A3%D9%8A%D9%85%D9%86-%D8%A7%D9%84%D9%83%D9%84%D8%A7%D8%B3%D9%8A%D9%83%D9%8A%D8%A9-%D9%81%D9%8A-%D9%88%D9%8A%D9%86%D8%AF%D9%88%D8%B2-11/","title":"كيفية استعادة قائمة النقر بزر الماوس الأيمن الكلاسيكية في ويندوز 11"},{"content":"JetBrains Mono إنه خط برمجة مفتوح المصدر مقدم من JetBrains.\nتنزيل: https://www.jetbrains.com/ja-jp/lp/mono/\nHackGen Hakugen (HackGen) هو خط برمجة تم إنشاؤه من خلال دمج الخط الإنجليزي Hack المخصص للبرمجة مع خط Genjyuu Gothic، وهو خط مشتق من Source Han Sans.\nتنزيل: https://github.com/yuru7/HackGen/releases\nRicty Diminished Ricty Diminished هو خط شقيق لـ Ricty، وهو خط تم إنشاؤه بدمج Inconsolata و Circle M+ 1m باستخدام برنامج نصي لإنشاء Ricty بدلاً من Inconsolata و Migu 1M. نظراً لأنه لا يحتوي على رموز IPA Gothic، فإن عدد رموز الكانجي القابلة للاستخدام قليل، ولكن في المقابل يمكن توزيعه بموجب ترخيص SIL Open Font License.\nتنزيل: https://rictyfonts.github.io/diminished\nCica خط برمجة يستخدم Hack + DejaVu Sans Mono للأحرف والأرقام الإنجليزية والرموز. ويستخدم Rounded Mgen+ للأحرف الأخرى.\nتنزيل: https://github.com/miiton/Cica/releases\nمرجع:\nHack DejaVu Sans Mono Rounded Mgen+ Migu إنه خط مدمج من M+ و IPA.\nتنزيل: https://itouhiro.github.io/mixfont-mplus-ipa/migu/\nOsaka إنه خط يتيح لك استخدام Osaka، وهو خط قياسي في Mac OS، على نظام Windows.\nتنزيل: http://ifs.nog.cc/osakattf.hp.infoseek.co.jp/\nPlemolJP إنه خط برمجة يجمع بين خط IBM Plex Sans JP الياباني مفتوح المصدر الذي أصدرته IBM و IBM Plex Mono من سلسلة Plex الخاصة بـ IBM.\nتنزيل: https://github.com/yuru7/PlemolJP/releases\n","date":"2024-03-30T02:21:31+09:00","image":"http://kenji.blog/p/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E9%9B%86/img_hu5455a1c7ae52190ddcafb3051b00c15b_52757_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9-%D8%AE%D8%B7%D9%88%D8%B7-%D9%84%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D8%A9/","title":"مجموعة خطوط للبرمجة"},{"content":"أقدم لكم كيفية تشغيل محرر Hidemaru باستخدام الأمر «hide». ملاحظة: تم تأكيد عمل هذه الطريقة على Windows 10/11.\nافتح محرر سجل الويندوز (Registry Editor). انتقل إلى HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths. أنشئ مفتاحًا باسم hide.exe في App Paths. ※ الاسم الذي يسبق .exe في اسم المفتاح سيكون اسم الأمر. قم بتعيين مسار الملف التنفيذي لمحرر Hidemaru في (الافتراضي) لمفتاح hide.exe. في بيئتي، كان المسار \u0026quot;C:\\Program Files (x86)\\Hidemaru\\Hidemaru.exe\u0026quot;. أنشئ قيمة سلسلة نصية (String Value) باسم Path في مفتاح hide.exe. قم بتعيين مسار المجلد الذي يحتوي على الملف التنفيذي لمحرر Hidemaru في بيانات Path. في بيئتي، كان المسار \u0026quot;C:\\Program Files (x86)\\Hidemaru\u0026quot;. الآن يمكنك تشغيل محرر Hidemaru باستخدام الأمر hide من خلال نافذة Run التي تظهر بالضغط على مفتاحي Win + R. بالإضافة إلى ذلك، في موجه الأوامر (Command Prompt)، يمكنك تشغيل محرر Hidemaru باستخدام الأمر start hide. 1 2 3 4 5 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\hide.exe] @=\u0026#34;\\\u0026#34;C:\\\\Program Files (x86)\\\\Hidemaru\\\\Hidemaru.exe\\\u0026#34;\u0026#34; \u0026#34;Path\u0026#34;=\u0026#34;\\\u0026#34;C:\\\\Program Files (x86)\\\\Hidemaru\\\\\\\u0026#34;\u0026#34; إذا قمت بحفظ المحتوى أعلاه في ملف .reg وتشغيله، فستتم إضافة الإعدادات إلى سجل الويندوز.\n","date":"2024-03-29T23:45:37+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89hide%E3%81%A7%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95/img_2_hu43898a3aaad9ace099d9a060bc7203e5_68153_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89hide%E3%81%A7%E7%A7%80%E4%B8%B8%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تشغيل محرر Hidemaru باستخدام الأمر «hide»"},{"content":"مشاكل رياضية غير محلولة سأشرح عن بعض المشاكل الرياضية غير المحلولة. على الرغم من أن المشاكل نفسها بسيطة، إلا أن هناك العديد من المشاكل التي لم يتم إثباتها بعد.\nهل يوجد عدد لا نهائي من الأعداد المثالية؟ العدد المثالي هو عدد طبيعي يساوي مجموع قواسمه الموجبة باستثناء نفسه. على سبيل المثال،\n6 له القواسم 1، 2، 3، و 1+2+3=6، لذا فهو عدد مثالي. 28 له القواسم 1، 2، 4، 7، 14، و 1+2+4+7+14=28، لذا فهو عدد مثالي. تم اكتشاف 51 عددًا فقط حتى الآن، وعلى الرغم من أنه يُتوقع وجود عدد لا نهائي منها، إلا أنه لم يتم إثبات ذلك بعد.\nحدسية غولدباخ حدسية غولدباخ هي حدسية تنص على أن كل عدد زوجي أكبر من 2 يمكن التعبير عنه كمجموع عددين أوليين. (هنا، العدد الأولي هو عدد طبيعي ليس له قواسم سوى 1 ونفسه).\nعلى سبيل المثال،\n4=2+2 6=3+3 8=3+5 10=3+7=5+5 المشكلة نفسها بسيطة للغاية، ولكن لم يتم إثباتها بعد.\nفرضية ريمان هي فرضية تنص على أن أصفار دالة زيتا لريمان تقتصر على الأعداد الزوجية السالبة والأعداد المركبة التي يكون جزؤها الحقيقي 1 / 2.\nدالة زيتا لريمان هي دالة $\\zeta$ معرفة على النحو التالي، حيث $s$ هو عدد مركب و $n$ هو عدد طبيعي:\n$$\\zeta(s):=\\sum _{n=1}^{\\infty }{\\frac {1}{n^{s}}}=1+{\\frac {1}{2^{s}}}+{\\frac {1}{3^{s}}}+{\\frac {1}{4^{s}}}+\\cdots$$ ","date":"2024-03-02T22:57:36+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E6%9C%AA%E8%A7%A3%E6%B1%BA%E5%95%8F%E9%A1%8C/img_hub174c33a50b5d9de07ec5dc9c7de1bd4_731181_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%B4%D8%A7%D9%83%D9%84-%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A9-%D8%BA%D9%8A%D8%B1-%D9%85%D8%AD%D9%84%D9%88%D9%84%D8%A9/","title":"مشاكل رياضية غير محلولة"},{"content":"\u0026ldquo;جمعت الكثير من مربعات حوار معلومات الإصدار\u0026rdquo; Windows 11 أولاً، هذه معلومات إصدار Windows 11 التي أستخدمها حاليًا. IntelliJ IDEA (Community Edition) هذه هي البيئة التي أكتب فيها هذه المدونة. Visual Studio Code هذا محرر أستخدمه كثيرًا أيضًا. إنه بسيط بشكل مدهش. Visual Studio هذه هي بيئة التطوير التي أستخدمها لـ C++. LINE(Windows) هذه نسخة Windows من LINE. Paint.NET هذا برنامج تحرير صور. sakuraエディタ هذا محرر نصوص. Google Chrome هذا هو Google Chrome. لم أعد أستخدمه كثيرًا بعد ظهور Edge. Firefox هذا هو Firefox. لم أستخدمه كثيرًا مؤخرًا. Microsoft Edge هذا هو Microsoft Edge. أستخدمه كثيرًا مؤخرًا. OBS Studio هذا هو OBS Studio. لم أستخدمه كثيرًا مؤخرًا. TradingView هذا هو TradingView. أستخدمه مؤخرًا لمشاهدة مخطط الدولار/الين. Spy++ هذا هو Spy++. إنها أداة مضمنة في Windows SDK. depency walker هذا هو depency walker. إنها أداة مضمنة في Windows SDK. resource hacker هذا هو resource hacker. إنها أداة لتحرير واستخراج الموارد من الملفات القابلة للتنفيذ. Microsoft Excel هذا هو Microsoft Excel. bandy cam هذا هو bandy cam. إنها أداة لالتقاط الفيديو. winmerge هذا هو winmerge. إنها أداة لعرض اختلافات الملفات. iTunes هذا هو iTunes. لم أستخدمه كثيرًا مؤخرًا. 秀丸エディタ هذا هو محرر Hidemaru. إنه محرر نصوص. Adobe Photoshop CS6 هذا هو Adobe Photoshop CS6. Adobe Illustrator CS6 هذا هو Adobe Illustrator CS6. ESET NOD32 هذا هو ESET NOD32. NotePad++ هذا هو NotePad++. إنه محرر نصوص. MIFES هذا هو MIFES. لم أستخدمه كثيرًا مؤخرًا. ","date":"2024-03-02T21:32:11+09:00","image":"http://kenji.blog/p/%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E9%9B%86%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F/img_hub829fc9858068bdd622cbafca10cd245_20954_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%81%84%E3%82%8D%E3%82%93%E3%81%AA%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E6%83%85%E5%A0%B1%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%E9%9B%86%E3%82%81%E3%81%A6%E3%81%BF%E3%81%9F/","title":"جمعت الكثير من مربعات حوار معلومات الإصدار"},{"content":"أداة تسجيل الشاشة كفيديو GIF لقد قمت بإنشاء أداة لتسجيل الشاشة وحفظها كرسوم متحركة بصيغة GIF. باستخدام هذه الأداة، يمكنك تسجيل عمليات الشاشة ومشاركتها عبر أدوات الاتصال مثل Microsoft Teams وغيرها.\nطريقة الاستخدام قم بتشغيل الأداة حدد المنطقة المراد تسجيلها. إذا لم يتم التحديد، سيتم تسجيل الشاشة بأكملها. اضغط على زر التسجيل اضغط على زر إيقاف التسجيل سيتم إخراج الرسوم المتحركة بتنسيق GIF في نفس مسار الملف التنفيذي تحميل تحميل\nافتح الرابط أعلاه وانقر على رابط GIFScreenRecorder.exe لتنزيل الملف التنفيذي.\nالكود المصدري GitHub\n","date":"2024-02-08T01:23:01+09:00","image":"http://kenji.blog/p/gif%E3%82%A2%E3%83%8B%E3%83%A1%E7%94%BB%E9%9D%A2%E9%8C%B2%E7%94%BB%E3%83%84%E3%83%BC%E3%83%AB/img_hua1d1e581d2290ce1c516887dff1e6eb0_11957_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/gif%E3%82%A2%E3%83%8B%E3%83%A1%E7%94%BB%E9%9D%A2%E9%8C%B2%E7%94%BB%E3%83%84%E3%83%BC%E3%83%AB/","title":"أداة تسجيل الشاشة كفيديو GIF"},{"content":"ملخص دراسة امتحان PMP هذا ملخص لدراسة امتحان PMP.\nنظرة عامة PMP هي شهادة في إدارة المشاريع. تعتمد هذه الشهادة على الدليل المعرفي لإدارة المشروعات (PMBOK) (الإصدار السابع الأخير). يتكون امتحان PMP من 180 سؤالاً في 230 دقيقة، ولكن 5 منها أسئلة تجريبية غير محسوبة، لذلك يجب عليك الإجابة بشكل صحيح على 106 سؤالاً أو أكثر من أصل 175 سؤالاً للنجاح. الإجابات في الغالب تكون اختيار من متعدد (4 خيارات)، لكن بعضها يحتوي على 5 خيارات أو إجابات متعددة.\nالقيادة الخادمة (Servant Leadership) أسلوب قيادة يدعم الفريق من أسفل بدلاً من إعطاء الأوامر من أعلى.\nالمبادئ العشرة للقيادة الخادمة (الخصائص) الاستماع (Listening) التعاطف (Empathy) الشفاء (Healing) الوعي (Awareness) الإقناع (Persuasion) بناء المفاهيم (Conceptualization) التبصر (Foresight) الوكالة (Stewardship) الالتزام بنمو الأفراد (Commitment to the growth of people) بناء المجتمع (Building community) القيم الأربع لبيان أجايل نحن نكتشف طرقًا أفضل لتطوير البرمجيات من خلال القيام بذلك ومساعدة الآخرين على القيام به. من خلال هذا العمل وصلنا إلى تقدير:\nالأفراد والتفاعلات فوق العمليات والأدوات البرمجيات الصالحة للاستعمال فوق التوثيق الشامل تعاون العملاء فوق التفاوض على العقود الاستجابة للتغيير فوق اتباع خطة بمعنى، بالرغم من وجود قيمة في العناصر الموجودة على اليسار، إلا أننا نقدر العناصر الموجودة على اليمين بشكل أكبر.\nبيان أجايل\nالمبادئ الاثنا عشر لبيان أجايل أولويتنا القصوى هي إرضاء العميل من خلال التسليم المبكر والمستمر لبرمجيات ذات قيمة. نرحب بتغيير المتطلبات، حتى في وقت متأخر من التطوير. تسخر عمليات أجايل التغيير لصالح الميزة التنافسية للعميل. تسليم برمجيات صالحة للاستعمال بشكل متكرر، من أسبوعين إلى شهرين، مع تفضيل النطاق الزمني الأقصر. يجب أن يعمل أصحاب الأعمال والمطورون معًا يوميًا طوال فترة المشروع. بناء المشاريع حول أفراد متحمسين. امنحهم البيئة والدعم الذي يحتاجون إليه، وثق بهم لإنجاز المهمة. الطريقة الأكثر كفاءة وفعالية لنقل المعلومات إلى فريق التطوير وداخله هي المحادثة وجهاً لوجه. البرمجيات الصالحة للاستعمال هي المقياس الأساسي للتقدم. عمليات أجايل تشجع التطوير المستدام. يجب أن يكون الرعاة والمطورون والمستخدمون قادرين على الحفاظ على وتيرة ثابتة إلى أجل غير مسمى. الاهتمام المستمر بالتميز التقني والتصميم الجيد يعزز المرونة. البساطة (فن تعظيم كمية العمل غير المنجز) ضرورية. أفضل الهيكليات والمتطلبات والتصميمات تنبثق من فرق ذاتية التنظيم. على فترات منتظمة، يتأمل الفريق في كيفية أن يصبح أكثر فعالية، ثم يضبط ويعدل سلوكه وفقًا لذلك. مبادئ بيان أجايل\nالمصطلحات الملحمة (Epic) قصة المستخدم (User Story) المهمة (Task) سجل تراكم المنتج (Product Backlog) مالك المنتج (Product Owner) أصحاب المصلحة (Stakeholder) دليل ممارسات أجايل (Agile Practice Guide) التطوير الخالي من الهدر (Lean Development) كانبان (Kanban) سلسلة القيمة (Value Chain) التكلفة الفعلية (AC) القيمة المكتسبة (EV) القيمة المخططة (PV) تحليل القيمة المكتسبة (EVA) مؤشر أداء الجدول الزمني (SPI = EV / PV) مؤشر أداء التكلفة (CPI = EV / AC) إدارة القيمة المكتسبة (EVM) الميزانية عند الاكتمال (BAC) التقدير حتى الاكتمال (ETC) التقدير عند الاكتمال (EAC) هيكل وظيفي هيكل مصفوفة هيكل مشروعي القيادة الخادمة (Servant Leadership) نموذج توكمان (التشكيل، العصف، وضع المعايير، الأداء، الانفضاض) ميثاق الفريق (Team Charter) بوكر التخطيط (Planning Poker) المراجعة الاسترجاعية (Retrospective) الفريق الافتراضي (Virtual Team) ميثاق المشروع (Project Charter) الصراع (6 طرق للتعامل: المواجهة/حل المشكلات، التعاون، التسوية، التهدئة، الإجبار، الانسحاب/التجنب) تخطيط تيار القيمة (Value Stream Mapping) التوجيه (Mentoring) التدريب (Coaching) التدريب (Training) نظرية X و Y لدوغلاس ماكجريجور تحليل SWOT نموذج SECI PDCA, PDSA تحليل PESTLE VUCA طريقة مونت كارلو تحليل شجرة القرارات القيمة النقدية المتوقعة (EMV) صافي نقاط الترويج (NPS) تحليل التكلفة والمنفعة (Cost-Benefit Analysis) مراجعة السبرينت (Sprint Review) إدارة الإصدارات (Release Management) بيان العمل (SOW) بيان عمل المشتريات (P-SOW) طلب معلومات (RFI) طلب اقتراح (RFP) عقد السعر الثابت (FP) عقد الوقت والمواد (T\u0026amp;M) عقد استرداد التكاليف (CR) عقد السعر الثابت مع حافز (FPIF) زحف النطاق (Scope Creep) تحليل كانو (Kano Model) طريقة توزيع التمويل طريقة 100 نقطة طريقة MoSCoW مصفوفة التتبع (Traceability Matrix) قاموس هيكل تجزئة العمل (WBS Dictionary) السرعة (Velocity) مخطط السرعة (Velocity Chart) مصفوفة المشاركة (غير مدرك، مقاوم، محايد، داعم، قيادي) بوابة المرحلة (Phase Gate) مشعاع المعلومات (Information Radiator) مخطط الإنجاز (Burndown Chart) مخطط الإنجاز التصاعدي (Burnup Chart) مخطط التدفق التراكمي (CFD) الجودة، التكلفة، التسليم (QCD) النموذج الحلزوني (Spiral) السلسلة الحرجة (Critical Chain) ميزة (Feature) التكرار / السبرينت (Iteration / Sprint) تكراري (Iterative) تزايدي (Incremental) الزيادة (Increment) المرونة (Resilience) الإشراف (Stewardship) التصعيد (Escalation) الاحتفاظ، المشكلة، المحاولة (KPT) مصفوفة RACI مكتب إدارة المشاريع (PMO) الإيقاع (Cadence) التخصيص (Tailoring) المستويات العصبية المنطقية دراسة الجدوى (Business Case) تحليل الاتجاهات (Trend Analysis) خطة إدارة الجودة عملية الحوكمة (Governance Process) مالك المنتج (Product Owner) راعي المشروع (Project Owner) مدير المشروع (Project Manager) قائد المشروع (Project Leader) عضو المشروع (Project Member) النهج الهجين (Hybrid Approach) المنتج القابل للتطبيق بالحد الأدنى (MVP) مراجعة التكرار (Iteration Review) ورشة عمل (Workshop) خطة إدارة فوائد المشروع مؤشرات الأداء الرئيسية (KPI) في الموقع (On-site) التقدير التناظري (Analogous Estimating) التقدير بثلاث نقاط (Three-point estimating) التقدير البارامتري (Parametric Estimating) مراجعة المشروع (Project Review) نهج الانفجار العظيم (Big Bang Approach) طريقة تطوير الأنظمة الديناميكية (DSDM) قانون بروكس (Brooks\u0026rsquo;s law) نهج الانفجار العظيم سجل المخاطر (Risk Register) القيادة الموقفية (SL) الكفاءة (Competence) الالتزام (Commitment) المراجع دليل سكرم صفحة PMI ECO دليل ممارسات أجايل ميثاق الأخلاقيات والسلوك المهني لمعهد إدارة المشاريع مواد الدراسة دورة استراتيجية لاجتياز امتحان PMP® من المحاولة الأولى! (2021) يتوافق مع أجايل ","date":"2024-02-04T18:41:31+09:00","image":"http://kenji.blog/p/pmp%E5%8B%89%E5%BC%B7/img_hu67a0961bf8e284d45690ac9cdb09e5b3_16702_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/pmp%E5%8B%89%E5%BC%B7/","title":"دراسة PMP"},{"content":"ملخص ملاحظات حول الكوارث الطبيعية التي حدثت في اليابان\nزلزال شبه جزيرة نوتو في 1 يناير 2024 ","date":"2024-01-07T00:50:09+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/img_hue649e8d0b3bd837ea85e155e108b15fd_273208_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E6%97%A5%E6%9C%AC%E3%81%AE%E7%81%BD%E5%AE%B3/","title":"كوارث اليابان"},{"content":"الأعشاب السبعة سيري (قطرة الماء) نازونا (كيس الراعي) غوغيو (عشبة القد) هاكوبيرا (حشيشة القزاز) هوتوكينوزا (نيبلوورت) سوزونا (لفت) سوزوشيرو (فجل) ","date":"2024-01-06T22:22:00+09:00","image":"http://kenji.blog/p/%E4%B8%83%E8%8D%89%E7%B2%A5%E3%81%AE%E3%83%AC%E3%82%B7%E3%83%94/img_hu3e148c57f6499065259203ce3bd1c8c5_295252_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%88%D8%B5%D9%81%D8%A9-%D8%B9%D8%B5%D9%8A%D8%AF%D8%A9-%D8%A7%D9%84%D8%A3%D8%B9%D8%B4%D8%A7%D8%A8-%D8%A7%D9%84%D8%B3%D8%A8%D8%B9%D8%A9/","title":"وصفة عصيدة الأعشاب السبعة"},{"content":"موسيقى يابانية موصى بها チューリップ - 青春の影 イルカ - なごり雪 河島英五 - 酒と泪と男と女 Orangestar - Surges 竹内まりや - Plastic Love RADWIMPS - 前前前世 BEGIN - 島人ぬ宝 ザ・ブルーハーツ - 情熱の薔薇 荒井由実 - ルージュの伝言 Begin - 海の声 荒井由実 - ひこうき雲 Love is Over - 欧陽菲菲 クラムボン - 波よせて RADWIMPS - スパークル かりゆし58 - アンマー かりゆし58 - オワリはじまり テレサ・テン - 時の流れに身をまかせ 宇多田ヒカル『One Last Kiss』 不可思議/wonderboy - Pellicule (Official Music Video) Kamen Rider Black RX - Opening Song たしかなこと / 小田和正 - Covered by パクユナ 【Japanese healing song】Hana／Kosuke Atari（covered by Leah） 「真夜中のドア〜stay with me」/ 松原みき Official Lyric Video Midnight Pretenders Anri - Last Summer Whisper 1985 - The Blue Hearts BUMP OF CHICKEN - supernova チューリップ　心の旅　1972 小さな恋のうた ASKA - はじまりはいつも雨 (Official Music Video) キリンジ - エイリアンズ あの日の空よ - 南こうせつ ","date":"2024-01-06T04:11:01+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E9%82%A6%E6%A5%BD/img_hub840e0bd8da1fd2845b1fe157b13d9d8_1067024_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D9%84%D9%85%D9%88%D8%B3%D9%8A%D9%82%D9%89-%D8%A7%D9%84%D9%8A%D8%A7%D8%A8%D8%A7%D9%86%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%B6%D9%84%D8%A9/","title":"الموسيقى اليابانية المفضلة"},{"content":"موسيقى غربية موصى بها Keane - Somewhere Only We Know Ben E. King - Stand By Me The Beatles - Hey Jude The Mamas \u0026amp; The Papas - California Dreamin' Ed Sheeran - Shape of You Mark Ronson ft. Bruno Mars – Uptown Funk Sugar - Maroon 5 Bette Midler - The Rose Green Day - Basket Case Coldplay - Viva La VidaViva La Vida Maroon 5 - Memories (Lyrics) Dido - Thank You (Official Video) Bob Dylan - Blowin\u0026rsquo; The Wind Coldplay - Yellow Eric Clapton - Tears In Heaven B. J. Thomas - Raindrops Keep Fallin\u0026rsquo; on My Head (Stereo / Lyrics) Take Me Home, Country Roads Simon \u0026amp; Garfunkel - Mrs. Robinson (Audio) Taylor Swift - Love Story (Live on Letterman) Wiz Khalifa - See You Again ft. Charlie Puth [Official Video] Furious 7 Soundtrack The Top (Extended Mix) Something Just Like This Feelings Yesterday Once More Carpenters - Top Of The World I Need To Be In Love - Carpenters Bob Marley \u0026amp; The Wailers \u0026ldquo;Three Little Birds\u0026rdquo; Alan Walker - All Falls Down (feat. Noah Cyrus with Digital Farm Animals) Alan Walker - Darkside (feat. Au/Ra and Tomine Harket) Alan Walker - Alone Alan Walker - Sing Me To Sleep Alan Walker - Faded killing me softly with his song a-ha - Take On Me (Official Video) ","date":"2024-01-05T00:14:22+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%B4%8B%E6%A5%BD/img_hued679cc884753e5576b95c5f8e6f029a_283063_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D9%84%D9%85%D9%88%D8%B3%D9%8A%D9%82%D9%89-%D8%A7%D9%84%D8%BA%D8%B1%D8%A8%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%B6%D9%84%D8%A9/","title":"الموسيقى الغربية المفضلة"},{"content":"تثبيت PowerToys من موجه الأوامر إليك كيفية تثبيت PowerToys من موجه الأوامر.\n1 winget install Microsoft.PowerToys --source winget إلغاء تثبيت PowerToys من موجه الأوامر 1 winget uninstall --name PowerToys ","date":"2023-09-30T21:23:00+09:00","image":"http://kenji.blog/p/powertoys%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/img_hud87e455d0958ca41a83ffdf977dac7c2_37972_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/powertoys%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/","title":"تثبيت PowerToys من موجه الأوامر"},{"content":"لنحترم الآخرين لنحترم من يستطيعون فعل ما لا نستطيع فعله\nفي المجتمع، يوجد بشكل مفاجئ الكثير من الأشخاص الذين يصنفون الوظائف والمناصب ولا يظهرون الاحترام\nلنحترم من يقومون بأعمال لا يمكننا القيام بها، بغض النظر عن طبيعة العمل\nأريد أن أبقي هذا في ذهني\n","date":"2023-08-01T23:42:31+09:00","image":"http://kenji.blog/p/%E8%87%AA%E5%88%86%E3%81%AB%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E4%BA%BA%E3%81%AB%E6%95%AC%E6%84%8F%E3%82%92%E6%89%95%E3%81%8A%E3%81%86/img_hu0ec845f1b3d93c1f1262f8f9c2fb19a8_357395_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%84%D9%86%D8%AD%D8%AA%D8%B1%D9%85-%D9%85%D9%86-%D9%8A%D8%B3%D8%AA%D8%B7%D9%8A%D8%B9%D9%88%D9%86-%D9%81%D8%B9%D9%84-%D9%85%D8%A7-%D9%84%D8%A7-%D9%86%D8%B3%D8%AA%D8%B7%D9%8A%D8%B9-%D9%81%D8%B9%D9%84%D9%87/","title":"لنحترم من يستطيعون فعل ما لا نستطيع فعله"},{"content":"سبلاتون 2 ربما تكون سبلاتون 2 هي اللعبة التي لعبتها لأطول فترة في حياتي. لم ألعب وضع القصة تقريبًا، لكن التوفيق في المباريات عبر الإنترنت بنظام 4 ضد 4 مبني بشكل جيد جدًا، حيث أستطيع اللعب ضد أشخاص في نفس مستوى مهارتي، مما يمنحها متعة لا تجعلك تشعر بالملل. من الممتع أيضًا قراءة تحركات الخصوم والحلفاء للتفكير في استراتيجيات للفوز.\nالأسلحة الأسلحة التي أستخدمها غالبًا هي، بالترتيب: \u0026ldquo;Squeezer Foil\u0026rdquo;، \u0026ldquo;Splattershot Jr.\u0026quot;، \u0026ldquo;Splat Roller\u0026rdquo;، و\u0026quot;Flingza Roller Foil\u0026rdquo;. \u0026ldquo;Splattershot Jr.\u0026rdquo; هو سلاح للمبتدئين، وكنت أستخدمه كثيرًا في البداية.\nنقاط الحبر لكل منها موضحة أدناه.\nالسلاح نقاط الحبر Flingza Roller 6,636,594p Splat Roller 6,200,629p Splattershot Jr. 4,211,759p Squeezer Foil 744,678p Splattershot 301,238p عن المستويات أشعر أنني أتنقل بين A+ و S+، وأستمر في حالة لا أستطيع فيها الصعود إلى قمة S+، ولكنني أستمتع باللعب بدلاً من محاولة الصعود إلى القمة. (إذا أصبحت في مرتبة عالية جدًا، سيصبح الخصوم أقوى وسيكون هناك توتر، مما يقلل من المتعة)\nوقت اللعب لقد تجاوز وقت اللعب لدي 2500 ساعة.\nأهدافي المستقبلية أريد الحفاظ على مستوى لعبي والاستمتاع، ولكنني أريد الوصول إلى الحد الأقصى للمال والعتاد. منذ إصدار سبلاتون 3، زادت أوقات الانتظار أو أصبحت غير قادر على العثور على مباريات، لذا أود أن أستمر في اللعب وأنا آمل ألا يقل عدد اللاعبين أكثر من ذلك.\n","date":"2023-08-01T00:26:30+09:00","image":"http://kenji.blog/p/%E3%82%B9%E3%83%97%E3%83%A9%E3%83%88%E3%82%A5%E3%83%BC%E3%83%B32/img_hu177387d05aedc7553df9576fd3706d02_192717_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B3%D8%A8%D9%84%D8%A7%D8%AA%D9%88%D9%86-2/","title":"سبلاتون 2"},{"content":"حول جائزة Microsoft MVP (2023-2024) لقد حصلت مؤخرًا على جائزة Microsoft MVP (2023-2024). هذا هو العام السابع على التوالي منذ عام 2017 الذي أحصل فيه على هذه الجائزة.\nالفئة التي فزت بها هي Developer Technologies .\nبالنظر إلى أنشطتي السابقة، فقد قمت بما يلي:\nنشر الكود على GitHub مشاركة المعلومات التقنية على المدونة و وسائل التواصل الاجتماعي (مثل Twitter) النشر في منتدى MSDN تقديم ملاحظات حول منتجات مايكروسوفت سأستمر في كتابة مقالات أفضل ومشاركة المعلومات في المستقبل.\nشكرا جزيلا لكم.\n","date":"2023-07-31T19:15:14+09:00","image":"http://kenji.blog/p/microsoft-mvp%E5%8F%97%E8%B3%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A62023-2024/img_hua5cba2ce9936d80b2181232333db0622_19957_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/microsoft-mvp%E5%8F%97%E8%B3%9E%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A62023-2024/","title":"حول جائزة Microsoft MVP (2023-2024)"},{"content":"مسائل الإنشاء الثلاث في اليونان القديمة عند إعطاء دائرة، بناء مربع له نفس مساحة تلك الدائرة (مسألة تربيع الدائرة) عند تحديد زاوية اختيارية، تقسيمها إلى ثلاثة أقسام متساوية (مسألة تثليث الزاوية) عند إعطاء مكعب، بناء مكعب له ضعف حجم ذلك المكعب (مسألة مضاعفة المكعب) حلزون أرخميدس على مستوى مستو، قم بتدوير نصف المستقيم OB حول نقطة ثابتة O بسرعة منتظمة. بافتراض أن الموضع الأولي هو OA، تبدأ النقطة P في التحرك من O في نفس الوقت الذي تبدأ فيه في التحرك من OA، وتتحرك على طول OB بسرعة ثابتة، فإن الخط الذي ترسمه النقطة P هو حلزون أرخميدس.\nمبرهنة بابوس الدُحروجة محارة نيكوميدس كيسويد ديوكليس طريقة المماس لفيرما طريقة الناظم لديكارت التسلسل الزمني السنة الحدث حوالي 3400 قبل الميلاد السومريون يستخدمون عملات طينية بديلة للحساب حوالي 3000 قبل الميلاد ظهور رياضيات الهيروغليفية في مصر حوالي 2800 قبل الميلاد حضارة وادي السند تستخدم أوزاناً ومقاييس تعتمد على النظام العشري حوالي 2700 قبل الميلاد المصريون يستخدمون الحبال وثلاثيات فيثاغورس للتحقق من الزوايا حوالي 2500 قبل الميلاد اكتشاف المعداد، وهو أداة تستخدم للحساب حوالي 2500 قبل الميلاد المراجع تاريخ الرياضيات ","date":"2023-07-22T15:25:10+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E6%AD%B4%E5%8F%B2/img_hu67324d5a4a949c1841dc5158adcb7086_428375_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D8%A7%D8%B1%D9%8A%D8%AE-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A7%D8%AA/","title":"تاريخ الرياضيات"},{"content":"حول كرة التتبع Deft Pro M-DPT1MRBK من Elecom لقد مر حوالي أسبوع منذ أن اشتريت كرة التتبع \u0026ldquo;Deft Pro M-DPT1MRBK\u0026rdquo; من Elecom ، لذا سأقوم بمراجعة تجربتي معها.\nالميزات الرئيسية\nعدد الأزرار كبير (8 أزرار) يمكن توصيله بـ 3 طرق: سلكي، مستقبل لاسلكي، وبلوتوث حجم الكرة كبير (قطر متوسط 44 ملم) سعر الشراء على أمازون: 7,012 ين (اعتبارًا من 2 مايو 2021) الإيجابيات بالمقارنة مع الماوس، ليست هناك حاجة لتحريك المعصم، مما يقلل العبء على المعصم نظرًا لأن عدد الأزرار كبير، يمكنك تعيين وظائف مختلفة للأزرار حاليًا أقوم بتعيينها كما هو موضح أعلاه. يمكنك أيضًا تغيير تعيينات الأزرار لكل تطبيق. ※ يتطلب تعيين الأزرار تثبيت برنامج مخصص. نظرًا لأن الكرة كبيرة، فمن السهل نسبيًا إجراء حركات دقيقة بين كرات التتبع السلبيات يتراكم الغبار حول كرة التتبع، لذلك يجب إزالة الكرة وتنظيفها بانتظام (مرة واحدة كل بضعة أيام) نظرًا لأن الشعور التشغيلي يختلف عن الماوس (تحريك المؤشر بالسبابة والوسطى، وتشغيل عجلة الماوس بالإبهام)، يستغرق الأمر وقتًا للتعود عليه كتبت أعلاه أنه من السهل القيام بحركات دقيقة، لكن لا يزال من الصعب تحريك المؤشر بوحدة بكسل واحدة باستخدام كرة التتبع لا يمكن تشغيل العجلة أثناء الضغط على الزر الأيسر (على سبيل المثال، عند الرغبة في التكبير/التصغير أثناء تحديد نطاق في برنامج الرسام) في الختام، أعتقد أنها من بين كرات التتبع الأغلى ثمناً، ولكن بشكل عام من السهل جدًا تشغيلها، وأعتقد أن العمل أصبح أكثر كفاءة. آمل أن يكون هذا مفيدًا لأولئك الذين يفكرون في شرائها.\n","date":"2023-05-02T23:28:33+09:00","image":"http://kenji.blog/p/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%83%9C%E3%83%BC%E3%83%ABdeft-prom-dpt1mrbk%E3%81%AE%E3%81%99%E3%81%99%E3%82%81/img_hue224b6b6b3d7da0ebda5f0b37d429b68_231359_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D9%88%D8%B5%D9%8A%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D9%83%D8%B1%D8%A9-%D8%A7%D9%84%D8%AA%D8%AA%D8%A8%D8%B9-deft-pro-m-dpt1mrbk/","title":"توصية باستخدام كرة التتبع Deft Pro (M-DPT1MRBK)"},{"content":"ما هو wxWidgets wxWidgets هي مكتبة واجهة مستخدم رسومية بلغة C++ تعمل على أنظمة أساسية مثل Windows و Mac و Linux و Android و iOS.\nتثبيت wxWidgets افتح https://www.wxwidgets.org/downloads/ وقم بتنزيل Windows Installer. قم بتشغيل wxMSW-3.2.2.1-Setup.exe للتثبيت. من المجلد المثبت، افتح \u0026ldquo;C:\\wxWidgets-3.2.2.1\\build\\msw\\wx_vc17.sln\u0026rdquo;. بعد فتح wx_vc17.sln ، حدد Build \u0026gt; Batch Build. انقر فوق الزر Select All ثم انقر فوق الزر Rebuild. بمجرد اكتمال البناء، أغلق Visual Studio مؤقتاً. إنشاء مشروع مثال افتح Visual Studio. حدد File \u0026gt; New \u0026gt; Project. حدد Windows Desktop Application (العلامات هي C++، Windows، Desktop). أدخل wxWidgetsSample في Project name. انقر على Create. انقر بزر الماوس الأيمن على wxWidgetsSample وحدد Properties. أضف C:\\wxWidgets-3.2.2.1\\include و C:\\wxWidgets-3.2.2.1\\include\\msvc إلى Configuration Properties \u0026gt; C/C++ \u0026gt; Additional Include Directories. أضف C:\\wxWidgets-3.2.2.1\\lib\\vc_x64_lib إلى Configuration Properties \u0026gt; Linker \u0026gt; Additional Library Directories. افتح wxWidgetsSample.cpp واستبدله بالكود أدناه. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 #pragma comment(linker,\u0026#34;\\\u0026#34;/manifestdependency:type=\u0026#39;win32\u0026#39; name=\u0026#39;Microsoft.Windows.Common-Controls\u0026#39; version=\u0026#39;6.0.0.0\u0026#39; processorArchitecture=\u0026#39;*\u0026#39; publicKeyToken=\u0026#39;6595b64144ccf1df\u0026#39; language=\u0026#39;*\u0026#39;\\\u0026#34;\u0026#34;) #include \u0026lt;wx/wxprec.h\u0026gt; #ifndef WX_PRECOMP #include \u0026lt;wx/wx.h\u0026gt; #endif class MyApp : public wxApp { public: virtual bool OnInit(); }; class MyFrame : public wxFrame { public: MyFrame(); private: void OnHello(wxCommandEvent\u0026amp; event); void OnExit(wxCommandEvent\u0026amp; event); void OnAbout(wxCommandEvent\u0026amp; event); }; enum { ID_Hello = 1 }; wxIMPLEMENT_APP(MyApp); bool MyApp::OnInit() { MyFrame* frame = new MyFrame(); frame-\u0026gt;Show(true); return true; } MyFrame::MyFrame() : wxFrame(NULL, wxID_ANY, \u0026#34;Hello World\u0026#34;) { wxMenu* menuFile = new wxMenu; menuFile-\u0026gt;Append(ID_Hello, \u0026#34;\u0026amp;Hello...\\tCtrl-H\u0026#34;, \u0026#34;Help string shown in status bar for this menu item\u0026#34;); menuFile-\u0026gt;AppendSeparator(); menuFile-\u0026gt;Append(wxID_EXIT); wxMenu* menuHelp = new wxMenu; menuHelp-\u0026gt;Append(wxID_ABOUT); wxMenuBar* menuBar = new wxMenuBar; menuBar-\u0026gt;Append(menuFile, \u0026#34;\u0026amp;File\u0026#34;); menuBar-\u0026gt;Append(menuHelp, \u0026#34;\u0026amp;Help\u0026#34;); SetMenuBar(menuBar); wxButton* button1 = new wxButton(this, ID_Hello, _(\u0026#34;Hello\u0026#34;), wxPoint(20, 20), wxSize(100, 32)); Connect(ID_Hello, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnHello)); wxButton* button2 = new wxButton(this, wxID_ABOUT, _(\u0026#34;About\u0026#34;), wxPoint(20, 60), wxSize(100, 32)); Connect(wxID_ABOUT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnAbout)); wxButton* button3 = new wxButton(this, wxID_EXIT, _(\u0026#34;Exit\u0026#34;), wxPoint(20, 100), wxSize(100, 32)); Connect(wxID_EXIT, wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(MyFrame::OnExit)); CreateStatusBar(); SetStatusText(\u0026#34;Welcome to wxWidgets!\u0026#34;); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnHello, this, ID_Hello); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnAbout, this, wxID_ABOUT); Bind(wxEVT_MENU, \u0026amp;MyFrame::OnExit, this, wxID_EXIT); } void MyFrame::OnExit(wxCommandEvent\u0026amp; event) { Close(true); } void MyFrame::OnAbout(wxCommandEvent\u0026amp; event) { wxMessageBox(\u0026#34;This is a wxWidgets\u0026#39; Hello world sample\u0026#34;, \u0026#34;About Hello World\u0026#34;, wxOK | wxICON_INFORMATION); } void MyFrame::OnHello(wxCommandEvent\u0026amp; event) { wxLogMessage(\u0026#34;Hello world from wxWidgets!\u0026#34;); } عند البناء والتشغيل، ستفتح نافذة مثل هذه. مراجع يتم توفير مشروع المثال أدناه. wxWidgetsSample\nالموقع الرسمي لعبة باستخدام C++ و wxWidgets هذا كل شيء.\n","date":"2023-04-18T00:18:22+09:00","image":"http://kenji.blog/p/wxwidgets-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB/img_hud707912b3d08e9053ad61da0782a9b23_168133_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/wxwidgets-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB/","title":"مثال باستخدام wxWidgets"},{"content":"الأفلام التي أريد مشاهدتها (تحقق منها عند مشاهدتها) ماكيا: عندما تزهر زهرة الوعد أستاذ ومعادلته المحبوبة حروب الصيف أرقام مخفية غود ويل هانتينغ عقل جميل نظرية كل شيء الرجل الذي عرف اللانهاية هوكينغ (بينيديكت كامبرباتش) تينتشي: الفلكي الساموراي باي 21 آي كيو (I.Q.) إثبات (Proof) 3 بلهاء بوفالو \u0026lsquo;66 برتقالة آلية باك درافت طفل أساكوسا توب غان ذا ماتريكس: ريزريكشنز أنا أسطورة شيفرة دا فينشي الشبكة الاجتماعية شتاينز;غيت (STEINS;GATE) بلانيتيس (Planetes) جاذبية فايوليت إيفرغاردن سايكو-باس قاتل الشياطين الأميرة مونونوكي ويني (Winny) بؤرة الصفر زوتوبيا اسمك. أغيّر الطقس معك العودة إلى المستقبل (1,2,3) شين غودزيلا شين ألترامان شين كامن رايدر سوزومي ذا فيرست سلام دانك ","date":"2023-04-17T00:34:13+09:00","image":"http://kenji.blog/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/image_hu831a556e644f698f06f7bab476f01bf6_248271_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%E6%98%A0%E7%94%BBtodo%E3%83%AA%E3%82%B9%E3%83%88/","title":"قائمة مهام الأفلام"},{"content":"قوالب صفحات ويب رائعة\nhtml5up https://html5up.net/ اعتقدت أنني أود تجربتها، لذا فهذه مذكرة.\n","date":"2023-04-17T00:26:55+09:00","image":"http://kenji.blog/p/%E3%81%8B%E3%81%A3%E3%81%93%E3%81%84%E3%81%84-web-%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88html5up/img_huc021190a6647c74fdf17f0c26cf7f09d_324732_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%81%8B%E3%81%A3%E3%81%93%E3%81%84%E3%81%84-web-%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88html5up/","title":"قوالب صفحات ويب رائعة (html5up)"},{"content":"المتطلبات الأساسية معيار ISO C++ 20 (/std:c++20) الشفرة 1 2 3 4 #include \u0026lt;chrono\u0026gt; #include \u0026lt;format\u0026gt; std::string datetime = std::format(\u0026#34;{:%FT%TZ}\u0026#34;, system_clock::now()); هذه كانت طريقة إخراج الوقت الحالي بتنسيق ISO8601 في C++.\nمراجع std::format ","date":"2023-04-15T19:35:27+09:00","image":"http://kenji.blog/p/c-%E3%81%A7%E7%8F%BE%E5%9C%A8%E6%99%82%E5%88%BB%E3%82%92iso8601%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88%E3%81%A7%E5%87%BA%E5%8A%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu7d543f2117b8a102814b6a542ff27896_11509_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D8%AE%D8%B1%D8%A7%D8%AC-%D8%A7%D9%84%D9%88%D9%82%D8%AA-%D8%A7%D9%84%D8%AD%D8%A7%D9%84%D9%8A-%D8%A8%D8%AA%D9%86%D8%B3%D9%8A%D9%82-iso8601-%D9%81%D9%8A-c-/","title":"كيفية إخراج الوقت الحالي بتنسيق ISO8601 في C++"},{"content":"أقدم لكم كيفية إنشاء اختصار لإيقاف تشغيل ويندوز.\nمن المريح جداً وضع هذا الاختصار على سطح المكتب والنقر عليه نقراً مزدوجاً لإيقاف التشغيل.\nطريقة الإنشاء 1. انقر بزر الماوس الأيمن على سطح المكتب وحدد جديد \u0026gt; اختصار 2. ستظهر شاشة إنشاء الاختصار، أدخل shutdown.exe -s -f -t 0 ثم انقر على التالي 3. أدخل اسم الاختصار إيقاف التشغيل ثم انقر على إنهاء 4. قم بتغيير أيقونة الاختصار الذي تم إنشاؤه انقر بزر الماوس الأيمن على الاختصار الذي تم إنشاؤه وحدد خصائص\nانقر على تغيير الأيقونة\nحدد الأيقونة المربعة الحمراء وانقر على موافق، ثم انقر على موافق مرة أخرى لإغلاق نافذة الخصائص.\nهذا كل شيء.\nسيؤدي النقر المزدوج على الاختصار الذي تم إنشاؤه إلى إيقاف تشغيل ويندوز.\nملاحظة: لن يتم عرض مربع حوار تأكيد إيقاف التشغيل.\n","date":"2023-04-11T17:03:32+09:00","image":"http://kenji.blog/p/windows-%E3%82%92%E3%82%B7%E3%83%A3%E3%83%83%E3%83%88%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu9b7c59b017f6e7ad15ccc41a6e668b14_6147_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/windows-%E3%82%92%E3%82%B7%E3%83%A3%E3%83%83%E3%83%88%E3%83%80%E3%82%A6%E3%83%B3%E3%81%99%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية إنشاء اختصار لإيقاف تشغيل ويندوز"},{"content":"في هذه المقالة، سنشرح كيفية تطبيق الفسيفساء على جزء معين من الصورة باستخدام paint.net.\nعند تحميل الصور على الإنترنت، قد ترغب في بعض الأحيان في إخفاء أجزاء معينة بوضع فسيفساء عليها، وباستخدام paint.net يمكنك تعديل الصور بسهولة وسرعة.\nالخطوات 1. افتح الصورة التي تريد تعديلها في paint.net 2. استخدم أداة التحديد لاختيار الجزء الذي تريد تغطيته بالفسيفساء (يمكن التحديد المتعدد) 3. اختر من القائمة: تأثيرات (Effects) \u0026gt; تشويه (Distort) \u0026gt; فسيفساء (Pixelate) يمكنك ضبط حجم الخلية للتحكم في خشونة الفسيفساء. كلما زادت القيمة، زادت درجة الإخفاء. [تصغير] اختر Bilinear (صقل متعدد العينات) [تكبير] اختر Nearest Neighbor (أقرب جار) انقر على OK لإغلاق النافذة.\n4. سيتم تطبيق الفسيفساء، قم بحفظ الصورة بعد ذلك. هذا كل شيء.\n","date":"2023-04-11T16:33:10+09:00","image":"http://kenji.blog/p/paint.net%E3%81%A7%E7%94%BB%E5%83%8F%E3%81%AE%E7%89%B9%E5%AE%9A%E5%80%8B%E6%89%80%E3%81%AB%E3%83%A2%E3%82%B6%E3%82%A4%E3%82%AF%E3%82%92%E3%81%8B%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_huffa96a6cc9046fae85e7535d0c0f77f3_7385_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/how-to-apply-mosaic-to-a-specific-part-of-an-image-in-paint-net/","title":"كيفية تطبيق الفسيفساء على جزء معين من الصورة في paint.net"},{"content":"سأوضح لك كيفية إضافة إطار للصور باستخدام paint.net.\nالخطوات 1. افتح الصورة التي تريد إضافة إطار لها في paint.net 2. قم بتعيين اللون الثانوي (هذا سيكون لون الإطار) إذا لم تكن لوحة الألوان معروضة، فاضغط على مفتاح F8 على لوحة المفاتيح.\nلتعيينه إلى اللون الأسود، انقر فوق .\n3. القائمة \u0026gt; الصورة \u0026gt; حدد تغيير حجم القماش قم بزيادة العرض والارتفاع بمقدار 2 بكسل لكل منهما. زيادة بمقدار 2 بكسل تعني أن الإطار سيكون 1 بكسل. إذا كنت تريد أن يكون الإطار 5 بكسل، فقم بزيادة العرض والارتفاع بمقدار 10 بكسل لكل منهما.\nحدد المرساة لتكون \u0026ldquo;الوسط\u0026rdquo;، ثم انقر فوق موافق.\n4. سيتم إضافة إطار للصورة، لذا قم بحفظ الصورة. هذا كل شيء.\n","date":"2023-04-11T14:31:59+09:00","image":"http://kenji.blog/p/paint.net%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E7%94%BB%E5%83%8F%E3%81%AB%E6%9E%A0%E7%B7%9A%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_3_hu0a2e55b3f220b3e7559f248d1c86ab19_112900_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D8%B6%D8%A7%D9%81%D8%A9-%D8%A5%D8%B7%D8%A7%D8%B1-%D9%84%D9%84%D8%B5%D9%88%D8%B1-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-paint.net/","title":"كيفية إضافة إطار للصور باستخدام paint.net"},{"content":"مقدمة باستخدام خدمة تسمى Ranklet ، يمكنك بسهولة الحصول على ترتيب الصفحات الشائعة من Google Analytics ووضعه.\nفي هذه المقالة، سأوضح لك كيفية وضعه في مدونة HUGO.\nصورة للعمل التحضير يجب إعداد Google Analytics في الموقع الخطوات قم بالوصول إلى Ranklet انقر فوق Sign in with Google لتسجيل الدخول بحساب Google (يجب أن يكون مرتبطًا بحساب Google Analytics) انقر فوق السماح\nقم بتعيين المعلومات الأساسية لقد قمت بإعداده كما هو موضح أعلاه.\nفي Google Analytics View حدد العرض الذي تريد الحصول على الترتيب له. قم بتعيين استبدال النص لقد قمت بإعداده كما هو موضح أعلاه. تم تعيين هذا لإزالة | kenji.blog من عنوان الصفحة.\nقم بتعيين القالب HTML (تم إخفاء أرقام الترتيب) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 \u0026lt;div class=\u0026#34;ranklet ranklet-reset\u0026#34;\u0026gt; \u0026lt;table class=\u0026#34;ranklet-table\u0026#34;\u0026gt; \u0026lt;tbody class=\u0026#34;ranklet-pages\u0026#34;\u0026gt; {{#context.pages}} \u0026lt;tr class=\u0026#34;ranklet-page\u0026#34;\u0026gt; \u0026lt;td class=\u0026#34;ranklet-image\u0026#34;\u0026gt; {{#image}} \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; \u0026lt;img class=\u0026#34;ranklet-img\u0026#34; src=\u0026#34;{{image}}\u0026#34; /\u0026gt; \u0026lt;/a\u0026gt; {{/image}} \u0026lt;/td\u0026gt; \u0026lt;td class=\u0026#34;ranklet-meta\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;ranklet-title\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; {{title}} \u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt; {{#description}} \u0026lt;div class=\u0026#34;ranklet-description\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;{{url}}\u0026#34; class=\u0026#34;ranklet-link\u0026#34;\u0026gt; {{description}} \u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt; {{/description}} \u0026lt;/td\u0026gt; \u0026lt;/tr\u0026gt; {{/context.pages}} \u0026lt;/tbody\u0026gt; \u0026lt;/table\u0026gt; \u0026lt;/div\u0026gt; CSS (تم تغيير حجم الخط، وسيتم عرض الوصف في 3 أسطر) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 #ranklet-{{context.id}} { .ranklet-reset { // リセット table, tr, td, div, span { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; line-height: 1; box-sizing: border-box; } } .ranklet-table { border-collapse: separate; border-spacing: 8px 24px; width: 100%; word-break: break-all; td { vertical-align: middle; } .ranklet-rank { text-align: center; font-size: 120%; } .ranklet-image { text-align: center; img { max-width: 128px; max-height: 128px; } } .ranklet-meta { .ranklet-title { font-size: 20px; line-height: 125%; } .ranklet-description { font-size: 16px; margin-top: 8px; line-height: 125%; display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 行数 */ } } } } لم يتم تغيير JavaScript انسخ HTML من النشر على الموقع انسخ HTML المعروض\nالصقه في قالب HUGO قم بإنشاء layouts/partials/ranklet.html والصق HTML المنسوخ 1 \u0026lt;div id=\u0026#34;ranklet-11958\u0026#34;\u0026gt;\u0026lt;/div\u0026gt;\u0026lt;script src=\u0026#34;//widget.ranklet.com/v1/ranklet/s3/widgets/11958/widget.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; الصق الرمز أدناه في السطر الذي يسبق \u0026lt;/footer\u0026gt; في layouts/_default/single.html 1 {{- partial \u0026#34;ranklet.html\u0026#34; . }} هذا كل شيء. سيتم عرض الترتيب في أسفل هذه الصفحة كما هو موضح أدناه.\n","date":"2023-04-10T20:26:57+09:00","image":"http://kenji.blog/p/google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%8B%E3%82%89%E4%BA%BA%E6%B0%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hue19aa55fc0e6d690cd31b7a50b796054_6753_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/google%E3%82%A2%E3%83%8A%E3%83%AA%E3%83%86%E3%82%A3%E3%82%AF%E3%82%B9%E3%81%8B%E3%82%89%E4%BA%BA%E6%B0%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية الحصول على ترتيب الصفحات الشائعة من Google Analytics ووضعه"},{"content":"Python Google Colaboratory بيئة Google Colaboratory هي بيئة لتنفيذ Python يمكن تشغيلها عبر الإنترنت.\nيمكن أيضاً استخدام GPU. باستخدام دفاتر Colab، يمكنك كتابة كود قابل للتنفيذ ونص غني (مثل الصور و HTML و LaTeX وما إلى ذلك) في مستند واحد. وهي مبنية على Jupyter Notebook.\nRust Rust Playground JavaScript Javascript Playground Java paiza.IO Online Java compiler Haskell Haskell Playground Swift Online Swift Playground C++ C++ 14 أخرى AWS Cloud9 بيئة تطوير متكاملة عبر الإنترنت تقدمها Amazon AWS. تأتي مع أدوات مجمعة مسبقاً لأكثر من 40 لغة برمجة مثل Node.js و JavaScript و Python و PHP و Ruby و Go و C++ وغيرها.\nVisual Studio Code for the Web بيئة تطوير عبر الإنترنت تقدمها Microsoft. ومع ذلك، لا يمكن تنفيذ أو تصحيح اللغات التي تتطلب تجميعاً (compile).\npaiza.IO بيئة تنفيذ عبر الإنترنت تدعم 24 لغة رئيسية مثل C و C++ و Java و Ruby و Python و PHP و Perl وغيرها.\nCodePen بيئة تنفيذ عبر الإنترنت لـ HTML و CSS و JavaScript.\ncodeanywhere بيئة تطوير متكاملة (IDE) عبر الإنترنت. يمكنك مشاركة الكود والدردشة.\n","date":"2023-04-09T14:01:00+09:00","image":"http://kenji.blog/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/img_hu1a682c657d060df2f584d6c279d355c7_129199_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83%E3%81%BE%E3%81%A8%E3%82%81/","title":"【حسب اللغة】ملخص بيئات تنفيذ الأكواد عبر الإنترنت"},{"content":"ما هو غربال إراتوستينس غربال إراتوستينس هو خوارزمية لسرد الأعداد الأولية حتى عدد معين. الخوارزمية بسيطة ويمكن تنفيذها باتباع الخطوات التالية:\nقم بإنشاء مصفوفة من القيم المنطقية (bool) تحتوي على N عنصرًا وهيئ جميع العناصر إلى true. قم بتعيين العنصرين الصفر والأول من المصفوفة إلى false (لأن 0 و 1 ليسا عددين أوليين). إذا كان العنصر الثاني في المصفوفة هو true ، فقم بطباعة 2 كعدد أولي. قم بتعيين جميع العناصر المضاعفة للعدد 2 بدءًا من $2^2$ إلى false ※ إذا كان العنصر الثالث في المصفوفة هو true ، فقم بطباعة 3 كعدد أولي. قم بتعيين جميع العناصر المضاعفة للعدد 3 بدءًا من $3^2$ إلى false. كرر نفس العملية للعناصر الرابع والخامس ، \u0026hellip; ، والعنصر N. ※ السبب في تعيين العناصر الأكبر من المربع إلى false هو أن الأعداد الأصغر من المربع قد تمت معالجتها بالفعل (تم إكمال السرد).\nالتنفيذ في Rust 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 fn main() { let n = 1000; let mut is_prime = vec![true; n+1]; is_prime[0] = false; is_prime[1] = false; for i in 2..=n { if is_prime[i] { println!(\u0026#34;{}\u0026#34;, i); let mut j = i * i; while j \u0026lt;= n { is_prime[j] = false; j += i; } } } } نسخة أسرع قليلاً سنقوم بتنفيذ نسخة أسرع قليلاً مع مراعاة النقاط التالية:\nبدلاً من تهيئة المصفوفة إلى true ، نقوم بتهيئتها إلى false (هذا أسرع). نظرًا لأن مضاعفات 2 ليست أعدادًا أولية ، سنتخطى عملية تعيين مضاعفات 2 إلى false. ليس من الضروري التكرار حتى n ، إذا قمت بسرد الأعداد الأولية حتى الجذر التربيعي لـ n ، يمكنك سرد الأعداد الأولية حتى n. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 fn main() { let n = 1000; let mut is_prime = vec![false; n+1]; is_prime[2] = true; for i in (3..=n).step_by(2) { is_prime[i] = true; } for i in 3..=((n as f64).sqrt() as usize) { if is_prime[i] { let mut j = i * i; while j \u0026lt;= n { is_prime[j] = false; j += i * 2; } } } for i in (2..=n).filter(|\u0026amp;x| is_prime[x]) { println!(\u0026#34;{}\u0026#34;, i); } } مراجع غربال إراتوستينس ","date":"2023-04-09T12:54:24+09:00","image":"http://kenji.blog/p/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A61000%E4%BB%A5%E4%B8%8B%E3%81%AE%E7%B4%A0%E6%95%B0%E3%82%92%E5%88%97%E6%8C%99%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hud779f88eb17786b23927bc052940ab95_400805_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%B3%D8%B1%D8%AF-%D8%A7%D9%84%D8%A3%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%84%D8%A3%D9%88%D9%84%D9%8A%D8%A9-%D8%AD%D8%AA%D9%89-1000-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%BA%D8%B1%D8%A8%D8%A7%D9%84-%D8%A5%D8%B1%D8%A7%D8%AA%D9%88%D8%B3%D8%AA%D9%8A%D9%86%D8%B3/","title":"كيفية سرد الأعداد الأولية حتى 1000 باستخدام غربال إراتوستينس"},{"content":"التثبيت عبر الجهاز الطرفي افتح الجهاز الطرفي قم بتنفيذ sudo gem install cocoapods → لسبب ما، ظهرت رسالة الخطأ التالية وفشل التثبيت. المخرجات 1 2 3 ERROR: Error installing cocoapods: The last version of activesupport (\u0026gt;= 5.0, \u0026lt; 8) to support your Ruby \u0026amp; RubyGems was 6.1.7.3. Try installing it with `gem install activesupport -v 6.1.7.3` and then running the current command again activesupport requires Ruby version \u0026gt;= 2.7.0. The current ruby version is 2.6.10.210. لذلك قمت بالبحث عن رسالة الخطأ على الويب (انظر \u0026ldquo;المراجع\u0026rdquo; أدناه)، ونفذت الأمر التالي 1 /bin/bash -c \u0026#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\u0026#34; المخرجات 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 ==\u0026gt; Checking for `sudo` access (which may request your password)... ==\u0026gt; This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew /usr/local/share/man/man1/brew.1 /usr/local/share/zsh/site-functions/_brew /usr/local/etc/bash_completion.d/brew /usr/local/Homebrew ==\u0026gt; The following new directories will be created: /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; The Xcode Command Line Tools will be installed. Press RETURN/ENTER to continue or any other key to abort: ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/chmod ug=rwx /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/chmod go-w /usr/local/share/zsh /usr/local/share/zsh/site-functions ==\u0026gt; /usr/bin/sudo /usr/sbin/chown kenji /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /usr/bin/chgrp admin /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Frameworks ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /usr/local/Homebrew ==\u0026gt; /usr/bin/sudo /usr/sbin/chown -R kenji:admin /usr/local/Homebrew ==\u0026gt; /usr/bin/sudo /bin/mkdir -p /Users/kenji/Library/Caches/Homebrew ==\u0026gt; /usr/bin/sudo /bin/chmod g+rwx /Users/kenji/Library/Caches/Homebrew ==\u0026gt; /usr/bin/sudo /usr/sbin/chown -R kenji /Users/kenji/Library/Caches/Homebrew ==\u0026gt; Searching online for the Command Line Tools ==\u0026gt; /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress ==\u0026gt; Installing Command Line Tools for Xcode-14.3 ==\u0026gt; /usr/bin/sudo /usr/sbin/softwareupdate -i Command\\ Line\\ Tools\\ for\\ Xcode-14.3 Software Update Tool Finding available software Downloading Command Line Tools for Xcode Downloaded Command Line Tools for Xcode Installing Command Line Tools for Xcode Done with Command Line Tools for Xcode Done. ==\u0026gt; /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools ==\u0026gt; /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress ==\u0026gt; Downloading and installing Homebrew... remote: Enumerating objects: 236191, done. remote: Counting objects: 100% (504/504), done. remote: Compressing objects: 100% (327/327), done. remote: Total 236191 (delta 176), reused 468 (delta 158), pack-reused 235687 Receiving objects: 100% (236191/236191), 68.37 MiB | 15.51 MiB/s, done. Resolving deltas: 100% (173058/173058), done. From https://github.com/Homebrew/brew * [new branch] master -\u0026gt; origin/master * [new branch] test-runners -\u0026gt; origin/test-runners * [new tag] 0.1 -\u0026gt; 0.1 * [new tag] 0.2 -\u0026gt; 0.2 * [new tag] 0.3 -\u0026gt; 0.3 * [new tag] 0.4 -\u0026gt; 0.4 * [new tag] 0.5 -\u0026gt; 0.5 * [new tag] 0.6 -\u0026gt; 0.6 * [new tag] 0.7 -\u0026gt; 0.7 * [new tag] 0.7.1 -\u0026gt; 0.7.1 * [new tag] 0.8 -\u0026gt; 0.8 * [new tag] 0.8.1 -\u0026gt; 0.8.1 * [new tag] 0.9 -\u0026gt; 0.9 * [new tag] 0.9.1 -\u0026gt; 0.9.1 * [new tag] 0.9.2 -\u0026gt; 0.9.2 * [new tag] 0.9.3 -\u0026gt; 0.9.3 * [new tag] 0.9.4 -\u0026gt; 0.9.4 * [new tag] 0.9.5 -\u0026gt; 0.9.5 * [new tag] 0.9.8 -\u0026gt; 0.9.8 * [new tag] 0.9.9 -\u0026gt; 0.9.9 * [new tag] 1.0.0 -\u0026gt; 1.0.0 * [new tag] 1.0.1 -\u0026gt; 1.0.1 * [new tag] 1.0.2 -\u0026gt; 1.0.2 * [new tag] 1.0.3 -\u0026gt; 1.0.3 * [new tag] 1.0.4 -\u0026gt; 1.0.4 * [new tag] 1.0.5 -\u0026gt; 1.0.5 * [new tag] 1.0.6 -\u0026gt; 1.0.6 * [new tag] 1.0.7 -\u0026gt; 1.0.7 * [new tag] 1.0.8 -\u0026gt; 1.0.8 * [new tag] 1.0.9 -\u0026gt; 1.0.9 * [new tag] 1.1.0 -\u0026gt; 1.1.0 * [new tag] 1.1.1 -\u0026gt; 1.1.1 * [new tag] 1.1.10 -\u0026gt; 1.1.10 * [new tag] 1.1.11 -\u0026gt; 1.1.11 * [new tag] 1.1.12 -\u0026gt; 1.1.12 * [new tag] 1.1.13 -\u0026gt; 1.1.13 * [new tag] 1.1.2 -\u0026gt; 1.1.2 * [new tag] 1.1.3 -\u0026gt; 1.1.3 * [new tag] 1.1.4 -\u0026gt; 1.1.4 * [new tag] 1.1.5 -\u0026gt; 1.1.5 * [new tag] 1.1.6 -\u0026gt; 1.1.6 * [new tag] 1.1.7 -\u0026gt; 1.1.7 * [new tag] 1.1.8 -\u0026gt; 1.1.8 * [new tag] 1.1.9 -\u0026gt; 1.1.9 * [new tag] 1.2.0 -\u0026gt; 1.2.0 * [new tag] 1.2.1 -\u0026gt; 1.2.1 * [new tag] 1.2.2 -\u0026gt; 1.2.2 * [new tag] 1.2.3 -\u0026gt; 1.2.3 * [new tag] 1.2.4 -\u0026gt; 1.2.4 * [new tag] 1.2.5 -\u0026gt; 1.2.5 * [new tag] 1.2.6 -\u0026gt; 1.2.6 * [new tag] 1.3.0 -\u0026gt; 1.3.0 * [new tag] 1.3.1 -\u0026gt; 1.3.1 * [new tag] 1.3.2 -\u0026gt; 1.3.2 * [new tag] 1.3.3 -\u0026gt; 1.3.3 * [new tag] 1.3.4 -\u0026gt; 1.3.4 * [new tag] 1.3.5 -\u0026gt; 1.3.5 * [new tag] 1.3.6 -\u0026gt; 1.3.6 * [new tag] 1.3.7 -\u0026gt; 1.3.7 * [new tag] 1.3.8 -\u0026gt; 1.3.8 * [new tag] 1.3.9 -\u0026gt; 1.3.9 * [new tag] 1.4.0 -\u0026gt; 1.4.0 * [new tag] 1.4.1 -\u0026gt; 1.4.1 * [new tag] 1.4.2 -\u0026gt; 1.4.2 * [new tag] 1.4.3 -\u0026gt; 1.4.3 * [new tag] 1.5.0 -\u0026gt; 1.5.0 * [new tag] 1.5.1 -\u0026gt; 1.5.1 * [new tag] 1.5.10 -\u0026gt; 1.5.10 * [new tag] 1.5.11 -\u0026gt; 1.5.11 * [new tag] 1.5.12 -\u0026gt; 1.5.12 * [new tag] 1.5.13 -\u0026gt; 1.5.13 * [new tag] 1.5.14 -\u0026gt; 1.5.14 * [new tag] 1.5.2 -\u0026gt; 1.5.2 * [new tag] 1.5.3 -\u0026gt; 1.5.3 * [new tag] 1.5.4 -\u0026gt; 1.5.4 * [new tag] 1.5.5 -\u0026gt; 1.5.5 * [new tag] 1.5.6 -\u0026gt; 1.5.6 * [new tag] 1.5.7 -\u0026gt; 1.5.7 * [new tag] 1.5.8 -\u0026gt; 1.5.8 * [new tag] 1.5.9 -\u0026gt; 1.5.9 * [new tag] 1.6.0 -\u0026gt; 1.6.0 * [new tag] 1.6.1 -\u0026gt; 1.6.1 * [new tag] 1.6.10 -\u0026gt; 1.6.10 * [new tag] 1.6.11 -\u0026gt; 1.6.11 * [new tag] 1.6.12 -\u0026gt; 1.6.12 * [new tag] 1.6.13 -\u0026gt; 1.6.13 * [new tag] 1.6.14 -\u0026gt; 1.6.14 * [new tag] 1.6.15 -\u0026gt; 1.6.15 * [new tag] 1.6.16 -\u0026gt; 1.6.16 * [new tag] 1.6.17 -\u0026gt; 1.6.17 * [new tag] 1.6.2 -\u0026gt; 1.6.2 * [new tag] 1.6.3 -\u0026gt; 1.6.3 * [new tag] 1.6.4 -\u0026gt; 1.6.4 * [new tag] 1.6.5 -\u0026gt; 1.6.5 * [new tag] 1.6.6 -\u0026gt; 1.6.6 * [new tag] 1.6.7 -\u0026gt; 1.6.7 * [new tag] 1.6.8 -\u0026gt; 1.6.8 * [new tag] 1.6.9 -\u0026gt; 1.6.9 * [new tag] 1.7.0 -\u0026gt; 1.7.0 * [new tag] 1.7.1 -\u0026gt; 1.7.1 * [new tag] 1.7.2 -\u0026gt; 1.7.2 * [new tag] 1.7.3 -\u0026gt; 1.7.3 * [new tag] 1.7.4 -\u0026gt; 1.7.4 * [new tag] 1.7.5 -\u0026gt; 1.7.5 * [new tag] 1.7.6 -\u0026gt; 1.7.6 * [new tag] 1.7.7 -\u0026gt; 1.7.7 * [new tag] 1.8.0 -\u0026gt; 1.8.0 * [new tag] 1.8.1 -\u0026gt; 1.8.1 * [new tag] 1.8.2 -\u0026gt; 1.8.2 * [new tag] 1.8.3 -\u0026gt; 1.8.3 * [new tag] 1.8.4 -\u0026gt; 1.8.4 * [new tag] 1.8.5 -\u0026gt; 1.8.5 * [new tag] 1.8.6 -\u0026gt; 1.8.6 * [new tag] 1.9.0 -\u0026gt; 1.9.0 * [new tag] 1.9.1 -\u0026gt; 1.9.1 * [new tag] 1.9.2 -\u0026gt; 1.9.2 * [new tag] 1.9.3 -\u0026gt; 1.9.3 * [new tag] 2.0.0 -\u0026gt; 2.0.0 * [new tag] 2.0.1 -\u0026gt; 2.0.1 * [new tag] 2.0.2 -\u0026gt; 2.0.2 * [new tag] 2.0.3 -\u0026gt; 2.0.3 * [new tag] 2.0.4 -\u0026gt; 2.0.4 * [new tag] 2.0.5 -\u0026gt; 2.0.5 * [new tag] 2.0.6 -\u0026gt; 2.0.6 * [new tag] 2.1.0 -\u0026gt; 2.1.0 * [new tag] 2.1.1 -\u0026gt; 2.1.1 * [new tag] 2.1.10 -\u0026gt; 2.1.10 * [new tag] 2.1.11 -\u0026gt; 2.1.11 * [new tag] 2.1.12 -\u0026gt; 2.1.12 * [new tag] 2.1.13 -\u0026gt; 2.1.13 * [new tag] 2.1.14 -\u0026gt; 2.1.14 * [new tag] 2.1.15 -\u0026gt; 2.1.15 * [new tag] 2.1.16 -\u0026gt; 2.1.16 * [new tag] 2.1.2 -\u0026gt; 2.1.2 * [new tag] 2.1.3 -\u0026gt; 2.1.3 * [new tag] 2.1.4 -\u0026gt; 2.1.4 * [new tag] 2.1.5 -\u0026gt; 2.1.5 * [new tag] 2.1.6 -\u0026gt; 2.1.6 * [new tag] 2.1.7 -\u0026gt; 2.1.7 * [new tag] 2.1.8 -\u0026gt; 2.1.8 * [new tag] 2.1.9 -\u0026gt; 2.1.9 * [new tag] 2.2.0 -\u0026gt; 2.2.0 * [new tag] 2.2.1 -\u0026gt; 2.2.1 * [new tag] 2.2.10 -\u0026gt; 2.2.10 * [new tag] 2.2.11 -\u0026gt; 2.2.11 * [new tag] 2.2.12 -\u0026gt; 2.2.12 * [new tag] 2.2.13 -\u0026gt; 2.2.13 * [new tag] 2.2.14 -\u0026gt; 2.2.14 * [new tag] 2.2.15 -\u0026gt; 2.2.15 * [new tag] 2.2.16 -\u0026gt; 2.2.16 * [new tag] 2.2.17 -\u0026gt; 2.2.17 * [new tag] 2.2.2 -\u0026gt; 2.2.2 * [new tag] 2.2.3 -\u0026gt; 2.2.3 * [new tag] 2.2.4 -\u0026gt; 2.2.4 * [new tag] 2.2.5 -\u0026gt; 2.2.5 * [new tag] 2.2.6 -\u0026gt; 2.2.6 * [new tag] 2.2.7 -\u0026gt; 2.2.7 * [new tag] 2.2.8 -\u0026gt; 2.2.8 * [new tag] 2.2.9 -\u0026gt; 2.2.9 * [new tag] 2.3.0 -\u0026gt; 2.3.0 * [new tag] 2.4.0 -\u0026gt; 2.4.0 * [new tag] 2.4.1 -\u0026gt; 2.4.1 * [new tag] 2.4.10 -\u0026gt; 2.4.10 * [new tag] 2.4.11 -\u0026gt; 2.4.11 * [new tag] 2.4.12 -\u0026gt; 2.4.12 * [new tag] 2.4.13 -\u0026gt; 2.4.13 * [new tag] 2.4.14 -\u0026gt; 2.4.14 * [new tag] 2.4.15 -\u0026gt; 2.4.15 * [new tag] 2.4.16 -\u0026gt; 2.4.16 * [new tag] 2.4.2 -\u0026gt; 2.4.2 * [new tag] 2.4.3 -\u0026gt; 2.4.3 * [new tag] 2.4.4 -\u0026gt; 2.4.4 * [new tag] 2.4.5 -\u0026gt; 2.4.5 * [new tag] 2.4.6 -\u0026gt; 2.4.6 * [new tag] 2.4.7 -\u0026gt; 2.4.7 * [new tag] 2.4.8 -\u0026gt; 2.4.8 * [new tag] 2.4.9 -\u0026gt; 2.4.9 * [new tag] 2.5.0 -\u0026gt; 2.5.0 * [new tag] 2.5.1 -\u0026gt; 2.5.1 * [new tag] 2.5.10 -\u0026gt; 2.5.10 * [new tag] 2.5.11 -\u0026gt; 2.5.11 * [new tag] 2.5.12 -\u0026gt; 2.5.12 * [new tag] 2.5.2 -\u0026gt; 2.5.2 * [new tag] 2.5.3 -\u0026gt; 2.5.3 * [new tag] 2.5.4 -\u0026gt; 2.5.4 * [new tag] 2.5.5 -\u0026gt; 2.5.5 * [new tag] 2.5.6 -\u0026gt; 2.5.6 * [new tag] 2.5.7 -\u0026gt; 2.5.7 * [new tag] 2.5.8 -\u0026gt; 2.5.8 * [new tag] 2.5.9 -\u0026gt; 2.5.9 * [new tag] 2.6.0 -\u0026gt; 2.6.0 * [new tag] 2.6.1 -\u0026gt; 2.6.1 * [new tag] 2.6.2 -\u0026gt; 2.6.2 * [new tag] 2.7.0 -\u0026gt; 2.7.0 * [new tag] 2.7.1 -\u0026gt; 2.7.1 * [new tag] 2.7.2 -\u0026gt; 2.7.2 * [new tag] 2.7.3 -\u0026gt; 2.7.3 * [new tag] 2.7.4 -\u0026gt; 2.7.4 * [new tag] 2.7.5 -\u0026gt; 2.7.5 * [new tag] 2.7.6 -\u0026gt; 2.7.6 * [new tag] 2.7.7 -\u0026gt; 2.7.7 * [new tag] 3.0.0 -\u0026gt; 3.0.0 * [new tag] 3.0.1 -\u0026gt; 3.0.1 * [new tag] 3.0.10 -\u0026gt; 3.0.10 * [new tag] 3.0.11 -\u0026gt; 3.0.11 * [new tag] 3.0.2 -\u0026gt; 3.0.2 * [new tag] 3.0.3 -\u0026gt; 3.0.3 * [new tag] 3.0.4 -\u0026gt; 3.0.4 * [new tag] 3.0.5 -\u0026gt; 3.0.5 * [new tag] 3.0.6 -\u0026gt; 3.0.6 * [new tag] 3.0.7 -\u0026gt; 3.0.7 * [new tag] 3.0.8 -\u0026gt; 3.0.8 * [new tag] 3.0.9 -\u0026gt; 3.0.9 * [new tag] 3.1.0 -\u0026gt; 3.1.0 * [new tag] 3.1.1 -\u0026gt; 3.1.1 * [new tag] 3.1.10 -\u0026gt; 3.1.10 * [new tag] 3.1.11 -\u0026gt; 3.1.11 * [new tag] 3.1.12 -\u0026gt; 3.1.12 * [new tag] 3.1.2 -\u0026gt; 3.1.2 * [new tag] 3.1.3 -\u0026gt; 3.1.3 * [new tag] 3.1.4 -\u0026gt; 3.1.4 * [new tag] 3.1.5 -\u0026gt; 3.1.5 * [new tag] 3.1.6 -\u0026gt; 3.1.6 * [new tag] 3.1.7 -\u0026gt; 3.1.7 * [new tag] 3.1.8 -\u0026gt; 3.1.8 * [new tag] 3.1.9 -\u0026gt; 3.1.9 * [new tag] 3.2.0 -\u0026gt; 3.2.0 * [new tag] 3.2.1 -\u0026gt; 3.2.1 * [new tag] 3.2.10 -\u0026gt; 3.2.10 * [new tag] 3.2.11 -\u0026gt; 3.2.11 * [new tag] 3.2.12 -\u0026gt; 3.2.12 * [new tag] 3.2.13 -\u0026gt; 3.2.13 * [new tag] 3.2.14 -\u0026gt; 3.2.14 * [new tag] 3.2.15 -\u0026gt; 3.2.15 * [new tag] 3.2.16 -\u0026gt; 3.2.16 * [new tag] 3.2.17 -\u0026gt; 3.2.17 * [new tag] 3.2.2 -\u0026gt; 3.2.2 * [new tag] 3.2.3 -\u0026gt; 3.2.3 * [new tag] 3.2.4 -\u0026gt; 3.2.4 * [new tag] 3.2.5 -\u0026gt; 3.2.5 * [new tag] 3.2.6 -\u0026gt; 3.2.6 * [new tag] 3.2.7 -\u0026gt; 3.2.7 * [new tag] 3.2.8 -\u0026gt; 3.2.8 * [new tag] 3.2.9 -\u0026gt; 3.2.9 * [new tag] 3.3.0 -\u0026gt; 3.3.0 * [new tag] 3.3.1 -\u0026gt; 3.3.1 * [new tag] 3.3.10 -\u0026gt; 3.3.10 * [new tag] 3.3.11 -\u0026gt; 3.3.11 * [new tag] 3.3.12 -\u0026gt; 3.3.12 * [new tag] 3.3.13 -\u0026gt; 3.3.13 * [new tag] 3.3.14 -\u0026gt; 3.3.14 * [new tag] 3.3.15 -\u0026gt; 3.3.15 * [new tag] 3.3.16 -\u0026gt; 3.3.16 * [new tag] 3.3.2 -\u0026gt; 3.3.2 * [new tag] 3.3.3 -\u0026gt; 3.3.3 * [new tag] 3.3.4 -\u0026gt; 3.3.4 * [new tag] 3.3.5 -\u0026gt; 3.3.5 * [new tag] 3.3.6 -\u0026gt; 3.3.6 * [new tag] 3.3.7 -\u0026gt; 3.3.7 * [new tag] 3.3.8 -\u0026gt; 3.3.8 * [new tag] 3.3.9 -\u0026gt; 3.3.9 * [new tag] 3.4.0 -\u0026gt; 3.4.0 * [new tag] 3.4.1 -\u0026gt; 3.4.1 * [new tag] 3.4.10 -\u0026gt; 3.4.10 * [new tag] 3.4.11 -\u0026gt; 3.4.11 * [new tag] 3.4.2 -\u0026gt; 3.4.2 * [new tag] 3.4.3 -\u0026gt; 3.4.3 * [new tag] 3.4.4 -\u0026gt; 3.4.4 * [new tag] 3.4.5 -\u0026gt; 3.4.5 * [new tag] 3.4.6 -\u0026gt; 3.4.6 * [new tag] 3.4.7 -\u0026gt; 3.4.7 * [new tag] 3.4.8 -\u0026gt; 3.4.8 * [new tag] 3.4.9 -\u0026gt; 3.4.9 * [new tag] 3.5.0 -\u0026gt; 3.5.0 * [new tag] 3.5.1 -\u0026gt; 3.5.1 * [new tag] 3.5.10 -\u0026gt; 3.5.10 * [new tag] 3.5.2 -\u0026gt; 3.5.2 * [new tag] 3.5.3 -\u0026gt; 3.5.3 * [new tag] 3.5.4 -\u0026gt; 3.5.4 * [new tag] 3.5.5 -\u0026gt; 3.5.5 * [new tag] 3.5.6 -\u0026gt; 3.5.6 * [new tag] 3.5.7 -\u0026gt; 3.5.7 * [new tag] 3.5.8 -\u0026gt; 3.5.8 * [new tag] 3.5.9 -\u0026gt; 3.5.9 * [new tag] 3.6.0 -\u0026gt; 3.6.0 * [new tag] 3.6.1 -\u0026gt; 3.6.1 * [new tag] 3.6.10 -\u0026gt; 3.6.10 * [new tag] 3.6.11 -\u0026gt; 3.6.11 * [new tag] 3.6.12 -\u0026gt; 3.6.12 * [new tag] 3.6.13 -\u0026gt; 3.6.13 * [new tag] 3.6.14 -\u0026gt; 3.6.14 * [new tag] 3.6.15 -\u0026gt; 3.6.15 * [new tag] 3.6.16 -\u0026gt; 3.6.16 * [new tag] 3.6.17 -\u0026gt; 3.6.17 * [new tag] 3.6.18 -\u0026gt; 3.6.18 * [new tag] 3.6.19 -\u0026gt; 3.6.19 * [new tag] 3.6.2 -\u0026gt; 3.6.2 * [new tag] 3.6.20 -\u0026gt; 3.6.20 * [new tag] 3.6.21 -\u0026gt; 3.6.21 * [new tag] 3.6.3 -\u0026gt; 3.6.3 * [new tag] 3.6.4 -\u0026gt; 3.6.4 * [new tag] 3.6.5 -\u0026gt; 3.6.5 * [new tag] 3.6.6 -\u0026gt; 3.6.6 * [new tag] 3.6.7 -\u0026gt; 3.6.7 * [new tag] 3.6.8 -\u0026gt; 3.6.8 * [new tag] 3.6.9 -\u0026gt; 3.6.9 * [new tag] 4.0.0 -\u0026gt; 4.0.0 * [new tag] 4.0.1 -\u0026gt; 4.0.1 * [new tag] 4.0.10 -\u0026gt; 4.0.10 * [new tag] 4.0.11 -\u0026gt; 4.0.11 * [new tag] 4.0.2 -\u0026gt; 4.0.2 * [new tag] 4.0.3 -\u0026gt; 4.0.3 * [new tag] 4.0.4 -\u0026gt; 4.0.4 * [new tag] 4.0.5 -\u0026gt; 4.0.5 * [new tag] 4.0.6 -\u0026gt; 4.0.6 * [new tag] 4.0.7 -\u0026gt; 4.0.7 * [new tag] 4.0.8 -\u0026gt; 4.0.8 * [new tag] 4.0.9 -\u0026gt; 4.0.9 HEAD is now at c51687009 Merge pull request #15168 from reitermarkus/api-ruby-source-path ==\u0026gt; Installation successful! ==\u0026gt; Homebrew has enabled anonymous aggregate formulae and cask analytics. Read the analytics documentation (and how to opt-out) here: https://docs.brew.sh/Analytics No analytics data has been sent yet (nor will any be during this install run). ==\u0026gt; Homebrew is run entirely by unpaid volunteers. Please consider donating: https://github.com/Homebrew/brew#donations ==\u0026gt; Next steps: - Run these two commands in your terminal to add Homebrew to your PATH: (echo; echo \u0026#39;eval \u0026#34;$(/usr/local/bin/brew shellenv)\u0026#34;\u0026#39;) \u0026gt;\u0026gt; /Users/kenji/.zprofile eval \u0026#34;$(/usr/local/bin/brew shellenv)\u0026#34; - Run brew help to get started - Further documentation: https://docs.brew.sh قم بتنفيذ brew install cocoapods المخرجات 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 Warning: Treating cocoapods as a formula. For the cask, use homebrew/cask/cocoapods ==\u0026gt; Fetching dependencies for cocoapods: libyaml, ca-certificates, openssl@1.1, readline and ruby ==\u0026gt; Fetching libyaml ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/libyaml/manifests/0.2.5 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/libyaml/blobs/sha256:b49e62f014 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching ca-certificates ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2023- ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:11 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching openssl@1.1 ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/manifests/1.1.1t ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/blobs/sha256:97676d ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching readline ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/readline/manifests/8.2.1 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/readline/blobs/sha256:abe9d3f3e ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching ruby ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ruby/manifests/3.2.2 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/ruby/blobs/sha256:a4ac080688e87 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Fetching cocoapods ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/cocoapods/manifests/1.12.0 ######################################################################## 100.0% ==\u0026gt; Downloading https://ghcr.io/v2/homebrew/core/cocoapods/blobs/sha256:11226288 ==\u0026gt; Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sh ######################################################################## 100.0% ==\u0026gt; Installing dependencies for cocoapods: libyaml, ca-certificates, openssl@1.1, readline and ruby ==\u0026gt; Installing cocoapods dependency: libyaml ==\u0026gt; Pouring libyaml--0.2.5.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/libyaml/0.2.5: 10 files, 330KB ==\u0026gt; Installing cocoapods dependency: ca-certificates ==\u0026gt; Pouring ca-certificates--2023-01-10.all.bottle.tar.gz ==\u0026gt; Regenerating CA certificate bundle from keychain, this may take a while... 🍺 /usr/local/Cellar/ca-certificates/2023-01-10: 3 files, 216.9KB ==\u0026gt; Installing cocoapods dependency: openssl@1.1 ==\u0026gt; Pouring openssl@1.1--1.1.1t.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/openssl@1.1/1.1.1t: 8,101 files, 18.5MB ==\u0026gt; Installing cocoapods dependency: readline ==\u0026gt; Pouring readline--8.2.1.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/readline/8.2.1: 50 files, 1.7MB ==\u0026gt; Installing cocoapods dependency: ruby ==\u0026gt; Pouring ruby--3.2.2.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/ruby/3.2.2: 16,605 files, 46.3MB ==\u0026gt; Installing cocoapods ==\u0026gt; Pouring cocoapods--1.12.0.ventura.bottle.tar.gz 🍺 /usr/local/Cellar/cocoapods/1.12.0: 13,436 files, 27.8MB ==\u0026gt; Running `brew cleanup cocoapods`... Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). قم بتنفيذ pod --version المخرجات 1 1.12.0 يبدو أنه تم التثبيت بنجاح.\nالمراجع Installing \u0026ldquo;CocoaPods\u0026rdquo; ","date":"2023-04-09T03:25:54+09:00","image":"http://kenji.blog/p/mac%E3%81%ABcocoapods%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_1_hu5a3007afd3f7cdc4b526573a36fbeca4_11833_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B7%D8%B1%D9%8A%D9%82%D8%A9-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-cocoapods-%D8%B9%D9%84%D9%89-mac/","title":"طريقة تثبيت CocoaPods على mac"},{"content":"كيفية الحصول على عدد السجلات المنشأة يوميًا باستخدام SOQL في Salesforce افتح وحدة تحكم المطور. افتح علامة التبويب Query Editor. الصق جملة SOQL التالية وقم بتشغيلها. 1 select day_only(createdDate), count(createdDate) from account group by day_only(createdDate) order by count(createdDate) desc limit 10 يرجى تغيير account إلى اسم الكائن الذي تريد الحصول عليه وتشغيله.\nالمراجع Is there a way to group by the date portion of a datetime field in SOQL? ","date":"2023-04-09T02:50:30+09:00","image":"http://kenji.blog/p/salesforce%E3%81%AEsoql%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%A6%E6%97%A5%E5%88%A5%E3%81%AE%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E4%BD%9C%E6%88%90%E6%95%B0%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hub769e11b0a209a1986a31ec50fb9e2d1_10470_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AD%D8%B5%D9%88%D9%84-%D8%B9%D9%84%D9%89-%D8%B9%D8%AF%D8%AF-%D8%A7%D9%84%D8%B3%D8%AC%D9%84%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%86%D8%B4%D8%A3%D8%A9-%D9%8A%D9%88%D9%85%D9%8A%D9%8B%D8%A7-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-soql-%D9%81%D9%8A-salesforce/","title":"كيفية الحصول على عدد السجلات المنشأة يوميًا باستخدام SOQL في Salesforce"},{"content":"\nالمتطلبات حساب جوجل الخطوات اذهب إلى https://colab.research.google.com/ اختر \u0026ldquo;ملف\u0026rdquo; -\u0026gt; \u0026ldquo;دفتر ملاحظات جديد\u0026rdquo; الصق الكود التالي وقم بتشغيله 1 2 3 4 5 6 7 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2*np.pi, 500) plt.plot(x, np.sin(x), label=\u0026#34;sin curve\u0026#34;) plt.plot(x, np.cos(x), label=\u0026#34;cos curve\u0026#34;) plt.legend() # إظهار وسيلة الإيضاح plt.show() النتيجة المراجع matplotlib.pyplot — Matplotlib 3.5.3 documentation ","date":"2023-04-09T01:02:19+09:00","image":"http://kenji.blog/p/pythonmatplotlib.pyplot%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B0%E3%83%A9%E3%83%95%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hucdb24ab588d845f9f7a56ef99be2c709_27745_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%B1%D8%B3%D9%85-%D8%A7%D9%84%D8%B1%D8%B3%D9%88%D9%85-%D8%A7%D9%84%D8%A8%D9%8A%D8%A7%D9%86%D9%8A%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-python-matplotlib-pyplot/","title":"كيفية رسم الرسوم البيانية باستخدام Python (matplotlib.pyplot)"},{"content":"المتطلبات Twitter API Twitter API SECRET Twitter ACCESS TOKEN Twitter ACCESS TOKEN SECRET حساب Google يرجى الرجوع إلى المواقع المرجعية لمعرفة كيفية الحصول على Twitter API.\nخطوات التغريد باستخدام API قم بزيارة https://colab.research.google.com/ حدد \u0026ldquo;ملف\u0026rdquo; -\u0026gt; \u0026ldquo;دفتر ملاحظات جديد\u0026rdquo; الصق الكود التالي وقم بتشغيله (استخدم القيم الفعلية التي حصلت عليها بنفسك) 1 2 3 4 API_KEY = \u0026#39;9Smu2f2RoLqbVQHQq6n79Z2JW\u0026#39; API_SECRET = \u0026#39;uGVRIkLL2l8sRyPv2Lr4mXxXppnQF1isMoRnvktcXCtFgAK2R8\u0026#39; ACCESS_TOKEN = \u0026#39;0367292979164670705-7hSErDoQbO6fkFtnn5UY0vqpvecy0O\u0026#39; ACCESS_TOKEN_SECRET = \u0026#39;pUv81U9GVzZirz5g4AxZPHAJ4GpSXnBo8GUcZ1egtjw9q\u0026#39; الصق الكود التالي وقم بتشغيله 1 import tweepy الصق الكود التالي وقم بتشغيله (API v1.1) 1 2 3 4 auth = tweepy.OAuthHandler(API_KEY, API_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) api = tweepy.API(auth) api.update_status(\u0026#34;hello\u0026#34;) → سيتم نشر تغريدة hello\nالصق الكود التالي وقم بتشغيله (API v2.0) 1 2 client = tweepy.Client(consumer_key=API_KEY, consumer_secret=API_SECRET, access_token=ACCESS_TOKEN, access_token_secret=ACCESS_TOKEN_SECRET) client.create_tweet(text=\u0026#39;hello v2\u0026#39;) → سيتم نشر تغريدة hello v2\nهذا كل شيء\nالمراجع [اعتبارًا من أبريل 2021] شرح شامل لطلب استخدام Twitter API مع أمثلة للاستخدام ولقطات شاشة [لا حاجة لإعدادات مزعجة!] نوصي بـ Google Colaboratory كبيئة تجريبية لـ Twitter API [سنشارك الكود المصدري أيضًا] [Tweepy] Twitter API v2: تغريدة، رد، تغريدة مع استطلاع، تغريدة مع وسائط (v1.1) [Python] ","date":"2023-04-08T18:48:32+09:00","image":"http://kenji.blog/p/twitter-api%E3%81%A8google-colaboratory%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6tweet%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu92a10d7ea1c17ea4dcc0d2e0b77b6296_75327_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D8%AA%D8%BA%D8%B1%D9%8A%D8%AF-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-twitter-api-%D9%88-google-colaboratory/","title":"كيفية التغريد باستخدام Twitter API و Google Colaboratory"},{"content":"ما هو OpenSSL إنه مكتبة مفتوحة المصدر توفر المعالجة اللازمة لإجراء اتصالات مشفرة.\nلاستخدامه من برنامج، يتم نشر كود مصدر لغة C، لذلك تحتاج إلى بناء وإنشاء مكتبة.\nأدناه، سوف نقدم إجراء البناء.\nإعداد بيئة البناء Perl\nقم بتنزيل strawberry-perl-5.32.1.1-64bit.msi من https://strawberryperl.com/. أعتقد أن أحدث إصدار جيد.\nNASM\nقم بتنزيل 2.16.01/nasm-2.16.01-win64.zip من Download في https://www.nasm.us/. أعتقد أن أحدث إصدار بخلاف rc جيد. بعد التثبيت، يجب عليك تسجيل المجلد الذي تم تثبيت NASM فيه في متغير البيئة PATH.\nVisual Studio 2022 أو Build Tools for Visual Studio 2022\nقم بتثبيت Visual Studio 2022 Community أو Build Tools for Visual Studio 2022 من https://visualstudio.microsoft.com/ja/downloads/.\nإجراء بناء OpenSSL على Windows قم بتنزيل وفك ضغط openssl-3.1.0.tar.gz من https://www.openssl.org/source/. إذا لم تتمكن من فك ضغطه، فقم بتشغيل tar -xzf openssl-3.1.0.tar.gz في موجه الأوامر. ابدأ موجه الأوامر بصلاحيات المسؤول افتح المجلد الذي تم فك ضغطه قم بتشغيل الأمر التالي ※قم بتغيير جزء Community وفقًا لإصدار Visual Studio الذي قمت بتثبيته 1 \u0026#34;C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvarsall.bat\u0026#34; x64 قم بتشغيل الأمر التالي 1 perl Configure VC-WIN64A قم بتشغيل الأمر التالي (يستغرق وقتًا طويلاً) 1 nmake قم بتشغيل الأمر التالي (يستغرق وقتًا طويلاً) 1 nmake test قم بتشغيل الأمر التالي 1 nmake install في حالة النجاح، سيتم تثبيت OpenSSL في C:\\Program Files\\OpenSSL.\nهذا كل شيء\nالمراجع https://ja.wikipedia.org/wiki/OpenSSL\n","date":"2023-04-07T21:06:32+09:00","image":"http://kenji.blog/p/windows-%E3%81%A7-openssl-%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu856dff3329e4daff79f775d47e5cc35b_35659_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/windows-%E3%81%A7-openssl-%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية بناء OpenSSL على Windows"},{"content":"ما هو i18n؟ مصطلح i18n هو اختصار لكلمة Internationalization، والتي تعني التدويل. نظرًا لأن كلمة Internationalization طويلة، يتم اختصارها إلى i18n، حيث يوجد 18 حرفًا بين الحرف الأول i والحرف الأخير n.\nيتم استخدامه أحيانًا في سياق تدويل البرمجيات.\nتشمل العناصر الرئيسية المستهدفة في التدويل ما يلي: 1\nمجموعة الأحرف (مثل رموز الأحرف القياسية) اتجاه الكتابة (من اليسار إلى اليمين، من اليمين إلى اليسار، من الأعلى إلى الأسفل باتجاه اليسار، إلخ) النصوص الخطوط التنسيق الأرقام (مثل فاصلة العشرات، فاصلة الآلاف، عدد الخانات التي يتم تقسيمها، إلخ) التاريخ والوقت (مثل طريقة كتابة السنة والشهر واليوم، اختلافات التقويمات المستخدمة مثل التقويم الهجري/الميلادي/العبري/الياباني، إلخ) فروق التوقيت لمعلومات التاريخ والوقت معلومات العملة التدويل والتوطين - ويكيبيديا\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2023-04-07T00:42:02+09:00","image":"http://kenji.blog/p/i18n%E3%81%A8%E3%81%AF/img_hu5547e5059a9dab53fb09979c54309752_11855_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/i18n%E3%81%A8%E3%81%AF/","title":"ما هو i18n؟"},{"content":"طريقة إنشاء عرض تقديمي باستخدام HTML أداة reveal.js هي أداة لإنشاء العروض التقديمية باستخدام HTML و Markdown، وتحتوي على الميزات التالية:\nميزات عرض تقديمي متنوعة مثل المعادلات الرياضية، الرسوم المتحركة، وعمليات السحب إمكانية تخصيص السمة والتخطيط ميزات تنقل تدعم أجهزة متعددة مثل الماوس، لوحة المفاتيح، ولوحة اللمس توفير ميزات متقدمة مثل التشغيل التلقائي للشرائح وتضمين الفيديو إمكانية التصدير بصيغة PDF من خلال هذه الميزات، يمكن للمستخدمين بسهولة إنشاء عروض تقديمية تفاعلية وجذابة.\nتثبيت واستخدام reveal.js أسهل طريقة للاستخدام هي تنزيل ملف ZIP بالكامل من الصفحة التالية وفك ضغطه.\nافتح https://revealjs.com/installation وقم بتنزيل master.zip من الرابط افتح ملف index.html الموجود في المجلد المستخرج باستخدام المتصفح قم بتعديل index.html لإنشاء العرض التقديمي الخاص بك ※ تمت كتابة كود HTML تجريبي في demo.html لذا يمكنك استخدامه كمرجع.\nطرق الاستفادة يمكنك نشر العرض التقديمي الذي قمت بإنشائه كصفحة ويب كما هو، أو تصديره كملف PDF. أيضًا، نظرًا لأن مصدر العرض التقديمي عبارة عن نص، فمن السهل إدارته باستخدام أنظمة التحكم في الإصدار.\nيبدو أنه يمكنك أيضًا إنشاء عروض تقديمية بتنسيق Markdown.\nالمراجع لنستخدم reveal.js للعروض التقديمية المستقبلية قائمة أمثلة على صيغة Markdown ","date":"2023-04-06T23:23:46+09:00","image":"http://kenji.blog/p/html%E3%81%A7%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95reveal.js/img_hu4de64f3f6be8c50037c2a4c6c2d48287_30871_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/html%E3%81%A7%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E8%B3%87%E6%96%99%E3%82%92%E4%BD%9C%E3%82%8B%E6%96%B9%E6%B3%95reveal.js/","title":"طريقة إنشاء عرض تقديمي باستخدام HTML (reveal.js)"},{"content":"ما هو Stable diffusion Stable diffusion هو ذكاء اصطناعي لإنشاء الصور من المعلومات النصية المدخلة، طوره فريق بحث في جامعة ميونخ في ألمانيا. من خلال تدريبه على صور متنوعة، يمكنه إنشاء صور مختلفة من الصور الواقعية إلى الرسوم التوضيحية.\nفي هذه المرة، سأقدم طريقة لإنشاء صور توضيحية باستخدام البيانات المدربة مسبقًا لـ Stable diffusion.\nالأشياء المطلوبة حساب Google فقط\nخطوات الإنشاء افتح https://colab.research.google.com من ملف في الزاوية العلوية اليسرى، حدد إنشاء دفتر ملاحظات جديد من تعديل، حدد إعدادات دفتر الملاحظات قم بتغيير مسرع الأجهزة إلى GPU الصق الكود التالي وقم بتشغيله 1 !pip install diffusers==0.8.0 transformers الصق الكود التالي وقم بتشغيله 1 from diffusers import StableDiffusionPipeline الصق الكود التالي وقم بتشغيله 1 2 pipe = StableDiffusionPipeline.from_pretrained(\u0026#34;gsdf/Counterfeit-V2.5\u0026#34;) pipe.to(\u0026#34;cuda\u0026#34;) الصق الكود التالي وقم بتشغيله 1 2 3 4 5 prompt = \u0026#34;((masterpiece,best quality)),1girl, solo, animal ears, rabbit, barefoot, knees up, dress, sitting, rabbit ears, short sleeves, looking at viewer, grass, short hair, smile, white hair, puffy sleeves, outdoors, puffy short sleeves, bangs, on ground, full body, animal, white dress, sunlight, brown eyes, dappled sunlight, day, depth of field\u0026#34; n_prompt = \u0026#34;EasyNegative, extra fingers,fewer fingers\u0026#34; image = pipe(prompt, negative_prompt = n_prompt).images[0] image إن Prompt المستخدم هنا مبني على Prompt من https://huggingface.co/gsdf/Counterfeit-V2.5.\nنتائج الإنشاء (بعض منها) مراجع https://huggingface.co/gsdf/Counterfeit-V2.5 حاولت إنشاء برنامج توليد صور باستخدام الذكاء الاصطناعي (AI) في 15 دقيقة【برمجة حية】 ","date":"2023-04-06T00:43:19+09:00","image":"http://kenji.blog/p/aistablediffusion%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu25483e02f36587a64f3cf042db15c245_550570_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%A5%D9%86%D8%B4%D8%A7%D8%A1-%D8%B5%D9%88%D8%B1-%D8%AA%D9%88%D8%B6%D9%8A%D8%AD%D9%8A%D8%A9-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%A7%D9%84%D8%B0%D9%83%D8%A7%D8%A1-%D8%A7%D9%84%D8%A7%D8%B5%D8%B7%D9%86%D8%A7%D8%B9%D9%8A-stablediffusion/","title":"كيفية إنشاء صور توضيحية باستخدام الذكاء الاصطناعي (StableDiffusion)"},{"content":"ما هو الملف القابل للتنفيذ (exe)؟ ملف يمكن تشغيله على نظام Windows. وهو مكتوب في الغالب بتنسيق يسمى تنسيق PE. يحتوي على كود لغة الآلة للتنفيذ والموارد مثل الرموز والصور.\nهناك العديد من الأدوات لتحليل الملفات القابلة للتنفيذ، لذا سأقدمها هذه المرة.\n7-Zip غالباً ما يتم إنشاء ملفات EXE عن طريق ضغط الملفات لأن حجمها يميل إلى أن يكون كبيراً. في هذه الحالة، باستخدام 7-Zip، وهو برنامج ضغط واستخراج ملفات، يمكنك استخراج الملف القابل للتنفيذ والتحقق من محتوياته. أداة أخرى مماثلة يمكنها القيام بذلك هي WinRAR.\nResource Hacker يمكنك استخراج الموارد (الرموز والصور النقطية ومربعات الحوار والسلاسل وما إلى ذلك) الموجودة داخل ملف EXE. بالإضافة إلى ذلك، نظراً لأنه يعمل أيضاً كمحرر ثنائي (Hex Editor)، يمكنك تحرير وإعادة كتابة محتويات ملف EXE.\nPE Explorer يمكنك تحليل ملفات PE لنظام التشغيل Windows (EXE ، DLL ، OCX ، SYS ، برامج التشغيل). يوفر PE Explorer وظائف تحليل متنوعة، مثل عرض بنية الملف، ورأس الملف، وإدخالات الدليل، والوظائف والرموز المصدرة.\nDependency Walker يمكنك التحقق من ملفات DLL التي يعتمد عليها ملف EXE والتأكد من تحميلها بشكل صحيح. يمكنك أيضاً تتبع استدعاءات الوظائف لملفات DLL.\nGhidra إنها أداة قوية للهندسة العكسية طورتها وكالة الأمن القومي الأمريكية (NSA) ومتاحة مجاناً كمصدر مفتوح. لا تقوم هذه الأداة بتفكيك ملفات EXE فحسب (تحويلها إلى لغة التجميع)، بل إنها تحتوي أيضاً على ميزة فك التجميع (Decompilation) إلى شكل قريب من لغة C، مما يجعلها تحظى بشعبية كبيرة.\nIDA Free / IDA Pro إنه مفكك (Disassembler) ومفكك تجميع (Decompiler) عالي الأداء أصبح معياراً صناعياً عالمياً في تحليل البرامج الضارة والهندسة العكسية. نسخة Pro باهظة الثمن للغاية، ولكن بالنسبة للأغراض الشخصية أو غير التجارية، يمكنك استخدام النسخة المحدودة الوظائف \u0026ldquo;IDA Free\u0026rdquo; مجاناً.\nx64dbg (x32dbg) إنه مصحح أخطاء (Debugger) مفتوح المصدر لنظام Windows. يتخصص في \u0026ldquo;التحليل الديناميكي\u0026rdquo;، والذي يحلل المحتويات وحالة الذاكرة خطوة بخطوة أثناء تشغيل الملف القابل للتنفيذ، وغالباً ما يُستخدم لفك تشفير crackme (برامج التحدي للتحليل) والتحقيق في سلوك البرامج الضارة.\nILSpy / dotPeek إذا تم إنشاء ملف EXE المستهدف باستخدام لغة من عائلة .NET مثل C#، فيمكنك استخدام هذه الأدوات لفك تجميعه (Decompile) إلى حالة متطابقة تقريباً مع الكود المصدري الأصلي وكشف محتوياته.\nهذه الأدوات مفيدة للتحقق من محتويات ملف EXE، ولكن يجب أن تكون حذراً. يمكن أن يؤدي تحرير الملفات أو استخدامها لأغراض غير قانونية إلى مشاكل في حقوق الطبع والنشر والأمن، لذا يرجى استخدامها بفهم كامل.\n","date":"2023-04-05T23:31:06+09:00","image":"http://kenji.blog/p/%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%ABexe%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E8%A7%A3%E6%9E%90%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB/img_1_hu9e069acaa7fdaa872d319a8c6d6e1444_1819799_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%ABexe%E3%81%AE%E4%B8%AD%E8%BA%AB%E3%82%92%E8%A7%A3%E6%9E%90%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB/","title":"أدوات لتحليل محتويات الملف القابل للتنفيذ (exe)"},{"content":"مقدمة أقدم لكم طريقة لتبديل التطبيقات على Mac بشكل مشابه لـ Windows (Alt+Tab).\nنظرًا لصعوبة تحقيق ذلك عن طريق تغيير الإعدادات القياسية، فإن هذه الطريقة تتطلب تثبيت تطبيق.\nصورة توضيحية للعمل طريقة الإعداد (macOS Ventura) افتح https://alt-tab-macos.netlify.app انقر على Download the latest release افتح التطبيق الذي تم تنزيله اتبع الخطوات للتثبيت الآن، يمكنك تبديل التطبيقات باستخدام Alt+Tab كما هو الحال في Windows.\nانتهى\n","date":"2023-04-05T02:20:12+09:00","image":"http://kenji.blog/p/mac%E3%81%A7windows%E3%83%A9%E3%82%A4%E3%82%AFalt-tab%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu9e86c898d72728906fc707b47dff25e0_55585_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/mac%E3%81%A7windows%E3%83%A9%E3%82%A4%E3%82%AFalt-tab%E3%81%AB%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تبديل التطبيقات مثل Windows (Alt+Tab) على Mac"},{"content":"مقدمة عند التبديل بين استخدام Windows و Mac، تختلف مفاتيح اختصار لوحة المفاتيح شائعة الاستخدام مثل النسخ واللصق والتراجع. سأقدم هنا طريقة لمطابقتها.\nطريقة الإعداد (macOS Ventura) افتح إعدادات النظام حدد لوحة المفاتيح حدد اختصارات لوحة المفاتيح حدد مفاتيح التعديل عيّن مفتاح Control(^) إلى \u0026ldquo;⌘ Command\u0026rdquo; عيّن مفتاح Command(⌘) إلى \u0026ldquo;^ Control\u0026rdquo; انقر فوق تم هذا كل شيء\n","date":"2023-04-05T00:49:02+09:00","image":"http://kenji.blog/p/mac%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92windows%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95/img_hu81c2d0d61c05f6ce24b15f479442c3bc_211588_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/mac%E3%81%A7%E3%82%B3%E3%83%94%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92windows%E3%81%A8%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية مطابقة مفاتيح اختصار النسخ واللصق في نظام Mac مع Windows"},{"content":"مقدمة أنا أستخدم لوحة مفاتيح أمريكية (US keyboard)، وفي نظام Windows أقوم بالتبديل إلى الإدخال الياباني باستخدام Alt + `. أردت التبديل باستخدام نفس المفتاح على نظام mac، وبعد البحث وجدت أنه يمكن تغييره في الإعدادات.\nطريقة الإعداد (macOS Ventura) افتح إعدادات النظام حدد لوحة المفاتيح حدد اختصارات لوحة المفاتيح حدد مصادر الإدخال انقر نقرًا مزدوجًا على تمثيل الاختصار على يمين \u0026ldquo;تحديد المصدر التالي في قائمة الإدخال\u0026rdquo; أدخل Alt + ` انقر فوق تم الآن، ستتمكن من التبديل بين الإنجليزية ⇔ اليابانية باستخدام Alt + `. ومع ذلك، بشكل افتراضي، يتم تضمين الكاتاكانا في التبديل، لذلك قمت بإزالة الكاتاكانا من مصادر الإدخال باستخدام الخطوات التالية.\nافتح إعدادات النظام حدد لوحة المفاتيح انقر على تحرير على يمين اليابانية - إدخال روماجي في مصادر الإدخال انقر فوق اليابانية - إدخال روماجي قم بإلغاء تحديد كاتاكانا في أوضاع الإدخال انقر فوق تم هذا كل شيء\n","date":"2023-04-04T23:02:12+09:00","image":"http://kenji.blog/p/mac%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%8B%B1%E8%AA%9E%E5%85%A5%E5%8A%9B%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu79c9b62a36c4ad9394525ea6ed769587_198703_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/mac%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E8%8B%B1%E8%AA%9E%E5%85%A5%E5%8A%9B%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تغيير اختصار لوحة المفاتيح للتبديل بين إدخال اليابانية والإنجليزية على mac"},{"content":"كيفية العثور على موقع ملف تنفيذي في مسار Windows عند تشغيل أمر بتحديد ملف تنفيذي، قد ترغب في معرفة مكان هذا الملف التنفيذي. في مثل هذه الحالات، يمكنك استخدام الأمر أدناه للتحقق من موقع الملف التنفيذي.\n1 where \u0026lt;اسم الملف التنفيذي\u0026gt; على سبيل المثال، إذا كنت تريد معرفة موقع برنامج الرسام (mspaint.exe)، افعل ما يلي:\n1 where mspaint.exe المراجع How do I find the location of an executable in Windows? ","date":"2023-04-03T00:02:55+09:00","image":"http://kenji.blog/p/windows-%E3%81%A7%E3%83%91%E3%82%B9%E3%81%AE%E9%80%9A%E3%81%A3%E3%81%9F%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/img_hub74cf0d67f87eb185fadea6cd8747be8_5455_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/windows-%E3%81%A7%E3%83%91%E3%82%B9%E3%81%AE%E9%80%9A%E3%81%A3%E3%81%9F%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%A0%B4%E6%89%80%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية العثور على موقع ملف تنفيذي في مسار Windows"},{"content":"شراء mac mini(2018) اشتريت جهاز mac mini(2018) مستعملًا من طراز قديم على Mercari. المواصفات كالتالي:\nالمعالج: 3.2GHz 6-core Intel Core i7 الذاكرة: 32GB التخزين: 1TB SSD السعر 77,000 ين.\nسبب الشراء أستخدم جهاز mac mini بنفس المواصفات تقريبًا في العمل لتطوير تطبيقات الهواتف الذكية، وأردت إعداد بيئة تطوير في المنزل أيضًا (خاصة بيئة تشغيل xcode). أمتلك جهاز macbook pro، ولكني اشتريته قبل 9 سنوات وهو بطيء جدًا لذا لا أستخدمه تقريبًا. كنت أرغب شخصيًا في تطوير تطبيقات iOS. قمت بتثبيت xcode و inteliJ IDEA على الفور إصدار xcode هو Version 14.3 (14E222b) إصدار inteliJ IDEA هو 2023.1 هيا بنا! سأبدأ في التطوير!\n","date":"2023-04-02T18:05:30+09:00","image":"http://kenji.blog/p/mac-mini2018%E3%82%92%E8%B3%BC%E5%85%A5/img_huc5df0470d74ce7a0046f11abaa7c5815_30469_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B4%D8%B1%D8%A7%D8%A1-mac-mini2018/","title":"شراء mac mini(2018)"},{"content":"حول \u0026ldquo;Unsplash\u0026rdquo; https://unsplash.com/ja/\nخلاصة موقع مواد الصور \u0026ldquo;Unsplash\u0026rdquo; هي كما يلي:\nيمكن استخدام جميع الصور مجانًا يُسمح بالاستخدام التجاري يُسمح بتعديل الصور لا يُشترط الحصول على إذن استخدام لا يُشترط ذكر المصدر إنه سهل الاستخدام للغاية عند كتابة مقالات في المدونة، لذا يرجى تجربته.\n※ فيما يتعلق بالترخيص، يرجى الرجوع إلى \u0026ldquo;الحاشية\u0026rdquo; أدناه. 1\nسأقوم أيضًا باستخدامه في هذا الموقع.\nترخيص Unsplash\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","date":"2023-04-02T14:44:17+09:00","image":"http://kenji.blog/p/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E5%86%99%E7%9C%9F%E7%B4%A0%E6%9D%90%E3%82%B5%E3%82%A4%E3%83%88unsplash%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/img_1_hu43cbd10eab78d2e7468dbb36abe8d794_828454_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E5%86%99%E7%9C%9F%E7%B4%A0%E6%9D%90%E3%82%B5%E3%82%A4%E3%83%88unsplash%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/","title":"حول موقع الصور \"Unsplash\" الذي يمكن استخدامه للمدونات"},{"content":"الحصول على مثال egui يمكنك تشغيل مثال egui بالأوامر التالية.\n1 2 3 git clone https://github.com/emilk/eframe_template/ egui_test cd egui_test cargo run تحميل خط يدعم اليابانية لعرض اللغة اليابانية، تحتاج إلى تحميل خط يدعمها.\nفي src/app.rs، أضف الأسطر التالية داخل طريقة pub fn new.\n1 2 3 4 5 6 7 8 9 10 11 12 // تحميل خط يدعم اللغة اليابانية let mut fonts = egui::FontDefinitions::default(); fonts.font_data.insert( \u0026#34;Meiryo\u0026#34;.to_owned(), egui::FontData::from_static(include_bytes!(\u0026#34;C:/Windows/Fonts/Meiryo.ttc\u0026#34;)), ); fonts .families .entry(egui::FontFamily::Proportional) .or_default() .insert(0, \u0026#34;Meiryo\u0026#34;.to_owned()); cc.egui_ctx.set_fonts(fonts); الآن يمكنك عرض اللغة اليابانية. ","date":"2023-04-01T03:17:52+09:00","image":"http://kenji.blog/p/egui%E3%81%A7%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu6798dc327f7454fc6cd8b8de1315ab03_5786_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/how-to-display-japanese-in-egui-ar/","title":"كيفية عرض اللغة اليابانية في egui"},{"content":"ما هو KaTeX؟ KaTeX هي مكتبة javascript لعرض المعادلات الرياضية بأسلوب LaTeX في HTML.\nعلى وجه التحديد، يمكنك عرض معادلات مثل التالية:\n$$f(x) = x^2 + x + 41$$ يبدو أن هناك مكتبات أخرى لعرض المعادلات بأسلوب LaTeX، لكن KaTeX معروفة بكونها بسيطة وسريعة.\nكيفية إضافته إلى hugo قم بإنشاء ملف جديد layouts/partials/math.html في بنية مجلدات hugo. يجب أن يكون المحتوى كالتالي:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; href=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css\u0026#34; integrity=\u0026#34;sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt; \u0026lt;script defer src=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.js\u0026#34; integrity=\u0026#34;sha384-PwRUT/YqbnEjkZO0zZxNqcxACrXe+j766U2amXcgMg5457rve2Y7I6ZJSm2A0mS4\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script defer src=\u0026#34;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/contrib/auto-render.min.js\u0026#34; integrity=\u0026#34;sha384-+VBxd3r6XgURycqtZ117nYw44OOcIax56Z4dCRWbxyPt0Koah1uHoK0o4+/RRE05\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;script\u0026gt; document.addEventListener(\u0026#34;DOMContentLoaded\u0026#34;, function() { renderMathInElement( document.body, { delimiters: [ {left: \u0026#34;$$\u0026#34;, right: \u0026#34;$$\u0026#34;, display: true}, {left: \u0026#34;\\\\[\u0026#34;, right: \u0026#34;\\\\]\u0026#34;, display: true}, {left: \u0026#34;$\u0026#34;, right: \u0026#34;$\u0026#34;, display: false}, {left: \u0026#34;\\\\(\u0026#34;, right: \u0026#34;\\\\)\u0026#34;, display: false} ] }); }); \u0026lt;/script\u0026gt; بعد ذلك، أضف الكود التالي إلى الملف الحالي layouts/partials/extend_head.html. 1 2 3 {{ if or .Params.math .Site.Params.math }} {{ partial \u0026#34;math.html\u0026#34; . }} {{ end }} الآن أصبحت جاهزًا لاستخدام KaTeX. عن طريق إضافة math: true إلى front matter للصفحة، يمكنك تفعيل KaTeX.\nكل ما عليك فعله بعد ذلك هو كتابة المعادلات بأسلوب LaTeX في نص المقالة. 1 $$ e^{i \\pi} = -1 $$ عندما تكتب كما هو موضح أعلاه، سيتم عرضها كالتالي:\n$$ e^{i \\pi} = -1 $$ مراجع Math Typesetting | PaperModX KaTex Auto-render Extension إدخال KaTeX | The Strange Storage ","date":"2023-03-31T23:11:26+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7katexlatex%E9%A2%A8%E6%95%B0%E5%BC%8F%E8%A1%A8%E7%A4%BA%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu4b1d83d24aac47c2cd375cc93b995e98_26739_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/hugo%E3%81%A7katexlatex%E9%A2%A8%E6%95%B0%E5%BC%8F%E8%A1%A8%E7%A4%BA%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تفعيل KaTeX (عرض المعادلات بأسلوب LaTeX) في hugo"},{"content":"كيف تكسب الأصدقاء وتؤثر في الناس https://amzn.to/3YTv0Dr\nالشجاعة لتكون غير محبوب https://amzn.to/3n3SVCQ\nتحول الحياة: استراتيجية الحياة لعصر المائة عام https://amzn.to/3TtKUDf\nالعادات السبع للناس الأكثر فعالية https://amzn.to/3TqfjSO\n","date":"2023-03-19T18:13:14+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E6%9B%B8/img_huc9a897f0643b20664d8e252d3dd67b22_2836610_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%E6%9B%B8/","title":"كتب أعمال موصى بها"},{"content":"إضافات Chrome الموصى بها سأقدم إضافات Chrome التي أستخدمها حاليًا. على الرغم من أنها لـ Chrome، إلا أنه يمكن استخدامها أيضًا في Microsoft Edge.\n1. simpleGestures إضافة تتيح لك استخدام إيماءات الماوس. يمكنك التحكم في المتصفح دون استخدام لوحة المفاتيح أو محاذاة الأزرار على شريط الأدوات.\nعلى سبيل المثال، يمكنك الرجوع عن طريق الضغط باستمرار على زر الماوس الأيمن وتحريك الماوس إلى اليسار، أو التقدم عن طريق الضغط باستمرار على زر الماوس الأيمن وتحريك الماوس إلى اليمين.\nهذه أيضًا مفتوحة المصدر، لذا فهي موثوقة للغاية.\nsimpleGestures github 2. uBlock Origin إضافة تحظر الإعلانات. إنها مفتوحة المصدر وموثوقة للغاية. بالإضافة إلى ذلك، فهي تستخدم القليل من وحدة المعالجة المركزية والذاكرة وتعمل بسلاسة.\nuBlock Origin github 3. ترجمة DeepL إضافة Chrome تتيح لك ترجمة الصفحات باستخدام خدمة الترجمة الشهيرة عالميًا DeepL. عند تحديد النص الذي تريد ترجمته في المتصفح، سيتم عرض أيقونة DeepL، وسيؤدي النقر عليها إلى ترجمته تلقائيًا.\nDeepL Translator 4. شريط جانبي ChatGPT إضافة تتيح لك استخدام ChatGPT في شريط جانبي. يمكنك عرض الشريط الجانبي بالضغط على Ctrl+P وطرح الأسئلة على الذكاء الاصطناعي على الفور. إذا تم تحديد أي نص في الصفحة، فسيتم نسخه مباشرة إلى سؤالك، حتى تتمكن من السؤال على الفور باستخدام Ctrl+Enter.\nChatGPT Sidebar 5. Salesforce DevTools إضافة تضيف ميزات مفيدة لتطوير Salesforce. أعتقد أن هذا غير ضروري لأولئك الذين لا يستخدمون Salesforce.\nSalesforce DevTools ","date":"2023-03-19T02:54:30+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE-chorme-%E6%8B%A1%E5%BC%B5/img_4_hue5f33cff57d8628a1113ed27818b8d04_20776_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D8%B6%D8%A7%D9%81%D8%A7%D8%AA-chrome-%D8%A7%D9%84%D9%85%D9%88%D8%B5%D9%89-%D8%A8%D9%87%D8%A7/","title":"إضافات Chrome الموصى بها"},{"content":"ما هو egui إنها مكتبة واجهة مستخدم رسومية يمكن استخدامها مع rust.\nتجربة egui يمكنك تشغيل نموذج egui بالأوامر التالية.\n1 2 3 git clone https://github.com/emilk/eframe_template/ egui_test cd egui_test cargo run بعد ذلك، يمكنك تجربة أشياء مختلفة أثناء التعديل على الكود النموذجي.\nمرجع المستودع الرسمي على github\n","date":"2023-03-18T10:27:02+09:00","image":"http://kenji.blog/p/egui%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/demo_hu16f50e8d6a05810ce904e73f9e33bab1_152754_120x120_fill_box_smart1_1.gif","permalink":"http://kenji.blog/ar/p/%D8%AA%D8%AC%D8%B1%D8%A8%D8%A9-egui/","title":"تجربة egui"},{"content":"كيفية تحديث rustc ما عليك سوى تشغيل الأمر التالي.\n1 rustup update مثال على المخرجات 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 rustup update info: syncing channel updates for \u0026#39;stable-x86_64-pc-windows-msvc\u0026#39; warning: Signature verification failed for \u0026#39;https://static.rust-lang.org/dist/channel-rust-stable.toml\u0026#39; info: latest update on 2023-03-09, rust version 1.68.0 (2c8cc3432 2023-03-06) info: downloading component \u0026#39;rust-src\u0026#39; info: downloading component \u0026#39;cargo\u0026#39; info: downloading component \u0026#39;clippy\u0026#39; info: downloading component \u0026#39;rust-docs\u0026#39; info: downloading component \u0026#39;rust-std\u0026#39; info: downloading component \u0026#39;rustc\u0026#39; 63.9 MiB / 63.9 MiB (100 %) 37.5 MiB/s in 1s ETA: 0s info: downloading component \u0026#39;rustfmt\u0026#39; info: removing previous version of component \u0026#39;rust-src\u0026#39; info: removing previous version of component \u0026#39;cargo\u0026#39; info: removing previous version of component \u0026#39;clippy\u0026#39; info: removing previous version of component \u0026#39;rust-docs\u0026#39; info: removing previous version of component \u0026#39;rust-std\u0026#39; info: removing previous version of component \u0026#39;rustc\u0026#39; info: removing previous version of component \u0026#39;rustfmt\u0026#39; info: installing component \u0026#39;rust-src\u0026#39; info: installing component \u0026#39;cargo\u0026#39; info: installing component \u0026#39;clippy\u0026#39; info: installing component \u0026#39;rust-docs\u0026#39; 19.4 MiB / 19.4 MiB (100 %) 2.4 MiB/s in 6s ETA: 0s info: installing component \u0026#39;rust-std\u0026#39; 27.6 MiB / 27.6 MiB (100 %) 12.7 MiB/s in 2s ETA: 0s info: installing component \u0026#39;rustc\u0026#39; 63.9 MiB / 63.9 MiB (100 %) 13.8 MiB/s in 4s ETA: 0s info: installing component \u0026#39;rustfmt\u0026#39; info: checking for self-updates info: downloading self-update stable-x86_64-pc-windows-msvc updated - rustc 1.68.0 (2c8cc3432 2023-03-06) (from rustc 1.64.0 (a55dd71d5 2022-09-19)) info: cleaning up downloads \u0026amp; tmp directories ","date":"2023-03-18T10:27:02+09:00","image":"http://kenji.blog/p/rustc%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/img_hu2f4438039b9bb5f2180f9e10d772e3b3_30692_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/rustc%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية تحديث rustc"},{"content":"طريقة التخلص من ضوضاء YAMAHA AG03 عند الاستماع إلى صوت الكمبيوتر الشخصي عبر شاشة AG03، كان هناك ضوضاء مزعجة بانتظام (مرة واحدة كل دقيقة إلى 3 دقائق). وبعد البحث، يبدو أن هناك طريقة للتعامل مع ضوضاء AG03 على النحو التالي:\nhttps://jp.yamaha.com/support/updates/yamaha_steinberg_usb_driver_for_win.html\nبعد تنزيل وتثبيت Yamaha Steinberg USB Driver من الموقع أعلاه، تم التخلص من الضوضاء.\nاشتر الآن المراجع https://web.archive.org/web/20201003230738/http://yamaha.custhelp.com/app/answers/detail/a_id/7202\n","date":"2023-03-18T01:17:10+09:00","image":"http://kenji.blog/p/ag03%E3%83%8E%E3%82%A4%E3%82%BA%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95/img_hu7b60ee71c94898202eca721f7c6778b5_180745_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/ag03%E3%83%8E%E3%82%A4%E3%82%BA%E8%A7%A3%E6%B6%88%E6%96%B9%E6%B3%95/","title":"طريقة التخلص من ضوضاء AG03"},{"content":"أجهزة الكمبيوتر الطرفية الموصى بها والتي يرغب بها مهندس نشط لوحة المفاتيح قبل كل شيء، يوصى باستخدام لوحة مفاتيح ذات سعة إلكتروستاتيكية لا تلامسية يصعب كسرها. لقد امتلكت RealForce لأكثر من 10 سنوات، ولا يزال بإمكاني استخدامه بنشاط حتى اليوم. النوع الذي أستخدمه هو تخطيط إنجليزي هادئ.\nومع ذلك، في الآونة الأخيرة، كنت مهتمًا أيضًا بلوحة مفاتيح تسمى Logitech MX Keys.\nكرة التتبع بالنسبة لجهاز التأشير، يوصى باستخدام كرة التتبع بدلاً من الماوس لأنها تقلل من التعب.\nالجهاز الذي أستخدمه هو Logitech MX Ergo. هذا منتج باهظ الثمن يكلف أكثر من 10000 ين، لكنني أعتقد أن قيمته تفوق سعره بكثير.\nأنا مهتم أيضًا بـ DEFT PRO(M-DPT1MRXBK)، وهو نوع يحتوي على كرة كبيرة ويتم تشغيله بواسطة السبابة والأصبع الأوسط. شاشة العرض أي شيء جيد، لكن يوصى بشاشة 4K عالية الدقة.\nأنا أستخدم حاليًا شاشة 4K من DELL.\nأرغب الآن في الحصول على شاشة عريضة من EIZO أو DELL.\n","date":"2023-02-28T00:51:49+09:00","image":"http://kenji.blog/p/%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AEpc%E5%91%A8%E8%BE%BA%E6%A9%9F%E5%99%A8/img_hu9c34821fcae33240cf8bba1055606dc6_434960_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A3%D8%AC%D9%87%D8%B2%D8%A9-%D8%A7%D9%84%D9%83%D9%85%D8%A8%D9%8A%D9%88%D8%AA%D8%B1-%D8%A7%D9%84%D8%B7%D8%B1%D9%81%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D9%88%D8%B5%D9%89-%D8%A8%D9%87%D8%A7/","title":"أجهزة الكمبيوتر الطرفية الموصى بها"},{"content":"خدمة fontplus.jp لاستخدام خطوط الويب المدفوعة https://fontplus.jp/\nمقابل 1,100 ين شهريًا، يمكنك استخدام جميع الخطوط، وهو يدعم أيضًا الاستخدام على مواقع ويب متعددة.\n","date":"2023-02-07T20:59:01+09:00","image":"http://kenji.blog/p/fontplus.jp/img_hu81cfc4bed02bb5cdb36d3ac7fae3e538_91722_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/fontplus.jp/","title":"حول fontplus.jp"},{"content":"افتراضيًا، لا يسمح HUGO باستخدام علامات HTML في المقالات، ولكن بإضافة الكود التالي إلى ملف config.toml، سيصبح ذلك ممكنًا.\n1 2 [markup.goldmark.renderer] unsafe = true المرجع: Configure Markup\n","date":"2023-01-17T19:20:32+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7html%E3%82%BF%E3%82%B0%E3%82%92%E4%BD%BF%E3%81%86/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-%D8%B9%D9%84%D8%A7%D9%85%D8%A7%D8%AA-html-%D9%81%D9%8A-hugo/","title":"استخدام علامات HTML في HUGO"},{"content":"البحث عن رعاة على GitHub سأكون سعيداً إذا أصبحت راعياً على GitHub من خلال الزر أدناه.\nسأستخدمه في تطوير الأدوات وغيرها.\nسأبذل قصارى جهدي حتى أتمكن من الحصول على شهادة توقيع الرمز!\n","date":"2023-01-17T18:13:56+09:00","image":"http://kenji.blog/p/github%E3%82%B9%E3%83%9D%E3%83%B3%E3%82%B5%E3%83%BC%E5%8B%9F%E9%9B%86/img_hueb38a852fa4aae54f384564ce61ae26b_130999_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D9%84%D8%A8%D8%AD%D8%AB-%D8%B9%D9%86-%D8%B1%D8%B9%D8%A7%D8%A9-%D8%B9%D9%84%D9%89-github/","title":"البحث عن رعاة على GitHub"},{"content":"ما هو الزر الزر هو أحد عناصر تحكم واجهة المستخدم الرسومية (GUI) ويمكن تنفيذه باستخدام واجهة برمجة تطبيقات (API) القياسية في نظام Windows. عند النقر فوق منطقة على الشاشة (الضغط على زر الماوس الأيسر، ثم إفلات زر الماوس الأيسر)، يمكنك تنفيذ العملية المحددة في البرنامج.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 // إنشاء زر CreateWindow( TEXT(\u0026#34;BUTTON\u0026#34;), TEXT(\u0026#34;Close\u0026#34;), WS_CHILD|WS_VISIBLE, 10,10,128,30, hWnd, (HMENU)ID_BUTTON1, ((LPCREATESTRUCT)lParam)-\u0026gt;hInstance, 0); ... // يتم إرسال رسالة WM_COMMAND من نظام التشغيل إلى النافذة عند النقر. case WM_COMMAND: switch(LOWORD(wParam)) { case ID_BUTTON1: SendMessage(hWnd,WM_CLOSE,0,0); break; } break; يتوفر نموذج التعليمات البرمجية أدناه. button\n","date":"2023-01-14T20:24:00+09:00","image":"http://kenji.blog/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/img_hu07b471bb746fa184ff8eeb6f561670e7_8164_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%9C%E3%82%BF%E3%83%B3%E3%81%A4%E3%81%84%E3%81%A6/","title":"حول الأزرار"},{"content":"اشتريت جهاز كمبيوتر محمول ThinkPad (مستعمل) نظرًا لأن عملي على الكمبيوتر المحمول يتم بشكل أساسي من خلال الاتصال بسطح المكتب البعيد للأجهزة الأخرى، فلم أكن بحاجة إلى جهاز كمبيوتر عالي المواصفات. كان من الممكن أن يكون جهاز ChromeBook مناسبًا، ولكن نظرًا لعدم وجود تصميم جيد أو دقة عالية، اشتريت جهاز ThinkPad.\nالمواصفات مذكورة أدناه، وكان السعر حوالي 55,000 ين باستخدام نقاط مختلفة.\nThinkPad T470s وحدة المعالجة المركزية: Intel Core i7 7600U ذاكرة الوصول العشوائي: 24 جيجابايت محرك الأقراص الثابتة (SSD): 512 جيجابايت نظام التشغيل: Windows 10 Pro 64bit الشاشة: 14.0 بوصة عريضة (لوحة غير لامعة) الدقة: شاشة WQHD 2560×1440 الوزن: حوالي 1.32 كجم ملاحظات: لوحة مفاتيح إنجليزية نظرًا لأنه مستعمل، اعتقدت أنه قد يكون هناك بعض علامات الاستخدام أو الخدوش، لكنه كان جيدًا تمامًا دون أي مشاكل. البطارية تعمل أيضًا بشكل جيد حتى الآن.\nالشكاوى التي يمكنني التفكير فيها حتى الآن لا يوجد مفتاح Pause أو مفتاح App. كنت أستخدم مفتاح Pause كاختصار لفتح إعدادات النظام. أيضًا، كنت أستخدم مفتاح App لفتح القوائم المنبثقة، لذا من غير المريح عدم وجوده. يوجد مفتاحا PageUp و PageDown بجوار مفاتيح الأسهم على لوحة المفاتيح، لذلك غالبًا ما أضغط عليهما عن طريق الخطأ. ربما سأعتاد على هذا. أجهزة كمبيوتر أخرى فكرت فيها لكن لم أشتريها ASUS Chromebook Flip C436FA (C436FA-ENG) HP كمبيوتر محمول HP15s-fq المواد المرجعية: ThinkPad T470s\n","date":"2023-01-13T19:07:00+09:00","image":"http://kenji.blog/p/thinkpad%E4%B8%AD%E5%8F%A4%E3%82%92%E8%B2%B7%E3%81%A3%E3%81%9F/img_hu1990736b7e8b9be3011f0d8e6938401f_246116_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D8%B4%D8%AA%D8%B1%D9%8A%D8%AA-%D8%AC%D9%87%D8%A7%D8%B2-thinkpad-%D9%85%D8%B3%D8%AA%D8%B9%D9%85%D9%84/","title":"اشتريت جهاز ThinkPad (مستعمل)"},{"content":"اتصال عن بعد سهل باستخدام TeamViewer يجعل TeamViewer من السهل الاتصال بسطح المكتب عن بعد.\nقم بتشغيل TeamViewer على كل من الكمبيوتر المحلي والكمبيوتر البعيد، وأدخل المعرف (ID) وكلمة المرور (Password) الخاصة بالكمبيوتر البعيد على الكمبيوتر المحلي لإجراء الاتصال.\nللاتصال عن بعد باستخدام سطر الأوامر، استخدم ما يلي:\n1 %ProgramFiles%\\TeamViewer\\TeamViewer.exe -i \u0026lt;ID\u0026gt; -P \u0026lt;Password\u0026gt; أدخل معرف الكمبيوتر البعيد في \u0026lt;ID\u0026gt;، وكلمة المرور الخاصة به في \u0026lt;Password\u0026gt;.\nمن المفيد إنشاء ملف اختصار باستخدام الأمر أعلاه لتخطي إدخال المعرف وكلمة المرور في كل مرة.\nالموقع المرجعي: Command line parameters\n","date":"2023-01-13T01:45:00+09:00","image":"http://kenji.blog/p/teamviewer%E3%81%A7%E7%B0%A1%E5%8D%98%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E6%8E%A5%E7%B6%9A/img_hu6a85c6015d61f1656b290295e2fefc2b_15316_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%B9%D9%86-%D8%A8%D8%B9%D8%AF-%D8%B3%D9%87%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-teamviewer/","title":"اتصال عن بعد سهل باستخدام TeamViewer"},{"content":" يتعلم الحمقى من التجربة، بينما يتعلم الحكماء من التاريخ (أوتو فون بسمارك)\nلا تعطني سمكة، بل علمني كيف أصطادها (لاوتزه)\nابق جائعاً، ابق أحمقاً (ستيف جوبز)\nأن تنجز العمل أفضل من أن تسعى للمثالية (مارك زوكربيرج)\nحافظ على البساطة (جيمس جوسلينج)\nليس لدي وقت للقلق بشأن من لا يحبني. أنا مشغول جدًا بحب الأشخاص الذين يحبونني. (سنوبي)\nأعظم سعادة للإنسان هي \u0026ldquo;العثور على عمل يستفيد من قدراته\u0026rdquo; (كارل ماركس)\nإذا كانت المعرفة القليلة خطيرة، فأين هو الرجل الذي يملك الكثير ليخرج من دائرة الخطر؟ (توماس هكسلي 1877)\nواصل تويدلدي قائلاً: \u0026ldquo;على العكس من ذلك، إذا كان الأمر كذلك، فقد يكون؛ وإذا كان كذلك، فسيكون؛ لكن بما أنه ليس كذلك، فهو ليس كذلك. هذا هو المنطق.\u0026rdquo; (لويس كارول، \u0026ldquo;من خلال الزجاج\u0026rdquo; 1872)\nليس من المبالغة وصف كلود شانون بأنه أبو عصر المعلومات، وإنجازاته الأكاديمية هي من بين أعظم إنجازات القرن العشرين. (تقييم جمعية الرياضيات الأمريكية)\nأولئك الذين يدركون الحالة الحالية للنظرية الرمزية للجبر، يعلمون أن صحة عملية التحليل لا تعتمد على تفسير الرموز المستخدمة، بل فقط على قوانين دمجها. (جورج بول، في بداية كتابه \u0026ldquo;التحليل الرياضي للمنطق\u0026rdquo; 1847)\n","date":"2022-10-15T17:00:43+09:00","image":"http://kenji.blog/p/%E5%90%8D%E8%A8%80%E9%9B%86/img_hu460fc51ec02f7186f7ea8b0f77e830d9_47559_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%AC%D9%85%D9%88%D8%B9%D8%A9-%D8%A7%D9%82%D8%AA%D8%A8%D8%A7%D8%B3%D8%A7%D8%AA/","title":"مجموعة اقتباسات"},{"content":"محرر الرسوم البيانية هذه مقدمة لصفحة ويب تتيح لك إنشاء رسوم بيانية بسيطة.\nhttps://csacademy.com/app/graph_editor/\nيمكنك إنشاء رسوم بيانية عن طريق إدخال القيم الرقمية. بالإضافة إلى ذلك، يبدو أنه يمكنك أيضًا تحريك العناصر باستخدام الماوس.\nمن خلال النقر على Directed، يمكنك أيضًا إنشاء رسوم بيانية موجهة.\nيمكنك حفظ الرسوم البيانية التي قمت بإنشائها أو الرسوم البيانية التي تم إنشاؤها عبر Download as PNG كصور.\n","date":"2022-10-13T23:31:11+09:00","image":"http://kenji.blog/p/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/img_hu784f47a1f9126188b11445cd2c37bf68_13497_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%B0%E3%83%A9%E3%83%95%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF/","title":"محرر الرسوم البيانية"},{"content":"حل مشكلة البائع المتجول باستخدام Mathematica مشكلة 電車でこんな広告を見かけました😁📸 pic.twitter.com/iXEgvtXrpL\n\u0026mdash; 早稲田大学 早水桃子研究室 (@hayamizu_lab) October 11, 2022 حل 1 d=SparseArray[{{1,2}-\u0026gt;10,{2,1}-\u0026gt;10,{1,5}-\u0026gt;15,{5,1}-\u0026gt;15,{1,4}-\u0026gt;12,{4,1}-\u0026gt;12,{1,3}-\u0026gt;20,{3,1}-\u0026gt;20,{2,5}-\u0026gt;10,{5,2}-\u0026gt;10,{3,4}-\u0026gt;10,{4,3}-\u0026gt;10,{3,8}-\u0026gt;30,{8,3}-\u0026gt;30,{3,7}-\u0026gt;20,{7,3}-\u0026gt;20,{3,6}-\u0026gt;25,{6,3}-\u0026gt;25,{4,5}-\u0026gt;15,{5,4}-\u0026gt;15,{4,8}-\u0026gt;20,{8,4}-\u0026gt;20,{5,9}-\u0026gt;18,{9,5}-\u0026gt;18,{5,8}-\u0026gt;15,{8,5}-\u0026gt;15,{6,7}-\u0026gt;5,{7,6}-\u0026gt;5,{7,8}-\u0026gt;35,{8,7}-\u0026gt;35,{8,9}-\u0026gt;12,{9,8}-\u0026gt;12},{9,9},Infinity]; إنشاء مصفوفة باستخدام وظيفة SparseArray. يمثل كل عنصر المسافة بين المدن في صف وعمود هذا العنصر. على سبيل المثال، العنصر الأول {1,2}-\u0026gt;10 يعني أن المسافة بين 1 و 2 هي 10. العنصر قبل الأخير {9,9} يشير إلى حجم المصفوفة، والعنصر الأخير Infinity يعني أن طول المسار بين المدن غير المحددة لا نهائي. وبعبارة أخرى، يعني أنه لا يوجد مسار.\n1 {len,tour}=FindShortestTour[{1,2,3,4,5,6,7,8,9},DistanceFunction-\u0026gt;(d[[#1,#2]]\u0026amp;)] يمكنك بسهولة حل مشكلة البائع المتجول باستخدام وظيفة FindShortestTour. تمثل {1,2,3,4,5,6,7,8,9} أرقام المدن. تمرر DistanceFunction-\u0026gt;(d[[#1,#2]]\u0026amp;) المصفوفة d التي تمثل المسافات بين المدن.\nانتاج 1 {137, {1, 2, 5, 9, 8, 7, 6, 3, 4}} المخرجات هي أقصر مسافة والمسار في ذلك الوقت. أقصر مسافة هي 137، والمسار هو 1→2→5→9→8→7→6→3→4→1. إذا تم تغيير الترتيب إلى ABC، فسيصبح A, B, E, I, H, G, F, C, D.\n","date":"2022-10-12T19:05:58+09:00","image":"http://kenji.blog/p/mathematica%E3%81%A7%E5%B7%A1%E5%9B%9E%E3%82%BB%E3%83%BC%E3%83%AB%E3%82%B9%E3%83%9E%E3%83%B3%E5%95%8F%E9%A1%8C%E3%82%92%E8%A7%A3%E3%81%8F/img_hucba782cf2f6047b30fd8084b4d887659_22760_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AD%D9%84-%D9%85%D8%B4%D9%83%D9%84%D8%A9-%D8%A7%D9%84%D8%A8%D8%A7%D8%A6%D8%B9-%D8%A7%D9%84%D9%85%D8%AA%D8%AC%D9%88%D9%84-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-mathematica/","title":"حل مشكلة البائع المتجول باستخدام Mathematica"},{"content":"لتحديد جميع مربعات الاختيار في صفحة ويب، افتح أدوات المطور (DevTools) بالضغط على F12، ثم الصق الكود التالي في وحدة التحكم (Console) وقم بتشغيله.\n1 2 3 4 5 6 let boxes = document.querySelectorAll(\u0026#39;input[type=\u0026#34;checkbox\u0026#34;]\u0026#39;); for (let i = 0; i \u0026lt; boxes.length; i++) { if (!boxes[i].disabled) { boxes[i].checked = true; } } أو،\nأنشئ إشارة مرجعية جديدة، وفي عنوان التسجيل (الجزء الذي تكتب فيه عادةً https://\u0026hellip;) الصق الكود التالي. افتح صفحة الويب التي تريد تحديد مربعات الاختيار فيها، وانقر على الإشارة المرجعية التي أنشأتها، وسيتم تحديد جميع مربعات الاختيار.\n1 javascript:(function(){let boxes=document.querySelectorAll(\u0026#39;input[type=\u0026#34;checkbox\u0026#34;]\u0026#39;);for(let i=0;i\u0026lt;boxes.length;i++){if(!boxes[i].disabled){boxes[i].checked=true;}}})(); إذا كنت تريد إلغاء تحديد الكل، فقم بتغيير جزء boxes[i].checked = true; في البرنامج النصي أعلاه إلى boxes[i].checked = false;.\n","date":"2022-10-05T20:07:06+09:00","image":"http://kenji.blog/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E5%85%A8%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B/img_hu556225b69f77e68d5b8659c3dfad5080_9228_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/web%E3%83%9A%E3%83%BC%E3%82%B8%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9%E3%82%92%E5%85%A8%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B/","title":"تحديد جميع مربعات الاختيار في صفحة الويب"},{"content":"مبرهنة ويلسون عندما يكون $p$ عددًا أوليًا، فإن $(p−1)!≡−1 \\pmod p$\nصيغة أويلر $e^{iπ}+1=0$\nمبرهنة فيرما الأخيرة لأي عدد صحيح $n≥3$，لا توجد أعداد صحيحة موجبة $x,y,z$ تحقق $x^n+y^n=z^n$\nمشكلة بازل $1/1^2+1/2^2+1/3^2+1/4^2+...=π^2/6$\nمتعددة الحدود لأويلر المولدة للأعداد الأولية $n^2+n+41$ ينتج أعدادًا أولية لجميع الأعداد الصحيحة $n$ من $0$ إلى $39$\n","date":"2022-10-05T13:24:50+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E6%95%B0%E5%BC%8F/img_huc293f175856c5702bca3e96906ea6e7d_155123_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%B9%D8%A7%D8%AF%D9%84%D8%A7%D8%AA%D9%8A-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A9-%D8%A7%D9%84%D9%85%D9%81%D8%B6%D9%84%D8%A9/","title":"معادلاتي الرياضية المفضلة"},{"content":"المتطلبات الأساسية أن يكون نظام التشغيل Windows 11\nالخطوات قم بتثبيت App Installer من Microsoft Store https://www.microsoft.com/store/productId/9NBLGGH4NNS1 قم بتثبيت التطبيق باستخدام موجه الأوامر 1 winget install Google.Chrome التطبيقات الرئيسية التي يمكن تثبيتها Google Chrome (الأمر winget install Google.Chrome) Microsoft Edge (الأمر winget install Microsoft.Edge) Microsoft Teams (الأمر winget install Microsoft.Teams) Microsoft Office (الأمر winget install Microsoft.Office) Visual Studio Code (الأمر winget install vscode) Slack (الأمر winget install SlackTechnologies.Slack) Discord (الأمر winget install Discord.Discord) Docker Desktop (الأمر winget install Docker.DockerDesktop) Git (الأمر winget install Git) 7zip (الأمر winget install 7zip) VLC (الأمر winget install VideoLAN.VLC) المراجع استخدام أداة winget لتثبيت التطبيقات وإدارتها\nملاحظة جانبية اعتقدت أنه يمكنني تثبيت Paint.Net أيضًا، لكن لم أتمكن من ذلك.\nhttps://forums.getpaint.net/topic/118574-please-add-paintnet-to-the-available-packages-for-windows-package-manager-winget/\n","date":"2022-10-05T12:15:20+09:00","image":"http://kenji.blog/p/winget-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/img_hu0f8970b897eb9ee188b975a06c549111_1216_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/winget-%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/","title":"تثبيت التطبيقات بالأوامر باستخدام WinGet"},{"content":"ميزات Rust لغة برمجة مفتوحة المصدر حديثة نسبياً يتم تطويرها بواسطة Mozilla لغة سريعة بدون جمع القمامة، متخصصة في برمجة النظم تمتلك آلية فريدة للملكية والاستعارة كمواصفات لغة لضمان أمان الذاكرة تعمل عبر منصات متعددة تمتلك مدير حزم ممتاز يسمى Cargo بشكل قياسي ","date":"2022-10-03T22:47:20+09:00","image":"http://kenji.blog/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/img_hu184f8481eb552ab7d9cefed2227c58f9_39839_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/rust%E3%81%AE%E7%89%B9%E5%BE%B4/","title":"ميزات Rust"},{"content":"لإعداد المتغيرات ديناميكيًا في Github Actions، يمكنك تحقيق ذلك عن طريق الإضافة إلى $env:GITHUB_ENV كما هو موضح أدناه.\n【بالنسبة لنظام التشغيل Windows】\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 name: Rust on: push: branches: [ \u0026#34;master\u0026#34; ] pull_request: branches: [ \u0026#34;master\u0026#34; ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Get Environment run: | echo \u0026#39;VERSION=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV echo \u0026#39;NAME=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV - name: Display Environment run: | echo $env:VERSION echo $env:NAME - name: Create Release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.VERSION }} release_name: ${{ env.VERSION }} draft: false prerelease: false - name: Upload Release Asset id: upload-release-asset uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it\u0026#39;s ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: ./target/release/${{ env.NAME }}.exe asset_name: ${{ env.NAME }}.exe asset_content_type: application/octet-stream 【بالنسبة لنظام التشغيل Linux】\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 name: Rust on: push: branches: [ \u0026#34;main\u0026#34; ] pull_request: branches: [ \u0026#34;main\u0026#34; ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Get Environment run: | echo \u0026#39;VERSION=1.0.0\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV echo \u0026#39;NAME=hello\u0026#39; \u0026gt;\u0026gt; $GITHUB_ENV - name: Display Environment run: | echo ${{ env.VERSION }} echo ${{ env.NAME }} ","date":"2022-10-02T02:33:35+09:00","image":"http://kenji.blog/p/github-actions%E3%81%A7%E5%8B%95%E7%9A%84%E3%81%AB%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/img_1_hua65fb3c79313ad0762e062df80261603_10981_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D8%AF%D9%8A%D9%86%D8%A7%D9%85%D9%8A%D9%83%D9%8A%D9%8B%D8%A7-%D9%81%D9%8A-github-actions/","title":"إعداد المتغيرات ديناميكيًا في Github Actions"},{"content":"حذف العلامة المحلية تحقق من العلامات المحلية الموجودة باستخدام git tag. احذف العلامة باستخدام git tag -d v0.1.0. (استبدل v0.1.0 بالعلامة التي تريد حذفها) حذف العلامة عن بعد تحقق من العلامات الموجودة عن بعد باستخدام git ls-remote --tags. احذف العلامة الموجودة عن بعد باستخدام git push origin --delete v0.1.0. (استبدل v0.1.0 بالعلامة التي تريد حذفها) مراجع كيفية حذف علامة git محليا وعن بعد!\n","date":"2022-10-02T02:18:04+09:00","image":"http://kenji.blog/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/img_hu2ecde82e40aa31a994850b70302683b4_5304_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/git%E3%81%A7%E3%82%BF%E3%82%B0%E3%82%92%E6%B6%88%E3%81%99/","title":"حذف العلامات في git"},{"content":"عرض نافذة بسيطة في Rust\n1 2 3 4 5 6 7 8 9 10 [package] name = \u0026#34;win\u0026#34; version = \u0026#34;0.1.0\u0026#34; edition = \u0026#34;2021\u0026#34; # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies.winapi] version = \u0026#34;0.3\u0026#34; features = [\u0026#34;winuser\u0026#34;] المصدر أدناه\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 #![windows_subsystem = \u0026#34;windows\u0026#34;] use winapi::{ um::{ winuser::{RegisterClassW, WNDCLASSW, CS_HREDRAW, CS_VREDRAW, LoadIconW, IDI_APPLICATION, LoadCursorW, IDC_ARROW, CreateWindowExW, ShowWindow, SW_NORMAL, UpdateWindow, GetMessageW, TranslateMessage, DispatchMessageW, MSG, WM_DESTROY, PostQuitMessage, DefWindowProcW, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT}, wingdi::{GetStockObject, WHITE_BRUSH}, }, shared::{ windef::{HWND, HBRUSH}, minwindef::{UINT, WPARAM, LPARAM, LRESULT}, }, }; use std::ptr; use std::mem; fn main() { unsafe { let class_name = encode(\u0026#34;my_window_class_name\u0026#34;); if !register_wndclass(\u0026amp;class_name) { return; } let hwnd = create_window(\u0026amp;class_name); if hwnd.is_null() { return; } ShowWindow(hwnd, SW_NORMAL); UpdateWindow(hwnd); let mut msg = mem::uninitialized::\u0026lt;MSG\u0026gt;(); loop { if GetMessageW(\u0026amp;mut msg, ptr::null_mut(), 0, 0) == 0 { return; } TranslateMessage(\u0026amp;mut msg); DispatchMessageW(\u0026amp;mut msg); } } } fn encode(source: \u0026amp;str) -\u0026gt; Vec\u0026lt;u16\u0026gt; { source.encode_utf16().chain(Some(0)).collect() } unsafe fn register_wndclass(class_name: \u0026amp;[u16]) -\u0026gt; bool { let mut winc = mem::zeroed::\u0026lt;WNDCLASSW\u0026gt;(); winc.style = CS_HREDRAW | CS_VREDRAW; winc.lpfnWndProc = Some(win_proc); winc.hIcon = LoadIconW(ptr::null_mut(), IDI_APPLICATION); winc.hCursor = LoadCursorW(ptr::null_mut(), IDC_ARROW); winc.hbrBackground = GetStockObject(WHITE_BRUSH as i32) as HBRUSH; winc.lpszClassName = class_name.as_ptr(); RegisterClassW(\u0026amp;winc) \u0026gt; 0 } unsafe fn create_window(class_name: \u0026amp;[u16]) -\u0026gt; HWND { CreateWindowExW( 0, class_name.as_ptr(), encode(\u0026#34;Hello, World!\u0026#34;).as_ptr(), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, ptr::null_mut(), ptr::null_mut(), ptr::null_mut(), ptr::null_mut(), ) } unsafe extern \u0026#34;system\u0026#34; fn win_proc(hwnd: HWND, msg: UINT, w_param: WPARAM, l_param: LPARAM) -\u0026gt; LRESULT { match msg { WM_DESTROY =\u0026gt; PostQuitMessage(0), _ =\u0026gt; return DefWindowProcW(hwnd, msg, w_param, l_param), }; 0 } مرجع برمجة Windows في Rust - قسم CreateWindow\n","date":"2022-10-01T19:08:58+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B9%D8%B1%D8%B6-%D9%86%D8%A7%D9%81%D8%B0%D8%A9-%D8%A8%D8%B3%D9%8A%D8%B7%D8%A9-%D9%81%D9%8A-rust/","title":"عرض نافذة بسيطة في Rust"},{"content":"لكتابة اختبارات في Rust، قم بإنشاء دالة وأضف السمة #[test] سطراً واحداً فوق تعريف دالة الاختبار.\n1 2 3 4 5 6 7 8 fn plus(a:i32,b:i32)-\u0026gt;i32 { a+b } #[test] fn plus_test() { assert_eq!(plus(1, 1), 2); } يمكن تنفيذ كود الاختبار باستخدام cargo test. عند نجاح الاختبار، يتم إخراج ok. عند الفشل، يتم إخراج FAILED.\nفي حالة النجاح\n1 2 3 4 5 6 7 8 9 C:\\Users\\admin\\Desktop\\test1\u0026gt;cargo test Compiling test1 v0.1.0 (C:\\Users\\admin\\Desktop\\test1) Finished test [unoptimized + debuginfo] target(s) in 0.35s Running unittests src\\main.rs (target\\debug\\deps\\test1-be5d3118bc52cb3a.exe) running 1 test test plus_test ... ok test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s في حالة الفشل\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C:\\Users\\admin\\Desktop\\test1\u0026gt;cargo test Compiling test1 v0.1.0 (C:\\Users\\admin\\Desktop\\test1) Finished test [unoptimized + debuginfo] target(s) in 0.33s Running unittests src\\main.rs (target\\debug\\deps\\test1-be5d3118bc52cb3a.exe) running 1 test test plus_test ... FAILED failures: ---- plus_test stdout ---- thread \u0026#39;plus_test\u0026#39; panicked at \u0026#39;assertion failed: `(left == right)` left: `2`, right: `3`\u0026#39;, src\\main.rs:7:5 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace failures: plus_test test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s error: test failed, to rerun pass \u0026#39;--bin test1\u0026#39; ","date":"2022-10-01T02:00:59+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E6%9B%B8%E3%81%8F/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/rust%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%82%92%E6%9B%B8%E3%81%8F/","title":"كتابة الاختبارات في Rust"},{"content":"يمكنك عرض MessageBox في Rust باتباع الخطوات التالية.\nقم بتثبيت Rust. راجع كيفية البدء مع Rust قم بتشغيل cargo new --bin MessageBox في موجه الأوامر. انتقل إلى الدليل MessageBox. افتح Cargo.toml وقم بتعديله كما يلي. 1 2 3 4 5 6 7 8 9 10 [package] name = \u0026#34;hello_world\u0026#34; version = \u0026#34;0.1.0\u0026#34; edition = \u0026#34;2021\u0026#34; # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] winapi = \u0026#34;0.2.7\u0026#34; user32-sys = \u0026#34;0.2.0\u0026#34; افتح src\\main.rs وقم بتعديله كما يلي. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 extern crate user32; extern crate winapi; use std::ffi::CString; use user32::MessageBoxA; use winapi::winuser::{MB_OK, MB_ICONINFORMATION}; fn main() { let lp_text = CString::new(\u0026#34;Hello, world!\u0026#34;).unwrap(); let lp_caption = CString::new(\u0026#34;MessageBox Example\u0026#34;).unwrap(); unsafe { MessageBoxA( std::ptr::null_mut(), lp_text.as_ptr(), lp_caption.as_ptr(), MB_OK | MB_ICONINFORMATION ); } } قم بتشغيل cargo run في موجه الأوامر. لإنشاء إصدار (release build)، قم بتشغيل cargo build --release.\nمرجع Hello World MesssageBox example in Rust\n","date":"2022-09-30T23:54:31+09:00","image":"http://kenji.blog/p/rust%E3%81%A7messagebox%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B9%D8%B1%D8%B6-messagebox-%D9%81%D9%8A-rust/","title":"عرض MessageBox في Rust"},{"content":"ما معنى أن تفهم؟ مرحباً!\nاليوم أود أن أتحدث عن موضوع \u0026ldquo;ما معنى أن تفهم؟\u0026rdquo;.\nهل \u0026ldquo;الفهم\u0026rdquo; غامض في الواقع؟ في الحياة اليومية، هناك لحظات تشعر فيها \u0026ldquo;لقد فهمت!\u0026rdquo;. ولكن إذا فكرت في الأمر جيداً، هل هذا \u0026ldquo;الفهم\u0026rdquo; هو حقاً استيعاب كامل؟\nعلى سبيل المثال، قيادة السيارة. إذا ضغطت على دواسة الوقود ستتقدم، وإذا ضغطت على المكابح ستتوقف. قد يمكن القول بأنك \u0026ldquo;تفهم\u0026rdquo; هذا. ومع ذلك، أعتقد أن القليلين فقط يمكنهم الشرح بالتفصيل عما يحدث داخل المحرك.\nهل الفهم الكامل ضروري؟ في الواقع، حتى لو لم نفهم كل شيء بشكل كامل، فغالباً لا يشكل ذلك عائقاً في حياتنا اليومية. حتى لو لم تكن تعرف التركيب الداخلي لهاتف ذكي، يمكنك إجراء مكالمة أو إرسال رسالة.\nومع ذلك، هذا لا يعني أنه يجب علينا التقليل من شأن \u0026ldquo;الفهم\u0026rdquo;. إذا تعمق فهمنا، فقد تولد اكتشافات وإدراكات جديدة.\nهناك الكثير من الأشياء التي لا نفهمها أيضاً هناك الكثير من الأشياء في العالم التي لم يتم تفسيرها بعد. على سبيل المثال، آليات المشاعر والوعي البشري، أو أصل الكون. هذه المجالات لم يتم \u0026ldquo;فهمها\u0026rdquo; بالكامل حتى مع تقدم العلوم.\nفي عالم الرياضيات أيضاً، هناك مسائل بسيطة ولكنها غير محلولة، مثل \u0026ldquo;حدسية غولدباخ\u0026rdquo;.\nقيمة \u0026ldquo;الفهم\u0026rdquo; عندما تزداد الأشياء التي \u0026ldquo;نفهمها\u0026rdquo;، يمكننا الشرح بثقة والتواصل مع الآخرين بفعالية. بالإضافة إلى ذلك، فإن امتلاك المعرفة يوفر ميزة وهي عدم الانخداع بسهولة بالمعلومات المضللة.\nالتواضع أمر مهم إن إدراك أننا \u0026ldquo;لا نفهم\u0026rdquo; بعض الأمور يؤدي إلى التواضع. وبسبب هذا الإدراك تحديداً، تنشأ الرغبة في الاستمرار في التعلم.\nوبناءً على ذلك، على الرغم من أن \u0026ldquo;الفهم\u0026rdquo; مهم، إلا أن الاستيعاب الكامل لكل شيء أمر صعب. الأهم من ذلك هو معرفة حدود فهمنا وامتلاك الدافع لمواصلة التعلم، أليس كذلك؟\n","date":"2022-09-24T02:38:18+09:00","image":"http://kenji.blog/p/%E3%82%8F%E3%81%8B%E3%82%8B%E3%81%A3%E3%81%A6%E3%81%AA%E3%82%93%E3%81%A0%E3%82%8D%E3%81%86/img_hu70cb8dd6d786a678b22436c932461bee_164867_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/ma-mana-an-tafham/","title":"ما معنى أن تفهم؟"},{"content":"فكرت في سبب حبي للرياضيات وأجهزة الكمبيوتر المساواة للجميع بغض النظر عن الشخص أو موقفه أو مكانه، فإنها تعطي دائمًا نفس المخرجات لنفس المدخلات.\nقواعد واضحة القواعد محددة بوضوح، ولا يوجد أي عبثية أو ظلم.\nالإجابات والنظريات المستنتجة صحيحة إلى الأبد لا داعي للقلق من أن يتم تغيير الإجابة التي تم التوصل إليها لاحقًا.\nهناك مستوى معتدل من الصعوبة هناك دائمًا مشاكل لم يتم حلها، ويمكنك دائمًا تحدي نفسك لحلها.\n","date":"2022-09-23T01:56:52+09:00","image":"http://kenji.blog/p/%E3%81%AA%E3%81%9C%E6%95%B0%E5%AD%A6%E3%82%84%E8%A8%88%E7%AE%97%E6%A9%9F%E3%81%8C%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%93%E3%81%A0%E3%82%8D%E3%81%86/img_hue4a786c476ad4bcc54a52cdbffbd292f_6616634_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%84%D9%85%D8%A7%D8%B0%D8%A7-%D8%A3%D8%AD%D8%A8-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A7%D8%AA-%D9%88%D8%A3%D8%AC%D9%87%D8%B2%D8%A9-%D8%A7%D9%84%D9%83%D9%85%D8%A8%D9%8A%D9%88%D8%AA%D8%B1/","title":"لماذا أحب الرياضيات وأجهزة الكمبيوتر"},{"content":"ما يحتاجه المجتمع شعرت أن إرشادات مجتمع سكراتش راقية جداً وجيدة. تمت كتابة ما يلي.\nتعامل مع الجميع باحترام.\nحافظ على سلامتك: لا تنشر معلوماتك الشخصية أو معلومات الاتصال بك.\nاترك تعليقات مفيدة.\nافهم ثقافة الريمكس.\nكن صادقاً.\nاجعل الموقع مكاناً مريحاً.\nأعتقد أن وجهات النظر هذه تنطبق على أي مجتمع.\nhttps://ja.scratch-wiki.info/wiki/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3\n","date":"2022-09-23T01:37:43+09:00","image":"http://kenji.blog/p/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%93%E3%81%A8/img_hueeaef9e10f0c1990dbbf990f6784494a_314802_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%93%E3%81%A8/","title":"ما يحتاجه المجتمع"},{"content":"فيرما (P. de Fermat, 1601-1665) عالم رياضيات فرنسي من أبرز علماء القرن السابع عشر. وضع أسس الهندسة التحليلية، ونظرية الاحتمالات، وحساب التفاضل. كما أنه يعتبر مؤسس نظرية الأعداد.\nديوفانتوس (Diophantus, حوالي 207-291) عالم رياضيات يوناني. اشتهر بإدخال الرموز ودراسة الحلول النسبية. عمله الرئيسي هو \u0026ldquo;الحساب\u0026rdquo;. يُعرف المجال الذي يسعى لإيجاد الحلول النسبية للمعادلات بتحليل ديوفانتين.\nأويلر (L. Euler, 1707-1783) ملك الرياضيات الذي ولد في سويسرا. حقق إنجازات في كل مجالات الرياضيات تقريبًا. ترك أكثر من 700 ورقة بحثية و45 كتابًا.\nليجاندر (A. M. Legendre, 1752-1833) عالم رياضيات فرنسي. ترك العديد من الإنجازات في نظرية الأعداد، والتكاملات الإهليلجية، ومسائل الجاذبية. كلمة \u0026ldquo;نظرية الأعداد\u0026rdquo; (Number Theory) مشتقة من كتابه الرئيسي الذي يحمل نفس الاسم.\nكومر (E. E. Kummer, 1810-1893) عالم رياضيات ألماني. حقق نتائج عظيمة بتطبيق نظرية الأعداد للحقول السيكلوتومية على مبرهنة فيرما الأخيرة.\nديكارت (R. Descartes, 1596-1650) فيلسوف فرنسي مبتكر. من أهم أعماله \u0026ldquo;مقال عن المنهج\u0026rdquo;، و\u0026quot;الهندسة\u0026quot;، و\u0026quot;علم الكونيات\u0026quot;.\nباسكال (B. Pascal, 1623-1662) فيلسوف فرنسي اشتهر بأبحاثه في نظرية الاحتمالات والموائع. انضم لاحقًا إلى الحركة الجانسنية وشارك في أنشطة دينية. كتاب \u0026ldquo;خواطر\u0026rdquo; (Pensées) كتب في تلك الفترة.\nباشي (C. G. Bachet, 1581-1638) نبيل فرنسي درس الألغاز العددية كهواية. نشر ترجمة لاتينية لكتاب \u0026ldquo;الحساب\u0026rdquo; لديوفانتوس، وأضاف أبحاثه الخاصة كتعليقات.\nواليس (J. Wallis, 1616-1703) عالم رياضيات إنجليزي. أعطى شكلًا رياضيًا لمفهوم النهايات في عمله الرئيسي \u0026ldquo;حساب اللانهاية\u0026rdquo;، وساهم في وضع أسس حساب التفاضل والتكامل.\nبرونكر (W. Brouncker, 1620-1684) نبيل أيرلندي. أول رئيس للجمعية الملكية (الأكاديمية البريطانية). كان مهتمًا بالرياضيات وتبادل الأفكار مع واليس وغيره.\nلاغرانج (J. L. Lagrange, 1736-1813) عالم رياضيات فرنسي ولد في إيطاليا. خلف أويلر كمدير لقسم الرياضيات في أكاديمية برلين. حقق إنجازات عظيمة في نظرية الأعداد والميكانيكا التحليلية.\nسيغل (C. L. Siegel, 1896-1981) عالم نظرية أعداد ألماني. قدم مساهمات عديدة في النظرية التحليلية للأعداد.\nفيبوناتشي (L. Fibonacci, حوالي 1175-1250) عالم رياضيات إيطالي. استخدم الأرقام الهندية العربية في كتابه \u0026ldquo;كتاب الحساب\u0026rdquo; وساهم في نشرها. كما ناقش الأعداد المتطابقة في كتابه \u0026ldquo;كتاب المربعات\u0026rdquo;.\nبيكر (A. Baker, 1939-) عالم نظرية أعداد إنجليزي. حصل على ميدالية فيلدز مع هيسوكه هيروناكا لمساهماته في نظرية الأعداد التجاوزية.\nبوانكاريه (J. Poincare, 1854-1912) عالم رياضيات فرنسي، يُلقب بآخر علماء الرياضيات الشاملين. ترك أعمالًا بارزة في نظرية الدوال ذات الشكل الذاتي، والهندسة اللاإقليدية، والمعادلات التفاضلية، والميكانيكا السماوية، والديناميكا الكهربائية، بالإضافة إلى النقد العلمي.\nمورديل (L. J. Mordell, 1888-1972) عالم رياضيات أمريكي المولد. والداه مهاجران من ليتوانيا. له العديد من الأوراق البحثية في نظرية المعادلات الديوفانتية، وتعتبر مبرهنة مورديل في نظرية المنحنيات الإهليلجية مشهورة بشكل خاص. قام فايل بتعميمها لتشمل المنحنيات الجبرية العامة، ومن هنا شهدت الهندسة الجبرية الحسابية تطورًا هائلًا.\nفايل (A. Weil, 1906-) عالم رياضيات فرنسي من أصل يهودي. اهتم بمسألة فيرما في شبابه، وقام بمراجعة جذرية للهندسة الجبرية بهدف تطبيقها على نظرية الأعداد، واضعًا لها أسسًا صارمة. معروف أيضًا بكتاباته في تاريخ الرياضيات.\nميرسين (M. Mersenne, 1588-1648) كاهن فرنسي من رهبنة المينيم. عمل كوسيط للمراسلات بين علماء الرياضيات في مختلف المناطق. الأعداد المعروفة باسم أعداد ميرسين ابتكرها في الواقع فيرما.\nروبرفال (G. P. de Roberval, 1602-1675) عالم رياضيات فرنسي. كان تقريبًا الشخص الوحيد في ذلك الوقت الذي حصل على منصب أستاذ كعالم رياضيات، واشتهر بأبحاثه حول الدويري.\nأبيل (N. H. Abel, 1802-1829) عالم رياضيات نرويجي. حقق إنجازات بارزة مثل استحالة حل المعادلات العامة من الدرجة الخامسة جبريًا، ونظرية الدوال الإهليلجية، ونظرية تكاملات أبيل، لكنه توفي في سن مبكرة.\nجاكوبي (K. G. Jacob, 1804-1851) عالم رياضيات ألماني من أصل يهودي. ترك إنجازات عظيمة في نظرية الدوال الإهليلجية، ونظرية دوال ثيتا، والمعادلات التفاضلية، وحساب التغيرات. قدم أعمال أبيل للعالم. يُعرف أيضًا برفضه للبراغماتية، معتبرًا هدف العلم هو \u0026ldquo;شرف العقل البشري\u0026rdquo;.\nغاوس (C. F. Gauss, 1777-1855) ملك الرياضيات الذي ولد في ألمانيا. اشتهر بأبحاثه في نظرية الأعداد، والهندسة اللاإقليدية، والجيوديسيا، والمتسلسلات الهندسية الفائقة، ونظرية السطوح، والمغناطيسية الأرضية. كان كماليًا ولم ينشر نتائجه إلا إذا كانت على درجة عالية من الاكتمال لدرجة لا تترك مجالًا للشك. عمله الرئيسي هو \u0026ldquo;استقصاءات حسابية\u0026rdquo;.\nلامي (G. Lame, 1795-1870) عالم رياضيات فرنسي. ساهم في ميكانيكا المرونة ونظرية التوصيل الحراري وغيرها.\nليوفيل (J. Liouville, 1809-1882) عالم رياضيات فرنسي. ساهم في المعادلات التفاضلية، ونظرية الأعداد التجاوزية، ونظرية الدوال.\nكوشي (A. L. Cauchy, 1789-1857) عالم رياضيات فرنسي. غزير الإنتاج وله العديد من الإنجازات في الفيزياء النظرية والرياضيات. يقال إنه يحظى باحترام في فرنسا يعادل احترام غاوس.\nغالوا (E. Galois, 1811-1832) عالم رياضيات فرنسي. أوضح مبرهنة أبيل التي تنص على أن المعادلات من الدرجة الخامسة فما فوق لا يمكن حلها جبريًا بشكل عام، وذلك بإدخال مفهوم الزمرة. قُتل في مبارزة في سن مبكرة، ويُعرف الآن أن السبب كان مشكلة تافهة تتعلق بامرأة.\nهينزيل (K. Hensel, 1861-1941) عالم رياضيات ألماني. تلميذ كرونكر. طبق الأساليب الدالية لإدخال نظرية الأعداد التائية (التحليل التائي) في نظرية الأعداد.\nهاسه (H. Hasse, 1898-1979) عالم رياضيات ألماني. تلميذ هينزيل، ساهم في وضع أسس التحليل التائي وتطبيقاته. عمل على تنظيم نظرية حقول الأصناف، ودراسة دوال L للمنحنيات الإهليلجية.\nكرونكر (L. Kronecker, 1823-1891) عالم رياضيات ألماني من أصل يهودي. ساهم في نظرية الدوال الإهليلجية ونظرية الأعداد. يُعرف باقتراحه الأساس الحسابي للرياضيات، لكن شخصيته القوية الذاتية وانتقاداته غير المبررة لزميله في جامعة برلين، فايرشتراس، وعرقلته لتوظيف كانتور أعطت صورة سلبية عن حياته.\nهيلبرت (D. Hilbert, 1862-1943) عالم رياضيات ألماني. ترك بصمة هائلة في جميع مجالات الرياضيات، بما في ذلك نظرية الثوابت، ونظرية الأعداد الجبرية، وأسس الرياضيات. المسائل الثلاث والعشرون التي اقترحها في المؤتمر الدولي لعلماء الرياضيات في باريس (1900) كان لها تأثير كبير على تطور الرياضيات.\nريمان (B. Riemann, 1826-1866) عالم رياضيات ألماني. حقق إنجازات رئيسية تتعلق بأسس الرياضيات، مثل مفهوم سطح ريمان في نظرية الدوال العقدية، وهندسة ريمان.\nفالتينغز (G. Faltings, 1954-) عالم رياضيات ألماني. أثبت حدسية مورديل في عام 1983.\nوايلز (A. Wiles, 1953-) عالم رياضيات بريطاني المولد. الرائد في هذا المجال، قدم مساهمات كبيرة في البحث مثل التخمين الرئيسي لإيواساوا وحدسية بيرتش وسوينيرتون-داير.\nالمراجع تم حل مبرهنة فيرما الأخيرة! من أويلر إلى إثبات وايلز (كودانشا)\n","date":"2022-09-22T23:06:37+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E3%81%AE%E5%81%89%E4%BA%BA%E3%81%9F%E3%81%A1/img_hu9ac53943fe4f64bfe30a56c18c498d11_667839_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B9%D8%B8%D9%85%D8%A7%D8%A1-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6%D9%8A%D8%A7%D8%AA/","title":"عظماء الرياضيات"},{"content":"سرد عناوين النوافذ طريقة لسرد عناوين النوافذ المفتوحة حاليًا باستخدام PowerShell.\n1 Get-Process|where{$_.mainWindowTItle}|Select-Object MainWindowTitle نموذج الإخراج\n1 2 3 4 5 6 7 8 9 MainWindowTitle --------------- Windows PowerShell Internet Explorer بدون عنوان - الرسام بدون عنوان - المفكرة مدير المهام تجربة إدخال Windows مستند - الدفتر ","date":"2022-09-20T17:03:15+09:00","image":"http://kenji.blog/p/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%E3%81%AE%E5%88%97%E6%8C%99/img_huc312ccf5dbdb1b6edae5dc06174466bf_18265_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%B3%D8%B1%D8%AF-%D8%B9%D9%86%D8%A7%D9%88%D9%8A%D9%86-%D8%A7%D9%84%D9%86%D9%88%D8%A7%D9%81%D8%B0/","title":"سرد عناوين النوافذ"},{"content":"حذف سريع ومجمع للمجلدات الكبيرة عند حذف مجلد كبير باستخدام مستكشف الملفات، تكون العملية بطيئة لأنه يتم استكشاف محتويات المجلد بالكامل قبل تنفيذ الحذف. كما هو موضح أدناه، إذا قمت بالحذف باستخدام الأوامر، فسيتم تنفيذ الاستكشاف والحذف في نفس الوقت، حتى تتمكن من حذف المجلدات الكبيرة بسرعة.\nفي موجه الأوامر، انتقل إلى التسلسل الهرمي للمجلد المستهدف. قم بتنفيذ DEL /F /Q /S FolderName \u0026gt; NUL. قم بتنفيذ RMDIR /Q /S FolderName. ","date":"2022-09-20T16:04:02+09:00","image":"http://kenji.blog/p/%E5%A4%A7%E3%81%8D%E3%81%AA%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E3%83%BC%E3%82%92%E9%AB%98%E9%80%9F%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4/img_hu0a77dc7478cd7b69f58fbada7141acfe_6495_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AD%D8%B0%D9%81-%D8%B3%D8%B1%D9%8A%D8%B9-%D9%88%D9%85%D8%AC%D9%85%D8%B9-%D9%84%D9%84%D9%85%D8%AC%D9%84%D8%AF%D8%A7%D8%AA-%D8%A7%D9%84%D9%83%D8%A8%D9%8A%D8%B1%D8%A9/","title":"حذف سريع ومجمع للمجلدات الكبيرة"},{"content":"أمر حذف جميع بيانات Chatter في Salesforce هذا الأمر يقوم بحذف جميع المنشورات والمرفقات في Salesforce Chatter. افتح وحدة تحكم المطور، ثم اختر \u0026ldquo;Open Execute anonymous Window\u0026rdquo; من قائمة Debug، والصق الكود التالي وقم بتنفيذه. أستخدمه شخصياً عندما تكون سعة تخزين المؤسسة على وشك الامتلاء.\n1 2 3 4 5 6 delete [select id from FeedItem]; delete [select id from FeedAttachment]; delete [select id from ContentDocument]; // إفراغ سلة المهملات database.emptyRecycleBin([select id from ContentDocument where IsDeleted = true ALL ROWS]); ","date":"2022-09-19T21:59:14+09:00","image":"http://kenji.blog/p/salesforce%E3%83%81%E3%83%A3%E3%83%83%E3%82%BF%E3%83%BC%E5%85%A8%E6%B6%88%E3%81%97%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_1_hu1e12ce6e6e64d4f046faca027a6e75ab_14487_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/salesforce%E3%83%81%E3%83%A3%E3%83%83%E3%82%BF%E3%83%BC%E5%85%A8%E6%B6%88%E3%81%97%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/","title":"أمر حذف جميع بيانات Chatter في Salesforce"},{"content":"هذه مجموعة صغيرة من الحيل والاختصارات التي تستخدم عادة في ويندوز. نأمل أن تكون مفيدة لأولئك الذين بدأوا للتو في استخدام ويندوز. تمت كتابة هذه الحيل مع الأخذ في الاعتبار Windows 11، لكن أعتقد أن الكثير منها يعمل أيضًا في Windows 10.\nإغلاق النافذة Alt + F4 بينما النافذة نشطة Ctrl + W بينما النافذة نشطة. إغلاق علامة التبويب أو النافذة (فقط للتطبيقات المدعومة) انقر نقرًا مزدوجًا فوق الرمز الأيسر في شريط عنوان النافذة انقر فوق × في شريط عنوان النافذة عرض سطح المكتب Win + D. اضغط عليه مرتين للعودة إلى حالة النافذة السابقة. مفيد عندما تريد عرض سطح المكتب للحظة. Win + M. تصغير كل التطبيقات. الضغط عليه مرتين لن يعيد النوافذ إلى حالتها السابقة. الإدخال الصوتي Win + H. بدء الإدخال الصوتي. لإنهاء الإدخال الصوتي، اضغط على Esc أو Win + H مرة أخرى. عرض قائمة النقر بزر الماوس الأيمن التقليدية في مستكشف الملفات اضغط على Shift + F10 أو مفتاح التطبيق. مفتاح التطبيق هو المفتاح الموجود في أسفل يمين لوحة المفاتيح. تحديد منطقة والتقاط الشاشة يمكنك تحديد منطقة لالتقاط الشاشة باستخدام Win + Shift + S. يمكنك التقاط الشاشة بالكامل باستخدام Win + Print Screen أو ببساطة Print Screen. (إذا أضفت Win، سيتم إخراج صورة الالتقاط إلى C:\\Users\\اسم المستخدم\\Pictures\\Screenshots.) يمكنك التقاط النافذة الحالية باستخدام Alt + Print Screen. تشغيل التطبيقات المثبتة على شريط المهام يمكنك تشغيل التطبيقات المثبتة على شريط المهام باستخدام Win + مفتاح الرقم.\nعلى سبيل المثال، الضغط على Win + 1 سيبدأ تشغيل التطبيق الموجود في أقصى اليسار على شريط المهام. يمكنك نقل التركيز إلى أيقونات شريط المهام باستخدام Win + T، ثم يمكنك الضغط على Win + T عدة مرات، أو التبديل باستخدام ← أو → واضغط على Enter لتشغيل التطبيق المحدد. تكبير/تصغير سيبدأ Win + + تشغيل عدسة ويندوز المكبرة. بعد ذلك، يمكنك التكبير/التصغير باستخدام Win + + or -. في المفكرة أو المتصفحات، يمكنك التكبير/التصغير باستخدام Ctrl + + or - (للتطبيقات المدعومة فقط). قفل ويندوز Win + L Ctrl + Alt + Del ← Space أو Enter إيقاف تشغيل ويندوز عندما يتم عرض سطح المكتب باستخدام Win + M أو Win + D، أو عندما يكون شريط المهام نشطًا باستخدام Win + T أو Win + B، اضغط على Alt + F4، وسيتم عرض مربع الحوار أدناه، فتأكد من تحديد \u0026ldquo;إيقاف التشغيل\u0026rdquo; واضغط على Enter. يمكن أيضًا استخدام Win + R ← Alt + F4 ← Alt + F4. يمكنك إيقاف التشغيل بالضغط على Win + X ← U ← U. في موجه الأوامر أو مربع حوار \u0026ldquo;تشغيل\u0026rdquo; (Win + R)، اكتب shutdown /s /t 0 لإيقاف التشغيل. إضافة /f سيؤدي إلى فرض إيقاف التشغيل. إعادة تشغيل ويندوز عندما يتم عرض سطح المكتب باستخدام Win + M أو Win + D، أو عندما يكون شريط المهام نشطًا باستخدام Win + T أو Win + B، اضغط على Alt + F4، وسيتم عرض مربع الحوار أدناه، اضغط على ↓ مرة واحدة لاختيار \u0026ldquo;إعادة التشغيل\u0026rdquo; واضغط على Enter. يمكن أيضًا استخدام Win + R ← Alt + F4 ← Alt + F4. يمكنك إعادة التشغيل بالضغط على Win + X ← U ← R. يمكنك إعادة التشغيل بكتابة shutdown /r /t 0. إضافة /f سيؤدي إلى فرض إعادة التشغيل. وضع السكون لويندوز عندما يتم عرض سطح المكتب باستخدام Win + M أو Win + D، أو عندما يكون شريط المهام نشطًا باستخدام Win + T أو Win + B، اضغط على Alt + F4، وسيتم عرض مربع الحوار أدناه، اضغط على ↑ مرة واحدة لاختيار \u0026ldquo;سكون\u0026rdquo; واضغط على Enter. يمكن أيضًا استخدام Win + R ← Alt + F4 ← Alt + F4. Win + R ← أو في موجه الأوامر اكتب rundll32.exe powrprof.dll,SetSuspendState لوضع الجهاز في وضع الإسبات. تسجيل الخروج من ويندوز (تسجيل الخروج) عندما يتم عرض سطح المكتب باستخدام Win + M أو Win + D، أو عندما يكون شريط المهام نشطًا باستخدام Win + T أو Win + B، اضغط على Alt + F4، وسيتم عرض مربع الحوار أدناه، اضغط على ↑ مرتين لاختيار \u0026ldquo;تسجيل الخروج\u0026rdquo; واضغط على Enter. يمكن أيضًا استخدام Win + R ← Alt + F4 ← Alt + F4. Win + X ← U ← I Ctrl + Alt + Del ← مرتين Tab أو مرتين ↓ ← Enter أو Space يمكنك تسجيل الخروج بكتابة logoff. نقل النافذة باستخدام لوحة المفاتيح Win + ← : نقل لليسار Win + → : نقل لليمين Win + ↑ : نقل لأعلى / تكبير Win + ↓ : نقل لأسفل / تصغير Win + Shift + ← or → : التنقل بين الشاشات المتعددة Win + Alt + ← or → or ↑ or ↓ : نقل النافذة دون تكبيرها أو تصغيرها عندما لا تكون مصغرة، اضغط على Alt + Space، ثم M، ثم تحرك باستخدام مفاتيح الأسهم.\n※ نظرًا لأن النافذة ستتبع مؤشر الماوس، يمكنك إنقاذ نافذة حتى لو كانت معروضة خارج الشاشة. إنهاء عملية في إدارة المهام يمكنك فتح إدارة المهام بالضغط على Ctrl + Shift + Esc. يمكنك تبديل علامات التبويب بالضغط على Ctrl + Tab. في علامة التبويب \u0026ldquo;التفاصيل\u0026rdquo;، بعد الضغط على Tab، يمكنك البحث عن عملية تطابق بداية الاسم عن طريق إدخال أحرف باللغة الإنجليزية باستخدام لوحة المفاتيح. مع تحديد اسم العملية، يمكنك إنهائها عن طريق الضغط على مفتاح Delete متبوعًا بمفتاح Enter. إنهاء عملية بتحديد اسمها عن طريق الأمر يمكنك إنهاء العملية باستخدام taskkill /f /im اسم-العملية. على سبيل المثال، يمكنك إنهاء مستكشف الملفات باستخدام taskkill /f /im explorer.exe تشغيل نسخ متعددة من نفس البرنامج من أيقونة شريط المهام من خلال النقر بزر الماوس الأيسر مع الاستمرار في الضغط على مفتاح Shift على شريط المهام، يمكنك تشغيل نسخ متعددة من نفس البرنامج. (للتطبيقات التي تدعم التشغيل المتعدد فقط) تشغيل برنامج بصلاحيات المسؤول يمكنك تشغيل البرنامج بصلاحيات المسؤول بالضغط على Ctrl + Shift أثناء تشغيله. بدء تشغيل مستكشف الملفات يمكنك بدء تشغيل مستكشف الملفات بالضغط على Win + E. اضغط على Win + R لإظهار مربع حوار \u0026ldquo;تشغيل\u0026rdquo;، واكتب explorer ثم اضغط على Enter. يمكنك إنشاء مجلد جديد باستخدام Ctrl + Shift + N. فتح موجه الأوامر في الموقع المفتوح في مستكشف الملفات في Windows 11، يمكنك تشغيل موجه الأوامر من \u0026ldquo;Terminal\u0026rdquo; في قائمة النقر بزر الماوس الأيمن. أيضًا، يمكنك تشغيل موجه الأوامر عن طريق كتابة cmd في شريط العناوين والضغط على Enter. عرض سجل الحافظة يمكنك عرض سجل الحافظة بالضغط على Win + V. من خلال تحديد النص أو الصورة المنسوخة سابقًا، يمكنك نسخها مرة أخرى. تشغيل (مربع حوار) يمكنك تشغيل مربع حوار \u0026ldquo;تشغيل\u0026rdquo; باستخدام Win + R. فيما يلي بعض الأوامر التي يمكنك تنفيذها من \u0026ldquo;تشغيل\u0026rdquo; أو من موجه الأوامر.\nفتح Edge اكتب msedge ثم اضغط على Enter فتح Internet Explorer 11 (IE11) اكتب powershell.exe -Command \u0026quot;(New-Object -ComObject InternetExplorer.Application).Visible = $true\u0026quot; ثم اضغط على Enter فتح Terminal اكتب wt ثم اضغط على Enter فتح لوحة التحكم اكتب control ثم اضغط على Enter يمكنك فتحه أيضًا بـ explorer.exe shell:::{26EE0668-A00A-44D7-9371-BEB064C98683}. فتح المفكرة اكتب notepad ثم اضغط على Enter فتح الآلة الحاسبة اكتب calc ثم اضغط على Enter فتح الرسام اكتب mspaint ثم اضغط على Enter فتح PowerShell اكتب powershell ثم اضغط على Enter فتح Visual Studio Code اكتب code ثم اضغط على Enter فتح Excel اكتب excel ثم اضغط على Enter\n※ فقط في حالة تثبيت Excel. فتح Word اكتب winword ثم اضغط على Enter\n※ فقط في حالة تثبيت Word. فتح PowerPoint اكتب powerpnt ثم اضغط على Enter\n※ فقط في حالة تثبيت PowerPoint. فتح تكوين النظام اكتب msconfig ثم اضغط على Enter فتح خصائص النظام اكتب sysdm.cpl ثم اضغط على Enter فتح معلومات حول ويندوز اكتب winver ثم اضغط على Enter فتح لوحة المفاتيح على الشاشة اكتب osk ثم اضغط على Enter فتح الدفتر اكتب wordpad أو write ثم اضغط على Enter فتح محرر التسجيل اكتب regedit ثم اضغط على Enter فتح البرامج والميزات اكتب explorer.exe shell:::{7b81be6a-ce2b-4676-a29e-eb907a5126c5} ثم اضغط على Enter فتح خصائص لوحة المفاتيح اكتب explorer.exe shell:::{725BE8F7-668E-4C7B-8F90-46BDB0936430} ثم اضغط على Enter فتح خصائص الماوس اكتب explorer.exe shell:::{6C8EEC18-8D75-41B2-A177-8831D59D2D50} ثم اضغط على Enter فتح الصوت اكتب explorer.exe shell:::{F2DDFC82-8F12-4CDD-B7DC-D4FE1425AA4D} ثم اضغط على Enter فتح حسابات المستخدمين اكتب explorer.exe shell:::{60632754-c523-4b62-b45c-4172da012619} ثم اضغط على Enter نسخ السلسلة من مربع رسالة قياسي يمكنك استخدام Ctrl + C لنسخ النص من مربع رسالة قياسي. عند نسخ مربع الرسالة أعلاه، سيتم نسخ ما يلي إلى الحافظة: 1 2 3 4 5 6 7 [Window Title] ワードパッド [Main Instruction] ドキュメント への変更内容を保存しますか? [保存する(S)] [保存しない(N)] [キャンセル] تخزين إخراج موجه الأوامر في الحافظة إضافة | clip (أنبوب + clip) بعد الأمر، مثل echo \u0026quot;hello\u0026quot; | clip، يمكنه نسخ الإخراج القياسي إلى الحافظة.\nإخراج تسلسل المجلدات كملف نصي يمكنك استخدام الأمر tree في موجه الأوامر لإخراج تسلسل المجلدات بصيغة شجرة.\nمثال للإخراج\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 C:. ├─.idea │ └─libraries ├─binaryeditorbz ├─blog │ ├─archetypes │ ├─content │ ├─data │ ├─layouts │ ├─static │ └─themes │ └─PaperMod │ ├─.git │ │ ├─branches │ │ ├─hooks │ │ ├─info │ │ ├─logs │ │ │ └─refs │ │ │ ├─heads │ │ │ └─remotes │ │ │ └─origin │ │ ├─objects │ │ │ ├─info │ │ │ └─pack │ │ └─refs │ │ ├─heads │ │ ├─remotes │ │ │ └─origin │ │ └─tags │ ├─.github │ │ ├─ISSUE_TEMPLATE │ │ └─workflows │ ├─assets │ │ ├─css │ │ │ ├─common │ │ │ ├─core │ │ │ ├─extended │ │ │ ├─hljs │ │ │ └─includes │ │ └─js │ ├─i18n │ ├─images │ └─layouts │ ├─partials │ │ └─templates │ ├─shortcodes │ └─_default │ └─_markup (إلخ) مراجع اختصارات لوحة مفاتيح Windows ","date":"2022-09-18T23:49:29+09:00","image":"http://kenji.blog/p/windows-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E5%B0%8F%E6%8A%80%E9%9B%86/img_hu13a9ab529476901cdea6aea124c07798_315814_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/windows-%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E5%B0%8F%E6%8A%80%E9%9B%86/","title":"مجموعة اختصارات وحيل ويندوز"},{"content":"سأقدم لكم paint.net، وهو برنامج تحرير صور أستخدمه غالبًا أثناء أعمال التطوير الخاصة بي.\nميزات مفيدة غير متوفرة في الرسام القياسي لنظام Windows يمكنه التعامل مع الشفافية/العتامة يمكنه التحديد التلقائي لأشكال النطاقات المعقدة يمكنه التعامل مع الطبقات يمكنه ضبط المستويات والسطوع والتباين وما إلى ذلك يمكن تطبيق تأثيرات مختلفة (تمويه، تشويه، ضوضاء، إلخ) ميزات أخرى مجاني للاستخدام خفيف الأداء نسبيًا بديهي الاستخدام وليس به الكثير من التعقيد يدعم لغات متعددة إنه برنامج عالي الوظائف ولكنه سهل الاستخدام. أنا شخصياً لم أتقن جميع ميزاته بعد.\nالتثبيت من هنا https://www.getpaint.net/download.html\nإذا اخترت الإصدار المجاني، يرجى النقر فوق الجزء المؤطر باللون الأحمر في الرابط أدناه.\nيبدو أنه إذا قمت بالتثبيت عبر متجر Microsoft، فسيكون مدفوعًا ولكن في المقابل يتيح التحديثات التلقائية. حتى مع الإصدار المجاني، يمكنك التحديث بسلاسة نسبيًا لأنه يعلمك بأحدث معلومات التحديث.\n","date":"2022-09-14T19:33:31+09:00","image":"http://kenji.blog/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/img_hu407db422a0531b2d8a8b6fa0ee25fc6c_64699_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/paint.net%E3%81%AE%E9%AD%85%E5%8A%9B/","title":"جاذبية paint.net"},{"content":"لإعداد نطاق مخصص لمستودع Github، تحتاج إلى تغيير إعدادات DNS للنطاق. هنا، سنفترض أنك تدير نطاقك باستخدام Onamae.com لشرح العملية. يمكن إجراء إعدادات مماثلة عن طريق إعادة كتابة سجلات A في مسجلات أخرى.\nتغيير إعدادات DNS في Onamae.com لتغيير إعدادات DNS للنطاق، قم بتسجيل الدخول إلى لوحة التحكم الخاصة بـ Onamae.com . بعد تسجيل الدخول، انتقل إلى شاشة إدارة النطاق. بمجرد وصولك إلى شاشة إدارة النطاق، قم بتغيير إعدادات DNS. لتغيير إعدادات DNS، اتبع الخطوات التالية.\nقم بزيارة https://www.onamae.com/ وانقر على \u0026ldquo;تسجيل الدخول إلى Onamae.com Navi\u0026rdquo; أدخل \u0026ldquo;معرف Onamae (معرف العضو)\u0026rdquo; و \u0026ldquo;كلمة المرور\u0026rdquo; وانقر على زر تسجيل الدخول انقر على \u0026ldquo;إعدادات خادم الأسماء\u0026rdquo; انقر على \u0026ldquo;إعدادات DNS للنطاق\u0026rdquo; حدد النطاق الذي تريد إعداده وانقر على \u0026ldquo;التالي\u0026rdquo; انقر على \u0026ldquo;إعداد\u0026rdquo; على يمين \u0026ldquo;استخدام إعداد سجل DNS\u0026rdquo; حدد A لـ TYPE، وأدخل 3600 لـ TTL، و \u0026ldquo;185.199.108.153\u0026rdquo; لـ VALUE، وانقر على \u0026ldquo;إضافة\u0026rdquo; على غرار الخطوة 7، أضف \u0026ldquo;185.199.109.153\u0026rdquo; و \u0026ldquo;185.199.110.153\u0026rdquo; و \u0026ldquo;185.199.111.153\u0026rdquo; في \u0026ldquo;تأكيد تغيير خادم الأسماء لإعداد سجل DNS\u0026rdquo;، تأكد من تحديد المربع وانقر على \u0026ldquo;المتابعة إلى شاشة الإعداد\u0026rdquo; إذا ظهرت شاشة تقول \u0026ldquo;لمنع تغييرات إعدادات DNS غير المقصودة\u0026rdquo;، فانقر على \u0026ldquo;عدم الإعداد\u0026rdquo; (حدد حسب الضرورة) تحقق من الإعدادات وانقر على \u0026ldquo;إعداد\u0026rdquo; يكمل هذا إعدادات DNS. قد يستغرق الأمر ما يصل إلى 72 ساعة تقريبًا حتى يكتمل التحديث. إذا لم تنعكس التغييرات بعد 72 ساعة، فيرجى الاتصال بدعم Onamae.com. للتحقق مما إذا كانت الإعدادات قد انعكست في بيئتك المحلية، يرجى محاولة تشغيل الأمر التالي. استبدل example.com بالنطاق الذي تريد التحقق منه.\nلنظامي التشغيل Linux و Mac 1 dig example.com +noall +answer -t A إذا كانت النتيجة كما يلي، فقد تم تطبيق الإعدادات.\n1 2 3 4 example.com. 0 IN A 185.199.108.153 example.com. 0 IN A 185.199.109.153 example.com. 0 IN A 185.199.110.153 example.com. 0 IN A 185.199.111.153 لنظام التشغيل Windows 1 nslookup -q=a example.com 8.8.8.8 إذا كانت النتيجة كما يلي، فقد تم تطبيق الإعدادات.\n1 2 3 4 5 6 7 8 9 サーバー: dns.google Address: 8.8.8.8 権限のない回答: 名前: example.com Addresses: 185.199.108.153 185.199.109.153 185.199.110.153 185.199.111.153 إعداد نطاق مخصص لمستودع Github افتح صفحة المستودع وانقر على Settings (الإعدادات) انقر على Pages (الصفحات) إذا كنت تنشر مصدر المستودع كما هو، فحدد \u0026ldquo;Deploy from a branch\u0026rdquo; ضمن Source. إذا كنت تبني المصدر مثل HUGO، فحدد \u0026ldquo;GitHub Actions\u0026rdquo;. حدد الفرع الذي سيتم نشره ضمن Branch وانقر على Save أدخل النطاق الذي حصلت عليه في Custom domain (نطاق مخصص) وانقر على Save. إذا لزم الأمر، حدد المربع \u0026ldquo;Enforce HTTPS\u0026rdquo; لتمكين دعم HTTPS [PR] ","date":"2022-09-13T01:16:40+09:00","image":"http://kenji.blog/p/github%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AB%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/octocat_hu8f3e107f91a1c645c9aa316280652835_20372_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/github%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%AB%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية إعداد نطاق مخصص لمستودع Github"},{"content":"يعد أمر dotnet.exe مفيدًا لأنه يسمح لك حتى بإنشاء برامج بسيطة، لذلك من الملائم أن يكون جاهزًا للاستخدام.\nتثبيت حزمة .NET SDK نظرًا لأن dotnet.exe مضمن في .NET SDK، قم أولاً بتثبيت .NET SDK. قم بتشغيل cmd.exe بامتيازات المسؤول ونفذ الأمر التالي.\n1 winget install Microsoft.DotNet.SDK.6 إنشاء .gitignore الأمر الخاص بإنشاء .gitignore باستخدام dotnet.exe هو كما يلي:\n1 dotnet new gitignore ملف .gitignore الذي تم إنشاؤه هو كما يلي:\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.rsuser *.suo *.user *.userosscache *.sln.docstates # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs # Mono auto generated files mono_crash.* # Build results [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ x64/ x86/ [Ww][Ii][Nn]32/ [Aa][Rr][Mm]/ [Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ [Ll]ogs/ # Visual Studio 2015/2017 cache/options directory .vs/ # Uncomment if you have tasks that create the project\u0026#39;s static files in wwwroot #wwwroot/ # Visual Studio 2017 auto generated files Generated\\ Files/ # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* # NUnit *.VisualState.xml TestResult.xml nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c # Benchmark Results BenchmarkDotNet.Artifacts/ # .NET project.lock.json project.fragment.lock.json artifacts/ # Tye .tye/ # ASP.NET Scaffolding ScaffoldingReadMe.txt # StyleCop StyleCopReport.xml # Files built by Visual Studio *_i.c *_p.c *_h.h *.ilk *.meta *.obj *.iobj *.pch *.pdb *.ipdb *.pgc *.pgd *.rsp *.sbr *.tlb *.tli *.tlh *.tmp *.tmp_proj *_wpftmp.csproj *.log *.vspscc *.vssscc .builds *.pidb *.svclog *.scc # Chutzpah Test files _Chutzpah* # Visual C++ cache files ipch/ *.aps *.ncb *.opendb *.opensdf *.sdf *.cachefile *.VC.db *.VC.VC.opendb # Visual Studio profiler *.psess *.vsp *.vspx *.sap # Visual Studio Trace Files *.e2e # TFS 2012 Local Workspace $tf/ # Guidance Automation Toolkit *.gpState # ReSharper is a .NET coding add-in _ReSharper*/ *.[Rr]e[Ss]harper *.DotSettings.user # TeamCity is a build add-in _TeamCity* # DotCover is a Code Coverage Tool *.dotCover # AxoCover is a Code Coverage Tool .axoCover/* !.axoCover/settings.json # Coverlet is a free, cross platform Code Coverage Tool coverage*.json coverage*.xml coverage*.info # Visual Studio code coverage results *.coverage *.coveragexml # NCrunch _NCrunch_* .*crunch*.local.xml nCrunchTemp_* # MightyMoose *.mm.* AutoTest.Net/ # Web workbench (sass) .sass-cache/ # Installshield output folder [Ee]xpress/ # DocProject is a documentation generator add-in DocProject/buildhelp/ DocProject/Help/*.HxT DocProject/Help/*.HxC DocProject/Help/*.hhc DocProject/Help/*.hhk DocProject/Help/*.hhp DocProject/Help/Html2 DocProject/Help/html # Click-Once directory publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml # Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to # checkin your Azure Web App publish settings, but sensitive information contained # in these scripts will be unencrypted PublishScripts/ # NuGet Packages *.nupkg # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore **/[Pp]ackages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/[Pp]ackages/repositories.config # NuGet v3\u0026#39;s project.json files produces more ignorable files *.nuget.props *.nuget.targets # Microsoft Azure Build Output csx/ *.build.csdef # Microsoft Azure Emulator ecf/ rcf/ # Windows Store app package directories and files AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt *.appx *.appxbundle *.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache !?*.[Cc]ache/ # Others ClientBin/ ~$* *~ *.dbmdl *.dbproj.schemaview *.jfm *.pfx *.publishsettings orleans.codegen.cs # Including strong name files can present a security risk # (https://github.com/github/gitignore/pull/2483#issue-259490424) #*.snk # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ # RIA/Silverlight projects Generated_Code/ # Backup \u0026amp; report files from converting an old project file # to a newer Visual Studio version. Backup files are not needed, # because we have git ;-) _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm ServiceFabricBackup/ *.rptproj.bak # SQL Server files *.mdf *.ldf *.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings *.rptproj.rsuser *- [Bb]ackup.rdl *- [Bb]ackup ([0-9]).rdl *- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ # GhostDoc plugin setting file *.GhostDoc.xml # Node.js Tools for Visual Studio .ntvs_analysis.dat node_modules/ # Visual Studio 6 build log *.plg # Visual Studio 6 workspace options file *.opt # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) *.vbw # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts **/*.DesktopClient/ModelManifest.xml **/*.Server/GeneratedArtifacts **/*.Server/ModelManifest.xml _Pvt_Extensions # Paket dependency manager .paket/paket.exe paket-files/ # FAKE - F# Make .fake/ # CodeRush personal settings .cr/personal # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc # Cake - Uncomment if you are using it # tools/** # !tools/packages.config # Tabs Studio *.tss # Telerik\u0026#39;s JustMock configuration file *.jmconfig # BizTalk build output *.btp.cs *.btm.cs *.odx.cs *.xsd.cs # OpenCover UI analysis results OpenCover/ # Azure Stream Analytics local run output ASALocalRun/ # MSBuild Binary and Structured Log *.binlog # NVidia Nsight GPU debugger configuration file *.nvuser # MFractors (Xamarin productivity tool) working folder .mfractor/ # Local History for Visual Studio .localhistory/ # BeatPulse healthcheck temp database healthchecksdb # Backup folder for Package Reference Convert tool in Visual Studio 2017 MigrationBackup/ # Ionide (cross platform F# VS Code tools) working folder .ionide/ # Fody - auto-generated XML schema FodyWeavers.xsd ## ## Visual studio for Mac ## # globs Makefile.in *.userprefs *.usertasks config.make config.status aclocal.m4 install-sh autom4te.cache/ *.tar.gz tarballs/ test-results/ # Mac bundle stuff *.dmg *.app # content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore # General .DS_Store .AppleDouble .LSOverride # Icon must end with two \\r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk # content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore # Windows thumbnail cache files Thumbs.db ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk # JetBrains Rider .idea/ *.sln.iml ## ## Visual Studio Code ## .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json على الرغم من وجود العديد من الملفات لـ Visual Studio، إلا أنها تتضمن أيضًا ملفات لا تتطلب عادةً إدارة بواسطة git، مثل \u0026ldquo;.DS_Store\u0026rdquo; على أجهزة Mac.\nالمواقع المرجعية تثبيت .NET على نظام Windows ","date":"2022-09-13T00:25:12+09:00","image":"http://kenji.blog/p/dotnet%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7.gitignore%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B/img_1_huc51d4f51d02497db3544f94dd1182dc1_19208_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/dotnet%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7.gitignore%E3%82%92%E7%94%9F%E6%88%90%E3%81%99%E3%82%8B/","title":"إنشاء .gitignore باستخدام أمر dotnet"},{"content":"عندما أتذكر ألعابي المفضلة، أجد أن معظمها من الألعاب الكلاسيكية الخالدة. بما أن العديد منها قديم، إذا لم تلعبها بعد، فأنصحك بتجربتها.\nغيم بوي (Game Boy) أول جهاز غيم بوي كان وحدة تحكم محمولة أصدرتها نينتندو عام 1989. بعد ذلك، تم إصدار أجهزة تالية مثل غيم بوي كولر وغيم بوي أدفانس.\n① ساغا 2: أسطورة الكنوز (Sa・Ga2 秘宝伝説) لعبة تقمص أدوار (RPG) أصدرتها سكوير (سكوير إنكس حاليًا) في عام 1990. القصة تدور حول جمع كنوز تسمى \u0026ldquo;الكنوز المقدسة\u0026rdquo; عبر مراحل مختلفة، وهي أول لعبة RPG لعبتها في حياتي.\n② كيربي دريم لاند (星のカービィ) لعبة أكشن أصدرتها نينتندو عام 1992. تم تطويرها بواسطة HAL Laboratory. لعبة تتقدم فيها عن طريق ابتلاع الأعداء أو استنشاق الهواء للطفو في الجو. الموسيقى والمؤثرات الصوتية مصممة بشكل جيد للغاية، مما يجعلها لعبة مليئة بالإيقاع.\n③ بوكيمون ريد وجرين (ポケットモンスター 赤・緑) لعبة RPG أصدرتها نينتندو عام 1996. تم تطويرها بواسطة Nintendo EAD، Game Freak، و Creatures. بعد ذلك، تحولت إلى أنمي وحققت شعبية هائلة، لكنني لم ألعب سوى هذا الإصدار الأول.\nسوبر نينتندو (Super Famicom) جهاز ألعاب منزلي أصدرته نينتندو عام 1990. يُعرف في الخارج باسم SNES (Super Nintendo Entertainment System).\n④ سوبر ماريو كارت (スーパーマリオカート) لعبة مخصصة لجهاز سوبر نينتندو أصدرتها الشركة عام 1992. لعبة سباق تتنافس فيها على المراكز بينما تعرقل خصومك برمي عناصر مثل الأصداف والموز. أتذكر أنني لعبتها مع عائلتي وأصدقائي.\n⑤ دراغون كويست 5: عروس السماء (ドラゴンクエストV 天空の花嫁) لعبة RPG أصدرتها إينيكس عام 1992. تحتوي اللعبة على عناصر مثل اختيار شريكة الزواج، وإمكانية جعل الوحوش التي تهزمها تنضم إليك. لعبتها كثيرًا حتى تمكنت من جعل عدة وحوش من نوع \u0026ldquo;ميتال سلايم\u0026rdquo; (Metal Slime) ينضمون إلي.\n⑥ فاينل فانتسي 5 (ファイナルファンタジーV) لعبة RPG أصدرتها سكوير عام 1992. تحتوي على عنصر تعميق اللعب من خلال اختيار وظائف (Jobs) وإتقان المهارات. كما في دراغون كويست، أتذكر أنني كنت أرفع مستواي في الكهوف بلا توقف.\n⑦ مغامرة تورنيكو الكبرى: الزنزانة الغامضة (トルネコの大冒険 不思議のダンジョン) لعبة روجلايك (Roguelike) أصدرتها شونسوفت عام 1993. وهي سلف سلسلة الزنزانة الغامضة (Mystery Dungeon). تتميز بأن شكل الزنزانة يتغير عشوائيًا في كل مرة. شعارها كان \u0026ldquo;لعبة RPG يمكنك لعبها 1000 مرة\u0026rdquo;.\n⑧ الزنزانة الغامضة 2: شيرين المتجول (不思議のダンジョン2 風来のシレン) لعبة روجلايك أصدرتها شونسوفت عام 1995. وهي تكملة لسلسلة الزنزانة الغامضة \u0026ldquo;مغامرة تورنيكو الكبرى\u0026rdquo;. يوجد متاجر داخل الزنازين، حيث يمكنك شراء العناصر. (إذا خرجت من المتجر دون شراء، سيطاردك صاحب المتجر).\n⑨ ماذر 2 (MOTHER2) الإصدار الثاني من سلسلة MOTHER أصدرته نينتندو عام 1994. تم تطويره بواسطة Ape و HAL Laboratory. بعد ذلك، تم إصدار MOTHER3 في عام 2006. من إنتاج شيغيساتو إيتوي، وهي مليئة بنظرة فريدة للعالم وكلمات فلسفية.\n⑩ أسطورة زيلدا: وصلة إلى الماضي (ゼルダの伝説 神々のトライフォース) لعبة أكشن ومغامرة أصدرتها نينتندو عام 1991. لعبة تتقدم فيها عن طريق جمع عناصر مختلفة وحل ألغاز بسيطة. تم إصدار العديد من التكملات لها لاحقًا. (المرجع)\nنينتندو سويتش (Nintendo Switch) جهاز ألعاب منزلي أصدرته نينتندو عام 2017.\n⑪ سبلاتون 2 (スプラトゥーン２) لعبة تصويب وأكشن أصدرتها نينتندو عام 2017. لعبة تهدف فيها إلى الفوز عن طريق تأمين المناطق باستخدام الحبر وهزيمة الخصوم. في عام 2022، تم إصدار التكملة سبلاتون 3.\n","date":"2022-09-12T19:28:50+09:00","image":"http://kenji.blog/p/%E5%A5%BD%E3%81%8D%E3%81%AA%E3%82%B2%E3%83%BC%E3%83%A011%E9%81%B8/img_12_hu03b5dadc912359ffea73dab76258d285_471079_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/11-%D9%85%D9%86-%D8%A3%D9%84%D8%B9%D8%A7%D8%A8%D9%8A-%D8%A7%D9%84%D9%85%D9%81%D8%B6%D9%84%D8%A9/","title":"11 من ألعابي المفضلة"},{"content":"أمر لمنع إنشاء .DS_Store تلقائياً في macOS هو كالتالي. يرجى تنفيذه في الوحدة الطرفية (Terminal).\n1 defaults write com.apple.desktopservices DSDontWriteNetworkStores true بعد تنفيذ الأمر، قم بإعادة تشغيل الباحث (Finder).\n1 killall Finder لإعادة الإعدادات إلى ما كانت عليه، يرجى تنفيذ الأمر التالي.\n1 defaults delete com.apple.desktopservices DSDontWriteNetworkStores false كما في السابق، إذا قمت بتغيير الإعدادات، قم بإعادة تشغيل الباحث (Finder).\n1 killall Finder ","date":"2022-09-12T16:03:42+09:00","image":"http://kenji.blog/p/macos%E3%81%A7.ds_store%E3%82%92%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%97%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/img_hu4b5bbd3b572a7a7eb2cc4ecf633430af_78743_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/macos%E3%81%A7.ds_store%E3%82%92%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90%E3%81%97%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/","title":"أمر لمنع إنشاء .DS_Store تلقائياً في macOS"},{"content":"انقل الدليل الحالي إلى المجلد المستهدف وقم بتشغيل الأمر التالي لحذف ملفات .DS_Store دفعة واحدة، بما في ذلك المجلدات الفرعية.\n1 Get-ChildItem . -include \u0026#39;.DS_Store\u0026#39; -Recurse -Force | Remove-Item -Force ","date":"2022-09-12T10:11:42+09:00","image":"http://kenji.blog/p/powershell%E3%81%A7.ds_store%E3%82%92%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B/img_hu95c0724bd9a903eadf46c7f648acb682_8907_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/powershell%E3%81%A7.ds_store%E3%82%92%E4%B8%80%E6%8B%AC%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B/","title":"حذف ملفات .DS_Store دفعة واحدة باستخدام PowerShell"},{"content":"أكواد قصيرة يمكن استخدامها في HUGO YouTube {{\u0026lt;youtube 123456abc\u0026gt;}}\nTwitter {{\u0026lt;twitter 123456abc\u0026gt;}}\nInstagram {{\u0026lt;instagram 123456abc\u0026gt;}}\nFlickr {{\u0026lt;flickr 123456abc\u0026gt;}}\nVimeo {{\u0026lt;vimeo 123456abc\u0026gt;}}\nأخرى Shortcodes\nملاحظة جانبية إذا كنت تريد التعبير عن {{\u0026lt; foo \u0026gt;}} على الموقع، فيجب عليك كتابتها كـ {{\u0026lt;/* foo */\u0026gt;}}.\n","date":"2022-09-11T22:59:52+09:00","image":"http://kenji.blog/p/hugo%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/hugo%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%B3%E3%83%BC%E3%83%89/","title":"أكواد قصيرة يمكن استخدامها في HUGO"},{"content":"بالنسبة للتخطيط الافتراضي، يتم وضع الصورة في المركز بعرض 100%، لكنني شعرت في بعض الأحيان أنها كبيرة قليلاً، لذا حاولت التفاف الصورة أسفل العنوان وتغيير العرض إلى حوالي 150 بكسل.\nمواقع تغيير الملفات هي كما يلي.\nblank.css لتغيير الهوامش وحجم الصورة وخطوط عرض النص، أضف الوصف التالي إلى blank.css.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 .entry-content { -webkit-line-clamp: 4; } .entry-footer { text-align: right; } .entry-cover { margin-bottom: initial; text-align: center; } .entry-cover img { border-radius: 4px; display: inline; max-width: 100%; } .post-meta { display: block; text-align: right; } post-entry.css نظرًا لأنه لم يكن من الممكن حذف التعريف على جانب blank.css، احذف السطر التالي في post-entry.css.\n1 2 3 4 5 6 .entry-cover img { border-radius: var(--radius); pointer-events: none; /* width: 100%; */ ← احذف هذا السطر height: auto; } list.html لتغيير تخطيط الصورة، قمت بتغيير الأجزاء التالية من list.html.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 \u0026lt;article class=\u0026#34;{{ $class }}\u0026#34;\u0026gt; \u0026lt;!-- {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }} --\u0026gt;\u0026lt;!-- تحرك لأسفل --\u0026gt; \u0026lt;!-- {{- partial \u0026#34;cover.html\u0026#34; (dict \u0026#34;cxt\u0026#34; . \u0026#34;IsHome\u0026#34; true \u0026#34;isHidden\u0026#34; $isHidden) }} --\u0026gt;\u0026lt;!-- تحرك لأسفل --\u0026gt; \u0026lt;header class=\u0026#34;entry-header\u0026#34;\u0026gt; \u0026lt;h2\u0026gt; {{- .Title }} {{- if .Draft }}\u0026lt;sup\u0026gt;\u0026lt;span class=\u0026#34;entry-isdraft\u0026#34;\u0026gt;\u0026amp;nbsp;\u0026amp;nbsp;[draft]\u0026lt;/span\u0026gt;\u0026lt;/sup\u0026gt;{{- end }} \u0026lt;/h2\u0026gt; \u0026lt;/header\u0026gt; \u0026lt;div style=\u0026#34;display:flex;\u0026#34;\u0026gt;\u0026lt;!-- إضافة --\u0026gt; \u0026lt;div style=\u0026#34;max-width:150px;margin:11px 15px 0px 0px;\u0026#34;\u0026gt;\u0026lt;!-- إضافة --\u0026gt; {{- $isHidden := (site.Params.cover.hidden | default site.Params.cover.hiddenInList) }}\u0026lt;!-- انتقل من الأعلى --\u0026gt; {{- partial \u0026#34;cover.html\u0026#34; (dict \u0026#34;cxt\u0026#34; . \u0026#34;IsHome\u0026#34; true \u0026#34;isHidden\u0026#34; $isHidden) }}\u0026lt;!-- انتقل من الأعلى --\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- إضافة --\u0026gt; \u0026lt;div style=\u0026#34;width:100%;\u0026#34;\u0026gt;\u0026lt;!-- إضافة --\u0026gt; {{- if (ne (.Param \u0026#34;hideSummary\u0026#34;) true) }} \u0026lt;div class=\u0026#34;entry-content\u0026#34;\u0026gt; \u0026lt;p\u0026gt;{{ .Summary | plainify | htmlUnescape }}{{ if .Truncated }}...{{ end }}\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; {{- end }} {{- if not (.Param \u0026#34;hideMeta\u0026#34;) }} \u0026lt;footer class=\u0026#34;entry-footer\u0026#34;\u0026gt; {{- partial \u0026#34;post_meta.html\u0026#34; . -}} \u0026lt;/footer\u0026gt; {{- end }} \u0026lt;a class=\u0026#34;entry-link\u0026#34; aria-label=\u0026#34;post link to {{ .Title | plainify }}\u0026#34; href=\u0026#34;{{ .Permalink }}\u0026#34;\u0026gt;\u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- إضافة --\u0026gt; \u0026lt;/div\u0026gt;\u0026lt;!-- إضافة --\u0026gt; \u0026lt;/article\u0026gt; يبدو أن هناك عددًا لا بأس به من الطلبات المماثلة.\nhttps://github.com/adityatelange/hugo-PaperMod/discussions/159#discussioncomment-247844\nسأكون ممتنًا لو تفضل المطورون الأصليون بدعمه أيضًا.\n","date":"2022-09-11T18:50:40+09:00","image":"http://kenji.blog/p/papermod%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%AE%E9%85%8D%E7%BD%AE%E5%A4%89%E6%9B%B4/images/img_hu42e770ebe6b22298fe9d1751d1191316_24734_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/papermod%E3%81%AE%E7%94%BB%E5%83%8F%E3%81%AE%E9%85%8D%E7%BD%AE%E5%A4%89%E6%9B%B4/","title":"تغيير تخطيط صورة PaperMod"},{"content":"مقدمة يدعم قالب PaperMod ميزة Twitter Card. ومع ذلك، يجب كتابة إعدادات Twitter Card في config.toml أو في معلومات رأس *.md لكل مقال. إذا تم تعيينها في كل من المقال و config.toml، فستكون الأولوية لمعلومات رأس كل مقال.\nطريقة الإعداد config.toml في config.toml، أضف عنصرًا يسمى images ضمن [params]. في images، اكتب مسار الصورة التي سيتم عرضها في Twitter Card. إذا كنت ستضع الصورة في مجلد static، فيكفي تحديد اسم الملف فقط.\n1 2 [params] images = [\u0026#34;twitter_card.jpg\u0026#34;] هيكل المجلد\n1 2 3 4 5 6 7 8 9 10 root │ config.toml (اكتب هنا) ├─content │ └─posts │ └─مجلد المقال │ │ index.md (اكتب هنا) │ └─images │ cover.png (ضع هنا) └─static twitter_card.jpg (ضع هنا) معلومات رأس كل مقال في معلومات رأس كل مقال، أضف عنصرًا يسمى image تحت cover. إذا قمت بتعيين relative إلى true، يمكنك تحديده بمسار نسبي من *.md للمقال.\n1 2 3 cover: image: \u0026#34;images/cover.jpg\u0026#34; relative: true إذا كنت لا ترغب في عرضها أعلى المقال إذا كنت لا ترغب في عرض صورة الغلاف أعلى المقال، أضف عنصرًا يسمى hidden تحت cover وقم بتعيينه إلى true.\n1 2 3 4 cover: image: \u0026#34;images/cover.jpg\u0026#34; relative: true hidden: true حول حجم الصورة حاليًا، يبدو أن حجم Twitter Card في مواصفات PaperMod يدعم فقط summary_large_image. الحجم المناسب (الدقة) لـ summary_large_image مختلف عليه، ولكن يبدو أن 800 x 418 (نسبة الصورة 1.91:1) جيدة.\nالموقع المرجعي 1 الموقع المرجعي 2\nإذا أمكن، نوصي بتغيير حجم الصورة قبل النشر.\nكيفية التحقق من الإعدادات للتحقق من إعدادات Twitter Card، استخدم Twitter Card Validator. ومع ذلك، في بيئتي لم يتم عرض المعاينة بشكل صحيح، لذلك إذا لم يتم عرض المعاينة، نوصي بالتحقق منها مرة واحدة قبل النشر باستخدام حساب خاص أو ما شابه.\n","date":"2022-09-10T18:41:22+09:00","image":"http://kenji.blog/p/papermod%E3%81%A7twitter-card%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/img_hu5e280b2f775d1811bb256626ef7709c6_973665_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/papermod%E3%81%A7twitter-card%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/","title":"كيفية إعداد Twitter Card في PaperMod"},{"content":"مقدمة GitHub Copilot هي أداة لإكمال التعليمات البرمجية تعتمد على الذكاء الاصطناعي طورتها GitHub. إذا قمت بتثبيت إضافة GitHub Copilot في بيئة التطوير IntelliJ IDEA، يمكنك استخدام GitHub Copilot في IntelliJ IDEA. لتفعيلها، تحتاج إلى حساب Github.\nطريقة التثبيت اختر Settings (الإعدادات) من قائمة File (ملف) في IntelliJ IDEA اختر Plugins (الإضافات) وابحث عن \u0026ldquo;GitHub Copilot\u0026rdquo; في البحث قم بالتثبيت من زر التثبيت (Install) اضغط على زر Restart IDE (إعادة تشغيل بيئة التطوير) لإعادة تشغيل IntelliJ IDEA بمجرد إعادة تشغيل IntelliJ IDEA، يكتمل التثبيت. التفعيل انقر على الأيقونة في أسفل اليمين انقر على Login to Github (تسجيل الدخول إلى Github) انقر على زر Copy and Open (نسخ وفتح) سيفتح المتصفح. إذا لم تكن مسجلاً الدخول إلى Github، قم بتسجيل الدخول، ثم الصق الرمز باستخدام Ctrl+V وانقر على زر Continue (متابعة) انقر على زر Authorize GitHub Copilot Plugin (تصريح إضافة GitHub Copilot) إذا ظهرت الشاشة أعلاه، فقد اكتمل التفعيل. تجربة الاستخدام عند إدخال بضعة أحرف في محرر IntelliJ IDEA، سيقترح GitHub Copilot استمرار التعليمات البرمجية. استمتع بميزة الإكمال القوية المدعومة بالذكاء الاصطناعي!\n","date":"2022-09-10T09:44:55+09:00","image":"http://kenji.blog/p/intellij-idea%E3%81%A7github-copilot%E3%82%92%E4%BD%BF%E3%81%86/images/img_hu78c7d99017ff4692861292fedffeefef_291492_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-github-copilot-%D9%81%D9%8A-intellij-idea/","title":"استخدام GitHub Copilot في IntelliJ IDEA"},{"content":"مقدمة Go هي لغة برمجة حديثة نسبيًا أصدرتها Google في عام 2009. إن المترجم والأدوات والمكتبات الخاصة بـ Go مفتوحة المصدر. بالإضافة إلى ذلك، Go هي لغة ذات كتابة ثابتة مثل C و Java، ولكنها لا تستخدم المؤشرات مثل لغة C.\nطريقة التثبيت تثبيت Go\nالمثبتات متاحة لكل منصة من الموقع أعلاه.\nاتبع التعليمات التي تظهر على الشاشة لمتابعة التثبيت. اكتمل التثبيت. إنه سهل، أليس كذلك؟\nبرنامجك الأول احفظ البرنامج التالي باسم hello.go.\n1 2 3 4 5 6 7 package main import \u0026#34;fmt\u0026#34; func main() { fmt.Printf(\u0026#34;Hello World\\n\u0026#34;) } عندما تقوم بتشغيل go run hello.go من موجه الأوامر أو الجهاز الطرفي، سيتم إخراج Hello, world!.\nإذا كنت تريد التجميع، فإن تشغيل go build hello.go سيولد hello.exe. سيؤدي تشغيل hello.exe إلى إخراج Hello, world!.\nيمكنك أيضًا تشغيل التعليمات البرمجية على صفحة الويب https://go.dev/play/\nالمستندات http://go.shibu.jp/\nالتفسيرات اللازمة لتعلم Go مجمعة في الرابط أعلاه. التقنيات المتعلقة بـ Go مفتوحة ومكتملة لدرجة أنك لست بحاجة إلى شراء نصوص ورقية.\nإذن، استمتع بحياتك مع Go!\n","date":"2022-09-10T00:48:17+09:00","image":"http://kenji.blog/p/go%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/images/cover_hu90f0e026fa77d6f7268f9adc11e245d4_5801_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%83%D9%8A%D9%81%D9%8A%D8%A9-%D8%AA%D8%AB%D8%A8%D9%8A%D8%AA-go/","title":"كيفية تثبيت Go"},{"content":"ما هي جدلية هيجل أدرك هيجل الأهمية الإيجابية للتناقضات التي يقع فيها العقل، وجادل بأن جميع الأشياء المحدودة بشكل عام تنتج أضدادًا مع التناقضات المتأصلة في نفسها كقوة دافعة، ويتم رفعها معًا إلى مرحلة أعلى مع هذا كوسيط، وجعل هذا مبدأ كل حركة في العالم الحقيقي. (من Kotobank)\nتفسيري هو أن كل تأكيد وفكرة في العالم الحقيقي ليست مجرد صحيحة من جانب واحد، بل تحتوي بالضرورة على تناقضات بداخلها، ومن خلال فهم ودمج تلك البنية المتعارضة، يتطور الوعي إلى مستوى أعلى.\nأعتقد أن هذا ينطبق ليس فقط على طرق تفكير الناس، ولكن أيضًا على جميع الظواهر في العالم الطبيعي.\nبالنسبة لجميع المواد، إذا عمل الفعل، يعمل رد الفعل. إذا تحركت كل الأشياء، يعمل الاحتكاك. الجاذبية تؤثر بشكل متبادل ليس فقط على الشمس والأرض ولكن أيضًا على جميع المواد. تدفق الأنهار وتدفق الرياح لا يتدفقان في اتجاه واحد فقط، بل يتلقيان قوى مختلفة، ويتغير التدفق في لحظة.\nمن الناحية الفنية، تحتوي برامج الكمبيوتر أيضًا بالضرورة على أخطاء بداخلها، ومن خلال إزالتها تصبح برامج ذات مستوى أعلى. أعتقد أنه يمكن القول إن البرنامج الخالي من الأخطاء هو برنامج غير مثير للاهتمام لم يتطور. وسوف يصبح في النهاية عفا عليه الزمن.\nالبيئة المحيطة تتغير باستمرار مع الزمن. بدلاً من تجاهل التناقضات الذاتية، أو تبريرها بشكل غريب، أو تثبيت طريقة تفكير المرء، أود مراجعة طريقة تفكيري وطريقة إدراكي للأشياء باستمرار، وتغيير تفكيري بمرونة.\n","date":"2022-09-09T23:13:19+09:00","image":"http://kenji.blog/p/%E3%83%98%E3%83%BC%E3%82%B2%E3%83%AB%E3%81%AE%E5%BC%81%E8%A8%BC%E6%B3%95/images/img_huf44f6813611a65fb4bf58b8763a4133a_83624_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%98%E3%83%BC%E3%82%B2%E3%83%AB%E3%81%AE%E5%BC%81%E8%A8%BC%E6%B3%95/","title":"جدلية هيجل"},{"content":"ذهبت إلى كاموكورا (رامن) لأول مرة منذ سنوات.\nرامن كيمتشي البصل الأخضر\nكان لذيذاً. إنه طعم أشتهيه من حين لآخر.\n","date":"2022-09-09T21:45:19+09:00","image":"http://kenji.blog/p/%E4%BD%95%E5%B9%B4%E3%81%8B%E3%81%B6%E3%82%8A%E3%81%AE%E7%A5%9E%E5%BA%A7%E3%81%8B%E3%82%80%E3%81%8F%E3%82%89%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%B3/images/img2_hu5b1c55ddd3b998ef9e1e7da203dc1109_434676_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%D9%83%D8%A7%D9%85%D9%88%D9%83%D9%88%D8%B1%D8%A7-%D8%B1%D8%A7%D9%85%D9%86-%D9%84%D8%A3%D9%88%D9%84-%D9%85%D8%B1%D8%A9-%D9%85%D9%86%D8%B0-%D8%B3%D9%86%D9%88%D8%A7%D8%AA/","title":"كاموكورا (رامن) لأول مرة منذ سنوات"},{"content":"لقد كتبت برنامجًا لسرد الأعداد الأولية في Rust.\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 fn main() { let max = 1000; let mut primes = vec![2]; let mut n = 3; loop { let mut is_prime = true; for p in \u0026amp;primes { if n % p == 0 { is_prime = false; break; } } if is_prime { primes.push(n); } n += 2; if n \u0026gt; max { break; } } for p in \u0026amp;primes { println!(\u0026#34;{}\u0026#34;, p); } } ","date":"2022-09-09T07:08:49+09:00","image":"http://kenji.blog/p/rust%E3%81%A7%E7%B4%A0%E6%95%B0%E3%82%92%E5%88%97%E6%8C%99%E3%81%99%E3%82%8B/images/img_hu5b7e04bd1dc0eefb45fd25ac4219842a_9797_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/rust%E3%81%A7%E7%B4%A0%E6%95%B0%E3%82%92%E5%88%97%E6%8C%99%E3%81%99%E3%82%8B/","title":"سرد الأعداد الأولية في Rust"},{"content":"قائمة تشغيل موسيقى الجاز الهادئة ","date":"2022-09-08T17:40:26+09:00","image":"http://kenji.blog/p/%E8%90%BD%E3%81%A1%E7%9D%80%E3%81%84%E3%81%9F%E3%82%B8%E3%83%A3%E3%82%BA/images/img_huddf559c95c5d412c9cd6a131d9beecb1_1507891_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D9%88%D8%B3%D9%8A%D9%82%D9%89-%D8%A7%D9%84%D8%AC%D8%A7%D8%B2-%D8%A7%D9%84%D9%87%D8%A7%D8%AF%D8%A6%D8%A9/","title":"موسيقى الجاز الهادئة"},{"content":"إيقاع سريع\nElectro Swing Collection Electro Swing Mix 2019 Vol.3 lofi hip hop radio(Live) جاز LoFi هذا هو الدافع للدراسة بجد كل يوم | 5 hour lofi hip hop / study / work / chill beats ","date":"2022-09-08T08:39:03+09:00","image":"http://kenji.blog/p/%E3%82%AB%E3%83%95%E3%82%A7%E9%9F%B3%E6%A5%BD/images/img_huc541091b3f264af05ecf07abbd33454f_519675_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D9%88%D8%B3%D9%8A%D9%82%D9%89-%D8%A7%D9%84%D9%85%D9%82%D9%87%D9%89/","title":"موسيقى المقهى"},{"content":"لا بأس إذا لم يتم الاعتراف بجهدك 45年の人生で手に入れた。ぐずぐずした時、いつも背中を押してくれる言葉たち。 pic.twitter.com/EQgmujOSpg\n\u0026mdash; いれぶん (@eleven_s_s) September 6, 2022 القيم أكثر تنوعًا بكثير يوسوكي ناريتا \u0026ldquo;من بين التعاسات التي يعاني منها الإنسان\u0026rdquo;\nأفعالك تنعكس مباشرة أفكار هاياو ميازاكي ","date":"2022-09-08T02:22:52+09:00","image":"http://kenji.blog/p/%E3%83%A2%E3%83%81%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%B8%8A%E3%81%92%E3%81%A6%E3%81%8F%E3%82%8C%E3%82%8B%E5%8B%95%E7%94%BB/images/img_hu390d0c8e5d67e265b0c5aa8749ccc95d_193793_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%81%D9%8A%D8%AF%D9%8A%D9%88%D9%87%D8%A7%D8%AA-%D8%AA%D8%B1%D9%81%D8%B9-%D8%A7%D9%84%D9%85%D8%B9%D9%86%D9%88%D9%8A%D8%A7%D8%AA/","title":"فيديوهات ترفع المعنويات"},{"content":"سأكتب مواصفات جهاز الكمبيوتر الرئيسي الخاص بي.\nاسم العنصر القيمة المعالج Intel Core i7-8700K CPU @ 3.70GHz 3.70 GHz الذاكرة 32.0 GB نوع النظام نظام تشغيل 64 بت، معالج يستند إلى x64 نظام التشغيل Windows 11 Enterprise (الإصدار 21H2، البنية 22000.856) الشركة المصنعة شركة ماوس للكمبيوتر المحدودة ","date":"2022-09-08T01:55:00+09:00","image":"http://kenji.blog/p/%E4%BB%8A%E3%81%AE%E3%83%A1%E3%82%A4%E3%83%B3pc%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF/images/img_hu731502385ac0a573daf05287c34d796a_240757_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D9%88%D8%A7%D8%B5%D9%81%D8%A7%D8%AA-%D8%AC%D9%87%D8%A7%D8%B2-%D8%A7%D9%84%D9%83%D9%85%D8%A8%D9%8A%D9%88%D8%AA%D8%B1-%D8%A7%D9%84%D8%B1%D8%A6%D9%8A%D8%B3%D9%8A-%D8%A7%D9%84%D8%AD%D8%A7%D9%84%D9%8A/","title":"مواصفات جهاز الكمبيوتر الرئيسي الحالي"},{"content":"Google Material Symbols and Icons https://fonts.google.com/icons GitHub Octicons https://primer.style/octicons/ Sargam Icons https://sargamicons.com/ آلاف الأيقونات المجانية https://icon-icons.com/ flaticon https://www.flaticon.com/ ICONFINDER https://www.iconfinder.com/ iconfont https://www.iconfont.cn/ open-iconic https://github.com/iconic/open-iconic ","date":"2022-09-07T16:46:56+09:00","image":"http://kenji.blog/p/%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AA%E3%82%A2%E3%82%A4%E3%82%B3%E3%83%B3%E9%9B%86%E3%82%B5%E3%82%A4%E3%83%88/img_2_hu3b0847646c9f4aefba079615d2db35cd_21041_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D9%88%D8%A7%D9%82%D8%B9-%D8%AA%D8%AC%D9%85%D9%8A%D8%B9-%D8%A7%D9%84%D8%A3%D9%8A%D9%82%D9%88%D9%86%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D8%B3%D9%8A%D8%B7%D8%A9/","title":"مواقع تجميع الأيقونات البسيطة"},{"content":"لقد قمت بتغيير نظام الألوان لسمة PaperMod. لقد أشرت إلى ما يلي لطريقة التغيير.\nhttps://github.com/adityatelange/hugo-PaperMod/discussions/645\nمسار CSS هو كما يلي.\nthemes/PaperMod/assets/css/extended/blank.css\n1 2 3 4 5 6 7 8 9 10 11 12 13 :root { --entry: #fbf7ef; --primary: rgba(113, 103, 91, 1.00); --secondary: rgba(113, 103, 91, 0.95); --tertiary: rgba(113, 103, 91, 0.50); --content: rgba(113, 103, 91, 0.85); --hljs-bg: #34231B; --code-bg: #ebe4d7; --border: #fdfaf5; --theme: #fbf7ef; } .dark { } لا توجد تغييرات على المظهر الداكن في الوقت الحالي.\n","date":"2022-09-07T15:30:21+09:00","image":"http://kenji.blog/p/papermod%E3%81%AE%E9%85%8D%E8%89%B2%E5%A4%89%E6%9B%B4/img_hu74d0722ae4db8273d5e32f97bb10689d_10515_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1-%D9%86%D8%B8%D8%A7%D9%85-%D8%A7%D9%84%D8%A3%D9%84%D9%88%D8%A7%D9%86-%D9%81%D9%8A-papermod/","title":"تغيير نظام الألوان في PaperMod"},{"content":"عندما كانت الأم مريضة وترقد في السرير، سألت ابنتنا (سنتان) عن تحضير العشاء أو الاستحمام: \u0026ldquo;هل نطلب من أمي أن تفعل هذا؟\u0026rdquo; فأجابت: \u0026ldquo;لا، إنها نائمة!\u0026rdquo; وفكرت في كيف يمكن للطفل أن يكون مراعياً للآخرين بطريقته الخاصة.\nأنا سعيد لأنها تبدو وكأنها تكبر لتصبح شخصاً يمكنه التعاطف مع الآخرين.\n","date":"2022-09-07T04:40:52+09:00","image":"http://kenji.blog/p/%E5%AD%90%E4%BE%9B%E3%81%AE%E3%81%9D%E3%82%93%E3%81%9F%E3%81%8F/images/img_hud61af1a628f352ef1641794e80547155_144893_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D9%85%D8%B1%D8%A7%D8%B9%D8%A7%D8%A9-%D8%A7%D9%84%D8%A3%D8%B7%D9%81%D8%A7%D9%84/","title":"مراعاة الأطفال"},{"content":"العثور على الأعمال التجارية الرائجة اسأل المطلعين في Hot Pepper أو المحاسبين الضريبيين عن الأعمال التجارية التي بدأت تروج. لا تدخل في أعمال تجارية مشبعة بالفعل ويسيطر عليها لاعبون أقوياء. لا تدخل إلا في الأعمال التجارية التي تثق في قدرتك على جذب العملاء إليها (لا تدخل في أعمال حيث يستخدم اللاعبون الحاليون طرق جذب عملاء خاصة لا يمكن تقليدها). التقليد الشامل ادرس منطق الأعمال قبل الدخول. قلد بشكل شامل. ثم قم بإجراء التحسينات بناءً على ذلك. المنهجة قم بإنشاء أدلة لكل شيء حتى يتمكن أي شخص من القيام به دون عناء. فكر وقم بمنهجة أفكار لزيادة المبيعات (زيادة عدد العملاء، وقيمة كل عميل) وتقليل النفقات (تكاليف الموظفين، تكاليف الإعلانات). فلسفة الإدارة فلسفة الإدارة هي \u0026ldquo;تعظيم أرباح الشركة\u0026rdquo; لا أكثر ولا أقل. جعل المساهمة الاجتماعية أو محبة الموظفين فلسفة للإدارة هو أمر خاطئ (اعتبر أن هذه الأشياء ستأتي بشكل طبيعي لاحقاً). ","date":"2022-09-07T02:36:11+09:00","image":"http://kenji.blog/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/images/img_hu8e43d40b92b6a98e30d3360e9f3ab85a_162130_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E7%B5%8C%E5%96%B6%E8%80%85%E3%83%A1%E3%83%A2/","title":"مذكرات الإدارة"},{"content":"أود أن أنظم الأفكار والأشياء التي أعتقد أنها غريبة حول المجتمع الياباني.\nحول المنح الدراسية عند الحديث عن المنح الدراسية في اليابان، فإن معظمها عبارة عن قروض بفوائد يجب سدادها. بالإضافة إلى ذلك، استمرت الرسوم الدراسية الجامعية في الارتفاع منذ عام 1950، كما أن معدل متلقي هذه القروض في تزايد.\nمن ناحية أخرى، يبدو أن متوسط إجمالي القروض مؤخراً قد وصل إلى 3.24 مليون ين.\nبالنسبة لمستخدمي المنح الدراسية التابعة لمنظمة خدمات الطلاب اليابانية، يبلغ متوسط إجمالي القروض 3,243,000 ين. مرجع\nإذا كان الشخص محملاً بديون تصل إلى 3 ملايين ين عند التخرج من الجامعة في سن 22 عامًا، فمن الطبيعي أن يتأخر سن الزواج وتصبح إنجاب الأطفال أمراً صعباً، وأعتقد أن هذا أحد أسباب مشكلة انخفاض معدل المواليد في اليابان.\nانتشار نظرية المسؤولية الشخصية هذا يعتمد على المشاعر إلى حد ما، لكني أعتقد أن هناك نظرة مجتمعية باردة تتسم بمبدأ \u0026ldquo;شؤون الآخرين هي شؤونهم الخاصة\u0026rdquo;. قد يكون من المحتم أن يحدث ذلك بعد عقود من الركود الاقتصادي، ولكن حتى في مشكلة المنح الدراسية المذكورة أعلاه، لا يتم اعتبارها مشكلة مجتمعية بالكامل، وأشعر أنه يتم تجاهل أصوات الشباب والأقليات الذين يمتلكون أصواتاً أقل في الانتخابات. على الرغم من أنها، في الواقع، مشكلة بالغة الأهمية بالنسبة لليابان بأكملها على المدى الطويل.\nبدلاً من التوجه نحو المنافسة المفرطة، أعتقد أنه من المهم جداً للبلاد أن تتبنى روح المساعدة المتبادلة عندما يكون هناك أشخاص أو أجيال أو مجموعات محتاجة. (ومع ذلك، أشعر بعدم الارتياح عندما تصر الحكومة على \u0026ldquo;المساعدة الذاتية والمساعدة المتبادلة\u0026rdquo;. أريدهم أن يأخذوا زمام المبادرة في مساعدة الضعفاء بشكل استباقي).\n(سيتم تحديث هذا المقال من حين لآخر.)\nخصائص اليابانيين من منظور الذكاء الاصطناعي نعم، سأشرح خصائص اليابانيين.\n【الجوانب الإيجابية】\nيتمتع اليابانيون بثقافة مهذبة ويهتمون باحترام الآخرين وحسن التعامل معهم. يتم الالتزام بالمواعيد بدقة، واحترام الوقت يعتبر أمراً بالغ الأهمية. هناك طريقة تفكير جماعية قوية، حيث يتم تقدير العمل الجماعي والتعاون. تحظى النظافة بأهمية كبيرة، وهناك اهتمام كبير بالآداب العامة والتنظيف في الأماكن العامة. يُولون الهدايا والتذكارات أهمية كبيرة، وثقافة الامتنان منتشرة على نطاق واسع. 【الجوانب السلبية】\nقد يجدون صعوبة في التعبير عن آرائهم الشخصية، ويميلون إلى تجنب الصدامات في الآراء. في ظل ثقافة عمل صارمة للغاية، يعتبر العمل الإضافي والموت من الإرهاق (كاروشي) من المشاكل التي تثير القلق أحياناً. لا تزال هناك مشاكل تتعلق بالتمييز والإقصاء تجاه الأجانب، ويُثار أحياناً موضوع التوافق مع المجتمع الدولي. هناك ميل نحو الاستبدادية، ويُشار أحياناً إلى أنهم غالباً ما يقبلون آراء الرؤساء وكبار السن دون شروط. يتم انتقادهم أحياناً بأنهم مجتمع مغلق، يميل إلى صعوبة تقبل الثقافات والقيم الخارجية. ","date":"2022-09-06T02:24:11+09:00","image":"http://kenji.blog/p/%E6%97%A5%E6%9C%AC%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E6%80%9D%E3%81%86%E3%81%93%E3%81%A8/images/img_hu105ea1ef9d38a7cb8901ff6c857b887e_168534_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%D8%A3%D9%81%D9%83%D8%A7%D8%B1%D9%8A-%D8%AD%D9%88%D9%84-%D8%A7%D9%84%D9%8A%D8%A7%D8%A8%D8%A7%D9%86/","title":"أفكاري حول اليابان"},{"content":"مقدمة Rust هي لغة برمجة حديثة نسبيًا تتيح لك كتابة وحدات سريعة وفعالة في استخدام الذاكرة باستخدام بناء جملة حديث. إنها تدعم منصات متعددة وتُستخدم في WebAssembly والأنظمة المدمجة. ومن الجدير بالذكر أنها معتمدة من قبل Firefox و DropBox و Cloudflare.\nتحظى باهتمام أيضًا كبديل لـ C++.\nطريقة التثبيت تثبيت Rust\nتتوفر تعليمات التثبيت لكل منصة على الموقع أعلاه.\nأول برنامج لك احفظ البرنامج التالي باسم main.rs.\n1 2 3 fn main() { println!(\u0026#34;Hello, world!\u0026#34;); } عند تشغيل rustc main.rs من موجه الأوامر أو الجهاز الطرفي، سيتم تجميعه، وعند تشغيل ./main (أو main.exe في نظام Windows) سيطبع Hello, world!.\nالوثائق اليابانية The Rust Programming Language النسخة اليابانية\nجميع الشروحات اللازمة لتعلم Rust مجمعة في الرابط أعلاه (النسخة المترجمة لليابانية). إنها شاملة لدرجة أنك لن تحتاج إلى شراء كتاب عن Rust.\nإذا كنت تريد تجربتها على الويب إذا كنت ترغب في تجربتها على الويب دون تثبيت المترجم، فيمكنك استخدام The Rust Playground. أدخل الكود واضغط على زر \u0026ldquo;التشغيل\u0026rdquo; ليتم تجميعه وتشغيله على الويب.\n","date":"2022-09-06T00:12:36+09:00","image":"http://kenji.blog/p/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/images/rust_logo_huefc2d075e966b0edc0b7186c50038553_22411_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/rust%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%8B%E3%81%9F/","title":"كيف تبدأ مع Rust"},{"content":"تغيير بيئة الإنترنت المنزلية من Flets Hikari إلى J:COM بناءً على توصية من أحد المعارف، قمت بتغيير اتصال الإنترنت المنزلي من Flets Hikari إلى J:COM. الأسباب هي:\nالرسوم الشهرية أرخص. 3,619 ين -\u0026gt; 2,180 ين سرعة الإنترنت زادت من 100 ميجابت في الثانية إلى 320 ميجابت في الثانية بخصوص هذه النقاط.\nانطباعات بعد الاستخدام لقد مر حوالي أسبوع منذ التبديل، وحتى الآن لم أواجه أي مشاكل تقريبًا. أذكر أدناه بعض الأشياء التي لفتت انتباهي.\nلقد لاحظت بعد التغيير الفعلي أن سرعة التنزيل أصبحت أسرع بالفعل، حيث ارتفعت من 60 ميجابت في الثانية إلى ما يقرب من 320 ميجابت في الثانية. ومع ذلك، بالنسبة لسرعة الرفع، فقد انخفضت إلى حوالي 10 ميجابت في الثانية، بعد أن كانت حوالي 40 ميجابت في الثانية مع Flets Hikari. يبدو أن هذه هي مواصفات J:COM. نظرًا لأنني لا أقوم بالبث المباشر أو رفع كميات كبيرة من البيانات حاليًا، سأراقب الوضع.\nأيضًا، في الآونة الأخيرة، أصبح العمل عن بُعد هو السائد بالنسبة لي ولعائلتي، ولكن اليوم انقطع الإنترنت لأول مرة لمدة عشر دقائق تقريبًا. عاد للعمل تلقائيًا، ولكن قد لا تكون هذه بداية مبشرة. على الرغم من أنه لم يمر أسبوع حتى الآن منذ التبديل\u0026hellip;\nكملاحظة جانبية، يبدو أن سرعة تطبيقات P2P بطيئة لأن J:COM تقيد اتصالات P2P. يجب على أولئك الذين يستخدمون P2P توخي الحذر.\nحول الخدمة عند توقيع العقد، قيل لي أنه إذا اشتركت في Netflix أو Disney+، فسأحصل على بطاقة QUO بقيمة 40,000 ين، والتي سيتم خصمها من رسوم عقد كل خدمة، مما يجعل الرسوم الشهرية أرخص في المتوسط، لذلك اشتركت في الخدمات في نفس الوقت الذي وقعت فيه العقد. اشتراك Netflix لمدة عام، واشتراك Disney+ لمدة نصف عام، ويبدو أنه من الضروري القيام بإجراءات الإلغاء بنفسي.\nنظرًا لأن التبديل حدث مؤخرًا، سأقوم بتحديث المقالة إذا ظهرت لدي انطباعات أو تجارب إضافية. إلى اللقاء.\n09/06 صعوبة في الاتصال بالإنترنت 2022/09/06 حوالي الساعة 13:13 لمدة 3 إلى 5 دقائق 2022/09/06 حوالي الساعة 13:30 لمدة 3 إلى 5 دقائق بعد ذلك عدة مرات\u0026hellip; يبدو أن المشكلة في DNS، لذلك قمت بإعداد خادم DNS بناءً على هنا. دعونا نرى ماذا سيحدث\u0026hellip; نظرًا لعدم تمكني من الاتصال حتى مع إعدادات DNS، تواصلت مع الدعم، وأخبروني أنهم يجرون صيانة طارئة\u0026hellip; تحسنت حالة الاتصال فورًا بعد الاستفسار، لذا أعتقد أنهم اتخذوا بعض الإجراءات.\n","date":"2022-09-05T22:48:51+09:00","image":"http://kenji.blog/p/%E3%83%8D%E3%83%83%E3%83%88%E7%92%B0%E5%A2%83%E3%82%92%E3%83%95%E3%83%AC%E3%83%83%E3%83%84%E5%85%89jcom%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/jcom_hub0ec31ac66f5927be8b28fe767bbeebb_3349_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E3%83%8D%E3%83%83%E3%83%88%E7%92%B0%E5%A2%83%E3%82%92%E3%83%95%E3%83%AC%E3%83%83%E3%83%84%E5%85%89jcom%E3%81%AB%E5%A4%89%E3%81%88%E3%81%9F/","title":"تغيير بيئة الإنترنت من Flets Hikari إلى J:COM"},{"content":"تثبيت HUGO التحميل تحميل HUGO\nمن الموقع أعلاه، قم بتنزيل واستخراج وحدة Windows التي تناسب بيئتك. في حالتي، قمت بتنزيل \u0026ldquo;hugo_0.102.3_Windows-64bit.zip\u0026rdquo;.\nالاستخراج قم باستخراج ملف zip الذي تم تنزيله وانسخ hugo.exe الموجود بداخله إلى مجلد تقوم بإنشائه، مثل C:\\bin.\nالتسجيل في متغيرات البيئة قم بالتسجيل في متغيرات البيئة لتشغيل hugo.exe من أي مكان. هذه العملية في Windows 11، لكن أعتقد أنه يمكنك تسجيلها باتباع الخطوات التالية.\nاضغط على زر Win+Pause لفتح حول. انقر فوق إعدادات النظام المتقدمة. انقر فوق متغيرات البيئة. حدد Path وانقر فوق تحرير. انقر فوق جديد، واكتب \u0026ldquo;C:\\bin\u0026rdquo; في سطر جديد، ثم انقر فوق موافق لإغلاق مربع الحوار. معاينة المدونة انتقل إلى مجلد مدونة HUGO في موجه الأوامر وقم بتشغيل الأمر التالي.\nhugo server -D\nنتيجة التنفيذ أدناه. (-D هو خيار لعرض مسودات المقالات.)\n1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 C:\\Users\\win11\\IdeaProjects\\kenji.blog\u0026gt;hugo server -D Start building sites … hugo v0.102.3-b76146b129d7caa52417f8e914fc5b9271bf56fc windows/amd64 BuildDate=2022-09-01T10:16:19Z VendorInfo=gohugoio | JA -------------------+----- Pages | 39 Paginator pages | 0 Non-page files | 7 Static files | 0 Processed images | 0 Aliases | 13 Sitemaps | 1 Cleaned | 0 Built in 161 ms Watching for changes in C:\\Users\\win11\\IdeaProjects\\kenji.blog\\{archetypes,content,themes} Watching for config changes in C:\\Users\\win11\\IdeaProjects\\kenji.blog\\config.toml Environment: \u0026#34;development\u0026#34; Serving pages from memory Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender Web Server is available at http://localhost:1313/ (bind address 127.0.0.1) Press Ctrl+C to stop يتم إخراج العنوان في وقت التنفيذ (في المثال أعلاه، http://localhost:1313/)، لذلك انسخ العنوان إلى متصفحك. يتم تحديث المعاينة تلقائيًا في كل مرة يتم فيها حفظ الملف. لإنهاء المعاينة، أدخل Ctrl+C في موجه الأوامر.\n","date":"2022-09-05T12:28:01+09:00","image":"http://kenji.blog/p/hugo%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E7%92%B0%E5%A2%83%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC/img_hu415dc7e70376ac350673d0366f70ca4b_19909_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/hugo%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E7%92%B0%E5%A2%83%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%83%97%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC/","title":"【HUGO】معاينة العرض في البيئة المحلية"},{"content":"إليكم توصياتي لـ 3 أفلام يظهر فيها علماء رياضيات كشخصيات رئيسية.\nعقل جميل عمل يصور نصف حياة عالم رياضيات أمريكي عبقري حقيقي. تطور مفاجئ في النهاية. يلعب الممثل الرئيسي راسل كرو دوراً رائعاً.\nإنجما فيلم صدر عام 2001 مقتبس من رواية روبرت هاريس «إنجما». من ويكيبيديا\nقصة فك شفرة آلة تشفير ألمانية تسمى إنجما.\nلعبة التزييف قصة فك شفرات أخرى تتناول إنجما. أحب النظرة العالمية في ذلك الوقت.\nالرجل الذي عرف اللانهاية عمل يصور التفاعل بين عالم الرياضيات بجامعة كامبريدج هاردي وعالم الرياضيات الهندي رامانوجان. يمكنك أن تشعر بجمال الرياضيات.\nنظرية كل شيء عمل يصور نصف حياة الدكتور هوكينج.\nحمى الجسيمات ","date":"2022-09-05T10:41:00+09:00","image":"http://kenji.blog/p/%E6%95%B0%E5%AD%A6%E8%80%85%E3%81%8C%E7%99%BB%E5%A0%B4%E3%81%99%E3%82%8B%E6%98%A0%E7%94%BB/images/img_hua361131ea597bbd428e36b721aabc571_406520_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/%E6%95%B0%E5%AD%A6%E8%80%85%E3%81%8C%E7%99%BB%E5%A0%B4%E3%81%99%E3%82%8B%E6%98%A0%E7%94%BB/","title":"أفلام يظهر فيها علماء رياضيات"},{"content":"مكتب الطفل الوقت الذي ينام فيه طفلي هو الوقت الذي يمكنني فيه التركيز على عملي. لنذهب للعب في الحديقة بعد انتهاء القيلولة. لو كان لدي محول من Lightning إلى HDMI لجهاز iPad الخاص بي، لتمكنت من العمل على المكتب الأيمن~\n","date":"2022-09-04T14:29:09+09:00","image":"http://kenji.blog/p/%E4%BB%8A%E6%97%A5%E3%81%AE%E4%BD%9C%E6%A5%AD%E7%92%B0%E5%A2%83/images/today_workplase_hu1fa3ba50725fc9c80ae774069d99ec20_2258565_120x120_fill_q75_box_smart1.jpg","permalink":"http://kenji.blog/ar/p/%E4%BB%8A%E6%97%A5%E3%81%AE%E4%BD%9C%E6%A5%AD%E7%92%B0%E5%A2%83/","title":"بيئة عمل اليوم"},{"content":"مقدمة عند كتابة هذه المدونة، أستخدم IntelliJ IDEA. إنه مناسب لأن توافقه مع Git جيد ويعرض معاينة Markdown. في كل مرة أكتب فيها في المدونة، أضطر إلى كتابة التاريخ في ترويسة ملف md، ولا يبدو أن هناك اختصارًا لإدراج التاريخ، لذلك قمت بإنشاء أمر لإدراج التاريخ بالرجوع إلى الموقع أدناه. آمل أن يكون هذا مفيدًا.\nIs there a shortcut for inserting date/time in IntelliJ IDEA?\nخطوات الإعداد افتح من القائمة \u0026ldquo;File\u0026rdquo; \u0026gt; \u0026ldquo;Settings\u0026hellip;\u0026rdquo;\nحدد \u0026ldquo;Editor\u0026rdquo; \u0026gt; \u0026ldquo;Live Template\u0026rdquo; \u0026gt; \u0026ldquo;HTML/XML\u0026rdquo; وانقر فوق \u0026ldquo;+\u0026rdquo; اختر Live Template أدخل \u0026ldquo;date\u0026rdquo; في Abbreviation أدخل \u0026ldquo;إدراج التاريخ والوقت\u0026rdquo; في Description أدخل \u0026ldquo;$date$\u0026rdquo; في Template Text انقر فوق زر Edit Variables\nأدخل \u0026ldquo;date\u0026rdquo; في Name أدخل date(\u0026quot;yyyy-MM-dd'T'HH:mm:ss'+09:00'\u0026quot;) في Expression أغلق مربع الحوار بالنقر فوق OK اضغط على Define أو Change وحدد مربع \u0026ldquo;Everywhere\u0026rdquo; أغلق مربع الحوار بالنقر فوق OK في محرر التعليمات البرمجية، اكتب \u0026ldquo;date\u0026rdquo; واضغط على Enter. إذا تم إدراج التاريخ \u0026ldquo;2022-09-04T05:59:04+09:00\u0026rdquo;، يكون الإعداد قد اكتمل! هذا كل شيء.\nخاتمة سأشاركها مرة أخرى إذا وجدت حيلًا صغيرة أخرى لـ IntelliJ IDEA!\n","date":"2022-09-04T05:59:04+09:00","image":"http://kenji.blog/p/intellij-idea%E3%81%A7%E6%97%A5%E4%BB%98%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/images/IntelliJ_logo_hu4c2377fba6118d83603ae0bd715d16f4_24441_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/intellij-idea%E3%81%A7%E6%97%A5%E4%BB%98%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/","title":"إضافة أمر لإدراج التاريخ في IntelliJ IDEA"},{"content":"بدأت مدونة شيء يشبه الألعاب النارية، الكود هنا\nأهلاً بالجميع. قررت أن أبدأ مدونة لسبب ما.\nليس لدي هدف عظيم مثل \u0026ldquo;أريد نشر هذا!\u0026quot;، فقط فكرت أنه سيكون من الجيد أن يكون لدي مكان أكتب فيه ما يتبادر إلى ذهني، سواء عن التكنولوجيا أو الحياة اليومية.\nسأحاول ألا أكون جاداً جداً، وسأستخدمها مثل مفكرة.\nأستخدم شيء يسمى Hugo تم إنشاء هذه المدونة باستخدام منشئ المواقع الثابتة يسمى \u0026ldquo;Hugo\u0026rdquo;. وجدت سمة لطيفة، فقررت تجربتها. (استغرق الأمر حوالي ساعتين لاختيار السمة، لكن هذا سر)\nسأكتب أيضاً ملاحظات حول الأكواد والأدوات التي تثير اهتمامي.\nقصة كوميدا في الصباح بالمناسبة، استيقظت مبكراً هذا الصباح وذهبت إلى مقهى كوميدا. غادرت في الساعة 8:30، أمشي وأستنشق هواء الصباح.\nطلبت مجموعة الصباح A مع ميني شيرونوار ومقهى أو ليه. أعتقد أنه كان حوالي 800 ين؟ (لا أتذكر)\nمقهى الصباح رائع. إذا كان لدي بعض الوقت للاسترخاء قبل العمل، أشعر أن اليوم سيسير على ما يرام.\nلذا، سأكتب بهدوء من الآن فصاعداً. أخطط لخلط المواضيع التقنية والحياة اليومية.\nأتطلع إلى دعمكم!\n","date":"2022-09-02T07:23:00+09:00","image":"http://kenji.blog/p/%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F/images/komeda_hue1f0373fafb96162f461ac594cb3e53e_603414_120x120_fill_q75_box_smart1.jpeg","permalink":"http://kenji.blog/ar/p/%D8%A8%D8%AF%D8%A3%D8%AA-%D9%85%D8%AF%D9%88%D9%86%D8%A9/","title":"بدأت مدونة"},{"content":"Salesforce DevTools يمكنك البحث عن الحقول المخصصة، أو إخراج حقول الكائنات المخصصة دفعة واحدة.\nمن المفيد أيضًا القدرة على بناء SOQL على الفور.\nSalesforce DevTools\nSalesforce advanced Code searcher مفيد عند البحث عن كود Salesforce.\nSalesforce advanced Code searcher\n","date":"2022-05-02T10:39:36+09:00","image":"http://kenji.blog/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/img_huc75a5c8c4d45e738551ca5afb26f380b_13227_120x120_fill_box_smart1_3.png","permalink":"http://kenji.blog/ar/p/salesforce%E3%81%8A%E3%81%99%E3%81%99%E3%82%81chrome%E6%8B%A1%E5%BC%B5/","title":"إضافات Chrome الموصى بها لـ Salesforce"}]